From d96dee00d5f1a07b4173adf25ee4f23243238582 Mon Sep 17 00:00:00 2001 From: bjarke-cachy-btw Date: Wed, 17 Jun 2026 11:22:57 +0200 Subject: [PATCH] move windows with vim bindings --- config.def.h.orig | 4 ++ config.def.h.rej | 34 ++++++---------- config.h | 10 +++-- dwm | Bin 95728 -> 95760 bytes dwm.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++ dwm.c.orig | 67 +++++++++++++++++++++++++++++++ dwm.o | Bin 87944 -> 89048 bytes 7 files changed, 187 insertions(+), 26 deletions(-) diff --git a/config.def.h.orig b/config.def.h.orig index bc4749f..7d612e6 100644 --- a/config.def.h.orig +++ b/config.def.h.orig @@ -109,6 +109,10 @@ static const Key keys[] = { { MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY, XK_Left, focusdir, {.i = 0 } }, // left + { MODKEY, XK_Right, focusdir, {.i = 1 } }, // right + { MODKEY, XK_Up, focusdir, {.i = 2 } }, // up + { MODKEY, XK_Down, focusdir, {.i = 3 } }, // down { MODKEY, XK_i, incnmaster, {.i = +1 } }, { MODKEY, XK_d, incnmaster, {.i = -1 } }, { MODKEY, XK_h, setmfact, {.f = -0.05} }, diff --git a/config.def.h.rej b/config.def.h.rej index 415fe60..dd1a041 100644 --- a/config.def.h.rej +++ b/config.def.h.rej @@ -1,25 +1,13 @@ --- config.def.h +++ config.def.h -@@ -3,6 +3,7 @@ - /* appearance */ - static const unsigned int borderpx = 1; /* border pixel of windows */ - static const unsigned int snap = 32; /* snap pixel */ -+static const int swallowfloating = 0; /* 1 means swallow floating windows by default */ - static const int showbar = 1; /* 0 means no bar */ - static const int topbar = 1; /* 0 means bottom bar */ - static const char *fonts[] = { "monospace:size=10" }; -@@ -26,9 +27,11 @@ static const Rule rules[] = { - * WM_CLASS(STRING) = instance, class - * WM_NAME(STRING) = title - */ -- /* class instance title tags mask isfloating monitor */ -- { "Gimp", NULL, NULL, 0, 1, -1 }, -- { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, -+ /* 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 }, -+ { "St", NULL, NULL, 0, 0, 1, 0, -1 }, -+ { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ - }; - - /* layout(s) */ +@@ -67,6 +67,10 @@ static const Key keys[] = { + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, ++ { MODKEY|ControlMask, XK_Left, placedir, {.i = 0 } }, // left ++ { MODKEY|ControlMask, XK_Right, placedir, {.i = 1 } }, // right ++ { MODKEY|ControlMask, XK_Up, placedir, {.i = 2 } }, // up ++ { MODKEY|ControlMask, XK_Down, placedir, {.i = 3 } }, // down + { MODKEY, XK_i, incnmaster, {.i = +1 } }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, diff --git a/config.h b/config.h index f6728fc..511fb5f 100644 --- a/config.h +++ b/config.h @@ -123,10 +123,14 @@ static const Key keys[] = { { MODKEY, XK_i, incnmaster, {.i = +1 } }, { MODKEY, XK_p, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, focusdir, {.i = 0} }, - { MODKEY, XK_k, focusdir, {.i = 1 } }, - { MODKEY, XK_l, focusdir, {.i = 2 } }, + { MODKEY, XK_h, focusdir, {.i = 0 } }, + { MODKEY, XK_l, focusdir, {.i = 1 } }, + { MODKEY, XK_k, focusdir, {.i = 2 } }, { MODKEY, XK_j, focusdir, {.i = 3 } }, + { MODKEY|ShiftMask, XK_h, placedir, {.i = 0 } }, + { MODKEY|ShiftMask, XK_l, placedir, {.i = 1 } }, + { MODKEY|ShiftMask, XK_k, placedir, {.i = 2 } }, + { MODKEY|ShiftMask, XK_j, placedir, {.i = 3 } }, { MODKEY|ShiftMask, XK_h, setcfact, {.f = +0.25} }, { MODKEY|ShiftMask, XK_l, setcfact, {.f = -0.25} }, diff --git a/dwm b/dwm index 0149747977dfcb87e9a4746fc217946199bf36fa..e43878b7b4eb143119aac7bb433f7625d735f12f 100755 GIT binary patch delta 20144 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 QxIB`@i*IScIdaqg1NY8fumAu6 delta 19388 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, *f = NULL, *c, *next, *fprior, *sprior; + + if (!s || s->isfloating) + return; + + unsigned int score = -1; + unsigned int client_score; + int dist; + int dirweight = 20; + + next = s->next; + if (!next) + next = s->mon->clients; + for (c = next; c != s; c = next) { + + next = c->next; + if (!next) + next = s->mon->clients; + + if (!ISVISIBLE(c)) // || HIDDEN(c) + continue; + + switch (arg->i) { + case 0: // left + dist = s->x - c->x - c->w; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->ww)) + + abs(s->y - c->y); + break; + case 1: // right + dist = c->x - s->x - s->w; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->ww)) + + abs(c->y - s->y); + break; + case 2: // up + dist = s->y - c->y - c->h; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->wh)) + + abs(s->x - c->x); + break; + default: + case 3: // down + dist = c->y - s->y - s->h; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->wh)) + + abs(c->x - s->x); + break; + } + + if (((arg->i == 0 || arg->i == 2) && client_score <= score) || client_score < score) { + score = client_score; + f = c; + } + } + + if (f && f != s) { + for (fprior = f->mon->clients; fprior && fprior->next != f; fprior = fprior->next); + for (sprior = s->mon->clients; sprior && sprior->next != s; sprior = sprior->next); + + if (s == fprior) { + next = f->next; + if (sprior) + sprior->next = f; + else + f->mon->clients = f; + f->next = s; + s->next = next; + } else if (f == sprior) { + next = s->next; + if (fprior) + fprior->next = s; + else + s->mon->clients = s; + s->next = f; + f->next = next; + } else { // clients are not adjacent to each other + next = f->next; + f->next = s->next; + s->next = next; + if (fprior) + fprior->next = s; + else + s->mon->clients = s; + if (sprior) + sprior->next = f; + else + f->mon->clients = f; + } + + arrange(f->mon); + } +} + void pop(Client *c) { diff --git a/dwm.c.orig b/dwm.c.orig index bbb0e1f..11f1677 100644 --- a/dwm.c.orig +++ b/dwm.c.orig @@ -206,6 +206,7 @@ static void drawbars(void); static void enternotify(XEvent *e); static void expose(XEvent *e); static void focus(Client *c); +static void focusdir(const Arg *arg); static void focusin(XEvent *e); static void focusmon(const Arg *arg); static void focusstack(const Arg *arg); @@ -1051,6 +1052,72 @@ focus(Client *c) drawbars(); } +void +focusdir(const Arg *arg) +{ + Client *s = selmon->sel, *f = NULL, *c, *next; + + if (!s) + return; + + unsigned int score = -1; + unsigned int client_score; + int dist; + int dirweight = 20; + int isfloating = s->isfloating; + + next = s->next; + if (!next) + next = s->mon->clients; + for (c = next; c != s; c = next) { + + next = c->next; + if (!next) + next = s->mon->clients; + + if (!ISVISIBLE(c) || c->isfloating != isfloating) // || HIDDEN(c) + continue; + + switch (arg->i) { + case 0: // left + dist = s->x - c->x - c->w; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->ww)) + + abs(s->y - c->y); + break; + case 1: // right + dist = c->x - s->x - s->w; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->ww)) + + abs(c->y - s->y); + break; + case 2: // up + dist = s->y - c->y - c->h; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->wh)) + + abs(s->x - c->x); + break; + default: + case 3: // down + dist = c->y - s->y - s->h; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->wh)) + + abs(c->x - s->x); + break; + } + + if (((arg->i == 0 || arg->i == 2) && client_score <= score) || client_score < score) { + score = client_score; + f = c; + } + } + + if (f && f != s) { + focus(f); + restack(f->mon); + } +} + /* there are some broken focus acquiring clients needing extra handling */ void focusin(XEvent *e) diff --git a/dwm.o b/dwm.o index a6076d9e9b8d41dbd29f2f518319ceac3737c0b9..227e964e4da4b902a48b98babc1ba112c3be323e 100644 GIT binary patch delta 25286 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 K#e9g~`2PVyIIj5s delta 24031 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