概要
Macのキーボード配列で訳あってUSキー配列とJISキー配列の2台持ちしているのですが、キーボードの配列の違いはなんとか許容できるにしてもUSキー配列で使用しているoptionキーの挙動とJISキー配列でのoptionキーの挙動が違い、いつも苦しんでいます
何かしらの方法で解消できないかを調べてみた記事になります
そもそもなぜこのようなことが起こるのか?
chatGPTが言うには以下のような違いがそれぞれのキーボード配列であるそうです
USキー配列
→ 英語テキストを基本に作られているので、Option + バックスペースとかOption + 矢印で単語単位(word単位)できれいに区切って削除・移動できる。
(単語と単語の間に空白があって、記号もルール通りだから処理しやすい)JISキー配列
→ 日本語テキストでは単語の区切りが明確じゃない(空白を入れないし、助詞とかも続く)ので、macOS側が「たぶんこのへんかな」ってかなり緩く推測して動かしてる。
つまりJISキー配列でもUSキー配列のような設定にできればなんとかなりそうですね
やってみる
キーボード設定をいじるには、以下の2種類の方法があるそうです
方法 | 難易度 | 特徴 |
---|---|---|
Karabiner-Elementsを使う | 低〜中 | 安全に、細かく自由に設定できる。おすすめ。 |
IME設定ファイルをいじる | 高 | もっと深いレベルでカスタム可能。でもリスクあり。 |
今回はリスク取らずにやってみたいのでKarabiner-Elements
を使ってみます
-
Karabiner-Elementsのダウンロード
Karabiner-Elements公式ダウンロードページからdmgをダウンロードして、インストールします
使用しているOSバージョンに合わせたものをダウンロードしましょう -
アプリケーションの起動・設定
インストールしたアプリケーションを起動すると以下のようなものが表示されると思います
今回はJIS配列なのでJISを選択
バックグラウンドで実行する権限が必要なので、「Agents」と「Daemons」を許可しておきましょう
「karabiner_grabber」というものも許可が必要なので、そちらも許可しましょう
「ドライブ拡張機能」にもKarabiner~~~というのがあるので、そちらも許可します -
設定を変更してみる
アプリ画面上から設定することも可能ですがjsonファイルで設定することも可能なので、そちらで進めていきます
以下は「option + delete」の挙動を英語と同じ単語削除の挙動を強制すると{ "title": "Fix Option+Delete for Japanese Input", "rules": [ { "description": "Make Option+Delete behave like word delete even when typing Japanese", "manipulators": [ { "type": "basic", "from": { "key_code": "delete_or_backspace", "modifiers": { "mandatory": ["option"] } }, "to": [ { "key_code": "delete_or_backspace", "modifiers": ["option"] } ], "conditions": [ { "type": "input_source_if", "input_sources": [ { "language": "ja" } ] } ] } ] } ] }
そして再起動して試してみましょう
いかがでしたか?
残念ながら自分の環境ではoptionキーを押しながら移動しても挙動が変わらず、やりたいことはできませんでした
おわりに
残念なことに本来やりたいことはできませんでしたが、Karabiner-Elementsというものに出会うことはできました
やはり世の中にはいろいろカスタマイズしたいと思う人がたくさんいるんだなと実感しました
ちなみにQiita上のエディタやVScodeでは日本語の「optionキー+カーソル移動」が単語ごとに移動してくれませんでしたが、chatGPTの入力欄ではなぜか日本語でも単語ごとに区切って移動してくれました
もしかするとキーボード配列関係なしでQiitaのエディタとかが良くなかったのかもしれません