Files
nixos-config/home/waybar.nix
2025-11-19 08:42:21 +01:00

176 lines
4.2 KiB
Nix

{ config, pkgs, ... }:
{
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
modules-left = [ "hyprland/workspaces" "hyprland/window" ];
modules-center = [ "clock" ];
modules-right = [ "pulseaudio" "network" "cpu" "memory" "battery" "tray" ];
"hyprland/workspaces" = {
format = "{icon}";
on-click = "activate";
format-icons = {
"1" = "󰲠";
"2" = "󰲢";
"3" = "󰲤";
"4" = "󰲦";
"5" = "󰲨";
"6" = "󰲪";
"7" = "󰲬";
"8" = "󰲮";
"9" = "󰲰";
"10" = "󰿬";
};
};
"hyprland/window" = {
format = "{}";
separate-outputs = true;
};
clock = {
format = "󰃰 {:%H:%M}";
format-alt = "󰃰 {:%A, %B %d, %Y (%R)}";
tooltip-format = "<tt><small>{calendar}</small></tt>";
calendar = {
mode = "year";
mode-mon-col = 3;
weeks-pos = "right";
on-scroll = 1;
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
days = "<span color='#ecc6d9'><b>{}</b></span>";
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
};
};
};
pulseaudio = {
format = "{icon} {volume}%";
format-muted = "󰝟 Muted";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [ "" "" "" ];
};
on-click = "pavucontrol";
};
network = {
format-wifi = " {essid}";
format-ethernet = "󰈀 Wired";
format-disconnected = "󰤭 Disconnected";
tooltip-format = "{ifname} via {gwaddr}";
tooltip-format-wifi = "{essid} ({signalStrength}%)";
on-click = "nm-connection-editor";
};
cpu = {
format = " {usage}%";
tooltip = false;
};
memory = {
format = " {}%";
tooltip-format = "RAM: {used:0.1f}G / {total:0.1f}G";
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = " {capacity}%";
format-icons = [ "󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
};
tray = {
icon-size = 18;
spacing = 10;
};
};
};
style = ''
* {
border: none;
border-radius: 0;
font-family: "JetBrainsMono Nerd Font";
font-size: 13px;
min-height: 0;
}
window#waybar {
background: rgba(30, 30, 46, 0.9);
color: #cdd6f4;
}
#workspaces button {
padding: 0 10px;
color: #cdd6f4;
background: transparent;
border-bottom: 3px solid transparent;
}
#workspaces button.active {
color: #89b4fa;
border-bottom: 3px solid #89b4fa;
}
#workspaces button:hover {
background: rgba(137, 180, 250, 0.2);
}
#window {
margin: 0 10px;
color: #cdd6f4;
}
#clock,
#battery,
#cpu,
#memory,
#network,
#pulseaudio,
#tray {
padding: 0 10px;
margin: 0 2px;
background: rgba(49, 50, 68, 0.8);
border-radius: 5px;
}
#battery.charging {
color: #a6e3a1;
}
#battery.warning:not(.charging) {
color: #f9e2af;
}
#battery.critical:not(.charging) {
color: #f38ba8;
}
#pulseaudio.muted {
color: #f38ba8;
}
'';
};
}