commit e686109

0uppy  ·  2026-03-15 14:56:27 +0000 UTC
parent c33dfe0
Sent the previous commit with the formatting all borked bc havoc put everything aligned to the left

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