{ config, pkgs, inputs, ... }:
{
home.packages = with pkgs; [
waybar
];
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 28;
output = [
"DP-3"
"DP-2"
];
modules-left = [ "hyprland/workspaces" "tray" "custom/pronouns" "custom/spotify" ];
modules-center = [ "hyprland/window" "clock" ];
modules-right = [ "custom/vpn" "wireplumber" "network" "cpu" "memory" "keyboard-state" "custom/poweroff" ];
"clock" = {
tooltip-format = "{:%Y %B}\n\n{calendar}";
interval = 1;
format = "{:%H:%M:%S}";
format-alt = ":%Y-%m-%d %H:%M:%S}";
on-click-middle = "gnome-clocks";
calendar = {
weeks-pos = "left";
format = {
today = "{}";
weeks = "{}";
};
};
};
"tray".spacing = 10;
"cpu" = {
format = "cpu: {usage}%";
tooltip = false;
};
"memory" = {
format = "mem: {}%";
};
"wireplumber" = {
format = "{volume}%";
};
"custom/vpn" = {
format = "VPN";
exec = "echo '{\"class\": \"connected\"}'";
exec-if = "test -d /proc/sys/net/ipv4/conf/tun0";
return-type = "json";
interval = 5;
};
"custom/poweroff" = {
# TODO fix format
format = "P";
on-click = "wofi-power";
on-click-right = "swaylock";
};
"custom/pronouns" = {
format = "{}";
exec = "${config.xdg.configHome}/waybar/pronouns";
interval = 5;
};
"hyprland/workspaces" = {
format = "{name}";
on-click = "activate";
sort-by = "id";
};
};
};
style = ../styles/waybar.css;
};
}