refactor(waybar): simplify registry consumption
This commit is contained in:
@@ -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)
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user