2024-11-23 18:12:57 -05:00
|
|
|
{
|
|
|
|
|
options,
|
|
|
|
|
config,
|
|
|
|
|
lib,
|
|
|
|
|
inputs,
|
|
|
|
|
pkgs,
|
|
|
|
|
...
|
|
|
|
|
}:
|
|
|
|
|
with lib;
|
|
|
|
|
with lib.custom; let
|
|
|
|
|
cfg = config.apps.helpers.waybar;
|
|
|
|
|
in {
|
|
|
|
|
options.apps.helpers.waybar = with types; {
|
|
|
|
|
enable = mkBoolOpt false "Enable WayBar";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
|
programs.waybar = {
|
|
|
|
|
enable = true;
|
|
|
|
|
style = ''
|
|
|
|
|
* {
|
2024-12-19 21:47:51 -05:00
|
|
|
min-height: 0;
|
|
|
|
|
min-width: 0;
|
|
|
|
|
font-family: Lexend, "JetBrainsMono NFP";
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-weight: 600;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
window#waybar {
|
2024-12-19 21:47:51 -05:00
|
|
|
transition-property: background-color;
|
|
|
|
|
transition-duration: 0.5s;
|
|
|
|
|
/* background-color: #1e1e2e; */
|
|
|
|
|
/* background-color: #181825; */
|
|
|
|
|
background-color: #11111b;
|
|
|
|
|
/* background-color: rgba(24, 24, 37, 0.6); */
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#workspaces button {
|
|
|
|
|
padding: 0.3rem 0.6rem;
|
|
|
|
|
margin: 0.4rem 0.25rem;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
/* background-color: #181825; */
|
|
|
|
|
background-color: #1e1e2e;
|
|
|
|
|
color: #cdd6f4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#workspaces button:hover {
|
|
|
|
|
color: #1e1e2e;
|
|
|
|
|
background-color: #cdd6f4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#workspaces button.active {
|
|
|
|
|
background-color: #1e1e2e;
|
|
|
|
|
color: #89b4fa;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#workspaces button.urgent {
|
|
|
|
|
background-color: #1e1e2e;
|
|
|
|
|
color: #f38ba8;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#clock,
|
2024-12-19 21:47:51 -05:00
|
|
|
#pulseaudio,
|
|
|
|
|
#custom-logo,
|
|
|
|
|
#custom-power,
|
|
|
|
|
#custom-spotify,
|
|
|
|
|
#custom-notification,
|
|
|
|
|
#cpu,
|
2024-11-23 18:12:57 -05:00
|
|
|
#tray,
|
2024-12-19 21:47:51 -05:00
|
|
|
#memory,
|
|
|
|
|
#window,
|
|
|
|
|
#mpris {
|
|
|
|
|
padding: 0.3rem 0.6rem;
|
|
|
|
|
margin: 0.4rem 0.25rem;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
/* background-color: #181825; */
|
|
|
|
|
background-color: #1e1e2e;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#mpris.playing {
|
|
|
|
|
color: #a6e3a1;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#mpris.paused {
|
|
|
|
|
color: #9399b2;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#custom-sep {
|
|
|
|
|
padding: 0px;
|
|
|
|
|
color: #585b70;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
window#waybar.empty #window {
|
|
|
|
|
background-color: transparent;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#cpu {
|
|
|
|
|
color: #94e2d5;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#memory {
|
|
|
|
|
color: #cba6f7;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#clock {
|
|
|
|
|
color: #74c7ec;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#clock.simpleclock {
|
|
|
|
|
color: #89b4fa;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#window {
|
|
|
|
|
color: #cdd6f4;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
#pulseaudio {
|
|
|
|
|
color: #b4befe;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#pulseaudio.muted {
|
|
|
|
|
color: #a6adc8;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#custom-logo {
|
|
|
|
|
color: #89b4fa;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#custom-power {
|
|
|
|
|
color: #f38ba8;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tooltip {
|
|
|
|
|
background-color: #181825;
|
|
|
|
|
border: 2px solid #89b4fa;
|
2024-11-23 18:12:57 -05:00
|
|
|
}
|
|
|
|
|
'';
|
|
|
|
|
|
|
|
|
|
settings = {
|
|
|
|
|
mainBar = {
|
2024-12-19 21:47:51 -05:00
|
|
|
layer = "bottom";
|
2024-11-23 18:12:57 -05:00
|
|
|
position = "top";
|
2024-12-19 21:47:51 -05:00
|
|
|
height = 40;
|
|
|
|
|
spacing = 2;
|
|
|
|
|
exclusive = true;
|
|
|
|
|
"gtk-layer-shell" = true;
|
|
|
|
|
passthrough = false;
|
|
|
|
|
"fixed-center" = true;
|
|
|
|
|
"modules-left" = ["hyprland/workspaces" "hyprland/window"];
|
|
|
|
|
"modules-center" = ["mpris"];
|
|
|
|
|
"modules-right" = [
|
|
|
|
|
"cpu"
|
|
|
|
|
"memory"
|
|
|
|
|
"pulseaudio"
|
2024-11-23 18:12:57 -05:00
|
|
|
"clock"
|
2024-12-19 21:47:51 -05:00
|
|
|
"clock#simpleclock"
|
2024-11-23 18:12:57 -05:00
|
|
|
"tray"
|
2024-12-19 21:47:51 -05:00
|
|
|
"custom/notification"
|
|
|
|
|
"custom/power"
|
2024-11-23 18:12:57 -05:00
|
|
|
];
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
"custom/spotify" = {
|
|
|
|
|
format = " {}";
|
|
|
|
|
"return-type" = "json";
|
|
|
|
|
"on-click" = "playerctl -p spotify play-pause";
|
|
|
|
|
"on-click-right" = "spotifatius toggle-liked";
|
|
|
|
|
"on-click-middle" = "playerctl -p spotify next";
|
|
|
|
|
exec = "spotifatius monitor";
|
2024-11-23 18:12:57 -05:00
|
|
|
};
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
mpris = {
|
|
|
|
|
player = "spotify";
|
|
|
|
|
"dynamic-order" = ["artist" "title"];
|
|
|
|
|
format = "{player_icon} {dynamic}";
|
|
|
|
|
"format-paused" = "{status_icon} <i>{dynamic}</i>";
|
|
|
|
|
"status-icons" = {
|
|
|
|
|
paused = "";
|
|
|
|
|
};
|
|
|
|
|
"player-icons" = {
|
|
|
|
|
default = "";
|
2024-11-23 18:12:57 -05:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
"hyprland/workspaces" = {
|
|
|
|
|
"on-click" = "activate";
|
|
|
|
|
format = "{id}";
|
|
|
|
|
"all-outputs" = true;
|
|
|
|
|
"disable-scroll" = false;
|
|
|
|
|
"active-only" = false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
"hyprland/window" = {
|
|
|
|
|
format = "{title}";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
tray = {
|
|
|
|
|
"show-passive-items" = true;
|
|
|
|
|
spacing = 10;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
"clock#simpleclock" = {
|
|
|
|
|
tooltip = false;
|
|
|
|
|
format = " {:%H:%M}";
|
2024-11-23 18:12:57 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
clock = {
|
2024-12-19 21:47:51 -05:00
|
|
|
format = " {:L%a %d %b}";
|
|
|
|
|
calendar = {
|
|
|
|
|
format = {
|
|
|
|
|
days = "<span weight='normal'>{}</span>";
|
|
|
|
|
months = "<span color='#cdd6f4'><b>{}</b></span>";
|
|
|
|
|
today = "<span color='#f38ba8' weight='700'><u>{}</u></span>";
|
|
|
|
|
weekdays = "<span color='#f9e2af'><b>{}</b></span>";
|
|
|
|
|
weeks = "<span color='#a6e3a1'><b>W{}</b></span>";
|
|
|
|
|
};
|
|
|
|
|
mode = "month";
|
|
|
|
|
"mode-mon-col" = 1;
|
|
|
|
|
"on-scroll" = 1;
|
|
|
|
|
};
|
|
|
|
|
"tooltip-format" = "<span color='#cdd6f4' font='Lexend 16'><tt><small>{calendar}</small></tt></span>";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
cpu = {
|
|
|
|
|
format = " {usage}%";
|
|
|
|
|
tooltip = true;
|
|
|
|
|
interval = 1;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
memory = {
|
|
|
|
|
format = " {used:0.1f}Gi";
|
2024-11-23 18:12:57 -05:00
|
|
|
};
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
pulseaudio = {
|
|
|
|
|
format = "{icon} {volume}%";
|
|
|
|
|
"format-muted" = " muted";
|
|
|
|
|
"format-icons" = {
|
|
|
|
|
headphone = "";
|
|
|
|
|
default = [" " " " " "];
|
|
|
|
|
};
|
|
|
|
|
"on-click" = "pavucontrol";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
"custom/sep" = {
|
|
|
|
|
format = "|";
|
|
|
|
|
tooltip = false;
|
2024-11-23 18:12:57 -05:00
|
|
|
};
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
"custom/power" = {
|
|
|
|
|
tooltip = false;
|
|
|
|
|
"on-click" = "wlogout -p layer-shell &";
|
|
|
|
|
format = "⏻";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
"custom/notification" = {
|
|
|
|
|
escape = true;
|
|
|
|
|
exec = "swaync-client -swb";
|
|
|
|
|
"exec-if" = "which swaync-client";
|
|
|
|
|
format = "{icon}";
|
|
|
|
|
"format-icons" = {
|
|
|
|
|
none = "";
|
|
|
|
|
notification = "";
|
|
|
|
|
};
|
|
|
|
|
"on-click" = "sleep 0.1 && swaync-client -t -sw";
|
|
|
|
|
"return-type" = "json";
|
|
|
|
|
tooltip = false;
|
2024-11-23 18:12:57 -05:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|