sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit fa0a27c1c7d6bb44aa27d2ba9a36420e58dbd7ff
parent e786a5236738e30a95031c4303b86cc1d83c9694
Author: Randoragon <randoragongamedev@gmail.com>
Date:   Tue, 30 Jun 2020 12:15:13 +0200

Add movethrow dwm patch

Diffstat:
Adwm.suckless.org/patches/movethrow/dwm-movethrow-6.2.diff | 91+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adwm.suckless.org/patches/movethrow/index.md | 24++++++++++++++++++++++++
2 files changed, 115 insertions(+), 0 deletions(-)

diff --git a/dwm.suckless.org/patches/movethrow/dwm-movethrow-6.2.diff b/dwm.suckless.org/patches/movethrow/dwm-movethrow-6.2.diff @@ -0,0 +1,91 @@ +From cb4947f8dfd02a5103c9e28d60a428bf81088796 Mon Sep 17 00:00:00 2001 +From: Randoragon <randoragongamedev@gmail.com> +Date: Tue, 30 Jun 2020 11:13:55 +0200 +Subject: [PATCH] windowthrow patch + +This patch is heavily inspired by the moveplace patch. It allows you to +"throw" windows in 4 directions, which makes them floating (if not +floating already) and then moves them in the chosen direction until they +hit the border of the screen. Unlike moveplace, the windows get to keep +their original size. Additionally, there's a "middle direction" defined +which simply centers a window on the screen. +--- + config.def.h | 4 ++++ + dwm.c | 38 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 42 insertions(+) + +diff --git a/config.def.h b/config.def.h +index 1c0b587..e873d28 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -84,6 +84,11 @@ static Key keys[] = { + { MODKEY, XK_period, focusmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, ++ { MODKEY|ShiftMask, XK_Up, movethrow, {.ui = WIN_N }}, ++ { MODKEY|ShiftMask, XK_Down, movethrow, {.ui = WIN_S }}, ++ { MODKEY|ShiftMask, XK_Left, movethrow, {.ui = WIN_W }}, ++ { MODKEY|ShiftMask, XK_Right, movethrow, {.ui = WIN_E }}, ++ { MODKEY|ShiftMask, XK_m, movethrow, {.ui = WIN_C }}, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) +diff --git a/dwm.c b/dwm.c +index 4465af1..df1eb05 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -66,6 +66,7 @@ enum { NetSupported, NetWMName, NetWMState, NetWMCheck, + enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */ + enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, + ClkClientWin, ClkRootWin, ClkLast }; /* clicks */ ++enum { DIR_N, DIR_W, DIR_C, DIR_E, DIR_S, }; /* coordinates for movethrow */ + + typedef union { + int i; +@@ -1192,6 +1193,43 @@ movemouse(const Arg *arg) + } + } + ++void ++movethrow(const Arg *arg) ++{ ++ Client *c; ++ int nh, nw, nx, ny; ++ c = selmon->sel; ++ if (selmon->lt[selmon->sellt]->arrange && !c->isfloating) ++ togglefloating(NULL); ++ nw = c->w; ++ nh = c->h; ++ switch(arg->ui) { ++ case DIR_N: ++ nx = c->x; ++ ny = selmon->wy; ++ break; ++ case DIR_E: ++ nx = selmon->wx + selmon->ww - c->w - c->bw*2; ++ ny = c->y; ++ break; ++ case DIR_S: ++ nx = c->x; ++ ny = selmon->wy + selmon->wh - c->h - c->bw*2; ++ break; ++ case DIR_W: ++ nx = selmon->wx; ++ ny = c->y; ++ break; ++ case DIR_C: ++ nx = selmon->wx + ((selmon->ww - c->w - c->bw*2) / 2); ++ ny = selmon->wy + ((selmon->wh - c->h - c->bw*2) / 2); ++ break; ++ default: ++ return; ++ } ++ resize(c, nx, ny, nw, nh, True); ++} ++ + Client * + nexttiled(Client *c) + { +-- +2.27.0 + diff --git a/dwm.suckless.org/patches/movethrow/index.md b/dwm.suckless.org/patches/movethrow/index.md @@ -0,0 +1,24 @@ +movethrow +========= + +Description +----------- +This patch is very similar to [moveplace](https://dwm.suckless.org/patches/moveplace/), +but with slightly altered functionality. + +It allows you to "throw" windows in 4 directions. Thrown windows will be moved along +just the X or Y axis as far as possible without them exceeding the screen borders. +Unlike in [moveplace](https://dwm.suckless.org/patches/moveplace/), they get to keep their +original size. There's also an option to center a window. + +This patch modifies the `config.def.h` file, be sure to copy your preferred bindings +to `config.h`. + +Download +-------- +* [dwm-movethrow-6.2.diff](dwm-movethrow-6.2.diff) + +Authors +------ +* Randoragon - `<`randoragongamedev@gmail.com`>` +* cd (original moveplace)