nixfiles/home/environments/niri/waybar.nix

241 lines
5.5 KiB
Nix

_: {
programs.waybar = {
#enable = true;
systemd.enable = true;
style = ''
* {
border: none;
border-radius: 0;
font-family: Monaspace Krypton, monospace;
font-size: 13px;
min-height: 0;
}
window#waybar {
all:unset;
}
.modules-left, .modules-right, .modules-center {
background: alpha(@base00, 0.9);
box-shadow: 0px 0px 2px rgba(0,0,0,0.6);
color: @base05;
padding: 5px;
margin: 2px 4px;
border: 1px solid @base04;
}
tooltip {
background: rgba(43, 48, 59, 0.5);
border: 1px solid rgba(100, 114, 125, 0.5);
}
tooltip label {
color: white;
}
#workspaces {
border-right: 1px solid @base04;
}
#workspaces button.persistent {
background: @base01;
color: @base05;
}
#workspaces button {
padding: 2px 5px;
background: @base01;
color: @base07;
border-bottom: 3px solid transparent;
}
#workspaces button.empty {
background: @base04;
color: @base01;
}
#workspaces button.visible {
background: @base02;
color: @base04;
border-bottom: 3px solid @base0C;
}
#workspaces button.urgent {
background: @base08;
color: @base00;
}
#workspaces button.active, #workspaces button.focused {
background: @base0C;
color: @base00;
border-bottom: 3px solid @base0C;
}
#window {
padding: 0 10px;
}
window#waybar.empty #window {
padding: 0px;
margin: 0px;
}
#mode, #custom-notification, #custom-nvidia-vram, #clock, #battery, #idle_inhibitor, #tray, #wireplumber, #bluetooth, #backlight, #mpris {
padding: 0 5px;
margin: 0 5px;
}
#mpris {
color: @base00;
}
#custom-notification {
font-size: 150%;
}
#custom-nvidia-vram {
}
#mpris.playing {
background-color: @base0B;
}
#mpris.paused {
background-color: @base0A;
}
#mpris.stopped {
background-color: @base09;
}
#mode {
background: @base07;
border-bottom: 3px solid @base0D;
color: @base02;
}
#clock {
}
#battery {
}
#battery.charging {
color: @base00;
background-color: @base0B;
}
@keyframes blink {
to {
background-color: @base00;
color: @base07;
}
}
#battery.warning:not(.charging) {
background: @base0F;
color: @base00;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
'';
settings.main = {
layer = "top";
position = "top";
mode = "dock";
exclusive = true;
modules-left = [
"niri/workspaces"
"niri/window"
];
modules-center = [
"clock"
"mpris"
];
modules-right = [
"privacy"
"bluetooth"
"wireplumber"
"idle_inhibitor"
"power-profiles-daemon"
"backlight"
"battery"
"tray"
"custom/notification"
];
idle_inhibitor = {
format = "idin {icon}";
format-icons = {
activated = "active";
deactivated = "inactive";
};
};
bluetooth = {
on-click = "blueman-manager";
format = "bt {status}";
format-connected-battery = "bt {device_alias} {device_battery_percentage}%";
format-connected = "bt {num_connections} connected";
tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
};
mpris = {
ignored-players = ["firefox"];
};
wireplumber = {
format = "vol {volume}%";
max-volume = 150;
};
backlight = {
format = "bl {percent}%";
};
battery = {
format = "bat {capacity}%";
format-tooltip = "{power}W, {timeTo}, {health}%";
interval = 60;
states = {
warning = 30;
critical = 15;
};
};
tray = {
spacing = 4;
};
"custom/notification" = {
tooltip = false;
format = "{} {icon}";
"format-icons" = {
notification = "󱅫";
none = "";
"dnd-notification" = " ";
"dnd-none" = "󰂛";
"inhibited-notification" = " ";
"inhibited-none" = "";
"dnd-inhibited-notification" = " ";
"dnd-inhibited-none" = " ";
};
"return-type" = "json";
"exec-if" = "which swaync-client";
exec = "swaync-client -swb";
"on-click" = "sleep 0.1 && swaync-client -t -sw";
"on-click-right" = "sleep 0.1 && swaync-client -d -sw";
escape = true;
};
clock = {
format = "{:%F %H:%M %Z}";
interval = 60;
};
};
};
}