updated waybar

This commit is contained in:
2026-03-13 17:38:40 +01:00
parent 20ea9cc4d1
commit d7c1b0e733
2 changed files with 268 additions and 396 deletions

View File

@@ -1,192 +1,186 @@
// ~/.config/waybar/config.jsonc // ~/.config/waybar/config.jsonc
{ [
"layer": "top", {
"position": "top", "name": "top",
// "output": "eDP-1", "layer": "top",
"height": 30, "position": "top",
"modules-left": ["hyprland/workspaces"], "height": 34,
"modules-center": [], "spacing": 4,
"modules-right": [ "margin-top": 6,
// "custom/pixelbuds_pro", "margin-left": 10,
"custom/network", "margin-right": 10,
"custom/mem",
"custom/cpu",
"custom/tlp",
"custom/volume",
"custom/mic",
"tray",
"clock"
],
"hyprland/workspaces": { "modules-left": [
"format": "{icon}", "hyprland/workspaces",
"on-click": "activate" "hyprland/window"
],
"modules-center": [
"clock"
],
"modules-right": [
"tray",
"custom/power_status"
],
// --- Standard Modules ---
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate"
},
"hyprland/window": {
"format": "{}",
"max-length": 50
},
"clock": {
"format": "{:%a %d %b %H:%M}",
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown",
"tooltip": false
},
"tray": {
"icon-size": 18,
"spacing": 10
},
// --- Fluxo-rs Power ---
"custom/power_status": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs power",
"on-click": "~/.config/hypr/scripts/powermenu.sh & disown",
"interval": 5
}
}, },
"hyprland/window": { {
"format": "{}", "name": "bottom",
"max-length": 35 "layer": "top",
}, "position": "bottom",
"clock": { "height": 34,
"format": "{:%a %d %b %H:%M}", "spacing": 4,
"format-alt": false, "margin-bottom": 6,
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown", "margin-left": 10,
"tooltip": false, "margin-right": 10,
},
"cpu": { "modules-left": [
"format": "CPU: {usage}%", "custom/sys",
"tooltip": true, "custom/cpu",
"interval": 1 "custom/mem",
}, "custom/network"
"memory": { ],
"format": "MEM: {used}/{total}GB", "modules-center": [
"interval": 3 "custom/gamemode"
}, ],
"network": { "modules-right": [
"format-wifi": "{essid} ({signalStrength}%): {ipaddr}", "custom/disk-root",
"format-ethernet": "{ifname}: {ipaddr}", "custom/bluetooth-audio",
"format-disconnected": "Disconnected", "custom/volume",
"tooltip-format": "{ifname} via {gwaddr}" "custom/mic"
}, ],
"custom/volume": {
"format": "{}", // --- Fluxo-rs System & Hardware ---
"return-type": "json", "custom/sys": {
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs vol", "format": "{}",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", "return-type": "json",
"on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+", "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs sys",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-", "interval": 5
"on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs vol --cycle", },
"on-click-middle": "pavucontrol", "custom/cpu": {
"interval": 2 "format": "{}",
}, "return-type": "json",
"custom/mic": { "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs cpu",
"format": "{}", "on-click": "zenmonitor & disown",
"return-type": "json", "interval": 3
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mic", },
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle", "custom/mem": {
"on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+", "format": "{}",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%-", "return-type": "json",
"on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mic --cycle", "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mem",
"on-click-middle": "pavucontrol", "interval": 3
"interval": 2 },
}, "custom/network": {
"custom/bluetooth-audio": { "format": "{}",
"format": "{}", "return-type": "json",
"return-type": "json", "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs net",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs bt", "interval": 2
"interval": 3, },
"on-click": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs bt disconnect"
}, // --- Fluxo-rs Utilities ---
"tray": { "custom/disk-root": {
"icon-size": 18, "format": "{}",
"spacing": 6 "return-type": "json",
}, "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk /",
"custom/power": { "interval": 30
"format": "", },
"tooltip": false, "custom/gamemode": {
"on-click": "~/.config/hypr/scripts/powermenu.sh & disown" "format": "{}",
}, "return-type": "json",
"custom/tlp": { "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs game",
"format": "{}", "on-click": "~/.config/hypr/scripts/gamemode.sh & disown",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs power", "interval": 1
"return-type": "json", },
"interval": 5
}, // --- Fluxo-rs Audio & BT ---
"battery": { "custom/volume": {
"states": { "format": "{}",
"warning": 30, "return-type": "json",
"critical": 15 "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs vol",
}, "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"format": "{capacity}%", "on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+",
"format-charging": "{capacity}%", "on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-",
"format-plugged": "{capacity}%", "on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs vol --cycle",
"format-alt": "{time} {icon}", "on-click-middle": "pavucontrol",
"format-full": "{capacity}%", "interval": 2
"format-icons": ["", "", "", "", ""] },
}, "custom/mic": {
"custom/pixelbuds_pro": { "format": "{}",
"format": "{}", "return-type": "json",
"return-type": "json", "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mic",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",
"interval": 5, "on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+",
"on-click": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds connect & disown", "on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%-",
"on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds cycle_anc & disown" "on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mic --cycle",
}, "on-click-middle": "pavucontrol",
"custom/gamemode": { "interval": 2
"format": "{}", },
"return-type": "json", "custom/bluetooth-audio": {
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs game", "format": "{}",
"on-click": "~/.config/hypr/scripts/gamemode.sh & disown", "return-type": "json",
"interval": 1 "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs bt",
}, "on-click": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs bt disconnect",
"custom/gpu-screen-recorder": { "interval": 3
"format": "{}", }
"return-type": "json",
"exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh", // --- Commented Out Modules ---
"on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save & disown", /*
"on-click-middle": "nautilus ~/Videos/replay & disown", "custom/gpu": {
"on-click": "~/.config/waybar/scripts/toggle-replay.sh & disown", "format": "{}",
"interval": 1 "return-type": "json",
}, "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs gpu",
"custom/gpu": { "on-click": "lact gui & disown",
"format": "{}", "interval": 3
"return-type": "json", },
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs gpu", "custom/btrfs": {
"on-click": "lact gui & disown", "format": "{}",
"interval": 3 "return-type": "json",
}, "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs pool",
"custom/sys": { "interval": 30
"format": "{}", },
"return-type": "json", "custom/pixelbuds_pro": {
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs sys", "format": "{}",
"interval": 5 "return-type": "json",
}, "exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds",
"custom/cpu": { "on-click": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds connect & disown",
"format": "{}", "on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds cycle_anc & disown",
"return-type": "json", "interval": 5
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs cpu", },
"on-click": "zenmonitor & disown", "custom/gpu-screen-recorder": {
"interval": 3 "format": "{}",
}, "return-type": "json",
"custom/mem": { "exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh",
"format": "{}", "on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save & disown",
"return-type": "json", "on-click-middle": "nautilus ~/Videos/replay & disown",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mem", "on-click": "~/.config/waybar/scripts/toggle-replay.sh & disown",
"interval": 3 "interval": 1
}, }
"custom/btrfs": { */
"format": "{}",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs pool",
"return-type": "json",
"interval": 30
},
"custom/disk-root": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk",
"interval": 30
},
"custom/disk-gdrive": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk ~/gdrive",
"interval": 30
},
"custom/disk-data": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk ~/data",
"interval": 30
},
"custom/disk-games": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk ~/games",
"interval": 30
},
"custom/network": {
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs net",
"interval": 2, // in seconds
"format": "{}",
"return-type": "json"
} }
} ]

