mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-12 03:26:17 +00:00
96 lines
2.7 KiB
Nix
96 lines
2.7 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
username,
|
|
...
|
|
}:
|
|
|
|
let
|
|
cfg = config.shell.components.waybar;
|
|
in
|
|
{
|
|
options.shell.components.waybar = {
|
|
enable = lib.mkEnableOption (lib.mdDoc "Enable a pre-configured waybar setup");
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
home-manager.users.${username}.programs.waybar = {
|
|
enable = true;
|
|
settings = {
|
|
mainBar = {
|
|
height = 24;
|
|
reload_style_on_change = true;
|
|
exclusive = true;
|
|
|
|
modules-left = [
|
|
# "hyprland/workspaces"
|
|
];
|
|
modules-center = [
|
|
"clock"
|
|
"systemd-failed-units"
|
|
];
|
|
modules-right = [
|
|
"privacy"
|
|
"gamemode"
|
|
"tray"
|
|
"pulseaudio"
|
|
"custom/brightness"
|
|
"custom/theme"
|
|
];
|
|
|
|
"pulseaudio" = {
|
|
format = "{icon} {volume}%";
|
|
format-icons = {
|
|
"alsa_output.usb-Turtle_Beach_Turtle_Beach_Stealth_700_G2_MAX-01.iec958-stereo" = "";
|
|
"alsa_output.pci-0000_0a_00.4.analog-stereo" = "";
|
|
"alsa_output.pci-0000_08_00.1.hdmi-stereo-extra4" = "";
|
|
"alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_11_12_79383-00.analog-stereo" =
|
|
"";
|
|
"default" = "";
|
|
};
|
|
on-click = "pavucontrol --tab=3";
|
|
};
|
|
|
|
"hyprland/workspaces" = {
|
|
format = "{windows}";
|
|
window-rewrite = {
|
|
"class<firefox>" = "";
|
|
"class<thunderbird>" = "";
|
|
"class<neovide>" = "";
|
|
"class<kitty>" = "";
|
|
"class<OrcaSlicer>" = "";
|
|
"class<blender>" = "";
|
|
"class<steam>" = "";
|
|
};
|
|
window-rewrite-default = "";
|
|
};
|
|
|
|
"custom/theme" = {
|
|
return-type = "json";
|
|
exec-on-event = true;
|
|
exec = pkgs.writeShellScript "waybar-theme" ''
|
|
if [ $(theme mode) = "dark" ]; then
|
|
echo '{"text": "", "tooltip": "Switch to light theme"}'
|
|
elif [ $(theme mode) = "auto" ]; then
|
|
echo '{"text": "", "tooltip": "Switch to dark theme"}'
|
|
else
|
|
echo '{"text": "", "tooltip": "Switch to dark theme"}'
|
|
fi
|
|
'';
|
|
exec-if = "sleep 1";
|
|
interval = "once";
|
|
on-click = "theme toggle";
|
|
on-click-right = "theme auto";
|
|
on-click-middle = "theme wallpaper";
|
|
};
|
|
};
|
|
};
|
|
systemd = {
|
|
enable = true;
|
|
target = "graphical-session.target";
|
|
};
|
|
};
|
|
};
|
|
}
|