1
0
mirror of https://github.com/tiyn/dwm.git synced 2025-10-17 05:11:18 +02:00

17 Commits

Author SHA1 Message Date
ce1fe35578 added notitle patch to readme 2023-10-24 05:02:38 +02:00
ddec9f35ab added notitle patch to readme 2023-10-24 05:02:28 +02:00
18bc15180f cycling windows when middle click on window name 2023-10-24 04:09:40 +02:00
c4f7ace2f4 added cyclelayouts patch to readme 2023-10-24 03:36:26 +02:00
633070875e added zeroastag patch to readme 2023-10-24 03:17:27 +02:00
c556f40832 updated readme 2023-10-23 04:23:02 +02:00
b88f60d2e7 added alpha patch to readme 2023-10-22 05:29:27 +02:00
4ff8663e88 added gitignore 2023-10-15 03:30:44 +02:00
ca7a863c1a updated readme 2023-10-15 03:27:00 +02:00
722caafce3 added systray patch to Readme 2023-10-13 14:11:31 +02:00
3d72376cef added systray patch to Readme 2023-10-13 04:40:23 +02:00
15ac6f9754 updated readme 2023-10-13 03:23:18 +02:00
fc7eb3f7c2 readme updated 2023-08-22 15:20:35 +02:00
1fada364c0 cleanup: unused programs removed 2023-01-11 01:40:10 +01:00
TiynGER
c376355cfe config: setting merged master+bottomstack config.def.h as config 2020-12-27 18:57:58 +01:00
TiynGER
767d7e124e changing colors 2020-05-30 19:56:55 +02:00
TiynGER
9addd105de basic icon 2020-05-30 18:10:54 +02:00
4 changed files with 150 additions and 106 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*.o
dwm

View File

