AutoHotkey
ergodox
CapsLock
QMK
keyLock

ErgoDoxEZでキーロックをホールディングで対応

またまたErgoDoxEZで、わざわざ使わないキーを設定しようと思いついた。
そして、使えない設定をすれば、設定しても設定していないことになるだろうとも思った。
(酔っていない。素面だ)
素面故に、あとあと間違いに気づいた。

ちなみに、タイトルに使っている"ホールディング"とは、キーを押し続けていることを表している。

キーロックキー

不思議なことに、キーをロックするキーが存在する。なかなかロックな感じだろう?
何のために存在するのか分からないが、 一時的にキーを使えないようにするためで、普段は使えるようにしておきたいからかもしれない。 一時的に有効化したい人用かも知れない。

設定するまで勘違いしていたのだが、使えなくするのではない。
全く関係のない話だった。

以下のキーを代替ロック可能だ。

3種類が標準でロック可能キーとして用意されている。
いわゆる、何チャラロックキーだ。

今までのキーでは、いわゆるトグルキーと言われ、1回の押下でOnになり、再度押下することでOffにする。
例えば、半角全角キーと同じ感覚だと思えば良いだろう。
現在の状態がどうなっているのかは、何かしらのキー操作をしなければ判断できない不便な状態だ。
それを払拭したのが今回のキーで、押下しているときだけ、有効化する代物だ。

今回設定するキーを押し続けているときだけ、このロックキーを有効化可能になっている。
以下のキーを設定する。

Caps Lock

キャップスロックキー:KC_CAPSLOCK
ロックキー:KC_LOCKING_CAPS

押しているときだけキャップスロックキーが有効化される。
Shiftキーの役割と何が違うのかイマイチ分からないが、普段キャップスロックキーを使っていないので、そう思うのだろう。

Num Lock

ナムロックキー:KC_NUMLOCK
ロックキー:KC_LOCKING_NUM

これは、押下しているときだけ、ナムロックが無効化される。
通常は、有効化されているため、なかなか使い勝手がよろしくないように思う。
NumLockとは・・ 数字で「固定する」「ロックする」

具体的には、テンキーの7キー押下で、数字の7が入力されると思う。
そして、ナムロックキー押下で、Homeキーとして機能するようになる。

しかし、今回の設定では、KC_LOCKING_NUMを押しているときに限り、数字の7が入力可能になる。
そして、何も押していない状態で、テンキーの7キーを押したときの挙動は、Homeキーとして動く。
これは結構困るかも・・・。

Scroll Lock

スクロールロックキー:KC_SCROLLLOCK
ロックキー:KC_LOCKING_SCROLL

押しているときだけスクロールロックキーが有効化される。
Excelソフトを頻繁に使う人には有意義なキーかも知れない。

ScrollLock キーをオフにする

ErgoDoxEZの矢印キー

Vimエディタでの操作と同じキーを矢印キーに設定しているのだが、今回はExcelソフトウェアを使って、キー効果を確かめた。
そのときの矢印キー操作が難航を極めた。
慣れていないためなのか分からないが、Excelとは相性が悪いように感じた。

その他Key Lock

KC_LOCK単体のキーコード設定が何か分かっていない。

Hold down the next key pressed, until the key is pressed again

しかし、上記の3種類が使えるのであれば、気にしなくていいかもね。

AutoHotKey(AHK)でのキーロック

そもそも、上記3種類のキーは、AHKで、無効化していた。

AutoHotkey.ahk
ScrollLock::return  ; スクロールキー無効
NumLock::return ; ナムロックキー無効
Capslock::return    ; キャップスロックキー無効

そして、物の見事に、AHKはその役割を忠実に働かせてくれていたようで、今回の実験を失敗に誘うことに成功したようだ。
最初設定していたことを忘れており、なぜ動かないのか不思議だったほどだ。
素晴らしいAHKに拍手を送りたい。

もう一つ言わせてくれ。
今まで、AHKには、"Ctrl+H"の組合せで、バックスペースキーの役割を設定していた。
今回の動作確認で終了していたため、その組合せも使えなくなってしまった。
やはり、改めて思うことは、キーボードだけで完結できる仕組みを作っておかなければ、外部のアプリに頼っていた場合、(もしそのアプリを起動していなければ)混乱を極めることになってしまうと・・・。
今更ながらに思った。

キー設定は普段通り

AキーやBキーのように設定すれば普通に使える。

keymap.c
  ・
  ・
  ・
KC_Q, KC_LOCKING_CAPS, KC_LOCKING_NUM, KC_LOCKING_SCROLL, KC_T
  ・
  ・
  ・

デフォルトのキー配列(qwerty)で言えば、Wキー・Eキー・Rキーにそれぞれ差し替えている。
そして、名前が長いためか、エイリアスも割り当てられている。
KC_LOCKING_CAPS ⇒ KC_LCAP
KC_LOCKING_NUM ⇒ KC_LNUM
KC_LOCKING_SCROLL ⇒ KC_LSCR

・通常のロックキーもエイリアスが存在する。
KC_CAPSLOCK ⇒ KC_CLCK, KC_CAPS
KC_SCROLLLOCK ⇒ KC_SLCK
KC_NUMLOCK ⇒ KC_NLCK

エイリアスで動作確認したわけではないが、使えるだろう。
以上だ。