You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

17 lines
569 B

{config, lib, pkgs, ...}:
let
# A list is used because it preserves ordering
tags = [
{ name = "tag 1"; key = "something"; }
{ name = "tag 2"; }
];
# Attribute set of { <keybind> = "use <tag>"; }
keybinds = let
tagsWithKeybinds = lib.filter (lib.hasAttr "key") tags;
in lib.listToAttrs (map (x: lib.nameValuePair x.key "use ${x.name}") tagsWithKeybinds);
in
{
xsession.windowManager.herbstluftwm.enable = true;
xsession.windowManager.herbstluftwm.keybinds = keybinds;
xsession.windowManager.herbstluftwm.tags = lib.catAttrs "name" tags;
}