Compare commits

...

6 commits

7 changed files with 122 additions and 110 deletions

View file

@ -128,7 +128,7 @@ static const int ulineall = 0; /* 1 to show underline on all ta
#define NAMETAG_FORMAT "%s"
#endif // NAMETAG_PREPEND_PATCH
/* The maximum amount of bytes reserved for each tag text. */
#define MAX_TAGLEN 32
#define MAX_TAGLEN 64
/* The command to run (via popen). This can be tailored by adding a prompt, passing other command
* line arguments or providing name options. Optionally you can use other dmenu like alternatives
* like rofi -dmenu. */
@ -679,61 +679,61 @@ static const int scrollargs[][2] = {
#if FLEXTILE_DELUXE_LAYOUT
static const Layout layouts[] = {
/* symbol arrange function, { nmaster, nstack, layout, master axis, stack axis, secondary stack axis, symbol func } */
{ "[]=", flextile, { -1, -1, SPLIT_VERTICAL, TOP_TO_BOTTOM, TOP_TO_BOTTOM, 0, NULL } }, // default tile layout
{ "><>", NULL, {0} }, /* no layout function means floating behavior */
{ "[M]", flextile, { -1, -1, NO_SPLIT, MONOCLE, MONOCLE, 0, NULL } }, // monocle
{ "|||", flextile, { -1, -1, SPLIT_VERTICAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, 0, NULL } }, // columns (col) layout
{ ">M>", flextile, { -1, -1, FLOATING_MASTER, LEFT_TO_RIGHT, LEFT_TO_RIGHT, 0, NULL } }, // floating master
{ "[D]", flextile, { -1, -1, SPLIT_VERTICAL, TOP_TO_BOTTOM, MONOCLE, 0, NULL } }, // deck
{ "TTT", flextile, { -1, -1, SPLIT_HORIZONTAL, LEFT_TO_RIGHT, LEFT_TO_RIGHT, 0, NULL } }, // bstack
{ "===", flextile, { -1, -1, SPLIT_HORIZONTAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, 0, NULL } }, // bstackhoriz
{ "|M|", flextile, { -1, -1, SPLIT_CENTERED_VERTICAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, TOP_TO_BOTTOM, NULL } }, // centeredmaster
{ "-M-", flextile, { -1, -1, SPLIT_CENTERED_HORIZONTAL, TOP_TO_BOTTOM, LEFT_TO_RIGHT, LEFT_TO_RIGHT, NULL } }, // centeredmaster horiz
{ ":::", flextile, { -1, -1, NO_SPLIT, GAPPLESSGRID, GAPPLESSGRID, 0, NULL } }, // gappless grid
{ "[\\]", flextile, { -1, -1, NO_SPLIT, DWINDLE, DWINDLE, 0, NULL } }, // fibonacci dwindle
{ "(@)", flextile, { -1, -1, NO_SPLIT, SPIRAL, SPIRAL, 0, NULL } }, // fibonacci spiral
{ "[T]", flextile, { -1, -1, SPLIT_VERTICAL, LEFT_TO_RIGHT, TATAMI, 0, NULL } }, // tatami mats
{ "󰯌", flextile, { -1, -1, SPLIT_VERTICAL, TOP_TO_BOTTOM, TOP_TO_BOTTOM, 0, NULL } }, // default tile layout
{ "󱂬", NULL, {0} }, /* no layout function means floating behavior */
{ "󱟱", flextile, { -1, -1, NO_SPLIT, MONOCLE, MONOCLE, 0, NULL } }, // monocle
{ "󰕭", flextile, { -1, -1, SPLIT_VERTICAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, 0, NULL } }, // columns (col) layout
{ "󰕬", flextile, { -1, -1, FLOATING_MASTER, LEFT_TO_RIGHT, LEFT_TO_RIGHT, 0, NULL } }, // floating master
{ "󱒇", flextile, { -1, -1, SPLIT_VERTICAL, TOP_TO_BOTTOM, MONOCLE, 0, NULL } }, // deck
{ "󱢈", flextile, { -1, -1, SPLIT_HORIZONTAL, LEFT_TO_RIGHT, LEFT_TO_RIGHT, 0, NULL } }, // bstack
{ "󰯋", flextile, { -1, -1, SPLIT_HORIZONTAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, 0, NULL } }, // bstackhoriz
{ "󰕫", flextile, { -1, -1, SPLIT_CENTERED_VERTICAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, TOP_TO_BOTTOM, NULL } }, // centeredmaster
{ "󰕯", flextile, { -1, -1, SPLIT_CENTERED_HORIZONTAL, TOP_TO_BOTTOM, LEFT_TO_RIGHT, LEFT_TO_RIGHT, NULL } }, // centeredmaster horiz
{ "󰕰", flextile, { -1, -1, NO_SPLIT, GAPPLESSGRID, GAPPLESSGRID, 0, NULL } }, // gappless grid
{ "󰕴", flextile, { -1, -1, NO_SPLIT, DWINDLE, DWINDLE, 0, NULL } }, // fibonacci dwindle
{ "󱒎", flextile, { -1, -1, NO_SPLIT, SPIRAL, SPIRAL, 0, NULL } }, // fibonacci spiral
{ "󰡃", flextile, { -1, -1, SPLIT_VERTICAL, LEFT_TO_RIGHT, TATAMI, 0, NULL } }, // tatami mats
#if TILE_LAYOUT
{ "[]=", tile, {0} },
{ "󰯌", tile, {0} },
#endif
#if MONOCLE_LAYOUT
{ "[M]", monocle, {0} },
{ "󱟱", monocle, {0} },
#endif
#if BSTACK_LAYOUT
{ "TTT", bstack, {0} },
{ "󱢈", bstack, {0} },
#endif
#if BSTACKHORIZ_LAYOUT
{ "===", bstackhoriz, {0} },
{ "󰯋", bstackhoriz, {0} },
#endif
#if CENTEREDMASTER_LAYOUT
{ "|M|", centeredmaster, {0} },
{ "󰕫", centeredmaster, {0} },
#endif
#if CENTEREDFLOATINGMASTER_LAYOUT
{ ">M>", centeredfloatingmaster, {0} },
{ "󰕬", centeredfloatingmaster, {0} },
#endif
#if COLUMNS_LAYOUT
{ "|||", col, {0} },
{ "󰕭", col, {0} },
#endif
#if DECK_LAYOUT
{ "[D]", deck, {0} },
{ "󱒇", deck, {0} },
#endif
#if FIBONACCI_SPIRAL_LAYOUT
{ "(@)", spiral, {0} },
{ "󱒎", spiral, {0} },
#endif
#if FIBONACCI_DWINDLE_LAYOUT
{ "[\\]", dwindle, {0} },
{ "󰕴", dwindle, {0} },
#endif
#if GRIDMODE_LAYOUT
{ "HHH", grid, {0} },
{ "󰾍", grid, {0} },
#endif
#if HORIZGRID_LAYOUT
{ "---", horizgrid, {0} },
{ "󱇙", horizgrid, {0} },
#endif
#if GAPPLESSGRID_LAYOUT
{ ":::", gaplessgrid, {0} },
{ "󰕰", gaplessgrid, {0} },
#endif
#if NROWGRID_LAYOUT
{ "###", nrowgrid, {0} },
{ "󰕳", nrowgrid, {0} },
#endif
};
#else

View file

@ -2711,11 +2711,11 @@ motionnotify(XEvent *e)
#if !FOCUSONCLICK_PATCH
static Monitor *mon = NULL;
Monitor *m;
#endif // FOCUSONCLICK_PATCH
Bar *bar;
#if LOSEFULLSCREEN_PATCH
Client *sel;
#endif // LOSEFULLSCREEN_PATCH
#endif // FOCUSONCLICK_PATCH
Bar *bar;
XMotionEvent *ev = &e->xmotion;
if ((bar = wintobar(ev->window))) {
@ -4380,13 +4380,24 @@ unfocus(Client *c, int setfocus, Client *nextfocus)
selmon->pertag->prevclient[selmon->pertag->curtag] = c;
#endif // SWAPFOCUS_PATCH
#if LOSEFULLSCREEN_PATCH
if (c->isfullscreen && ISVISIBLE(c) && c->mon == selmon && nextfocus && !nextfocus->isfloating)
if (c->isfullscreen && ISVISIBLE(c) && c->mon == selmon && nextfocus && !nextfocus->isfloating) {
#if RENAMED_SCRATCHPADS_PATCH && RENAMED_SCRATCHPADS_AUTO_HIDE_PATCH
#if FAKEFULLSCREEN_CLIENT_PATCH
if (c->scratchkey != 0 && c->fakefullscreen != 1)
togglescratch(&((Arg) {.v = (const char*[]){ &c->scratchkey, NULL } }));
#else
if (c->scratchkey != 0)
togglescratch(&((Arg) {.v = (const char*[]){ &c->scratchkey, NULL } }));
#endif // FAKEFULLSCREEN_CLIENT_PATCH
else
#endif // RENAMED_SCRATCHPADS_AUTO_HIDE_PATCH
#if FAKEFULLSCREEN_CLIENT_PATCH
if (c->fakefullscreen != 1)
setfullscreen(c, 0);
#else
setfullscreen(c, 0);
#endif // #if FAKEFULLSCREEN_CLIENT_PATCH
}
#endif // LOSEFULLSCREEN_PATCH
grabbuttons(c, 0);
#if !BAR_FLEXWINTITLE_PATCH

View file

@ -44,9 +44,10 @@ deck(Monitor *m)
#endif // VANITYGAPS_PATCH
getfacts(m, mh, sh, &mfacts, &sfacts, &mrest, &srest);
#if !MONOCLESYMBOL_PATCH
if (n - m->nmaster > 0) /* override layout symbol */
snprintf(m->ltsymbol, sizeof m->ltsymbol, "D %d", n - m->nmaster);
#endif // MONOCLESMYBOL_PATCH
for (i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
if (i < m->nmaster) {

View file

@ -1,33 +1,33 @@
#!/bin/sh
cat <<EOF | xmenu
[]= (Flextile) Tiled 0
><> (Flextile) Floating 1
[M] (Flextile) Monocle 2
||| (Flextile) Columns 3
>M> (Flextile) Floating Master 4
[D] (Flextile) Deck 5
TTT (Flextile) Bottom Stack 6
=== (Flextile) Bottom Stack Horizontal 7
|M| (Flextile) Centered Naster 8
-M- (Flextile) Centered Master Horizontal 9
::: (Flextile) Gapless Grid 10
[\] (Flextile) Fibonacci Dwindle 11
(@) (Flextile) Fibonacci Spiral 12
[T] (Flextile) Tatami Tats 13
[]= Tiled 14
[M] Monocle 15
TTT Bottom Stack 16
=== Bottom Stack Horizontal 17
|M| Centered Master 18
>M> Centered Floating Master 19
||| Columns 20
[D] Deck 21
(@) Fibonacci Spiral 22
[\\] Fibonacci Dwindle 23
HHH Grid 24
--- Horizontal Grid 25
::: Gapless Grid 26
### N-row Grid 27
󰯌 (Flextile) Tiled 0
󱂬 Floating 1
󱟱 (Flextile) Monocle 2
󰕭 (Flextile) Columns 3
󰕬 (Flextile) Floating Master 4
󱒇 (Flextile) Deck 5
󱢈 (Flextile) Bottom Stack 6
󰯋 (Flextile) Bottom Stack Horizontal 7
󰕫 (Flextile) Centered Naster 8
󰕯 (Flextile) Centered Master Horizontal 9
󰕰 (Flextile) Gapless Grid 10
󰕴 (Flextile) Fibonacci Dwindle 11
󱒎 (Flextile) Fibonacci Spiral 12
󰡃 (Flextile) Tatami Tats 13
󰯌 Tiled 14
󱟱 Monocle 15
󱢈 Bottom Stack 16
󰯋 Bottom Stack Horizontal 17
󰕫 Centered Master 18
󰕬 Centered Floating Master 19
󰕭 Columns 20
󱒇 Deck 21
󰕴 Fibonacci Spiral 22
󱒎 Fibonacci Dwindle 23
󰾍 Grid 24
󱇙 Horizontal Grid 25
󰕰 Gapless Grid 26
󰕳 N-row Grid 27
EOF

View file

@ -66,12 +66,13 @@ togglescratch(const Arg *arg)
if (c->scratchkey != ((char**)arg->v)[0][0])
continue;
/* awesomebar / wintitleactions compatibility, unhide scratchpad if hidden
#if BAR_WINTITLEACTIONS_PATCH
/* unhide scratchpad if hidden */
if (HIDDEN(c)) {
XMapWindow(dpy, c->win);
setclientstate(c, NormalState);
}
*/
#endif // BAR_WINTITLEACTIONS_PATCH
/* Record the first found scratchpad client for focus purposes, but prioritise the
scratchpad on the current monitor if one exists */
@ -148,4 +149,3 @@ togglescratch(const Arg *arg)
spawnscratch(arg);
}
}

View file

@ -526,7 +526,7 @@
/* As above, except that the transient window is centered within the position of the parent
* window, rather than at the center of the screen. This takes precedence over the above patch.
*/
#define CENTER_TRANSIENT_WINDOWS_BY_PARENT_PATCH 0
#define CENTER_TRANSIENT_WINDOWS_BY_PARENT_PATCH 1
/* This patch provides the ability to assign different weights to clients in their
* respective stack in tiled layout.
@ -644,7 +644,7 @@
/* Allows focusing on clients based on direction (up, down, left, right) instead of client order.
* https://github.com/bakkeby/patches/wiki/focusdir/
*/
#define FOCUSDIR_PATCH 0
#define FOCUSDIR_PATCH 1
/* When changing tags, closing windows or moving clients out of view then focus will revert to the
* client window that remains under the mouse cursor rather than the most recently focused window.
@ -673,7 +673,7 @@
* the urgency bit on the named window. This patch activates the window instead.
* https://dwm.suckless.org/patches/focusonnetactive/
*/
#define FOCUSONNETACTIVE_PATCH 0
#define FOCUSONNETACTIVE_PATCH 1
/* Send "fake signals" to dwm for handling, using xsetroot. This will not conflict with the
* status bar, which also is managed using xsetroot.
@ -692,7 +692,7 @@
* area (master or stack) without affecting the other area.
* https://dwm.suckless.org/patches/inplacerotate/
*/
#define INPLACEROTATE_PATCH 0
#define INPLACEROTATE_PATCH 1
/* This patch lets you define custom insets from each edge of the screen. One use case would be
* to arrange space for an external bar.
@ -717,13 +717,13 @@
/* Adds rule option for clients to avoid accidental termination by killclient for sticky windows.
* https://dwm.suckless.org/patches/ispermanent/
*/
#define ISPERMANENT_PATCH 0
#define ISPERMANENT_PATCH 1
/* This patch adds key modes (like in vim or emacs) where chains of keyboard shortcuts
* can be performed.
* https://dwm.suckless.org/patches/keymodes/
*/
#define KEYMODES_PATCH 0
#define KEYMODES_PATCH 1
/* This patch adds a keybinding to kills all visible clients that are not selected.
* https://dwm.suckless.org/patches/killunsel/
@ -772,7 +772,7 @@
* is activated. Do not display the number of open clients in the current tag.
* https://dwm.suckless.org/patches/monoclesymbol/
*/
#define MONOCLESYMBOL_PATCH 0
#define MONOCLESYMBOL_PATCH 1
/* Makes a window floating and 1/3rd the height and 1/3rd the width of the screen and is
* positioned in either the center or one of the 8 cardinal directions depending on which
@ -821,7 +821,7 @@
* Zoom video conferencing application.
* https://github.com/bakkeby/patches/wiki/netclientliststacking/
*/
#define NET_CLIENT_LIST_STACKING_PATCH 0
#define NET_CLIENT_LIST_STACKING_PATCH 1
/* Removes the border when there is only one window visible.
* https://dwm.suckless.org/patches/noborder/
@ -914,11 +914,11 @@
*
* https://github.com/bakkeby/patches/wiki/renamedscratchpads
*/
#define RENAMED_SCRATCHPADS_PATCH 0
#define RENAMED_SCRATCHPADS_PATCH 1
/* Renamed scratchpads option to auto-hide scratchpads when moving to a different tag.
* This behaviour is similar to that of the (multiple) scratchpads patch. */
#define RENAMED_SCRATCHPADS_AUTO_HIDE_PATCH 0
#define RENAMED_SCRATCHPADS_AUTO_HIDE_PATCH 1
/* Shifts all clients per tag to leftmost unoccupied tags.
*
@ -930,7 +930,7 @@
* leftmost tag, and will be reduced to one tag after the operation is complete.
* https://dwm.suckless.org/patches/reorganizetags/
*/
#define REORGANIZETAGS_PATCH 0
#define REORGANIZETAGS_PATCH 1
/* By default, windows only resize from the bottom right corner. With this
* patch the mouse is warped to the nearest corner and you resize from there.
@ -987,10 +987,10 @@
* https://lists.suckless.org/hackers/2004/17205.html
* https://dwm.suckless.org/patches/scratchpads/
*/
#define SCRATCHPADS_PATCH 1
#define SCRATCHPADS_PATCH 0
/* Minor alteration of the above allowing clients to keep their size and position when shown */
#define SCRATCHPADS_KEEP_POSITION_AND_SIZE_PATCH 1
#define SCRATCHPADS_KEEP_POSITION_AND_SIZE_PATCH 0
/* This alternative patch enables a scratchpad feature in dwm similar to the scratchpad
* feature in i3wm.
@ -1228,7 +1228,7 @@
* while remaining in fullscreen.
* https://github.com/bakkeby/patches/blob/master/dwm/dwm-tagmonfixfs-6.2.diff
*/
#define TAGMONFIXFS_PATCH 0
#define TAGMONFIXFS_PATCH 1
/* Add functions and keybindings to tag a window to a desired tag on the next (right)
* or previous (left) monitor from the currently selected monitor.
@ -1247,7 +1247,7 @@
* Also refer to the desktop patch:
* https://github.com/bakkeby/patches/blob/master/dwm/dwm-desktop-6.3.diff
*/
#define TAGSYNC_PATCH 0
#define TAGSYNC_PATCH 1
/* This patch can be useful to the touchpad users because it allows to
* resize windows using Mod + two-finger scroll. It is useful when
@ -1276,7 +1276,7 @@
* https://github.com/bakkeby/patches/wiki/togglelayout
*/
#define TOGGLELAYOUT_PATCH 0
#define TOGGLELAYOUT_PATCH 1
/* Minor patch that lets you use the same keyboard shortcut to toggle to the previous tag if the
* designated tag is already active.
@ -1363,7 +1363,7 @@
* view (Mod-0) using a keyboard shortcut.
* http://dwm.suckless.org/patches/winview/
*/
#define WINVIEW_PATCH 0
#define WINVIEW_PATCH 1
/* Remember keyboard layout per client.
* It is recommended that you configure xkb before using this patch as described in

View file

@ -1,33 +1,33 @@
#!/bin/sh
cat <<EOF | jgmenu --simple --at-pointer
(Flextile) Tiled, dwmc setlayoutex 0
(Flextile) Floating, dwmc setlayoutex 1
(Flextile) Monocle, dwmc setlayoutex 2
(Flextile) Columns, dwmc setlayoutex 3
(Flextile) Floating Master, dwmc setlayoutex 4
(Flextile) Deck, dwmc setlayoutex 5
(Flextile) Bottom Stack, dwmc setlayoutex 6
(Flextile) Bottom Stack Horizontal, dwmc setlayoutex 7
(Flextile) Centered Naster, dwmc setlayoutex 8
(Flextile) Centered Master Horizontal, dwmc setlayoutex 9
(Flextile) Gapless Grid, dwmc setlayoutex 10
(Flextile) Fibonacci Dwindle, dwmc setlayoutex 11
(Flextile) Fibonacci Spiral, dwmc setlayoutex 12
(Flextile) Tatami Tats, dwmc setlayoutex 13
Tiled, dwmc setlayoutex 14
Monocle, dwmc setlayoutex 15
Bottom Stack, dwmc setlayoutex 16
Bottom Stack Horizontal, dwmc setlayoutex 17
Centered Master, dwmc setlayoutex 18
Centered Floating Master, dwmc setlayoutex 19
Columns, dwmc setlayoutex 20
Deck, dwmc setlayoutex 21
Fibonacci Spiral, dwmc setlayoutex 22
Fibonacci Dwindle, dwmc setlayoutex 23
Grid, dwmc setlayoutex 24
Horizontal Grid, dwmc setlayoutex 25
Gapless Grid, dwmc setlayoutex 26
N-row Grid, dwmc setlayoutex 27
󰯌 (Flextile) Tiled, dwmc setlayoutex 0
󱂬 Floating, dwmc setlayoutex 1
󱟱 (Flextile) Monocle, dwmc setlayoutex 2
󰕭 (Flextile) Columns, dwmc setlayoutex 3
󰕬 (Flextile) Floating Master, dwmc setlayoutex 4
󱒇 (Flextile) Deck, dwmc setlayoutex 5
󱢈 (Flextile) Bottom Stack, dwmc setlayoutex 6
󰯋 (Flextile) Bottom Stack Horizontal, dwmc setlayoutex 7
󰕫 (Flextile) Centered Naster, dwmc setlayoutex 8
󰕯 (Flextile) Centered Master Horizontal, dwmc setlayoutex 9
󰕰 (Flextile) Gapless Grid, dwmc setlayoutex 10
󰕴 (Flextile) Fibonacci Dwindle, dwmc setlayoutex 11
󱒎 (Flextile) Fibonacci Spiral, dwmc setlayoutex 12
󰡃 (Flextile) Tatami Tats, dwmc setlayoutex 13
󰯌 Tiled, dwmc setlayoutex 14
󱟱 Monocle, dwmc setlayoutex 15
󱢈 Bottom Stack, dwmc setlayoutex 16
󰯋 Bottom Stack Horizontal, dwmc setlayoutex 17
󰕫 Centered Master, dwmc setlayoutex 18
󰕬 Centered Floating Master, dwmc setlayoutex 19
󰕭 Columns, dwmc setlayoutex 20
󱒇 Deck, dwmc setlayoutex 21
󰕴 Fibonacci Spiral, dwmc setlayoutex 22
󱒎 Fibonacci Dwindle, dwmc setlayoutex 23
󰾍 Grid, dwmc setlayoutex 24
󱇙 Horizontal Grid, dwmc setlayoutex 25
󰕰 Gapless Grid, dwmc setlayoutex 26
󰕳 N-row Grid, dwmc setlayoutex 27
EOF