何をやるか?

Mac や Windows の日本語入力のオン/オフ (IME ON/OFF) 切り替えを、左手の小指だけでできるようにしてみます。
これまでずっと、Cmd + Space
などのキーコンビネーションで IME の ON/OFF をしていたのですが、やはり IME ON/OFF 切り替えは別々のキーに割り当てた方が望ましい と思い、このたびがんばって設定することにしました。
新しい入力方法に慣れれば、「今 IME ON だっけ? OFF だっけ?」と悩むことがなくなるので、毎日のストレスがほんの少しだけ軽減すると思います。
また、Cmd + Space
などのキーコンビネーションが、アプリケーションのショートカットキーとバッティングしてしまうトラブルも避けられます。
前提条件は次の通りです。
- macOS と Windows の両方で同じようにキー操作できること
- キーコンビネーションではなく、異なる単独キーで IME ON/OFF できること
- US(英字配列)キーボードを使うので、「かな」「英数」などのキーがなくてもよいこと
- 無料のソフトで設定できること
最終的には、次のように設定することにしました。
- 使用するアプリケーション
- macOS: Karabiner-Elements
- Windows: AutoHotkey
- キー設定
CapsLock
キーの単押し → IME OFF- 左
Shift
キーの単押し → IME ON
今回は左小指で押せるキーを使いましたが、スペースキーの左右にある Cmd
キーや Alt
キーに割り当てるのもありだと思います。
最初は左右の Shift
キーに割り当ててみたのですが、どうしても右側の Shift
キーが押しにくく、上記のようなキー割り当てに落ち着きました。
macOS の設定
macOS では Karabiner-Elements を使って設定します。
メニューから、Complex Modifications
⇨ Add your own rule
を選択し、下記のように設定して保存すれば完了です。
{
"description": "CapsLockキー単押しでIMEオフ、左Shiftキー単押しでIMEオン",
"manipulators": [
{
"from": {
"key_code": "caps_lock",
"modifiers": { "optional": ["any"] }
},
"parameters": {
"basic.to_if_alone_timeout_milliseconds": 250,
"basic.to_if_held_down_threshold_milliseconds": 250
},
"to": [
{
"key_code": "caps_lock",
"lazy": true
}
],
"to_if_alone": [{ "key_code": "japanese_eisuu" }],
"to_if_held_down": [{ "key_code": "caps_lock" }],
"type": "basic"
},
{
"from": {
"key_code": "left_shift",
"modifiers": { "optional": ["any"] }
},
"parameters": {
"basic.to_if_alone_timeout_milliseconds": 250,
"basic.to_if_held_down_threshold_milliseconds": 250
},
"to": [
{
"key_code": "left_shift",
"lazy": true
}
],
"to_if_alone": [{ "key_code": "japanese_kana" }],
"to_if_held_down": [{ "key_code": "left_shift" }],
"type": "basic"
}
]
}
Karabiner-Elements は本当に色々な設定ができるので、使いこなせるようになったらすごく便利そうです。 でもやりすぎは禁物。
Windows の設定
Windows の場合は、AutoHotkey というソフトウェアを使います。 macOS のときより、若干手順は複雑です。
1. CapsLock キーと Control キーと入れ替える
まず、A
キーの左にある CapsLock
キーを Control
キーに入れ替えておきます。
Happy Hacking Keyboard など、ハードウェアスイッチがあるキーボードの場合はそれで設定すれば OK です。
キーの入れ替えは、Microsoft が提供している下記のいずれかのツールで簡単に設定できます。
- Ctrl2Cap.exe
- キー入れ替え専用のツールです。
- PowerToys
- いろんな便利ツールが入ってるので、この中の Keyboard Manager という機能を使います。
2. IME の設定を変更す
次に、IME の設定を変更し、無変換
キーを「IME-オフ」、変換
キーを「IME-オン」に割り当てておきます。
Windows の設定から次のように開き、
IME
で検索日本語 IME 設定
を選択キーとタッチのカスタマイズ
を選択
次のように設定します。

3. AutoHotkey のスクリプトの作成
最後に、AutoHotkey 用のスクリプトファイルを作成します。
.ahk
という拡張子を付けて適当なディレクトリに保存してください。
#Requires AutoHotkey v2.0
; https://maku.blog/p/s3subpp/
; 左Controlキーが単独で離されたときの処理
~LControl Up::
{
if (A_PriorKey = "LControl") {
Send "{vk1Dsc07B}" ; 「無変換」キーをエミュレート (IME OFF)
}
}
; 左Shiftキーが単独で離されたときの処理
~LShift Up::
{
if (A_PriorKey = "LShift") {
Send "{vk1Csc079}" ; 「変換」キーをエミュレート (IME ON)
}
}
ここでは、左 Control
キーを単独で押しときに 無変換
キーを押したかのように振る舞い、左 Shift
キーを押したときに 変換
キーを押したかのように振る舞うように設定しています。
AutoHotkey がインストールされた環境でこのスクリプトファイルをダブルクリックして起動すると、キーの入れ替えが有効になります。
無事に起動すると、タスクトレイに
アイコンが表示されます。
Windows の起動時にこの設定を有効にしたいときは、このファイルのショートカットを、Windows のスタートアップフォルダに作成しておきます。
スタートアップフォルダは、Win + R
⇨ shell:startup
で開くことができます。