sites

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

commit b82d1858e8f742d7237dcb735a08c1ae14199c0d
parent 0b3c5db3f210fa4082434244e3a6f74f6911214f
Author: hsszyman <hsszyman@gmail.com>
Date:   Wed,  3 Jul 2019 23:47:05 -0400

Removed unneeded modifications from patch (such as changing MODMASK), removed hardcoding from holdbar keybind, and the patch will no longer modify any code related to the togglebar.

Diffstat:
Mdwm.suckless.org/patches/holdbar/dwm-holdbar-6.2.diff | 111+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mdwm.suckless.org/patches/holdbar/index.md | 19+++++--------------
2 files changed, 63 insertions(+), 67 deletions(-)

diff --git a/dwm.suckless.org/patches/holdbar/dwm-holdbar-6.2.diff b/dwm.suckless.org/patches/holdbar/dwm-holdbar-6.2.diff @@ -1,45 +1,35 @@ -From 6663a23fc0abce840bbbd31cec36434ee52a93b3 Mon Sep 17 00:00:00 2001 +From 5c1a4a448007664439350ed645206198411eb9d1 Mon Sep 17 00:00:00 2001 From: hsszyman <hsszyman@gmail.com> -Date: Wed, 26 Jun 2019 13:48:41 -0400 -Subject: [PATCH] holdbar +Date: Wed, 3 Jul 2019 23:32:57 -0400 +Subject: [PATCH] Fixed broken bottom bar and removed key hardcoding --- - config.def.h | 5 +++-- - dwm.c | 24 ++++++++++++++++++++++-- - 2 files changed, 25 insertions(+), 4 deletions(-) + config.def.h | 2 ++ + dwm.c | 40 ++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 42 insertions(+) diff --git a/config.def.h b/config.def.h -index 1c0b587..82c88d5 100644 +index 1c0b587..0e19b5d 100644 --- a/config.def.h +++ b/config.def.h -@@ -3,7 +3,7 @@ - /* appearance */ - static const unsigned int borderpx = 1; /* border pixel of windows */ - static const unsigned int snap = 32; /* snap pixel */ --static const int showbar = 1; /* 0 means no bar */ -+static const int showbar = 0; /* 0 means no bar */ - static const int topbar = 1; /* 0 means bottom bar */ - static const char *fonts[] = { "monospace:size=10" }; - static const char dmenufont[] = "monospace:size=10"; -@@ -44,7 +44,7 @@ static const Layout layouts[] = { - }; - - /* key definitions */ --#define MODKEY Mod1Mask -+#define MODKEY Mod4Mask - #define TAGKEYS(KEY,TAG) \ - { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ +@@ -50,6 +50,7 @@ static const Layout layouts[] = { { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ -@@ -94,6 +94,7 @@ static Key keys[] = { + { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ + { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, ++#define HOLDKEY 0 // replace 0 with the keysym to activate holdbar + + /* helper for spawning shell commands in the pre dwm-5.0 fashion */ + #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } +@@ -94,6 +95,7 @@ static Key keys[] = { TAGKEYS( XK_8, 7) TAGKEYS( XK_9, 8) { MODKEY|ShiftMask, XK_q, quit, {0} }, -+ { 0, XK_Super_L,holdbar, {0} }, ++ { 0, HOLDKEY, holdbar, {0} }, }; /* button definitions */ diff --git a/dwm.c b/dwm.c -index 4465af1..1933e2d 100644 +index 4465af1..4237031 100644 --- a/dwm.c +++ b/dwm.c @@ -176,6 +176,7 @@ static void grabbuttons(Client *c, int focused); @@ -58,57 +48,72 @@ index 4465af1..1933e2d 100644 static void togglefloating(const Arg *arg); static void toggletag(const Arg *arg); static void toggleview(const Arg *arg); -@@ -245,6 +247,7 @@ static int (*xerrorxlib)(Display *, XErrorEvent *); +@@ -217,6 +219,7 @@ static void unfocus(Client *c, int setfocus); + static void unmanage(Client *c, int destroyed); + static void unmapnotify(XEvent *e); + static void updatebarpos(Monitor *m); ++static void updateholdbarpos(Monitor *m); + static void updatebars(void); + static void updateclientlist(void); + static int updategeom(void); +@@ -245,6 +248,7 @@ static int (*xerrorxlib)(Display *, XErrorEvent *); static unsigned int numlockmask = 0; static void (*handler[LASTEvent]) (XEvent *) = { [ButtonPress] = buttonpress, -+ [ButtonRelease] = keyrelease, ++ [ButtonRelease] = keyrelease, [ClientMessage] = clientmessage, [ConfigureRequest] = configurerequest, [ConfigureNotify] = configurenotify, -@@ -252,6 +255,7 @@ static void (*handler[LASTEvent]) (XEvent *) = { +@@ -252,6 +256,7 @@ static void (*handler[LASTEvent]) (XEvent *) = { [EnterNotify] = enternotify, [Expose] = expose, [FocusIn] = focusin, -+ [KeyRelease] = keyrelease, ++ [KeyRelease] = keyrelease, [KeyPress] = keypress, [MappingNotify] = mappingnotify, [MapRequest] = maprequest, -@@ -275,6 +279,24 @@ static Window root, wmcheckwin; +@@ -275,6 +280,41 @@ static Window root, wmcheckwin; struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; }; /* function implementations */ + ++ +void -+keyrelease(XEvent *e) { -+ if (e->xkey.keycode == XKeysymToKeycode(dpy, XK_Super_L)) { -+ selmon->showbar = 0; -+ updatebarpos(selmon); -+ XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); -+ arrange(selmon); -+ } ++holdbar(const Arg *arg) ++{ ++ selmon->showbar = 1; ++ updateholdbarpos(selmon); ++ XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); +} + ++ +void -+holdbar(const Arg *arg) ++keyrelease(XEvent *e) ++{ ++ if (e->xkey.keycode == XKeysymToKeycode(dpy, HOLDKEY)){ ++ selmon->showbar = 0; ++ updateholdbarpos(selmon); ++ XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); ++ arrange(selmon); ++ } ++} ++ ++void ++updateholdbarpos(Monitor *m) +{ -+ selmon->showbar = 1; -+ updatebarpos(selmon); -+ XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); ++ m->wy = m->my; ++ m->wh = m->mh; ++ if (m->showbar) { ++ m->by = m->topbar ? m->wy : m->wy + m->wh - bh; ++ m->wy = m->topbar ? m->wy - bh + bh : m->wy; ++ } else { ++ m->by = -bh; ++ } +} ++ void applyrules(Client *c) { -@@ -1826,9 +1848,7 @@ updatebarpos(Monitor *m) - m->wy = m->my; - m->wh = m->mh; - if (m->showbar) { -- m->wh -= bh; - m->by = m->topbar ? m->wy : m->wy + m->wh; -- m->wy = m->topbar ? m->wy + bh : m->wy; - } else - m->by = -bh; - } -- 2.22.0 diff --git a/dwm.suckless.org/patches/holdbar/index.md b/dwm.suckless.org/patches/holdbar/index.md @@ -3,21 +3,12 @@ holdbar Description ----------- -This patch does 3 things: -1. Disables status bar by default -2. Changes the Mod key to the super key (MOD4) -3. Modifies super key behavior so that the status bar shows whenever MOD4 is held down +Dwm's built-in status bar is now only shown when HOLDKEY is pressed. In addition the bar will now overlay the display. This will work regardless of the topbar setting. +This is meant to be used with the bar off my default -This is useful if you want to save as much screen space as possible but still want frequent access to the information it provides. - -NOTE: This also modifies the status bar so that it only overlays windows. No readjustment will happen upon tag switches either. - -Directions ----------- -On a fresh dwm install do -1. git apply (PATCHDIR)/dwm-holdbar-6.2.diff -2. in project dir, sudo make clean install -3. Restart manager +Notes +----- +None of the togglebar code has been removed, although you might want to remove the togglebar binding in your config.def.h. Download