Tech Racho エンジニアの「?」を「!」に。
  • IT Tips

AutoHotkeyによる40%キーボード入門

40%キーボード、小さくてかわいいし実用的で最高なんだよな。
AutoHotkeyにより40%キーボードへ入門し、PCBからの自作も経験したのでそろそろ40%キーボードが好きだとを声高に宣言してもいいのでは?と思え始めたので、AutoHotkeyは40%キーボード入門に便利だぞ、という話を書こうと思います。

この記事には「それって40%キーボードじゃなくてもそうだよね?」ということが多分に含まれますが、それらは40%キーボードを推すための恣意的な表現です。ご了承ください。

40%キーボードって何よ

ざっくりいうと数字キーの行(と一部の記号キー)が無く、40~48キー程度で構成されるキーボードを指すようです。フルサイズのキーボードが101~109キーなので、それとの比較で40%キーボードと呼称されている、ようです。

最近話題になったサイトでも結構自由だったので雰囲気が重要なんだと思います。
キーの数が絶対的に足りない為、それを補うためにレイヤーキーと呼ばれるキーを用い、レイヤーを切り換えることで足りないキーを入力します。
レイヤーキーについてはこちらのサイトが非常に詳しいです。

現在我が家には2つの40%なキーボードがありますが、2つ合わせても80%、なんとフルサイズキーボード1つよりコンパクトなんです。凄くないですかこれ。

40%キーボードはいいぞ

素晴らしき40%キーボードの素晴らしさを以下に挙げます。

  • 打鍵感、キーピッチはフルサイズのメカニカルキーボードそのままで、モバイルキーボード並みのコンパクトさを実現できる
    • 市販の40%キーボードであるVORTEX COREは幅が25cmを切ります。(HHKBでも横幅は29.4cm)
  • ホームポジションからの移動がほぼ最小限
    • 各指を上下左右1キー分程度移動させることでほぼすべてのキーの入力ができます
  • 小指に比べて強靭な親指に沢山仕事をあげられる(キーボードと設定によります)
    • 私はMINILAも好きです(親指Fnの為)。MINILA-Rのキーキャップ欲しい。
    • あんなに細い小指が頑張っているのにあんなに太い親指がスペースキーをガチャガチャしてるだけなんてもったいない!
  • ユーザーが少ないので使うだけで変な人認定してもらえる
    • HHKBに代表される60%キーボードはもはや普及しすぎて個性がぱっと見で見えにくいです。(個人の見解です)

40%キーボード導入の壁

大きく以下二つと思っています。

  • 市販されているのはvortex coreぐらいで、基本的に自作が前提
  • レイヤーに慣れる手間があるって正直しんどい

市販されていなかったり自作が前提なのはそれはそれで魅力だと思うのでスルーしますが、
折角自作したのにレイヤーに慣れることが出来ずオブジェになってしまうのは悲しいことです。
じゃあ慣れてからキーボードを買ったり作ったりすればいいのでは?

AutoHotkeyを使ってレイヤー操作に慣れよう

本題です。

AutoHotkeyって何よ

AutoHotkeyはホットキーへの機能の割り当てなど常駐ソフトの作成に特化したスクリプトエンジン。多彩なコマンドが用意されており、GUIを持ったプログラムの作成も可能。
任意のキーの割り当て変更、マクロ、ウインドウ操作 ...
オープンソースの簡易プログラム言語、Windows用フリーソフト。
AutoHotkey Wikiより

と、それだけだと何やらめんどくさそうなんですが、今回やりたいレイヤー機能(キーの同時押しで別のキー入力をする)機能についてはなんとキーごとに一行の記述で済みます。
例えば、変換キーをレイヤーキーとして、レイヤーキーを押しているときにqを押したら1を入力する、というのは以下1行です。

vk1C & q::Send,{Blind}1

とっても簡単ですね。これを使いたいキーの分書き連ねます。
例えば、planckキーボードのRaiseキーLowerキーの挙動の一部をJIS配列で模倣することとして、

  • 変換キーを押しながらqwertyの行のキーを押したら数字行のキーの数字が入力される
  • 無変換キーを押しながらqwertyの行のキーを押したら数字行のキーの記号が入力される

を実装すると以下のようになります。

