Add swaync control center, wifi/bluetooth/vpn rofi menus, waybar notification button
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
# Bluetooth menu (rofi): power, connect/disconnect known devices, scan and pair new ones.
|
||||
THEME=~/.config/rofi/catppuccin.rasi
|
||||
menu() { rofi -dmenu -i -p "$1" -theme "$THEME" "${@:2}"; }
|
||||
|
||||
if ! bluetoothctl show | grep -q "Powered: yes"; then
|
||||
choice=$(printf '%s\n' "Включить Bluetooth" | menu "Bluetooth") || exit 0
|
||||
[[ $choice == "Включить Bluetooth" ]] && bluetoothctl power on >/dev/null && notify-send "Bluetooth" "Включён"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
build() {
|
||||
local list="" mac name mark
|
||||
while read -r _ mac name; do
|
||||
[[ -z $mac ]] && continue
|
||||
mark="○"; bluetoothctl info "$mac" | grep -q "Connected: yes" && mark="●"
|
||||
list+="$mark $name [$mac]"$'\n'
|
||||
done < <(bluetoothctl devices)
|
||||
printf '%s' "$list"
|
||||
}
|
||||
|
||||
choice=$(printf '%s%s\n%s\n' "$(build)" "Найти новые устройства" "Выключить Bluetooth" | sed '/^$/d' | menu "Bluetooth") || exit 0
|
||||
[[ -z $choice ]] && exit 0
|
||||
|
||||
case $choice in
|
||||
"Выключить Bluetooth") bluetoothctl power off >/dev/null; notify-send "Bluetooth" "Выключен"; exit 0 ;;
|
||||
"Найти новые устройства")
|
||||
notify-send "Bluetooth" "Поиск устройств (8 с)…"
|
||||
bluetoothctl --timeout 8 scan on >/dev/null 2>&1
|
||||
choice=$(build | menu "Bluetooth: найденные") || exit 0
|
||||
[[ -z $choice ]] && exit 0
|
||||
mac=${choice##*[}; mac=${mac%]}
|
||||
bluetoothctl pair "$mac" >/dev/null 2>&1; bluetoothctl trust "$mac" >/dev/null 2>&1
|
||||
bluetoothctl connect "$mac" >/dev/null 2>&1 && notify-send "Bluetooth" "Подключено" || notify-send -u critical "Bluetooth" "Не удалось подключиться"
|
||||
exit 0 ;;
|
||||
esac
|
||||
|
||||
mac=${choice##*[}; mac=${mac%]}
|
||||
name=${choice:2}; name=${name% [*}
|
||||
if [[ ${choice:0:1} == "●" ]]; then
|
||||
bluetoothctl disconnect "$mac" >/dev/null && notify-send "Bluetooth" "Отключено: $name"
|
||||
else
|
||||
bluetoothctl connect "$mac" >/dev/null 2>&1 && notify-send "Bluetooth" "Подключено: $name" || notify-send -u critical "Bluetooth" "Не удалось подключиться: $name"
|
||||
fi
|
||||
Reference in New Issue
Block a user