{ lib, config, ... }: { options = { modules.hyprpanel.enable = lib.mkEnableOption "hyprpanel"; modules.hyprpanel.avatar.image = lib.mkOption { type = lib.types.path; default = ""; description = "avatar image"; }; modules.hyprpanel.avatar.name = lib.mkOption { type = lib.types.str; default = "John Doe"; description = "Username to be displayed"; }; modules.hyprpanel.battery.enable = lib.mkOption { type = lib.types.bool; default = true; description = "Enable battery widget"; }; }; config = lib.mkIf config.modules.hyprpanel.enable { programs.hyprpanel = { enable = true; settings = { scalingPriority = true; theme = lib.recursiveUpdate (import ./hyprpanel/nord_split.nix) { bar.scaling = 80; bar.background = "#00000000"; bar.menus.menu.notifications.scaling = 80; bar.menus.menu.dashboard.scaling = 80; bar.menus.menu.clock.scaling = 80; }; menus.clock.weather.enabled = false; menus.clock.weather.unit = "metric"; menus.clock.weather.location = "Linz"; menus.dashboard = { powermenu.avatar.name = config.modules.hyprpanel.avatar.name; powermenu.avatar.image = config.modules.hyprpanel.avatar.image; shortcuts.enabled = false; }; bar.launcher.icon = ""; bar.layouts."0" = { left = [ "dashboard" "workspaces" "windowtitle" ]; center = [ "media" ]; right = [ "volume" "network" "bluetooth" (lib.mkIf config.modules.hyprpanel.battery.enable "battery") "systray" "clock" "notifications" ]; }; terminal = "ghostty"; }; }; }; }