commit 0ed9ad1

0uppy  ·  2026-06-24 14:02:42 +0000 UTC
parent ccf3ada
style - slgro.c and lua-config.c formatting is now more consistent
2 files changed,  +256, -244
+10, -6
 1@@ -17,7 +17,8 @@ size_t nbinds = 0;
 2 static char *spawn_args[128][2];
 3 static size_t nspawn = 0;
 4 
 5-static uint32_t parse_mods(const char *s) {
 6+static uint32_t parse_mods(const char *s)
 7+{
 8     uint32_t mods = 0;
 9     char buf[64];
10     strncpy(buf, s, sizeof(buf) - 1);
11@@ -32,7 +33,8 @@ static uint32_t parse_mods(const char *s) {
12     return mods;
13 }
14 
15-static uint32_t parse_key(const char *s) {
16+static uint32_t parse_key(const char *s)
17+{
18     if (s[1] == '\0') {
19         if (s[0] >= 'a' && s[0] <= 'z') return XKB_KEY_a + (s[0] - 'a');
20         if (s[0] >= '1' && s[0] <= '9') return XKB_KEY_1 + (s[0] - '1');
21@@ -49,7 +51,8 @@ static uint32_t parse_key(const char *s) {
22     return XKB_KEY_VoidSymbol;
23 }
24 
25-static void resolve_action(const char *action, const char *arg_str, int arg_int, struct bind *b) {
26+static void resolve_action(const char *action, const char *arg_str, int arg_int, struct bind *b)
27+{
28     b->type = SWC_BINDING_KEY;
29     if (!strcmp(action, "spawn")) {
30         spawn_args[nspawn][0] = strdup(arg_str);
31@@ -73,7 +76,8 @@ static void resolve_action(const char *action, const char *arg_str, int arg_int,
32     else fprintf(stderr, "slgro: sorry, unknown action >.< '%s'\n", action);
33 }
34 
35-void load_config(void) {
36+void load_config(void)
37+{
38     const char *home = getenv("HOME");
39     char path[256];
40     snprintf(path, sizeof(path), "%s/.config/slgro/config.lua", home ? home : ".");
41@@ -82,7 +86,7 @@ void load_config(void) {
42     cfg.border_col_active    = 0xffffffff;
43     cfg.border_col_normal    = 0xffffffff;
44     cfg.border_width         = 2;
45-    
46+
47     /* defaults for le slgro v1.3 titlebar update, leaving this here currently for testing */
48     cfg.decor.color          = 0xff444444;
49     cfg.decor.top            = 2;
50@@ -217,4 +221,4 @@ void load_config(void) {
51     }
52 
53     lua_close(L); /* man i love lua :3 */
54-}
55+}
+246, -238
  1@@ -33,41 +33,41 @@ static void apply_decor(struct client* c, bool active);
  2 static const char* decorstring(struct client* c, char* buf, size_t size);
  3 
  4 #define WHEN_PRESSED(state) \
  5-	do { if ((state) != WL_KEYBOARD_KEY_STATE_PRESSED) return; } while (0)
  6+    do { if ((state) != WL_KEYBOARD_KEY_STATE_PRESSED) return; } while (0)
  7 
  8 #define BIND_EVENT(time, value, state) \
  9-	(void)(time); (void)(value); \
 10-	WHEN_PRESSED(state);
 11+    (void)(time); (void)(value); \
 12+    WHEN_PRESSED(state);
 13 
 14 #define BIND_ACTION(data, time, value, state) \
 15-	BIND_EVENT(time, value, state); \
 16-	if (!wm.sel_client) return; \
 17-	union arg* a = (data)
 18+    BIND_EVENT(time, value, state); \
 19+    if (!wm.sel_client) return; \
 20+    union arg* a = (data)
 21 
 22 /* read geometry from client window; returns true if successful */
 23 static bool get_geometry(struct client *c, struct swc_rectangle *geom)
 24 {
 25-	if (!c || !c->win)
 26-		return false;
 27+    if (!c || !c->win)
 28+        return false;
 29 
 30-	return swc_window_get_geometry(c->win, geom);
 31+    return swc_window_get_geometry(c->win, geom);
 32 }
 33 
 34 /* adjust geometry fields and write back */
 35 static void adjust_geom(struct client *c, int dx, int dy, int dw, int dh)
 36 {
 37-	struct swc_rectangle geom;
 38-	if (!get_geometry(c, &geom)) return;
 39+    struct swc_rectangle geom;
 40+    if (!get_geometry(c, &geom)) return;
 41 
 42-	geom.x += dx;
 43-	geom.y += dy;
 44+    geom.x += dx;
 45+    geom.y += dy;
 46 
 47-	int new_w = (int)geom.width + dw;
 48-	int new_h = (int)geom.height + dh;
 49-	geom.width = (new_w < 1) ? 1 : (uint32_t)new_w;
 50-	geom.height = (new_h < 1) ? 1 : (uint32_t)new_h;
 51+    int new_w = (int)geom.width + dw;
 52+    int new_h = (int)geom.height + dh;
 53+    geom.width = (new_w < 1) ? 1 : (uint32_t)new_w;
 54+    geom.height = (new_h < 1) ? 1 : (uint32_t)new_h;
 55 
 56-	swc_window_set_geometry(c->win, &geom);
 57+    swc_window_set_geometry(c->win, &geom);
 58 }
 59 
 60 static const char* decorstring(struct client* c, char* buf, size_t size)
 61@@ -123,19 +123,20 @@ static void apply_decor(struct client* c, bool active)
 62 
 63 struct wm wm;
 64 const struct swc_manager manager = {
 65-	.new_screen = new_screen, .new_window = new_window, .new_device = new_device,
 66+    .new_screen = new_screen, .new_window = new_window, .new_device = new_device,
 67 };
 68 struct swc_window_handler window_handler = {
 69-	.destroy = on_win_destroy, .entered = on_win_entered,
 70+    .destroy = on_win_destroy, .entered = on_win_entered,
 71 };
 72 struct swc_screen_handler screen_handler = {
 73-	.destroy = on_screen_destroy,
 74+    .destroy = on_screen_destroy,
 75 };
 76 
 77-static struct client* get_focus_candidate(struct screen* s) {
 78-	struct client* c = first_client(s);
 79-	if (!c && s) c = first_client(NULL);
 80-	return c;
 81+static struct client* get_focus_candidate(struct screen* s)
 82+{
 83+    struct client* c = first_client(s);
 84+    if (!c && s) c = first_client(NULL);
 85+    return c;
 86 }
 87 
 88 static void focus(struct client* c)
 89@@ -155,99 +156,98 @@ static void focus(struct client* c)
 90 
 91 static struct client* first_client(struct screen* s)
 92 {
 93-	struct client* c;
 94+    struct client* c;
 95 
 96-	wl_list_for_each(c, &wm.clients, link) {
 97-		if (is_ws_client(c, s))
 98-			return c;
 99-	}
100+    wl_list_for_each(c, &wm.clients, link) {
101+        if (is_ws_client(c, s))
102+            return c;
103+    }
104 
105-	return NULL;
106+    return NULL;
107 }
108 
109 static bool is_ws_client(const struct client* c, const struct screen* s)
110 {
111-	return c && c->ws == wm.ws && (!s || c->scr == s);
112+    return c && c->ws == wm.ws && (!s || c->scr == s);
113 }
114 
115 static void on_screen_destroy(void* data)
116 {
117-	struct screen* s = data;
118+    struct screen* s = data;
119 
120-	if (!s)
121-		return;
122+    if (!s)
123+        return;
124 
125-	wl_list_remove(&s->link);
126+    wl_list_remove(&s->link);
127 
128-	if (wm.sel_screen == s) {
129-		wm.sel_screen = wl_list_empty(&wm.screens)
130-			? NULL
131-			: wl_container_of(wm.screens.next, wm.sel_screen, link);
132-	}
133+    if (wm.sel_screen == s) {
134+        wm.sel_screen = wl_list_empty(&wm.screens)
135+            ? NULL
136+            : wl_container_of(wm.screens.next, wm.sel_screen, link);
137+    }
138 
139-	free(s);
140+    free(s);
141 }
142 
143 static void on_win_destroy(void* data)
144 {
145-	struct client* c = data;
146-	if (!c) return;
147+    struct client* c = data;
148+    if (!c) return;
149 
150-	if (wm.sel_client == c)
151-		wm.sel_client = NULL;
152+    if (wm.sel_client == c)
153+        wm.sel_client = NULL;
154 
155-	wl_list_remove(&c->link);
156-	free(c);
157+    wl_list_remove(&c->link);
158+    free(c);
159 
160-	focus(get_focus_candidate(wm.sel_screen));
161+    focus(get_focus_candidate(wm.sel_screen));
162 }
163 
164 static void on_win_entered(void* data)
165 {
166+    struct client* c = data;
167+    if (!is_ws_client(c, NULL))
168+        return;
169 
170-	struct client* c = data;
171-	if (!is_ws_client(c, NULL))
172-		return;
173-
174-	focus(c);
175+    focus(c);
176 }
177 
178 static void setup(void)
179 {
180-	/* display */
181-	load_config();
182-	wm.dpy = wl_display_create();
183-	if (!wm.dpy)
184-		die(EXIT_FAILURE, "wl_display_create failed");
185+    /* display */
186+    load_config();
187+    wm.dpy = wl_display_create();
188+    if (!wm.dpy)
189+        die(EXIT_FAILURE, "wl_display_create failed");
190 
191-	/* variables */
192-	wl_list_init(&wm.screens);
193-	wl_list_init(&wm.clients);
194+    /* variables */
195+    wl_list_init(&wm.screens);
196+    wl_list_init(&wm.clients);
197 
198-	wm.sel_client = NULL;
199-	wm.sel_screen = NULL;
200-	wm.ws = 1;
201+    wm.sel_client = NULL;
202+    wm.sel_screen = NULL;
203+    wm.ws = 1;
204 
205-	/* event loop */
206-	wm.ev_loop = wl_display_get_event_loop(wm.dpy);
207-	if (!swc_initialize(wm.dpy, wm.ev_loop, &manager))
208-		die(EXIT_FAILURE, "swc_initialize failed\n");
209+    /* event loop */
210+    wm.ev_loop = wl_display_get_event_loop(wm.dpy);
211+    if (!swc_initialize(wm.dpy, wm.ev_loop, &manager))
212+        die(EXIT_FAILURE, "swc_initialize failed\n");
213 
214-	setup_binds();
215+    setup_binds();
216 
217-	/* display socket */
218-	const char* sock;
219-	sock = wl_display_add_socket_auto(wm.dpy);
220-	if (!sock)
221-		die(EXIT_FAILURE, "wl_display_add_socket_auto failed\n");
222+    /* display socket */
223+    const char* sock;
224+    sock = wl_display_add_socket_auto(wm.dpy);
225+    if (!sock)
226+        die(EXIT_FAILURE, "wl_display_add_socket_auto failed\n");
227 
228-	setenv("WAYLAND_DISPLAY", sock, 1);
229-	_log(stderr, "WAYLAND_DISPLAY=%s\n", sock);
230+    setenv("WAYLAND_DISPLAY", sock, 1);
231+    _log(stderr, "WAYLAND_DISPLAY=%s\n", sock);
232 
233-	/* signals */
234-	signal(SIGINT,  sig_handler);
235-	signal(SIGTERM, sig_handler);
236-	signal(SIGQUIT, sig_handler);
237+    /* signals */
238+    signal(SIGINT,  sig_handler);
239+    signal(SIGTERM, sig_handler);
240+    signal(SIGQUIT, sig_handler);
241 }
242 
243 static void setup_binds(void)
244@@ -260,264 +260,272 @@ static void setup_binds(void)
245 
246 static void sync_window_visibility(void)
247 {
248-	struct client* c;
249+    struct client* c;
250 
251-	wl_list_for_each(c, &wm.clients, link) {
252-		if (c->ws == wm.ws)
253-			swc_window_show(c->win);
254-		else
255-			swc_window_hide(c->win);
256-	}
257+    wl_list_for_each(c, &wm.clients, link) {
258+        if (c->ws == wm.ws)
259+            swc_window_show(c->win);
260+        else
261+            swc_window_hide(c->win);
262+    }
263 }
264 
265 /* focus next/prev helpers */
266 static void focus_walk_direction(bool forward)
267 {
268-	if (wl_list_empty(&wm.clients)) return;
269+    if (wl_list_empty(&wm.clients)) return;
270 
271-	if (!is_ws_client(wm.sel_client, wm.sel_screen)) {
272-		focus(get_focus_candidate(wm.sel_screen));
273-		return;
274-	}
275+    if (!is_ws_client(wm.sel_client, wm.sel_screen)) {
276+        focus(get_focus_candidate(wm.sel_screen));
277+        return;
278+    }
279 
280-	struct wl_list *start =
281-		forward ? wm.sel_client->link.next
282-				: wm.sel_client->link.prev;
283+    struct wl_list *start =
284+        forward ? wm.sel_client->link.next
285+                : wm.sel_client->link.prev;
286 
287-	struct wl_list *it = start;
288-	struct client *c = NULL;
289+    struct wl_list *it = start;
290+    struct client *c = NULL;
291 
292-	do {
293-		if (it == &wm.clients)
294-			it = forward ? wm.clients.next : wm.clients.prev;
295+    do {
296+        if (it == &wm.clients)
297+            it = forward ? wm.clients.next : wm.clients.prev;
298 
299-		if (it == &wm.clients) break;
300+        if (it == &wm.clients) break;
301 
302-		c = wl_container_of(it, c, link);
303-		if (is_ws_client(c, wm.sel_screen)) {
304-			focus(c);
305-			return;
306-		}
307+        c = wl_container_of(it, c, link);
308+        if (is_ws_client(c, wm.sel_screen)) {
309+            focus(c);
310+            return;
311+        }
312 
313-		it = forward ? it->next : it->prev;
314-	} while (it != start);
315+        it = forward ? it->next : it->prev;
316+    } while (it != start);
317 
318-	focus(get_focus_candidate(wm.sel_screen));
319+    focus(get_focus_candidate(wm.sel_screen));
320 }
321 
322 void focus_next(void* data, uint32_t time, uint32_t value, uint32_t state)
323 {
324-	(void)data; BIND_EVENT(time, value, state);
325-	focus_walk_direction(true);
326+    (void)data; BIND_EVENT(time, value, state);
327+    focus_walk_direction(true);
328 }
329 
330 void kill_sel(void* data, uint32_t time, uint32_t value, uint32_t state)
331 {
332-	(void)data; BIND_EVENT(time, value, state);
333+    (void)data; BIND_EVENT(time, value, state);
334 
335-	if (wm.sel_client)
336-		swc_window_close(wm.sel_client->win);
337+    if (wm.sel_client)
338+        swc_window_close(wm.sel_client->win);
339 }
340 
341 void fullscreen(void* data, uint32_t time, uint32_t value, uint32_t state)
342 {
343-	(void)data; BIND_EVENT(time, value, state);
344-	if (!wm.sel_client) return;
345+    (void)data; BIND_EVENT(time, value, state);
346+    if (!wm.sel_client) return;
347 
348-	struct client *c = wm.sel_client;
349-	struct swc_rectangle geom;
350+    struct client *c = wm.sel_client;
351+    struct swc_rectangle geom;
352 
353-	if (c->fullscreen) {
354-		c->fullscreen = false;
355-		swc_window_set_stacked(c->win);
356-        apply_decor(c, true);        
357+    if (c->fullscreen) {
358+        c->fullscreen = false;
359+        swc_window_set_stacked(c->win);
360+        apply_decor(c, true);
361 
362-		if (c->w > 0 && c->h > 0) {
363-			geom = (struct swc_rectangle){ c->x, c->y, c->w, c->h };
364-			swc_window_set_geometry(c->win, &geom);
365-		}
366-		return;
367-	}
368+        if (c->w > 0 && c->h > 0) {
369+            geom = (struct swc_rectangle){ c->x, c->y, c->w, c->h };
370+            swc_window_set_geometry(c->win, &geom);
371+        }
372+        return;
373+    }
374 
375-	if (!c->scr || !c->scr->scr) return;
376+    if (!c->scr || !c->scr->scr) return;
377 
378-	if (get_geometry(c, &geom)) {
379-		c->x = geom.x;
380-		c->y = geom.y;
381-		c->w = geom.width;
382-		c->h = geom.height;
383-	}
384+    if (get_geometry(c, &geom)) {
385+        c->x = geom.x;
386+        c->y = geom.y;
387+        c->w = geom.width;
388+        c->h = geom.height;
389+    }
390 
391-	c->fullscreen = true;
392+    c->fullscreen = true;
393     apply_decor(c, true);
394-	swc_window_set_fullscreen(c->win, c->scr->scr);
395+    swc_window_set_fullscreen(c->win, c->scr->scr);
396 }
397 
398-void kb_move_x(void* data, uint32_t time, uint32_t value, uint32_t state) {
399-	BIND_ACTION(data, time, value, state);
400-	adjust_geom(wm.sel_client, a->i, 0, 0, 0);
401+void kb_move_x(void* data, uint32_t time, uint32_t value, uint32_t state)
402+{
403+    BIND_ACTION(data, time, value, state);
404+    adjust_geom(wm.sel_client, a->i, 0, 0, 0);
405 }
406 
407-void kb_move_y(void* data, uint32_t time, uint32_t value, uint32_t state) {
408-	BIND_ACTION(data, time, value, state);
409-	adjust_geom(wm.sel_client, 0, a->i, 0, 0);
410+void kb_move_y(void* data, uint32_t time, uint32_t value, uint32_t state)
411+{
412+    BIND_ACTION(data, time, value, state);
413+    adjust_geom(wm.sel_client, 0, a->i, 0, 0);
414 }
415 
416-void kb_resize_width(void* data, uint32_t time, uint32_t value, uint32_t state) {
417-	BIND_ACTION(data, time, value, state);
418-	adjust_geom(wm.sel_client, 0, 0, a->i, 0);
419+void kb_resize_width(void* data, uint32_t time, uint32_t value, uint32_t state)
420+{
421+    BIND_ACTION(data, time, value, state);
422+    adjust_geom(wm.sel_client, 0, 0, a->i, 0);
423 }
424 
425-void kb_resize_height(void* data, uint32_t time, uint32_t value, uint32_t state) {
426-	BIND_ACTION(data, time, value, state);
427-	adjust_geom(wm.sel_client, 0, 0, 0, a->i);
428+void kb_resize_height(void* data, uint32_t time, uint32_t value, uint32_t state)
429+{
430+    BIND_ACTION(data, time, value, state);
431+    adjust_geom(wm.sel_client, 0, 0, 0, a->i);
432 }
433 
434-static void apply_grid_geometry(struct client *c, float x_frac, float w_frac) {
435-	if (!c || !c->scr || !c->scr->scr) return;
436+static void apply_grid_geometry(struct client *c, float x_frac, float w_frac)
437+{
438+    if (!c || !c->scr || !c->scr->scr) return;
439 
440-	struct swc_rectangle geom;
441-	struct swc_rectangle *ug = &c->scr->scr->usable_geometry;
442+    struct swc_rectangle geom;
443+    struct swc_rectangle *ug = &c->scr->scr->usable_geometry;
444 
445-	geom.x = ug->x + (ug->width * x_frac);
446-	geom.y = ug->y;
447-	geom.width = ug->width * w_frac;
448-	geom.height = ug->height;
449+    geom.x = ug->x + (ug->width * x_frac);
450+    geom.y = ug->y;
451+    geom.width = ug->width * w_frac;
452+    geom.height = ug->height;
453 
454-	swc_window_set_geometry(c->win, &geom);
455+    swc_window_set_geometry(c->win, &geom);
456 }
457 
458-void center_window(void* data, uint32_t time, uint32_t value, uint32_t state) {
459-	(void)data; BIND_EVENT(time, value, state);
460-	if (!wm.sel_client->scr || !wm.sel_client->scr->scr) return;
461+void center_window(void* data, uint32_t time, uint32_t value, uint32_t state)
462+{
463+    (void)data; BIND_EVENT(time, value, state);
464+    if (!wm.sel_client->scr || !wm.sel_client->scr->scr) return;
465 
466-	struct swc_rectangle geom;
467-	if (!get_geometry(wm.sel_client, &geom)) return;
468+    struct swc_rectangle geom;
469+    if (!get_geometry(wm.sel_client, &geom)) return;
470 
471-	struct swc_rectangle *ug = &wm.sel_client->scr->scr->usable_geometry;
472-	geom.x = ug->x + (ug->width - geom.width) / 2;
473-	geom.y = ug->y + (ug->height - geom.height) / 2;
474+    struct swc_rectangle *ug = &wm.sel_client->scr->scr->usable_geometry;
475+    geom.x = ug->x + (ug->width - geom.width) / 2;
476+    geom.y = ug->y + (ug->height - geom.height) / 2;
477 
478-	swc_window_set_geometry(wm.sel_client->win, &geom);
479+    swc_window_set_geometry(wm.sel_client->win, &geom);
480 }
481 
482-void snap_left_half(void* data, uint32_t time, uint32_t value, uint32_t state) {
483-	(void)data; BIND_EVENT(time, value, state);
484-	apply_grid_geometry(wm.sel_client, 0.0f, 0.5f);
485+void snap_left_half(void* data, uint32_t time, uint32_t value, uint32_t state)
486+{
487+    (void)data; BIND_EVENT(time, value, state);
488+    apply_grid_geometry(wm.sel_client, 0.0f, 0.5f);
489 }
490 
491-void snap_right_half(void* data, uint32_t time, uint32_t value, uint32_t state) {
492-	(void)data; BIND_EVENT(time, value, state);
493-	apply_grid_geometry(wm.sel_client, 0.5f, 0.5f);
494+void snap_right_half(void* data, uint32_t time, uint32_t value, uint32_t state)
495+{
496+    (void)data; BIND_EVENT(time, value, state);
497+    apply_grid_geometry(wm.sel_client, 0.5f, 0.5f);
498 }
499 
500 void new_screen(struct swc_screen* scr)
501 {
502-	struct screen* s = calloc(1, sizeof(*s));
503-	if (!s) die(EXIT_FAILURE, "new screen calloc failed");
504+    struct screen* s = calloc(1, sizeof(*s));
505+    if (!s) die(EXIT_FAILURE, "new screen calloc failed");
506 
507-	s->scr = scr;
508-	wl_list_insert(&wm.screens, &s->link);
509+    s->scr = scr;
510+    wl_list_insert(&wm.screens, &s->link);
511 
512-	if (!wm.sel_screen) wm.sel_screen = s;
513+    if (!wm.sel_screen) wm.sel_screen = s;
514 
515-	swc_screen_set_handler(scr, &screen_handler, s);
516-	_log(stderr, "new_screen=%p\n", (void*)scr);
517+    swc_screen_set_handler(scr, &screen_handler, s);
518+    _log(stderr, "new_screen=%p\n", (void*)scr);
519 }
520 
521 void new_window(struct swc_window* win)
522 {
523-	struct client* c = calloc(1, sizeof(*c));
524-	if (!c) die(EXIT_FAILURE, "calloc client failed");
525+    struct client* c = calloc(1, sizeof(*c));
526+    if (!c) die(EXIT_FAILURE, "calloc client failed");
527 
528-	win->motion_throttle_ms = 1000 / cfg.motion_throttle_hz;
529-	win->min_width = 1;
530-	win->min_height = 1;
531+    win->motion_throttle_ms = 1000 / cfg.motion_throttle_hz;
532+    win->min_width = 1;
533+    win->min_height = 1;
534 
535-	c->win = win;
536-	c->scr = wm.sel_screen;
537-	c->ws = wm.ws;
538+    c->win = win;
539+    c->scr = wm.sel_screen;
540+    c->ws = wm.ws;
541 
542-	wl_list_insert(&wm.clients, &c->link);
543-	swc_window_set_handler(win, &window_handler, c);
544-	swc_window_set_stacked(win);
545+    wl_list_insert(&wm.clients, &c->link);
546+    swc_window_set_handler(win, &window_handler, c);
547+    swc_window_set_stacked(win);
548     apply_decor(c, false);
549 
550-	int32_t cx = 0, cy = 0;
551-	if (swc_cursor_position(&cx, &cy))
552-		swc_window_set_position(win, cx / 256, cy / 256);
553+    int32_t cx = 0, cy = 0;
554+    if (swc_cursor_position(&cx, &cy))
555+        swc_window_set_position(win, cx / 256, cy / 256);
556 
557-	swc_window_show(win);
558-	focus(c);
559+    swc_window_show(win);
560+    focus(c);
561 
562-	_log(stderr, "new_window=%p\n", (void*)win);
563+    _log(stderr, "new_window=%p\n", (void*)win);
564 }
565 
566 void new_device(struct libinput_device* dev)
567 {
568-	(void)dev;
569+    (void)dev;
570 }
571 
572 void quit(void* data, uint32_t time, uint32_t value, uint32_t state)
573 {
574-	(void)data; BIND_EVENT(time, value, state);
575-	wl_display_terminate(wm.dpy);
576+    (void)data; BIND_EVENT(time, value, state);
577+    wl_display_terminate(wm.dpy);
578 }
579 
580 void spawn(void* data, uint32_t time, uint32_t value, uint32_t state)
581 {
582-	BIND_EVENT(time, value, state);
583-
584-	pid_t pid = fork();
585-	if (pid == 0) {
586-		setsid();
587-		if (fork() == 0) {
588-			union arg* a = data;
589-			char* const* cmd = (char* const*)a->v;
590-
591-			execvp(cmd[0], cmd);
592-			_exit(127);
593-		}
594-		_exit(0);
595-	} else if (pid > 0) {
596-		waitpid(pid, NULL, 0);
597-	}
598+    BIND_EVENT(time, value, state);
599+
600+    pid_t pid = fork();
601+    if (pid == 0) {
602+        setsid();
603+        if (fork() == 0) {
604+            union arg* a = data;
605+            char* const* cmd = (char* const*)a->v;
606+
607+            execvp(cmd[0], cmd);
608+            _exit(127);
609+        }
610+        _exit(0);
611+    } else if (pid > 0) {
612+        waitpid(pid, NULL, 0);
613+    }
614 }
615 
616 void workspace_goto(void* data, uint32_t time, uint32_t value, uint32_t state)
617 {
618-	union arg* a = data;
619-	BIND_EVENT(time, value, state);
620+    union arg* a = data;
621+    BIND_EVENT(time, value, state);
622 
623-	if (a->ui < 1 || a->ui > 9 || a->ui == wm.ws) return;
624+    if (a->ui < 1 || a->ui > 9 || a->ui == wm.ws) return;
625 
626-	wm.ws = a->ui;
627-	sync_window_visibility();
628+    wm.ws = a->ui;
629+    sync_window_visibility();
630 
631-	focus(get_focus_candidate(wm.sel_screen));
632+    focus(get_focus_candidate(wm.sel_screen));
633 }
634 
635 void workspace_moveto(void* data, uint32_t time, uint32_t value, uint32_t state)
636 {
637-	BIND_ACTION(data, time, value, state);
638-	if (a->ui < 1 || a->ui > 9 || wm.sel_client->ws == a->ui) return;
639+    BIND_ACTION(data, time, value, state);
640+    if (a->ui < 1 || a->ui > 9 || wm.sel_client->ws == a->ui) return;
641 
642-	struct client* c = wm.sel_client;
643-	c->ws = a->ui;
644+    struct client* c = wm.sel_client;
645+    c->ws = a->ui;
646 
647-	if (c->ws == wm.ws)
648-		swc_window_show(c->win);
649-	else
650-		swc_window_hide(c->win);
651+    if (c->ws == wm.ws)
652+        swc_window_show(c->win);
653+    else
654+        swc_window_hide(c->win);
655 
656-	focus(get_focus_candidate(wm.sel_screen));
657+    focus(get_focus_candidate(wm.sel_screen));
658 }
659 
660 int main(void)
661 {
662-	setup();
663-	wl_display_run(wm.dpy);
664-	swc_finalize();
665-	wl_display_destroy(wm.dpy);
666-	return EXIT_SUCCESS;
667-}
668+    setup();
669+    wl_display_run(wm.dpy);
670+    swc_finalize();
671+    wl_display_destroy(wm.dpy);
672+    return EXIT_SUCCESS;
673+}