nixfleet/hmModules/sway/waybar.nix
2022-12-28 17:26:53 +01:00

106 lines
3 KiB
Nix

{pkgs, ...}: {
programs.waybar = {
enable = true;
style = builtins.readFile ./style.css;
settings = {
mainBar = {
ipc = true;
layer = "top";
position = "top";
height = 30;
modules-left = [
"sway/mode"
"sway/workspaces"
];
modules-center = ["sway/window"];
modules-right = [
"tray"
"pulseaudio"
"network"
"cpu"
"memory"
"temperature"
"battery"
"clock"
];
"sway/workspaces" = {
all-outputs = true;
disable-scroll-wraparound = true;
active-only = true;
format = "{icon}";
on-click = "activate";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"9" = "";
urgent = "";
};
sort-by-number = true;
};
"sway/mode" = {tooltip = false;};
"sway/window" = {max_length = 50;};
tray = {
spacing = 10;
};
battery = {
format = "{capacity}% {icon}";
format-alt = "{time} {icon}";
format-charging = "{capacity}% ";
format-icons = ["" "" "" "" ""];
format-plugged = "{capacity}% ";
states = {
critical = 15;
warning = 30;
};
};
clock = {
format-alt = "{:%Y-%m-%d}";
tooltip-format = "{:%Y-%m-%d | %H:%M}";
};
cpu = {
format = "{usage}% ";
tooltip = false;
};
memory = {format = "{}% ";};
network = {
interval = 1;
format-alt = "{ifname}: {ipaddr}/{cidr}";
format-disconnected = "Disconnected ";
format-ethernet = "{ifname}: {ipaddr}/{cidr} up: {bandwidthUpBits} down: {bandwidthDownBits}";
format-linked = "{ifname} (No IP) ";
format-wifi = "{essid} ({signalStrength}%) ";
};
pulseaudio = {
format = "{volume}% {icon} {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-icons = {
car = "";
default = ["" "" ""];
handsfree = "";
headphones = "";
headset = "";
phone = "";
portable = "";
};
format-muted = " {format_source}";
format-source = "{volume}% ";
format-source-muted = "";
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
};
"sway/mode" = {format = ''<span style="italic">{}</span>'';};
temperature = {
critical-threshold = 80;
format = "{temperatureC}°C {icon}";
format-icons = ["" "" ""];
hwmon-path = "/sys/class/thermal/thermal_zone4/temp";
};
};
};
};
}