1
0
mirror of https://github.com/tiyn/dwm.git synced 2025-11-09 07:11:16 +01:00

26 Commits

Author SHA1 Message Date
cdd41ed4aa config: start onboard as floating 2025-03-10 00:22:36 +01:00
e82ea595c8 modified kepassxc settings 2025-03-04 05:43:50 +01:00
27c10d4bd7 added zen to config 2025-02-09 07:35:57 +01:00
c357419eaf added window configs 2025-01-09 04:41:34 +01:00
a4257742ce added teamspeak to monitor settings 2024-03-28 05:57:01 +01:00
c7ff6b6a42 added telegram 2024-01-22 00:48:52 +01:00
04ba42ca7f readme: updated 2023-12-11 20:22:59 +01:00
a12c7638d0 config updated to match newest patch 2023-12-11 01:22:18 +01:00
ca94ba21a6 added elements to config 2023-11-06 21:52:59 +01:00
4c8265265f added sonixd to rules 2023-11-05 18:22:20 +01:00
d286e168ef added rules 2023-11-04 23:49:51 +01:00
b9c7e4b9a1 remove unneeded code of terminal and dmenu 2023-10-26 06:08:50 +02:00
380d63f8fd changed hotkeys 2023-10-26 05:54:27 +02:00
008c92268a changed icons 2023-10-25 04:31:06 +02:00
8fcd0666ff added installation guide 2023-10-24 06:08:59 +02:00
1dd7519235 updated gitignore 2023-10-24 06:04:44 +02:00
0035d03900 added classic alt-tabbing 2023-10-24 06:02:58 +02:00
1a7568c158 updated hotkeys 2023-10-24 05:47:43 +02:00
32e01b8179 added notitle patch to config 2023-10-24 05:45:24 +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
3 changed files with 133 additions and 89 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
*.o
dwm
config.h

View File

