From 7520256f124feb30c3974639c0c43e6695fedcef Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Sun, 19 Apr 2020 10:01:39 +0200 Subject: [PATCH] Fixed isseues raised by bash conversion, added a blacklist feature --- bthandler | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/bthandler b/bthandler index f753d5e..54b1e09 100755 --- a/bthandler +++ b/bthandler @@ -2,20 +2,22 @@ #wait time to discover new devices in seconds SCAN_PERIOD=5 BLACKLIST=$HOME/.local/bin/tools/bt_blacklist - IDS=$(bluetoothctl paired-devices | awk '{print $2}') echo $IDS > /tmp/bt_IDS -Devices=$(bluetoothctl paired-devices | awk '{for (i=3; i /tmp/bt_devices -Blacklist='MX Master\n' -Devices=$( echo $Devices | grep -vf $BLACKLIST ) -actions="\nturn off\nturn on\nscan on\npair" -choice=$( printf "$Devices$actions" | dmenu -i -p 'What BT action would you like to perform:' ) +bluetoothctl paired-devices | awk '{for (i=3; i /tmp/bt_devices +Devices=$(cat /tmp/bt_devices) +disp_devices=$(cat /tmp/bt_devices) +grep -vf "$BLACKLIST" /tmp/bt_devices > /tmp/disp_devices +len=$(cat /tmp/disp_devices | wc -l) +actions="turn off\nturn on\nscan on\npair" +[ $len -gt 0 ] && choice=$( printf "$(cat /tmp/disp_devices)\n$actions" | dmenu -i -p 'What BT action would you like to perform:' ) +[ $len -eq 0 ] && choice=$( printf "$actions" | dmenu -i -p 'What BT action would you like to perform:' ) cleanup(){ rm -f /tmp/bt_devices rm -f /tmp/bt_IDS rm -f /tmp/paired_devices + rm -f /tmp/disp_devices exit } @@ -32,13 +34,13 @@ case $choice in bluetoothctl scan on & disown notify-send "Bluetooth" "Searching for devices, please wait a bit" sleep $SCAN_PERIOD - all_devices=$(bluetoothctl devices | awk '{for (i=3; i /tmp/bt_devices bluetoothctl paired-devices | awk '{for (i=3; i /tmp/paired_devices - new_devices=$(echo $all_devices | grep -vf /tmp/paired_devices) - choice=$( echo $new_devices | dmenu -l 10 -p 'pair with which device?:' ) + grep -vf /tmp/paired_devices /tmp/bt_devices > /tmp/new_devices + choice=$( cat /tmp/new_devices | dmenu -l 10 -p 'pair with which device?:' ) if [ -n "$choice" ]; then bluetoothctl devices | awk '{print $2}' > /tmp/bt_IDS - dev_no=$(echo $all_devices | cat -n | grep "$choice" | awk '{print $1}') + dev_no=$(cat -n /tmp/bt_devices | grep "$choice" | awk '{print $1}') dev_id=$(cat -n /tmp/bt_IDS | grep -E $dev_no"[[:space:]]" | awk '{print $2}' ) bluetoothctl pair $dev_id && sleep 2 @@ -50,7 +52,7 @@ case $choice in esac if [ -n "$choice" ]; then - choice=$( echo $choice | sed 's/ $//') +# choice=$( echo $choice | sed 's/ $//') dev_no=$(cat -n /tmp/bt_devices | grep "$choice" | awk '{print $1}') dev_id=$(cat -n /tmp/bt_IDS | grep $dev_no | awk '{print $2}') bluetoothctl power on