Kanazawa.rb meetup #112 「年末 LT 大会 - オンライン」で発表したLT。
ショートカットキーのショートカットキー2021-12-18(Sat)Kanazawa.rb meetup#112 #kzrbmuryoimpl
View Slide
作業の効率化どうしょー?
作業の効率化、どうしょー?● 簡単で誰でもできるわかりやすい効率化って、「ショートカット」を覚えて押すことですよね● アプリやエディタには、設定として自由に「ショートカット」を割り当てることができるものがある● 「ショートカット」を活用して作業を効率化していこー!そうなのだが……
数が増えたショートカット、どうやって覚えてます?
設定すると数が増えるショートカット● それぞれのアプリには個別にショートカットがある(多い)● 同一アプリでも設定したショートカットキーが衝突しないようにしようとすると、組み合わせが増える。(プラグインにそれぞれあって更に多い)→ 3キー以上の凶悪で難解な覚えにくい組み合わせができる● 個人的には、Ctrl + ? Alt + ? みたいな組み合わせが覚えられなくて Emacs を挫折したような人間なので、ショートカットが増え、組み合わせの種類が複雑になると破綻してしまう→せっかく設定できても使われなければ意味がない……
そこで
キーボードファームウェアの活用ですよ
キーボードファームウェアの活用● 自作キーボード界隈でよく使われている QMK firmware には、レイヤーとマクロがサポートされているので、これを活用してみる● ショートカットキーのみを設定するマクロキーパッドみたいな自作キーボードを導入して、それらにショートカットキー用のマクロを割り当てるのもあり。● 「キーの組み合わせ」が「キーの位置」の問題にすりかわる。個人的にはまだ「キーの位置」のほうが覚えやすいのでやってみる
実現方法全ての自作キーボードが当てはまるわけではないが、以下のような方法がある。1. github.com/qmk/qmk_firmware を fork して、ソースコードを変更し、キーボードに書き込む2. Remap https://remap-keys.app/ という、QMK firmware をブラウザから設定できるサイトがあるので、そちらで設定するキーボードによっては、作者が qmk/qmk_firmware を fork したリポジトリを独自で持っていたり、Remap が対応していない等あるため、それぞれで確認してほしい。
実践例
vim-test のテスト実行のショートカットキーを割り当てる↑はレイヤー Raise にするキー。] には、t, Ctrl + n を割り当て、カーソル上のテストを実行する。[ には、t, Ctrl + f を割り当て、開いているファイルのテストを実行する。
(今のところ) 3つ以上のキーを押す組み合わせを 2キーでレイヤー Adjust にするキー。Q には、Shift + Win + Q を割り当てて「閉じる」のショートカット、F には、Shift + Win + F を割り当てて「最大化」のショートカットにする
Macでのスクリーンショットレイヤー Adjust にするキー。Adjust + E に Cmd + Shift + 3、Adjust + R に Cmd + Shift + 4 相当を設定し、2 ボタンで簡単にスクリーンショットが撮れるようにした
まとめ● ファームウェアをいじくって実現するショートカットキーのショートカットキーは、凶悪で難解なキーの組み合わせを、ただの位置の問題にすりかえてくれる便利な解決方法であった● 自作キーボード使ってない人は、自作マクロキーパッドを導入してみるのはありなのではないか● ポータビリティが落ちる?そんなことは知らん!持ち歩く機会が減ったので、そこは気にしていない● Emoji 入力キーパッドとかもできるから遊んでみるといいよ
設定の参考になるURLs● Remap○ (初心者編)Remapを使ってキーマップを書き換えようhttps://salicylic-acid3.hatenablog.com/entry/remap-manual● Remapのマクロ機能を活用しましょうhttps://www.eisbahn.jp/yoichiro/2021/09/remap_macro.html● QMK○ Simple Keycodes - Full Listhttps://beta.docs.qmk.fm/using-qmk/simple-keycodes/keycodes○ Simple Keycodes - Macroshttps://beta.docs.qmk.fm/using-qmk/advanced-keycodes/feature_macros