dots/nixcfgs/users/js0ny/programs/desktop/wayland-wm/waybar/modules.nix
2025-11-27 22:47:31 +00:00

224 lines
5.6 KiB
Nix

{...}: {
programs.waybar.settings = [
{
layer = "top";
height = 32;
margin-top = 4;
margin-left = 4;
margin-right = 4;
spacing = 4;
modules-left = [
"custom/osicon"
"sway/workspaces"
"hyprland/workspaces"
"wlr/taskbar"
];
modules-right = [
"tray"
"pulseaudio"
"cpu"
"memory"
# "network" # Use nm-applet instead
"battery"
"clock"
];
"custom/logout" = {
format = "";
tooltip = false;
on-click = "niri msg action quit";
};
"wlr/taskbar" = {
format = "{icon}";
tooltip-format = "{title} | {app_id}";
on-click = "activate";
on-click-middle = "close";
on-click-right = "fullscreen";
};
keyboard-state = {
numlock = true;
capslock = true;
format = "{name} {icon}";
format-icons = {
locked = "";
unlocked = "";
};
};
"sway/mode" = {
format = "<span style=\"italic\">{}</span>";
};
"sway/scratchpad" = {
format = "{icon} {count}";
show-empty = false;
format-icons = [
""
""
];
tooltip = true;
tooltip-format = "{app}: {title}";
};
mpd = {
format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) {songPosition}|{queueLength} {volume}% ";
format-disconnected = "Disconnected ";
format-stopped = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ";
unknown-tag = "N/A";
interval = 2;
consume-icons = {
on = " ";
};
random-icons = {
off = "<span color=\"#f53c3c\"></span> ";
on = " ";
};
repeat-icons = {
on = " ";
};
single-icons = {
on = "1 ";
};
state-icons = {
paused = "";
playing = "";
};
tooltip-format = "MPD (connected)";
tooltip-format-disconnected = "MPD (disconnected)";
};
idle_inhibitor = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
};
tray = {
spacing = 10;
};
clock = {
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format = "{:%e %B %H:%M}";
};
cpu = {
format = "{usage}% ";
tooltip = false;
on-click = "kitty -e btop";
};
memory = {
format = "{}% ";
};
temperature = {
critical-threshold = 80;
format = "{temperatureC}°C {icon}";
format-icons = [
""
""
""
];
};
backlight = {
format = "{percent}% {icon}";
format-icons = [
""
""
""
""
""
""
""
""
""
];
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = "{capacity}% {icon}";
format-charging = "{capacity}% ";
format-plugged = "{capacity}% ";
format-alt = "{time} {icon}";
format-icons = [
""
""
""
""
""
];
};
"battery#bat2" = {
bat = "BAT2";
};
network = {
format-wifi = "";
format-ethernet = "";
tooltip-format = "{ifname} via {gwaddr} ";
format-linked = "";
format-disconnected = "";
format-alt = "{ifname}: {ipaddr}/{cidr}";
};
pulseaudio = {
scroll-step = 5;
format = "{icon}";
tooltip-format = "{volume}% {icon}";
format-bluetooth = "{volume}% {icon}";
format-bluetooth-muted = " {icon}";
format-muted = "";
format-source = "{volume}% ";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
};
on-click = "pavucontrol";
on-click-right = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
};
"custom/media" = {
format = "{icon} {}";
return-type = "json";
max-length = 40;
format-icons = {
spotify = "";
default = "🎜";
};
escape = true;
exec = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null";
};
power-profiles-daemon = {
format = "{icon}";
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true;
format-icons = {
default = "";
performance = "";
balanced = "";
power-saver = "";
};
};
"custom/power" = {
format = " ";
tooltip = false;
menu = "on-click";
menu-file = "$HOME/.config/waybar/power_menu.xml";
menu-actions = {
shutdown = "shutdown";
reboot = "reboot";
suspend = "systemctl suspend";
hibernate = "systemctl hibernate";
};
};
"custom/osicon" = {
format = "<span size='x-large'></span>";
on-click = "walker -m desktopapplications";
};
}
];
}