{ config, pkgs, ... }: {
home.packages = with pkgs; [ networkmanagerapplet bluez ];
systemd.user.targets.tray.Unit = {
Description = "Home Manager System Tray";
Requires = [ "graphical-session-pre.target" ];
};
programs.waybar = {
enable = true;
style = ./style.css;
systemd = {
enable = true;
target = "hyprland-session.target";
};
settings.main = {
layer = "top";
position = "top";
# Layout
"modules-left" = [
"hyprland/workspaces"
"custom/separator"
"hyprland/window"
"custom/separator"
"mpris"
];
"modules-center" = [ ];
"modules-right" =
[ "pulseaudio" "disk" "cpu" "memory" "clock" "battery" "tray" ];
# Module config
"custom/separator" = { format = "|"; };
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"emacs" = "";
"web" = "";
"discord" = "";
"steam" = "";
"apps" = "";
"top" = "";
"remote" = "";
default = "";
special = "";
};
show-special = true;
sort-by = "id";
};
"hyprland/window" = {
rewrite = {
"(.*) - GNU Emacs(.*)" = " $1";
"btop" = " System Status";
"ncspot" = " Spotify TUI";
"Nyxt - (.*)" = " $1";
"(.*) — Mozilla Firefox" = " $1";
"(.*) - Discord" = " $1";
"(.*) - Chromium" = " $1";
"Microsoft Teams - (.*)" = " $1";
"Microsoft Teams classic" = "";
"Microsoft 365 - (.*)" = " $1";
"NoMachine - (.*)" = " $1";
};
separate-outputs = true;
};
mpris = {
"format" = "{player_icon} {title}";
"tooltip-format" = "{player_icon} ({player}) {dynamic}";
"interval" = 1;
"player-icons" = {
"default" = "";
"ncspot" = "";
"emms" = "";
};
"status-icons" = {
"playing" = "";
"paused" = "";
"stopped" = "";
};
"ignored-players" = [ "firefox" "chromium" "mpv" ];
};
pulseaudio = {
scroll-step = 5;
format = "{format_source}/{icon} {volume}%";
format-muted = "{format_source}/";
format-source = "";
format-source-muted = "";
format-icons = {
car = "";
default = [ "" "" "" ];
hands-free = "";
headset = "";
phone = "";
portable = "";
headphone = "";
};
on-click = "pavucontrol";
on-click-middle = "volumectl -m %";
on-click-right = "volumectl %";
on-scroll-up = "volumectl -u + 5";
on-scroll-down = "volumectl -u - 5";
};
disk = {
format = " {percentage_used}%";
path = config.home.homeDirectory;
};
cpu = {
format = " {usage}%";
tooltip = false;
};
memory = { format = " {}%"; };
temperature = {
critical-threshold = 80;
format = "{icon} {temperatureC}°C";
format-icons = [ "" "" "" ];
};
clock = {
format = "{: %Y-%m-%d %R}";
tooltip-format = "{calendar}";
calendar = {
mode = "month";
mode-mon-col = 3;
weeks-pos = "left";
on-scroll = 1;
on-click-right = "mode";
format = {
months = "{}";
days = "{}";
weeks = "W{}";
weekdays = "{}";
today = "{}";
};
};
actions = {
on-click-right = "mode";
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
backlight = {
format = "{icon}";
tooltip-format = "{percent}%";
format-icons = [ "" "" "" "" "" "" "" "" "" ];
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = "{icon}";
format-charging = "";
format-plugged = "";
tooltip-format = "{time} {capacity}%";
format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ];
};
tray = {
icon-size = 16;
show-passive-items = true;
spacing = 5;
};
};
};
}