Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

障害者向けのShiftキー自動押下

$
0
0

ErgoDoxEZを使っていて、面白そうではあるが、個人的には不便な設定を見つけたので、紹介する。

Shiftキー自動押下

正確には、ErgoDoxに関係なく、QMKのFirmwareに関する設定の一つ。
結論を言えば、Aキーを一定時間押下し、キーを離したときに、大文字の"A"が入力できる。
通常は、Aキー単体押下では、小文字の"a"のみしか扱えない。
それが今回の対応で、自動でShiftキーを押下してくれるというもの。

Auto Shift

使い方が合っているのか不明だが、一応設定できたことで、合っていると判断する。
それは、
インストールディレクトリ\qmk_firmware\keyboards\ergodox_ez\keymaps\個人のキーマップディレクトリ
に、rules.mkファイルを配置する。

dir.jpg

そして、そのファイルを

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押下を無効にしたい場合に宣言する。
宣言方法は、以下になる。

config.h
#define NO_AUTO_SHIFT_NUMERIC

NO_AUTO_SHIFT_SPECIAL

他は有効にしたいが、特殊な記号だけはShift押下を無効にしたい場合に宣言する。
宣言方法は、以下になる。

config.h
#define NO_AUTO_SHIFT_SPECIAL

特殊な記号:-_=+[{]};:'",<.>/?
スペース・ハイフン・アンダーバー・イコール・プラス・鍵括弧開(閉)・波括弧開(閉)・コロン・セミコロン・シングルクォーテーション・ダブルクォーテーション・カンマ・小なり不等号・ピリオド・ピリオド・大なり不等号・スラッシュ・ハテナ(クエッション)

対象外なのは、!や@など数字キーをShift押下で変化する記号が対象外のようだ。
ならば、円記号はどうなるのか・・・。

NO_AUTO_SHIFT_ALPHA

他は有効にしたいが、文字だけはShift押下を無効にしたい場合に宣言する。
宣言方法は、以下になる。

config.h
#define NO_AUTO_SHIFT_ALPHA

要は、a〜zを普通に使えると言うこと。
大文字にするには、わざわざ人間様の手でShiftキーを押下した上で、文字キーを押さなければならない。

メリット

時間調整が可能で、有効有無を切り替えられるのはありだと思う。
やはり、身体障害者向けだと思うが・・・。
最低でもVim使いには邪魔な存在でしかない。
今回有効にしたため、カーソルを移動させるため、kキー押下でヘルプが起動するようになった。
大文字の"K"が押下したことになり、カーソル配下の文字をヘルプで探す動きになった。
最初その挙動が理解できず、かなり焦った。
jキーもそうだ。大文字の"J"になり、2行が1行にまとめられる様は、混乱の元になる。
自分で大文字にする設定をしているはずなのに、意図せずに大文字になるため、体が固まる。
しかし、慣れれば便利かも知れない。

デメリット

わざわざキーボードで制御する意味がよく分からない。
考えられるのは、どうしても体が不自由で、ペン一本でしかキーボードを打てない状態になった場合であり、かつOS側の設定を変更出来ないときに限りそうだ。
そんな場合に、キーボードを使えるのか疑問だが。
OS側の設定というのは、WindowsOSであれば、標準でその機能が備わっているからだ。

アクセシビリティ

障害者.png
※画像真ん中の「固定キー機能を使用する」を"オン"にすれば、今回の機能と似たようなことが出来る。
あくまで"似た"動作が出来る。

以上。

1週間もせずに、ErgoDoxEZに関する投稿をしてきた。しかし、HHKBを使って執筆しているのは内緒だ。


Viewing all articles
Browse latest Browse all 5608

Trending Articles