added modules to waybar

This commit is contained in:
2025-08-09 15:32:12 +02:00
parent 134a0ff79a
commit 283a649486
15 changed files with 223 additions and 264 deletions

View File

@@ -3,19 +3,25 @@
"layer": "top",
"position": "top",
"height": 35,
"modules-left": ["hyprland/workspaces"],
"modules-left": [
"hyprland/workspaces"
],
"modules-center": [],
"modules-right": ["tray",
"modules-right": [
"wireplumber",
"custom/audio-output",
"custom/pixelbuds",
"custom/anc",
"network",
"custom/gpu-usage",
"cpu",
"memory",
"clock",
"memory",
"custom/gpu-usage",
"custom/gpu-screen-recorder",
"custom/gamemode",
"custom/power"
"tray",
"clock"
// "custom/power"
],
"hyprland/workspaces": {
@@ -29,14 +35,20 @@
"clock": {
"format": "{:%H:%M}",
"format-alt": "{:%a, %b %d}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown"
},
"custom/gpu": {
"format": "GPU: {}%",
"exec": "~/.config/waybar/scripts/gpu_usage.sh",
"interval": 1,
"tooltip": true
},
"cpu": {
"format": "CPU: {usage}%",
"tooltip": true
},
"memory": {
"format": "MEM: {}%"
"format": "MEM: {used}/{total}GB"
},
"network": {
"format-wifi": "{essid} ({signalStrength}%): {ipaddr}",
@@ -101,14 +113,14 @@
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/pixelbuds.sh",
"interval": 5,
"interval": 1,
"on-click": "bluetoothctl disconnect B4:23:A2:09:D3:53"
},
"custom/anc": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/anc_control.sh",
"interval": 5,
"interval": 1,
"on-click": "~/.config/waybar/scripts/anc_control.sh off",
"on-click-right": "~/.config/waybar/scripts/anc_control.sh cycle"
},
@@ -120,7 +132,24 @@
"interval": 1
},
"custom/gamemode": {
"format": "󰮂",
"on-click": "~/.config/hypr/scripts/gamemode.sh"
}
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/gamemode_status.sh",
"on-click": "~/.config/hypr/scripts/gamemode.sh",
"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",
"on-click": "~/.config/waybar/scripts/toggle-replay.sh",
"interval": 1
},
"custom/gpu-usage": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/gpu_usage.sh",
"interval": 5
}
}

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env sh
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
if [ "$HYPRGAMEMODE" = 1 ] ; then
echo '{"text": "Gamemode", "tooltip": "Gamemode deactivated"}'
else
echo '{"text": "Gamemode", "tooltip": "Gamemode activated", "class": "active"}'
fi

View File

@@ -0,0 +1,18 @@
#!/bin/bash
PID_FILE="/tmp/gpu-screen-recorder.pid"
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
if ps -p "$PID" > /dev/null; then
echo '{"text": "Replay", "tooltip": "Replay running", "class": "recording"}'
else
# The process is not running, but the PID file exists.
# This can happen if the process crashed.
# We'll remove the stale PID file.
rm "$PID_FILE"
echo '{"text": "Replay", "tooltip": "Replay paused"}'
fi
else
echo '{"text": "Replay", "tooltip": "Replay paused"}'
fi

19
waybar/scripts/gpu_usage.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
USAGE=$(cat /sys/class/drm/card1/device/gpu_busy_percent)
MEM_USED=$(cat /sys/class/drm/card1/device/mem_info_vram_used)
MEM_TOTAL=$(cat /sys/class/drm/card1/device/mem_info_vram_total)
GPU=$(/opt/rocm/bin/rocm-smi --showproductname | grep "Card Series" | awk -F':' '{print $3}' | xargs)
TEXT="$USAGE% $(printf "%.2f\n" $(echo "scale=2; $MEM_USED/1024/1024/1024" | bc -l))/$(echo "scale=2; $MEM_TOTAL/1024/1024/1024" | bc -l)GB"
RATIO=$(echo "$MEM_USED/ $MEM_TOTAL" | bc -l)
CLASS=""
if (( $(echo "$USAGE > 95" | bc -l) )); then
CLASS="max_usage"
elif (( $(echo "$USAGE > 75" | bc -l) )); then
CLASS="high_usage"
else
CLASS="normal_usage"
fi
echo "{\"text\":\"GPU: $TEXT\", \"tooltip\": \"$GPU\", \"class\":\"$CLASS\"}"

View File

@@ -0,0 +1,9 @@
#!/bin/bash
PID_FILE="/tmp/gpu-screen-recorder.pid"
if [ -f "$PID_FILE" ] && ps -p "$(cat "$PID_FILE")" > /dev/null; then
$HOME/.config/hypr/scripts/replay-ctrl.sh stop
else
$HOME/.config/hypr/scripts/replay-ctrl.sh start
fi

View File

