MacのPowerPointでAquaSKKのCtrl+jが反応しない問題の対策(2024年版)

# 何が書いてある?
MacのPowerPointでAquaSKKの日本語切り替えができない問題の対策ついて書いてあります。


# 問題点
MacのPowerPointではCtrl+[何かのキー]にいくつかショートカットキーが割り当てられている。AquaSKKではCtrl+jで入力モードを「かな」に切り替えるのだが、同じショートカットをPowerPointも使用しておりバッティングしてしまう問題があった。

この問題は以前から報告されており、解決策もブログ等で紹介されている。(たとえば[こちら](https://blog.loliver.net/archive/aquaskk-on-powerpoint/))。

上のリンクにある方法を試してみたが、著者環境では解決できなかった。

# 著者環境

* macOS Sonoma (14.2)
* AquaSKK 4.7.5
* Karabiner-Elements 14.13.0
* Microsoft PowerPoint Ver. 16.83 (24031120)
* 自作キーボード (自作基板、HelixキーボードのQMKファームウェアを改造して使用)

# 報告されている解決策と状況が異なる点

著者環境では、PowerPointにおいてCtrl+jが改行に割り当てられていた(以前の報告では「段落を両端揃えにする」になっている)。

解決策通りにKarabiner-ElementsとAquaSKKのかな切り替えを設定しても、Ctrl-jで改行が入力されてしまった。

USでもJISでもない自作キーボードを使用しているためなのか、PowerPointのバージョンが上がったことによるもの(解決策は2021年のもの)なのか、原因はわからない。

# 新たな解決策

解決方法は以前のものと同様である:
1. Karabiner-ElementsでCtrl-jの入力を「別の入力」に置き換える
1. 「別の入力」をAquaSKKのかな切り替えに割り当てる

以前の方法では「Ctrl-j」を「Ctrl-Option-j」に置き換えることで対処していた。しかし、著者環境では**置き換え後の入力に「Ctrl-j」が含まれていると、PowerPointがそれを奪い改行が入力されてしまうようであった**。

「**Ctrl-Alt-0**」の組み合わせは(おそらく)PowerPointでは使用されておらず、この組み合わせを著者は他のソフトで使用していないため、これを置き換え先にした。結果、PowerPointでCtrl-jを使ってかな切り替えができるようになった。

# 設定方法

## Karabiner-Elementsの設定
Karabiner-Elementsの設定ファイル(`~/.config/karabiner/karabiner.json`)の"rules"に以下を追加し、PowerPointでの「Ctrl-j」の入力を「Ctrl-Option-0」に置き換える(一部抜粋):
```karabiner.json
                "rules": [
                    {
                        "description": "Ctrl-j to Kana on PowerPoint",
                        "manipulators": [
                            {
                                "conditions": [
                                    {
                                        "bundle_identifiers": [
                                            "^com\\.microsoft\\.Powerpoint"
                                        ],
                                        "type": "frontmost_application_if"
                                    }
                                ],
                                "from": {
                                    "key_code": "j",
                                    "modifiers": {
                                        "mandatory": [
                                            "control"
                                        ]
                                    }
                                },
                                "to": [
                                    {
                                        "key_code": "0",
                                        "modifiers": [
                                            "control",
                                            "option"
                                        ]
                                    }
                                ],
                                "type": "basic"
                            }
                        ]
                    }
            },
```

念のため、設定変更後Karabiner-Elementsを再起動する。

## AquaSKKの設定
AquaSKKのシステム全体のキーマップ設定をユーザーフォルダにコピーし、「Ctrl-Option-0」をかな切り替えに追加する:

1.キーマップ設定ファイルをコピー
```
cp /Library/Input\ Methods/AquaSKK.app/Contents/Resources/keymap.conf ~/Library/Application\ Support/AquaSKK
```
2.適当なテキストエディタでコピーしたkeymap.confの`SKK_JMODE`の行を`SKK_JMODE               ctrl::j||ctrl::alt::0`とする

画面右上の入力モードアイコンから「設定ファイルの再読み込み」をクリックする。

# 余談

この問題は少なくとも2016年頃から発生している([著者が2016年にAquaSKKのGitHubのIssuesに書き込んだもの](https://github.com/codefirst/aquaskk/issues/43))。

ショートカットキーのカスタマイズ機能をつけてほしい、という要望をPowerPointのフィードバックに出したこともあるが、改善される気配はない。(Aqua)SKKはマイナーな入力方法なので仕方ないと思う反面、他のソフトとの組み合わせでも起こりうる問題なので、Microsoftさん、ぜひショートカットキーのカスタマイズ機能をお願いいたします。