From 947e6c080e751d7654f764de1db09c960040a241 Mon Sep 17 00:00:00 2001 From: Noah Swerhun Date: Mon, 19 Apr 2021 15:04:27 -0500 Subject: [PATCH] transfered to git.noahsw.xyz and added warp --- config.h | 33 +++++++++++++++----------- config.mk | 2 +- drw.o | Bin 10392 -> 10384 bytes dwm | Bin 76328 -> 75976 bytes dwm-warp-6.2.diff | 58 ++++++++++++++++++++++++++++++++++++++++++++++ dwm.c | 25 ++++++++++++++++++++ dwm.o | Bin 66176 -> 67424 bytes util.o | Bin 2264 -> 2256 bytes 8 files changed, 104 insertions(+), 14 deletions(-) create mode 100644 dwm-warp-6.2.diff diff --git a/config.h b/config.h index f1aa1b5..d91ab60 100644 --- a/config.h +++ b/config.h @@ -1,7 +1,8 @@ /* See LICENSE file for copyright and license details. */ #define TERMCLASS "st-256color" - +#define TERMINAL "/usr/local/bin/st" +#define BROWSER "/usr/bin/waterfox" /* appearance */ static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int snap = 3; /* snap pixel */ @@ -13,8 +14,8 @@ static const unsigned int gappoh = 5; /* horiz outer gap between windo static const unsigned int gappov = 5; /* vert outer gap between windows and screen edge */ static int smartgaps = 0; /* 1 means no outer gap when there is only one window */ static const int swallowfloating = 0; /* 1 means swallow floating windows by default */ -static const char *fonts[] = { "Roboto Mono:size=10", "Joypixels:size=10" }; -static const char dmenufont[] = "Roboto Mono:size=10"; +static const char *fonts[] = { "Source Code Pro:size=10", "Joypixels:size=10" }; +static const char dmenufont[] = "Source Code Pro:size=10"; static const char col_gray1[] = "#222222"; static const char col_gray2[] = "#444444"; static const char col_gray3[] = "#bbbbbb"; @@ -34,11 +35,13 @@ static const Rule rules[] = { * WM_CLASS(STRING) = instance, class * 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 }, - { TERMCLASS, NULL, NULL, 0, 0, 1, 0, -1 }, - { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ + /* 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 }, + { TERMCLASS, NULL, NULL, 0, 0, 1, 0, -1 }, + { TERMCLASS, NULL, "pulsemixer", 0, 1, 0, 0, -1 }, + { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ + { NULL, NULL, "Logon to thinkorswim", 0, 1, 0, 0, -1 } }; /* layout(s) */ @@ -85,14 +88,16 @@ 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", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; -static const char *termcmd[] = { "st", NULL }; -static const char *browser[] = { "waterfox-current", NULL }; +static const char *termcmd[] = { TERMINAL, NULL }; +static const char *browser[] = { BROWSER, NULL }; static const char *passmenu[] = { "passmenu", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, "-l", "5", "-i", NULL }; -static const char *scrotselection[] = { "sleep", "0.5", "&&", "scrot", "-s", "~/pics/screenshots/%Y-%m-%d-%s%w%h.jpg", NULL }; -static const char *manmenu[] = { "manmenu", NULL }; +static const char *manmenu[] = { "/home/noah/.local/bin/manmenu", NULL }; +static const char *scrotselection[] = { "/usr/bin/scrot", "-s", "~/pcs/screenshots/%Y-%m-%d-%s%w%h.jpg", NULL }; static const char *upvol[] = { "/usr/bin/pactl", "set-sink-volume", "@DEFAULT_SINK@", "+2%", NULL }; static const char *downvol[] = { "/usr/bin/pactl", "set-sink-volume", "@DEFAULT_SINK@", "-2%", NULL }; static const char *mutevol[] = { "/usr/bin/pactl", "set-sink-mute", "@DEFAULT_SINK@", "toggle", NULL }; +static const char *pulsemixer[] = { TERMINAL, "-e", "/usr/bin/pulsemixer", NULL }; +static const char *uni[] = { "/home/noah/.local/bin/uni", NULL }; static Key keys[] = { /* modifier key function argument */ @@ -122,7 +127,9 @@ static Key keys[] = { { MODKEY, XK_w, spawn, {.v = browser } }, { MODKEY, XK_p, spawn, {.v = passmenu } }, { MODKEY, XK_Print, spawn, {.v = scrotselection } }, - { MODKEY, XK_c, spawn, {.v = manmenu } }, + { MODKEY, XK_e, spawn, {.v = pulsemixer } }, + { MODKEY, XK_y, spawn, {.v = manmenu } }, + { MODKEY, XK_r, spawn, {.v = uni } }, { 0, XF86XK_AudioRaiseVolume, spawn, {.v = upvol } }, { 0, XF86XK_AudioLowerVolume, spawn, {.v = downvol } }, { 0, XF86XK_AudioMute, spawn, {.v = mutevol } }, diff --git a/config.mk b/config.mk index 5d136bc..9195566 100644 --- a/config.mk +++ b/config.mk @@ -28,7 +28,7 @@ LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} -lX11-xcb -lxcb -lxcb-r # flags CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} #CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} -CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os ${INCS} ${CPPFLAGS} +CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -Wno-unused-function ${INCS} ${CPPFLAGS} LDFLAGS = ${LIBS} # Solaris diff --git a/drw.o b/drw.o index be60440eaad88f6167a4d8be299052dd9c8cfcbc..f8766b07692cb502f4a615e983f3b44217e4f090 100644 GIT binary patch delta 1424 zcmZ9MO-NKx6vy9;P0r|h>S%iBH8VOh&1(j9rt+igLmh)?iYz4pH%5_Si~LBYz{o`e z)j~l!L2g{M&q!vQP+%a0?o(zYBj5U-}SbAc#dKCFwS4Trg=5bd(L?%SC# z*01}`09K9KYc;LGnZ1|;v>8_B0Yrax%ev)IuHQ%{(2$^?1T`rWQN}?*cj;GH(d~$C zMn(3zb4;#i(gHk^KBY$yMH}$Mh3B{9;WH*^C!)+MLH(SDxZ)v-MwOXFZ@^4eLabePD)Ig5X(F!ZVN5r+Mg0&h$CcSFJeRn&A->l++63)FBSG$OONj+Qk6843VV-g z^dQx2&LY9zKEFVzVY-`2WeP~~fpQWdUgF;Xdh7gc=!mQ6W2&`rgL?$>JNp`l8_1V# X^=>I@Pxl7$NtM delta 1375 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 diff --git a/dwm-warp-6.2.diff b/dwm-warp-6.2.diff new file mode 100644 index 0000000..813c41d --- /dev/null +++ b/dwm-warp-6.2.diff @@ -0,0 +1,58 @@ +diff --git a/dwm.c b/dwm.c +index 4465af1..bf74f60 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -227,6 +227,7 @@ static void updatetitle(Client *c); + static void updatewindowtype(Client *c); + static void updatewmhints(Client *c); + static void view(const Arg *arg); ++static void warp(const Client *c); + static Client *wintoclient(Window w); + static Monitor *wintomon(Window w); + static int xerror(Display *dpy, XErrorEvent *ee); +@@ -827,6 +828,7 @@ focusmon(const Arg *arg) + unfocus(selmon->sel, 0); + selmon = m; + focus(NULL); ++ warp(selmon->sel); + } + + void +@@ -1367,6 +1369,8 @@ restack(Monitor *m) + } + XSync(dpy, False); + while (XCheckMaskEvent(dpy, EnterWindowMask, &ev)); ++ if (m == selmon && (m->tagset[m->seltags] & m->sel->tags) && selmon->lt[selmon->sellt] != &layouts[2]) ++ warp(m->sel); + } + + void +@@ -2044,6 +2048,28 @@ view(const Arg *arg) + arrange(selmon); + } + ++void ++warp(const Client *c) ++{ ++ int x, y; ++ ++ if (!c) { ++ XWarpPointer(dpy, None, root, 0, 0, 0, 0, selmon->wx + selmon->ww/2, selmon->wy + selmon->wh/2); ++ return; ++ } ++ ++ if (!getrootptr(&x, &y) || ++ (x > c->x - c->bw && ++ y > c->y - c->bw && ++ x < c->x + c->w + c->bw*2 && ++ y < c->y + c->h + c->bw*2) || ++ (y > c->mon->by && y < c->mon->by + bh) || ++ (c->mon->topbar && !y)) ++ return; ++ ++ XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2); ++} ++ + Client * + wintoclient(Window w) + { diff --git a/dwm.c b/dwm.c index 4d797ba..fa6827c 100644 --- a/dwm.c +++ b/dwm.c @@ -240,6 +240,7 @@ static void updatetitle(Client *c); static void updatewindowtype(Client *c); static void updatewmhints(Client *c); static void view(const Arg *arg); +static void warp(const Client *c); static Client *wintoclient(Window w); static Monitor *wintomon(Window w); static int xerror(Display *dpy, XErrorEvent *ee); @@ -904,6 +905,7 @@ focusmon(const Arg *arg) unfocus(selmon->sel, 0); selmon = m; focus(NULL); + warp(selmon->sel); } void @@ -1419,6 +1421,8 @@ resizemouse(const Arg *arg) XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1); XUngrabPointer(dpy, CurrentTime); while (XCheckMaskEvent(dpy, EnterWindowMask, &ev)); + if (m == selmon && (m->tagset[m->seltags] & m->sel->tags) && selmon->lt[selmon->sellt] != &layouts[2]) + warp(m->sel); if ((m = recttomon(c->x, c->y, c->w, c->h)) != selmon) { sendmon(c, m); selmon = m; @@ -2245,6 +2249,27 @@ swallowingclient(Window w) return NULL; } +void +warp(const Client *c) +{ + int x, y; + + if (!c) { + XWarpPointer(dpy, None, root, 0, 0, 0, 0, selmon->wx + selmon->ww/2, selmon->wy + selmon->wh/2); + return; + } + + if (!getrootptr(&x, &y) || + (x > c->x - c->bw && + y > c->y - c->bw && + x < c->x + c->w + c->bw*2 && + y < c->y + c->h + c->bw*2) || + (y > c->mon->by && y < c->mon->by + bh) || + (c->mon->topbar && !y)) + return; + + XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2); +} Client * wintoclient(Window w) diff --git a/dwm.o b/dwm.o index c4808d4b9c7cd6d17336185259b5b81e51cc44c5..726cab79da1e7aee982961c69055d93a6294d68e 100644 GIT binary patch delta 21545 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 diff --git a/util.o b/util.o index 4607dbd27ccff1daf63334f1a4c614aad4f343e1..5dee2d71351881ac743ab3aad98bf048e9418476 100644 GIT binary patch delta 440 zcmca1ctLQ2hIjxg0~|PjSq=<*47?ld4H!_@P?TSg zT2xXwxq~%e@&!iL$v0Rd1ZOZq4C8?6=HBec7S6~T2^3|YJeOUX(O_~Rlj!7g>|BzC zKrxUikOjzK!Q_qX>bf~VA&^%ckfng^1t38nFn~}D+(4RhGAoC+=m)5k0Z^I;D8n+@ Xl|!4+VR9jdJ=X=O&T59qzgXn}{SQ|1 delta 384 zcmca0ctdc4hWHFt1~_m4vm6+B8F)6@8!}E_z&K;F0uvh}^W=|=qRh+;EKr&iO0$D# zR%Qkc28PLn?4pzHn1sOU**4oVr7}u#1C9Ih9|BfFEnxxDyp#7bi=)UMLXzd1{1zz7 zkEHiLlB~dFSr$~;uSl|jlYN1*!bp1A86nb4K#F5>EsHoK*W{@zQzzT9`c0m|8X@?D z86wXCRmZjYCu=w(W8CD4?BbjSP{9D8@8l;3u(M3Q!YU%l01Yt%h)xDBu+e|nwM7p= f)jxpJpa9^SY|Ej|xL|T7hdrkORA