@@ -1,43 +1,65 @@
# dwm # dwm
This is my patched version of dwm. The base version is directly from suckless.org.
This belongs to my larbs installation script and depends heavily on its scripts and programs. This is my patched version of dwm. The base version is directly from
suckless.org.
This belongs to my larbs installation script and depends heavily on its scripts
and programs.
It is supposed to work in the environment after the larbs-base-installation. It is supposed to work in the environment after the larbs-base-installation.
This is my patched version of dwm. The base version is directly from suckless.org.
This repository is set up according to the
[suckless entry of my wiki](https://github.com/tiyn/wiki/blob/master/wiki/linux/suckless.md).
## Patches ## Patches
The list below shows the currently applied patches to the master branch. The list below shows the currently applied patches to the master branch.
- dwm-activetagindicatorbar-6.2.diff (show bar as window indicator)
- dwm-actualfullscreen-20191112-cb3f58a.diff (enables true fullscreen) - dwm-actualfullscreen-20191112-cb3f58a.diff (enables true fullscreen)
- dwm-alpha-20180613-b69c870.diff (adds transparency)
- dwm-bottomstack-20160719-56a31dc.diff (adds bottomstack and bottomstackhorizontal layout)
- dwm-center-6.1.diff (adds ability to center floating windows at launch) - dwm-center-6.1.diff (adds ability to center floating windows at launch)
- dwm-cyclelayouts-20180524-6.2.diff (adds ability to cycle through layouts)
- dwm-deck-6.0.diff (adds deck layout) - dwm-deck-6.0.diff (adds deck layout)
- dwm-noborder-6.2.diff (removes border if there is only one window) - dwm-noborder-6.2.diff (removes border if there is only one window)
- dwm-notitle-6.2.diff (removes the title of the window in the middle of the bar)
- dwm-pertag-20170513-ceac8c9.diff (allows having a layout/mwfact/barpos/nmaster per tag) - dwm-pertag-20170513-ceac8c9.diff (allows having a layout/mwfact/barpos/nmaster per tag)
- dwm-status2d-6.2.diff (adds colors and ability to draw rectangles)
- dwm-statusallmons-6.2.diff (display statusbar on every monitors)
- dwm-statuscmd-6.2.diff (enables dwmblocks compatibility) - dwm-statuscmd-6.2.diff (enables dwmblocks compatibility)
- dwm-systray-6.2.diff (adds a systray to statusbar)
- dwm-zeroastag-22032023-0aea805.diff (adds a tenth tag on 0)
## Hotkeys ## Hotkeys
There are various shortcuts and hotkeys used in this version. Included in my build are the following.
| ModKey | Shift | Key | Function | There are various shortcuts and hotkeys used in this version. Included in my
| ------ | ----- | ----------------- | --------------------------------------------------------- | build are the following.
| Super | Shift | Escape | Quit dwm |
| Super | Shift | b | Toggle dwmbar | | ModKey | Shift | Key | Function |
| Super | Shift | c | Enable deck(/card) layout | | ------ | ----- | --- | -------- |
| Super | Shift | d | Toggle floating/tiled for selected window | | Super | | h | (Tiling/Deck) Focus window higher in stack than current |
| Super | Shift | f | Toggle fullscreen | | Super | | j | (Tiling/Deck) Focus window lower in stack than current |
| Super | | h | (Tiling/Deck) Focus window higher in stack than current | | Super | | k | (Tiling/Deck) Focus window higher in stack than current |
| Super | Shift | h | (Tiling/Deck) Make current window the master window | | Super | | l | (Tiling/Deck) Focus window lower in stack than current |
| Super | | j | (Tiling/Deck) Focus window lower in stack than current | | Super | | 0 | Show all tags |
| Super | Shift | j | (Tiling/Deck) Make current window the master window | | Super | | 1/2/.../9 | Show tag 1/2/.../9 |
| Super | | k | (Tiling/Deck) Focus window higher in stack than current | | Super | | . | Show monitor lower in stack |
| Super | Shift | k | (Tiling/Deck) Make current window the master window | | Super | | , | Show monitor higher in stack |
| Super | | l | (Tiling/Deck) Focus window lower in stack than current | | Super | Shift | Escape | Quit dwm |
| Super | Shift | m | Enable monocle layout | | Super | Shift | b | Toggle dwmbar |
| Super | Shift | o | (Tiling/Deck) Increase master window size | | Super | Shift | c | Enable deck(/card) layout |
| Super | | q | Close current window | | Super | Shift | d | Toggle floating/tiled for selected window |
| Super | Shift | t | Enable tiling layout | | Super | Shift | f | Toggle fullscreen |
| Super | Shift | z | (Tiling/Deck) Decrease master window size | | Super | Shift | h | (Tiling/Deck) Make current window the master window |
| Super | | 0 | Show all tags | | Super | Shift | j | (Tiling/Deck) Make current window the master window |
| Super | Shift | 0 | Add current window to all tag | | Super | Shift | k | (Tiling/Deck) Make current window the master window |
| Super | | 1/2/.../9 | Show tag 1/2/.../9 | | Super | Shift | m | Enable monocle layout |
| Super | Shift | 1/2/.../9 | Add current window to tag 1/2/.../9 | | Super | Shift | o | (Tiling/Deck) Increase master window size |
| Super | | . | Show monitor lower in stack | | Super | Shift | q | Close current window |
| Super | Shift | . | Add to monitor lower in stack | | Super | Shift | t | Enable tiling layout |
| Super | | , | Show monitor higher in stack | | Super | Shift | u | Enable bottomstack layout |
| Super | Shift | , | Add to monitor higher in stack | | Super | Shift | v | Enable bottomstackhorizontal layout |
| Super | Shift | z | (Tiling/Deck) Decrease master window size |
| Super | Shift | 0 | Add current window to all tag |
| Super | Shift | 1/2/.../9 | Add current window to tag 1/2/.../9 |
| Super | Shift | . | Add to monitor lower in stack |
| Super | Shift | , | Add to monitor higher in stack |

View File

@@ -4,33 +4,47 @@
#include <X11/XF86keysym.h> #include <X11/XF86keysym.h>
/* appearance */ /* appearance */
static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int borderpx = 1; /* border pixel of windows */
static const unsigned int snap = 32; /* snap pixel */ static const unsigned int snap = 32; /* snap pixel */
static const int showbar = 1; /* 0 means no bar */ static const unsigned int systraypinning = 0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */
static const int topbar = 1; /* 0 means bottom bar */ static const unsigned int systrayspacing = 2; /* systray spacing */
static const char *fonts[] = { "monospace:size=10", "Noto Color Emoji:size=11" }; static const int systraypinningfailfirst = 1; /* 1: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/
static const char dmenufont[] = "monospace:size=10"; static const int showsystray = 1; /* 0 means no systray */
static const char col_gray1[] = "#222222"; static const int showbar = 1; /* 0 means no bar */
static const char col_gray2[] = "#444444"; static const int topbar = 1; /* 0 means bottom bar */
static const char col_gray3[] = "#f7f7f7"; static const char *fonts[] = { "monospace:size=10" };
static const char col_gray4[] = "#000000"; static const char dmenufont[] = "monospace:size=10";
static const char col_cyan[] = "#dddddd"; static const char normbgcolor[] = "#0e0f14";
static const char normbordercolor[] = "#363b47";
static const char normfgcolor[] = "#dfdfdf";
static const char selfgcolor[] = "#eeeeee";
static const char selbordercolor[] = "#555a63";
static const char selbgcolor[] = "#282828";
static const unsigned int baralpha = 0xff;
static const unsigned int borderalpha = OPAQUE;
static const char *colors[][3] = { static const char *colors[][3] = {
/* fg bg border */ /* fg bg border */
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
[SchemeSel] = { col_gray4, col_cyan, col_gray3 }, [SchemeSel] = { selfgcolor, selbgcolor, selbordercolor },
};
static const unsigned int alphas[][3] = {
/* fg bg border */
[SchemeNorm] = { OPAQUE, baralpha, borderalpha },
[SchemeSel] = { OPAQUE, baralpha, borderalpha },
}; };
/* tagging */ /* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; static const char *tags[] = { "", "", "", "", "", "", "", "", "", "" };
static const char *alttags[] = { "<1>", "<2>", "<3>", "<4>", "<5>", "<6>", "<7>", "<8>", "<9>" };
static const Rule rules[] = { static const Rule rules[] = {
/* xprop(1): /* xprop(1):
* WM_CLASS(STRING) = instance, class * WM_CLASS(STRING) = instance, class
* WM_NAME(STRING) = title * WM_NAME(STRING) = title
*/ */
{ NULL, "de.uol.swp.client.ClientApp", NULL, 0, 0, 1, -1 }, /* class instance title tags mask iscentered isfloating monitor */
{ NULL, "origin.exe", NULL, 0, 0, 1, -1 },
}; };
/* layout(s) */ /* layout(s) */
@@ -40,19 +54,22 @@ static const int resizehints = 1; /* 1 means respect size hints in tiled resi
static const Layout layouts[] = { static const Layout layouts[] = {
/* symbol arrange function */ /* symbol arrange function */
{ "[M]", monocle }, { "M", monocle },
{ "[]=", tile }, /* first entry is default */ { "T", tile }, /* first entry is default */
{ "[D]", deck }, { "D", deck },
{ "><>", NULL }, /* no layout function means floating behavior */ { "B", bstack },
{ "B", bstackhoriz },
{ "F", NULL }, /* no layout function means floating behavior */
{ NULL, NULL },
}; };
/* key definitions */ /* key definitions */
#define MODKEY Mod4Mask #define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \ #define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
/* helper for spawning shell commands in the pre dwm-5.0 fashion */ /* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
@@ -62,60 +79,63 @@ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn()
static const char *dmenucmd[] = { "dmenu_run", "-c", "-l", "20", NULL }; static const char *dmenucmd[] = { "dmenu_run", "-c", "-l", "20", NULL };
static Key keys[] = { static Key keys[] = {
/* modifier key function argument */ /* modifier key function argument */
{ MODKEY|ShiftMask, XK_Escape, quit, {0} }, { MODKEY|ShiftMask, XK_Escape, quit, {0} },
{ MODKEY|ShiftMask, XK_b, togglebar, {0} }, { MODKEY|ShiftMask, XK_b, togglebar, {0} },
{ MODKEY|ShiftMask, XK_c, setlayout, {.v = &layouts[2]} }, { MODKEY|ShiftMask, XK_c, setlayout, {.v = &layouts[2]} },
{ MODKEY|ShiftMask, XK_d, togglefloating, {0} }, { MODKEY|ShiftMask, XK_d, togglefloating, {0} },
{ MODKEY|ShiftMask, XK_f, togglefullscr, {0} }, { MODKEY|ShiftMask, XK_f, togglefullscr, {0} },
{ MODKEY, XK_h, focusstack, {.i = -1 } }, { MODKEY, XK_h, focusstack, {.i = -1} },
{ MODKEY|ShiftMask, XK_h, zoom, {0} }, { MODKEY|ShiftMask, XK_h, zoom, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_j, focusstack, {.i = +1} },
{ MODKEY|ShiftMask, XK_j, zoom, {0} }, { MODKEY|ShiftMask, XK_j, zoom, {0} },
{ MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_k, focusstack, {.i = -1} },
{ MODKEY|ShiftMask, XK_k, zoom, {0} }, { MODKEY|ShiftMask, XK_k, zoom, {0} },
{ MODKEY, XK_l, focusstack, {.i = +1 } }, { MODKEY, XK_l, focusstack, {.i = +1} },
{ MODKEY|ShiftMask, XK_m, setlayout, {.v = &layouts[0]} }, { MODKEY|ShiftMask, XK_m, setlayout, {.v = &layouts[0]} },
{ MODKEY|ShiftMask, XK_o, setmfact, {.f = +0.05} }, { MODKEY|ShiftMask, XK_o, setmfact, {.f = +0.05} },
{ MODKEY, XK_q, killclient, {0} }, { MODKEY|ShiftMask, XK_q, killclient, {0} },
{ MODKEY|ShiftMask, XK_t, setlayout, {.v = &layouts[1]} }, { MODKEY|ShiftMask, XK_t, setlayout, {.v = &layouts[1]} },
{ MODKEY|ShiftMask, XK_z, setmfact, {.f = -0.05} }, { MODKEY|ShiftMask, XK_u, setlayout, {.v = &layouts[3]} },
{ MODKEY, XK_0, view, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_v, setlayout, {.v = &layouts[4]} },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_z, setmfact, {.f = -0.05} },
{ MODKEY, XK_comma, focusmon, {.i = -1 } }, { MODKEY, XK_0, view, {.ui = ~0} },
{ MODKEY, XK_period, focusmon, {.i = +1 } }, { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0} },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, { MODKEY, XK_comma, focusmon, {.i = -1} },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, { MODKEY, XK_period, focusmon, {.i = +1} },
//{ MODKEY|ShiftMask, XK_o, incnmaster, {.i = +1 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1} },
//{ MODKEY|ShiftMask, XK_z, incnmaster, {.i = -1 } }, { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1} },
//{ MODKEY, XK_space, setlayout, {0} }, //{ MODKEY|ShiftMask, XK_o, incnmaster, {.i = +1} },
TAGKEYS( XK_1, 0) //{ MODKEY|ShiftMask, XK_z, incnmaster, {.i = -1} },
TAGKEYS( XK_2, 1) //{ MODKEY, XK_space, setlayout, {0} },
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3) TAGKEYS(XK_1, 0)
TAGKEYS( XK_5, 4) TAGKEYS(XK_2, 1)
TAGKEYS( XK_6, 5) TAGKEYS(XK_3, 2)
TAGKEYS( XK_7, 6) TAGKEYS(XK_4, 3)
TAGKEYS( XK_8, 7) TAGKEYS(XK_5, 4)
TAGKEYS( XK_9, 8) TAGKEYS(XK_6, 5)
TAGKEYS(XK_7, 6)
TAGKEYS(XK_8, 7)
TAGKEYS(XK_9, 8)
TAGKEYS(XK_0, 9)
}; };
/* button definitions */ /* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ /* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = { static Button buttons[] = {
/* click event mask button function argument */ /* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} }, { ClkLtSymbol, 0, Button1, cyclelayout, {.i = +1} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, { ClkLtSymbol, 0, Button2, setlayout, {.v = &layouts[0]} },
{ ClkWinTitle, 0, Button2, zoom, {0} }, { ClkLtSymbol, 0, Button3, cyclelayout, {.i = -1} },
{ ClkStatusText, 0, Button1, sigdwmblocks, {.i = 1} }, { ClkStatusText, 0, Button1, sigdwmblocks, {.i = 1} },
{ ClkStatusText, 0, Button2, sigdwmblocks, {.i = 2} }, { ClkStatusText, 0, Button2, sigdwmblocks, {.i = 2} },
{ ClkStatusText, 0, Button3, sigdwmblocks, {.i = 3} }, { ClkStatusText, 0, Button3, sigdwmblocks, {.i = 3} },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} }, { ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} }, { ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} }, { ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} }, { ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} }, { ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} }, { ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} }, { ClkTagBar, MODKEY, Button3, toggletag, {0} },
}; };

2
dwm.c
View File

@@ -1110,7 +1110,7 @@ monocle(Monitor *m)
if (ISVISIBLE(c)) if (ISVISIBLE(c))
n++; n++;
if (n > 0) /* override layout symbol */ if (n > 0) /* override layout symbol */
snprintf(m->ltsymbol, sizeof m->ltsymbol, "%d", n); snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
for (c = nexttiled(m->clients); c; c = nexttiled(c->next)) for (c = nexttiled(m->clients); c; c = nexttiled(c->next))
resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0); resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0);
} }