NixOS-Vista/nixosVista/homeManager/waybar/config.nix
2026-03-03 09:46:33 +01:00

101 lines
1.8 KiB
Nix

{
config,
lib,
nixosVista,
...
}: let
root = nixosVista;
cfg = root.waybar;
baseSettings = {
layer = "bottom";
spacing = 0;
height = 0;
margin-top = 0;
position = "bottom";
margin-right = 50;
margin-bottom = 8;
margin-left = 50;
modules-left = [
"custom/os_btn"
"hyprland/workspaces"
"wlr/taskbar"
];
modules-center = [
"clock"
];
modules-right = [
"tray"
"network"
"battery"
"pulseaudio"
];
"sway/workspaces" = {
disable-scroll = true;
all-outputs = true;
tooltip = false;
};
"wlr/taskbar" = {
format = "{icon}";
spacing = 3;
icon-size = 28;
on-click = "activate";
tooltip-format = "{title}";
};
tray = {
spacing = 10;
tooltip = false;
};
clock = {
format = "{:%H:%M - %a | %d %b %Y}";
tooltip = false;
};
network = {
format-wifi = "󰤢 {bandwidthDownBits}";
format-ethernet = "󰤢 {bandwidthDownBits}";
format-disconnected = "󰤠 No Network";
interval = 5;
tooltip = false;
};
pulseaudio = {
scroll-step = 5;
max-volume = 150;
format = "{icon} {volume}%";
format-bluetooth = "{icon} {volume}%";
format-icons = ["" "" " "];
nospacing = 1;
format-muted = " ";
on-click = "pavucontrol";
tooltip = false;
};
battery = {
format = "{icon} {capacity}%";
interval = 5;
states = {
warning = 20;
critical = 10;
};
format-icons = ["" "" "" "" ""];
tooltip = false;
};
};
finalSettings = baseSettings // cfg.settings.extra;
in {
programs.waybar = lib.mkIf (cfg.enable && cfg.style.preset != "none") {
style = selectedStyle + "\n" + cfg.style.extra;
};
}