sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit c1f732a888fa7b7092de4a3a8e80bb62daeee5db
parent 03effda6ad17542ce4a29bce5c2290e2f0d83c49
Author: Zhen Xu <xuzhen165@gmail.com>
Date:   Tue,  4 Oct 2022 23:48:52 -0400

Multiple monitor

Updated the original patch to cycle through all clients on all monitors
to respond to urgent flag on a different monitor.

Zhen Xu <xuzhen165@gmail.com>

Diffstat:
Adwm.suckless.org/patches/focusurgent/dwm-focusurgent-20221004-6.3.diff | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdwm.suckless.org/patches/focusurgent/index.md | 7+++++++
2 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/dwm.suckless.org/patches/focusurgent/dwm-focusurgent-20221004-6.3.diff b/dwm.suckless.org/patches/focusurgent/dwm-focusurgent-20221004-6.3.diff @@ -0,0 +1,55 @@ +Author: Jan Christoph Ebersbach <jceb@e-jc.de> +URL: http://dwm.suckless.org/patches/focusurgent +focusurgent selects the next window having the urgent flag regardless of the tag +it is on. The urgent flag can be artificially set with the following xdotool +command on any window: xdotool selectwindow -- set_window --urgency 1 +--- +Author: Zhen Xu <xuzhen165@gmail.com> +Update: adapt to multiple monitors. The original patch was not aware of multiple +monitors. I tested with two monitors but I don't have access to more monitors. + +Index: clean/dwm/config.def.h +=================================================================== +--- a/config.def.h ++++ b/config.def.h +@@ -60,6 +60,7 @@ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() + static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; + static const char *termcmd[] = { "st", NULL }; + ++#include "focusurgent.c" + static Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, +@@ -95,6 +96,7 @@ static Key keys[] = { + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, ++ { MODKEY, XK_u, focusurgent, {0} }, + }; + + /* button definitions */ +Index: clean/dwm/focusurgent.c +=================================================================== +--- /dev/null ++++ b/focusurgent.c +@@ -0,0 +1,20 @@ ++static void ++focusurgent(const Arg *arg) { ++ Monitor *m; ++ Client *c; ++ int i; ++ for(m=mons; m; m=m->next){ ++ for(c=m->clients; c && !c->isurgent; c=c->next); ++ if(c) { ++ unfocus(selmon->sel, 0); ++ selmon = m; ++ for(i=0; i < LENGTH(tags) && !((1 << i) & c->tags); i++); ++ if(i < LENGTH(tags)) { ++ const Arg a = {.ui = 1 << i}; ++ view(&a); ++ focus(c); ++ warp(c); ++ } ++ } ++ } ++} diff --git a/dwm.suckless.org/patches/focusurgent/index.md b/dwm.suckless.org/patches/focusurgent/index.md @@ -7,10 +7,17 @@ Description * The urgent flag can be artificially set with the following xdotool command on any window: `xdotool selectwindow -- set_window --urgency 1` +Changelog +--------- +2022-10-04: +* Add support for multiple monitors + Download -------- +* [dwm-focusurgent-20221004-6.3.diff](dwm-focusurgent-20221004-6.3.diff) * [dwm-focusurgent-20160831-56a31dc.diff](dwm-focusurgent-20160831-56a31dc.diff) Author ------ * Jan Christoph Ebersbach <jceb@e-jc.de> +* Zhen Xu <xuzhen165@gmail.com>: multiple monitor