From b81c6e2228479e1695216433f2a9791d04fde170 Mon Sep 17 00:00:00 2001 From: Nils Pukropp Date: Fri, 15 Aug 2025 17:23:03 +0200 Subject: [PATCH] updated the not connected string for pixelbuds --- waybar/scripts/pixelbuds_pro_control.sh | 122 ++++++++++++------------ 1 file changed, 60 insertions(+), 62 deletions(-) diff --git a/waybar/scripts/pixelbuds_pro_control.sh b/waybar/scripts/pixelbuds_pro_control.sh index 2f76068..fe32dfd 100755 --- a/waybar/scripts/pixelbuds_pro_control.sh +++ b/waybar/scripts/pixelbuds_pro_control.sh @@ -6,76 +6,74 @@ MAC_ADDRESS="B4:23:A2:09:D3:53" # --- END CONFIGURATION --- not_connected() { - printf '{"text": "L: --- | R: --- | Off", "tooltip": "Pixel Buds Pro 2", "class": "disconnected"}\n' + printf '{"text": "L: --- | R: ---", "tooltip": "Pixel Buds Pro 2 not connected", "class": "disconnected"}\n' exit 0 } +# This function gets the current status and formats it for Waybar. +get_status() { + # Get all info from pbpctrl in one go. Redirect errors to null. + battery_output=$(pbpctrl show battery 2>/dev/null) + + # Fallback: If pbpctrl fails or returns 'unknown', hide the module. + if [[ $? -ne 0 || -z "$battery_output" ]]; then + not_connected + fi + + # --- PARSE BATTERY INFO --- + left_bud=$(echo "$battery_output" | grep "left bud:" | awk '{print $3}') + right_bud=$(echo "$battery_output" | grep "right bud:" | awk '{print $3}') + + if ([[ "$left_bud" == "unknown" ]] && [[ "$right_bud" == "unknown" ]]) || \ + [[ -z "$left_bud" && -z "$right_bud" ]]; then + echo "{}" + exit 0 + fi + + if [[ "$left_bud" == "unknown" ]]; then + left_display="L: ---" + else + left_display="L: $left_bud" + fi + + if [[ "$right_bud" == "unknown" ]]; then + right_display="R: ---" + else + right_display="R: $right_bud" + fi + + # --- PARSE ANC INFO --- + current_mode=$(pbpctrl get anc 2>/dev/null) + + case "$current_mode" in + "active") + anc_icon="ANC" + class="anc-active" + ;; + "aware") + anc_icon="Aware" + class="anc-aware" + ;; + "off") + anc_icon="Off" + class="anc-off" + ;; + *) + anc_icon="?" + class="anc-unknown" + ;; + esac + + # --- FORMAT OUTPUT --- + printf '{"text": "%s | %s | %s", "tooltip": "Pixel Buds Pro 2", "class": "%s"}\n' \ + "$left_display" "$right_display" "$anc_icon" "$class" +} + status() { # First, check if the device is connected using bluetoothctl. if bluetoothctl info "$MAC_ADDRESS" | grep -q "Connected: yes"; then # --- DEVICE IS CONNECTED --- - - # This function gets the current status and formats it for Waybar. - get_status() { - # Get all info from pbpctrl in one go. Redirect errors to null. - battery_output=$(pbpctrl show battery 2>/dev/null) - - # Fallback: If pbpctrl fails or returns 'unknown', hide the module. - if [[ $? -ne 0 || -z "$battery_output" ]]; then - not_connected - fi - - # --- PARSE BATTERY INFO --- - left_bud=$(echo "$battery_output" | grep "left bud:" | awk '{print $3}') - right_bud=$(echo "$battery_output" | grep "right bud:" | awk '{print $3}') - - if ([[ "$left_bud" == "unknown" ]] && [[ "$right_bud" == "unknown" ]]) || \ - [[ -z "$left_bud" && -z "$right_bud" ]]; then - echo "{}" - exit 0 - fi - - if [[ "$left_bud" == "unknown" ]]; then - left_display="L: ---" - else - left_display="L: $left_bud" - fi - - if [[ "$right_bud" == "unknown" ]]; then - right_display="R: ---" - else - right_display="R: $right_bud" - fi - - # --- PARSE ANC INFO --- - current_mode=$(pbpctrl get anc 2>/dev/null) - - case "$current_mode" in - "active") - anc_icon="ANC" - class="anc-active" - ;; - "aware") - anc_icon="Aware" - class="anc-aware" - ;; - "off") - anc_icon="Off" - class="anc-off" - ;; - *) - anc_icon="?" - class="anc-unknown" - ;; - esac - - # --- FORMAT OUTPUT --- - printf '{"text": "%s | %s | %s", "tooltip": "Pixel Buds Pro 2", "class": "%s"}\n' \ - "$left_display" "$right_display" "$anc_icon" "$class" - } - get_status - else # --- DEVICE IS NOT CONNECTED --- not_connected