From 7846c1b33585a88333d2b0ac2270d0d304a2eeac Mon Sep 17 00:00:00 2001 From: Spacedio Date: Wed, 3 Jun 2026 22:39:11 -0400 Subject: Continuing work on the Polybar dGPU module. Switched from Pulseaudio to Pipewire. --- system/deploy-system.sh | 6 +++--- system/usr/gpu-toggle | 1 + system/usr/polybar-gpu-trigger | 29 +++++++++++++++++++++++++++++ system/usr/system-maintenance | 5 +++-- system/usr/system-update | 2 +- 5 files changed, 37 insertions(+), 6 deletions(-) create mode 100755 system/usr/polybar-gpu-trigger (limited to 'system') diff --git a/system/deploy-system.sh b/system/deploy-system.sh index a83415f..d8cf4b2 100755 --- a/system/deploy-system.sh +++ b/system/deploy-system.sh @@ -5,16 +5,16 @@ DOT_BIN="./usr/" DOT_ETC="./etc/" # Check for root -if [ "$EUID" -ne 0 ]; then +if [ "$EUID" -ne 0 ]; then echo "Please run as root (sudo ./deploy.sh)" exit fi echo "Deploying system scripts..." -rsync -avh --dry-run --chmod=D755,F755 --chown=root:root "$DOT_BIN" /usr/local/bin/ +rsync -avh --dry-run --backup --suffix=_old --chmod=D755,F755 --chown=root:root "$DOT_BIN" /usr/local/bin/ echo "Deploying etc configs..." -rsync -avh --dry-run --chmod=D755,F644 --chown=root:root "$DOT_ETC" /etc/ +rsync -avh --dry-run --backup --suffix=_old --chmod=D755,F644 --chown=root:root "$DOT_ETC" /etc/ #echo "Reloading services..." #udevadm control --reload-rules && udevadm trigger diff --git a/system/usr/gpu-toggle b/system/usr/gpu-toggle index 35d6c47..b44022f 100755 --- a/system/usr/gpu-toggle +++ b/system/usr/gpu-toggle @@ -1,4 +1,5 @@ #!/bin/bash +# /usr/local/bin/gpu-toggle # ------------------------------------------------------------------------- # GPU-TOGGLE: Discrete Graphics Power & Bus Management diff --git a/system/usr/polybar-gpu-trigger b/system/usr/polybar-gpu-trigger new file mode 100755 index 0000000..55b52fc --- /dev/null +++ b/system/usr/polybar-gpu-trigger @@ -0,0 +1,29 @@ +#!/bin/bash +# /usr/local/bin/polybar-gpu-trigger + +# 1. Critical sleep to prevent the udev timing race condition +sleep 0.5 + +# Find the Process ID (PID) of Polybar +POLYBAR_PID=$(pgrep -x polybar) +if [ -z "$POLYBAR_PID" ]; then + exit 0 +fi + +# Loop through found PIDs to locate the correct user context +for pid in $POLYBAR_PID; do + if [ -f "/proc/$pid/environ" ]; then + USER_UID=$(stat -c "%u" "/proc/$pid") + USER_NAME=$(id -nu "$USER_UID") + + # Safely parse the environment file for XDG_RUNTIME_DIR + XDG_DIR=$(tr '\0' '\n' < "/proc/$pid/environ" | grep '^XDG_RUNTIME_DIR=' | cut -d= -f2-) + + if [ -n "$XDG_DIR" ]; then + # Drop root privileges and forcefully send the text directly into Polybar + sudo -u "$USER_NAME" XDG_RUNTIME_DIR="$XDG_DIR" \ + polybar-msg action "#gpu-status.send.0" >/dev/null 2>&1 + break + fi + fi +done diff --git a/system/usr/system-maintenance b/system/usr/system-maintenance index d2918c6..f7a7051 100755 --- a/system/usr/system-maintenance +++ b/system/usr/system-maintenance @@ -1,4 +1,5 @@ #!/bin/bash +# /usr/local/bin/system-maintenance # Configuration MARKER_FILE="/var/log/last_maintenance_timestamp" @@ -14,7 +15,7 @@ if [ $((CURRENT_TIME - LAST_RUN)) -ge $INTERVAL ]; then { echo "-------------------------------------------" echo "[$(date)] Starting weekly maintenance..." - + # 1. Trim SSD /usr/sbin/fstrim -v / @@ -23,7 +24,7 @@ if [ $((CURRENT_TIME - LAST_RUN)) -ge $INTERVAL ]; then # Update timestamp marker touch "$MARKER_FILE" - + echo "[$(date)] Maintenance complete." } >> "$LOG_OUT" 2>&1 fi diff --git a/system/usr/system-update b/system/usr/system-update index 4187e46..79b26a8 100755 --- a/system/usr/system-update +++ b/system/usr/system-update @@ -1,5 +1,5 @@ #!/bin/bash -# /usr/local/bin/sys-update +# /usr/local/bin/system-update # Formal system maintenance utility with administrative enforcement LOG_FILE="/var/log/system-update.log" -- cgit v1.2.3