refactor(waybar): simplify registry consumption

This commit is contained in:
2026-10-11 20:59:05 -04:00
parent 13dfec815d
commit 7a1ffb6ed2

View File

@@ -6,26 +6,19 @@
}:
# Waybar: a top status bar reading system state at a glance.
let
waybarModulesFor =
moduleNames =
position:
map (module: module.name) (
lib.sort (a: b: a.order < b.order) (
lib.filter (module: module.position == position) registeredWaybarModules
map (entry: entry.name) (
lib.sort (left: right: left.module.order < right.module.order) (
lib.filter (entry: entry.module.position == position) moduleEntries
)
);
registeredWaybarModules = lib.mapAttrsToList (
name: module:
module
// {
inherit name;
}
) hostWaybarModules;
hostWaybarModules = lib.attrByPath [ config.networking.hostName ] { } config.registry.waybar;
registeredWaybarModuleSettings = lib.mapAttrs (_name: module: module.settings) hostWaybarModules;
moduleEntries = lib.mapAttrsToList (name: module: {
inherit name module;
}) modules;
modules = lib.attrByPath [ config.networking.hostName ] { } config.registry.waybar;
in
{
options.modules.desktop.session.waybar.enable = lib.mkEnableOption "the Waybar status bar";
@@ -50,11 +43,11 @@ in
spacing = 8;
margin-right = 8;
modules-left = waybarModulesFor "left";
modules-center = waybarModulesFor "center";
modules-right = waybarModulesFor "right";
modules-left = moduleNames "left";
modules-center = moduleNames "center";
modules-right = moduleNames "right";
}
registeredWaybarModuleSettings
(lib.mapAttrs (_name: module: module.settings) modules)
];
};