{ config, ... }: {
programs.waybar = {
enable = true;
systemd.enable = true;
systemd.target = "hyprland-session.target";
settings = {
mainBar = {
layer = "top";
position = "top";
height = 40;
modules-left = [ "hyprland/workspaces" ];
modules-center = [ "clock" ];
modules-right = [ "wireplumber" "bluetooth" "network" "backlight/slider" "battery" "temperature" "memory" "keyboard_state" "tray" ];
"tray" = {
icon-size = 21;
spacing = 10;
};
"wireplumber" = {
on-click = "helvum";
max-volume = 150;
scroll-step = 0.2;
format = "{volume}% {icon} {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = "{volume}% ";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [ "" "" "" ];
};
# on-click = "pavucontrol"
};
"network" = {
format-wifi = "{essid} ({signalStrength}%) ";
format-ethernet = "{ipaddr}/{cidr} ";
tooltip-format = "{ifname} via {gwaddr} ";
format-linked = "{ifname} (No IP) ";
format-disconnected = "Disconnected ⚠";
format-alt = "{ifname}: {ipaddr}/{cidr}";
};
"backlight/slider" = {
min = 1;
max = 100;
orientation = "horizontal";
# device = "intel_backlight";
};
"clock" = {
format = "{:%H:%M} ";
format-alt = "{:%A, %B %d, %Y (%R)} ";
# timezone = config.time.timeZone;
timezone = "US/Mountain";
tooltip-format = "{calendar}";
"calendar" = {
mode = "year";
mode-mon-col = 3;
weeks-pos = "right";
on-scroll = 1;
on-right-click = "mode";
"format" = {
months = "{}";
days = "{}";
weeks = "W{}";
weekdays = "{}";
today = "{}";
};
};
};
"battery" = {
interval = 60;
states = {
"warning" = 30;
"critical" = 15;
};
format = "{capacity}% {icon}";
format-icons = [ "" "" "" "" "" ];
max-length = 25;
};
"memory" = {
format = "{used:0.1f}G/{total:0.1f}G ";
};
"temperature" = {
format = "{temperatureC}°C ";
};
"keyboard-state" = {
numlock = true;
capslock = true;
"format" = {
numlock = "N {icon}";
# capslock = "C {icon}";
};
"format-icons" = {
locked = "";
unlocked = "";
};
};
};
};
};
}