summaryrefslogtreecommitdiff
path: root/dwm/my-selwin.diff
diff options
context:
space:
mode:
authorThomas Ulmer <thomasmulmer02@gmail.com>2025-12-08 11:09:26 -0800
committerThomas Ulmer <thomasmulmer02@gmail.com>2025-12-08 11:09:26 -0800
commit78f1d733b5a24bba9cd36c0fde335e14407d12f7 (patch)
tree9753aae3a07c84884cd72a475a21b0b3a9cfccf6 /dwm/my-selwin.diff
parent09075c06088f20df98deb64662477302faeebf13 (diff)
dwm patches to git
Diffstat (limited to 'dwm/my-selwin.diff')
-rw-r--r--dwm/my-selwin.diff92
1 files changed, 0 insertions, 92 deletions
diff --git a/dwm/my-selwin.diff b/dwm/my-selwin.diff
deleted file mode 100644
index 66ab6be..0000000
--- a/dwm/my-selwin.diff
+++ /dev/null
@@ -1,92 +0,0 @@
-diff -urN ../dwm-clean/config.def.h ./config.def.h
---- ../dwm-clean/config.def.h 2025-08-09 06:00:55.740267680 -0700
-+++ ./config.def.h 2025-12-04 11:02:06.893182108 -0800
-@@ -73,6 +73,7 @@
- { MODKEY, XK_l, setmfact, {.f = +0.05} },
- { MODKEY, XK_Return, zoom, {0} },
- { MODKEY, XK_Tab, view, {0} },
-+ { MODKEY, XK_w, selectclient, {0} },
- { MODKEY|ShiftMask, XK_c, killclient, {0} },
- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
- { MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
-diff -urN ../dwm-clean/dwm.c ./dwm.c
---- ../dwm-clean/dwm.c 2025-08-09 06:00:55.740267680 -0700
-+++ ./dwm.c 2025-12-04 11:01:00.243873971 -0800
-@@ -194,6 +194,7 @@
- static void restack(Monitor *m);
- static void run(void);
- static void scan(void);
-+static void selectclient(const Arg *arg);
- static int sendevent(Client *c, Atom proto);
- static void sendmon(Client *c, Monitor *m);
- static void setclientstate(Client *c, long state);
-@@ -1416,6 +1417,69 @@
- }
- }
-
-+void
-+selectclient(const Arg *_arg)
-+{
-+ static const char* dmenuwincmd[] = { "dmenu", "-i", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_purple, "-sf", col_gray4, NULL };
-+ Client *c;
-+ int fds[4]; /* cin,sout,sin,cout */
-+ const char ln = '\n';
-+ char selected[257];
-+ int ret;
-+ struct sigaction sa;
-+ Arg arg;
-+
-+ dmenumon[0] = '0' + selmon->num;
-+
-+ if (pipe(fds))
-+ return;
-+ if (pipe(fds+2)) {
-+ close(fds[0]);
-+ close(fds[1]);
-+ return;
-+ }
-+ if (fork() == 0) {
-+ close(fds[1]);
-+ close(fds[2]);
-+ dup2(fds[0], 0);
-+ dup2(fds[3], 1);
-+
-+ if (dpy)
-+ close(ConnectionNumber(dpy));
-+ setsid();
-+
-+ sigemptyset(&sa.sa_mask);
-+ sa.sa_flags = 0;
-+ sa.sa_handler = SIG_DFL;
-+ sigaction(SIGCHLD, &sa, NULL);
-+
-+ execvp(((char **)dmenuwincmd)[0], (char **)dmenuwincmd);
-+ die("dwm: execvp 'dmenu' for window select failed:");
-+ }
-+ close(fds[0]);
-+ close(fds[3]);
-+
-+ for (c = selmon->clients; c; c = c->next) {
-+ write(fds[1], c->name, strlen(c->name));
-+ write(fds[1], &ln, 1);
-+ }
-+ close(fds[1]);
-+ ret = read(fds[2], selected, 256);
-+ for (int i = 0; i < 256 && (selected[i] != '\n' || (selected[i] = 0)); ++i);
-+ close(fds[2]);
-+ if (ret <= 0)
-+ return;
-+ for (c = selmon->clients; c; c = c->next) {
-+ if (!strcmp(c->name, selected)) {
-+ arg.ui = c->tags;
-+ view(&arg);
-+ focus(c);
-+ return;
-+ }
-+
-+ }
-+}
-+
- void
- sendmon(Client *c, Monitor *m)
- {