快轉到主要內容

電腦遠端控制iPad,利用BTK將Linux模擬成藍牙鍵盤&滑鼠

分類   Linux系統 Linux好用軟體
標籤   IOS Linux
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

Using a Linux PC as a bluetooth keyboard for iPad.

利用Linux電腦鍵盤在iPad上打字,遠端控制iPad。

iPad平板臨時需要鍵盤怎辦?我們知道macOS有自家的 通用控制,能在Mac和iPad之間共用鍵盤,但萬一不是macOS呢?就用藍芽鍵盤吧。

若手邊有電腦但沒有多餘的藍芽鍵盤又怎麼辦呢?藍芽鍵盤其實可以用軟體模擬的,像Windows有閉源的 Across Center ApowerMirror

Linux也有人做了軟體模擬藍芽滑鼠的開源專案,例如 Alkaid-Benetnash/EmuBTHID taoso/btk,經過實測只有後者能在iPad和Android使用。

BTK是一個Python寫成的軟體,搭配BlueZ,將Linux電腦的鍵盤模擬成一個藍芽鍵盤兼滑鼠(Bluetooth HID),藉此從Linux電腦控制其他裝置,無需安裝任何藍芽轉接器。這樣我們就能把Linux電腦當作iPad或Android平板的鍵盤啦。

BTK操作起來有點像在用Software KVM,不過這個藍芽鍵盤一次只能配對一個裝置而已。

1. 安裝BTK
#

本軟體支援X11與Wayland環境,但Wayland打中文似乎會有問題。

  1. 請確認Linux電腦的藍芽有正常運作,例如Ubuntu便是確認Bluetooth服務有起來:
sudo systemctl status bluetooth
  1. 安裝依賴套件
sudo apt install python3 git bluez bluez-utils python3-gi python3-gi-cairo gir1.2-gtk-4.0
  1. 修改Bluetooth服務設定
sudo vim /lib/systemd/system/bluetooth.service
  1. 修改Exec=後面的內容
ExecStart=/usr/lib/bluetooth/bluetoothd -P input
  1. 重啟服務
sudo systemctl daemon-reload
sudo systemctl restart bluetooth
  1. 複製BTK儲存庫
git clone https://github.com/taoso/btk.git
cd btk
  1. 建立虛擬環境,安裝Python依賴套件
python3 -m venv venv
venv/bin/pip install -r requirements.txt
venv/bin/pip install git+https://github.com/pybluez/pybluez.git#egg=pybluez
venv/bin/pip install pycairo PyGObject
  1. 執行指令bluetoothctl power on開啟Linux的藍芽

  2. 執行Python程式

sudo venv/bin/python3 agent.py

2. 將藍芽鍵盤與iPad配對
#

  1. 讓Linux的藍芽進入配對狀態(或者用Linux桌面環境設定的藍芽選單配對)
bluetoothctl discoverable on
  1. 再將iPad與Linux電腦配對,依照指示輸入配對數字,接著於iPad的藍芽選單點一下Linux電腦名稱。

  2. 配對之後,iPad返回主畫面,嘗試在Linux電腦移動滑鼠,iPad上的滑鼠就會跟著動。若是遇到滑鼠很卡問題,請確認電腦Wifi的干擾問題。

  3. 為避免Linux輸入法干擾,請將語言切成英文。iPad切換輸入法有點小問題,部份程式無法使用iOS鍵盤打中文,請裝Gboard設定中文語言解決。

3. 改善BTK操控體驗
#

我希望操控iPad不會影響操作Linux電腦,所以我的解法就是跑一個巢狀X伺服器,把BTK「關在裡面」執行。

  1. 安裝Xephyr
sudo apt-get install xserver-xephyr
  1. 開一個視窗
Xephyr -br -ac -screen 800x600 :10
  1. 再於其中執行BTK程式
cd ~/btk

DISPLAY=:10 xterm -e "sudo venv/bin/python3 agent.py"
  1. 按CTLR+SHIFT擷取鍵盤操作,這樣操控iPad的時候滑鼠便只會在該視窗移動。再按一次CTLR+SHIFT滑鼠才能離開該視窗。

可是,在Xephyr裡面打字,又會造成iPad無法打出中文的問題……。

相關文章

UxPlay用法 ~ 投影iPhone螢幕到Linux電腦,跨平台免費的AirPlay解決方案
分類   Linux系統 Linux好用軟體
標籤   AirPlay IOS Linux Windows MacOS
用Linux備份與回復iPhone資料,idevicebackup指令使用方法
分類   Linux系統 Linux好用軟體
標籤   Linux IOS ITunes Libimobiledevice
ifuse:iPhone傳檔案到Linux電腦,實現iTunes檔案共享
分類   Linux系統 Linux好用軟體
標籤   Linux IOS ITunes Libimobiledevice

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。