ErgoDoxEZを使っていて、面白そうではあるが、個人的には不便な設定を見つけたので、紹介する。
Shiftキー自動押下
正確には、ErgoDoxに関係なく、QMKのFirmwareに関する設定の一つ。
結論を言えば、A
キーを一定時間押下し、キーを離したときに、大文字の"A"が入力できる。
通常は、A
キー単体押下では、小文字の"a"のみしか扱えない。
それが今回の対応で、自動でShiftキーを押下してくれるというもの。
Auto Shift
使い方が合っているのか不明だが、一応設定できたことで、合っていると判断する。
それは、インストールディレクトリ\qmk_firmware\keyboards\ergodox_ez\keymaps\個人のキーマップディレクトリ
に、rules.mk
ファイルを配置する。
そして、そのファイルを
AUTO_SHIFT_ENABLE = yes
とする。
その後、コンパイルを行い、"〜〜〜.hex"を作成後、キーボードにファームウェアを流し込めば、Shift自動押下が適応される。
個人的には迷惑この上ない設定だと思う。
解除の方法が分からないのだから・・・(rules.mkを除いた状態でコンパイルを行い、キーボードにhexファイルを流し込めば良いのだが、そういうことではない)。
当然指をくわえて眺めていたわけではない。眺めただけで出来るようになれば努力なんて要らない。
AutoShift解除
A
キーの設定と同じように、On/Offの設定をキーに割り当てておけば、無効化できる。KC_ASOFF
をどこかのキーに設定しておけば、そのキー押下で、今回設定したShift自動押下機能が無効化される。
AutoShift実行
無効化後、再度有効にする場合は、KC_ASON
をどこかのキーに設定しておけば、そのキー押下で、再度有効になる。
AutoShift実行切り替え
上記は、2つのキー設定が必要になる。
トグルの場合、ワンタップで有効・無効が切り替えられれば、キーの有効活用が出来るだろう。KC_ASTG
をどこかのキーに設定しておけば、ワンタップで有効・再度ワンタップで無効化できる。
Windowsキーにワンタップでこのキーを設定しておけば、便利・・・ではないか。
私は、昨日投稿したキーをWindowsキーと組み合わせている。
AutoShift有効時間
押下時間の長さで、Shiftキー押下が有効になっているかどうかが決まる。
短い時間の押下では、そのままのキーになり、長い時間の押下では、Shiftキー押下とそのキーの組合せになる。
その時間を長くしたい場合は、KC_ASUP
をどこかのキーに設定しておけば、このキーによって、キーの押下時間を長くしなければならない(待機時間が上がる)。
例えば、今まで1秒押下したら"a"が"A"になっていたのに、今回の設定で、5秒押下しなければ"a"が"A"にならないといった感じだ。
手の動きが遅い人には良いかもしれない。
また、逆にせっかちな人は、今まで1秒押下したら"a"が"A"になったのすら長いと感じる人だ。
そんな人は、KC_ASDN
をどこかのキーに設定して、何回か押下しよう。
そうすれば、"a"押下を0.1秒で"A"にできる(待機時間が下がる意味のDown?)。
※今回の待機時間は例なので、信じないように。
標準の待機時間は175ミリ秒だと思う。
KC_ASRP
これ何?
指をくわえて眺めることしか出来ない人間なので、これが何か分からない。
もしかしたら現在の待機時間を出力する?
このキーコードをキーに設定後、テキストエディタがアクティブになっているときに、キー押下によって、"\n175\n"が出力された。
\n:改行
キーの種類によりAutoShift有効を制限する。
これまたC言語のファイルを触ることになるのだが、これこそどうすれば良いのか分からない。
きっとヘッダファイルに、制限したい文字種類を記載すれば良いと思う。
ヘッダファイルが重要なので、別の場所で定義しても仕方ない。インストールディレクトリ\qmk_firmware\keyboards\ergodox_ez
config.h
ファイルに記載する必要がある。
このファイルであれば、どこに記載しても良いと思う。
無効化により、キーを押下し続けた場合、押下時間に比例して、その文字(キー)が打ち込まれることになる。
他のキーは、押下によって一時停止するため、肩すかしを食らうほどタイミングが合わなくなる。
NO_AUTO_SHIFT_NUMERIC
他は有効にしたいが、数字だけはShift押下を無効にしたい場合に宣言する。
宣言方法は、以下になる。
#define NO_AUTO_SHIFT_NUMERIC
NO_AUTO_SHIFT_SPECIAL
他は有効にしたいが、特殊な記号だけはShift押下を無効にしたい場合に宣言する。
宣言方法は、以下になる。
#define NO_AUTO_SHIFT_SPECIAL
特殊な記号:-_=+[{]};:'",<.>/?
スペース・ハイフン・アンダーバー・イコール・プラス・鍵括弧開(閉)・波括弧開(閉)・コロン・セミコロン・シングルクォーテーション・ダブルクォーテーション・カンマ・小なり不等号・ピリオド・ピリオド・大なり不等号・スラッシュ・ハテナ(クエッション)
対象外なのは、!や@など数字キーをShift押下で変化する記号が対象外のようだ。
ならば、円記号はどうなるのか・・・。
NO_AUTO_SHIFT_ALPHA
他は有効にしたいが、文字だけはShift押下を無効にしたい場合に宣言する。
宣言方法は、以下になる。
#define NO_AUTO_SHIFT_ALPHA
要は、a〜zを普通に使えると言うこと。
大文字にするには、わざわざ人間様の手でShiftキーを押下した上で、文字キーを押さなければならない。
メリット
時間調整が可能で、有効有無を切り替えられるのはありだと思う。
やはり、身体障害者向けだと思うが・・・。
最低でもVim使いには邪魔な存在でしかない。
今回有効にしたため、カーソルを移動させるため、k
キー押下でヘルプが起動するようになった。
大文字の"K"が押下したことになり、カーソル配下の文字をヘルプで探す動きになった。
最初その挙動が理解できず、かなり焦った。j
キーもそうだ。大文字の"J"になり、2行が1行にまとめられる様は、混乱の元になる。
自分で大文字にする設定をしているはずなのに、意図せずに大文字になるため、体が固まる。
しかし、慣れれば便利かも知れない。
デメリット
わざわざキーボードで制御する意味がよく分からない。
考えられるのは、どうしても体が不自由で、ペン一本でしかキーボードを打てない状態になった場合であり、かつOS側の設定を変更出来ないときに限りそうだ。
そんな場合に、キーボードを使えるのか疑問だが。
OS側の設定というのは、WindowsOSであれば、標準でその機能が備わっているからだ。
アクセシビリティ
※画像真ん中の「固定キー機能を使用する」を"オン"にすれば、今回の機能と似たようなことが出来る。
あくまで"似た"動作が出来る。
以上。
1週間もせずに、ErgoDoxEZに関する投稿をしてきた。しかし、HHKBを使って執筆しているのは内緒だ。