{
inputs,
pkgs,
lib,
...
}: let
compileSCSS = name: source: "${pkgs.runCommandLocal name {} ''
mkdir -p $out
${lib.getExe pkgs.sassc} -t expanded '${source}' > $out/${name}.css
''}/${name}.css";
in {
programs.waybar = {
enable = true;
package = inputs.hyprland.packages.${pkgs.system}.waybar-hyprland;
settings = {
mainBar = {
output = "DP-3";
layer = "top";
position = "top";
height = 35;
width = 1880;
spacing = 10;
margin-top = 8;
modules-left = [
"image/nixos"
"user"
"wlr/workspaces"
];
modules-center = [
"hyprland/window"
];
modules-right = [
"cpu"
"memory"
"clock"
"tray"
"custom/wlogout"
];
"image/nixos" = {
path = "/home/notoh/snowflake/home/waybar/assets/nixos.png";
size = 24;
};
"user" = {
format = "{user} up {work_d} days | {work_H} hrs | {work_M} min ↑";
interval = 60;
icon = false;
};
"hyprland/window" = {
format = "{}";
seperate-outputs = true;
max-length = 35;
};
"wlr/workspaces" = {
format = "{icon}";
on-click = "activate";
all-outputs = true;
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
};
};
"cpu" = {
format = "{usage}% ";
tooltip = "false";
interval = "2";
};
"memory" = {
format = "{}% ";
interval = "15";
};
"clock" = {
tooltip-format = "{:%Y %B}\n{calendar}";
format-alt = "{:%Y-%m-%d}";
};
"tray" = {
spacing = 0;
};
"custom/wlogout" = {
format = "";
interval = "once";
on-click = "wlogout -c 5 -r 5";
tooltip = "false";
};
};
};
style = builtins.readFile (compileSCSS "waybar-style" ./style.scss);
};
}