0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

手元macbookからJump Desktop経由のmac miniに「英数」と「かな」を送るまで

0
Posted at

はじめに

Jump Desktopでリモート接続した先方Mac(mac mini)に対して、手元のJISキーボードの 英数 / かな キーで、先方側の日本語入力(IME)を連動して切り替えられるようにした。

結論

Jump Desktop越しのキー入力は合成(injected)イベントとして先方Macに届くため、Karabiner-Elementsのようなキーリマップツールを先方側に入れても、その変換ロジックはこの合成イベントを一切拾えず機能しない。

一方で、OS標準の「入力ソースを直接選択する」キーボードショートカット(システム設定にあらかじめ登録されているもの)だけは合成イベントでも正常に反応する。

したがって、先方Macは一切いじらず、手元MacのKarabiner-Elementsから、先方MacのOS標準ショートカットのキー入力をそのまま送りつけるのが唯一かつ最もシンプルな解決策になる。

前提・環境

  • 手元Mac: Karabiner-Elements導入済み、JISキーボード
  • 先方Mac(mac mini): Jump Desktopでリモート接続する対象。何も追加インストールしない
  • 接続: Jump Desktop(bundle id: com.p5sys.jump.mac.viewer

設定手順

1. 先方Macで、入力ソース直接選択のショートカットを確認する

先方Macのメニューバーの入力ソースアイコンをクリックし、各入力ソースの右側に表示されているショートカットを確認する。

  • 英字: 例 ⌃⇧;(Control+Shift+セミコロン)
  • ひらがな: 例 ⌃⇧J(Control+Shift+J)

割り当てが無い/わからない場合は、システム設定 →「キーボード」→「キーボードショートカット」→「入力ソース」で、「前の入力ソースを選択」「入力メニューの次のソースを選択」などにショートカットを設定しておく。以降の手順ではここで確認した組み合わせを使う(環境によって値は変わる)。

2. 手元Macに、Karabiner-Elementsの設定ファイルを追加する

~/.config/karabiner/assets/complex_modifications/ に、以下の内容でファイル(例: remote-ime.json)を保存する。to のキー・修飾キーは、手順1で確認した先方Macのショートカットに合わせて書き換える。

{
  "title": "入力切り替え(JIS配列・Jump Desktop対応)",
  "rules": [
    {
      "description": "Jump Desktop時:英数キーでCtrl+Shift+;、かなキーでCtrl+Shift+Jを送信(先方MacのOS標準ショートカットに直接合わせる)",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "japanese_eisuu",
            "modifiers": { "optional": ["any"] }
          },
          "to": [
            { "key_code": "semicolon", "modifiers": ["control", "shift"] }
          ],
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": ["^com\\.p5sys\\.jump\\.mac\\.viewer$"]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "japanese_kana",
            "modifiers": { "optional": ["any"] }
          },
          "to": [
            { "key_code": "j", "modifiers": ["control", "shift"] }
          ],
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": ["^com\\.p5sys\\.jump\\.mac\\.viewer$"]
            }
          ]
        }
      ]
    }
  ]
}

conditionsbundle_identifiers は、Jump Desktopが最前面のときだけこのルールを有効にするための条件。自分のJump Desktopのbundle idと違う場合は、ターミナルで以下を実行して確認する。

mdls -name kMDItemCFBundleIdentifier /Applications/Jump\ Desktop.app

3. Karabiner-Elementsでルールを有効化する

  1. Karabiner-Elementsの環境設定を開く
  2. 「Complex Modifications」タブ →「Add rule」
  3. 追加したファイルの内容がリストに出てくるので「Enable」を押す

ファイルを編集した場合は、既存のルールを一度「Remove」してから「Add rule」で読み込み直さないと変更が反映されないので注意。

4. 動作確認

Jump Desktopで先方Macに接続した状態で、手元のJISキーボードの 英数/かな キーを押す。先方Macのメニューバーの入力ソースアイコンが切り替わり、実際の入力も連動していれば成功。

つまずきやすいポイント

  • 先方MacにKarabinerやHammerspoonなどのツールを入れて「受け口」を作ろうとしないこと。Jump Desktop越しの入力は合成イベントなので、キーリマップ系ツールの変換ロジックには一切引っかからず、何を設定しても無反応になる。
  • 逆に、OS標準の入力ソース切替ショートカットだけは合成イベントでも反応するため、そこに直接乗せるのが最短ルート。
  • japanese_eisuu/japanese_kana というキーコード自体も特殊で、Hammerspoonの hs.eventtap などによる合成注入では反応しない。今回のように、Karabiner-Elements側で最初から普通のアルファベットキー(e, j など)+ 修飾キーの組み合わせとして送出するのがポイント。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?