From eeb28857a710496c71e2a9dbfe132c1819332e46 Mon Sep 17 00:00:00 2001 From: Solomon Laing Date: Mon, 2 Jun 2025 15:38:04 +0930 Subject: [PATCH] cleen --- config.def.h | 9 ++- config.h | 205 --------------------------------------------------- drw.o | Bin 11296 -> 0 bytes 3 files changed, 5 insertions(+), 209 deletions(-) delete mode 100644 config.h delete mode 100644 drw.o diff --git a/config.def.h b/config.def.h index 597602e..9b2ee08 100644 --- a/config.def.h +++ b/config.def.h @@ -34,9 +34,10 @@ static const Rule rules[] = { * 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}, + /* class instance title tags mask isfloating monitor */ + {"firefox", NULL, NULL, 1 << 0, 0, -1}, + {"thunderbird", NULL, NULL, 1 << 6, 0, -1}, + {"ManagerDesktop", NULL, NULL, 1 << 7, 0, -1}, }; /* layout(s) */ @@ -142,7 +143,7 @@ static const Keychord *keychords[] = { &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_f}}, spawn, {.v = (const char *[]){"firefox", NULL}} }), &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_n}}, spawn, {.v = (const char *[]){TERMINAL, "-e", "ncmpcpp", NULL}} }), &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_m}}, spawn, {.v = (const char *[]){TERMINAL, "-e", "gotop", NULL}} }), - &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_t}}, spawn, {.v = (const char *[]){"thunar, NULL}} }), + &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_t}}, spawn, {.v = (const char *[]){"thunar", NULL}} }), &((Keychord){2, {{MODKEY, XK_d}, {MODKEY, XK_h}}, spawn, {.v = (const char *[]){"dmenuhandler", NULL}} }), &((Keychord){2, {{MODKEY, XK_d}, {MODKEY, XK_m}}, spawn, {.v = (const char *[]){"mounter", NULL}} }), diff --git a/config.h b/config.h deleted file mode 100644 index 6b30be9..0000000 --- a/config.h +++ /dev/null @@ -1,205 +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 gappx = 6; /* gaps between 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[] = {"FiraCode Nerd Font:size=10:antialias=true:hinting=true"}; -static const char dmenufont[] = "FiraCode Nerd Font:size=10:antialias=true:hinting=true"; - -static const char norm_fg[] = "#D5C4A1"; -static const char norm_bg[] = "#262626"; -static const char norm_border[] = "#665c54"; - -static const char sel_fg[] = "#262626"; -static const char sel_bg[] = "#FE8019"; -static const char sel_border[] = "#fbf1c7"; - -static const char *colors[][3] = { - /* fg bg border */ - [SchemeNorm] = {norm_fg, norm_bg, norm_border}, // unfocused wins - [SchemeSel] = {sel_fg, sel_bg, sel_border}, // the focused win -}; - -static const unsigned int baralpha = 0xd0; -static const unsigned int borderalpha = 0xd0; - -/* 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.50; /* factor of master area size [0.05..0.95] */ -static const int nmaster = 1; /* number of clients in master area */ -static const int resizehints = 0; /* 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 */ - {"[M]", monocle}, - {"><>", NULL}, /* no layout function means floating behavior */ -}; - -/* key definitions */ -#define MODKEY Mod1Mask -#define TAGKEYS(KEY,TAG) \ - &((Keychord){1, {{MODKEY, KEY}}, view, {.ui = 1 << TAG} }), \ - &((Keychord){1, {{MODKEY|ControlMask, KEY}}, toggleview, {.ui = 1 << TAG} }), \ - &((Keychord){1, {{MODKEY|ShiftMask, KEY}}, tag, {.ui = 1 << TAG} }), \ - &((Keychord){1, {{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 } } - -/* some defaults */ -#define TERMINAL "st" -#define STATUSBAR "dwmblocks" - -/* commands */ -static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ -static const char *dmenucmd[] = {"dmenu_run", NULL}; -static const char *slockcmd[] = {"slock", NULL}; -static const char *termcmd[] = {TERMINAL, "-e", "tmux-worker", NULL}; - -#include "movestack.c" -#include "shift-tools.c" -#include - -static const Keychord *keychords[] = { - /* modifier key chord function argument */ - // &((Keychord){1, {{MODKEY, XK_}}, spawn, {} }), - &((Keychord){1, {{MODKEY | ControlMask | ShiftMask, XK_apostrophe}}, quit, {0} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_apostrophe}}, quit, {1} }), - - &((Keychord){1, {{MODKEY, XK_apostrophe}}, killclient, {0} }), - - &((Keychord){1, {{MODKEY, XK_a}}, spawn, {.v = dmenucmd} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_Return}}, spawn, {.v = termcmd} }), - &((Keychord){1, {{MODKEY, XK_Escape}}, spawn, {.v = slockcmd} }), - - &((Keychord){1, {{MODKEY, XK_l}}, shiftviewclients, {.i = +1} }), - &((Keychord){1, {{MODKEY, XK_h}}, shiftviewclients, {.i = -1} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_l}}, shiftview, {.i = +1} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_h}}, shiftview, {.i = -1} }), - &((Keychord){1, {{MODKEY | ControlMask, XK_l}}, shiftboth, {.i = +1} }), - &((Keychord){1, {{MODKEY | ControlMask, XK_h}}, shiftboth, {.i = -1} }), - &((Keychord){1, {{MODKEY | ControlMask | ShiftMask, XK_l}}, shiftswaptags, {.i = +1} }), - &((Keychord){1, {{MODKEY | ControlMask | ShiftMask, XK_h}}, shiftswaptags, {.i = -1} }), - - &((Keychord){1, {{MODKEY, XK_j}}, focusstack, {.i = +1} }), - &((Keychord){1, {{MODKEY, XK_k}}, focusstack, {.i = -1} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_v}}, incnmaster, {.i = +1} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_w}}, incnmaster, {.i = -1} }), - &((Keychord){1, {{MODKEY, XK_equal}}, setmfact, {.f = +0.05} }), - &((Keychord){1, {{MODKEY, XK_minus}}, setmfact, {.f = -0.05} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_j}}, movestack, {.i = +1} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_k}}, movestack, {.i = -1} }), - &((Keychord){1, {{MODKEY, XK_Return}}, zoom, {0} }), - &((Keychord){1, {{MODKEY, XK_Tab}}, view, {0} }), - - &((Keychord){2, {{MODKEY, XK_w}, {MODKEY, XK_t}}, setlayout, {.v = &layouts[0]} }), - &((Keychord){2, {{MODKEY, XK_w}, {MODKEY, XK_m}}, setlayout, {.v = &layouts[1]} }), - &((Keychord){2, {{MODKEY, XK_w}, {MODKEY, XK_f}}, setlayout, {.v = &layouts[2]} }), - &((Keychord){1, {{MODKEY, XK_F11}}, fullscreen, {0} }), - &((Keychord){1, {{MODKEY, XK_space}}, setlayout, {0} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_space}}, togglefloating, {0} }), - &((Keychord){1, {{MODKEY, XK_b}}, togglebar, {0} }), - - &((Keychord){1, {{MODKEY, XK_0}}, view, {.ui = ~0} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_0}}, tag, {.ui = ~0} }), - &((Keychord){1, {{MODKEY, XK_comma}}, focusmon, {.i = -1} }), - &((Keychord){1, {{MODKEY, XK_period}}, focusmon, {.i = +1} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_comma}}, tagmon, {.i = -1} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_period}}, tagmon, {.i = +1} }), - - &((Keychord){1, {{MODKEY | ShiftMask, XK_s}}, spawn, {.v = (const char *[]){"sysact", NULL}} }), - - &((Keychord){1, {{MODKEY | ShiftMask, XK_o}}, spawn, {.v = (const char *[]){"set-default-sink", NULL}} }), - &((Keychord){1, {{MODKEY | ShiftMask, XK_i}}, spawn, {.v = (const char *[]){"set-default-source", NULL}} }), - - &((Keychord){2, {{MODKEY, XK_m}, {MODKEY, XK_a}}, spawn, {.v = (const char *[]){"dmenumusic", NULL}} }), - &((Keychord){2, {{MODKEY, XK_m}, {MODKEY, XK_p}}, spawn, {.v = (const char *[]){"mpc", "toggle", NULL}} }), - &((Keychord){2, {{MODKEY, XK_m}, {MODKEY, XK_l}}, spawn, {.v = (const char *[]){"mpc", "next", NULL}} }), - &((Keychord){2, {{MODKEY, XK_m}, {MODKEY, XK_h}}, spawn, {.v = (const char *[]){"mpc", "prev", NULL}} }), - &((Keychord){1, {{MODKEY, XF86XK_AudioPlay}}, spawn, {.v = (const char *[]){"mpc", "toggle", NULL}} }), - &((Keychord){1, {{MODKEY, XF86XK_AudioNext}}, spawn, {.v = (const char *[]){"mpc", "next", NULL}} }), - &((Keychord){1, {{MODKEY, XF86XK_AudioPrev}}, spawn, {.v = (const char *[]){"mpc", "prev", NULL}} }), - - &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_l}}, spawn, {.v = (const char *[]){TERMINAL, "-e", "lf", NULL}} }), - &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_f}}, spawn, {.v = (const char *[]){"firefox", NULL}} }), - &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_n}}, spawn, {.v = (const char *[]){TERMINAL, "-e", "ncmpcpp", NULL}} }), - &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_m}}, spawn, {.v = (const char *[]){TERMINAL, "-e", "gotop", NULL}} }), - &((Keychord){2, {{MODKEY, XK_o}, {MODKEY, XK_t}}, spawn, {.v = (const char *[]){"thunar, NULL}} }), - - &((Keychord){2, {{MODKEY, XK_d}, {MODKEY, XK_h}}, spawn, {.v = (const char *[]){"dmenuhandler", NULL}} }), - &((Keychord){2, {{MODKEY, XK_d}, {MODKEY, XK_m}}, spawn, {.v = (const char *[]){"mounter", NULL}} }), - &((Keychord){2, {{MODKEY, XK_d}, {MODKEY, XK_c}}, spawn, {.v = (const char *[]){"dmenumountcifs", NULL}} }), - &((Keychord){2, {{MODKEY, XK_d}, {MODKEY, XK_u}}, spawn, {.v = (const char *[]){"unmounter", NULL}} }), - &((Keychord){2, {{MODKEY, XK_d}, {MODKEY, XK_s}}, spawn, {.v = (const char *[]){"dmenusearch", "duckduckgo", NULL}} }), - &((Keychord){2, {{MODKEY, XK_d}, {MODKEY, XK_l}}, spawn, {.v = (const char *[]){"linkhandler", NULL}} }), - - &((Keychord){2, {{MODKEY, XK_d}, {MODKEY, XK_b}}, spawn, SHCMD("dmenu-bluetooth -i -l 25") }), - - &((Keychord){1, {{MODKEY | ShiftMask, XK_t}}, spawn, SHCMD("trayer-toggle trayer --edge top --align center --widthtype request " "--padding 6 --SetDockType true --SetPartialStrut true --expand " "true --transparent true --alpha 0 --tint 0x262626 --height 18 &") }), - - &((Keychord){1, {{MODKEY | ControlMask, XK_period}}, spawn, {.v = (const char *[]){"sd", NULL}} }), - - &((Keychord){1, {{MODKEY, XK_f}}, spawn, {.v = (const char *[]){"screenlayout", NULL}} }), - - &((Keychord){1, {{MODKEY, XK_F1}}, spawn, {.v = (const char *[]){"kbswitcher", NULL}} }), - - &((Keychord){1, {{0, XF86XK_AudioMute}}, spawn, SHCMD("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle; kill -37 $(pidof " "dwmblocks)") }), - &((Keychord){1, {{0, XF86XK_AudioRaiseVolume}}, spawn, SHCMD("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+; kill -37 $(pidof " "dwmblocks)") }), - &((Keychord){1, {{0, XF86XK_AudioLowerVolume}}, spawn, SHCMD("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-; kill -37 $(pidof " "dwmblocks)") }), - &((Keychord){1, {{0, XF86XK_AudioMicMute}}, spawn, SHCMD("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle; kill -37 $(pidof " "dwmblocks)") }), - &((Keychord){1, {{MODKEY, XK_v}}, spawn, {.v = (const char *[]){"setvol", NULL}} }), - - &((Keychord){1, {{0, XF86XK_MonBrightnessUp}}, spawn, {.v = (const char *[]){"mod_backlight", "up", NULL}} }), - &((Keychord){1, {{0, XF86XK_MonBrightnessDown}}, spawn, {.v = (const char *[]){"mod_backlight", "down", NULL}} }), - - 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) -}; - -/* button definitions */ -/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, - * ClkClientWin, or ClkRootWin */ -static 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, Button1, sigstatusbar, {.i = 1}}, - {ClkStatusText, 0, Button2, sigstatusbar, {.i = 2}}, - {ClkStatusText, 0, Button3, sigstatusbar, {.i = 3}}, - {ClkStatusText, 0, Button4, sigstatusbar, {.i = 4}}, - {ClkStatusText, 0, Button5, sigstatusbar, {.i = 5}}, - {ClkStatusText, ShiftMask, Button1, sigstatusbar, {.i = 6}}, - {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/drw.o b/drw.o deleted file mode 100644 index dbafb1662bf561b45180fe2335afc7ce9362489f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11296 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