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 --- config.h | 5 ++++- dwm.c | 13 +++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/config.h b/config.h index 7ae0f8f..4d814df 100644 --- a/config.h +++ b/config.h @@ -2,7 +2,7 @@ /* Constants */ #define TERMINAL "st" -#define BROWSER "icecat" +#define BROWSER "glide" /* appearance */ static const unsigned int borderpx = 2; /* border pixel of windows */ @@ -117,8 +117,11 @@ static const Key keys[] = { { MODKEYTWO, XK_Escape, spawn, SHCMD(TERMINAL" -c stfloat -e htop") }, { MODKEY, XK_x, spawn, SHCMD("xkill") }, { MODKEY, XK_w, spawn, SHCMD(BROWSER) }, + { MODKEY|ShiftMask, XK_w, spawn, SHCMD("icecat") }, + { MODKEY, XK_a, swapfocus, {0} }, #ifdef __linux__ + { MODKEY, XK_g, spawn, SHCMD(TERMINAL" -c stfloat -e watch -c -n 2 genlop -c") }, { MODKEY, XK_s, spawn, SHCMD("steam -dev") }, { MODKEY|ShiftMask, XK_s, spawn, SHCMD("pkill steam") }, 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