作業スピードをアップするのに、キーボードショートカットは欠かせません。しかし、時には誤って入力してしまって、余計なことになってしまうことも珍しくないものです。中でもアプリケー0ションを終了させる「⌘Q」や、ウィンドウを閉じる「⌘W」はその代表選手です。そこで、今回はキーボードカスタマイズアプリのKarabiner-Elementsをつかい、それを予防させたので、その備忘録になります。

そもそも⌘Qと⌘Wの誤打はなぜ多いのか?

安全に作業を進める上で、作業途中で細かく「保存」を行うことはクリエイター業務では必須です。最近は自動保存してくれるアプリが多いとはいえ、自動を信用しすぎると後で「もうやりたくない!」となる、うちのデータどこにいったん?現象が起きるもの。

そこでこまめに保存のショートカット「⌘S」を入力するのですが、キーボードの構造上Sの上にはWとQがいるのです。

appleushairetu.png

また、主に全選択などでつかう「⌘A」もその上にQとWがいて、AとSは頻繁につかうショートカットにもかかわらず、近すぎて「安全のために保存しておこう」と思った民たちを奈落の底に突き落としてしまうのです。

Karabiner-Elementsで2度打ちのルールをつくる

そこで今回はキーボードカスタマイズアプリのKarabiner-Elementsを利用します。こちらのアプリについての詳細は置いておきますが、私はUSキーボードをつかう中で「英数」「かな」キーがない問題を解消するために入れています。そのあたりはまた今度。

Karabiner-Elementsには「Complex Modifications」という機能があり、これはプログラミングを利用してキーボードの細かい挙動などに特殊なルールを設定する機能です。さきほど話した「英数」「かな」キーの件もこれを利用しています。

プログラミングの知識がなくても、様々な人がアップした特殊ルールが公式にアップされていて、それを利用することが可能です。今回あげた誤打の中でも⌘Q問題は、多くの人が悩まされているらしく、すでにこれを解決するために「⌘Qでアプリを終了させたい時は連続して2回入力する」というルールがあります。

⌘Qの問題だけ解決したい人は、これをダウンロードして適用すればそれでOKです。誤って⌘Qを打っても、1回打っただけではなにも反応しません。連続して2回打ってはじめて「⌘Qのショートカット」を作動してくれるわけです。

Karabiner-Elementsでは、ダウンロードしたプログラムを自分の使いやすいように書き直すこともできるようになっています。そこで、これを応用して⌘W版もつくればよいわけです。

今回はChatGPT君に相談しました。単純に元のスクリプトをテキストエディタに貼り付けて、それを添付してこれの「⌘W版もつくって」と指示したのみです。

まず以下がそのコードです

{
    "description": "Close window by pressing command-w twice",
    "manipulators": [
        {
            "conditions": [
                {
                    "name": "command-w",
                    "type": "variable_if",
                    "value": 1
                }
            ],
            "from": {
                "key_code": "w",
                "modifiers": {
                    "mandatory": ["command"],
                    "optional": ["caps_lock"]
                }
            },
            "to": [
                {
                    "key_code": "w",
                    "modifiers": ["left_command"]
                }
            ],
            "type": "basic"
        },
        {
            "from": {
                "key_code": "w",
                "modifiers": {
                    "mandatory": ["command"],
                    "optional": ["caps_lock"]
                }
            },
            "to": [
                {
                    "set_variable": {
                        "name": "command-w",
                        "value": 1
                    }
                }
            ],
            "to_delayed_action": {
                "to_if_canceled": [
                    {
                        "set_variable": {
                            "name": "command-w",
                            "value": 0
                        }
                    }
                ],
                "to_if_invoked": [
                    {
                        "set_variable": {
                            "name": "command-w",
                            "value": 0
                        }
                    }
                ]
            },
            "type": "basic"
        }
    ]
}

そして、以下が設定の解説です。

<aside>

  1. 条件付きで「W」キーが押された場合の動作:
  2. 「W」キーが押されたときの動作:
  3. 遅延アクション:

とてもありがたい。あっと言う間です。LLMなのもあって、⌘Wはウィンドウ閉じる動作だから、その名前つけておくねって感じで勝手にタイトルを付け替えてくれていました。

ストレスだから特定のアプリのみにしたい

GPT君ががんばってくれたのですが、ブラウザで大量にタブを立ち上げた後など、⌘Wを何度も2度打ちするのが地味にストレスになりました。そこで、⌘Wの誤打を防ぎたいアプリを挙げて、そのアプリのみで適用するように書き換えてもらいました。