View File

@@ -1,255 +1,133 @@
/* ~/.config/waybar/style.css */ /* ~/.config/waybar/style.css */
@import "./catppuccin-waybar/themes/mocha.css"; @import "./catppuccin-waybar/themes/mocha.css";
/* --- Global Reset --- */
* { * {
border: none; border: none;
border-radius: 0; border-radius: 0;
min-height: 0; min-height: 0;
font-family: JetBrainsMono Nerd Font; font-family: JetBrainsMono Nerd Font, monospace;
font-size: 13px; font-size: 13px;
transition: all 0.2s ease;
} }
/* --- Bar Background (Floating Island Style) --- */
window#waybar { window#waybar {
background-color: alpha(@base, 0.4); background-color: transparent;
padding: 4px;
transition-property: background-color;
transition-duration: 0.5s;
color: @text; color: @text;
} }
window#waybar.hidden { /* --- Shared Island Styling --- */
opacity: 0.5; #workspaces,
#window,
#clock,
#tray,
#custom-sys,
#custom-cpu,
#custom-gpu,
#custom-mem,
#custom-network,
#custom-btrfs,
#custom-disk-root,
#custom-pixelbuds_pro,
#custom-bluetooth-audio,
#custom-volume,
#custom-mic,
#custom-gamemode,
#custom-gpu-screen-recorder,
#custom-power_status {
background-color: alpha(@surface0, 0.95);
margin: 4px 2px;
padding: 0 12px;
border-radius: 12px;
border: 1px solid alpha(@surface1, 0.5);
} }
/* --- Top Bar Special Handling --- */
window#waybar.top {
margin-top: 6px;
}
/* --- Bottom Bar Special Handling --- */
window#waybar.bottom {
margin-bottom: 6px;
}
/* --- Workspaces --- */
#workspaces button { #workspaces button {
all: initial; padding: 0 8px;
/* Remove GTK theme values (waybar #1351) */ margin: 4px 2px;
min-width: 0; border-radius: 8px;
/* Fix weird spacing in materia (waybar #450) */
box-shadow: inset 0 -3px transparent;
/* Use box-shadow instead of border so the text isn't offset */
padding: 0px 12px;
margin: 0px 3px;
border-radius: 10px;
background-color: @base;
color: @subtext0; color: @subtext0;
background-color: transparent;
} }
#workspaces button.active { #workspaces button.active {
color: @text; color: @blue;
border-bottom: 3px solid @blue; background-color: @surface1;
}
#workspaces button:hover {
box-shadow: inherit;
text-shadow: inherit;
background-color: @surface0;
color: @text;
} }
#workspaces button.urgent { #workspaces button.urgent {
border-bottom: 3px solid @maroon; color: @red;
} }
#memory, #workspaces button:hover {
#cpu, background-color: @surface2;
#custom-gpu,
#custom-cpu,
#custom-mem,
#custom-power,
#custom-gamemode,
#custom-tlp,
#battery,
#backlight,
#wireplumber,
#custom-volume,
#custom-mic,
#custom-network,
#network,
#clock,
#tray,
#custom-disk-root,
#custom-disk-gdrive,
#custom-disk-games,
#custom-disk-data,
#custom-pixelbuds_pro,
#custom-bluetooth-audio,
#custom-btrfs,
#custom-gpu-screen-recorder {
border-radius: 10px;
margin: 0px 2px;
padding: 0px 10px;
background-color: @base;
color: @text; color: @text;
} }
#wireplumber.muted, #custom-pixelbuds_pro, #custom-volume.muted, #custom-mic.muted { /* --- Clock (Centered Pill) --- */
background-color: @base; #clock {
color: @subtext1; color: @mauve;
border-bottom: 3px solid @subtext1; font-weight: bold;
} }
#custom-pixelbuds_pro.disconnected { /* --- Power Status --- */
padding-right: 10px; #custom-power_status {
padding-left: 8px; font-weight: bold;
} }
#custom-power_status.charging { color: @green; border-color: @green; }
#custom-gpu-screen-recorder, #custom-power_status.bat { color: @yellow; }
#custom-gpu-screen-recorder.recording { #custom-power_status.warning { color: @peach; }
padding-right: 12px; #custom-power_status.critical {
padding-left: 4px; color: @red;
} border-color: @red;
animation: blink 1s infinite alternate;
#custom-gamemode {
padding-right: 9px;
padding-left: 5px;
}
#custom-pixelbuds_pro.anc-active {
color: @sapphire;
border-bottom: 3px solid @sapphire;
}
#custom-bluetooth-audio {
color: @sapphire;
border-bottom: 3px solid @sapphire;
}
#custom-pixelbuds_pro.anc-aware {
color: @sapphire;
border-bottom: 3px solid @sapphire;
}
#custom-pixelbuds_pro.anc-off {
color: @text;
border-bottom: 3px solid @text;
}
#custom-gpu-screen-recorder,
#custom-gamemode {
background-color: @base;
color: @subtext1;
border-bottom: 3px solid @subtext1;
}
#custom-power {
color: @maroon;
}
#custom-gpu-screen-recorder.recording,
#custom-gamemode.active {
color: @maroon;
border-bottom: 3px solid @maroon;
}
#custom-tlp {
padding: 0 10px;
min-width: 10px;
}
#custom-tlp.charging {
color: @mauve;
border-bottom: 3px solid @mauve;
}
#custom-tlp.bat {
color: @sapphire;
border-bottom: 3px solid @sapphire;
}
#custom-tlp.warning {
color: @yellow;
border-bottom: 3px solid @yellow;
}
#custom-tlp.critical {
color: @red;
border-bottom: 3px solid @red;
animation-name: blink;
animation-duration: 0.8s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
} }
@keyframes blink { @keyframes blink {
to { to { background-color: alpha(@red, 0.4); }
color: @yellow;
border-bottom: 3px solid @yellow;
opacity: 0.6;
}
} }
#custom-gpu.max, /* --- Hardware Metrics (Left Bottom) --- */
#custom-cpu.max, #custom-sys { color: @teal; }
#custom-mem.max, #custom-cpu { color: @blue; }
#custom-btrfs.max, #custom-mem { color: @lavender; }
#custom-disk-root.max, #custom-network { color: @sapphire; }
#custom-disk-gdrive.max,
#custom-disk-games.max,
#custom-disk-data.max {
color: @maroon;
/* border-bottom: 3px solid @maroon; */
}
#custom-gpu.high, #custom-cpu.high, #custom-mem.high { color: @yellow; }
#custom-gpu.high, #custom-cpu.max, #custom-mem.max { color: @red; }
#custom-cpu.high,
#custom-mem.high,
#custom-btrfs.high,
#custom-disk-root.high,
#custom-disk-gdrive.high,
#custom-disk-games.high,
#custom-disk-data.high {
color: @yellow;
/* border-bottom: 3px solid @yellow; */
}
#memory, /* --- Center Bottom Utilities --- */
#cpu, #custom-gamemode { color: @yellow; }
#disk, #custom-gamemode.active { color: @red; border-color: @red; }
#network,
#custom-network,
#custom-gpu.normal,
#custom-cpu.normal,
#custom-mem.normal,
#custom-btrfs.normal,
#custom-disk-root.normal,
#custom-disk-gdrive.normal,
#custom-disk-games.normal,
#custom-disk-data.normal {
color: @blue;
/* border-bottom: 3px solid @mauve; */
}
/* --- Right Bottom Controls --- */
#custom-disk-root { color: @sky; }
#custom-volume { color: @mauve; }
#custom-mic { color: @flamingo; }
#custom-volume.muted, #custom-mic.muted { color: @overlay0; }
#backlight { #custom-bluetooth-audio { color: @blue; }
color: @mauve;
}
#custom-volume.muted, #custom-mic.muted {
padding-right: 15px;
}
#custom-volume.unmuted, #custom-mic.unmuted, #wireplumber {
color: @mauve;
border-bottom: 3px solid @mauve;
}
#clock {
color: @mauve;
}
#network {
}
/* --- Tooltip --- */
tooltip { tooltip {
border-radius: 10px; background-color: alpha(@base, 0.95);
padding: 9px; border: 1px solid @surface1;
background-color: @base; border-radius: 12px;
} }
tooltip label { tooltip label {
padding: 5px; color: @text;
background-color: @base; padding: 8px;
} }