rgb on waybar
This commit is contained in:
parent
96d02ac12e
commit
d25752f468
3 changed files with 334 additions and 293 deletions
|
|
@ -168,7 +168,7 @@ window#waybar.floating #window {
|
|||
color: @red;
|
||||
}
|
||||
|
||||
#custom-wallpaper {
|
||||
#custom-wallpaper, #custom-rgb {
|
||||
color: @overlay1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,8 @@ in {
|
|||
package = cfg.package;
|
||||
|
||||
settings = {
|
||||
mainBar = {
|
||||
mainBar = mkMerge [
|
||||
{
|
||||
layer = "top";
|
||||
position = "top";
|
||||
spacing = 4;
|
||||
|
|
@ -67,6 +68,7 @@ in {
|
|||
"custom/weather"
|
||||
"privacy"
|
||||
"custom/wallpaper"
|
||||
"custom/rgb"
|
||||
];
|
||||
};
|
||||
"group/power" = {
|
||||
|
|
@ -107,12 +109,6 @@ in {
|
|||
tooltip-format = "Power menu";
|
||||
on-click = "${powerMenuScript}";
|
||||
};
|
||||
"custom/wallpaper" = {
|
||||
format = "";
|
||||
tooltip = true;
|
||||
tooltip-format = "Change wallpaper";
|
||||
on-click = "${config.modules.desktop.swww.swapScript}";
|
||||
};
|
||||
"niri/workspaces" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
|
|
@ -318,7 +314,24 @@ in {
|
|||
exec = ''${lib.getExe pkgs.wttrbar} --location "$(${locationScript})" --hide-conditions --fahrenheit --mph'';
|
||||
return-type = "json";
|
||||
};
|
||||
}
|
||||
(mkIf config.modules.desktop.swww.enable {
|
||||
"custom/wallpaper" = {
|
||||
format = "";
|
||||
tooltip = true;
|
||||
tooltip-format = "Change wallpaper";
|
||||
on-click = "${config.modules.desktop.swww.swapScript}";
|
||||
};
|
||||
})
|
||||
(mkIf config.modules.hardware.rgb.enable {
|
||||
"custom/rgb" = {
|
||||
format = "★"; # TODO: better icon (paintbrush or palette?)
|
||||
tooltip = true;
|
||||
tooltip-format = "Change OpenRGB profile";
|
||||
on-click = "${config.modules.hardware.rgb.swapScript}";
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5,10 +5,38 @@ let
|
|||
cfg = config.modules.hardware.rgb;
|
||||
in {
|
||||
options.modules.hardware.rgb = {
|
||||
enable = mkEnableOption "Enable support for rgb devices through openrgb";
|
||||
enable = mkEnableOption "Enable support for rgb devices through OpenRGB";
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.openrgb;
|
||||
example = "pkgs.openrgb";
|
||||
};
|
||||
swapScript = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.writeShellScript "openrgb-swap" ''
|
||||
set -euo pipefail
|
||||
|
||||
mapfile -t files < <(
|
||||
find "$XDG_CONFIG_HOME/OpenRGB" -name "*.orp"
|
||||
find /var/lib/OpenRGB -name "*.orp" 2>/dev/null
|
||||
)
|
||||
|
||||
selected=$(printf '%s\n' "''${files[@]}" | xargs -n1 basename | ${lib.getExe config.modules.desktop.rofi.package} -dmenu -i -p "select profile")
|
||||
|
||||
[[ -z "$selected" ]] && exit 0
|
||||
|
||||
for f in "''${files[@]}"; do
|
||||
if [[ $(basename "$f") == "$selected" ]]; then
|
||||
${lib.getExe cfg.package} -p "$f"
|
||||
break
|
||||
fi
|
||||
done
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.hardware.openrgb.enable = true;
|
||||
services.hardware.openrgb.package = cfg.package;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue