commit 907f12f

hovercats  ·  2026-03-10 12:55:28 +0000 UTC
parent fa3ac60
wsxwm: add
6 files changed,  +130, -0
+1, -0
1@@ -120,6 +120,7 @@ subgen 'wayland-protocols'
2 subgen 'webdump'
3 subgen 'wld'
4 subgen 'wpa_supplicant'
5+subgen 'wsxwm'
6 subgen 'xkeyboard-config'
7 subgen 'xxhash'
8 subgen 'xz'
+58, -0
 1@@ -0,0 +1,58 @@
 2+#ifndef CONFIG_H
 3+#define CONFIG_H
 4+#include <xkbcommon/xkbcommon-keysyms.h>
 5+#include "types.h"
 6+#include "wsxwm.h"
 7+static const struct config cfg = {
 8+	.motion_throttle_hz = 85,
 9+	.border_col_active = 0xdeadca7,
10+	.border_col_normal = 0xff444444,
11+	.border_width = 3,
12+	.master_width = 60,  /* % of screen */
13+	.gaps = 30,
14+};
15+
16+static const char* termcmd[] = { "st", NULL };
17+static const char* menucmd[] = { "dmenu_run", NULL };
18+static struct bind binds[] = {
19+	/* keyboard */
20+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_Return, { .v = termcmd }, spawn },
21+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_p,      { .v = menucmd }, spawn },
22+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_e,      { .v = NULL },    quit },
23+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_k,      { .v = NULL },    focus_next },
24+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_j,      { .v = NULL },    focus_prev },
25+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_q,      { .v = NULL },    kill_sel },
26+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_space,  { .v = NULL },    toggle_float },
27+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_space,  { .v = NULL },    toggle_float_global },
28+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_l,      { .i = 50 },      master_resize },
29+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_h,      { .i = -50 },     master_resize },
30+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_k,      { .v = NULL },    master_next },
31+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_j,      { .v = NULL },    master_prev },
32+
33+	/* mouse */
34+	{ SWC_BINDING_BUTTON, MOD1,       BTN_LEFT,       { .v = NULL },    mouse_move },
35+	{ SWC_BINDING_BUTTON, MOD1,       BTN_RIGHT,      { .v = NULL },    mouse_resize },
36+
37+	/* workspace */
38+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_1,      { .u = 1 },       workspace_goto },
39+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_2,      { .u = 2 },       workspace_goto },
40+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_3,      { .u = 3 },       workspace_goto },
41+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_4,      { .u = 4 },       workspace_goto },
42+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_5,      { .u = 5 },       workspace_goto },
43+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_6,      { .u = 6 },       workspace_goto },
44+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_7,      { .u = 7 },       workspace_goto },
45+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_8,      { .u = 8 },       workspace_goto },
46+	{ SWC_BINDING_KEY,    MOD1,       XKB_KEY_9,      { .u = 9 },       workspace_goto },
47+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_1,      { .u = 1 },       workspace_moveto },
48+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_2,      { .u = 2 },       workspace_moveto },
49+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_3,      { .u = 3 },       workspace_moveto },
50+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_4,      { .u = 4 },       workspace_moveto },
51+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_5,      { .u = 5 },       workspace_moveto },
52+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_6,      { .u = 6 },       workspace_moveto },
53+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_7,      { .u = 7 },       workspace_moveto },
54+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_8,      { .u = 8 },       workspace_moveto },
55+	{ SWC_BINDING_KEY,    MOD1|SHFT,  XKB_KEY_9,      { .u = 9 },       workspace_moveto },
56+};
57+
58+#endif /* CONFIG_H */
59+
+44, -0
 1@@ -0,0 +1,44 @@
 2+cflags{
 3+	'-std=c99',
 4+	'-D _POSIX_C_SOURCE=200809L',
 5+	'-I $dir',
 6+	'-I $srcdir/source/include',
 7+	'-isystem $builddir/pkg/fontconfig/include',
 8+	'-isystem $builddir/pkg/libdrm/include',
 9+	'-isystem $builddir/pkg/libinput/include',
10+	'-isystem $builddir/pkg/libxkbcommon/include',
11+	'-isystem $builddir/pkg/swc/include',
12+	'-isystem $builddir/pkg/wld/include',
13+	'-isystem $builddir/pkg/pixman/include',
14+	'-isystem $builddir/pkg/wayland-protocols/include',
15+	'-isystem $builddir/pkg/wayland/include',
16+}
17+
18+pkg.deps = {
19+	'pkg/fontconfig/headers',
20+	'pkg/libdrm/headers',
21+	'pkg/libinput/headers',
22+	'pkg/libxkbcommon/headers',
23+	'pkg/swc/headers',
24+	'pkg/wld/headers',
25+	'pkg/pixman/headers',
26+	'pkg/wayland/headers',
27+	'pkg/wayland-protocols/headers',
28+}
29+
30+exe('wsxwm', {
31+	'source/wsxwm.c',
32+	'source/util.c',
33+	'$builddir/pkg/swc/libswc.a',
34+	'$builddir/pkg/wld/libwld.a',
35+	'$builddir/pkg/pixman/libpixman.a',
36+	'$builddir/pkg/libinput/libinput.a.d',
37+	'$builddir/pkg/libxkbcommon/libxkbcommon.a',
38+	'$builddir/pkg/libdrm/libdrm.a',
39+	'$builddir/pkg/wayland/libwayland-server.a.d',
40+	'$builddir/pkg/fontconfig/libfontconfig.a.d',
41+})
42+
43+file('bin/wsxwm', '755', '$outdir/wsxwm')
44+
45+fetch 'git'
+25, -0
 1@@ -0,0 +1,25 @@
 2+From ed2c429674082e2b6a28cf6f675383c937fd1228 Mon Sep 17 00:00:00 2001
 3+From: hovercats <hovercatswithlasereyes@protonmail.com>
 4+Date: Tue, 10 Mar 2026 13:50:04 +0100
 5+Subject: [PATCH] use anglebrackets so we can override config.h
 6+
 7+---
 8+ source/wsxwm.c | 2 +-
 9+ 1 file changed, 1 insertion(+), 1 deletion(-)
10+
11+diff --git a/source/wsxwm.c b/source/wsxwm.c
12+index 60f45c2..4fac116 100644
13+--- a/source/wsxwm.c
14++++ b/source/wsxwm.c
15+@@ -8,7 +8,7 @@
16+ #include <wayland-util.h>
17+ #include <xkbcommon/xkbcommon-keysyms.h>
18+ 
19+-#include "config.h"
20++#include <config.h>
21+ #include "types.h"
22+ #include "util.h"
23+ #include "wsxwm.h"
24+-- 
25+2.49.0
26+
+1, -0
1@@ -0,0 +1 @@
2+Subproject commit f5f3c1f53b77d41ab0b0aefabb64e86881b5705d
+1, -0
1@@ -0,0 +1 @@
2+f5f3c1f r1