diff options
| author | auric <104602845+ihateamongus@users.noreply.github.com> | 2025-09-07 17:08:01 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-07 17:08:01 -0500 |
| commit | 417c5740bc4cd96e053b5725589fe3c4a835a231 (patch) | |
| tree | fcf771779ae1dedaab2433d5242118e84c68f02b | |
| parent | c683be2f77a688e3ed162f97820a5c07f9d90a78 (diff) | |
| parent | 2eec1939699ed3fa9e6b3699c2899e0e94a9d978 (diff) | |
Merge pull request #3 from ihateamongus/codex/analyze-oldresources-folder-for-performance-yvoz5b
Resolved. May need tweaks.
| -rw-r--r-- | dmenu/dmenu.c | 24 | ||||
| -rw-r--r-- | dwm/config.def.h | 32 | ||||
| -rw-r--r-- | dwm/dwm.c | 50 |
3 files changed, 72 insertions, 34 deletions
diff --git a/dmenu/dmenu.c b/dmenu/dmenu.c index 0eb6d45..40153dc 100644 --- a/dmenu/dmenu.c +++ b/dmenu/dmenu.c @@ -130,16 +130,20 @@ cleanup(void) static void updateaccent(void) { -uint32_t s1, s2; - -if (!accentshm) -return; -do { -s1 = accentshm->seq; -memcpy(accentcol, accentshm->color, 8); -s2 = accentshm->seq; -} while (s1 != s2); -drw_clr_create(drw, &scheme[SchemeSel][ColBg], accentcol); + uint32_t s1, s2; + char tmp[8]; + + if (!accentshm) + return; + do { + s1 = accentshm->seq; + memcpy(tmp, accentshm->color, 8); + s2 = accentshm->seq; + } while (s1 != s2); + if (tmp[0] != '#') + return; + memcpy(accentcol, tmp, 8); + drw_clr_create(drw, &scheme[SchemeSel][ColBg], accentcol); } static void diff --git a/dwm/config.def.h b/dwm/config.def.h index 3b5b789..0424ce8 100644 --- a/dwm/config.def.h +++ b/dwm/config.def.h @@ -1,8 +1,8 @@ /* See LICENSE file for copyright and license details. */ /* appearance */ -static const unsigned int borderpx = 1; /* border pixel of windows */ -static const unsigned int gappx = 5; /* gaps between windows */ +static const unsigned int borderpx = 3; /* border pixel of windows */ +static const unsigned int gappx = 3; /* 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 */ @@ -47,7 +47,7 @@ static const Layout layouts[] = { }; /* 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} }, \ @@ -63,13 +63,20 @@ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, static const char *termcmd[] = { "st", NULL }; static const char scratchpadname[] = "scratchpad"; static const char *scratchpadcmd[] = { "st", "-t", scratchpadname, "-g", "120x34", NULL }; +static const char *browsercmd[] = { "/bin/sh", "-c", "$BROWSER", NULL }; +static const char *screenshotcmd[] = { "flameshot", "gui", NULL }; +static const char *mediaplaypause[] = { "playerctl", "play-pause", NULL }; +static const char *medianext[] = { "playerctl", "next", NULL }; +static const char *mediaprev[] = { "playerctl", "previous", NULL }; static const Key keys[] = { /* modifier key function argument */ - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, - { MODKEY, XK_grave, togglescratch, {.v = scratchpadcmd } }, - { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY, XK_F1, spawn, {.v = browsercmd } }, + { 0, XK_Print, spawn, {.v = screenshotcmd } }, + { MODKEY, XK_grave, togglescratch, {.v = scratchpadcmd } }, + { MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_i, incnmaster, {.i = +1 } }, @@ -90,10 +97,13 @@ static const Key keys[] = { { 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 = -1 } }, - { MODKEY, XK_equal, setgaps, {.i = +1 } }, - { MODKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } }, - TAGKEYS( XK_1, 0) + { MODKEY, XK_minus, setgaps, {.i = -1 } }, + { MODKEY, XK_equal, setgaps, {.i = +1 } }, + { MODKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } }, + { MODKEY, XK_KP_End, spawn, {.v = mediaprev } }, + { MODKEY, XK_KP_Down, spawn, {.v = mediaplaypause } }, + { MODKEY, XK_KP_Page_Down, spawn, {.v = medianext } }, + TAGKEYS( XK_1, 0) TAGKEYS( XK_2, 1) TAGKEYS( XK_3, 2) TAGKEYS( XK_4, 3) @@ -34,6 +34,7 @@ #include <sys/mman.h> #include <sys/stat.h> #include <fcntl.h> +#include <sys/select.h> #include <X11/cursorfont.h> #include <X11/keysym.h> #include <X11/Xatom.h> @@ -671,15 +672,23 @@ createmon(void) static void updateaccent(void) { - if (!accentshm) return; + if (!accentshm) + return; uint32_t s1, s2; + char tmp[8]; do { s1 = accentshm->seq; - memcpy(accentcol, accentshm->color, 8); + memcpy(tmp, accentshm->color, 8); s2 = accentshm->seq; } while (s1 != s2); + if (tmp[0] != '#') + return; + memcpy(accentcol, tmp, 8); drw_clr_create(drw, &scheme[SchemeSel][ColBg], accentcol); drw_clr_create(drw, &scheme[SchemeSel][ColBorder], accentcol); + for (Monitor *m = mons; m; m = m->next) + if (m->sel) + XSetWindowBorder(dpy, m->sel->win, scheme[SchemeSel][ColBorder].pixel); } static void @@ -745,8 +754,7 @@ dirtomon(int dir) void drawbar(Monitor *m) { - updateaccent(); - int x, w, tw = 0; + int x, w, tw = 0; int boxs = drw->fonts->h / 9; int boxw = drw->fonts->h / 6 + 2; unsigned int i, occ = 0, urg = 0; @@ -799,10 +807,11 @@ drawbar(Monitor *m) void drawbars(void) { - Monitor *m; + Monitor *m; - for (m = mons; m; m = m->next) - drawbar(m); + updateaccent(); + for (m = mons; m; m = m->next) + drawbar(m); } void @@ -1438,12 +1447,27 @@ restack(Monitor *m) void run(void) { - XEvent ev; - /* main event loop */ - XSync(dpy, False); - while (running && !XNextEvent(dpy, &ev)) - if (handler[ev.type]) - handler[ev.type](&ev); /* call handler */ + XEvent ev; + int xfd; + fd_set fds; + struct timeval tv; + + XSync(dpy, False); + xfd = ConnectionNumber(dpy); + while (running) { + FD_ZERO(&fds); + FD_SET(xfd, &fds); + tv.tv_sec = 0; + tv.tv_usec = 50000; + if (select(xfd + 1, &fds, NULL, NULL, &tv) > 0) { + while (XPending(dpy)) { + XNextEvent(dpy, &ev); + if (handler[ev.type]) + handler[ev.type](&ev); /* call handler */ + } + } + drawbars(); + } } void |
