diff options
| -rw-r--r-- | config.def.h | 3 | ||||
| -rw-r--r-- | config.mk | 2 | ||||
| -rw-r--r-- | drw.c | 29 | ||||
| -rw-r--r-- | drw.h | 2 | ||||
| -rw-r--r-- | dwm.c | 6 |
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") }, @@ -1,5 +1,5 @@ # dwm version -VERSION = 6.5 +VERSION = 6.6 # Customize below to fit your system @@ -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) @@ -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); @@ -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; |
