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

View File

@@ -1,255 +1,133 @@
/* ~/.config/waybar/style.css */
@import "./catppuccin-waybar/themes/mocha.css";
/* --- Global Reset --- */
* {
border: none;
border-radius: 0;
min-height: 0;
font-family: JetBrainsMono Nerd Font;
font-family: JetBrainsMono Nerd Font, monospace;
font-size: 13px;
transition: all 0.2s ease;
}
/* --- Bar Background (Floating Island Style) --- */
window#waybar {
background-color: alpha(@base, 0.4);
padding: 4px;
transition-property: background-color;
transition-duration: 0.5s;
background-color: transparent;
color: @text;
}
window#waybar.hidden {
opacity: 0.5;
/* --- Shared Island Styling --- */
#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 {
all: initial;
/* Remove GTK theme values (waybar #1351) */
min-width: 0;
/* 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;
padding: 0 8px;
margin: 4px 2px;
border-radius: 8px;
color: @subtext0;
background-color: transparent;
}
#workspaces button.active {
color: @text;
border-bottom: 3px solid @blue;
}
#workspaces button:hover {
box-shadow: inherit;
text-shadow: inherit;
background-color: @surface0;
color: @text;
color: @blue;
background-color: @surface1;
}
#workspaces button.urgent {
border-bottom: 3px solid @maroon;
color: @red;
}
#memory,
#cpu,
#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;
#workspaces button:hover {
background-color: @surface2;
color: @text;
}
#wireplumber.muted, #custom-pixelbuds_pro, #custom-volume.muted, #custom-mic.muted {
background-color: @base;
color: @subtext1;
border-bottom: 3px solid @subtext1;
/* --- Clock (Centered Pill) --- */
#clock {
color: @mauve;
font-weight: bold;
}
#custom-pixelbuds_pro.disconnected {
padding-right: 10px;
padding-left: 8px;
/* --- Power Status --- */
#custom-power_status {
font-weight: bold;
}
#custom-gpu-screen-recorder,
#custom-gpu-screen-recorder.recording {
padding-right: 12px;
padding-left: 4px;
}
#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;
#custom-power_status.charging { color: @green; border-color: @green; }
#custom-power_status.bat { color: @yellow; }
#custom-power_status.warning { color: @peach; }
#custom-power_status.critical {
color: @red;
border-color: @red;
animation: blink 1s infinite alternate;
}
@keyframes blink {
to {
color: @yellow;
border-bottom: 3px solid @yellow;
opacity: 0.6;
}
to { background-color: alpha(@red, 0.4); }
}
#custom-gpu.max,
#custom-cpu.max,
#custom-mem.max,
#custom-btrfs.max,
#custom-disk-root.max,
#custom-disk-gdrive.max,
#custom-disk-games.max,
#custom-disk-data.max {
color: @maroon;
/* border-bottom: 3px solid @maroon; */
}
/* --- Hardware Metrics (Left Bottom) --- */
#custom-sys { color: @teal; }
#custom-cpu { color: @blue; }
#custom-mem { color: @lavender; }
#custom-network { color: @sapphire; }
#custom-gpu.high,
#custom-gpu.high,
#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; */
}
#custom-cpu.high, #custom-mem.high { color: @yellow; }
#custom-cpu.max, #custom-mem.max { color: @red; }
#memory,
#cpu,
#disk,
#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; */
}
/* --- Center Bottom Utilities --- */
#custom-gamemode { color: @yellow; }
#custom-gamemode.active { color: @red; border-color: @red; }
/* --- 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 {
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 {
}
#custom-bluetooth-audio { color: @blue; }
/* --- Tooltip --- */
tooltip {
border-radius: 10px;
padding: 9px;
background-color: @base;
background-color: alpha(@base, 0.95);
border: 1px solid @surface1;
border-radius: 12px;
}
tooltip label {
padding: 5px;
background-color: @base;
color: @text;
padding: 8px;
}