vk1C & q::Send,{Blind}1
vk1C & w::Send,{Blind}2
vk1C & e::Send,{Blind}3
vk1C & r::Send,{Blind}4
vk1C & t::Send,{Blind}5
vk1C & y::Send,{Blind}6
vk1C & u::Send,{Blind}7
vk1C & i::Send,{Blind}8
vk1C & o::Send,{Blind}9
vk1C & p::Send,{Blind}0
vk1D & q::Send,{Blind}{!}
vk1D & w::Send,{Blind}"
vk1D & e::Send,{Blind}{#}
vk1D & r::Send,{Blind}$
vk1D & t::Send,{Blind}{`%}
vk1D & y::Send,{Blind}&
vk1D & u::Send,{Blind}'
vk1D & i::Send,{Blind}(
vk1D & o::Send,{Blind})

AutoHotkeyをインストールしておけばhoge.ahkファイルを作って↑を保存してダブルクリックすればすぐ使えますし、コンパイルすればhoge.exeになってAutoHotkeyをインストールしていないパソコンに持っていって使うこともできます。

その他、SandSやワンショットモディファイア等もググればすぐに実装方法が出てきますのでいい感じに「俺の考えた最強のキーマップ」を作り上げましょう。

AutoHotkeyを使うことで、キーボードを自作せずに、自作キーボードの醍醐味の一部であるオレオレキーマップの自作を味わい、実践・試行錯誤が出来ます。自作キーボード沼の入り口として非常におすすめです。

レイヤー練習・改造の為に壁になりがちだったことと対処

キーマップの参考情報

俺が考えた最強のキーマップを考えるのはいいけど、誰かが考えた最強のキーマップも見たい、という方は多いかと思います。

そんなときはQMK_firmwareのリポジトリを見てみましょう。このリポジトリには自作キーボードをしている人たちのキーボード及びそのキーマップが無数に登録されているので、かっこいいと思ったキーボードのキーマップを見ると非常に参考になります。大体は /keyboards/キーボード名/keymaps/キーマップ名/keymap.c にキーマップが記載されています。

私は Planck を参考に作って、自分好みに改造していきました。

CapsLock問題

CapsLockはAutoHotkey単体では制御しきれないようです(押しっぱなし等が発生する)。
レイヤーキーとして使いたい場合などはレジストリをいじる等でF13に設定した後にAutoHotKeyで挙動をいじったり、ちょっとひと手間が必要です。

突然普通のキーボードが使いたくなる問題

練習にくじけた時やうっかりオレオレキーマップで事故りたくない時や急に人にパソコンを貸すことになってしまったタイミングなど、一時的にAutoHotkeyをオフにしたい時は、タスクトレイのAutoHotkeyアイコンを右クリックしてsuspendさせれば大丈夫です。
ですがマウスを触るのは面倒なので、私はAutoHotkeyのコードとして↓のように AutoHotkeyをSuspendするための設定を入れています。これはトグルなので同じキーを復帰もできます。

vk1D & Esc::Suspend

ノートパソコンのキーボードで発生する物理的な制約の問題

ダンシングおにぎりなどのブラウザの音ゲーで、この同時押し反応しないからフルコン出来ないんだけど!と憤った経験のある方はお分かりかと思いますが、
ノートパソコンで使われているメンブレン方式のキーボードというのは、3キー以上の同時押しについて、反応しないパターンがあったりなかったりします。

これに出会うと、AHKのコードのバグかキーボードの仕様による制限か分かりにくく、デバッグに時間を割かれることが多いです。
一旦keymillなどを使ってそもそも同時押しが認識されているかどうかを確認するのがよいかと思います。
この作業は自作キーボードのバグ取り中にもやったりするのでキーボード自作の予習にもなります。

私見ですが、そもそも3キー以上の同時押しを許容するレイヤーは使いにくいことが多いので、そもそも多キー同時押しを避ける方向で配置を検討するのが賢明だと思っています。

最後に

AutoHotkeyを自作キーボードの購入前に使っておくの、非常にお勧めです。特に数字行については、その直下のキーに同じ数字・記号を割り当てるっていうのがよくある(例えば1と!をLower+qとRaise+qに割り当てる)んですが、それに慣れる際、普通のキーボード+AutoHotkeyであれば数字キーのあるキーボードでキーをカンニングしながらキーマップに慣れることができるので、40%キーボードのみでぶっつけ本番で慣らすより挫折しにくいように思います。

また、実際に40%キーボードを使い始めてわかったのですが、ノートパソコンとセットで外付けキーボードをいちいち会議室までもっていくのは正直面倒です(折角小さくしたのに)。そんな時にも作っておいたAHKスクリプトを常駐させておけばとりあえず同じ手癖のままタイピングできるので、とても便利です。
AutoHotkey、自作前から自作後まで、40%キーボードに興味のあるWindowsユーザーにお勧めです。

この記事はAutoHotkeyによって訓練された指で自作オリジナルキーボード(アイキャッチのやつ)を使用して書きました。

関連記事

WSL2だけで自作キーボードを楽しみたい

Iris: はじめての自作キーボード 〜 失敗談とその解決方法 〜



CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。