From 1cc3f2a64b5c2282ec10292fda5c140ba8ce7e34 Mon Sep 17 00:00:00 2001 From: speedie Date: Sat, 12 Aug 2023 04:23:04 +0200 Subject: [PATCH] Fix plenty of big bugs --- bluetooth-spmenu | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/bluetooth-spmenu b/bluetooth-spmenu index 266ca31..e38b2b0 100755 --- a/bluetooth-spmenu +++ b/bluetooth-spmenu @@ -6,26 +6,25 @@ [ -z "$RUNLAUNCHER" ] && RUNLAUNCHER=spmenu # Bluetooth device control functions -trust_dev() { bluetoothctl trust "$dev" && return 0 || return 1; } -pair_dev() { bluetoothctl pair "$dev" && return 0 || return 1; } -remove_dev() { bluetoothctl remove "$dev" && return 0 || return 1; } -untrust_dev() { bluetoothctl untrust "$dev" && return 0 || return 1; } -connect_dev() { bluetoothctl connect "$dev"; } -disconnect_dev() { bluetoothctl disconnect "$dev"; } +trust_dev() { bluetoothctl trust "$dev" 2>/dev/null && return 0 || return 1; } +pair_dev() { bluetoothctl pair "$dev" 2>/dev/null && return 0 || return 1; } +remove_dev() { bluetoothctl remove "$dev" 2>/dev/null && return 0 || return 1; } +untrust_dev() { bluetoothctl untrust "$dev" 2>/dev/null && return 0 || return 1; } +connect_dev() { bluetoothctl connect "$dev" 2>/dev/null; } +disconnect_dev() { bluetoothctl disconnect "$dev" 2>/dev/null; } # Misc functions list_opts() { seldev_o="$(printf -- "Options\nConnect\nDisconnect\nToggle\nPair\nRemove\nTrust\nUntrust\n\nExit" | sed "s/-e //g" | $RUNLAUNCHER -g 1 -l 20 -p "What do you want to do with this device?" | awk '{ print $1 }')"; } list_dev() { - printf "%s\n‎\nExit" "$(bluetoothctl devices | cut -d\ -f3-)" > /tmp/btctrl-file + printf "%s\n‎\nExit" "$(bluetoothctl devices | cut -d\ -f3- 2>/dev/null)" > /tmp/btctrl-file sleep 1 - printf "update" > /tmp/spmenu.fifo - list_dev + printf "drawmenu" > /tmp/spmenu.fifo } scan_dev() { - bluetoothctl power on - bluetoothctl scan on + bluetoothctl power on 2>/dev/null + bluetoothctl scan on 2>/dev/null } # Enable bluetooth and scan for devices @@ -38,15 +37,15 @@ enable_bt() { seldev="$($RUNLAUNCHER -lf /tmp/btctrl-file -l 12 -g 1 -p "Select a device")" - rm -f "/tmp/spmenu.fifo" + pkill -P $$ # Check what to do case "$seldev" in - "") exit 0 ;; - "Exit") exit 0 ;; + "") rm -f /tmp/spmenu.fifo; exit 0 ;; + "Exit") rm -f /tmp/spmenu.fifo; exit 0 ;; esac - dev="$(bluetoothctl devices | grep "$seldev$" | awk '{ print $2 }')" + dev="$(bluetoothctl devices | grep "$seldev$" | awk '{ print $2 }' 2>/dev/null)" # Check if a MAC was grabbed [ -z "$dev" ] && printf "Could not get MAC\n" && exit 1 @@ -61,8 +60,8 @@ perform() { "Disconnect") disconnect_dev ;; "Untrust") untrust_dev && list_opts ;; "Remove") remove_dev ;; - "Exit") pkill bluetoothctl; exit 0 ;; - "") pkill bluetoothctl; exit 0 ;; + "Exit") pkill bluetoothctl; rm -f /tmp/spmenu.fifo; exit 0 ;; + "") pkill bluetoothctl; rm -f /tmp/spmenu.fifo; enable_bt ;; esac } @@ -72,6 +71,8 @@ main() { perform pkill bluetoothctl + pkill list_dev + rm -f /tmp/spmenu.fifo return 0 }