Nimbin[12]?Sway / SwAS / commits / bea8073

SwAS git · main

SwAS - app switcher for sway (SVG/PNG icons, themeable)

sway wayland c launcher · first commit 2026-08-08 · last commit 2026-09-20 (19 days ago) · synced 3 days ago · upstream: github.com/nimbin2/SwAS

C 97.5% Markdown 1.6%
git clone https://git.christianimmanuel.de/sway/SwAS.gitwget https://git.christianimmanuel.de/sway/SwAS/archive/SwAS.tar.gz

Maybe something about interactio nwith other apps

Christian Immanuel · 2026-08-28 10:41 · bea80736198a11d944f4e13c1b33d7d95b7bccdb

 README.md  |  2 ++
 appwheel.c | 10 ++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 1b3ed92..4275d17 100644
--- a/README.md
+++ b/README.md
@@ -99,6 +99,8 @@ back — so appwheel asks swov to restack it as soon as that window is up. If
 you ever end up with a wheel that ignores the mouse, that is what went wrong;
 `esc` still closes it, and `overview=0` falls back to the plain tiles.
 
+Drop it against the **edge of a workspace** and it opens beside everything
+already there — left of a column of two windows, not left of the top one.
 Drop it on an empty part of a workspace and it lands at the end of the layout.
 Drop it on the **left or right edge of a window already there** and it opens
 beside it, splitting horizontally; the **top or bottom edge** splits
diff --git a/appwheel.c b/appwheel.c
index 448a0e5..9042ea0 100644
--- a/appwheel.c
+++ b/appwheel.c
@@ -873,6 +873,11 @@ static void ov_poll(SDL_Window*win){
                         if(id&&ed){ snprintf(OV_BESIDE,sizeof OV_BESIDE,"%s",id);
                                     snprintf(OV_EDGE,sizeof OV_EDGE,"%s",ed); }
                     }
+                    else if(!strcmp(tok,"outer")){   /* beside the whole lot */
+                        char*ed=strtok(NULL," ");
+                        if(ed){ OV_BESIDE[0]='\0';
+                                snprintf(OV_EDGE,sizeof OV_EDGE,"%s",ed); }
+                    }
                 }
             }
             start=nl+1;
@@ -902,8 +907,9 @@ static void adopt_to(Config*c,pid_t pid,const char*target,
         if(fd>=0){ dup2(fd,0); dup2(fd,1); dup2(fd,2); if(fd>2) close(fd); }
         const char*av[12]; int n=0;
         av[n++]=c->swov; av[n++]="--adopt"; av[n++]=spid; av[n++]=target;
-        if(beside&&*beside&&edge&&*edge){
-            av[n++]="--beside"; av[n++]=beside; av[n++]="--edge"; av[n++]=edge;
+        if(edge&&*edge){
+            if(beside&&*beside){ av[n++]="--beside"; av[n++]=beside; }
+            av[n++]="--edge"; av[n++]=edge;
         }
         if(c->drop_focus)      av[n++]="--adopt-focus";
         if(c->overview_debug)  av[n++]="--adopt-debug";