@@ -13,16 +13,22 @@ This repository is set up according to the
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-alttagsdecoration-2020010304-cb3f58a.diff (enables different icons for tags with windows) - dwm-alpha-20180613-b69c870.diff (adds transparency)
- dwm-bottomstack-20160719-56a31dc.diff (adds bottomstack and bottomstackhorizontal layout) - 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 window title 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-quitprompt-20220718-6613d9f.diff (adds a confirmation prompt before exiting dwm)
- dwm-status2d-6.2.diff (adds colors and ability to draw rectangles)
- dwm-statusallmons-6.2.diff (display statusbar on every monitors) - 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-systray-6.2.diff (adds a systray to statusbar)
- dwm-zeroastag-22032023-0aea805.diff (adds a tenth tag on 0)
## Hotkeys ## Hotkeys
@@ -35,11 +41,10 @@ build are the following.
| Super | | j | (Tiling/Deck) Focus window lower in stack than current | | Super | | j | (Tiling/Deck) Focus window lower in stack than current |
| Super | | k | (Tiling/Deck) Focus window higher in stack than current | | Super | | k | (Tiling/Deck) Focus window higher in stack than current |
| Super | | l | (Tiling/Deck) Focus window lower in stack than current | | Super | | l | (Tiling/Deck) Focus window lower in stack than current |
| Super | | 0 | Show all tags | | Super | | 1/2/.../9/0 | Show tag 1/2/.../9/0 |
| Super | | 1/2/.../9 | Show tag 1/2/.../9 |
| Super | | . | Show monitor lower in stack | | Super | | . | Show monitor lower in stack |
| Super | | , | Show monitor higher in stack | | Super | | , | Show monitor higher in stack |
| Super | Shift | Escape | Quit dwm | | Super | Shift | Escape | Quit dwm with call for confirmation |
| Super | Shift | b | Toggle dwmbar | | Super | Shift | b | Toggle dwmbar |
| Super | Shift | c | Enable deck(/card) layout | | Super | Shift | c | Enable deck(/card) layout |
| Super | Shift | d | Toggle floating/tiled for selected window | | Super | Shift | d | Toggle floating/tiled for selected window |
@@ -54,7 +59,18 @@ build are the following.
| Super | Shift | u | Enable bottomstack layout | | Super | Shift | u | Enable bottomstack layout |
| Super | Shift | v | Enable bottomstackhorizontal layout | | Super | Shift | v | Enable bottomstackhorizontal layout |
| Super | Shift | z | (Tiling/Deck) Decrease master window size | | Super | Shift | z | (Tiling/Deck) Decrease master window size |
| Super | Shift | 0 | Add current window to all tag | | Super | Shift | 1/2/.../9/0 | Add current window to tag 1/2/.../9/0 |
| 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 lower in stack |
| Super | Shift | , | Add to monitor higher in stack | | Super | Shift | , | Add to monitor higher in stack |
| Alt | | Tab | (Tiling/Deck) Focus window lower in stack than current |
## Installation
The following programs are required to be installed for full functionality.
- [dmenu](https://github.com/tiyn/dmenu)
The most basic way is to clone the repository and then invoke make.
- `git clone https://github.com/tiyn/dwm`
- `make clean install`

View File

@@ -4,34 +4,63 @@
#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" }; 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 normbgcolor[] = "#0e0f14"; static const int showbar = 1; /* 0 means no bar */
static const char normbordercolor[] = "#363b47"; static const int topbar = 1; /* 0 means bottom bar */
static const char normfgcolor[] = "#dfdfdf"; static const char *fonts[] = { "monospace:size=10" };
static const char selfgcolor[] = "#eeeeee"; static const char normbgcolor[] = "#0e0f14";
static const char selbordercolor[] = "#555a63"; static const char normbordercolor[] = "#363b47";
static const char selbgcolor[] = "#282828"; 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] = { normfgcolor, normbgcolor, normbordercolor }, [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
[SchemeSel] = { selfgcolor, selbgcolor, selbordercolor }, [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[] = { "", "", "", "", "", "", "", "", "" }; static const char *tags[] = { "", "", "", "", "", "", "", "", "", "" };
static const char *alttags[] = { "", "", "", "", "", "", "", "", "" };
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
*/ */
/* class instance title tags mask iscentered isfloating monitor */ /* class instance title tags center float mon */
{ "firefox", 0, 0, 1 << 1, 0, 0, -1 },
{ "zen", 0, 0, 1 << 1, 0, 0, -1 },
{ "Lutris", 0, 0, 1 << 2, 0, 0, 0 },
{ "zenity", 0, 0, 0, 0, 1, -1 },
{ "steam", 0, 0, 1 << 2, 0, 0, 0 },
{ "discord", 0, 0, 1 << 2, 0, 0, 1 },
{ "TeamSpeak", 0, 0, 1 << 2, 0, 0, 1 },
{ "Element", 0, 0, 1 << 2, 0, 0, 1 },
{ "Signal", 0, 0, 1 << 4, 0, 0, 1 },
{ "TelegramDesktop", 0, 0, 1 << 4, 0, 0, 1 },
{ "threema-web", 0, 0, 1 << 4, 0, 0, 1 },
{ "thunderbird", 0, 0, 1 << 4, 0, 0, 1 },
{ "Sonixd", 0, 0, 1 << 8, 0, 0, 1 },
{ "KeePassXC", 0, "Unlock Database - KeePassXC", 1 << 1, 0, 0, 0 },
{ "KeePassXC", 0, 0, 1 << 9, 0, 0, 0 },
{ "easyeffects", 0, 0, 1 << 9, 0, 0, 1 },
{ "pavucontrol", 0, 0, 1 << 9, 0, 0, 1 },
{ "Onboard", 0, 0, 0, 0, 1, 0 },
}; };
/* layout(s) */ /* layout(s) */
@@ -41,86 +70,82 @@ 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 },
{ "T", tile }, /* first entry is default */ { "T", tile }, /* first entry is default */
{ "D", deck }, { "D", deck },
{ "B", bstack }, { "B", bstack },
{ "=", bstackhoriz }, { "B", bstackhoriz },
{ "F", NULL }, /* no layout function means floating behavior */ { "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 } }
/* commands */
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
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, quitprompt, {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_u, setlayout, {.v = &layouts[3]} }, { MODKEY|ShiftMask, XK_u, setlayout, {.v = &layouts[3]} },
{ MODKEY|ShiftMask, XK_v, setlayout, {.v = &layouts[4]} }, { MODKEY|ShiftMask, XK_v, setlayout, {.v = &layouts[4]} },
{ MODKEY|ShiftMask, XK_z, setmfact, {.f = -0.05} }, { MODKEY|ShiftMask, XK_z, setmfact, {.f = -0.05} },
{ MODKEY, XK_0, view, {.ui = ~0 } }, { MODKEY, XK_0, view, {.ui = ~0} },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0} },
{ MODKEY, XK_comma, focusmon, {.i = -1 } }, { MODKEY, XK_comma, focusmon, {.i = -1} },
{ MODKEY, XK_period, focusmon, {.i = +1 } }, { MODKEY, XK_period, focusmon, {.i = +1} },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1} },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1} },
//{ MODKEY|ShiftMask, XK_o, incnmaster, {.i = +1 } }, { Mod1Mask, XK_Tab, focusstack, {.i = +1} },
//{ MODKEY|ShiftMask, XK_z, incnmaster, {.i = -1 } },
//{ MODKEY, XK_space, setlayout, {0} }, TAGKEYS(XK_1, 0)
TAGKEYS( XK_1, 0) TAGKEYS(XK_2, 1)
TAGKEYS( XK_2, 1) TAGKEYS(XK_3, 2)
TAGKEYS( XK_3, 2) TAGKEYS(XK_4, 3)
TAGKEYS( XK_4, 3) TAGKEYS(XK_5, 4)
TAGKEYS( XK_5, 4) TAGKEYS(XK_6, 5)
TAGKEYS( XK_6, 5) TAGKEYS(XK_7, 6)
TAGKEYS( XK_7, 6) TAGKEYS(XK_8, 7)
TAGKEYS( XK_8, 7) TAGKEYS(XK_9, 8)
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, 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, focusstack, {.i = +1} },
{ 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} },
}; };