@@ -55,6 +55,7 @@ window#waybar.hidden {
#memory,
#cpu,
#custom-gpu-usage,
#custom-power,
#custom-gamemode,
#custom-tlp,
@@ -66,10 +67,11 @@ window#waybar.hidden {
#tray,
#custom-pixelbuds,
#custom-anc,
#custom-audio-output {
#custom-audio-output,
#custom-gpu-screen-recorder {
border-radius: 4px;
margin: 6px 3px;
padding: 6px 12px;
padding: 6px 16px 6px 12px;
background-color: @base;
color: @text;
}
@@ -92,10 +94,19 @@ window#waybar.hidden {
#custom-anc.disconnected {
}
#custom-power,
#custom-gpu-screen-recorder,
#custom-gamemode {
border-bottom: 3px solid @text;
}
#custom-power {
color: @red;
padding: 6px 12px 6px 10px;
}
#custom-gpu-screen-recorder.recording,
#custom-gamemode.active {
color: @red;
border-bottom: 3px solid @red;
}
#custom-tlp {
@@ -136,10 +147,21 @@ window#waybar.hidden {
}
}
#custom-gpu-usage.max_usage {
color: @maroon;
}
#custom-gpu-usage.high_usage {
color: @yellow;
}
#custom-gpu-usage.normal_usage {
color: @teal;
}
#memory,
#cpu {
color: @maroon;
border-bottom: 3px solid @maroon;
color: @teal;
}
@@ -165,7 +187,8 @@ window#waybar.hidden {
#clock {
font-family: JetBrainsMono Nerd Font;
color: @mauve;
color: @green;
border-bottom: 3px solid @green;
}
tooltip {

View File

@@ -1,157 +0,0 @@
/* ~/.config/waybar/style.css */
@import "./catppuccin-waybar/themes/mocha.css";
* {
border: none;
border-radius: 0;
min-height: 0;
font-family: JetBrainsMono Nerd Font;
font-size: 13px;
}
window#waybar {
background-color: alpha(@base, 0.6);
margin: 10px;
transition-property: background-color;
transition-duration: 0.5s;
color: @text;
}
window#waybar.hidden {
opacity: 0.5;
}
#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: 6px 18px;
margin: 6px 3px;
border-radius: 3px;
background-color: alpha(@base, 0.9);
color: @text;
}
#workspaces button.active {
border-bottom: 3px solid @green;
}
#workspaces button:hover {
box-shadow: inherit;
text-shadow: inherit;
background-color: @teal;
color: @base;
}
#workspaces button.urgent {
border-bottom: 3px solid @red;
}
#memory,
#cpu,
#custom-power,
#custom-tlp,
#battery,
#backlight,
#wireplumber,
#network,
#clock,
#tray {
border-radius: 4px;
margin: 6px 3px;
padding: 6px 12px;
background-color: @base;
color: @text;
}
#custom-power {
color: @red;
padding: 6px 12px 6px 10px;
}
#custom-tlp {
padding: 0 10px;
padding-right: 10px;
margin-right: 0;
}
#custom-tlp.ac {
color: @green; /* Catppuccin Green for AC power */
}
#custom-tlp.bat {
color: @yellow; /* Catppuccin Yellow for Battery power */
}
#battery {
color: @text;
padding: 0 10px;
padding-left: 0;
margin-left: 0;
}
#battery.charging, #battery.plugged {
color: @green;
}
#battery.warning {
color: @yellow;
}
#battery.critical {
color: @red;
animation-name: blink;
animation-duration: 0.8s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
@keyframes blink {
to {
color: @text;
}
}
#memory,
#cpu {
color: @maroon;
}
#backlight {
color: @mauve;
}
#wireplumber {
color: @mauve;
padding-right: 15px;
}
#network {
color: @mauve;
padding-right: 15px;
}
#clock {
font-family: JetBrainsMono Nerd Font;
color: @mauve;
}
tooltip {
border-radius: 8px;
padding: 15px;
background-color: @base;
}
tooltip label {
padding: 5px;
background-color: @base;
}

View File

@@ -1,81 +0,0 @@
/* ~/.config/waybar/style.css */
@import "./catppuccin-waybar/themes/mocha.css";
* {
font-family: "0xProto Nerd Font", FontAwesome, sans-serif;
font-size: 14px;
padding: 0 5px;
}
window#waybar {
background-color: alpha(@base, 0.9);
border-bottom: 3px solid @mauve;
color: @text;
}
#workspaces {
margin-bottom: 5px;
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: @surface2;
}
#workspaces button.active {
color: @mauve;
border-bottom: 3px solid @pink;
}
#workspaces button:hover {
background: @surface0;
box-shadow: inherit;
text-shadow: inherit;
}
#custom-power {
color: @red;
padding: 0 10px;
}
#custom-tlp {
padding: 0 10px;
}
#custom-tlp.ac {
color: @green; /* Catppuccin Green for AC power */
}
#custom-tlp.bat {
color: @yellow; /* Catppuccin Yellow for Battery power */
}
#battery {
color: @text;
padding: 0 10px;
padding-left: 0;
}
#battery.charging, #battery.plugged {
color: @green;
}
#battery.warning {
color: @yellow;
}
#battery.critical {
color: @red;
animation-name: blink;
animation-duration: 0.8s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
@keyframes blink {
to {
color: @text;
}
}