SwAS git · main
SwAS - app switcher for sway (SVG/PNG icons, themeable)
C 97.5% Markdown 1.6%git clone https://git.christianimmanuel.de/sway/SwAS.gitwget https://git.christianimmanuel.de/sway/SwAS/archive/SwAS.tar.gzMaybe something about interactio nwith other apps
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";