From 853c64fbb7adf09743af0723c6f2a55e83451c99 Mon Sep 17 00:00:00 2001 From: bakkeby Date: Fri, 4 Oct 2019 00:20:47 +0200 Subject: [PATCH] Adding switchcol patch --- README.md | 5 ++++- patch/include.c | 4 ++++ patch/include.h | 4 ++++ patch/switchcol.c | 28 ++++++++++++++++++++++++++++ patch/switchcol.h | 1 + patches.h | 7 ++++++- 6 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 patch/switchcol.c create mode 100644 patch/switchcol.h diff --git a/README.md b/README.md index de452ee..302c77d 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t ### Changelog: -2019-10-03 - Added onlyquitonempty patch +2019-10-03 - Added onlyquitonempty and switchcol patches 2019-10-02 - Added restartsig, emptyview, focusurgent and focusadjacenttag patches @@ -173,6 +173,9 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t - [sticky](https://dwm.suckless.org/patches/sticky/) - adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags + - [switchcol](https://dwm.suckless.org/patches/switchcol/) + - allows you to switch focus between the master and stack columns using a single keybinding + - [switchtag](https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-switchtag-6.2.diff) - when an application opens on a specific tab this patch adds the option to also switch to that tag when the application starts diff --git a/patch/include.c b/patch/include.c index cd52548..ca231a0 100644 --- a/patch/include.c +++ b/patch/include.c @@ -86,6 +86,10 @@ #include "systray.c" #endif +#if SWITCHCOL_PATCH +#include "switchcol.c" +#endif + #if TAGALLMON_PATCH #include "tagallmon.c" #endif diff --git a/patch/include.h b/patch/include.h index ca2940a..2522376 100644 --- a/patch/include.h +++ b/patch/include.h @@ -86,6 +86,10 @@ #include "systray.h" #endif +#if SWITCHCOL_PATCH +#include "switchcol.h" +#endif + #if TAGALLMON_PATCH #include "tagallmon.h" #endif diff --git a/patch/switchcol.c b/patch/switchcol.c new file mode 100644 index 0000000..b2fe595 --- /dev/null +++ b/patch/switchcol.c @@ -0,0 +1,28 @@ +void +switchcol(const Arg *arg) +{ + Client *c, *t; + int col = 0; + int i; + + if (!selmon->sel) + return; + for (i = 0, c = nexttiled(selmon->clients); c ; + c = nexttiled(c->next), i++) { + if (c == selmon->sel) + col = (i + 1) > selmon->nmaster; + } + if (i <= selmon->nmaster) + return; + for (c = selmon->stack; c; c = c->snext) { + if (!ISVISIBLE(c)) + continue; + for (i = 0, t = nexttiled(selmon->clients); t && t != c; + t = nexttiled(t->next), i++); + if (t && (i + 1 > selmon->nmaster) != col) { + focus(c); + restack(selmon); + break; + } + } +} \ No newline at end of file diff --git a/patch/switchcol.h b/patch/switchcol.h new file mode 100644 index 0000000..f7f5f96 --- /dev/null +++ b/patch/switchcol.h @@ -0,0 +1 @@ +static void switchcol(const Arg *arg); \ No newline at end of file diff --git a/patches.h b/patches.h index eed308b..b978781 100644 --- a/patches.h +++ b/patches.h @@ -276,6 +276,11 @@ */ #define SYSTRAY_PATCH 0 +/* Switch focus between the master and stack columns using a single keybinding. + * https://dwm.suckless.org/patches/switchcol/ + */ +#define SWITCHCOL_PATCH 0 + /* By default dwm allow you to set application specific rules so that you can have your browser, * for example, start up on tag 9 optionally on a given monitor when you open your browser it is * then automatically moved to the configured tag, but you have to manually enable the tag to see @@ -284,7 +289,7 @@ * 0 is default behaviour * 1 automatically moves you to the tag of the newly opened application and * 2 enables the tag of the newly opened application in addition to your existing enabled tags - + * * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-switchtag-6.2.diff */ #define SWITCHTAG_PATCH 0