From ce732de93f229780810f55533071937a2bb18f4c Mon Sep 17 00:00:00 2001 From: Bartek Stalewski Date: Wed, 15 Nov 2023 15:49:01 +0100 Subject: [PATCH] Getting rid of selector-bluetooth - bluetuith is better. --- _gui/_configs/qtile/config.py | 1 - _gui/_scripts/selector-bluetooth | 299 ------------------------------- 2 files changed, 300 deletions(-) delete mode 100755 _gui/_scripts/selector-bluetooth diff --git a/_gui/_configs/qtile/config.py b/_gui/_configs/qtile/config.py index 8c7a772..b725225 100644 --- a/_gui/_configs/qtile/config.py +++ b/_gui/_configs/qtile/config.py @@ -24,7 +24,6 @@ else: Key([mod], "space", lazy.spawncmd()), Key([mod], "e", lazy.spawn("selector-chars")), Key([mod, "control"], "a", lazy.spawn("selector-audio")), - Key([mod, "control"], "b", lazy.spawn("selector-bluetooth")), # media keys Key([], "XF86AudioMute", lazy.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle")), Key([], "XF86AudioMicMute", lazy.spawn("sb-volume micmute")), diff --git a/_gui/_scripts/selector-bluetooth b/_gui/_scripts/selector-bluetooth deleted file mode 100755 index 6e37080..0000000 --- a/_gui/_scripts/selector-bluetooth +++ /dev/null @@ -1,299 +0,0 @@ -#!/usr/bin/env bash -# __ _ _ _ _ _ _ -# _ __ ___ / _(_) | |__ | |_ _ ___| |_ ___ ___ | |_| |__ -# | '__/ _ \| |_| |_____| '_ \| | | | |/ _ \ __/ _ \ / _ \| __| '_ \ -# | | | (_) | _| |_____| |_) | | |_| | __/ || (_) | (_) | |_| | | | -# |_| \___/|_| |_| |_.__/|_|\__,_|\___|\__\___/ \___/ \__|_| |_| -# -# Author: Nick Clyde (clydedroid) -# - -# Constants -div="---" -goback="back" - -# Checks if bluetooth controller is powered on -power_on() { - if bluetoothctl show | grep -q "Powered: yes"; then - return 0 - else - return 1 - fi -} - -# Toggles power state -toggle_power() { - if power_on; then - bluetoothctl power off - show_menu - else - if rfkill list bluetooth | grep -q 'blocked: yes'; then - rfkill unblock bluetooth && sleep 3 - fi - bluetoothctl power on - show_menu - fi -} - -# Checks if controller is scanning for new devices -scan_on() { - if bluetoothctl show | grep -q "Discovering: yes"; then - echo "scan: on" - return 0 - else - echo "scan: off" - return 1 - fi -} - -# Toggles scanning state -toggle_scan() { - if scan_on; then - kill $(pgrep -f "bluetoothctl scan on") - bluetoothctl scan off - show_menu - else - bluetoothctl scan on & - echo "scanning..." - sleep 5 - show_menu - fi -} - -# Checks if controller is able to pair to devices -pairable_on() { - if bluetoothctl show | grep -q "Pairable: yes"; then - echo "pairable: on" - return 0 - else - echo "pairable: off" - return 1 - fi -} - -# Toggles pairable state -toggle_pairable() { - if pairable_on; then - bluetoothctl pairable off - show_menu - else - bluetoothctl pairable on - show_menu - fi -} - -# Checks if controller is discoverable by other devices -discoverable_on() { - if bluetoothctl show | grep -q "Discoverable: yes"; then - echo "discoverable: on" - return 0 - else - echo "discoverable: off" - return 1 - fi -} - -# Toggles discoverable state -toggle_discoverable() { - if discoverable_on; then - bluetoothctl discoverable off - show_menu - else - bluetoothctl discoverable on - show_menu - fi -} - -# Checks if a device is connected -device_connected() { - device_info=$(bluetoothctl info "$1") - if echo "$device_info" | grep -q "Connected: yes"; then - return 0 - else - return 1 - fi -} - -# Toggles device connection -toggle_connection() { - if device_connected $1; then - bluetoothctl disconnect $1 - device_menu "$device" - else - bluetoothctl connect $1 - device_menu "$device" - fi -} - -# Checks if a device is paired -device_paired() { - device_info=$(bluetoothctl info "$1") - if echo "$device_info" | grep -q "Paired: yes"; then - echo "paired: yes" - return 0 - else - echo "paired: no" - return 1 - fi -} - -# Toggles device paired state -toggle_paired() { - if device_paired $1; then - bluetoothctl remove $1 - device_menu "$device" - else - bluetoothctl pair $1 - device_menu "$device" - fi -} - -# Checks if a device is trusted -device_trusted() { - device_info=$(bluetoothctl info "$1") - if echo "$device_info" | grep -q "Trusted: yes"; then - echo "trusted: yes" - return 0 - else - echo "trusted: no" - return 1 - fi -} - -# Toggles device connection -toggle_trust() { - if device_trusted $1; then - bluetoothctl untrust $1 - device_menu "$device" - else - bluetoothctl trust $1 - device_menu "$device" - fi -} - -# Prints a short string with the current bluetooth status -# Useful for status bars like polybar, etc. -print_status() { - if power_on; then - printf '' - - mapfile -t paired_devices < <(bluetoothctl devices Paired | grep Device | cut -d ' ' -f 2) - counter=0 - - for device in "${paired_devices[@]}"; do - if device_connected $device; then - device_alias=$(bluetoothctl info $device | grep "Alias" | cut -d ' ' -f 2-) - - if [ $counter -gt 0 ]; then - printf ", %s" "$device_alias" - else - printf " %s" "$device_alias" - fi - - ((counter++)) - fi - done - printf "\n" - else - echo "" - fi -} - -# A submenu for a specific device that allows connecting, pairing, and trusting -device_menu() { - device=$1 - - # Get device name and mac address - device_name=$(echo $device | cut -d ' ' -f 3-) - mac=$(echo $device | cut -d ' ' -f 2) - - # Build options - if device_connected $mac; then - connected="connected: yes" - else - connected="connected: no" - fi - paired=$(device_paired $mac) - trusted=$(device_trusted $mac) - options="$connected\n$paired\n$trusted\n$div\n$goback\n$div\nexit" - - chosen="$(echo -e "$options" | $rofi_command "$device_name")" - - # Match chosen option to command - case $chosen in - "" | $div) - echo "no option chosen." - ;; - $connected) - toggle_connection $mac - ;; - $paired) - toggle_paired $mac - ;; - $trusted) - toggle_trust $mac - ;; - $goback) - show_menu - ;; - esac -} - -show_menu() { - # Get menu options - if power_on; then - power="power: on" - - # Human-readable names of devices, one per line - # If scan is off, will only list paired devices - devices=$(bluetoothctl devices | grep Device | cut -d ' ' -f 3-) - - # Get controller flags - scan=$(scan_on) - pairable=$(pairable_on) - discoverable=$(discoverable_on) - - options="$devices\n$div\n$power\n$scan\n$pairable\n$discoverable\nexit" - else - power="power: off" - options="$power\nexit" - fi - - chosen="$(echo -e "$options" | $rofi_command "bluetooth")" - - # Match chosen option to command - case $chosen in - "" | $div) - echo "No option chosen." - ;; - $power) - toggle_power - ;; - $scan) - toggle_scan - ;; - $discoverable) - toggle_discoverable - ;; - $pairable) - toggle_pairable - ;; - *) - device=$(bluetoothctl devices | grep "$chosen") - # Open a submenu if a device is selected - if [[ $device ]]; then device_menu "$device"; fi - ;; - esac -} - -# command to pipe into, can add any options here -rofi_command="wofi -G --dmenu -i -p" - -case "$1" in - --status) - print_status - ;; - *) - show_menu - ;; -esac