Keychron K1 Pro の QMK/VIA キーボードカスタマイズ(Windows編)

Keychron K1 Pro の QMK/VIA キーボードカスタマイズ(Mac編) の続き。

Windows でも MagicKeyboard(JIS) の配列に近づけるように試行錯誤する。

前回にも書いたが、キーボードレイアウトは LAYER 0〜4 の4種類、Windows では LAYER 2(通常) と 3(Fnキー押下時) を使う。

キーカスタマイズ内容

1. スペースキーの左右を Ctrl に

Mac の Command キーは Windows では概ね Ctrl キーなので。

2. Windows キーは左端に

Windows キーもまあまあ使うので左端に配置。

3. caps lock キーは Fn を押しながらに

これは Mac と同じく。

4. IME の ON/OFF をどうするか問題

Mac では Karabiner-Elements または ⌘英かな アプリで、右Cmd で IME ON、左Cmd で OFF を実現していたが、Windows ではそれが行えるソフトウェアは今のところ発見できていない。

ので、普段使用しないキーと AutoHotKey というソフトウェアを用いて、Mac での使用感に近づける。

IME ON は、右Command の右隣のキーで行う

右Command の右隣のキーは普段使わないので、ここを PrintScreen に割り当てる。

そして、AutoHotKey を使って「PrintScreen が押されたら "変換" キーを送信」する。

PrintScreen ではなく直接 "変換" キーを VIA で割り当てればよいのでは?とやってみたが、動作しなかった。 恐らく、Windows の設定でキーボードを US 配列にしているので、 "変換" キーは存在しないことになっているのではないかと思う。

IME OFF は、Caps Lock キーで行う

左Command キーの左隣は Alt と Windows キーであり空いておらず、仕方ないので CapsLock キーを IME OFF に割り当てる。

こちらも、"無変換" キーの直接割り当ては効かなかったので、VIA で Pause キーを割り当て、AutoHotKey を使って「Pause が押されたら "無変換" キーを送信」する。

IME OFF は、左Ctrl の2連打でも OFF できるようにする(QMK関係なし)

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

変更前と変更後のキーレイアウトを比べると、こんな感じ。

初期状態

変更後