diff options
| author | ProsperousPotato <ProsperousPotato@users.noreply.github.com> | 2026-01-03 17:18:54 +0000 |
|---|---|---|
| committer | ProsperousPotato <ProsperousPotato@users.noreply.github.com> | 2026-01-03 17:18:54 +0000 |
| commit | f02c46f670993700cd9166f118da171deb6eaf01 (patch) | |
| tree | 97c7360f9bb1e017e836b7ff46abc7cab4f26d5b /dwm.c | |
| parent | 4602687c6d5a49475bd33b12af5d6f5c39b63e86 (diff) | |
super + a swaps to last used window, default browser: glide
Diffstat (limited to 'dwm.c')
| -rw-r--r-- | dwm.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -211,6 +211,7 @@ static void showhide(Client *c); static void sighup(int unused); static void sigterm(int unused); static void spawn(const Arg *arg); +static void swapfocus(); static void tag(const Arg *arg); static void tagmon(const Arg *arg); static void tile(Monitor *m); @@ -246,6 +247,7 @@ static Client *termforwin(const Client *c); static pid_t winpid(Window w); /* variables */ +static Client *prevclient = NULL; static const char broken[] = "broken"; static int screen; static int sw, sh; /* X display screen geometry width, height */ @@ -1891,6 +1893,15 @@ spawn(const Arg *arg) } void +swapfocus() +{ + Client *c; + for(c = selmon->clients; c && c != prevclient; c = c->next) ; + if(c == prevclient) + focus(prevclient); +} + +void tag(const Arg *arg) { if (selmon->sel && arg->ui & TAGMASK) { @@ -2014,6 +2025,7 @@ unfocus(Client *c, int setfocus) { if (!c) return; + prevclient = c; grabbuttons(c, 0); if (c->isfloating) XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColFloat].pixel); @@ -2485,6 +2497,7 @@ void zoom(const Arg *arg) { Client *c = selmon->sel; + prevclient = selmon->clients; if (!selmon->lt[selmon->sellt]->arrange || !c || c->isfloating) return; |
