# dwm layouts { lib }: let # Layout indices: 0 = tile, 1 = floating, 2 = monocle defLayouts = [ 0 # index 0: all-tags view 0 # tag 1 0 # tag 2 0 # tag 3 0 # tag 4 0 # tag 5 0 # tag 6 0 # tag 7 0 # tag 8 0 # tag 9 2 # tag 10: terminal 2 # tag 11: files 2 # tag 12: video 2 # tag 13: web/browser 2 # tag 14: code 2 # tag 15: freecad 2 # tag 16: kicad project manager 2 # tag 17: kicad (sch/pcb editors) 2 # tag 18: kicad-aux (pcb/footprint mobile) 2 # tag 19: bambu studio ]; defLayoutsStr = lib.concatMapStringsSep ", " toString defLayouts; in { config = '' /* layout(s) */ static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ static const int nmaster = 1; /* number of clients in master area */ static const int resizehints = 0; /* 1 means respect size hints in tiled resizals */ static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ static const Layout layouts[] = { /* symbol arrange function */ { "[]=", tile }, /* 0: first entry is default */ { "><>", NULL }, /* 1: floating */ { "[M]", monocle }, /* 2: monocle (tabbed) */ }; /* default layout per tag */ /* 0 = tile, 1 = floating, 2 = monocle */ static int def_layouts[1 + LENGTH(tags)] = { ${defLayoutsStr} }; ''; }