From f02c46f670993700cd9166f118da171deb6eaf01 Mon Sep 17 00:00:00 2001 From: ProsperousPotato Date: Sat, 3 Jan 2026 17:18:54 +0000 Subject: super + a swaps to last used window, default browser: glide --- dwm.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'dwm.c') diff --git a/dwm.c b/dwm.c index ba69655..0024a03 100644 --- a/dwm.c +++ b/dwm.c @@ -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 */ @@ -1890,6 +1892,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) { @@ -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; -- cgit v1.2.3