This commit is contained in:
Lucy von Overheidt 2025-09-10 02:21:10 +02:00
parent 1a4ef774e4
commit 201f76f230
8 changed files with 799 additions and 152 deletions

View file

@ -1,119 +1,443 @@
{
config,
pkgs,
...
}:
{
home.packages = with pkgs; [ waybar ];
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 28;
output = [ "eDP-1" ];
margin = "10 20";
modules-left = [
"modules-left" = [
"niri/workspaces"
"custom/catgirl-status"
"hyprland/window"
];
modules-center = [ "sway/window" ];
modules-right = [
"battery"
"network"
"clock"
"modules-center" = [ "clock" ];
"modules-right" = [
"tray"
"cpu"
"memory"
"idle_inhibitor"
"pulseaudio"
"bluetooth"
];
# Catgirl status placeholder
"custom/catgirl-status" = {
interval = 10;
exec = ''
echo ""
'';
format = "{}";
max-length = 40;
tooltip = false;
"hyprland/window" = {
format = "{title}";
"max-length" = 333;
"seperate-outputs" = true;
};
# Workspaces with numbers instead of icons
"niri/workspaces" = {
all-outputs = true;
disable-click = false;
format = "{name}";
disable-markup = false;
max-length = 6;
};
battery = {
format = "🔋 {capacity}%";
low = 20;
critical = 10;
format-low = " {capacity}%";
format-critical = "🚨 {capacity}%";
tooltip = true;
};
network = {
interface = "wlan0";
format-connected = "📶 {essid}";
format-disconnected = "📡 disconnected";
tooltip = true;
};
clock = {
format = "{:%a %b %d, %H:%M}";
tooltip = false;
format = "<span foreground='#282828'> </span><span>{:%I:%M %a %d}</span>";
"tooltip-format" = "{calendar}";
calendar = {
mode = "month";
"mode-mon-col" = 3;
"on-scroll" = 1;
"on-click-right" = "mode";
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
days = "<span color='#ecc6d9'><b>{}</b></span>";
weeks = "<span color='#99ffdd'><b>{%W}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b>{}</b></span>";
};
};
actions = {
"on-click-middle" = "mode";
"on-click-right" = "shift_up";
"on-click" = "shift_down";
};
};
cpu = {
format = "<span foreground='#b8bb26'>󰯳</span> {usage}%";
};
memory = {
format = "<span foreground='#d65d9e'>󰍛</span> {}%";
interval = 1;
};
"custom/gpu-util" = {
exec = "./scripts/gpu-util";
format = "<span foreground='#67b0e8'>󰯿</span> {}";
interval = 1;
};
"custom/gpu-temp" = {
exec = "./scripts/gpu-temp";
format = "<span foreground='#e57474'></span> {}";
interval = 1;
};
temperature = {
"hwmon-path" = "/sys/class/hwmon/hwmon1/temp1_input";
"critical-threshold" = 80;
format = "<span foreground='#83a598'></span> {temperatureC}°C";
interval = 1;
};
"niri/workspaces" = {
format = "{icon}";
"active-only" = false;
"sort-by-number" = true;
"on-click" = "activate";
"all-outputs" = false;
"format-icons" = {
"1" = "1";
"2" = "2";
"3" = "3";
"4" = "4";
"5" = "5";
"6" = "6";
"7" = "7";
"8" = "8";
"9" = "9";
"10" = "10";
};
};
network = {
format = "󰤭 Off";
"format-wifi" = "{essid} ({signalStrength}%)";
"format-ethernet" = "<span foreground='#b48ead'>󰈀</span>";
"format-disconnected" = "󰤭 Disconnected";
"tooltip-format" = "{ifname} via {gwaddr} ";
"tooltip-format-wifi" = "{essid}({signalStrength}%) ";
"tooltip-format-ethernet" = "󰈀 {ifname}";
"tooltip-format-disconnected" = "Disconnected";
};
pulseaudio = {
format = "<span foreground='#cc241d'>{icon}</span> {volume}% {format_source}";
"format-bluetooth" = "<span foreground='#b16286'>{icon}</span> {volume}% {format_source}";
"format-bluetooth-muted" = "<span foreground='#D699B6'>󰖁</span> {format_source}";
"format-muted" = "<span foreground='#7A8478'>󰖁</span> {format_source}";
"format-source" = "<span foreground='#E67E80'></span> {volume}%";
"format-source-muted" = "<span foreground='#F38BA8'></span>";
"format-icons" = {
headphone = "";
phone = "";
portable = "";
default = [
""
""
""
];
};
"on-click-left" = "pavucontrol";
input = true;
};
"custom/playerctl" = {
format = "{icon} <span>{}</span>";
"return-type" = "json";
"max-length" = 333;
exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} ~ {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F";
"on-click-middle" = "playerctl play-pause";
"on-click" = "playerctl previous";
"on-click-right" = "playerctl next";
"format-icons" = {
Playing = "<span foreground='#98BB6C'></span>";
Paused = "<span foreground='#E46876'></span>";
};
};
tray = {
format = "<span foreground='#D3C6AA'>{icon}</span>";
"icon-size" = 14;
spacing = 5;
};
idle_inhibitor = {
format = "{icon}";
"format-icons" = {
activated = "󱠛";
deactivated = "󱤱";
};
};
"custom/subs" = {
format = "<span foreground='#fbf1c7'>󰗃 </span> {}";
exec = "/usr/local/bin/subsfile.sh";
"on-click" = "vivaldi-stable https://youtube.com/thelinuxcast";
"restart-interval" = 1;
};
"custom/spacer" = {
format = " ";
};
"wlr/taskbar" = {
format = "{name}";
"icon-size" = 14;
"icon-theme" = "Numix-Circle";
"tooltip-format" = "{title}";
"on-click" = "activate";
"on-click-middle" = "close";
"ignore-list" = [ "Alacritty" ];
"app_ids-mapping" = {
firefoxdeveloperedition = "firefox-developer-edition";
};
rewrite = {
"Firefox Web Browser" = "Firefox";
"Foot Server" = "Terminal";
};
};
bluetooth = {
"on-click" = "./scripts/bluetooth-control";
"on-click-right" = "./scripts/rofi-bluetooth";
"on-click-middle" = "./scripts/rofi-bluetooth";
format = "{icon}";
interval = 15;
"format-icons" = {
on = "<span foreground='#43242B'></span>";
off = "<span foreground='#76946A'>󰂲</span>";
disabled = "󰂲";
connected = "";
};
"tooltip-format" = "{device_alias} {status}";
};
};
};
style = ''
@define-color bg #${config.stylix.base16Scheme.base00};
@define-color fg #${config.stylix.base16Scheme.base05};
@define-color lbg #${config.stylix.base16Scheme.base01};
@define-color yellow #${config.stylix.base16Scheme.base0A};
@define-color lavender #${config.stylix.base16Scheme.base0E};
@define-color peach #${config.stylix.base16Scheme.base0A};
@define-color red #${config.stylix.base16Scheme.base08};
@define-color green #${config.stylix.base16Scheme.base0B};
@define-color blue #${config.stylix.base16Scheme.base0D};
@define-color border #${config.stylix.base16Scheme.base02};
* {
font-family: "Comic Mono", "Fira Mono", monospace;
border-radius: 12px;
font-weight: 600;
padding: 5px 15px;
min-height: 0;
margin: 0px 0px 0px 0px;
padding: 0;
border-radius: 7px;
font-family: "JetBrains Mono Nerd Font";
font-size: 14pt;
font-weight: 700;
padding-bottom: 0px;
}
tooltip {
background: @bg;
border-radius: 7px;
border: 2px solid @border;
}
#window {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 7px;
border-radius: 3px;
border-color: @lbg;
background-color: @yellow;
color: @bg;
}
window#waybar.empty #window {
background-color: @bg;
border-bottom: none;
border-right: none;
}
window#waybar {
background-color: #3A3A58;
color: #FF69B4;
border: 2px solid #FF69B4;
box-shadow: 0 0 15px #FF69B4AA;
background-color: @bg;
color: @lavender;
}
/* Workspaces */
@keyframes button_activate {
from { opacity: .3 }
to { opacity: 1.; }
}
#workspaces {
margin: 0px 0px 0px 0px;
border-radius: 3px;
padding: 1px;
background-color: @bg;
color: @bg;
}
#workspaces button {
background-color: #FF69B4;
color: #3A3A58;
margin: 0 3px;
border-radius: 8px;
padding: 3px 10px;
transition: background-color 0.2s ease;
font-family: "Fira Mono", monospace;
}
#workspaces button:hover {
background-color: #FFB6C1;
color: #1A1A2E;
margin: 0px 0px 0px 0px;
border-radius: 3px;
padding-left: 3px;
padding-right: 9px;
background-color: @bg;
color: @fg;
}
#workspaces button.active {
background-color: #FF69B4;
color: #FFF0F5;
font-weight: bold;
background-color:@blue;
color: @bg;
}
#workspaces button.urgent {
color: #F38BA8;
}
#workspaces button:hover {
border: solid transparent;
}
#custom-gpu-util {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
border-radius: 7px;
background-color: @bg;
color: @fg;
}
#tray {
margin: 0px 0px 0px 0px;
border-radius: 3px;
padding-left: 10px;
padding-right: 10px;
background-color: @bg;
color: @fg;
}
#idle_inhibitor {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 12px;
border-radius: 3px;
background-color: @bg;
color: @fg;
}
#network {
margin: 5px 5px 2px 5px;
padding-left: 10px;
padding-right: 12px;
border-radius: 7px;
background-color: @bg;
color: @lavender;
}
#network.linked {
color: @peach;
}
#network.disconnected,
#network.disabled {
color: @red;
}
#custom-subs {
color: @fg;
margin: 5px 5px 2px 5px;
padding-left: 10px;
padding-right: 12px;
border-radius: 3px;
border-bottom: 2px solid @bg;
border-right: 2px solid @bg;
border-color: @lbg;
background-color: @red;
}
#custom-spacer {
background-color: @yellow;
}
#custom-cliphist {
color: @peach;
margin: 5px 5px 2px 5px;
padding-left: 10px;
padding-right: 12px;
border-radius: 3px;
background-color: @bg;
}
#custom-gpu-temp,
#cpu,
#memory,
#custom-clipboard,
#temperature {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
color: @fg;
background-color: @bg;
}
#custom-playerctl {
margin: 5px 5px 2px 5px;
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
color: @fg;
background-color: @bg;
}
#battery,
#backlight,
#bluetooth,
#pulseaudio {
margin-top: 5px;
margin-bottom: 2px;
color: @fg;
background-color: @bg;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
#battery,
#bluetooth {
margin-left: 0px;
margin-right: 5px;
padding-left: 7.5px;
padding-right: 10px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
#backlight,
#pulseaudio {
margin-right: 0px;
margin-left: 5px;
padding-left: 10px;
padding-right: 7.5px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
#clock {
font-style: italic;
color: #FFC0CB;
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
color: @bg;
background-color: @green;
}
#battery, #network {
color: #FFB6C1;
#taskbar {
border-radius: 0px 0px 0px 0;
padding: 0 3px;
margin: 0 0px;
color: #ffffff;
background-color: rgba(120,118,117,0.3);
}
#taskbar button {
border-radius: 0px 0px 0px 0px;
padding: 0 0 0 3px;
margin: 3px 1;
color: #ffffff;
background-color: rgba(120,118,117,0.1);
}
#taskbar button.active {
background-color: rgba(120,118,117,0.8);
}
#custom-catgirl-status {
font-size: 1.1em;
color: #FF69B4;
font-weight: bold;
font-family: "Comic Mono", monospace;
#mode {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
background-color: @bg;
color: @peach;
}
'';
};