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