見出し画像

執筆のためのキーボードセッティング

 世の中、様々な仕事があって、その仕事に応じた様々な道具があります。
 たとえば大工さんの墨壺。素人にはまったくなじみのない道具だけれど、プロにとっては必須のもの。そして必須であればあるほど、それを使う本人が自分用にチューニングを施していたりするものです。
 僕がメインパーソナリティを務めるポッドキャスト番組『そんない雑貨店』でもおなじみ、陶芸家の酒井紫羊さんの工房を訪れたときにも、「1日何時間も握ってるから」と絵付け用の筆に練り消しを巻いて、ご自分の手にぴったりフィットするように工夫してました。

 それは物書きも同様で、ペンの握りを加工したり、自分用の原稿用紙を作ったりと、気持ちよく執筆出来るようにいろんな工夫をする人がいます。
 とはいえ昨今ではパソコンを使って執筆する人が多く、僕もその一人。1日に何千文字何万文字と書く——タイプする——ようになると、おのずとキーボードにこだわりたくなるもの。
 というわけで、Apple純正Magic Keyboardを使ってみたり、HHKBを使ってみたりしましたが、現在もっともしっくりきているのがREALFORCEのR3。ちょっと前まではR2を使っていましたが、Bluetooth接続がやはり便利なので。
 ただこのBluetooth接続がちょっと追従性が悪いような気がしたり、ユーティリティがいまいちだったりする気がしないでもない……。それでも打ち心地自体は最高です。

 さて、キーボードが自分の手に馴染めば馴染むほど打鍵速度が上がってきて、リズミカルに打てるようになるもの。そうなると、リズムを乱す要素は極力排除したくなります。
 みなさんはいちばんリズムが乱れるキーってどれですか?僕の場合は、あろうことかreturnキーと矢印キーです。ついでにいうと、delete (backspace) と右delete(英語ではdelete forward)も。
 だってあいつら、ホームポジションから離れすぎじゃないですか?確定するときにも間違えたときにも、あんなところにあるキーを押しに行くのって罰ゲームじゃないですか?手の小さい人はreturnキー押そうとして手首ひねっちゃったりしませんか?矢印キーなんて、一行上に行きたいだけなのにどうしてあんなに手を動かさなくちゃならないんですか? 

 というわけで、なんとかホームポジションから手を離さずにこれらのキーを打つ方法はないものかと考えていたら、ありました。
 Macの場合、control + Hでdelete、control + Dで右delete、control + Fで1 文字分進む、control + Bで1 文字分戻る……。いっぱいあるんですよ、キーボードショートカットが。だけど特に矢印キーの代わりが直感的じゃない。

 そこで登場するのが、Karabiner-Elementsというユーティリティです。
 REALFORCEのキーボードについてくるユーティリティもキーのリマッピングは出来るのですが、これはあくまでもリマッピング。「このキーを押しながらこちらのキーを押したときにはこの機能を」というような設定は出来ません。
 Karabiner-Elementsならそれが可能になります。

 Karabiner-Elementsには様々なプロファイルが用意されていて、自分好みのプロファイルをダウンロードして使うことが出来ます。
 たとえば、通常は一度押しただけで機能するcaps lockキーを二度押しにして、さらに長押ししているときにはcontrolキーとして機能させるとか。
 自分好みのプロファイルがあればそのまま使えるのです。自分好みのプロファイルがあればね。
 大変便利なKarabiner-Elementsではありますが、自分の目的に完全に合致したプロファイルがあるとは限りません。
 僕の場合、ホームポジションから手を離さずにカーソルを移動させるために、control + アルファベットキーで矢印キーの代わりをさせたい。そんなプロファイルを探していると、ありました。"Left ctrl + hjkl to arrow keys Vim"というプロファイルです。
 このプロファイルはcontrolキーと"h", "j", "k", "l"を同時に押すとそれぞれ←↓↑→矢印キーの代わりをしてくれるようです。
 しかし、ここでひとつ問題が。
 このプロファイルを導入すると、もともとMacの設定にあったcontrol + Hでdeleteとぶつかってしまうのです。
 さあどうしようと思ってもう少し調べると、Karabiner-Elementsのプロファイルは自分で書くことも可能とのこと。
 そう思ってプロファイルの中身を見てみることにしました。

