sowm

An itsy bitsy floating window manager (220~ sloc!).
git clone git://mfeller.io/sowm.git
Log | Files | Refs | README | LICENSE

commit 85ee7ec48e9309a0dce2db3d5c2e23702815b7b2
parent d9b0c72fc964a8b799387747c00f2fbcedf25313
Author: dylan <dylan.araps@gmail.com>
Date:   Mon, 13 Jan 2020 06:05:15 +0000

Merge pull request #41 from SeungheonOh/master

New Patch: 2bswm style
Diffstat:
Apatches/sowm-2bswm-style.patch | 96+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 96 insertions(+), 0 deletions(-)

diff --git a/patches/sowm-2bswm-style.patch b/patches/sowm-2bswm-style.patch @@ -0,0 +1,96 @@ +diff --git a/config.def.h b/config.def.h +index cae2009..9ad7175 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -26,6 +26,26 @@ static struct key keys[] = { + {MOD, XK_p, run, {.com = scrot}}, + {MOD, XK_Return, run, {.com = term}}, + ++ {MOD, XK_h, move, {.com=(char*[]){"move", "left"}, .i=10}}, ++ {MOD, XK_j, move, {.com=(char*[]){"move", "down"}, .i=10}}, ++ {MOD, XK_k, move, {.com=(char*[]){"move", "up"}, .i=10}}, ++ {MOD, XK_l, move, {.com=(char*[]){"move", "right"}, .i=10}}, ++ {MOD|ShiftMask, XK_h, move, {.com=(char*[]){"resize", "left"}, .i=10}}, ++ {MOD|ShiftMask, XK_j, move, {.com=(char*[]){"resize", "down"}, .i=10}}, ++ {MOD|ShiftMask, XK_k, move, {.com=(char*[]){"resize", "up"}, .i=10}}, ++ {MOD|ShiftMask, XK_l, move, {.com=(char*[]){"resize", "right"}, .i=10}}, ++ ++ /* ++ {MOD, XK_h, move_left, {.com = {"move"},.i=10}}, ++ {MOD, XK_j, move_down, {.com = {"move"},.i=10}}, ++ {MOD, XK_k, move_up, {.com = {"move"},.i=10}}, ++ {MOD, XK_l, move_right, {.com = {"move"},.i=10}}, ++ {MOD|ShiftMask, XK_h, resize_left, {.com = {"resize"},.i=10}}, ++ {MOD|ShiftMask, XK_j, resize_down, {.com = {"resize"},.i=10}}, ++ {MOD|ShiftMask, XK_k, resize_up, {.com = {"resize"},.i=10}}, ++ {MOD|ShiftMask, XK_l, resize_right, {.com = {"resize"},.i=10}}, ++ */ ++ + {0, XF86XK_AudioLowerVolume, run, {.com = voldown}}, + {0, XF86XK_AudioRaiseVolume, run, {.com = volup}}, + {0, XF86XK_AudioMute, run, {.com = volmute}}, +diff --git a/sowm.c b/sowm.c +index 48222c6..00e2e80 100644 +--- a/sowm.c ++++ b/sowm.c +@@ -7,8 +7,9 @@ + #include <stdlib.h> + #include <signal.h> + #include <unistd.h> ++#include <stdio.h> + +-typedef union { ++typedef struct { + const char** com; + const int i; + const Window w; +@@ -46,6 +47,9 @@ static void win_prev(); + static void win_next(); + static void win_to_ws(const Arg arg); + static void ws_go(const Arg arg); ++static void apply(int x, int y, int w, int h); ++static void move(const Arg arg); ++ + static int xerror() { return 0;} + + static client *list = {0}, *ws_list[10] = {0}, *cur; +@@ -77,6 +81,31 @@ static void (*events[LASTEvent])(XEvent *e) = { + XGetGeometry(d, W, &(Window){0}, gx, gy, gw, gh, \ + &(unsigned int){0}, &(unsigned int){0}) + ++void apply(int x,int y,int w,int h) { ++ win_size(cur->w, &wx, &wy, &ww, &wh); ++ XMoveResizeWindow(d, cur->w, ++ wx + x, ++ wy + y, ++ ww + w, ++ wh + h); ++ win_size(cur->w, &wx, &wy, &ww, &wh); ++} ++ ++void move(const Arg arg) { ++ if(arg.com[1]=="left") { ++ apply((arg.com[0]=="resize")?arg.i:-arg.i, 0, (arg.com[0]=="resize")?-arg.i:0, 0); ++ } ++ else if(arg.com[1]=="right"){ ++ apply((arg.com[0]=="resize")?-arg.i:arg.i, 0, (arg.com[0]=="resize")?arg.i:0, 0); ++ } ++ else if(arg.com[1]=="up"){ ++ apply(0, (arg.com[0]=="resize")?arg.i:-arg.i, 0, (arg.com[0]=="resize")?-arg.i:0); ++ } ++ else if(arg.com[1]=="down"){ ++ apply(0, (arg.com[0]=="resize")?-arg.i:arg.i, 0, (arg.com[0]=="resize")?arg.i:0); ++ } ++} ++ + void win_focus(client *c) { + cur = c; + XSetInputFocus(d, cur->w, RevertToParent, CurrentTime); +@@ -130,6 +159,7 @@ void button_press(XEvent *e) { + } + + void button_release() { ++ win_size(cur->w, &wx, &wy, &ww, &wh); + mouse.subwindow = 0; + } +