From 788731079849b41c6e0cb2c4baa2665aa3bc74c0 Mon Sep 17 00:00:00 2001 From: gonzo Date: Wed, 17 May 2023 20:43:21 +0200 Subject: cycle layouts --- dwm.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'dwm.c') diff --git a/dwm.c b/dwm.c index 5dcb278..1db2f5e 100644 --- a/dwm.c +++ b/dwm.c @@ -160,6 +160,7 @@ static void configure(Client *c); static void configurenotify(XEvent *e); static void configurerequest(XEvent *e); static Monitor *createmon(void); +static void cyclelayout(const Arg *arg); static void destroynotify(XEvent *e); static void detach(Client *c); static void detachstack(Client *c); @@ -671,6 +672,23 @@ createmon(void) return m; } +void +cyclelayout(const Arg *arg) { + Layout *l; + for(l = (Layout *)layouts; l != selmon->lt[selmon->sellt]; l++); + if(arg->i > 0) { + if(l->symbol && (l + 1)->symbol) + setlayout(&((Arg) { .v = (l + 1) })); + else + setlayout(&((Arg) { .v = layouts })); + } else { + if(l != layouts && (l - 1)->symbol) + setlayout(&((Arg) { .v = (l - 1) })); + else + setlayout(&((Arg) { .v = &layouts[LENGTH(layouts) - 2] })); + } +} + void destroynotify(XEvent *e) { -- cgit v1.2.3