|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Dependency: This script requires `blueutil` cli installed: https://github.com/toy/blueutil |
| 4 | +# Install via homebrew: `brew install blueutil` |
| 5 | + |
| 6 | +# Required parameters: |
| 7 | +# @raycast.schemaVersion 1 |
| 8 | +# @raycast.title Magic Keyboard switcher |
| 9 | +# @raycast.mode silent |
| 10 | + |
| 11 | +# Optional parameters: |
| 12 | +# @raycast.icon images/logo.png |
| 13 | +# @raycast.packageName System |
| 14 | + |
| 15 | +# Documentation: |
| 16 | +# @raycast.author blastik |
| 17 | +# @raycast.authorURL https://github.com/blastik |
| 18 | +# @raycast.description Switch a single magic keyboard between computers |
| 19 | + |
| 20 | +# blueutil location |
| 21 | +BIN=/opt/homebrew/bin/blueutil |
| 22 | + |
| 23 | +# Your Magic Keyboard MAC Address |
| 24 | +BTMAC='XX:XX:XX:XX:XX:XX' |
| 25 | + |
| 26 | +CMD_VAL="$($BIN --is-connected $BTMAC)" |
| 27 | +CMD_UNPAIR="$BIN --unpair $BTMAC" |
| 28 | +CMD_PAIR="$BIN --pair $BTMAC" |
| 29 | +CMD_CONN="$BIN --connect $BTMAC" |
| 30 | + |
| 31 | +if ! command -v blueutil &> /dev/null; then |
| 32 | + echo "blueutil command is required (https://github.com/toy/blueutil)."; |
| 33 | + exit 1; |
| 34 | +fi |
| 35 | + |
| 36 | +if [[ "$CMD_VAL" -eq 1 ]]; then |
| 37 | + echo "Connected to $BTMAC" |
| 38 | + echo "Going to disconnect $BTMAC" |
| 39 | + $($CMD_UNPAIR) |
| 40 | + if [[ $? -eq 0 ]]; then |
| 41 | + echo "Disconnected from $BTMAC" |
| 42 | + else |
| 43 | + echo "Failed to disconnect from $BTMAC" |
| 44 | + exit 1 |
| 45 | + fi |
| 46 | +else |
| 47 | + echo "Not connected to $BTMAC" |
| 48 | + $($CMD_PAIR) |
| 49 | + sleep 1 |
| 50 | + $($CMD_CONN) |
| 51 | + if [[ $? -eq 0 ]]; then |
| 52 | + echo "Connected to $BTMAC" |
| 53 | + else |
| 54 | + echo "Failed to connect to $BTMAC" |
| 55 | + exit 1 |
| 56 | + fi |
| 57 | +fi |
0 commit comments