summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorauric <104602845+ihateamongus@users.noreply.github.com>2025-09-07 17:08:01 -0500
committerGitHub <noreply@github.com>2025-09-07 17:08:01 -0500
commit417c5740bc4cd96e053b5725589fe3c4a835a231 (patch)
treefcf771779ae1dedaab2433d5242118e84c68f02b
parentc683be2f77a688e3ed162f97820a5c07f9d90a78 (diff)
parent2eec1939699ed3fa9e6b3699c2899e0e94a9d978 (diff)
Merge pull request #3 from ihateamongus/codex/analyze-oldresources-folder-for-performance-yvoz5b
Resolved. May need tweaks.
-rw-r--r--dmenu/dmenu.c24
-rw-r--r--dwm/config.def.h32
-rw-r--r--dwm/dwm.c50
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)
diff --git a/dwm/dwm.c b/dwm/dwm.c
index 97fb920..633e9d6 100644
--- a/dwm/dwm.c
+++ b/dwm/dwm.c
@@ -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