#!/bin/sh # S85bt-keyboard — auto-connect Linocell BTK16 BT-tangentbord # # Försöker ansluta tangentbordet vid boot och startar en bakgrundsprocess # som reconnectar automatiskt när tangentbordet kommer inom räckhåll. # # Tangentbordet måste vara parat och trustat sedan tidigare. # Para manuellt med: bluetoothctl pair ED:96:00:23:E2:02 # bluetoothctl trust ED:96:00:23:E2:02 KEYBOARD_ADDR="ED:96:00:23:E2:02" PIDFILE="/var/run/bt-keyboard.pid" LOG="/var/log/bt-keyboard.log" connect_keyboard() { bluetoothctl power on > /dev/null 2>&1 bluetoothctl connect "$KEYBOARD_ADDR" > /dev/null 2>&1 } watch_loop() { while true; do # Kolla om tangentbordet är anslutet if ! bluetoothctl info "$KEYBOARD_ADDR" 2>/dev/null | grep -q "Connected: yes"; then connect_keyboard fi sleep 10 done } case "$1" in start) echo "Starting BT keyboard auto-connect" # Försök första anslutning i bakgrunden (tangentbordet kanske inte är i närheten) (sleep 5 && connect_keyboard) & # Starta watch-loop som reconnectar när tgb dyker upp watch_loop >> "$LOG" 2>&1 & echo $! > "$PIDFILE" echo "OK" ;; stop) echo "Stopping BT keyboard auto-connect" if [ -f "$PIDFILE" ]; then kill $(cat "$PIDFILE") 2>/dev/null rm -f "$PIDFILE" fi bluetoothctl disconnect "$KEYBOARD_ADDR" > /dev/null 2>&1 echo "OK" ;; restart) $0 stop; sleep 1; $0 start ;; *) echo "Usage: $0 {start|stop|restart}" >&2 exit 1 ;; esac