Keychron K1 Pro の QMK/VIA キーボードカスタマイズ(Mac編) の続き。
Windows でも MagicKeyboard(JIS) の配列に近づけるように試行錯誤する。
前回にも書いたが、キーボードレイアウトは LAYER 0〜4 の4種類、Windows では LAYER 2(通常) と 3(Fnキー押下時) を使う。
Mac の Command キーは Windows では概ね Ctrl キーなので。
Windows キーもまあまあ使うので左端に配置。
これは Mac と同じく。
Mac では Karabiner-Elements または ⌘英かな アプリで、右Cmd で IME ON、左Cmd で OFF を実現していたが、Windows ではそれが行えるソフトウェアは今のところ発見できていない。
ので、普段使用しないキーと AutoHotKey というソフトウェアを用いて、Mac での使用感に近づける。
右Command の右隣のキーは普段使わないので、ここを PrintScreen に割り当てる。
そして、AutoHotKey を使って「PrintScreen が押されたら "変換" キーを送信」する。
PrintScreen ではなく直接 "変換" キーを VIA で割り当てればよいのでは?とやってみたが、動作しなかった。 恐らく、Windows の設定でキーボードを US 配列にしているので、 "変換" キーは存在しないことになっているのではないかと思う。
左Command キーの左隣は Alt と Windows キーであり空いておらず、仕方ないので CapsLock キーを IME OFF に割り当てる。
こちらも、"無変換" キーの直接割り当ては効かなかったので、VIA で Pause キーを割り当て、AutoHotKey を使って「Pause が押されたら "無変換" キーを送信」する。
AutoHotKey では「キーをn回連続で押した時」というスクリプトが書けるので、それを利用して「Ctrlが2回連続で押されたら "無変換" キーを送信」する。
これで、どうにか Mac での IME ON/OFF に寄せることができた。
以下に、AutoHotKey のスクリプトファイル(xxx.ahk
)を置いておく。
;PrintScreen(右ALTに割当想定) で IME ON
PrintScreen::
send, {vk1Csc079}
return
;Pause(CapsLockに割当想定) で IME OFF
Pause::
send, {vk1Dsc07B}
return
; Ctrl 2連打で IME OFF
$Ctrl::
KeyWait, Ctrl, T0.4
if A_TickCount < %KeyDouble%
{
send, {vk1Dsc07B}
KeyDouble = 0
}
else
{
KeyDouble = %A_TickCount%
KeyDouble += 400
}
return
変更前と変更後のキーレイアウトを比べると、こんな感じ。