はじめに
DeskflowでMacのキーボードからWindowsを操作していると、「英数キー」がMacみたいに動かず、Windowsでは二度押しで日本語入力に戻ってしまいます。
解決策
1. AutoHotkeyをダウンロードしてインストールする
- AutoHotkey公式サイトから「AutoHotkey」をダウンロードし、インストールしてください。
2. AutoHotkeyのスクリプトファイルを作る
- メモ帳などで新しいファイルを作り、中に下のスクリプトをコピペして保存します。
- ファイル名の最後は「.ahk」にしてください(例:
mac_ime.ahk
)。
```autohotkey
#Requires AutoHotkey v2.0+
; InstallKeybdHook
IME_SET(mode, winTitle := "A") {
hwnd := WinExist(winTitle)
if (hwnd) {
ptrSize := A_PtrSize
cbSize := 4 + 4 + (ptrSize * 6) + 16
stGTI := Buffer(cbSize, 0)
NumPut("UInt", cbSize, stGTI.Ptr, 0)
hwnd := DllCall("GetGUIThreadInfo", "UInt", 0, "Ptr", stGTI.Ptr)
? NumGet(stGTI.Ptr, 8 + ptrSize, "UInt") : hwnd
}
return DllCall("SendMessage"
, "Ptr", DllCall("imm32\ImmGetDefaultIMEWnd", "Ptr", hwnd, "Ptr")
, "UInt", 0x0283 ; Message : WM_IME_CONTROL
, "Int", 0x006 ; wParam : IMC_SETOPENSTATUS
, "Int", mode) ; lParam : 0 or 1
}
; Deskflow経由macの英数キー
; 副作用でwinの全角半角キーがIMEオフの動きになる
vkF4:: {
IME_SET(0)
}
```
3. スクリプトを起動する
- 作った「.ahk」ファイルをダブルクリックして実行します。
- タスクバーに「H」アイコンが表示されればOKです。
副作用について
この設定をすると、Windowsの「半角・全角キー」を押した時も必ずIMEがオフになります。
つまり、日本語入力したい場合は「かなキー」や「変換キー」など、他のキーを使う必要があります。
技術的な背景の解説(補足)
なぜこんな設定が必要なの?
- DeskflowでMacの英数キーを押すと、Windows側では「半角・全角キー」として認識されます。
- Windows標準の動作では「半角・全角キー」はIMEのオン・オフが切り替わる「トグル」動作です。
- Macの「英数キー」は押すと必ず英数入力(IMEオフ)になるので、操作感が違います。
AutoHotkeyを使うことで、Windows側でもMacと同じように「英数キー」を押したら必ずIMEがオフになる動作にできます。
ただし、Windowsのキーボードでも同じ設定になるため、副作用として「半角・全角キー」がIMEオフ固定になります。
まとめ
この設定をすれば、DeskflowでMacのキーボードからWindowsを操作するときも、Macと同じ感覚で「英数キー」を使えるようになります。
この記事を書いた過程はこちら