初回ペアリングから経路の使い分け、電池節約まで、よく聞かれる質問をまとめました。
初回ペアリングは Wi-Fi の有無で経路を選びます。ペア完了後は MPC(Wi-Fi)と BLE(Bluetooth)の両方が自動で使えるようになります。
| シナリオ | 経路 | 操作 |
|---|---|---|
| 同じ Wi-Fi にいる | MPC(推奨) | ペアリング画面の候補をタップ → PIN 入力 |
| Wi-Fi が無い・繋げない | BLE 単独 | 「Wi-Fi なしでペアリング」ボタン → 候補タップ → PIN 入力 |
02_protocol.md §2.x)にシナリオ別の一覧があります。
sudo pkill bluetoothd でも同じ結果)。BT チップ自体は ON のままなので、無線マウスなど他の BT 機器の切断時間も最小です。その後 MonoFlick Companion を起動し直してください。tccutil reset Accessibility dev.foo.MonoFlick.Companion でも同じ結果)。その後 MonoFlick Companion を起動し直してから「設定を開く」プロンプトに従って再度許可してください(他のアプリの権限には影響しません)。
通信内容は Curve25519 (ECDH) の鍵交換で得た 32 byte の共有秘密を使って認証されます。MPC は AES-256 で暗号化、BLE は L2CAP CoC 上にアプリ層 HMAC-SHA256 認証が乗ります。
保存場所:
必要な権限:
iPhone 側で Wi-Fi を OFF にすると BLE だけが使われるようになり、Wi-Fi 無線の常時 ON 状態が解消されて電池消費が大幅に下がります。
両方有効な場合は MPC を優先し、Wi-Fi が無い/不安定な環境では BLE に自動フォールバックします。下表が比較です。
| 軸 | MPC (AWDL / Wi-Fi) | BLE (L2CAP CoC) | 勝ち |
|---|---|---|---|
| スループット | 数 Mbps〜数十 Mbps | 数十〜数百 kbps | MPC(大差) |
| レイテンシ(1 キー) | 約 5–20ms | 約 15–50ms | MPC(体感差小) |
| キー入力のリアルタイム性 | 余裕で十分 | 余裕で十分 | どちらでも OK |
トラックパッド .pointerMove(60Hz) |
安定 | 帯域・connection interval 的に厳しい場面あり | MPC |
| runningApps / Dock 一覧 (数 KB〜数十 KB) | 一瞬で届く | 数百 ms〜秒オーダー | MPC |
| 電池消費(iPhone) | Wi-Fi 無線常時 ON | 大幅に低い | BLE |
| 屋外 / Wi-Fi 無し | 不可(AWDL/Bonjour なし) | 可 | BLE |
| 接続安定性(移動・干渉) | AWDL は他 BT 機器と干渉して切れる事あり | 短距離なら安定 | BLE |
| ペアリング | フル機能(PIN + ECDH) | BLE 単独でも初回ペアリング可(PIN + ECDH を L2CAP 上で完結) | どちらでも OK |
結論
Mac でマウス/トラックパッドの動きがカクつく場合は、メニューバーの MonoFlick アイコン → 「環境設定」→ 接続 セクションで 「Bluetooth 経由の接続(BLE)を有効化」を OFF にしてください。 Bluetooth マウスなど他の BT 機器と帯域や connection interval を取り合うことでカクつくケースがあります。MPC(Wi-Fi)経路は引き続き有効なので、屋内利用ならこのままで動作に支障はありません。
手順 1: BLE を OFF にする
手順 2: 屋外で BLE が必要になったら再起動
屋外 / Wi-Fi が無い環境に出るときは BLE を ON に戻します。OFF → ON の切替直後にうまく再接続しない場合は、後述の Bluetooth サービス再起動を試してください。
手順 3: それでも繋がらないとき(Bluetooth サービス再起動)
macOS の bluetoothd プロセスが内部的に詰まっていると、BLE を ON にしても advertising が動かないことがあります。Companion 側に再起動ボタンを用意しています:
bluetoothd が SIGTERM で停止 → launchd が即時 respawn → BLE radio はそのまま ON のままで内部 state だけ初期化されます。ターミナル派は次のコマンドで同じ結果になります:
sudo pkill bluetoothd
sudo pkill bluetoothd なら BT チップは ON のままなので安全です。
MonoFlick はサーバを介さない 2 点間アプリのため、削除も各端末でローカルに行います。 通常の「アプリを捨てる」だけでは残るデータがいくつかあります。完全削除したい場合は下の手順で進めてください。
Mac コンパニオン — まず Preferences で権限をリセット
アプリ本体を削除する 前に、MonoFlick Companion の環境設定からアクセシビリティ/Bluetooth の許可を リセットしておくと、システム設定のプライバシーリストから自動的に項目が外れます。 後で「リストに残ったまま消せない」と困らないための一番楽な順番です。
tccutil reset Accessibility dev.foo.MonoFlick.Companion が走り、自アプリ分の TCC レコードのみが削除されます(管理者パスワードは不要)。tccutil reset が公式に対応していないため、リスト残りが気になる場合は後述「③」で手動削除します。
Mac コンパニオン(本体の削除)
/Applications を開き、MonoFlick Companion.app をゴミ箱へ移動します。Mac コンパニオン(完全削除 — 残存データも消す)
defaults delete dev.foo.MonoFlick.Companion~/Library/Preferences/dev.foo.MonoFlick.Companion.plist)
dev.foo.MonoFlick.Companion.pair と入力 → 該当項目を右クリック → 「削除」。security delete-generic-password -s "dev.foo.MonoFlick.Companion.pair"
tccutil reset 非対応のため、気になる場合は「システム設定 → プライバシーとセキュリティ → ローカルネットワーク」のリストから MonoFlick Companion のトグルを OFF にしてください(アプリ本体を消した時点で項目は無効化されていますが、リストには残ります)。
iPhone アプリ
片側だけ消したとき