mirror of
https://github.com/dylanaraps/sowm.git
synced 2025-05-19 09:30:24 -07:00
update tj's patch
This commit is contained in:
parent
e4965417f7
commit
a5853ab69a
134
patches/sowm-almost-tags-1.0.diff
Normal file
134
patches/sowm-almost-tags-1.0.diff
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
diff -up a/config.def.h b/config.def.h
|
||||||
|
--- a/config.def.h 2019-10-28 23:55:17.000000000 +0200
|
||||||
|
+++ b/config.def.h 2019-11-09 22:30:45.057057111 +0200
|
||||||
|
@@ -32,16 +32,29 @@ static struct key keys[] = {
|
||||||
|
|
||||||
|
{MOD, XK_1, ws_go, {.i = 1}},
|
||||||
|
{MOD|ShiftMask, XK_1, win_to_ws, {.i = 1}},
|
||||||
|
+ {MOD|ControlMask,XK_1,ws_toggle, {.i = 1}},
|
||||||
|
+
|
||||||
|
{MOD, XK_2, ws_go, {.i = 2}},
|
||||||
|
{MOD|ShiftMask, XK_2, win_to_ws, {.i = 2}},
|
||||||
|
+ {MOD|ControlMask,XK_2,ws_toggle, {.i = 2}},
|
||||||
|
+
|
||||||
|
{MOD, XK_3, ws_go, {.i = 3}},
|
||||||
|
{MOD|ShiftMask, XK_3, win_to_ws, {.i = 3}},
|
||||||
|
+ {MOD|ControlMask,XK_3,ws_toggle, {.i = 3}},
|
||||||
|
+
|
||||||
|
{MOD, XK_4, ws_go, {.i = 4}},
|
||||||
|
{MOD|ShiftMask, XK_4, win_to_ws, {.i = 4}},
|
||||||
|
+ {MOD|ControlMask,XK_4,ws_toggle, {.i = 4}},
|
||||||
|
+
|
||||||
|
{MOD, XK_5, ws_go, {.i = 5}},
|
||||||
|
{MOD|ShiftMask, XK_5, win_to_ws, {.i = 5}},
|
||||||
|
+ {MOD|ControlMask,XK_5,ws_toggle, {.i = 5}},
|
||||||
|
+
|
||||||
|
{MOD, XK_6, ws_go, {.i = 6}},
|
||||||
|
{MOD|ShiftMask, XK_6, win_to_ws, {.i = 6}},
|
||||||
|
+ {MOD|ControlMask,XK_6,ws_toggle, {.i = 6}},
|
||||||
|
+
|
||||||
|
+ {MOD, XK_0, ws_toggle_all, {.i = 0}},
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
Only in b/: config.h
|
||||||
|
Common subdirectories: a/patches and b/patches
|
||||||
|
Only in b/: sowm
|
||||||
|
diff -up a/sowm.c b/sowm.c
|
||||||
|
--- a/sowm.c 2019-10-28 23:55:17.000000000 +0200
|
||||||
|
+++ b/sowm.c 2019-11-09 22:34:10.660379162 +0200
|
||||||
|
@@ -45,11 +45,14 @@ static void win_kill();
|
||||||
|
static void win_next();
|
||||||
|
static void win_to_ws(const Arg arg);
|
||||||
|
static void ws_go(const Arg arg);
|
||||||
|
+static void ws_toggle(const Arg arg);
|
||||||
|
+static void ws_toggle_all(const Arg arg);
|
||||||
|
static int xerror() { return 0;}
|
||||||
|
|
||||||
|
static client *list = {0}, *ws_list[10] = {0}, *cur;
|
||||||
|
static int ws = 1, sw, sh, wx, wy;
|
||||||
|
static unsigned int ww, wh;
|
||||||
|
+static int is_ws_enabled[10] = {0}; /* +1 the amount of ws */
|
||||||
|
|
||||||
|
static Display *d;
|
||||||
|
static XButtonEvent mouse;
|
||||||
|
@@ -212,24 +215,69 @@ void win_next() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void ws_go(const Arg arg) {
|
||||||
|
- int tmp = ws;
|
||||||
|
-
|
||||||
|
- if (arg.i == ws) return;
|
||||||
|
+ int i;
|
||||||
|
|
||||||
|
ws_save(ws);
|
||||||
|
- ws_sel(arg.i);
|
||||||
|
|
||||||
|
- for win XMapWindow(d, c->w);
|
||||||
|
-
|
||||||
|
- ws_sel(tmp);
|
||||||
|
-
|
||||||
|
- for win XUnmapWindow(d, c->w);
|
||||||
|
+ for (i = 1; i <= 9; i++) {
|
||||||
|
+ if (i != arg.i) {
|
||||||
|
+ ws_sel(i);
|
||||||
|
+ if (list) for win XUnmapWindow(d, c->w);
|
||||||
|
+ is_ws_enabled[i] = 0;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
ws_sel(arg.i);
|
||||||
|
|
||||||
|
+ if (list) for win XMapWindow(d, c->w);
|
||||||
|
if (list) win_focus(list); else cur = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void
|
||||||
|
+ws_toggle(const Arg arg)
|
||||||
|
+{
|
||||||
|
+ int i, tmp = -1;
|
||||||
|
+
|
||||||
|
+ if (arg.i == ws) {
|
||||||
|
+ for (i = 1; i <= 9; i++) {
|
||||||
|
+ if (is_ws_enabled[i] && i != ws) {
|
||||||
|
+ tmp = i;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (tmp > 0)
|
||||||
|
+ ws_sel(tmp);
|
||||||
|
+ else
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ tmp = ws;
|
||||||
|
+
|
||||||
|
+ ws_sel(arg.i);
|
||||||
|
+ if (is_ws_enabled[arg.i]) {
|
||||||
|
+ is_ws_enabled[arg.i] = 0;
|
||||||
|
+ if (list) for win XUnmapWindow(d, c->w);
|
||||||
|
+ } else {
|
||||||
|
+ is_ws_enabled[arg.i] = 1;
|
||||||
|
+ if (list) for win XMapWindow(d, c->w);
|
||||||
|
+ }
|
||||||
|
+ ws_sel(tmp);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+ws_toggle_all(const Arg arg)
|
||||||
|
+{
|
||||||
|
+ int i, tmp = ws;
|
||||||
|
+ for (i = 1; i <= 6; i++) {
|
||||||
|
+ ws_sel(i);
|
||||||
|
+ if (list) for win XMapWindow(d, c->w);
|
||||||
|
+ is_ws_enabled[i] = 1;
|
||||||
|
+ }
|
||||||
|
+ ws_sel(tmp);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
void configure_request(XEvent *e) {
|
||||||
|
XConfigureRequestEvent *ev = &e->xconfigurerequest;
|
||||||
|
|
||||||
|
Only in b/: sowm.o
|
Loading…
x
Reference in New Issue
Block a user