{
    "description": "Left ctrl + ijkl to arrow keys Vim",
    "manipulators": [
        {
            "from": {
                "key_code": "h",
                "modifiers": {
                    "mandatory": [
                        "left_control"
                    ],
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "left_arrow"
                }
            ],
            "type": "basic"
        },
        {
            "from": {
                "key_code": "j",
                "modifiers": {
                    "mandatory": [
                        "left_control"
                    ],
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "down_arrow"
                }
            ],
            "type": "basic"
        },
        {
            "from": {
                "key_code": "k",
                "modifiers": {
                    "mandatory": [
                        "left_control"
                    ],
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "up_arrow"
                }
            ],
            "type": "basic"
        },
        {
            "from": {
                "key_code": "l",
                "modifiers": {
                    "mandatory": [
                        "left_control"
                    ],
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "right_arrow"
                }
            ],
            "type": "basic"
        }
    ]
}

 さっぱりわかりませんが、なんとなくこの"from"のあとの"h", "j", "k", "l"がそれぞれ押すキーを、"mandatory"のあとの"left_control"が一緒に押すキーを、そして"to"のあとの"left_arrow"とか"right_arrow"とかが実際に入力されるキーになってる気がします。
 そこで"h", "j", "k", "l"を"j", "k", "i", "l"に書き換えてみました。
 するとcontrolと同時に押した"j", "k", "i", "l"がそれぞれ←↓↑→矢印キーとして機能します。

 こうなると、もう一歩やりたくなりますよね……。
 どうにかしてホームポジションのままreturnキーを押したい。きっとさっきのプロファイルに手を加えれば出来るんじゃないかな……。
 結論からいうと、出来ました。
 "j", "k", "i", "l"の"k", "i", "l"部分をブロックごとカットして、"from"のあとの"j"を"8"に、"to"のあとを"return_or_enter"に書き換えるとcontrol + 8でreturn出来ます。
 下にそのプロファイルの中身を貼っておきますが、"8"のところを好きなキーに書き換えれば自分好みに設定出来ます。
 もちろん、""return_or_enter"という部分を書き換えれば好きな機能を持たせることが出来ます。

{
    "description": "control+8>return",
    "manipulators": [
        {
            "from": {
                "key_code": "8",
                "modifiers": {
                    "mandatory": [
                        "left_control"
                    ],
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "return_or_enter"
                }
            ],
            "type": "basic"
        }
    ]
}

 この"8"とか"return"とかの部分をキーコードというそうですが、修飾キーや機能キーはキーに印字してある言葉と実際のキーコードが違っている場合が多いです。
 上の例でも通常はreturnと呼んでいるキーが、キーコードではreturn_or_enterになっています。
 このキーコードはKarabiner-Elementsと同時にインストールされるKarabiner-EventViewerで確認することが出来ます。

 昔の物書きが万年筆や鉛筆をカスタマイズしたように、キーボードをカスタマイズして思う存分書きまくりましょう。

【追記】2024/01/02
 ↑矢印キーをcontrol + iに変更した場合、ATOK使いは多少困ることがあるかも知れません。というのも、ATOKの初期設定ではcontrol + iは「入力中の文字を全角カタカナに変換する」という機能にあてられているからです。
 全角カタカタに変換するのは、選択範囲を変更してカタカナが出るまで変換し続ければいいんですが、僕は小説の中でカタカナを多用するのでこれだと効率が悪い。どうしても 一発でカタカナに変換したいのです。
 そんなときはATOKの「キー・ローマ字カスタマイザ」メニューから「キー設定」を変更しましょう。僕は「カタカナに変換」をcontrol + pに変更しました。
 もともとcontrol + pは「全角英字変換」なのですが、僕はこの機能は使わないので。
 最初はcontrol + uにしようと思ったのですが、こうするとなぜかtabキーによる「推測候補の選択」が出来なくなってしまいました。
 おそらく他のIMEでも、必要な機能がバッティングしたら同様の方法で他のキーに逃がしてやることができると思います。

サポートありがとうございます。サポートのおかげで、新しい小説を書くことが出来ます。