added scripts to replace waybar
This commit is contained in:
57
hypr/scripts/bt-menu.sh
Executable file
57
hypr/scripts/bt-menu.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# 1. Notify that we are scanning for new devices
|
||||
notify-send " Bluetooth" "Scanning for devices..." -t 1500
|
||||
|
||||
# 2. Get list of all devices (Connected, Paired, and New)
|
||||
# We run a brief scan to find new devices nearby
|
||||
timeout 2s bluetoothctl scan on > /dev/null 2>&1
|
||||
|
||||
# Get all known/nearby devices
|
||||
devices=$(bluetoothctl devices | cut -d' ' -f2)
|
||||
menu_list=""
|
||||
|
||||
for mac in $devices; do
|
||||
info=$(bluetoothctl info "$mac")
|
||||
name=$(echo "$info" | grep "Name:" | cut -d' ' -f2-)
|
||||
paired=$(echo "$info" | grep "Paired:" | awk '{print $2}')
|
||||
connected=$(echo "$info" | grep "Connected:" | awk '{print $2}')
|
||||
batt=$(echo "$info" | grep "Battery Percentage" | awk -F '[()]' '{print $2}')
|
||||
|
||||
# Set Icons and Status
|
||||
if [ "$connected" == "yes" ]; then
|
||||
icon="" # Connected Icon
|
||||
status="[Connected]"
|
||||
[ -n "$batt" ] && status="[$batt%]"
|
||||
elif [ "$paired" == "yes" ]; then
|
||||
icon="" # Paired but disconnected
|
||||
status="[Paired]"
|
||||
else
|
||||
icon="" # New / Unpaired
|
||||
status="[New]"
|
||||
fi
|
||||
|
||||
# Format line for Rofi: Icon - Name - Status
|
||||
menu_list+="$icon $name $status\n"
|
||||
done
|
||||
|
||||
# 3. Show Rofi Menu
|
||||
selected=$(echo -e "$menu_list" | sort -r | rofi -dmenu -i -p "Bluetooth" -config "$HOME/.config/rofi/bluetooth.rasi")
|
||||
|
||||
[ -z "$selected" ] && exit
|
||||
|
||||
# 4. Action Logic
|
||||
# Extract the name by removing the icon and the status bracket
|
||||
device_name=$(echo "$selected" | sed -E 's/^[] //' | sed -E 's/ \[.*\]$//')
|
||||
device_mac=$(bluetoothctl devices | grep "$device_name" | awk '{print $2}')
|
||||
|
||||
if [[ "$selected" == *"[Connected]"* ]] || [[ "$selected" == *"%"* ]]; then
|
||||
notify-send "Bluetooth" "Disconnecting $device_name..."
|
||||
bluetoothctl disconnect "$device_mac"
|
||||
elif [[ "$selected" == *"[Paired]"* ]]; then
|
||||
notify-send "Bluetooth" "Connecting to $device_name..."
|
||||
bluetoothctl connect "$device_mac"
|
||||
elif [[ "$selected" == *"[New]"* ]]; then
|
||||
notify-send "Bluetooth" "Pairing with $device_name..."
|
||||
bluetoothctl pair "$device_mac" && bluetoothctl trust "$device_mac" && bluetoothctl connect "$device_mac"
|
||||
fi
|
||||
Reference in New Issue
Block a user