feat: changed default tiling modes

This commit is contained in:
2025-07-05 21:13:10 +02:00
parent e965863d95
commit d400b7b0e9
2 changed files with 106 additions and 99 deletions

View File

@@ -3,14 +3,14 @@
#include <X11/XF86keysym.h>
/* Helper macros for spawning commands */
#define SHCMD(cmd) \
{ \
.v = (const char *[]) { "/bin/sh", "-c", cmd, NULL } \
}
#define CMD(...) \
{ \
.v = (const char *[]) { __VA_ARGS__, NULL } \
}
#define SHCMD(cmd) \
{ \
.v = (const char *[]) { "/bin/sh", "-c", cmd, NULL } \
}
#define CMD(...) \
{ \
.v = (const char *[]) { __VA_ARGS__, NULL } \
}
/* appearance */
#if ROUNDED_CORNERS_PATCH
@@ -70,11 +70,12 @@ static const int topbar = 1; /* 0 means bottom bar */
/* Display modes of the tab bar: never shown, always shown, shown only in */
/* monocle mode in the presence of several windows. */
/* Modes after showtab_nmodes are disabled. */
enum showtab_modes {
showtab_never,
showtab_auto,
showtab_nmodes,
showtab_always
enum showtab_modes
{
showtab_never,
showtab_auto,
showtab_nmodes,
showtab_always
};
static const int showtab = showtab_auto; /* Default tab bar show mode */
static const int toptab = False; /* False means bottom tab bar */
@@ -176,7 +177,7 @@ static const unsigned int tabcyclekey =
static const unsigned int tabposy =
1; /* tab position on Y axis, 0 = top, 1 = center, 2 = bottom */
static const unsigned int tabposx =
1; /* tab position on X axis, 0 = left, 1 = center, 2 = right */
1; /* tab position on X axis, 0 = left, 1 = center, 2 = right */
static const unsigned int maxwtab = 600; /* tab menu width */
static const unsigned int maxhtab = 200; /* tab menu height */
#endif // ALT_TAB_PATCH
@@ -382,10 +383,14 @@ static const char title_bg_dark[] = "#303030";
static const char title_bg_light[] = "#fdfdfd";
static const int color_ptrs[][ColCount] = {
/* fg bg border float */
[SchemeNorm] = {-1, -1, 5, 12}, [SchemeSel] = {-1, -1, 11, 13},
[SchemeTitleNorm] = {6, -1, -1, -1}, [SchemeTitleSel] = {6, -1, -1, -1},
[SchemeTagsNorm] = {2, 0, 0, -1}, [SchemeTagsSel] = {6, 5, 5, -1},
[SchemeHidNorm] = {5, 0, 0, -1}, [SchemeHidSel] = {6, -1, -1, -1},
[SchemeNorm] = {-1, -1, 5, 12},
[SchemeSel] = {-1, -1, 11, 13},
[SchemeTitleNorm] = {6, -1, -1, -1},
[SchemeTitleSel] = {6, -1, -1, -1},
[SchemeTagsNorm] = {2, 0, 0, -1},
[SchemeTagsSel] = {6, 5, 5, -1},
[SchemeHidNorm] = {5, 0, 0, -1},
[SchemeHidSel] = {6, -1, -1, -1},
[SchemeUrg] = {7, 9, 9, 15},
};
#endif // BAR_VTCOLORS_PATCH
@@ -631,7 +636,7 @@ static const Rule rules[] = {
#if PERTAG_PATCH
static const MonitorRule monrules[] = {
/* monitor tag layout mfact nmaster showbar topbar */
{1, -1, 2, -1, -1, -1, -1}, // use a different layout for the second monitor
{1, -1, 2, -1, -1, -1, -1}, // use a different layout for the second monitor
{-1, -1, 0, -1, -1, -1, -1}, // default
};
#else
@@ -816,8 +821,8 @@ static const Layout layouts[] = {
{"[]=",
flextile,
{-1, -1, SPLIT_VERTICAL, TOP_TO_BOTTOM, TOP_TO_BOTTOM, 0,
NULL}}, // default tile layout
{"><>", NULL, {0}}, /* no layout function means floating behavior */
NULL}}, // default tile layout
{"><>", NULL, {0}}, /* no layout function means floating behavior */
{"[M]", flextile, {-1, -1, NO_SPLIT, MONOCLE, MONOCLE, 0, NULL}}, // monocle
{"|||",
flextile,
@@ -907,7 +912,6 @@ static const Layout layouts[] = {
#if TILE_LAYOUT
{"[]=", tile}, /* first entry is default */
#endif
{"><>", NULL}, /* no layout function means floating behavior */
#if MONOCLE_LAYOUT
{"[M]", monocle},
#endif
@@ -947,6 +951,7 @@ static const Layout layouts[] = {
#if NROWGRID_LAYOUT
{"###", nrowgrid},
#endif
{"><>", NULL}, /* no layout function means floating behavior */
};
#endif // FLEXTILE_DELUXE_LAYOUT
@@ -961,76 +966,76 @@ static const char *xkb_layouts[] = {
/* key definitions */
#define MODKEY Mod4Mask
#if COMBO_PATCH && SWAPTAGS_PATCH && TAGOTHERMONITOR_PATCH
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, comboview, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, combotag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ShiftMask, KEY, swaptags, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ControlMask, KEY, tagprevmon, {.ui = 1 << TAG}},
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, comboview, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, combotag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ShiftMask, KEY, swaptags, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ControlMask, KEY, tagprevmon, {.ui = 1 << TAG}},
#elif COMBO_PATCH && SWAPTAGS_PATCH
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, comboview, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, combotag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ShiftMask, KEY, swaptags, {.ui = 1 << TAG}},
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, comboview, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, combotag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ShiftMask, KEY, swaptags, {.ui = 1 << TAG}},
#elif COMBO_PATCH && TAGOTHERMONITOR_PATCH
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, comboview, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, combotag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ControlMask, KEY, tagprevmon, {.ui = 1 << TAG}},
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, comboview, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, combotag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ControlMask, KEY, tagprevmon, {.ui = 1 << TAG}},
#elif COMBO_PATCH
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, comboview, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, combotag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}},
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, comboview, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, combotag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}},
#elif SWAPTAGS_PATCH && TAGOTHERMONITOR_PATCH
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, view, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, tag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ShiftMask, KEY, swaptags, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ControlMask, KEY, tagprevmon, {.ui = 1 << TAG}},
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, view, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, tag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ShiftMask, KEY, swaptags, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ControlMask, KEY, tagprevmon, {.ui = 1 << TAG}},
#elif SWAPTAGS_PATCH
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, view, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, tag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ShiftMask, KEY, swaptags, {.ui = 1 << TAG}},
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, view, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, tag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ShiftMask, KEY, swaptags, {.ui = 1 << TAG}},
#elif TAGOTHERMONITOR_PATCH
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, view, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, tag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ControlMask, KEY, tagprevmon, {.ui = 1 << TAG}},
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, view, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, tag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG}}, \
{MODKEY | Mod4Mask | ControlMask, KEY, tagprevmon, {.ui = 1 << TAG}},
#else
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, view, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, tag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}},
#define TAGKEYS(KEY, TAG) \
{MODKEY, KEY, view, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
{MODKEY | ShiftMask, KEY, tag, {.ui = 1 << TAG}}, \
{MODKEY | ControlMask | ShiftMask, KEY, toggletag, {.ui = 1 << TAG}},
#endif // COMBO_PATCH / SWAPTAGS_PATCH / TAGOTHERMONITOR_PATCH
#if STACKER_PATCH
#define STACKKEYS(MOD, ACTION) \
{MOD, XK_j, ACTION##stack, {.i = INC(+1)}}, \
{MOD, XK_k, ACTION##stack, {.i = INC(-1)}}, \
{MOD, XK_s, ACTION##stack, {.i = PREVSEL}}, \
{MOD, XK_w, ACTION##stack, {.i = 0}}, \
{MOD, XK_e, ACTION##stack, {.i = 1}}, \
{MOD, XK_a, ACTION##stack, {.i = 2}}, \
{MOD, XK_z, ACTION##stack, {.i = -1}},
#define STACKKEYS(MOD, ACTION) \
{MOD, XK_j, ACTION##stack, {.i = INC(+1)}}, \
{MOD, XK_k, ACTION##stack, {.i = INC(-1)}}, \
{MOD, XK_s, ACTION##stack, {.i = PREVSEL}}, \
{MOD, XK_w, ACTION##stack, {.i = 0}}, \
{MOD, XK_e, ACTION##stack, {.i = 1}}, \
{MOD, XK_a, ACTION##stack, {.i = 2}}, \
{MOD, XK_z, ACTION##stack, {.i = -1}},
#endif // STACKER_PATCH
#if BAR_HOLDBAR_PATCH
@@ -1680,7 +1685,7 @@ static const Key keys[] = {
{Mod3Mask | Mod1Mask, XK_m, floatpos, {.v = "-1p 1p"}}, // ↙
{Mod3Mask | Mod1Mask, XK_comma, floatpos, {.v = " 0p 1p"}}, // ↓
{Mod3Mask | Mod1Mask, XK_period, floatpos, {.v = " 1p 1p"}}, // ↘
#endif // FLOATPOS_PATCH
#endif // FLOATPOS_PATCH
#if SETBORDERPX_PATCH
{MODKEY | ControlMask, XK_minus, setborderpx, {.i = -1}},
{MODKEY | ControlMask, XK_plus, setborderpx, {.i = +1}},
@@ -1689,6 +1694,8 @@ static const Key keys[] = {
#if CYCLELAYOUTS_PATCH
{MODKEY | ControlMask, XK_comma, cyclelayout, {.i = -1}},
{MODKEY | ControlMask, XK_period, cyclelayout, {.i = +1}},
{MODKEY, XK_grave, cyclelayout, {.i = +1}},
{MODKEY | ShiftMask, XK_grave, cyclelayout, {.i = -1}},
#endif // CYCLELAYOUTS_PATCH
#if MPDCONTROL_PATCH
{MODKEY, XK_F1, mpdchange, {.i = -1}},

View File

@@ -241,13 +241,13 @@
* Set the tagindicatortype variable in config.h to INDICATOR_TOP_BAR to enable this.
* https://dwm.suckless.org/patches/activetagindicatorbar/
*/
#define BAR_ACTIVETAGINDICATORBAR_PATCH N/A
#define BAR_ACTIVETAGINDICATORBAR_PATCH N / A
/* Alternative patch to the activetagindicatorbar patch, adds the bar below the tag
* icon rather than above.
* Set the tagindicatortype variable in config.h to INDICATOR_BOTTOM_BAR to enable this.
*/
#define BAR_ACTIVETAGINDICATORBAR_ALT1_PATCH N/A
#define BAR_ACTIVETAGINDICATORBAR_ALT1_PATCH N / A
/* The alpha patch adds transparency for the status bar.
* You need to uncomment the corresponding line in config.mk to use the -lXrender library
@@ -302,7 +302,7 @@
* Set the tagindicatortype variable in config.h to INDICATOR_CLIENT_DOTS to enable this.
* https://dwm.suckless.org/patches/clientindicators/
*/
#define BAR_CLIENTINDICATOR_PATCH N/A
#define BAR_CLIENTINDICATOR_PATCH N / A
/* Updates the position of dmenu to match that of the bar. I.e. if topbar is 0 then dmenu
* will appear at the bottom and if 1 then dmenu will appear at the top.
@@ -1331,7 +1331,7 @@
* https://github.com/bakkeby/patches/wiki/togglelayout
*/
#define TOGGLELAYOUT_PATCH 1
#define TOGGLELAYOUT_PATCH 0
/* Minor patch that lets you use the same keyboard shortcut to toggle to the previous tag if the
* designated tag is already active.
@@ -1451,12 +1451,12 @@
/* Bottomstack layout.
* https://dwm.suckless.org/patches/bottomstack/
*/
#define BSTACK_LAYOUT 1
#define BSTACK_LAYOUT 0
/* Bottomstack horizontal layout.
* https://dwm.suckless.org/patches/bottomstack/
*/
#define BSTACKHORIZ_LAYOUT 1
#define BSTACKHORIZ_LAYOUT 0
/* Centered master layout.
* https://dwm.suckless.org/patches/centeredmaster/
@@ -1466,34 +1466,34 @@
/* Centered floating master layout.
* https://dwm.suckless.org/patches/centeredmaster/
*/
#define CENTEREDFLOATINGMASTER_LAYOUT 1
#define CENTEREDFLOATINGMASTER_LAYOUT 0
/* Same as the default tile layout except clients in the master area are arranged in
* columns (i.e. left to right).
* https://dwm.suckless.org/patches/columns/
*/
#define COLUMNS_LAYOUT 1
#define COLUMNS_LAYOUT 0
/* Deck layout.
* https://dwm.suckless.org/patches/deck/
*/
#define DECK_LAYOUT 1
#define DECK_LAYOUT 0
/* Fibonacci dwindle layout.
* https://dwm.suckless.org/patches/fibonacci/
*/
#define FIBONACCI_DWINDLE_LAYOUT 1
#define FIBONACCI_DWINDLE_LAYOUT 0
/* Fibonacci spiral layout.
* https://dwm.suckless.org/patches/fibonacci/
*/
#define FIBONACCI_SPIRAL_LAYOUT 1
#define FIBONACCI_SPIRAL_LAYOUT 0
/* Flextile deluxe layout.
* A revamped, more flexible, and over-the-top version of the original flextile layout.
* https://dwm.suckless.org/patches/flextile/ (original)
*/
#define FLEXTILE_DELUXE_LAYOUT 1
#define FLEXTILE_DELUXE_LAYOUT 0
/* Gappless grid layout.
* https://dwm.suckless.org/patches/gaplessgrid/
@@ -1503,7 +1503,7 @@
/* Gridmode (grid) layout.
* https://dwm.suckless.org/patches/gridmode/
*/
#define GRIDMODE_LAYOUT 1
#define GRIDMODE_LAYOUT 0
/* Horizontal grid (horizgrid) layout.
* https://dwm.suckless.org/patches/horizgrid/
@@ -1513,14 +1513,14 @@
/* Grid layout where nmaster controls the number of rows.
* https://dwm.suckless.org/patches/nrowgrid/
*/
#define NROWGRID_LAYOUT 0
#define NROWGRID_LAYOUT 1
/* The default tile layout.
* This can be optionally disabled in favour of other layouts.
*/
#define TILE_LAYOUT 1
#define TILE_LAYOUT 0
/* Monocle layout (default).
* This can be optionally disabled in favour of other layouts.
*/
#define MONOCLE_LAYOUT 1
#define MONOCLE_LAYOUT 0