From 481763129619f9c02777dc48242aa2c556aa41f3 Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Tue, 1 Nov 2022 21:47:15 +0100 Subject: [PATCH 1/9] first setup based on web --- config.def.h | 3 ++- config.mk | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/config.def.h b/config.def.h index 9efa774..06ae186 100644 --- a/config.def.h +++ b/config.def.h @@ -28,7 +28,6 @@ static const Rule rules[] = { */ /* class instance title tags mask isfloating monitor */ { "Gimp", NULL, NULL, 0, 1, -1 }, - { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, }; /* layout(s) */ @@ -59,11 +58,13 @@ static const Layout layouts[] = { static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; static const char *termcmd[] = { "st", NULL }; +static const char *slockcmd[] = { "slock", NULL }; static const Key keys[] = { /* modifier key function argument */ { MODKEY, XK_p, spawn, {.v = dmenucmd } }, { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, { MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } }, diff --git a/config.mk b/config.mk index ef8acf7..caecc5a 100644 --- a/config.mk +++ b/config.mk @@ -7,8 +7,8 @@ VERSION = 6.4 PREFIX = /usr/local MANPREFIX = ${PREFIX}/share/man -X11INC = /usr/X11R6/include -X11LIB = /usr/X11R6/lib +X11INC = /usr/include/X11 +X11LIB = /usr/lib64/X11 # Xinerama, comment if you don't want it XINERAMALIBS = -lXinerama From e6488ec4bed8715023b6f597c86de8c02cd8c980 Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Tue, 1 Nov 2022 21:52:26 +0100 Subject: [PATCH 2/9] changed term to kitty --- config.def.h | 2 +- config.def.h.bak1 | 117 ++++++++++++++++++++++++++++++++++++++++++++++ config.def.h.orig | 116 +++++++++++++++++++++++++++++++++++++++++++++ config.h | 117 ++++++++++++++++++++++++++++++++++++++++++++++ config.old | 117 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 468 insertions(+), 1 deletion(-) create mode 100644 config.def.h.bak1 create mode 100644 config.def.h.orig create mode 100644 config.h create mode 100644 config.old diff --git a/config.def.h b/config.def.h index 06ae186..d5b4e3d 100644 --- a/config.def.h +++ b/config.def.h @@ -57,7 +57,7 @@ static const Layout layouts[] = { /* commands */ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; -static const char *termcmd[] = { "st", NULL }; +static const char *termcmd[] = { "kitty", NULL }; static const char *slockcmd[] = { "slock", NULL }; static const Key keys[] = { diff --git a/config.def.h.bak1 b/config.def.h.bak1 new file mode 100644 index 0000000..06ae186 --- /dev/null +++ b/config.def.h.bak1 @@ -0,0 +1,117 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int snap = 32; /* snap pixel */ +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { "monospace:size=10" }; +static const char dmenufont[] = "monospace:size=10"; +static const char col_gray1[] = "#222222"; +static const char col_gray2[] = "#444444"; +static const char col_gray3[] = "#bbbbbb"; +static const char col_gray4[] = "#eeeeee"; +static const char col_cyan[] = "#005577"; +static const char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, + [SchemeSel] = { col_gray4, col_cyan, col_cyan }, +}; + +/* tagging */ +static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + +static const Rule rules[] = { + /* xprop(1): + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ + /* class instance title tags mask isfloating monitor */ + { "Gimp", NULL, NULL, 0, 1, -1 }, +}; + +/* layout(s) */ +static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ +static const int nmaster = 1; /* number of clients in master area */ +static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ +static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ + +static const Layout layouts[] = { + /* symbol arrange function */ + { "[]=", tile }, /* first entry is default */ + { "><>", NULL }, /* no layout function means floating behavior */ + { "[M]", monocle }, +}; + +/* key definitions */ +#define MODKEY Mod1Mask +#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} }, + +/* helper for spawning shell commands in the pre dwm-5.0 fashion */ +#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", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; +static const char *termcmd[] = { "st", NULL }; +static const char *slockcmd[] = { "slock", NULL }; + +static const Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY, XK_i, incnmaster, {.i = +1 } }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_l, setmfact, {.f = +0.05} }, + { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY|ShiftMask, XK_c, killclient, {0} }, + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, + { MODKEY, XK_comma, focusmon, {.i = -1 } }, + { MODKEY, XK_period, focusmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) + TAGKEYS( XK_4, 3) + TAGKEYS( XK_5, 4) + TAGKEYS( XK_6, 5) + TAGKEYS( XK_7, 6) + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, +}; + +/* button definitions */ +/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ +static const Button buttons[] = { + /* click event mask button function argument */ + { ClkLtSymbol, 0, Button1, setlayout, {0} }, + { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, + { ClkWinTitle, 0, Button2, zoom, {0} }, + { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, + { ClkClientWin, MODKEY, Button1, movemouse, {0} }, + { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, + { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, + { ClkTagBar, 0, Button1, view, {0} }, + { ClkTagBar, 0, Button3, toggleview, {0} }, + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, +}; + diff --git a/config.def.h.orig b/config.def.h.orig new file mode 100644 index 0000000..9efa774 --- /dev/null +++ b/config.def.h.orig @@ -0,0 +1,116 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int snap = 32; /* snap pixel */ +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { "monospace:size=10" }; +static const char dmenufont[] = "monospace:size=10"; +static const char col_gray1[] = "#222222"; +static const char col_gray2[] = "#444444"; +static const char col_gray3[] = "#bbbbbb"; +static const char col_gray4[] = "#eeeeee"; +static const char col_cyan[] = "#005577"; +static const char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, + [SchemeSel] = { col_gray4, col_cyan, col_cyan }, +}; + +/* tagging */ +static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + +static const Rule rules[] = { + /* xprop(1): + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ + /* class instance title tags mask isfloating monitor */ + { "Gimp", NULL, NULL, 0, 1, -1 }, + { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, +}; + +/* layout(s) */ +static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ +static const int nmaster = 1; /* number of clients in master area */ +static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ +static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ + +static const Layout layouts[] = { + /* symbol arrange function */ + { "[]=", tile }, /* first entry is default */ + { "><>", NULL }, /* no layout function means floating behavior */ + { "[M]", monocle }, +}; + +/* key definitions */ +#define MODKEY Mod1Mask +#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} }, + +/* helper for spawning shell commands in the pre dwm-5.0 fashion */ +#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", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; +static const char *termcmd[] = { "st", NULL }; + +static const Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY, XK_i, incnmaster, {.i = +1 } }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_l, setmfact, {.f = +0.05} }, + { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY|ShiftMask, XK_c, killclient, {0} }, + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, + { MODKEY, XK_comma, focusmon, {.i = -1 } }, + { MODKEY, XK_period, focusmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) + TAGKEYS( XK_4, 3) + TAGKEYS( XK_5, 4) + TAGKEYS( XK_6, 5) + TAGKEYS( XK_7, 6) + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, +}; + +/* button definitions */ +/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ +static const Button buttons[] = { + /* click event mask button function argument */ + { ClkLtSymbol, 0, Button1, setlayout, {0} }, + { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, + { ClkWinTitle, 0, Button2, zoom, {0} }, + { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, + { ClkClientWin, MODKEY, Button1, movemouse, {0} }, + { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, + { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, + { ClkTagBar, 0, Button1, view, {0} }, + { ClkTagBar, 0, Button3, toggleview, {0} }, + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, +}; + diff --git a/config.h b/config.h new file mode 100644 index 0000000..d5b4e3d --- /dev/null +++ b/config.h @@ -0,0 +1,117 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int snap = 32; /* snap pixel */ +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { "monospace:size=10" }; +static const char dmenufont[] = "monospace:size=10"; +static const char col_gray1[] = "#222222"; +static const char col_gray2[] = "#444444"; +static const char col_gray3[] = "#bbbbbb"; +static const char col_gray4[] = "#eeeeee"; +static const char col_cyan[] = "#005577"; +static const char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, + [SchemeSel] = { col_gray4, col_cyan, col_cyan }, +}; + +/* tagging */ +static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + +static const Rule rules[] = { + /* xprop(1): + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ + /* class instance title tags mask isfloating monitor */ + { "Gimp", NULL, NULL, 0, 1, -1 }, +}; + +/* layout(s) */ +static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ +static const int nmaster = 1; /* number of clients in master area */ +static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ +static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ + +static const Layout layouts[] = { + /* symbol arrange function */ + { "[]=", tile }, /* first entry is default */ + { "><>", NULL }, /* no layout function means floating behavior */ + { "[M]", monocle }, +}; + +/* key definitions */ +#define MODKEY Mod1Mask +#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} }, + +/* helper for spawning shell commands in the pre dwm-5.0 fashion */ +#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", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; +static const char *termcmd[] = { "kitty", NULL }; +static const char *slockcmd[] = { "slock", NULL }; + +static const Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY, XK_i, incnmaster, {.i = +1 } }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_l, setmfact, {.f = +0.05} }, + { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY|ShiftMask, XK_c, killclient, {0} }, + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, + { MODKEY, XK_comma, focusmon, {.i = -1 } }, + { MODKEY, XK_period, focusmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) + TAGKEYS( XK_4, 3) + TAGKEYS( XK_5, 4) + TAGKEYS( XK_6, 5) + TAGKEYS( XK_7, 6) + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, +}; + +/* button definitions */ +/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ +static const Button buttons[] = { + /* click event mask button function argument */ + { ClkLtSymbol, 0, Button1, setlayout, {0} }, + { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, + { ClkWinTitle, 0, Button2, zoom, {0} }, + { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, + { ClkClientWin, MODKEY, Button1, movemouse, {0} }, + { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, + { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, + { ClkTagBar, 0, Button1, view, {0} }, + { ClkTagBar, 0, Button3, toggleview, {0} }, + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, +}; + diff --git a/config.old b/config.old new file mode 100644 index 0000000..06ae186 --- /dev/null +++ b/config.old @@ -0,0 +1,117 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int snap = 32; /* snap pixel */ +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { "monospace:size=10" }; +static const char dmenufont[] = "monospace:size=10"; +static const char col_gray1[] = "#222222"; +static const char col_gray2[] = "#444444"; +static const char col_gray3[] = "#bbbbbb"; +static const char col_gray4[] = "#eeeeee"; +static const char col_cyan[] = "#005577"; +static const char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, + [SchemeSel] = { col_gray4, col_cyan, col_cyan }, +}; + +/* tagging */ +static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + +static const Rule rules[] = { + /* xprop(1): + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ + /* class instance title tags mask isfloating monitor */ + { "Gimp", NULL, NULL, 0, 1, -1 }, +}; + +/* layout(s) */ +static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ +static const int nmaster = 1; /* number of clients in master area */ +static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ +static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ + +static const Layout layouts[] = { + /* symbol arrange function */ + { "[]=", tile }, /* first entry is default */ + { "><>", NULL }, /* no layout function means floating behavior */ + { "[M]", monocle }, +}; + +/* key definitions */ +#define MODKEY Mod1Mask +#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} }, + +/* helper for spawning shell commands in the pre dwm-5.0 fashion */ +#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", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; +static const char *termcmd[] = { "st", NULL }; +static const char *slockcmd[] = { "slock", NULL }; + +static const Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY, XK_i, incnmaster, {.i = +1 } }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_l, setmfact, {.f = +0.05} }, + { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY|ShiftMask, XK_c, killclient, {0} }, + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, + { MODKEY, XK_comma, focusmon, {.i = -1 } }, + { MODKEY, XK_period, focusmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) + TAGKEYS( XK_4, 3) + TAGKEYS( XK_5, 4) + TAGKEYS( XK_6, 5) + TAGKEYS( XK_7, 6) + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, +}; + +/* button definitions */ +/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ +static const Button buttons[] = { + /* click event mask button function argument */ + { ClkLtSymbol, 0, Button1, setlayout, {0} }, + { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, + { ClkWinTitle, 0, Button2, zoom, {0} }, + { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, + { ClkClientWin, MODKEY, Button1, movemouse, {0} }, + { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, + { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, + { ClkTagBar, 0, Button1, view, {0} }, + { ClkTagBar, 0, Button3, toggleview, {0} }, + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, +}; + From 0b4df537d1140302be7a9ae987d1e7acda4f3fee Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Thu, 3 Nov 2022 11:58:55 +0100 Subject: [PATCH 3/9] keycodes mod --- config.def.h | 68 +++++++-------- config.def.h.bak2 | 117 +++++++++++++++++++++++++ config.h | 68 +++++++-------- drw.o | Bin 0 -> 10744 bytes dwm | Bin 0 -> 72448 bytes dwm-keycodes-20170511-ceac8c9.diff | 134 +++++++++++++++++++++++++++++ dwm-keycodes-6.1.diff | 133 ++++++++++++++++++++++++++++ dwm.c | 16 ++-- dwm.o | Bin 0 -> 54472 bytes util.o | Bin 0 -> 2240 bytes 10 files changed, 458 insertions(+), 78 deletions(-) create mode 100644 config.def.h.bak2 create mode 100644 drw.o create mode 100755 dwm create mode 100644 dwm-keycodes-20170511-ceac8c9.diff create mode 100644 dwm-keycodes-6.1.diff create mode 100644 dwm.o create mode 100644 util.o diff --git a/config.def.h b/config.def.h index d5b4e3d..34bf472 100644 --- a/config.def.h +++ b/config.def.h @@ -62,40 +62,40 @@ static const char *slockcmd[] = { "slock", NULL }; static const Key keys[] = { /* modifier key function argument */ - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, - { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_j, focusstack, {.i = +1 } }, - { MODKEY, XK_k, focusstack, {.i = -1 } }, - { MODKEY, XK_i, incnmaster, {.i = +1 } }, - { MODKEY, XK_d, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, setmfact, {.f = -0.05} }, - { MODKEY, XK_l, setmfact, {.f = +0.05} }, - { MODKEY, XK_Return, zoom, {0} }, - { MODKEY, XK_Tab, view, {0} }, - { MODKEY|ShiftMask, XK_c, killclient, {0} }, - { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, - { MODKEY, XK_space, setlayout, {0} }, - { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, - { MODKEY, XK_0, view, {.ui = ~0 } }, - { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, - { MODKEY, XK_comma, focusmon, {.i = -1 } }, - { MODKEY, XK_period, focusmon, {.i = +1 } }, - { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, - { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, - TAGKEYS( XK_1, 0) - TAGKEYS( XK_2, 1) - TAGKEYS( XK_3, 2) - TAGKEYS( XK_4, 3) - TAGKEYS( XK_5, 4) - TAGKEYS( XK_6, 5) - TAGKEYS( XK_7, 6) - TAGKEYS( XK_8, 7) - TAGKEYS( XK_9, 8) - { MODKEY|ShiftMask, XK_q, quit, {0} }, + { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, + { MODKEY, 33, spawn, {.v = dmenucmd } }, // p + { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return + { MODKEY, 56, togglebar, {0} }, // b + { MODKEY, 44, focusstack, {.i = +1 } }, // j + { MODKEY, 45, focusstack, {.i = -1 } }, // k + { MODKEY, 31, incnmaster, {.i = +1 } }, // i + { MODKEY, 40, incnmaster, {.i = -1 } }, // d + { MODKEY, 43, setmfact, {.f = -0.05} }, // h + { MODKEY, 46, setmfact, {.f = +0.05} }, // l + { MODKEY, 36, zoom, {0} }, // Return + { MODKEY, 23, view, {0} }, // Tab + { MODKEY|ShiftMask, 54, killclient, {0} }, // c + { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t + { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f + { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m + { MODKEY, 65, setlayout, {0} }, // space + { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space + { MODKEY, 19, view, {.ui = ~0 } }, // 0 + { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 + { MODKEY, 59, focusmon, {.i = -1 } }, // comma + { MODKEY, 60, focusmon, {.i = +1 } }, // period + { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma + { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period + TAGKEYS( 10, 0) // 1 + TAGKEYS( 11, 1) // 2 + TAGKEYS( 12, 2) // 3 + TAGKEYS( 13, 3) // 4 + TAGKEYS( 14, 4) // 5 + TAGKEYS( 15, 5) // 6 + TAGKEYS( 16, 6) // 7 + TAGKEYS( 17, 7) // 8 + TAGKEYS( 18, 8) // 9 + { MODKEY|ShiftMask, 24, quit, {0} }, // q }; /* button definitions */ diff --git a/config.def.h.bak2 b/config.def.h.bak2 new file mode 100644 index 0000000..d5b4e3d --- /dev/null +++ b/config.def.h.bak2 @@ -0,0 +1,117 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int snap = 32; /* snap pixel */ +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { "monospace:size=10" }; +static const char dmenufont[] = "monospace:size=10"; +static const char col_gray1[] = "#222222"; +static const char col_gray2[] = "#444444"; +static const char col_gray3[] = "#bbbbbb"; +static const char col_gray4[] = "#eeeeee"; +static const char col_cyan[] = "#005577"; +static const char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, + [SchemeSel] = { col_gray4, col_cyan, col_cyan }, +}; + +/* tagging */ +static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + +static const Rule rules[] = { + /* xprop(1): + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ + /* class instance title tags mask isfloating monitor */ + { "Gimp", NULL, NULL, 0, 1, -1 }, +}; + +/* layout(s) */ +static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ +static const int nmaster = 1; /* number of clients in master area */ +static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ +static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ + +static const Layout layouts[] = { + /* symbol arrange function */ + { "[]=", tile }, /* first entry is default */ + { "><>", NULL }, /* no layout function means floating behavior */ + { "[M]", monocle }, +}; + +/* key definitions */ +#define MODKEY Mod1Mask +#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} }, + +/* helper for spawning shell commands in the pre dwm-5.0 fashion */ +#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", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; +static const char *termcmd[] = { "kitty", NULL }; +static const char *slockcmd[] = { "slock", NULL }; + +static const Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY, XK_i, incnmaster, {.i = +1 } }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_l, setmfact, {.f = +0.05} }, + { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY|ShiftMask, XK_c, killclient, {0} }, + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, + { MODKEY, XK_comma, focusmon, {.i = -1 } }, + { MODKEY, XK_period, focusmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) + TAGKEYS( XK_4, 3) + TAGKEYS( XK_5, 4) + TAGKEYS( XK_6, 5) + TAGKEYS( XK_7, 6) + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, +}; + +/* button definitions */ +/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ +static const Button buttons[] = { + /* click event mask button function argument */ + { ClkLtSymbol, 0, Button1, setlayout, {0} }, + { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, + { ClkWinTitle, 0, Button2, zoom, {0} }, + { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, + { ClkClientWin, MODKEY, Button1, movemouse, {0} }, + { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, + { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, + { ClkTagBar, 0, Button1, view, {0} }, + { ClkTagBar, 0, Button3, toggleview, {0} }, + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, +}; + diff --git a/config.h b/config.h index d5b4e3d..34bf472 100644 --- a/config.h +++ b/config.h @@ -62,40 +62,40 @@ static const char *slockcmd[] = { "slock", NULL }; static const Key keys[] = { /* modifier key function argument */ - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, - { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_j, focusstack, {.i = +1 } }, - { MODKEY, XK_k, focusstack, {.i = -1 } }, - { MODKEY, XK_i, incnmaster, {.i = +1 } }, - { MODKEY, XK_d, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, setmfact, {.f = -0.05} }, - { MODKEY, XK_l, setmfact, {.f = +0.05} }, - { MODKEY, XK_Return, zoom, {0} }, - { MODKEY, XK_Tab, view, {0} }, - { MODKEY|ShiftMask, XK_c, killclient, {0} }, - { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, - { MODKEY, XK_space, setlayout, {0} }, - { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, - { MODKEY, XK_0, view, {.ui = ~0 } }, - { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, - { MODKEY, XK_comma, focusmon, {.i = -1 } }, - { MODKEY, XK_period, focusmon, {.i = +1 } }, - { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, - { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, - TAGKEYS( XK_1, 0) - TAGKEYS( XK_2, 1) - TAGKEYS( XK_3, 2) - TAGKEYS( XK_4, 3) - TAGKEYS( XK_5, 4) - TAGKEYS( XK_6, 5) - TAGKEYS( XK_7, 6) - TAGKEYS( XK_8, 7) - TAGKEYS( XK_9, 8) - { MODKEY|ShiftMask, XK_q, quit, {0} }, + { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, + { MODKEY, 33, spawn, {.v = dmenucmd } }, // p + { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return + { MODKEY, 56, togglebar, {0} }, // b + { MODKEY, 44, focusstack, {.i = +1 } }, // j + { MODKEY, 45, focusstack, {.i = -1 } }, // k + { MODKEY, 31, incnmaster, {.i = +1 } }, // i + { MODKEY, 40, incnmaster, {.i = -1 } }, // d + { MODKEY, 43, setmfact, {.f = -0.05} }, // h + { MODKEY, 46, setmfact, {.f = +0.05} }, // l + { MODKEY, 36, zoom, {0} }, // Return + { MODKEY, 23, view, {0} }, // Tab + { MODKEY|ShiftMask, 54, killclient, {0} }, // c + { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t + { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f + { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m + { MODKEY, 65, setlayout, {0} }, // space + { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space + { MODKEY, 19, view, {.ui = ~0 } }, // 0 + { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 + { MODKEY, 59, focusmon, {.i = -1 } }, // comma + { MODKEY, 60, focusmon, {.i = +1 } }, // period + { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma + { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period + TAGKEYS( 10, 0) // 1 + TAGKEYS( 11, 1) // 2 + TAGKEYS( 12, 2) // 3 + TAGKEYS( 13, 3) // 4 + TAGKEYS( 14, 4) // 5 + TAGKEYS( 15, 5) // 6 + TAGKEYS( 16, 6) // 7 + TAGKEYS( 17, 7) // 8 + TAGKEYS( 18, 8) // 9 + { MODKEY|ShiftMask, 24, quit, {0} }, // q }; /* button definitions */ diff --git a/drw.o b/drw.o new file mode 100644 index 0000000000000000000000000000000000000000..e6e86e54762097f972308d442c8b502ee0dead42 GIT binary patch literal 10744 zcmb_ie{kDHcK^y&5;+Ny@5&DYJt8pUJ!7LRtbHq(=+rbVxqX~%dorUf*= z#=eXk`N=~B=&Yh&dce4WcS;Rkym9I2z%MFO3(V@vX8Ef*rFSD0lbt_dj#aJ2-6s3m zw0AU7XU=irHtictyV&To+52}+5;&o+jk8zvH9Gs1-kV^*)_W4{o0mwvUNimio){Y4 zU7W>WUmEOWl6{JUK-l0AWCW6iyK zPj9zb{)mhe7(EwCKxSZc0X5jy3HDZUeEDzm7rAmLI#+xYc<2w1max~HHph-wIT(}A z%6dXl2eizwN`k#wYBKGcK&3=9gfl+vyhYUBs;@dr?y5aFOewT z+tZ8|_Y&_$j+m^g5uYa8dpQvW7R*qX%n<77_FAuAe*x?AnRXJ2+T9R80zR|JWT*y$ zCflE=?oX6I_D!BstyWETZ*;0Ia>6X{1I2NdSI!q97UVjZ6j2X-Tdhtw@V21hnqo7p z#i6qwkiHNh2%CfD&A{#otQy$;vhR&jjH33&qO`pPKAl@@Jy{M4ahYS4lHX+i&F$la^_>&Ky(as$=%gtzdUg1=U6(5;4%vyK{=7HFKO(I}MrjwDc1H_sRLpvx&OXB~G}!()dmZ657fWoMsyA%}nPR{A zSQU=r_5>cZE@9bFEYAL@-x-I85dG6zhwty|q4@aiRSeO-0HwZu#*3VwZ>G;xUM{@q zTeVtWrL%*2m(JcW?c13`i-cB1bK?&qFb{N#XNw%L0D}RI~ zY{Tc42UbJiB_p&@XWo!GcEXx#xA|CHgV;v7MGfS;H4O*EK82aeAB|w^ zENwX1@P>h~Zn4^7eX`}`9J1xw7M&g9K?I-tN9b7?SPSgl>pSoqZ;efWDn521F!}?+sS~&SHm@`t5EIRwbV23CM?QL-04j;nVYue}5344-9i@`XXq>ZAlL9#`B zMY{}qubeSC@*9yUsSQCAGi}pJ(Pf@-pmjP*;o8!--nvL1_gVK>P8j^IoK;{ybS>%Gb#b^M2AUM&prcC*}PQFru?h;$!bw zt4!MpHO3jZBgnb`;_khn}U(E>OBE~8@n<(w-wC@W-jnZ$R&eR5EiN4lx@0BFHcsbVItd$me zdazx1+Miks$tw*TIK(%_+1FDScdq!Xbg|({hMIKbkVrL&W~2V^wBC5+)Kmi?r)RKt z%Ab0ShSTMv9$NV0d*Nf>fxxJ7rdq{RO`4U*+7?co$2)=1e}o7EAOVsLPZmpEf*9gz z1x6pkZ~_W9LZ=q}D%u6GUhMF3v%c6;U$+)o2I*^M(tadV0kJXejhX;jxHa`YeVs9e zl~_px6>TtnGkCvi08O0TMkq#>#sn)N*5Ewr*HJtKwZQ1_D7@hz29u{q#$HzO_XC`wZd2$I3FQk(dOZU^ffzb^lxr$73I#!zG(%Hud z50kx`V9qgM+HFy@JkkW$@Uur8^BlHEnmA9Ao#Y!W!S;ibLp;TH&3#mO+`qqmsMu`q4D$s{StU1`mqaU-%2MSLKRSi)j`n0%qV zA>{MO^L9izwfGTWE#djxT11D?MO}y>Y~IMhd$h=rHDalBOix5A6BFH$3VV}IEWvXb z@m!1}_kz_(=E!FU*ATN~p!MtMh+pwepko4;3c4?X@dqaR7RNQ;ihF#psbe~Z6SPwD zM&6qWnD$>{s~;11y|~k2{FHSe4#hw5Bf!2+jLXY7x#v42Qz+yMOM~fDE|<50*?g)$ zxFw&nf?EptpK|s<4_V&(8>pgQHXi|J0%G@mKP)fl*-PdpPt^SRgQkDb+onJ5Nz(ay?044vMjtT90@LKS+=Yt8d(u+ zUX4|oDN77oy=)0*#+MhLAUfK{v0JQczm=~SQHKNn+EJom5GJR^;six?x{S{f&>-#r;jY>f`?4xHs-^eq>I< z-}3O>gg;uIr~6}dIe*mfx9I-nR)4V7-vowMzi%m6cN0I#TKeknH$GBl_?sTCZ}SJs zUTW%`QlEI`HRMi^>?1mqTWFDdUWnUO53%FkR+?9*d3BoC@ORb!&@6Q#el^Ii z9sZV_Kd7JO+y_DSl;CNei_T0;f#*BE?eIVAsXOL>&SUy3o*k%l0QF;aXvKkSK-~(Y zSM=9PiYnsayKBaD6a&F}e4+3?(Bp5s)!&3Typ8)k1Ux3j`TBWGtoJvWL;)*+n&N}( zG$817v}qlW)M2d;*TYg}?{>Lr4AGps1??iDhhj7a?&h1~De{wT81*+lizyWfpd zW;nZ0T0_p52IbyAABabrs||<|emO<^5`ho7aQc~v=V~!QN4BJrz=!maMdDo?m)zR4Jff>t=q29`6Me66G0&O6eqV$BWDWew z8aVv~IorJF)WE+7ob=f({7&&t1{=UPF3RM7K044&2+^gV+9Il*Y8usiuNxBx^ba^GJ9d^UZS*1&JBfp^xx z@2Y|4YT!Srfj?dYf2Ichd=30i4g5cA;8Qj5Gc|B8;*9LPO4wP(!yBKJ8H`NPD&)6oeOs({2x`mb ziy4}DW4e&R3qi}^E|158*4M`SU4tV-sbSgcXw&+-Ggfjim(eXe0ydYdOp$XJGR49B zGg@Ce^b$NIlyt=lK?)a>-Z7lX-HxY>Re# za{ZWWFq>VCfmCiQ9yxtRA+>F$OI(hL^26J87!B;(b7?M(=GnM4V`WCHB3Zl#jrfR_ zfl+$lWllqbG)7V#n@_Wn<-pCoOC)W0Z^cIji;gg2=;kjmE=!1z{%ubaHJl}6PWScx zei~6CqBNWxq}SmLBxt~W7S@{2X92Y3b6WX zka!$rq;_JI0zt$jf}n(Tku{~u<6!V2?0v;+nLd1aB zr}8F4+wmNHNrAiNe=Kk*Up}ZmSLCSjJtP2y)~niizQCoNb({(`3jGg&Nqy*i zq(X93zr<_cf2-hh_m*;ARB+Y)zf|y`LjR_Mt8y+u{-;9vT!xR7f2F|Xy0S!sGN{n2 z`ai1Rmx4~pnNNaIs9KDV#2;1gs}%gOf`=9SeenQs%c&C^iEw%oNcmSNc#DEB6*!rL zRIV3xStoG0-dz}@l2YW*9Y@OF>XPFXa)RP_BDsHKBn0J37w({%woBlo|JC?N`MU)! z^_248R_K>0^uHCGgydYS;9m)x^r5C)S7QS@C`5k^K62h>1z)b<1%Z1`X6#N;1OFKVCLQsCL(5w691qHtzbW;AyE;)y}6iqv%&_@;ew_Wt_3i|gI z`V|WOl!DWpOV0Zz1;0_j=h1>t$et_lk@OcRIQ=0_;)@hq&F42M_{|D^Qs5L1YMxvr zaH`0^zsHBlIz`Sc=*xNUQE+wtKB3@hTp+ag2)p(z5NJZlE{Uz@M62IFa)1DNy#LtNS0T(WRC!qgZ zp(5$!d%eYl%lCTHg&!qGl&lMv@9(EwxO{)}f7$_`oL9cTUvtsR_qQSDk@WK2JnX{d zJNRiAF5kN$;a@37zH1E^F5h8U7cSpnPr7jV-qOOw?L$^-Gis~g)C00r$YfJte)SIb zr>v9~-drqd;X|FwN_4ewIzKdoJG&Of-)%Bs{N#Ui(MqN775%NbQh2zKAI=o4 z?cgE7nE^b|=z;V9Qi6~|t`NuHw9J@jO^G;`1Hx^xtI?f`wm@teaT*mGKxw8VhO!VJ z;uT%~TRq`d2wa$%AYQH_hFOYxe%f;+)6E|f{0l{VNKrxA5H;;Hl1VvIEt0>%HKFXv zItC_cyQa}L(IWt*;8fG!!ReOMFi{ad-D%WvMDWvDt`<43tXE-Bw$GxYLui)brcHr{ zt{`sxeS+Vum-L?$y&Vmb>E@3L{%2i|ar0Z?oh^Qj|InF1{#}IJNk@+4r@!Y=nQd;u zkAIK8HEl!$Hkp%Da`V&i?@|$nrfm`vtaA;z?MKtNNI3tqm-9+1JJs~JoBw|S5_v=2 literal 0 HcmV?d00001 diff --git a/dwm b/dwm new file mode 100755 index 0000000000000000000000000000000000000000..7720a530e6199b448a4c3308f62bd5acc88ed7d3 GIT binary patch literal 72448 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 d23_f?n7jE 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 + #include + #include +-#include + #include + #include + #include +@@ -102,7 +101,7 @@ struct Client { + + typedef struct { + unsigned int mod; +- KeySym keysym; ++ KeyCode keycode; + void (*func)(const Arg *); + const Arg arg; + } Key; +@@ -954,14 +953,13 @@ grabkeys(void) + { + unsigned int i, j; + unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; +- KeyCode code; + + XUngrabKey(dpy, AnyKey, AnyModifier, root); + for (i = 0; i < LENGTH(keys); i++) +- if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) +- for (j = 0; j < LENGTH(modifiers); j++) +- XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, +- True, GrabModeAsync, GrabModeAsync); ++ for (j = 0; j < LENGTH(modifiers); ++j) ++ XGrabKey(dpy, keys[i].keycode, ++ keys[i].mod | modifiers[j], root, True, ++ GrabModeAsync, GrabModeAsync); + } + } + +@@ -988,13 +986,11 @@ void + keypress(XEvent *e) + { + unsigned int i; +- KeySym keysym; + XKeyEvent *ev; + + ev = &e->xkey; +- keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); + for (i = 0; i < LENGTH(keys); i++) +- if (keysym == keys[i].keysym ++ if (ev->keycode == keys[i].keycode + && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) + && keys[i].func) + keys[i].func(&(keys[i].arg)); diff --git a/dwm-keycodes-6.1.diff b/dwm-keycodes-6.1.diff new file mode 100644 index 0000000..952a539 --- /dev/null +++ b/dwm-keycodes-6.1.diff @@ -0,0 +1,133 @@ +diff --git a/config.def.h b/config.def.h +index 7054c06..f59d1eb 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -58,40 +58,40 @@ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, + static const char *termcmd[] = { "st", NULL }; + + static Key keys[] = { +- /* modifier key function argument */ +- { MODKEY, XK_p, spawn, {.v = dmenucmd } }, +- { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, +- { MODKEY, XK_b, togglebar, {0} }, +- { MODKEY, XK_j, focusstack, {.i = +1 } }, +- { MODKEY, XK_k, focusstack, {.i = -1 } }, +- { MODKEY, XK_i, incnmaster, {.i = +1 } }, +- { MODKEY, XK_d, incnmaster, {.i = -1 } }, +- { MODKEY, XK_h, setmfact, {.f = -0.05} }, +- { MODKEY, XK_l, setmfact, {.f = +0.05} }, +- { MODKEY, XK_Return, zoom, {0} }, +- { MODKEY, XK_Tab, view, {0} }, +- { MODKEY|ShiftMask, XK_c, killclient, {0} }, +- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, +- { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, +- { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, +- { MODKEY, XK_space, setlayout, {0} }, +- { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, +- { MODKEY, XK_0, view, {.ui = ~0 } }, +- { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, +- { MODKEY, XK_comma, focusmon, {.i = -1 } }, +- { MODKEY, XK_period, focusmon, {.i = +1 } }, +- { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, +- { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, +- TAGKEYS( XK_1, 0) +- TAGKEYS( XK_2, 1) +- TAGKEYS( XK_3, 2) +- TAGKEYS( XK_4, 3) +- TAGKEYS( XK_5, 4) +- TAGKEYS( XK_6, 5) +- TAGKEYS( XK_7, 6) +- TAGKEYS( XK_8, 7) +- TAGKEYS( XK_9, 8) +- { MODKEY|ShiftMask, XK_q, quit, {0} }, ++ /* modifier key function argument */ ++ { MODKEY, 33, spawn, {.v = dmenucmd } }, // p ++ { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return ++ { MODKEY, 56, togglebar, {0} }, // b ++ { MODKEY, 44, focusstack, {.i = +1 } }, // j ++ { MODKEY, 45, focusstack, {.i = -1 } }, // k ++ { MODKEY, 31, incnmaster, {.i = +1 } }, // i ++ { MODKEY, 40, incnmaster, {.i = -1 } }, // d ++ { MODKEY, 43, setmfact, {.f = -0.05} }, // h ++ { MODKEY, 46, setmfact, {.f = +0.05} }, // l ++ { MODKEY, 36, zoom, {0} }, // Return ++ { MODKEY, 23, view, {0} }, // Tab ++ { MODKEY|ShiftMask, 54, killclient, {0} }, // c ++ { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t ++ { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f ++ { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m ++ { MODKEY, 65, setlayout, {0} }, // space ++ { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space ++ { MODKEY, 19, view, {.ui = ~0 } }, // 0 ++ { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 ++ { MODKEY, 59, focusmon, {.i = -1 } }, // comma ++ { MODKEY, 60, focusmon, {.i = +1 } }, // period ++ { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma ++ { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period ++ TAGKEYS( 10, 0) // 1 ++ TAGKEYS( 11, 1) // 2 ++ TAGKEYS( 12, 2) // 3 ++ TAGKEYS( 13, 3) // 4 ++ TAGKEYS( 14, 4) // 5 ++ TAGKEYS( 15, 5) // 6 ++ TAGKEYS( 16, 6) // 7 ++ TAGKEYS( 17, 7) // 8 ++ TAGKEYS( 18, 8) // 9 ++ { MODKEY|ShiftMask, 24, quit, {0} }, // q + }; + + /* button definitions */ +diff --git a/dwm.c b/dwm.c +index 0362114..60dd817 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -31,7 +31,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -101,7 +100,7 @@ struct Client { + + typedef struct { + unsigned int mod; +- KeySym keysym; ++ KeyCode keycode; + void (*func)(const Arg *); + const Arg arg; + } Key; +@@ -967,14 +966,12 @@ grabkeys(void) + { + unsigned int i, j; + unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; +- KeyCode code; + + XUngrabKey(dpy, AnyKey, AnyModifier, root); + for (i = 0; i < LENGTH(keys); i++) +- if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) +- for (j = 0; j < LENGTH(modifiers); j++) +- XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, +- True, GrabModeAsync, GrabModeAsync); ++ for (j = 0; j < LENGTH(modifiers); j++) ++ XGrabKey(dpy, keys[i].keycode, keys[i].mod | modifiers[j], root, ++ True, GrabModeAsync, GrabModeAsync); + } + } + +@@ -1001,13 +998,11 @@ void + keypress(XEvent *e) + { + unsigned int i; +- KeySym keysym; + XKeyEvent *ev; + + ev = &e->xkey; +- keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); + for (i = 0; i < LENGTH(keys); i++) +- if (keysym == keys[i].keysym ++ if (ev->keycode == keys[i].keycode + && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) + && keys[i].func) + keys[i].func(&(keys[i].arg)); diff --git a/dwm.c b/dwm.c index 253aba7..02b17f3 100644 --- a/dwm.c +++ b/dwm.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -101,7 +100,7 @@ struct Client { typedef struct { unsigned int mod; - KeySym keysym; + KeySym keycode; void (*func)(const Arg *); const Arg arg; } Key; @@ -957,14 +956,13 @@ grabkeys(void) { unsigned int i, j; unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; - KeyCode code; XUngrabKey(dpy, AnyKey, AnyModifier, root); for (i = 0; i < LENGTH(keys); i++) - if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) - for (j = 0; j < LENGTH(modifiers); j++) - XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, - True, GrabModeAsync, GrabModeAsync); + for (j = 0; j < LENGTH(modifiers); ++j) + XGrabKey(dpy, keys[i].keycode, + keys[i].mod | modifiers[j], root, True, + GrabModeAsync, GrabModeAsync); } } @@ -991,13 +989,11 @@ void keypress(XEvent *e) { unsigned int i; - KeySym keysym; XKeyEvent *ev; ev = &e->xkey; - keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); for (i = 0; i < LENGTH(keys); i++) - if (keysym == keys[i].keysym + if (ev->keycode == keys[i].keycode && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) && keys[i].func) keys[i].func(&(keys[i].arg)); diff --git a/dwm.o b/dwm.o new file mode 100644 index 0000000000000000000000000000000000000000..4db276fbe60b25c82e34922ab7a6eb4d9a25554f GIT binary patch literal 54472 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

(-fu(j5Sp36%UVJo&N1Z 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 X)F0jEJ6ic2&*>76OF=%``v1QGVsaKo literal 0 HcmV?d00001 diff --git a/util.o b/util.o new file mode 100644 index 0000000000000000000000000000000000000000..e1356931d602cd441820942e57d8d856b02bbe2b GIT binary patch literal 2240 zcmbuAO=uHA6o6-wYGbWQs)EIOSa6Uo*fj~LG5!#3wW|cFwLR!Xx5>sv^ViKpQWdON z51|x#^5j9#g9i@^-V_@2;K7R*ueKn9pdf+=Q6av!J5#62_M#7F-<$9K%}s?B)v|u9WzbBWD_}SG=CYlzPtrwG#TwTnqxF(G&3}rX%5kJ1}tN? z#r8+EAvzM#GW23Z8>7{Tc8|_LPDFc17aaYV-gopf`oz&MXbZG4KTDTU&mD#*Ovh-* zXuda~cGQ?3qU!4*8VZ32baxCRz|;E)V`mN$rWws8cXA`xPSv*?b9>RXsKUeH@wTHr z_Xtmy@GRmfILBcP#>Q;rUltvskQTQ-ll;4yM%p;nU-q8c*m6J+3BVi9{?J zKcM!HS~=A)8FvgMG%SG90Yim>#|o(=K$I3TarO$IZvcj})m22fHcFI6RO##P3@t!# zFYq1Q_W||MaP)TIRCt;DlH9kA`^Li|PW%e;BPqh)_Etz%XO9{j(0`W`6zMhvEW}h$JijZ zQGMq&z84M=uX2w2!6D=jHv|{`B6@AQ#LNlM%y#vpuxzVn>da~|qUTIz5`CgpBf4F| z35Lh@IMK6}QpqYqNV&o+9j@X)jhWdie1551*Q<5~n#rai6$@IE7xK1Qvc%5*PpgoQ zcMf|lOPWu9$`EXfm8B0Rcz$Uaf?ef@t@4D8z|a)8AAdJccELa{_Xc^&yAVPUFWwCd zYyN9~oYzc%mPM>D_A7j1eWBCfKpXG3EXR1j9vOly@`OGqF*$Tf1jx`Q_8c(0m-4rY zDGi?Q-Iw=$rXUtWz4?!L{sgRh_D8t*ig l^yXttZ|?z-7>CZ^HUciZoS2dxu>A5{eE-*1B3;9q{|CE<3abDB literal 0 HcmV?d00001 From 16af968b2ce6152a8ccb5a8125bf215a387f65a8 Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Thu, 3 Nov 2022 12:15:04 +0100 Subject: [PATCH 4/9] fixed red and blue screen --- config.def.h | 2 +- config.h | 2 +- dwm | Bin 72448 -> 72416 bytes dwm.o | Bin 54472 -> 54336 bytes 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.def.h b/config.def.h index 34bf472..65902bf 100644 --- a/config.def.h +++ b/config.def.h @@ -62,7 +62,7 @@ static const char *slockcmd[] = { "slock", NULL }; static const Key keys[] = { /* modifier key function argument */ - { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, + /* { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, */ { MODKEY, 33, spawn, {.v = dmenucmd } }, // p { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return { MODKEY, 56, togglebar, {0} }, // b diff --git a/config.h b/config.h index 34bf472..65902bf 100644 --- a/config.h +++ b/config.h @@ -62,7 +62,7 @@ static const char *slockcmd[] = { "slock", NULL }; static const Key keys[] = { /* modifier key function argument */ - { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, + /* { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, */ { MODKEY, 33, spawn, {.v = dmenucmd } }, // p { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return { MODKEY, 56, togglebar, {0} }, // b diff --git a/dwm b/dwm index 7720a530e6199b448a4c3308f62bd5acc88ed7d3..76692285d7edec769032f254ae89216f313d0d8e 100755 GIT binary patch delta 4418 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 JA{wqg|8LE+uYLdk delta 4333 zcmZXXe^6A{7036Y)WtmN5^Elth@x&%tUsQlAvg)f)r798r6n!SBvD*U#s(uKIEh(} z5Ef-Y1!UQ;SVR;MaTgT>Y>Yqnt!T8BWYJhPjZ>TnGnq_m*G!#eI&ti|_q|u>%lqSV z?>*mh?vJm-ah*gnKcCM^2}M0@8rDw`ugCSXRPL+dubN)yQyHV22F55$t&j#YjZVT!_&tKVXk!N%3UW9&KHbtW@=aCTPjxCqlj!EatKiD1Ln z@JD})#iTxZ8H1QNZtPPo^_vVVzo1lrfh%py2VaJFEwU@9l=yh~a9HqL!T$(8 z5RAlgAoX1;>1dl&5EVQAV%IrcLt3gGf6JNR|d|#Nt zYLVo2#_glo=&L;{@wutniciyycK00eyX97+mK9~Neb`^*V09QNQczbUA%1HH+l!4` zosfzp3~$Y$R@yeTb!wYLt@GQse{`{n9e}6UfmI#}H;VZp?iVZgfua_AY^(v99$F}A zH6EJrVOl7ay#2i=MYQcDDeMpmN@V1hNN6ZYK~AZJuS;x5p)$6V_qeE3VTX}hDzhed zN*&CL!BPdQwo5Q?&tL&$Zg;U3T-&a&BZ%DLV#iRh!)0xywd(I+ip<}D$;3~Px7foxq^i!9K>6 zDutGsTBQiZU6q5WK6*`6Hg+0uJ~{df^`lS7j7Fb~mwg$m3#~o}oon}eF4luw$TSZR z6l?Do?X)LIkFhr4K3uFH8+R|KTLNcyFQr9ARx8#+W4d`~=4dxf zNUQd+w3tz`K^-I|&nAad%o5rl;!o0ET$ZX)#sc3M}I<8TD z0FjLft4C5J|6!{e9kh&FjSl1-l(67n3cG~dga1T%6Yaew%48~Qnr!Scx|<%Oi}hyH zO7<5d9a7jJ))E^~eaO%Lj77}~`Q$cppB>FBNgZi+U}}(d3GInhho$I$Pa2)o0c0Nj z|2cmZGpaVB;xMJy4*ChFj#}%{P1bL#r0B=uN39;*A!`n#=&NIX?taAiXVJyB#4pEa z&UERUO#HI{DPHo+EEenhiuEz=oV1gjKir3(AZ=*(%hu_dn$9J9bTxq6q|VaRETN66 zHHZnwQ9swzJPi5icnw&h=4ci-8p*OLV6p0-6ahmI0W?w%`lrJw;eR7w!LZ-VE{gul zEf$srYs(yTwMa;BNnsvTv?wfu?iQJq;984_urLSFWW@%-gR>pUvu!GJl;3yQ_-i_a(hB{Vdw|6ZI|Xx8N{tpI%8v@S-y=ly^$#J7cq! zkMVzEg6hv-dO7Z&;ro3`rvpEnp)J*ELw*-+sZM_EcXujutla73b4}|~*xymmwVcJ{ zQkR30H>UeKE`Mf5xH};#UhR?+v%g!mp5mEE4=?yttbgH#Fr!CCdQU>clXLKX&wO}$ z%xLRLKwpp9+NR|n58~DL77*wO;dYPwaM++GPRBF7^ZB>Mo4xa+^b0;6OL}GN%i8s? z?}vEp`p*-pcZ|wA-5e)|p{Wm1Y{;PY{6ba3V0|(c^jV_f=BkzjNF+;Ep9S_lGt0x8 zKH2K!@01>W4bI2ab{ncl4H?vFni>|dmPpmt7`p&>DK_1p>als4(NE(V)X{NyY{;PM zv0)Kw(bDI~}Dg&BJXzu0b6gm&b+-sva8_u@)^2e?0Dnvox+j)noI}NUGPM zj*iP?Lk3lk4U1Td_Rs0Z<0hV?aSf^-OTRCvUV}P1E{_cvR6RC~{&RAS{&C93<>$PD z!~r?6M~l%jSXY0k<-4A{x;+_d1}4XGF;R=OYuT-PJd6GT8GQrhm~?}(79hQmD~ltprlBbL5wu-Npq_7%!Tei1diA*o(T^?WtW@Jo+Ttfu(}UKlb7F4fX^Qqcm{7D-_I(~3b@5YGID^J3)Bg*RHO{&K From 3034fe23195370df54d0f72fb6898514d3a35036 Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Thu, 3 Nov 2022 18:03:17 +0100 Subject: [PATCH 5/9] brightness control added --- config.def.h | 3 +++ config.h | 3 +++ dwm | Bin 72416 -> 72480 bytes dwm.o | Bin 54336 -> 54664 bytes 4 files changed, 6 insertions(+) diff --git a/config.def.h b/config.def.h index 65902bf..433f8e6 100644 --- a/config.def.h +++ b/config.def.h @@ -59,10 +59,13 @@ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; static const char *termcmd[] = { "kitty", NULL }; static const char *slockcmd[] = { "slock", NULL }; +static const char *brightness[2][3] = {{"backlight_control", "+5", NULL}, {"backlight_control", "-5", NULL}}; static const Key keys[] = { /* modifier key function argument */ /* { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, */ + { 0, 233, spawn, {.v = brightness[0]}}, + { 0, 232, spawn, {.v = brightness[1]}}, { MODKEY, 33, spawn, {.v = dmenucmd } }, // p { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return { MODKEY, 56, togglebar, {0} }, // b diff --git a/config.h b/config.h index 65902bf..433f8e6 100644 --- a/config.h +++ b/config.h @@ -59,10 +59,13 @@ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; static const char *termcmd[] = { "kitty", NULL }; static const char *slockcmd[] = { "slock", NULL }; +static const char *brightness[2][3] = {{"backlight_control", "+5", NULL}, {"backlight_control", "-5", NULL}}; static const Key keys[] = { /* modifier key function argument */ /* { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, */ + { 0, 233, spawn, {.v = brightness[0]}}, + { 0, 232, spawn, {.v = brightness[1]}}, { MODKEY, 33, spawn, {.v = dmenucmd } }, // p { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return { MODKEY, 56, togglebar, {0} }, // b diff --git a/dwm b/dwm index 76692285d7edec769032f254ae89216f313d0d8e..47a2ee86f242258bb68b6e6f5f838d7156ddefbe 100755 GIT binary patch delta 9923 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 Date: Sat, 5 Nov 2022 18:33:07 +0100 Subject: [PATCH 6/9] slock configured & volume control added --- config.def.h | 18 +++++++++++++++--- config.h | 18 +++++++++++++++--- dwm | Bin 72480 -> 72672 bytes dwm.o | Bin 54664 -> 55552 bytes 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/config.def.h b/config.def.h index 433f8e6..7b02426 100644 --- a/config.def.h +++ b/config.def.h @@ -60,12 +60,24 @@ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, static const char *termcmd[] = { "kitty", NULL }; static const char *slockcmd[] = { "slock", NULL }; static const char *brightness[2][3] = {{"backlight_control", "+5", NULL}, {"backlight_control", "-5", NULL}}; +// Volume Commands +static const char *volume[3][4] = { { + "amixer", "set", "Master", "10%+" + },{ + "amixer", "set", "Master", "10%-" + },{ + "amixer", "set", "Master", "toggle" + } +}; static const Key keys[] = { /* modifier key function argument */ - /* { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, */ - { 0, 233, spawn, {.v = brightness[0]}}, - { 0, 232, spawn, {.v = brightness[1]}}, + { MODKEY|ShiftMask, 46, spawn, {.v = slockcmd } }, + { 0, 233, spawn, {.v = brightness[0]} }, + { 0, 232, spawn, {.v = brightness[1]} }, + { 0, 123, spawn, {.v = volume[0]} }, + { 0, 122, spawn, {.v = volume[1]} }, + { 0, 121, spawn, {.v = volume[2]} }, { MODKEY, 33, spawn, {.v = dmenucmd } }, // p { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return { MODKEY, 56, togglebar, {0} }, // b diff --git a/config.h b/config.h index 433f8e6..7b02426 100644 --- a/config.h +++ b/config.h @@ -60,12 +60,24 @@ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, static const char *termcmd[] = { "kitty", NULL }; static const char *slockcmd[] = { "slock", NULL }; static const char *brightness[2][3] = {{"backlight_control", "+5", NULL}, {"backlight_control", "-5", NULL}}; +// Volume Commands +static const char *volume[3][4] = { { + "amixer", "set", "Master", "10%+" + },{ + "amixer", "set", "Master", "10%-" + },{ + "amixer", "set", "Master", "toggle" + } +}; static const Key keys[] = { /* modifier key function argument */ - /* { MODKEY|ShiftMask, 10, spawn, {.v = slockcmd } }, */ - { 0, 233, spawn, {.v = brightness[0]}}, - { 0, 232, spawn, {.v = brightness[1]}}, + { MODKEY|ShiftMask, 46, spawn, {.v = slockcmd } }, + { 0, 233, spawn, {.v = brightness[0]} }, + { 0, 232, spawn, {.v = brightness[1]} }, + { 0, 123, spawn, {.v = volume[0]} }, + { 0, 122, spawn, {.v = volume[1]} }, + { 0, 121, spawn, {.v = volume[2]} }, { MODKEY, 33, spawn, {.v = dmenucmd } }, // p { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return { MODKEY, 56, togglebar, {0} }, // b diff --git a/dwm b/dwm index 47a2ee86f242258bb68b6e6f5f838d7156ddefbe..f31c58acf5e8cd23c50f28b7364837f242761a55 100755 GIT binary patch delta 10364 zcmaiadt6P~`~TjXLqeU9Q|U@XxfDgE!^sqf3AraBl9Et55mC_?j)P$y#<*X?aXiA zZ!38=EAnkF+8SC5{4unqequ-4)cQ&>tr5)^UphS6q!b@*GVqs2WR~P+mu?TUmPe1%Je`Sg5HrL|ybzB=thAYJ-b{Fb1T-^M*r+A!ly0sMd(3WlhW-9tIipHL}#>zCK6itMp z`Ch4Wm1)8ijjy8lNzt5S8XrZYRWy$kO)S$ih9(ysdAX7I?VX}>VyfqFco%M_lAMRP*YI4PPJC|QpynnFbrplEI}&2~kzOwsgHG?h$a$yHP)MKwlIoo1?ZMH8!N zW+|FOOfy2!1mnFl0?UDU+s1f*2R_xFjL%Z|_KbH@cpJtCD!eP>1@Hq(ZNMCt6xxo_ z6Z&GA>wqW~*fLx6l^a+a6>PQfX3azmMen5O4{&`Qqs8qj+7#++YeG5T94cDqL}*9% zZCrgi{IDl{CbzBPKKpP|R2>B;HBbhTtBd8P+ zCf8tc#0$Ru*JCwk>ts|(X@Cl*-eaRt}8851JBF^syW zHq&{1hXGxf+M-T`4jF!M(;;RhIz8O=>71rU6 zf%$LhWZuRa+pncQJ>27uuK{P#R|Bk*UvOXN+54Y}9PnrHj#i$cKPZ*3(m5q}umoZ~ z!gWRxMCQj^V@9_~+ z2=*QZp_JRtdu+Huu{}MJ8fi{Xm!^AHL7mxjn9+RKI$M_I)0%a~J9}Oe#bY!tyra0Z z_&|8Cx>EWIdJ!2Sbz4!~skfgf*)A`R>+`cH#b2S&zEzU1g_`xtaJ;fa5acqm=6hg% zbx)(Y{i*mX#q0ZhDLUk>G6;h$kwcB$Kd{McZPBcw@lox>GFlSV!#QPsRpHJH1UBtgBVt7mO0woP^EAFM`!v{5(JP)=B zn!x$=V7TYddZ;O<8Bos&e2RbrB05E|9=*Y1!kgLVpY+F(V>Ew&v1nQ{#-g>}_~qZ> z$$1!V=&%2l|DZ7=dJHK9YYcH)!NAfdIKmQdli42*Hgm$?`prY$!aNj94c85V)e%8u z$p}snkQtI0vou+XuxQ$&!GKGc#SwY*$A~Fj!bSre>VL~cZaF3jf)Hgs9c9M0w5C3j zG&jbn(SE2~MdcgO;33))OrLe06X=HMvoWY0B!{T*Q*>g^gHjfMj9 z=(iXTDKM9$kv>w3T=E+k7&$m#8V_qzpN@is7xBgy( z5ol&Zor3fD@envoMGI6k%zc2_qP6g#lKz?Wob=ap9xG$ApiqnTbX!h9Gm~%%!r}Xen$iH5s)O z5wm$zk`y_I8pOFuK6A(?E~>@#Y`8aFW~-OK2n%4u zC$4RiHq7|qRTv{FBqEK!qu|jk#b-2X^cb5iP@>urDj&T{yjeVA%v@2*%A%`dBbx-^ zY=qyo*0Ys7OuVwFL%g5(f=0#0wHynzpv?ZGJ1itD`ezw{r6%u20l!=CeJ9I(%_mV0`EkNZsapos zPuyg?Y&yDKKgz6GKnD_=OEad^*~A&G-lb!ZnT@P75Wu+2{DC6eSpgQuQq*7@dfY^> z7A1g*?NH=T%*z+K0>Jbrc<+| zWXH|?9Cd5}LnQ{#+%Z~_lpw{V(aWT^_EXdTqwz|k4#~@GFHS=z^%zkVok|XCSip){ zd5!NhYBb49sy~f7O&aEXV5%UDd}tp~W?mSlOv^?vHA~)Mvl-2=2ce~Uy*=rrM!9TZ;Jv-69)5V$1ARDKHnQ8mn-l31S z<}j|vaQ6z{N+>(UU0g?NQ`+V(o`L|fH12~Ik-n{#vn-7DabRO>`ttj>W*`biOIAF) zT+Bvqf*ymg_E7F8NwDtC%HnBRK0d3zL9pKcmizDri+e*m@EEc!ccO2>!4Pk>9AMkg z>Uk8a4i|M5;|}NGWEpc(pg6&SH@Rt>yvqh0`|$F0DwfvZlwan*NRu!L^_Rg6x1><$ zifQfS=z%G)Fj|V$y*`weKty|552GUsem8Z)0NgmO?+Q@wGS*N&aK~(}33@x3dC@zj zQb=l`_$y6K?JgG3uGEPkuF#aQbEnjYZL`+6g`j==(m;H29Ooxg$r(PPHz|S;Qxoz) zmXR=n^pmOYlpvq7O$K39O)@M-RT%RhIR%tqzl?-Sb}=>wdK=CEpjq4mrWmB86uLiU zpfo&%f~UIqj(|Jt4r>w`j0$Ou0}$(VDzkAZ+wI6e)~mRD8bdmCOQGDUt;EGtFf~Q$ zIf?A24Ul{$(b#ETZtXE)#*oOinKsOR6H8cpFJm7&VmC~i($F^#cI8(PS{n91}mP<{?fH z5aW~Ra+<$`Klt#N8du!Q(TO0hByvpm)&4n=v%ew0z-n&Nz;s8KLol`U3Cpwz(QL=7 zsj1m<3(%}tO*!e#9s*ESbBE^%$gLV<$d9ImvFzL#UDFGnkTIi1SFox2p5jfdgZ>)N zYFC)rveUE`=#8kP#0lJ4ec>qpzT6gqw%%snO=hKk-mjW7%l%i_F*U_dNAm;q$n55Q9PNi6tIM{B?>#mZ z`cq)=lL4CqYY3(p$I6<_7LqZ6zRL6$^XPtNn_M5(Ym45WS7t$Nt-v8$$L&4{u_8R= z7yJ1MhM=Eop76kHjHElmUmFK5rlzmLX$FiV>x^P? z4XvLU)Om6|I+CB2CYZVmvGlZ7vAZfht}U8=Oo0_}Ve5w+c$pn2X16Z!R43~*5s4}* zOd2zms`OK=4`i~)TcBGBn7(Qy52Fwl; z&(TM-J0OD}oc*C=r_r?m_V2+IHkz7bdy5}aw`_N@f`;S$5@lz*iR)=ic4u)OozHHi z-+ax$CVY4tI#7Our7=^>e7zltLZ&m$!M4`Gi|978TfrKuyRI*&E# zKF?EpS=@7;izxm?vGY4&+7{3EZIL$&t(s4noUz&1`S|PK%I4{iG>m?jpD#Y3A^E*q z6b!--FP>=4dSo9@4kr%E@ZGJ()7XS*Q%%#Sr3!vQLWdwBBXwHBWZFWpD+(J?qm}K&Y6@A| zQ;NS#vsd10(E!b|r=tSGl*tDE7Jb=3qgJ^|o-kYG?huS4^uJFwOR*ezyWgN2FL#(8ckk!SrR)3-KdQ6I+X+sr!rj}KA z!b=L@;L+=~%Dz?c9~DCp|Li$dTWh6KmQ<{(V!f5cTQ__q<_0d8c6TfQx}Y151FffZ76C zcG3vKLSQs-1#kjz9WYBHMIChULF9GfZ9s=F~o(0|p{tO(w7aamF1vbKUemT&See-R_OE8FT2tN~W z3UCSVGH?&D-F{g<2^<2v1KfB(mTeF@_Si|Dz(YU-@MSS(448jNmJb7~zm(;=wt}F; zHuVNB2Szab8vcP7khuJF8{$l284P&hs4S-f%a6ek(DxgR09XWk3-m$u_iu##kHa($ z*c2Cp<-i=^Vc<64d0_h!vfQk(AY1{)03QLffRz=PQK0T51_JC4%zcHId$`>N+6h8^ z+^vQJdjivd6M##A#kk*{2ll`X^9k?}(8eAyf(v9@;38lca3?St_!5{5ocEn9F9Nc! zlR{wJc{B|4{2oi76@(Gr%ek^QUN(Y=0R9Y|0F1mK%bx>x08aw<;y&^Uc)JoKb3nsL zuI+(ife}DGKDqLMpX0;r81Ou>8u$<>G!cX}oNi&j%fJ|5{#99C2|Ro?25XF$zd)P> z-nxch0eV-VVp9a+Pso!J;`CG6Ma)`OMeu!4&AW<&Hr09npbr~c@DBU z)3Nr2aOO6Jc@>!L=g^gGpaI+5r6(I`>b9=!Iw1uhKKa9XT~`u>*8kz~Eh;#HYeC;{ zn<++7p|agB%h+4|;Ufbl!;UB858241scdM>{pZk) zhCLrO%8c6sZWcIXF#cf81eUgv!C~F`>_o#sFm{7b1;zO7wCsz}kfYFdRrMz5+03=a zGF}It#CRibJKEOHCK6j!V1A>Z_aw1UCyplPLJuiv2Za{4l$L!#V+xx~_rIVSh3-;n zA$?XjKpaDN3w@-DU1YbjpLBUQ#qM;M9`2^uJKe%lg^_r#)jc`HlE;E#v4H8yIP6u=5n4% zc(g^KNIMNtdMbb|I3g*x9y4i92(V(qlURQFLxsdY&_sB`fqALwM*hkuRmNp)Am%ckor3c+Hu3rxNxuhVYcVQLB+G#(8+c|hm z#mp@@M=gtU>b*k(-!0LF0xvpK93m~BPtu{O?p4Uvw^=0~i~a1XkxAHatB`p&T_|35 zXsbRXnO9Zv>*2FI9N9#>!Lvp5YlX zP?6-8`@PCvQ}M}V1FvvHEvIc%$~V<=vRb~SmSfcNJ+*99%Ma9Yv|3hrp_~J?@4zlX zt%F*}@oI(IinR`F(Pm}w!IPz)F6?JT_ORb4*<(b?5d~-DC0cy9w-kJZF5T_u5?p2A zTGdFXLiS@;hAMKoH$$?yPM_ZEEk#$+je8w&BW-Yhnz)i?-S_D1ir;G3gFMKebiA;N zPVe#T0?7Dg*Xi5)VG$qQ%yZKe8oa}x6&e^jl;ejwrx z!i+uToJWwVb7fR$;k0V6y-qGQJ8`LUEq*!SytBamqRXCI`_EMS zcr}(-9%9c%mB%**FW2&4sJy4b=km(}vpA?K%6?QT#4{4l5zcFc+Ti5J7x)U5uZ^YJ z4t=lkwXs&qUsL&iV~czL5EocgQ5%G{6&|R3ZIIUTFTmFop31!be}qgcp6HxKm`Q@2 z5Z%-8A009Vl|$F!W$)FUL|#vI;v#Z*rW2RZpr<x~2w`7Rzh`X%M1FU15NiMT7Nr6v0lX;aaLgHMDUQCh<(ba8 z9d?E%LT|Gg0ktMw=pqIl!R0V6Q@EVN<$Nxeak-Yu{al{lvICVr*NH#y_gh@PVA5HG zv$+YD>1{6qZ)T?2STh>*LWi@6$zU$~(LB75FFnK(ZgG~&8(co*@-=z=)d@|``%5SK&>+Y_{vOHYa4r*>bk4wH zupanFC_M;Odyq}Pq1G~Pxq-_)Tpr=I&ZxC!^ipcoW{*lrf29*|a?5*MzTmPRiGS-v zM=o)P{9EVT0ha{_$w^>;-2d+rLIJSs#Vv<%%Vb!x9_l_+ENgq1Pb=VOxvD*>&fo~u z**flFFPA0s6h15X`;T1S8xQd$x41?Z-{_pJ%mQQkP7N!a+WRLYzSW5$ z1wb}olH%Vwi9x*Fo6DhGCUH5N%HMi87;Y%@qq-25aot)j_i=fQ%OAL`=JFAf&LYB! z^&;Z~#RFoUKUyk!r*rmz)&XO$T`8mh{&c3_-swpDkCQlzz2VN!Ulb`Q-j((_h|JIo!HGbxOLWB|$onoPb#vErhejnz3n_Fna zF}IPZTsGU>el%>$7^k^xv6;*G{@>5@{pPp7XD^@k^L%d4?elz|=X+Y!A*W3Tot6ek zDUJ5EX(GC83J`eN6hJXz2bTx$D9u0W(|qx%N9;zW8N1QQE3ssij!)n&N2$rFRvlk&SZ7u(V1u6}L}HVMK}LC^{& ztLE?~`mU=%`e`Hm(X~md)95ASsblItvK%5i>NgPtlPz)|n5NW^s?e{=dfKX)M(x6y z1&#yP>KX%A(N;}Qfa7#sxD}yQQhdb-)iZEEjHZTpcj?AF*o6peyX$*QSA z#j&g{6Gi%?9&)K<%YTf5V;g!0%Z*Nid0L)r;DTciz+E0Q$x-A#DH3<$l5{3XQY7Vy z_s&(Yn&D(O5x2jFH(CMsZizI+!!wYOeLAjw1bLM## ztPBwSeCF{-8%uJkM0&_3a(L)GR@6LL#d3IaDd7-b@ zLWB+>Zp1iCk^>BmAD%KDO+&`8{%}+i?GIg2))kh-@F~1C}i=+GJgKVJ@GGPa|;d2gAr46_fQR$Em-Vvz$Gq z)aU?A!>K}`^O5Zb+E??@o(CKiU<=2^Pk4myWReB4xvnEj3ttaIZkTMHf2>kAX*mHB0HwKH<`#rS^_}+ltcSPwmP5Zi-UX6^iIzDeYQJjbpMshkh&wa;a4_ z09a7f(`0Q|QFX<>F6K+oBV~nA7-Z`+#MG^~b52W}rYVh$Z7mw;J!5Iwz!n~1kT?qNuvN{TiIokaZ3BliFs#Qqote7`6AdQK`?2CI`=IwtqS%Sn z##M-uX-s?vF_MkvI z_-1+*upALTziCgUQNw!-4q}SoJ|0}ZUs$v)#W`mH92htw*m3+m??FVfq_ol~I6M(l zw(PJB0huA4ah9Y@(KbyH6hbax6|Y(7_u*6gQ`j=vBF9*eTaK|fjkTVRwc=PhCO?+t zIvOp_N$_gW5#koH1txUZnKmah3-}(4KK{SJ@>M=82gTwf8&?1QJlZ-WpjlKLI@)KU zTM2&Bfqari1WIf3sqKi)vE!kPGaGe`C0|EQ4eLPtyv9yZ`wV=e{eY%)(ZC}2jI_CFe?Rynm^}ohd%<$(=pd@pHry1 zFF%E2e!($|dtJo6TC3&k6u8ajZXYqXJLZsI;_w)6=C_*V-pJlCcD!=PazY{tz-U|V zu#j^hm!fU1e<>X`XHZZclr%CbIcj9osHoA^Gtf!dU}TQhv#B&OPC7Q58YV44#B54R zlPYFWz2s)nj#(6#9NTonEVwscVY^qb2peF+;v4SoL&rVoljLwwLuZpaOBeF!b#hR{ z?RikXcooV>3geN+=TO+l=Hhfp8ac|@4k64M(8-Z2#8LL)qvnXxvl(=Cbf1R%W?(we z0YQ$l7kHR#oFY zOtv(hk0FagtWO6b%=it35fq@QTt<#Xm>65PP#rokS$|HdzWkbvz_TA^j)`y%fTq>; zyId+B(^jgcF2$8mP?1GQ{C|!UEHQ) z*mYyA8VwbXZz4UNMrX(8wwN;wlgw%0$VC9-@i7%mxJw7vJbS=`9q2I={F_E7f))&{ zngDqpDeL|Ng!-;5YMhqtX+WyM z+^kSkVgTKBr)6oWQsq>7nik~#XzITto2OFy^iN#k!OMxnj1s6Ky?gx@tcji1?8>AD z6aA%+GO6Rlp#i~}f-vH~dq}DEqhw`Se8H*y_!SPD$@(H5J-Jfh#B6Ex6!OVv)~ik^ zj(x|oxpkkoC-l?acY5NUeDblo*7HVZL3rYxcy@w&$BQ!>gSuV>XNJoYcaMJB>ce;< z!`(A@i=bHZf1AVxYgf4v?urSl=j_OX0QD{7h~N|Ve90xDvlWFElPG+0 zXK^%TPVOeQpk0$Egs;oM*f)emP9x7Oqq_y| z|1IW38kg0&pC9K%h5`61Fyx%$SQ(qK=Nv8xeLaC0Me5LU{Bn{>G*1}InvjxIeIGXn z7{5%QD_OxF#o$LJR5!!B9D@kmJb^r?wbAA%+*=4Ra5bao{b`=wo#D>buX~PjxTYnl z=0;Xef1p*Pqx@-lzvr;Q>y!0ki!=ZnIwViW*Zg_qQtAn~B0W8xoTm?Bm&>+l^EmR!ZsuPH3Q2W{VY zD||^RyoFbo1KF|TJM37FuLqO0eKsWbHKy>(=K6{3-Wgfl3!jh)Nh8bHQVpOKbIZ^f zW0`fCIf&h+Ex`7LkrF3x=V${@A@Jo>7i`CE_T6Ol=}kw?9i;PP={K`?L@^vVKIR`( znyt*4ZH~dzZRX6J?tMb;gxrX+b^cX-Uwy_j_x_h%Q&Ws}H1AW7oUQ>q!HhcQ#EwUs zyKE^U`+$R=3?#-1$1>wuS)J2VIy;sQ<^+o=bT6lsWycu4g2e#k#pWo(C0oZQ4Yp!g zRQQkX^HUM~n9dwUb0L7g38QV}jkbg^2Qht3SLnBf{>>=&4ds2@58jC?D3_{(6w_YZ zG!Cikk~zRux1}s1l$yqe$X5C|*VVl##G|Sg{lNpz6-hTYSbH;to#XxrPxD<0IdbiI zSFf89+Ufpi47p%tmSBE&u&t+~lD$>&ac$Fl%>>v1Z?=EPfmhgtV)e0)raCh}6OpK9 zc9(t{MU^u<`J5VsHSsx$Lv6!5-~>w$CEbxrVr?x~j-tR1Dy45nl9<=W`IC`+eJnIE zFI4PLALg}32H&6ep6A}=+5mfVF&#^$hO+|1cc|+uU$Hk0Lwyj~=H>;FpP(t^=y4AQIXYj&u#w&BmoQx%UW6L*7Ls`qwVPet zaAP7~STpI%0vpB6D*FTggGt6G|HdT(!Cy3j>N*H%)V_g;5i-Z-X9?d@ge7E zqotW^;X!nPhX#blN03K;q$tq)`N?8ED$3u9#5>Fq%|3lBfsI`f*kYF(u$&wB!N?Z* zY&c!Dgi1Sylj~fav~)PNn%h=Pr9pGM1dJQb)&!fYK8G?e(@=LX|2GzYDw^9#dNhox z=CV$G=NZIYd(U~^qL@U9^E+bM7SC_fR2Yh0trccH4ja24e}1kUp7!^K(D(BT#0(l- z(6?!ec>M5UKyQvCdw6mJSCLRok2ia*=MW_v`gvm3vLa zA5@G$^s%yDZQoGwM-_io@fO*8Z8#`et}K=1t#t(9&PrJ>YAguLH_GyCw9A1@fq9!` z`8;qpunJfS{0BI5GtvgK#P>im&~1w>mjc@WZvqp6&w#~1FO47sZk6RYU>WXv4vYh?*)7W#fZqWB0BVZhsIDON1x5qM1IGbZ17`wd;K#uJ zU&!(SU>@)+umE@y_zL(8*dBY_z!~4?K!Ys(I|_5uySA&3?u@UsJ0F<^@?W%)30E)Iv2iy#~V1^|N(Vc-l8!#^1~(9d8eC<`Ks&DIr9j_P=nxnUJP$k% zY>Z!ua>{VG06zxK1ZI_EMS+KacYqIpmS?Ce#EYi0n;`4}4gvlQ%mO;$RrN7&Fy3|N zfj0t^BM;T6~&*dG`N{0x{5^gl1li+~G(g}{G+cYvkeVhgl_@b|Z} zMGiov$9Gs7;B4SH;IF_{z`oyO>45_-VDEqhNNJ5d&@r$bPzFW=f5ZpRTwoaPkYm8f zz$%~(C^W z!Y?9=fTw{6fX{*Ffi+dwLY$s;w-Lmif?&BrFbpH(JVh1T z{lv@k>-IqLS90CK#Nj*q+C0Zm$2Scx%&`~pgC56yg34pd(GI*x+i3odR+c3Yg{UH? zo(|D2@Nl+x;WGnoBY1g?^B$X-l*y*X^jAUl3bJ6Xt?-J#({IO1L*-%51eUg(!Nb1u z)ro_HFhQs*R6-zarw)Y?;YpBpQRQaH*~+!UHhutp8snRI-*GN(&V6uH1?D#v@>1Gd zs1sk&kwQPI?hd+M*j(yRNUsZ+{Gi#j@Hh{-6 z-Xj{byM=g;7VPed4LQF1U1`96dc3=n^yz+TRn$gWa)1UEb&{HXNehcwH5r98#$y-O z(fBtR%bxWmohs_9DTZh#P5Yt|8NO&Ic^;&JUtl5!Df5eAtydx2^@BPqY!g02Bz*%O zUp%z2u)-?v9@4`vx=ArdsLdW<>AfQqv&Y*v4eywikSmd&z{9sYn(eTnSx0F8o*t6r zD4p8V-1{z`T)9khvYR$r-Ht+NMSn%F_xO4)M@AjT#3*bKHzB%1A$uEn*FZ9Wv9W$q zKR0K#kIu-Mt&Y*Cy}r`2W0b$wSG-E=_jZ%C$LadsR$>u}#X9jD(ii)Qk14#^Ptul9 zVsR&_PYHce+(ybPp`&OGI6;q!y+hKFoTFF=-@9QQFJxRIyA|&%E+P|;4^x-MGy3bcCI7LtQMTqAqWPeksaTyKVAEEyUIXjfO zNp#Z=Ro%xTrEaCo`*q&mKzg4^rD8Yj0A=TAL%N}YF70nF9;3hZ_mg7IQ4hPXH0d0T zvio9QbL?%sU69G&Wrm~OwC};~Y*Z&>~W8A8cN!WBNk$HQ5Z}0Hs=gt)DzsY{#_%n@V9T}PGo3dDKZ+wgY`CIKm zwY^`(tSd(D<4d)DVZG8mqPEYf?c-|uu+p{&CsjtFs!*Y}i`91R$ZE4iZCiC9)H*Iz z^=s{F{ng@a)h`x9=-0bTwB~NEw5XCA-s>w}xJHThI^Y3my*E|-ke=W3>$I-Y z$PJLTc$tO@GhFo+pS{-@e|aUvI7Ugu*JziculJ_6v%-(m9(aMJ3c3)ejANP^5)+@6$N|9eT#_3 zz6Uz|b>`fI8KS`+_3(YhTK4D!<{tn14Ajs4-qFJT63$BPqJ4-Z76mV1uF9|7RvYK* z1@`C9f9rpy>i=bHzBU4@r{I4oM;-P z-tfXU^Q^jB>YfR$Xfvb(AZ50tZ`qEZi#0lNCY^k&6Z1)YtkW;yezd}(WlArIZ(deV z$YWjq^{Su0RX_Zd19_p^yW^^nYa=3fIih+?QN0DJ{8CzmzRsvtRkb^hCkZQ;`FO4~ z>T;XwG!)hypcju@h18%a;IHkq|8ECtvEqcgO%!y3aKXsiwZxm^pXl^@M7jZ?v`Gzt zT4@WK_e3Xl=Clu|iJVU6bULT`oG#{cBd7a0^`U8h>ckVgeu>jNjOzcwNE%|P|LJAq z-ONxsb0YCC9ew~{G>Fp(3PHU;uP1Xlg;NWodiH_QP;wXU6exaFH^P7DB&>FD&4Zkt z*0!sT0LN)rk!`HPF1L9rZD|McLQ_jEc`qs?(udXCkM$jOuOB^k6sdQbn_N zL)UPfU7Q}~^lMIUaQYjke=o zeG)oqnz=Emv1_xa!QtJ*?++7j1r_ z6YZ={hhKPMe5i@nIeo~f%xNPEd8re9IBmmeI4ygr)Az;4nij|U*jr;A#C1|Roye(~ zQwyVd_Q}^!auc-bF|9qsTe;2wPS4Q1e{}jvrimGTqedA{5HD418_d*Pvkn*Jwv z)FKzWy`sNz?I)bR=5z*+<_0S~L>+$WyCv&HL6&r%s*~%zyv7<}v(i|&anddF`kbpB!Gs93W5*B2*^tw zK6w5Rqj8hP3JdrMxRT%lB@fgzr2*85O-hStnMpG-ns%JnHnjc!bI&C=cP9VLetXXM zKhA&NXSd>nPvIG#nrWt<>mAdBWK*o!yFk7h1~pNIUPttAOjA=bHttH@CT&mMAw8F} zeFqk2IU;5d%#?OyZrG5X3Pp46e%sSC*KhV7o;%JArBO2U#F^^`&EEF7cm~Of%&>H^ z4MW<%yeJyK%`6v+q8?+rIlhW0dt(>11Y_&))!OGxyO=jF@z;#Gq4uRr*63wP%NdJ@ z70FR-*t;)T@tM>ksgfnWUo%M(lYArxgTeJXncKVU<#H1%gn?I_ld_m?~?=bL*f{!)u8(>zNY)?n6Bw0l=KYVS4lr)^TG~XaedRWp1L(}I% zZJNvqIF@m&;@H5^#jy=;Zw!VNnKBe^3})|f?jw$$!xYp|gzq?xa(oB^Hpy%v$Eh40 z9G~X6jN=-P=^V2;?%`O*v5pWNn}gZgyncb>RgQfehY6tvEllw3W*P2bX$qBCB*!Hj z*Kl0NaWlsfjl;am1zvJjj4Ydcpd(XZ3;4VY zX9lx1+~;MEnH-BbR&jK3Jjt<#<1LPV<@gQ9{}B55S|rJaJ9nbjzSZVCiSPgQ881ug zwr$*ywqr}`_U+Qn%=GMxRPR&SGyQNYr|gzZI~eTVy^WQ_o!v640KZ&??Ssf%C)*GC zST2WCxiUKdy}3#3AVlOT_Dbx}_y1F6GVWUvTENwikvG}y#vDji3eCe<-i4obXv_;_ zHPD%-uv!>Ftb?F@g#j!^tcUFUBzpYj0o9fFJk zCwm<_3lw%3Mi7rcP+<~0T4aU7!WecGx(kz-3qpz}vtgK1Gy|E`B30jCvOd(XKqulc7%5fY`(`VIm4&n8u((XE6_&+dt-H)=Z`MU!Ee;_X!X^kQcQOy8mQ$<- z#Cqs0SL`i1`)?*<1x2;@uW;f(uC7p6E0k6wu{Ic~$blz3R!G|y&Q3z*z8rQM{PySI zcFf-|gY|$F-1}o#2Mq03*ctFY;6z+~z{9*SdO%@kVdg=FRYT%InKeQ7!5miQy>qaD zVc?7^3g1`tDb8Y3wPN3kNocd>4&^yXG+U)`r&?xZ;8&A_UCBr6g!?rL9Ids2qc$AY zVsgo~F{}$*wba4BT2*JRo5p%zR-IybLfj5R&{2mcS6#UMg08K9Kc==t18@<#(c&OR z9Iji%Ez~ERUe>S>`(N3hux99PAnnZt5Bm`EU%QMg&pSjdmmW%Dm%Ss0@NVpd$iqoE z01bx~9DrWLci=wa6^J-Ov%4Cx14uLUF&~`S7%>VCEYb8Y?-uRs>mlg@wAp`rOpj5jW)=)ab;nCN@$pDiIr@yO9<}$T7ZZ5q}4#5I=_d z$L_M zrbilm1Dan%pNwXwy$V&@*!e!9+EE|gg1%3E zMjhL!TXyFl(IeZ-b=s;hte{YPI7=QGmraxBsaY1<5h&W_O)Hx=yuaXsNr|HI6X9DA zUXC8~f@!K^Oru58-Z+|v7Ae|bZ-*%@JW{|?gT?|YS^`7#StJ-NLZPT7Fp?}HM4o8| zizva<3L??6iGbTJfqvvU7Xn%XA*MCBfNBeceGisNH2YmTuXP|^<7w(BkoNXW&=i8#8b~(q zTB2z`!E0}LQqu@k0Bf58U$ zmN+$?eF}-E=owRa%EN9!UiZfE?_qCvXf-CFb!nb>3TcVqkDRGz<3c~vnIsxa5*QSpjbood z@7WyoIn3+CQy)4x&U}Z;O&mksr8^-X@lP=HE)7paR}LEjSC@ika3A7_Fxr)b<-~JT zt~}?YYwMg6TCZz-&O=y1p^2e9wqt(h_p?94sq>TZ_u5D2U&JRw#DyI87jRurSQYeL zkbiX8{!+ZvXwIr&^n#OB!s3ex-cZ?y_0WXa3O6rOvXR{iyA7$`&w{(v3|-x^c(eYi zo8A-ymlT!^?6Sgk!K}*)^j|VV+GSh8MRD*x(5*vCGYmf@HnDL?O-0QekQhm0lZ87W?;&^sjPcye%)IZBp}r{dql+K(?d;#wsIrInz8!Z$HNHpHSYu(E-@Rzi1|A>bz?~TW?PkB#f z{ZNZ|kI-v=-{w=GMRJJDw2YD>)C}Vdyw*aNfe#h-H3mM20-|U`OI12CH>nHd8L7qK zaLG*OKa8#Butjwk8$ylWCirVm)GHSZ>!MLJJB9X31HVh~_YC}Q!9OtYd4iYdAVbkw z-y?Xl%D*tCC=?2t!J%02!3KV>;KK}jnc!<+>lJ*+>9nMHj~rk<0qZg9ROd7-NFK*InBtq)MtD7N9L zqNrR2KCTZG1rfmqdf|%rLh)76=me{XV?(M=Y|;mc6P-F4o%X+b_Jr%{&hXpa@B8nb z-E(*MEV&K63J&%vinL8`s~;Am+FJU0C#a9Zy`Iq@+0;47a~G!0|HHgbopTp2`gG~y zRAqRK5*6c}IJU2!H)&E5!@Xa|d2{1ygQ*>c&Hjz;x#C?ldkSOWxZzyPioFw(K42^k z#mS>slJ`oo)+;1VF;cqBx7ZYgDZLbrf&nQjSh#n6$~qfU(0`sD(k)~BWd5ICMr@0M zrSsm;iI#Gp%=`B?Y*|%I|1F{WD{cOUGe8Cmk$S7t&BsJb{kTORBlTKCAETHJCP~9% zX^zYuJJ$`%W*5X=_L7jy}h3H}|$ z=_=bV%JrORSrE)V7xmkM-w1Z0ctNlz^+w)8l?@OK7aT75o}ex`Q!qtvk>Co!Rf3zb zBvoSvMY&0^S+Gs;0a%*G7)B5W6IC`+P#642aE9PA!8}2i;4VS0;90>o!3Tnm1YZa; z++U=!zJjj{1_=(~MBL(Fri*$qmMqrTN>O$RZWF8)Y!GY_ye#+^!EXeg3NrDA?VOHK zS_}h}zUI%Q9F)ay5i?Y91fHa87`-HzO%rve;8MYCL6_i8L62ao;7!4=1pg)Yl+#bo zxzs!_f^CC4&&jsqS)R_y5WC9BcA$J!C`-bLRl`YnNXmA^uXZAH4Gn$uIJ`yq^VJdL zg{|RU)*2_S<=gS?npCPK=8IZD!|OC&N_XW2sIve_5L0I76N} zoX6ok@tfdsYwRqV-Kt}gPt2G>Juxlla`XB2*^+_NZaWIL#L<4ZvSkuYIAE*B_9AvG z_Y=3)u=9Ai^(;NPc^iLnpY2Z8>`mEDAFK;#EOXL~gLY^%<9OmxEGJ$>HL)1Sgl zlmDnO#G^>rsX3Z_hBR?#&yWgHx0AX?KzRnM_2!q4WweUV?c%GrYnPKF+K)26@51ql`19yj z+OLX*6TLr@y@4fEi`(xvA)Gv(82#~muJY|c$-H8idWh8HgxeDz4t7Az87AGSJ}y5> zJ+eOCN9Rw8lJQACI{)3xi_AP9oyU)m@##J~kCzvm0br-0j( z%!v17mqmswbRIA7K*~1MA9y#1E9T{=#S&@u+-lLyTUVP!H!n+fEV|kMJ&R5w`I(Tu z{eMF!-99>hOHQ0PG@N~bhlh0j4Xo2x8)nt62`&lcnJ5oFQp0ZH`jJpuw}O8j8OGWXZggk!pKV+jA~NDGCbBySYYMg9Q81>7SF)NiP*u)iYllt#xxKJh#nPdNjw_`IqP+{k{H^!U>{9XYPk{M9s{4z+zp130}Q z>`R}}9Y3N9rJge+uXzSLgwEy+)``S3+AF8Q5P6T{yR#7GXH-^*#xpwGh?i$H_7$Se z@<+`g*3kWe54?-Ye?wTyujxB9zeQ)!sBh^&;VnNDor`3_IB`xR=O5>^LD6Cyiqg$j zJ0+g+_5QW|1_q-41(n)!PQ?UbIwzi=51j9mF&?==%(kZ9X3SmM+|t7B^11MZ)#?xO`}T4CAArGX|CP z+-{3|#vCoqUF2_ub1I$?(*=uAd{Ld~;Xf87b1u%oM!n6Vo4s{g^tT6lLoU793q`Gd zKioNaUwrpYknb-N^{r}-IaAY(m##TSQ~#CJC(F5;BOBpoj4a7V=TAwH@$)SD2U1Tr z^c*oo-rz%Nth6-vSn9bJJyGff7X1^c7g_Y*N`2ca`dCGoA&rVx3`LnG^+0}Epk&Ut z%&5}cfn8M{(H8e$q+yT72y!P|+!H~Dn}p=6YEFU0?JL_BS@fIoE>vOBW8{wTSoAWv zT8>-vIs83Sx@YLaewfnzpBRQ8KT#-|Q+@Q7Q4jPE`h1kXE&NaT-L3c83p}|w5JzuC z^z+mh{&X82+!|@i9gUFo@&37^4Rr~U+eg`+j6qrZc$?n=+$FDKqTvn2pxdMRr8gV3 zsr@kL_DEZ60?KZWx7|y?UCO>rKuE`U+rTNv8}%mAJ0fktQ&2|A0JH!2hml%!>m3Kz@7kpvVP9nMEo&N#WbI!y7 From 8bf767ee1eb0e571458adcda563991aeca806a89 Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Tue, 8 Nov 2022 17:07:46 +0100 Subject: [PATCH 7/9] printscreen added --- config.def.h | 1 + config.h | 1 + dwm | Bin 72672 -> 72752 bytes dwm.o | Bin 55552 -> 55904 bytes 4 files changed, 2 insertions(+) diff --git a/config.def.h b/config.def.h index 7b02426..05c7b48 100644 --- a/config.def.h +++ b/config.def.h @@ -111,6 +111,7 @@ static const Key keys[] = { TAGKEYS( 17, 7) // 8 TAGKEYS( 18, 8) // 9 { MODKEY|ShiftMask, 24, quit, {0} }, // q + { 0, 107, spawn, SHCMD("shotgun $(slop -f '-i %i -g %g') - | tee /home/$USER/Pictures/Screenshots/$(date +'%F_%T').png | xclip -t 'image/png' -selection c") }, }; /* button definitions */ diff --git a/config.h b/config.h index 7b02426..05c7b48 100644 --- a/config.h +++ b/config.h @@ -111,6 +111,7 @@ static const Key keys[] = { TAGKEYS( 17, 7) // 8 TAGKEYS( 18, 8) // 9 { MODKEY|ShiftMask, 24, quit, {0} }, // q + { 0, 107, spawn, SHCMD("shotgun $(slop -f '-i %i -g %g') - | tee /home/$USER/Pictures/Screenshots/$(date +'%F_%T').png | xclip -t 'image/png' -selection c") }, }; /* button definitions */ diff --git a/dwm b/dwm index f31c58acf5e8cd23c50f28b7364837f242761a55..5e37591afc36ca1a26446752cd1749f27f59803b 100755 GIT binary patch delta 10260 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 WW=wGBRu}uQ?s9C4)dzi8(Ek7=AH#0| delta 10112 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 Date: Wed, 9 Nov 2022 16:22:11 +0100 Subject: [PATCH 8/9] latest --- config.def.h.bak1 | 117 ------------------------- config.def.h.bak2 | 117 ------------------------- dwm-keycodes-20170511-ceac8c9.diff | 134 ----------------------------- dwm-keycodes-6.1.diff | 133 ---------------------------- 4 files changed, 501 deletions(-) delete mode 100644 config.def.h.bak1 delete mode 100644 config.def.h.bak2 delete mode 100644 dwm-keycodes-20170511-ceac8c9.diff delete mode 100644 dwm-keycodes-6.1.diff diff --git a/config.def.h.bak1 b/config.def.h.bak1 deleted file mode 100644 index 06ae186..0000000 --- a/config.def.h.bak1 +++ /dev/null @@ -1,117 +0,0 @@ -/* See LICENSE file for copyright and license details. */ - -/* appearance */ -static const unsigned int borderpx = 1; /* border pixel of windows */ -static const unsigned int snap = 32; /* snap pixel */ -static const int showbar = 1; /* 0 means no bar */ -static const int topbar = 1; /* 0 means bottom bar */ -static const char *fonts[] = { "monospace:size=10" }; -static const char dmenufont[] = "monospace:size=10"; -static const char col_gray1[] = "#222222"; -static const char col_gray2[] = "#444444"; -static const char col_gray3[] = "#bbbbbb"; -static const char col_gray4[] = "#eeeeee"; -static const char col_cyan[] = "#005577"; -static const char *colors[][3] = { - /* fg bg border */ - [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, - [SchemeSel] = { col_gray4, col_cyan, col_cyan }, -}; - -/* tagging */ -static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; - -static const Rule rules[] = { - /* xprop(1): - * WM_CLASS(STRING) = instance, class - * WM_NAME(STRING) = title - */ - /* class instance title tags mask isfloating monitor */ - { "Gimp", NULL, NULL, 0, 1, -1 }, -}; - -/* layout(s) */ -static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ -static const int nmaster = 1; /* number of clients in master area */ -static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ -static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ - -static const Layout layouts[] = { - /* symbol arrange function */ - { "[]=", tile }, /* first entry is default */ - { "><>", NULL }, /* no layout function means floating behavior */ - { "[M]", monocle }, -}; - -/* key definitions */ -#define MODKEY Mod1Mask -#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} }, - -/* helper for spawning shell commands in the pre dwm-5.0 fashion */ -#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", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; -static const char *termcmd[] = { "st", NULL }; -static const char *slockcmd[] = { "slock", NULL }; - -static const Key keys[] = { - /* modifier key function argument */ - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, - { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_j, focusstack, {.i = +1 } }, - { MODKEY, XK_k, focusstack, {.i = -1 } }, - { MODKEY, XK_i, incnmaster, {.i = +1 } }, - { MODKEY, XK_d, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, setmfact, {.f = -0.05} }, - { MODKEY, XK_l, setmfact, {.f = +0.05} }, - { MODKEY, XK_Return, zoom, {0} }, - { MODKEY, XK_Tab, view, {0} }, - { MODKEY|ShiftMask, XK_c, killclient, {0} }, - { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, - { MODKEY, XK_space, setlayout, {0} }, - { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, - { MODKEY, XK_0, view, {.ui = ~0 } }, - { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, - { MODKEY, XK_comma, focusmon, {.i = -1 } }, - { MODKEY, XK_period, focusmon, {.i = +1 } }, - { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, - { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, - TAGKEYS( XK_1, 0) - TAGKEYS( XK_2, 1) - TAGKEYS( XK_3, 2) - TAGKEYS( XK_4, 3) - TAGKEYS( XK_5, 4) - TAGKEYS( XK_6, 5) - TAGKEYS( XK_7, 6) - TAGKEYS( XK_8, 7) - TAGKEYS( XK_9, 8) - { MODKEY|ShiftMask, XK_q, quit, {0} }, -}; - -/* button definitions */ -/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ -static const Button buttons[] = { - /* click event mask button function argument */ - { ClkLtSymbol, 0, Button1, setlayout, {0} }, - { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, - { ClkWinTitle, 0, Button2, zoom, {0} }, - { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, - { ClkClientWin, MODKEY, Button1, movemouse, {0} }, - { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, - { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, - { ClkTagBar, 0, Button1, view, {0} }, - { ClkTagBar, 0, Button3, toggleview, {0} }, - { ClkTagBar, MODKEY, Button1, tag, {0} }, - { ClkTagBar, MODKEY, Button3, toggletag, {0} }, -}; - diff --git a/config.def.h.bak2 b/config.def.h.bak2 deleted file mode 100644 index d5b4e3d..0000000 --- a/config.def.h.bak2 +++ /dev/null @@ -1,117 +0,0 @@ -/* See LICENSE file for copyright and license details. */ - -/* appearance */ -static const unsigned int borderpx = 1; /* border pixel of windows */ -static const unsigned int snap = 32; /* snap pixel */ -static const int showbar = 1; /* 0 means no bar */ -static const int topbar = 1; /* 0 means bottom bar */ -static const char *fonts[] = { "monospace:size=10" }; -static const char dmenufont[] = "monospace:size=10"; -static const char col_gray1[] = "#222222"; -static const char col_gray2[] = "#444444"; -static const char col_gray3[] = "#bbbbbb"; -static const char col_gray4[] = "#eeeeee"; -static const char col_cyan[] = "#005577"; -static const char *colors[][3] = { - /* fg bg border */ - [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, - [SchemeSel] = { col_gray4, col_cyan, col_cyan }, -}; - -/* tagging */ -static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; - -static const Rule rules[] = { - /* xprop(1): - * WM_CLASS(STRING) = instance, class - * WM_NAME(STRING) = title - */ - /* class instance title tags mask isfloating monitor */ - { "Gimp", NULL, NULL, 0, 1, -1 }, -}; - -/* layout(s) */ -static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ -static const int nmaster = 1; /* number of clients in master area */ -static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ -static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ - -static const Layout layouts[] = { - /* symbol arrange function */ - { "[]=", tile }, /* first entry is default */ - { "><>", NULL }, /* no layout function means floating behavior */ - { "[M]", monocle }, -}; - -/* key definitions */ -#define MODKEY Mod1Mask -#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} }, - -/* helper for spawning shell commands in the pre dwm-5.0 fashion */ -#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", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; -static const char *termcmd[] = { "kitty", NULL }; -static const char *slockcmd[] = { "slock", NULL }; - -static const Key keys[] = { - /* modifier key function argument */ - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, - { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_j, focusstack, {.i = +1 } }, - { MODKEY, XK_k, focusstack, {.i = -1 } }, - { MODKEY, XK_i, incnmaster, {.i = +1 } }, - { MODKEY, XK_d, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, setmfact, {.f = -0.05} }, - { MODKEY, XK_l, setmfact, {.f = +0.05} }, - { MODKEY, XK_Return, zoom, {0} }, - { MODKEY, XK_Tab, view, {0} }, - { MODKEY|ShiftMask, XK_c, killclient, {0} }, - { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, - { MODKEY, XK_space, setlayout, {0} }, - { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, - { MODKEY, XK_0, view, {.ui = ~0 } }, - { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, - { MODKEY, XK_comma, focusmon, {.i = -1 } }, - { MODKEY, XK_period, focusmon, {.i = +1 } }, - { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, - { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, - TAGKEYS( XK_1, 0) - TAGKEYS( XK_2, 1) - TAGKEYS( XK_3, 2) - TAGKEYS( XK_4, 3) - TAGKEYS( XK_5, 4) - TAGKEYS( XK_6, 5) - TAGKEYS( XK_7, 6) - TAGKEYS( XK_8, 7) - TAGKEYS( XK_9, 8) - { MODKEY|ShiftMask, XK_q, quit, {0} }, -}; - -/* button definitions */ -/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ -static const Button buttons[] = { - /* click event mask button function argument */ - { ClkLtSymbol, 0, Button1, setlayout, {0} }, - { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, - { ClkWinTitle, 0, Button2, zoom, {0} }, - { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, - { ClkClientWin, MODKEY, Button1, movemouse, {0} }, - { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, - { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, - { ClkTagBar, 0, Button1, view, {0} }, - { ClkTagBar, 0, Button3, toggleview, {0} }, - { ClkTagBar, MODKEY, Button1, tag, {0} }, - { ClkTagBar, MODKEY, Button3, toggletag, {0} }, -}; - diff --git a/dwm-keycodes-20170511-ceac8c9.diff b/dwm-keycodes-20170511-ceac8c9.diff deleted file mode 100644 index 3a046eb..0000000 --- a/dwm-keycodes-20170511-ceac8c9.diff +++ /dev/null @@ -1,134 +0,0 @@ -diff --git a/config.def.h b/config.def.h -index a9ac303..0568db2 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -60,40 +60,40 @@ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, - static const char *termcmd[] = { "st", NULL }; - - static Key keys[] = { -- /* modifier key function argument */ -- { MODKEY, XK_p, spawn, {.v = dmenucmd } }, -- { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, -- { MODKEY, XK_b, togglebar, {0} }, -- { MODKEY, XK_j, focusstack, {.i = +1 } }, -- { MODKEY, XK_k, focusstack, {.i = -1 } }, -- { MODKEY, XK_i, incnmaster, {.i = +1 } }, -- { MODKEY, XK_d, incnmaster, {.i = -1 } }, -- { MODKEY, XK_h, setmfact, {.f = -0.05} }, -- { MODKEY, XK_l, setmfact, {.f = +0.05} }, -- { MODKEY, XK_Return, zoom, {0} }, -- { MODKEY, XK_Tab, view, {0} }, -- { MODKEY|ShiftMask, XK_c, killclient, {0} }, -- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, -- { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, -- { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, -- { MODKEY, XK_space, setlayout, {0} }, -- { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, -- { MODKEY, XK_0, view, {.ui = ~0 } }, -- { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, -- { MODKEY, XK_comma, focusmon, {.i = -1 } }, -- { MODKEY, XK_period, focusmon, {.i = +1 } }, -- { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, -- { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, -- TAGKEYS( XK_1, 0) -- TAGKEYS( XK_2, 1) -- TAGKEYS( XK_3, 2) -- TAGKEYS( XK_4, 3) -- TAGKEYS( XK_5, 4) -- TAGKEYS( XK_6, 5) -- TAGKEYS( XK_7, 6) -- TAGKEYS( XK_8, 7) -- TAGKEYS( XK_9, 8) -- { MODKEY|ShiftMask, XK_q, quit, {0} }, -+ /* modifier key function argument */ -+ { MODKEY, 33, spawn, {.v = dmenucmd } }, // p -+ { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return -+ { MODKEY, 56, togglebar, {0} }, // b -+ { MODKEY, 44, focusstack, {.i = +1 } }, // j -+ { MODKEY, 45, focusstack, {.i = -1 } }, // k -+ { MODKEY, 31, incnmaster, {.i = +1 } }, // i -+ { MODKEY, 40, incnmaster, {.i = -1 } }, // d -+ { MODKEY, 43, setmfact, {.f = -0.05} }, // h -+ { MODKEY, 46, setmfact, {.f = +0.05} }, // l -+ { MODKEY, 36, zoom, {0} }, // Return -+ { MODKEY, 23, view, {0} }, // Tab -+ { MODKEY|ShiftMask, 54, killclient, {0} }, // c -+ { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t -+ { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f -+ { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m -+ { MODKEY, 65, setlayout, {0} }, // space -+ { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space -+ { MODKEY, 19, view, {.ui = ~0 } }, // 0 -+ { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 -+ { MODKEY, 59, focusmon, {.i = -1 } }, // comma -+ { MODKEY, 60, focusmon, {.i = +1 } }, // period -+ { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma -+ { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period -+ TAGKEYS( 10, 0) // 1 -+ TAGKEYS( 11, 1) // 2 -+ TAGKEYS( 12, 2) // 3 -+ TAGKEYS( 13, 3) // 4 -+ TAGKEYS( 14, 4) // 5 -+ TAGKEYS( 15, 5) // 6 -+ TAGKEYS( 16, 6) // 7 -+ TAGKEYS( 17, 7) // 8 -+ TAGKEYS( 18, 8) // 9 -+ { MODKEY|ShiftMask, 24, quit, {0} }, // q - }; - - /* button definitions */ -diff --git a/dwm.c b/dwm.c -index a5ce993..e0f043e 100644 ---- a/dwm.c -+++ b/dwm.c -@@ -31,7 +31,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -102,7 +101,7 @@ struct Client { - - typedef struct { - unsigned int mod; -- KeySym keysym; -+ KeyCode keycode; - void (*func)(const Arg *); - const Arg arg; - } Key; -@@ -954,14 +953,13 @@ grabkeys(void) - { - unsigned int i, j; - unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; -- KeyCode code; - - XUngrabKey(dpy, AnyKey, AnyModifier, root); - for (i = 0; i < LENGTH(keys); i++) -- if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) -- for (j = 0; j < LENGTH(modifiers); j++) -- XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, -- True, GrabModeAsync, GrabModeAsync); -+ for (j = 0; j < LENGTH(modifiers); ++j) -+ XGrabKey(dpy, keys[i].keycode, -+ keys[i].mod | modifiers[j], root, True, -+ GrabModeAsync, GrabModeAsync); - } - } - -@@ -988,13 +986,11 @@ void - keypress(XEvent *e) - { - unsigned int i; -- KeySym keysym; - XKeyEvent *ev; - - ev = &e->xkey; -- keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); - for (i = 0; i < LENGTH(keys); i++) -- if (keysym == keys[i].keysym -+ if (ev->keycode == keys[i].keycode - && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) - && keys[i].func) - keys[i].func(&(keys[i].arg)); diff --git a/dwm-keycodes-6.1.diff b/dwm-keycodes-6.1.diff deleted file mode 100644 index 952a539..0000000 --- a/dwm-keycodes-6.1.diff +++ /dev/null @@ -1,133 +0,0 @@ -diff --git a/config.def.h b/config.def.h -index 7054c06..f59d1eb 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -58,40 +58,40 @@ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, - static const char *termcmd[] = { "st", NULL }; - - static Key keys[] = { -- /* modifier key function argument */ -- { MODKEY, XK_p, spawn, {.v = dmenucmd } }, -- { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, -- { MODKEY, XK_b, togglebar, {0} }, -- { MODKEY, XK_j, focusstack, {.i = +1 } }, -- { MODKEY, XK_k, focusstack, {.i = -1 } }, -- { MODKEY, XK_i, incnmaster, {.i = +1 } }, -- { MODKEY, XK_d, incnmaster, {.i = -1 } }, -- { MODKEY, XK_h, setmfact, {.f = -0.05} }, -- { MODKEY, XK_l, setmfact, {.f = +0.05} }, -- { MODKEY, XK_Return, zoom, {0} }, -- { MODKEY, XK_Tab, view, {0} }, -- { MODKEY|ShiftMask, XK_c, killclient, {0} }, -- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, -- { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, -- { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, -- { MODKEY, XK_space, setlayout, {0} }, -- { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, -- { MODKEY, XK_0, view, {.ui = ~0 } }, -- { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, -- { MODKEY, XK_comma, focusmon, {.i = -1 } }, -- { MODKEY, XK_period, focusmon, {.i = +1 } }, -- { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, -- { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, -- TAGKEYS( XK_1, 0) -- TAGKEYS( XK_2, 1) -- TAGKEYS( XK_3, 2) -- TAGKEYS( XK_4, 3) -- TAGKEYS( XK_5, 4) -- TAGKEYS( XK_6, 5) -- TAGKEYS( XK_7, 6) -- TAGKEYS( XK_8, 7) -- TAGKEYS( XK_9, 8) -- { MODKEY|ShiftMask, XK_q, quit, {0} }, -+ /* modifier key function argument */ -+ { MODKEY, 33, spawn, {.v = dmenucmd } }, // p -+ { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return -+ { MODKEY, 56, togglebar, {0} }, // b -+ { MODKEY, 44, focusstack, {.i = +1 } }, // j -+ { MODKEY, 45, focusstack, {.i = -1 } }, // k -+ { MODKEY, 31, incnmaster, {.i = +1 } }, // i -+ { MODKEY, 40, incnmaster, {.i = -1 } }, // d -+ { MODKEY, 43, setmfact, {.f = -0.05} }, // h -+ { MODKEY, 46, setmfact, {.f = +0.05} }, // l -+ { MODKEY, 36, zoom, {0} }, // Return -+ { MODKEY, 23, view, {0} }, // Tab -+ { MODKEY|ShiftMask, 54, killclient, {0} }, // c -+ { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t -+ { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f -+ { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m -+ { MODKEY, 65, setlayout, {0} }, // space -+ { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space -+ { MODKEY, 19, view, {.ui = ~0 } }, // 0 -+ { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 -+ { MODKEY, 59, focusmon, {.i = -1 } }, // comma -+ { MODKEY, 60, focusmon, {.i = +1 } }, // period -+ { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma -+ { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period -+ TAGKEYS( 10, 0) // 1 -+ TAGKEYS( 11, 1) // 2 -+ TAGKEYS( 12, 2) // 3 -+ TAGKEYS( 13, 3) // 4 -+ TAGKEYS( 14, 4) // 5 -+ TAGKEYS( 15, 5) // 6 -+ TAGKEYS( 16, 6) // 7 -+ TAGKEYS( 17, 7) // 8 -+ TAGKEYS( 18, 8) // 9 -+ { MODKEY|ShiftMask, 24, quit, {0} }, // q - }; - - /* button definitions */ -diff --git a/dwm.c b/dwm.c -index 0362114..60dd817 100644 ---- a/dwm.c -+++ b/dwm.c -@@ -31,7 +31,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -101,7 +100,7 @@ struct Client { - - typedef struct { - unsigned int mod; -- KeySym keysym; -+ KeyCode keycode; - void (*func)(const Arg *); - const Arg arg; - } Key; -@@ -967,14 +966,12 @@ grabkeys(void) - { - unsigned int i, j; - unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; -- KeyCode code; - - XUngrabKey(dpy, AnyKey, AnyModifier, root); - for (i = 0; i < LENGTH(keys); i++) -- if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) -- for (j = 0; j < LENGTH(modifiers); j++) -- XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, -- True, GrabModeAsync, GrabModeAsync); -+ for (j = 0; j < LENGTH(modifiers); j++) -+ XGrabKey(dpy, keys[i].keycode, keys[i].mod | modifiers[j], root, -+ True, GrabModeAsync, GrabModeAsync); - } - } - -@@ -1001,13 +998,11 @@ void - keypress(XEvent *e) - { - unsigned int i; -- KeySym keysym; - XKeyEvent *ev; - - ev = &e->xkey; -- keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); - for (i = 0; i < LENGTH(keys); i++) -- if (keysym == keys[i].keysym -+ if (ev->keycode == keys[i].keycode - && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) - && keys[i].func) - keys[i].func(&(keys[i].arg)); From 466fc1ca8e328e66b7d6ea93183a5e8a79c1fe9f Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Wed, 9 Nov 2022 16:22:24 +0100 Subject: [PATCH 9/9] latest --- patches/dwm-keycodes-20170511-ceac8c9.diff | 134 +++++++++++++++++++++ patches/dwm-keycodes-6.1.diff | 133 ++++++++++++++++++++ 2 files changed, 267 insertions(+) create mode 100644 patches/dwm-keycodes-20170511-ceac8c9.diff create mode 100644 patches/dwm-keycodes-6.1.diff diff --git a/patches/dwm-keycodes-20170511-ceac8c9.diff b/patches/dwm-keycodes-20170511-ceac8c9.diff new file mode 100644 index 0000000..3a046eb --- /dev/null +++ b/patches/dwm-keycodes-20170511-ceac8c9.diff @@ -0,0 +1,134 @@ +diff --git a/config.def.h b/config.def.h +index a9ac303..0568db2 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -60,40 +60,40 @@ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, + static const char *termcmd[] = { "st", NULL }; + + static Key keys[] = { +- /* modifier key function argument */ +- { MODKEY, XK_p, spawn, {.v = dmenucmd } }, +- { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, +- { MODKEY, XK_b, togglebar, {0} }, +- { MODKEY, XK_j, focusstack, {.i = +1 } }, +- { MODKEY, XK_k, focusstack, {.i = -1 } }, +- { MODKEY, XK_i, incnmaster, {.i = +1 } }, +- { MODKEY, XK_d, incnmaster, {.i = -1 } }, +- { MODKEY, XK_h, setmfact, {.f = -0.05} }, +- { MODKEY, XK_l, setmfact, {.f = +0.05} }, +- { MODKEY, XK_Return, zoom, {0} }, +- { MODKEY, XK_Tab, view, {0} }, +- { MODKEY|ShiftMask, XK_c, killclient, {0} }, +- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, +- { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, +- { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, +- { MODKEY, XK_space, setlayout, {0} }, +- { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, +- { MODKEY, XK_0, view, {.ui = ~0 } }, +- { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, +- { MODKEY, XK_comma, focusmon, {.i = -1 } }, +- { MODKEY, XK_period, focusmon, {.i = +1 } }, +- { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, +- { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, +- TAGKEYS( XK_1, 0) +- TAGKEYS( XK_2, 1) +- TAGKEYS( XK_3, 2) +- TAGKEYS( XK_4, 3) +- TAGKEYS( XK_5, 4) +- TAGKEYS( XK_6, 5) +- TAGKEYS( XK_7, 6) +- TAGKEYS( XK_8, 7) +- TAGKEYS( XK_9, 8) +- { MODKEY|ShiftMask, XK_q, quit, {0} }, ++ /* modifier key function argument */ ++ { MODKEY, 33, spawn, {.v = dmenucmd } }, // p ++ { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return ++ { MODKEY, 56, togglebar, {0} }, // b ++ { MODKEY, 44, focusstack, {.i = +1 } }, // j ++ { MODKEY, 45, focusstack, {.i = -1 } }, // k ++ { MODKEY, 31, incnmaster, {.i = +1 } }, // i ++ { MODKEY, 40, incnmaster, {.i = -1 } }, // d ++ { MODKEY, 43, setmfact, {.f = -0.05} }, // h ++ { MODKEY, 46, setmfact, {.f = +0.05} }, // l ++ { MODKEY, 36, zoom, {0} }, // Return ++ { MODKEY, 23, view, {0} }, // Tab ++ { MODKEY|ShiftMask, 54, killclient, {0} }, // c ++ { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t ++ { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f ++ { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m ++ { MODKEY, 65, setlayout, {0} }, // space ++ { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space ++ { MODKEY, 19, view, {.ui = ~0 } }, // 0 ++ { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 ++ { MODKEY, 59, focusmon, {.i = -1 } }, // comma ++ { MODKEY, 60, focusmon, {.i = +1 } }, // period ++ { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma ++ { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period ++ TAGKEYS( 10, 0) // 1 ++ TAGKEYS( 11, 1) // 2 ++ TAGKEYS( 12, 2) // 3 ++ TAGKEYS( 13, 3) // 4 ++ TAGKEYS( 14, 4) // 5 ++ TAGKEYS( 15, 5) // 6 ++ TAGKEYS( 16, 6) // 7 ++ TAGKEYS( 17, 7) // 8 ++ TAGKEYS( 18, 8) // 9 ++ { MODKEY|ShiftMask, 24, quit, {0} }, // q + }; + + /* button definitions */ +diff --git a/dwm.c b/dwm.c +index a5ce993..e0f043e 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -31,7 +31,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -102,7 +101,7 @@ struct Client { + + typedef struct { + unsigned int mod; +- KeySym keysym; ++ KeyCode keycode; + void (*func)(const Arg *); + const Arg arg; + } Key; +@@ -954,14 +953,13 @@ grabkeys(void) + { + unsigned int i, j; + unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; +- KeyCode code; + + XUngrabKey(dpy, AnyKey, AnyModifier, root); + for (i = 0; i < LENGTH(keys); i++) +- if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) +- for (j = 0; j < LENGTH(modifiers); j++) +- XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, +- True, GrabModeAsync, GrabModeAsync); ++ for (j = 0; j < LENGTH(modifiers); ++j) ++ XGrabKey(dpy, keys[i].keycode, ++ keys[i].mod | modifiers[j], root, True, ++ GrabModeAsync, GrabModeAsync); + } + } + +@@ -988,13 +986,11 @@ void + keypress(XEvent *e) + { + unsigned int i; +- KeySym keysym; + XKeyEvent *ev; + + ev = &e->xkey; +- keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); + for (i = 0; i < LENGTH(keys); i++) +- if (keysym == keys[i].keysym ++ if (ev->keycode == keys[i].keycode + && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) + && keys[i].func) + keys[i].func(&(keys[i].arg)); diff --git a/patches/dwm-keycodes-6.1.diff b/patches/dwm-keycodes-6.1.diff new file mode 100644 index 0000000..952a539 --- /dev/null +++ b/patches/dwm-keycodes-6.1.diff @@ -0,0 +1,133 @@ +diff --git a/config.def.h b/config.def.h +index 7054c06..f59d1eb 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -58,40 +58,40 @@ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, + static const char *termcmd[] = { "st", NULL }; + + static Key keys[] = { +- /* modifier key function argument */ +- { MODKEY, XK_p, spawn, {.v = dmenucmd } }, +- { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, +- { MODKEY, XK_b, togglebar, {0} }, +- { MODKEY, XK_j, focusstack, {.i = +1 } }, +- { MODKEY, XK_k, focusstack, {.i = -1 } }, +- { MODKEY, XK_i, incnmaster, {.i = +1 } }, +- { MODKEY, XK_d, incnmaster, {.i = -1 } }, +- { MODKEY, XK_h, setmfact, {.f = -0.05} }, +- { MODKEY, XK_l, setmfact, {.f = +0.05} }, +- { MODKEY, XK_Return, zoom, {0} }, +- { MODKEY, XK_Tab, view, {0} }, +- { MODKEY|ShiftMask, XK_c, killclient, {0} }, +- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, +- { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, +- { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, +- { MODKEY, XK_space, setlayout, {0} }, +- { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, +- { MODKEY, XK_0, view, {.ui = ~0 } }, +- { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, +- { MODKEY, XK_comma, focusmon, {.i = -1 } }, +- { MODKEY, XK_period, focusmon, {.i = +1 } }, +- { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, +- { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, +- TAGKEYS( XK_1, 0) +- TAGKEYS( XK_2, 1) +- TAGKEYS( XK_3, 2) +- TAGKEYS( XK_4, 3) +- TAGKEYS( XK_5, 4) +- TAGKEYS( XK_6, 5) +- TAGKEYS( XK_7, 6) +- TAGKEYS( XK_8, 7) +- TAGKEYS( XK_9, 8) +- { MODKEY|ShiftMask, XK_q, quit, {0} }, ++ /* modifier key function argument */ ++ { MODKEY, 33, spawn, {.v = dmenucmd } }, // p ++ { MODKEY|ShiftMask, 36, spawn, {.v = termcmd } }, // Return ++ { MODKEY, 56, togglebar, {0} }, // b ++ { MODKEY, 44, focusstack, {.i = +1 } }, // j ++ { MODKEY, 45, focusstack, {.i = -1 } }, // k ++ { MODKEY, 31, incnmaster, {.i = +1 } }, // i ++ { MODKEY, 40, incnmaster, {.i = -1 } }, // d ++ { MODKEY, 43, setmfact, {.f = -0.05} }, // h ++ { MODKEY, 46, setmfact, {.f = +0.05} }, // l ++ { MODKEY, 36, zoom, {0} }, // Return ++ { MODKEY, 23, view, {0} }, // Tab ++ { MODKEY|ShiftMask, 54, killclient, {0} }, // c ++ { MODKEY, 28, setlayout, {.v = &layouts[0]} }, // t ++ { MODKEY, 41, setlayout, {.v = &layouts[1]} }, // f ++ { MODKEY, 58, setlayout, {.v = &layouts[2]} }, // m ++ { MODKEY, 65, setlayout, {0} }, // space ++ { MODKEY|ShiftMask, 65, togglefloating, {0} }, // space ++ { MODKEY, 19, view, {.ui = ~0 } }, // 0 ++ { MODKEY|ShiftMask, 19, tag, {.ui = ~0 } }, // 0 ++ { MODKEY, 59, focusmon, {.i = -1 } }, // comma ++ { MODKEY, 60, focusmon, {.i = +1 } }, // period ++ { MODKEY|ShiftMask, 59, tagmon, {.i = -1 } }, // comma ++ { MODKEY|ShiftMask, 60, tagmon, {.i = +1 } }, // period ++ TAGKEYS( 10, 0) // 1 ++ TAGKEYS( 11, 1) // 2 ++ TAGKEYS( 12, 2) // 3 ++ TAGKEYS( 13, 3) // 4 ++ TAGKEYS( 14, 4) // 5 ++ TAGKEYS( 15, 5) // 6 ++ TAGKEYS( 16, 6) // 7 ++ TAGKEYS( 17, 7) // 8 ++ TAGKEYS( 18, 8) // 9 ++ { MODKEY|ShiftMask, 24, quit, {0} }, // q + }; + + /* button definitions */ +diff --git a/dwm.c b/dwm.c +index 0362114..60dd817 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -31,7 +31,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -101,7 +100,7 @@ struct Client { + + typedef struct { + unsigned int mod; +- KeySym keysym; ++ KeyCode keycode; + void (*func)(const Arg *); + const Arg arg; + } Key; +@@ -967,14 +966,12 @@ grabkeys(void) + { + unsigned int i, j; + unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; +- KeyCode code; + + XUngrabKey(dpy, AnyKey, AnyModifier, root); + for (i = 0; i < LENGTH(keys); i++) +- if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) +- for (j = 0; j < LENGTH(modifiers); j++) +- XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, +- True, GrabModeAsync, GrabModeAsync); ++ for (j = 0; j < LENGTH(modifiers); j++) ++ XGrabKey(dpy, keys[i].keycode, keys[i].mod | modifiers[j], root, ++ True, GrabModeAsync, GrabModeAsync); + } + } + +@@ -1001,13 +998,11 @@ void + keypress(XEvent *e) + { + unsigned int i; +- KeySym keysym; + XKeyEvent *ev; + + ev = &e->xkey; +- keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); + for (i = 0; i < LENGTH(keys); i++) +- if (keysym == keys[i].keysym ++ if (ev->keycode == keys[i].keycode + && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) + && keys[i].func) + keys[i].func(&(keys[i].arg));