From b0142bb1c8544fb26aebf2062188d628f0105ecd Mon Sep 17 00:00:00 2001 From: davidpkj Date: Thu, 16 Mar 2023 13:17:22 +0100 Subject: Customization --- config.h | 193 +++++++++++++++++++++++++++++++++++---------------------------- dwm.c | 10 ++-- 2 files changed, 114 insertions(+), 89 deletions(-) diff --git a/config.h b/config.h index 0cd2b1c..7125787 100644 --- a/config.h +++ b/config.h @@ -1,16 +1,22 @@ /* See LICENSE file for copyright and license details. */ +#include + +static const int gapsize = 10; + /* appearance */ -static const Gap default_gap = {.isgap = 1, .realgap = 10, .gappx = 10}; -static unsigned int borderpx = 1; /* border pixel of windows */ -static unsigned int snap = 32; /* snap pixel */ +static const Gap default_gap = {.isgap = 1, .realgap = gapsize, .gappx = gapsize}; +static unsigned int borderpx = 5; /* border pixel of windows */ +static unsigned int snap = 0; /* snap pixel */ static int swallowfloating = 0; /* 1 means swallow floating windows by default */ static int showbar = 1; /* 0 means no bar */ static int topbar = 1; /* 0 means bottom bar */ -static const int vertpad = 10; /* vertical padding of bar */ -static const int sidepad = 10; /* horizontal padding of bar */ -static const int horizpadbar = 2; /* horizontal padding for statusbar */ -static const int vertpadbar = 0; /* vertical padding for statusbar */ + +static const int vertpad = gapsize; /* vertical padding of bar */ +static const int sidepad = gapsize; /* horizontal padding of bar */ + +static const int horizpadbar = gapsize; /* horizontal padding for statusbar */ +static const int vertpadbar = gapsize; /* vertical padding for statusbar */ /* Display modes of the tab bar: never shown, always shown, shown only in */ /* monocle mode in presence of several windows. */ @@ -19,16 +25,16 @@ enum showtab_modes { showtab_never, showtab_auto, showtab_nmodes, showtab_always static const int showtab = showtab_auto; /* Default tab bar show mode */ static const Bool toptab = False; /* False means bottom tab bar */ -static char font[] = "monospace:size=10"; -static char dmenufont[] = "monospace:size=10"; -static const char *fonts[] = { font }; +static char font[] = "JetBrainsMono Nerd Font:size=19:pixelsize=24"; +static char dmenufont[] = "JetBrainsMono Nerd Font:size=19:pixelsize=24"; +static const char *fonts[] = { font, "Material Icons:size=24" }; -static char normbgcolor[] = "#222222"; -static char normbordercolor[] = "#444444"; -static char normfgcolor[] = "#bbbbbb"; -static char selfgcolor[] = "#eeeeee"; -static char selbordercolor[] = "#005577"; -static char selbgcolor[] = "#005577"; +static char normbgcolor[] = "#000000"; +static char normbordercolor[] = "#ffffff"; +static char normfgcolor[] = "#ffffff"; +static char selfgcolor[] = "#000000"; +static char selbordercolor[] = "#ffffff"; +static char selbgcolor[] = "#ffffff"; static char *colors[][3] = { /* fg bg border */ @@ -36,14 +42,13 @@ static char *colors[][3] = { [SchemeSel] = { selfgcolor, selbgcolor, selbordercolor }, }; - /* tagging */ -static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; +static const char *tags[] = { "  ", " 爵 ", "  ", "  " }; /* default layout per tags */ /* The first element is for all-tag view, following i-th element corresponds to */ /* tags[i]. Layout is referred using the layouts array index.*/ -static int def_layouts[1 + LENGTH(tags)] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +static int def_layouts[1 + LENGTH(tags)] = { 0, 0, 0, 0, 0}; static const Rule rules[] = { /* xprop(1): @@ -51,9 +56,6 @@ static const Rule rules[] = { * WM_NAME(STRING) = title */ /* class instance title tags mask isfloating isterminal noswallow monitor */ - { "Gimp", NULL, NULL, 0, 1, 0, 0, -1 }, - { "Firefox", NULL, NULL, 1 << 8, 0, 0, -1, -1 }, - { "St", NULL, NULL, 0, 0, 1, 0, -1 }, { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ }; @@ -65,13 +67,13 @@ static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen win static const Layout layouts[] = { /* symbol arrange function */ - { "[]=", tile }, /* first entry is default */ - { "><>", NULL }, /* no layout function means floating behavior */ - { "[M]", monocle }, + { "  ", tile }, /* first entry is default */ + { "  ", monocle }, + { "  ", NULL }, /* no layout function means floating behavior */ }; /* key definitions */ -#define MODKEY Mod1Mask +#define MODKEY Mod4Mask #define TAGKEYS(KEY,TAG) \ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ @@ -83,71 +85,94 @@ 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", normbgcolor, "-nf", normfgcolor, "-sb", selbordercolor, "-sf", selfgcolor, NULL }; +static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", normbgcolor, "-x", "10", "-y", "10", "-z", "2860", "-h", "44", NULL }; static const char *termcmd[] = { "st", NULL }; /* * Xresources preferences to load at startup */ ResourcePref resources[] = { - { "font", STRING, &font }, - { "dmenufont", STRING, &dmenufont }, - { "normbgcolor", STRING, &normbgcolor }, - { "normbordercolor", STRING, &normbordercolor }, - { "normfgcolor", STRING, &normfgcolor }, - { "selbgcolor", STRING, &selbgcolor }, - { "selbordercolor", STRING, &selbordercolor }, - { "selfgcolor", STRING, &selfgcolor }, - { "borderpx", INTEGER, &borderpx }, - { "snap", INTEGER, &snap }, - { "showbar", INTEGER, &showbar }, - { "topbar", INTEGER, &topbar }, - { "nmaster", INTEGER, &nmaster }, - { "resizehints", INTEGER, &resizehints }, - { "mfact", FLOAT, &mfact }, + { "font", STRING, &font }, + { "dmenufont", STRING, &dmenufont }, + { "normbgcolor", STRING, &normbgcolor }, + { "normbordercolor", STRING, &normbordercolor }, + { "normfgcolor", STRING, &normfgcolor }, + { "selbgcolor", STRING, &selbgcolor }, + { "selbordercolor", STRING, &selbordercolor }, + { "selfgcolor", STRING, &selfgcolor }, + { "borderpx", INTEGER, &borderpx }, + { "snap", INTEGER, &snap }, + { "showbar", INTEGER, &showbar }, + { "topbar", INTEGER, &topbar }, + { "nmaster", INTEGER, &nmaster }, + { "resizehints", INTEGER, &resizehints }, + { "mfact", FLOAT, &mfact }, }; 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_w, tabmode, {-1} }, - { 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|ShiftMask, XK_space, togglealwaysontop, {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 } }, - { MODKEY, XK_minus, setgaps, {.i = -5 } }, - { MODKEY, XK_equal, setgaps, {.i = +5 } }, - { MODKEY|ShiftMask, XK_minus, setgaps, {.i = GAP_RESET } }, - { MODKEY|ShiftMask, XK_equal, setgaps, {.i = GAP_TOGGLE} }, - 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, XK_space, spawn, {.v = dmenucmd } }, + { MODKEY, XK_Return, spawn, {.v = termcmd } }, + /* { MODKEY, XK_r, xrdb, {.v = NULL } }, */ + { MODKEY|Mod1Mask, XK_BackSpace, quit, {0} }, + + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY|ShiftMask, XK_d, 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_Tab, view, {0} }, + { MODKEY, XK_q, killclient, {0} }, + { MODKEY, XK_f, setlayout, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY, XK_z, zoom, {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 } }, + { MODKEY, XK_w, tabmode, {-1} }, + { MODKEY|ShiftMask, XK_space, togglealwaysontop, {0} }, + + { MODKEY, XK_a, spawn, SHCMD("passmenu") }, + { MODKEY, XK_Escape, spawn, SHCMD("powermenu") }, + + { MODKEY, XK_p, spawn, SHCMD("screenshot full") }, + { MODKEY|ShiftMask, XK_p, spawn, SHCMD("screenshot select") }, + + { 0, XF86XK_MonBrightnessUp, spawn, SHCMD("brightness smallup monitor") }, + { ShiftMask, XF86XK_MonBrightnessUp, spawn, SHCMD("brightness up monitor") }, + { MODKEY, XF86XK_MonBrightnessUp, spawn, SHCMD("redshift -P -O 3500") }, + { 0, XF86XK_MonBrightnessDown, spawn, SHCMD("brightness smalldown monitor") }, + { ShiftMask, XF86XK_MonBrightnessDown, spawn, SHCMD("brightness down monitor") }, + { MODKEY, XF86XK_MonBrightnessDown, spawn, SHCMD("redshift -x") }, + + { 0, XF86XK_KbdBrightnessUp, spawn, SHCMD("brightness smallup keyboard") }, + { ShiftMask, XF86XK_KbdBrightnessUp, spawn, SHCMD("brightness up keyboard") }, + { MODKEY, XF86XK_KbdBrightnessUp, spawn, SHCMD("wifi on") }, + { 0, XF86XK_KbdBrightnessDown, spawn, SHCMD("brightness smalldown keyboard") }, + { ShiftMask, XF86XK_KbdBrightnessDown, spawn, SHCMD("brightness down keyboard") }, + { MODKEY, XF86XK_KbdBrightnessDown, spawn, SHCMD("wifi off") }, + + { 0, XF86XK_AudioPrev, spawn, SHCMD("musctl previous") }, + { 0, XF86XK_AudioNext, spawn, SHCMD("musctl next") }, + { 0, XF86XK_AudioPlay, spawn, SHCMD("musctl toggle") }, + { MODKEY, XF86XK_AudioPlay, spawn, SHCMD("musctl notify") }, + + { 0, XF86XK_AudioRaiseVolume, spawn, SHCMD("volctl increase") }, + { 0, XF86XK_AudioLowerVolume, spawn, SHCMD("volctl decrease") }, + { 0, XF86XK_AudioMute, spawn, SHCMD("volctl mute") }, + { MODKEY, XF86XK_AudioMute, spawn, SHCMD("mute") }, + + { 0, XF86XK_LaunchA, spawn, SHCMD("launcha") }, + { 0, XF86XK_LaunchB, spawn, SHCMD("launchb") }, + + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) + TAGKEYS( XK_4, 3) }; /* button definitions */ @@ -155,8 +180,7 @@ static const Key keys[] = { 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} }, + { ClkLtSymbol, 0, Button2, setlayout, {.v = &layouts[0]} }, { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, { ClkClientWin, MODKEY, Button1, movemouse, {0} }, { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, @@ -165,6 +189,5 @@ static const Button buttons[] = { { ClkTagBar, 0, Button3, toggleview, {0} }, { ClkTagBar, MODKEY, Button1, tag, {0} }, { ClkTagBar, MODKEY, Button3, toggletag, {0} }, - { ClkTabBar, 0, Button1, focuswin, {0} }, }; diff --git a/dwm.c b/dwm.c index 3a550f6..8e3584d 100644 --- a/dwm.c +++ b/dwm.c @@ -881,6 +881,7 @@ void drawbar(Monitor *m) { int x, w, tw = 0; + int tlpad; int boxs = drw->fonts->h / 9; int boxw = drw->fonts->h / 6 + 2; unsigned int i, occ = 0, urg = 0; @@ -918,12 +919,13 @@ drawbar(Monitor *m) if ((w = m->ww - tw - x) > bh) { if (m->sel) { - drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]); - drw_text(drw, x, 0, w - 2 * sp, bh, lrpad / 2, m->sel->name, 0); + drw_setscheme(drw, scheme[m == selmon ? SchemeNorm : SchemeNorm]); + tlpad = MAX((m->ww - ((int)TEXTW(m->sel->name) - lrpad)) / 2 - x, lrpad / 2); + drw_text(drw, x, 0, w - 2 * sp, bh, tlpad, m->sel->name, 0); if (m->sel->isfloating) { - drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0); + drw_rect(drw, x + boxs + tlpad - lrpad / 2, boxs, boxw, boxw, m->sel->isfixed, 0); if (m->sel->isalwaysontop) - drw_rect(drw, x + boxs, bh - boxw, boxw, boxw, 0, 0); + drw_rect(drw, x + boxs + tlpad - lrpad / 2, bh - boxw, boxw, boxw, 0, 0); } } else { drw_setscheme(drw, scheme[SchemeNorm]); -- cgit v1.2.3