From e9b48d06a8541f3eda5c4db90382ab3c77183afb Mon Sep 17 00:00:00 2001 From: Kris Yotam <75515498+krisyotam@users.noreply.github.com> Date: Thu, 2 Jul 2026 02:25:26 -0500 Subject: [PATCH] xprofile: systemd-aware pipewire start + blueman-applet; sb-internet: tolerate missing /proc/net/wireless --- .config/x11/xprofile | 12 +++++++++++- .local/bin/statusbar/sb-internet | 5 ++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.config/x11/xprofile b/.config/x11/xprofile index 6df74d2a4dc8c78483a8d5ebb821000dee82d8b7..75ce67b83f58c3866400efb1d31d4e8dba21d37d 100644 --- a/.config/x11/xprofile +++ b/.config/x11/xprofile @@ -30,7 +30,17 @@ setfan & # Set case fan RGB (ice blue) eval $(echo -n "kris" | gnome-keyring-daemon --replace --unlock --components=pkcs11,secrets,ssh) export SSH_AUTH_SOCK -autostart="mpd picom dunst unclutter pipewire wireplumber conky protonmail-bridge" +# Audio: on systemd distros (Fedora) PipeWire is socket-activated by the user +# manager -- hand-starting it steals /run/user/UID/pipewire-0 and makes +# pipewire.socket hit its start limit, killing audio. Only hand-start on +# non-systemd inits (e.g. Artix runit). +if [ -d /run/systemd/system ]; then + systemctl --user start pipewire.socket pipewire-pulse.socket wireplumber.service 2>/dev/null +else + for p in pipewire wireplumber; do pgrep -x "$p" >/dev/null 2>&1 || "$p" & done +fi + +autostart="mpd picom dunst unclutter conky protonmail-bridge blueman-applet" for program in $autostart; do pgrep -x "$program" >/dev/null 2>&1 || "$program" & diff --git a/.local/bin/statusbar/sb-internet b/.local/bin/statusbar/sb-internet index 04495bc09f049fc794f3704b71860f55603c82dc..c595a82807bd976e70dd801356399110220b857c 100755 --- a/.local/bin/statusbar/sb-internet +++ b/.local/bin/statusbar/sb-internet @@ -19,7 +19,10 @@ esac # Wifi if [ "$(cat /sys/class/net/w*/operstate 2>/dev/null)" = 'up' ] ; then - wifiicon="$(awk '/^\s*w/ { print "󰖩 ", int($3 * 100 / 70) "% " }' /proc/net/wireless)" + # /proc/net/wireless is absent on some drivers (e.g. Asahi brcmfmac); fall + # back to a plain wifi icon with no strength rather than erroring. + wifiicon="$(awk '/^\s*w/ { print "󰖩 ", int($3 * 100 / 70) "% " }' /proc/net/wireless 2>/dev/null)" + [ -z "$wifiicon" ] && wifiicon="󰖩 " elif [ "$(cat /sys/class/net/w*/operstate 2>/dev/null)" = 'down' ] ; then [ "$(cat /sys/class/net/w*/flags 2>/dev/null)" = '0x1003' ] && wifiicon="󰤭 " || wifiicon="󰖪 " fi