aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.def.h3
-rw-r--r--config.mk2
-rw-r--r--drw.c29
-rw-r--r--drw.h2
-rw-r--r--dwm.c6
5 files changed, 34 insertions, 8 deletions
diff --git a/config.def.h b/config.def.h
index cab6d86..c8b0212 100644
--- a/config.def.h
+++ b/config.def.h
@@ -44,6 +44,7 @@ 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 int refreshrate = 120; /* refresh rate (per second) for client move/resize */
static const Layout layouts[] = {
/* symbol arrange function */
@@ -150,7 +151,7 @@ static const Key keys[] = {
{ MODKEY, XK_s, spawn, SHCMD("alacritty -e env LESS=\"$LESS-+F\" sdcv --color \"$(xsel -op)\"") },
// firefox Userjs toggle RFP
{ MODKEY, XK_u, spawn, SHCMD("ujs -r") },
- { MODKEY, XK_v, spawn, SHCMD("vpn \"$(printf 'mydefault\naa\nca\nia\nib\nstudio\n' | dmenu -p 'vpn')\"") },
+ { MODKEY, XK_v, spawn, SHCMD("vpn \"$( { echo master; git -C \"$HOME/programs/config_local_arch\" branch | awk '!/pp|master/{print ($1==\"*\")?$2:$1}';} | dmenu -p vpn)\"") },
{ MODKEY, XK_w, spawn, SHCMD("\"$BROWSER\"") },
{ MODKEY, XK_x, spawn, SHCMD("sleep 0.3; xcross") },
{ MODKEY, XK_y, spawn, SHCMD("mpvy -s") },
diff --git a/config.mk b/config.mk
index 8efca9a..b469a2b 100644
--- a/config.mk
+++ b/config.mk
@@ -1,5 +1,5 @@
# dwm version
-VERSION = 6.5
+VERSION = 6.6
# Customize below to fit your system
diff --git a/drw.c b/drw.c
index c41e6af..9fdd1a4 100644
--- a/drw.c
+++ b/drw.c
@@ -178,8 +178,7 @@ drw_clr_create(Drw *drw, Clr *dest, const char *clrname)
die("error, cannot allocate color '%s'", clrname);
}
-/* Wrapper to create color schemes. The caller has to call free(3) on the
- * returned color scheme when done using it. */
+/* Create color schemes. */
Clr *
drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount)
{
@@ -187,7 +186,7 @@ drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount)
Clr *ret;
/* need at least two colors for a scheme */
- if (!drw || !clrnames || clrcount < 2 || !(ret = ecalloc(clrcount, sizeof(XftColor))))
+ if (!drw || !clrnames || clrcount < 2 || !(ret = ecalloc(clrcount, sizeof(Clr))))
return NULL;
for (i = 0; i < clrcount; i++)
@@ -196,6 +195,30 @@ drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount)
}
void
+drw_clr_free(Drw *drw, Clr *c)
+{
+ if (!drw || !c)
+ return;
+
+ /* c is typedef XftColor Clr */
+ XftColorFree(drw->dpy, DefaultVisual(drw->dpy, drw->screen),
+ DefaultColormap(drw->dpy, drw->screen), c);
+}
+
+void
+drw_scm_free(Drw *drw, Clr *scm, size_t clrcount)
+{
+ size_t i;
+
+ if (!drw || !scm)
+ return;
+
+ for (i = 0; i < clrcount; i++)
+ drw_clr_free(drw, &scm[i]);
+ free(scm);
+}
+
+void
drw_setfontset(Drw *drw, Fnt *set)
{
if (drw)
diff --git a/drw.h b/drw.h
index 6471431..bda06f9 100644
--- a/drw.h
+++ b/drw.h
@@ -40,7 +40,9 @@ void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned in
/* Colorscheme abstraction */
void drw_clr_create(Drw *drw, Clr *dest, const char *clrname);
+void drw_clr_free(Drw *drw, Clr *c);
Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount);
+void drw_scm_free(Drw *drw, Clr *scm, size_t clrcount);
/* Cursor abstraction */
Cur *drw_cur_create(Drw *drw, int shape);
diff --git a/dwm.c b/dwm.c
index 7fb67f1..1ec34f0 100644
--- a/dwm.c
+++ b/dwm.c
@@ -487,7 +487,7 @@ cleanup(void)
for (i = 0; i < CurLast; i++)
drw_cur_free(drw, cursor[i]);
for (i = 0; i < LENGTH(colors); i++)
- free(scheme[i]);
+ drw_scm_free(drw, scheme[i], 3);
free(scheme);
XDestroyWindow(dpy, wmcheckwin);
drw_free(drw);
@@ -1172,7 +1172,7 @@ movemouse(const Arg *arg)
handler[ev.type](&ev);
break;
case MotionNotify:
- if ((ev.xmotion.time - lasttime) <= (1000 / 60))
+ if ((ev.xmotion.time - lasttime) <= (1000 / refreshrate))
continue;
lasttime = ev.xmotion.time;
@@ -1326,7 +1326,7 @@ resizemouse(const Arg *arg)
handler[ev.type](&ev);
break;
case MotionNotify:
- if ((ev.xmotion.time - lasttime) <= (1000 / 60))
+ if ((ev.xmotion.time - lasttime) <= (1000 / refreshrate))
continue;
lasttime = ev.xmotion.time;