40%キーボード『Epomaker TH40』を買ったのでカスタマイズをできるだけ詰めてみた
- 全キーマップ
- ディフォルトレイヤー
- バックスペースは無し
- 修飾キーはシフト含め左側のみ
- アプリキーは使わないけど残ってしまった
- IME切り替え
- 数字レイヤー(L1)
- MODレイヤー(M0)
- カーソル移動
- タブ切り替え
- AIサジェストの一部確定
- キーボードレイヤー(L3)
- ディフォルトレイヤー
- カスタマイズ方法
- カスタマイズしてみて
- VIAカスタマイズにあたってのTips
- 参考リンク
Epomaker TH40という40%キーボードを購入しまして、なんとかオレオレレイアウトが完成したのでご紹介します。40%キーボード使ってる方、人様のレイアウト見るの好きですよね? そうでもない……?

TH40の物理レイアウト
ちなみに、TH40の物理レイアウトはこんな感じ。40%キーボードとしては、スペースキーが三分割されているところや、左シフトキーがISOスタイルなのが特徴的。これをカスタマイズしていきます。
Epomaker TH40
https://epomaker.jp/products/epomaker-th40
全キーマップ

キーボード本体のVIA、のどか、Karabinerを組み合わせた最終形態はこうなりました。
40%キーボード自体は昔使っていたので自分の中である程度慣れたレイアウトがあり、足りないキーを40%の中に詰め込むという作業はあまり難しくありませんでした。
今回の目標はWindowsとmacで出来るだけ同じ操作感を実現することです。
ディフォルトレイヤー

ディフォルトレイヤー Win/Mac
バックスペースは無し
自分の場合、バックスペースキーはEmacs風の Ctrl+H に慣れているので、基本レイヤーには置かずに済みます。一方で日本語を入力するときに伸ばし棒は頻繁に使うので、バックスペースの位置(右上)はハイフンとしました。
修飾キーはシフト含め左側のみ
自分は左下Ctrl派でHHKBを使えないタイプの人間なので、修飾キーはWindowsの標準的な並びとしました。Macでも似たような間隔で使えるよう、 ⌘ command ^ control ⌥ alt の並びにしています。
右側の修飾キーは不要なので他のキーに割り当てています。シフトキーも左手のみで十分なので、右側は / としました。この位置にあると標準のANSIレイアウトと比較的近い感覚で押せます。それとAI時代になったことで日本語の疑問符
〈?〉をやたら頻繁に使うようになったので、この位置にあると打ちやすくて快適です。
アプリキーは使わないけど残ってしまった
アプリキー(Menuキー)は日常で使うことはまず無く、さらにMacには無いキーなので何かしら他のキーに変更したほうが良いとは思うのですが、妙案思いつかないまま残ってしまいました。この位置はホームポジションから押すのも難しく、どうしていいやら。
また、右下角はホームポジションからの小指でギリギリ押せますが、かなり打ちづらいのであまり使わない \ (バックスラッシュ)としました。
IME切り替え
Epomaker TH40は左シフトがISOレイアウトスタイルの短いシフトキーになっていて、Zの左にANSIレイアウトにはない追加のキーがあります。このキーに何を割り当てるか最後まで悩んだのですが、最終的に日本語入力切り替え(macでは地球儀キー)を割り当てることにしました。
最初は40%に足りない記号系のキーを考えていたのですが、本来左手で押すキーを右手で押すのは混乱してしっくり来ず。それならば英語配列に無いキーをということでIME切り替えとなりました。まだ短いシフトキーに慣れずミスタイプが多いですが、慣れれば適度に押しやすい位置だし、いい塩梅なのではと。
ちなみに、素早く英字入力できるよう、CapsLockの位置のキーは現在のIMEの状態に関わらず常にIMEをオフにできるようにしてあります。
数字レイヤー(L1)

数字レイヤー Win/Mac
ディフォルトレイヤーから左スペースを押下しながらタイプするとこの数字レイヤーになります。このレイヤーはVIAでハードウェア的に作り出していて、修飾キー以外はほぼWin/Mac共通です。
普通のキーボードでは数字は上の方にあるものなので、上段を数字列とし、ホームポジションの列には記号を置きました。使う頻度で言うと逆かなとも思いつつ、そうすると右側にまとまっている丸括弧やハイフンなどの配置がしっくりきませんでした。
ハイフン、スラッシュ、ドットなど数字と一緒に押しそうな一部の記号はディフォルトレイヤーを透過し、同じ位置でタイプできるようにしてあります。
macでは fn (地球儀キー)を使ったメディアの操作が可能なので、Windowsでものどかを使って一部のメディアキーを押せるようにしてみたのですが、正直なところ全く使わないですね。音量くらいは意識して使っていきたい。
MODレイヤー(M0)

MODレイヤー Win/Mac
このレイヤーはのどか、Karabinerを使ってそれぞれのOSで作り出したソフトウェアレイヤーで、ディフォルトレイヤーから左手小指(Aの左隣にあるCapsLockキー)を押しながら使います。主にカーソル移動と、あとは40%に足りない記号キーなどをまとめてあります。
カーソル移動
自分はEmacs風のカーソル移動に慣れている(と行っても上下左右と行頭行末だけですが)ので、これをソフトウェア層で再現しています。最初はVIAでハードウェア的に再現してみたのですが、それだとWindows/mac間で同じように動作させるのが難しくてダメでした。
ちなみに、macではOS上でEmacs風カーソル移動のショートカットが設定されているため特に割り当てなくても動作するのですが、自分の場合はKarabinerでそれをカーソルキーとして上書きしています。こうすることで文書のキャレット移動ではなく、ただのカーソルキーになるので、普通は出来ない画面のスクロールだったり項目選択だったりと、あらゆるシーンでカーソルキーとして使えるようになります。
上下左右のカーソル移動と行頭、行末への移動、それからバックスペース以外は、完全に独自のショートカットです。めちゃくちゃに見えると思いますが、ホームポジションからほとんどの移動操作ができて快適です。これは40%キーボードではなく普通のキーボードを使うときも同様に割り当てて使っているので、すっかり慣れてしましました。
タブ切り替え
カンマ、ピリオドの位置はタブ切り替えのショートカットです。Windowsでは Ctrl+PageUp / PageDown 、macでは ⌘command+⇧shift+[ / ] となぜかぜんぜん違うんですよね。困ったものです。ただまあ、これを割り当てておけばChromeやSafari、VSCodeなど大抵のソフトでタブ切り替えとして機能します。
AIサジェストの一部確定
Windowsのレイアウトで Ctrl+→ が2つありますが、これはコーディング中のAIサジェストを一部確定するキーがmacでは異なるためです。
J/Kの位置に単語単位の移動——Windowsでは Ctrl+← / → 、macでは ⌥option+← / → ——を割り当てているのですが、Windowsではそのまま Ctrl+→ を使ってAIサジェストの順次確定を行うことが出来ます。便利です。ところがmacだと、順次確定は ⌥option+→ ではなく ⌘command+→ なんですね。困ったものです。なので M の位置に ⌘command+→ を別途割り当てる必要があり、Windowsの方でも同じ操作にできるよう Ctrl+→ を割り当てた結果、二箇所に同じショートカットとなってしまったわけです。
キーボードレイヤー(L3)

キーボードレイヤー Win/Mac共通
VIAでハードウェア的に作ったレイヤーで、接続の切り替えやリセット、RGBライティング変更などキーボード本体への操作をまとめました。これらはタイピング中に必要になるキーではないので、このレイヤーを呼び出すためのレイヤーキーの位置もあわせて、ホームポジションからタイプすることは全く考慮していません。だいぶ持て余しているレイヤーです。
カスタマイズ方法
ハードウェア層

VIAによるハードウェアリマップ
VIAを使ったハードウェア的なカスタマイズはこんな感じ。前述のMODレイヤーはこの時点では存在せず、のどか、Karabinerでそれぞれ作り出しています。
Layer 3にはキーボードを操作するキーをまとめたんですが、Bluetoothと無線の切り替えは本体にあるスライドスイッチで出来るし、RGBライティングをいじることは無いし、このレイヤーはほぼ使いません。バッテリー残量表示キーだけは便利かも。
ソフトウェア層
Windows → のどか
Windowsではのどかを使ってかなキーを独自モデファイアキー兼、IME切り替えに割り当てています。窓使いの憂鬱の頃からかれこれ20年以上使っていると思うのですが、未だにマニュアルを見ながら試行錯誤しないと思い通りのカスタマイズにできません。文法がすごく難しい……
mac → Karabiner-Elements
MacではKarabiner-ElementsのComplex Modificationsを使ってかなをControlキーに変更し、さらにControlと各キーとの組み合わせでレイヤーを作っています。
のどかよりはだいぶわかりやすい文法なのですが、JSONなので記述が冗長になりがちで、しかもカスタマイズをファイルに書いておくといった形式ではないので試行錯誤がすごく面倒です。どちらも一長一短。
また、macではOSのシステム設定でCapsLockを地球儀キー(fnキー)に変更しています。こうすることで単押しでIME切り替えできるようになります。地球儀キーはQMKなど自作キーボードからはどうしても入力できない仕組みみたいです。アップル、そういうのほんと良くないと思う。

システム設定 → キーボード → 修飾キー → で変更できます。この時、Karabinerを使っている場合はEpomaker TH40ではなく、Karabiner DriverKitの方を変更する必要があります。
カスタマイズしてみて
まだEpomaker TH40を使い始めて一週間経ってないので、これから使っていくに従ってもっと調整するとは思うんですが、今のところの所感など。
VIAのレイヤー数がもっと欲しい
やはりVIAを使ったハードウェアカスタマイズは単純でわかりやすいです。本当はハードウェアカスタマイズで完結させたいところなんですが、Win/Mac合わせて4レイヤーしか設定できないので、従来通りのどか、Karabinerを駆使せざるを得ませんでした。
でも、レイヤーキーは9まで用意されてるんですよね。なんでVIAでは4レイヤーしか使えないんだろう?
Win/Macでなぜ修飾キーが異なるのか
もう慣れたんで普段はなんとも思ってませんけど、やっぱりオカシイ。 ⌘ command と Ctrl が概ね対応するキーなのになぜ片《かた》や左、片や右にあるのか。同じ名前なのにぜんぜん役割の違うmacの ^ control はなんなのか。タブ切り替えのショートカットもぜんぜん違うし、単語単位の移動とか文頭文末への移動とかとかとか。
とにかくWindowsとmacではキーが尽《ことごと》く違うので共通の使用感にするのが本当に疲れました。
ホームポジションが右にズレているのが微妙に気になる
これはカスタマイズでなく本体の物理的なレイアウトについてなのですが、TH40はホームポジションに構えたときに両手がわずかに右側に寄る形になっています。0.5uだけ左が長いのです。僅かな差ながら、けっこう気になっています。自分の場合は作業時などキーボードを頻繁に動かすので、それも影響しているのかもしれません。手をついつい真ん中に置いてしまうので、意識して少し左に置かないといけないんですよね。もし自分で40%キーボードを作る機会があれば、この点は注意したいなぁと思いました。
VIAカスタマイズにあたってのTips
VIAが使えない!?
説明書や解説サイトではVIAにEpomaker TH40用のJSONファイルを読み込ませれば画面上にキーボードのレイアウトが表示され、すぐにカスタマイズできるようになるとあるのですが、自分の場合はいくらJSONファイルを読み込ませてもうんともすんとも言わず、カスタマイズ画面に入れませんでした。
具体的には、VIAがこの画面から一向に進みません。Windows10とWindows11、macOS、ケーブルと無線、そしてVIAもWebとアプリ版全ての組み合わせで試しても駄目で途方に暮れました。

この画面から全く進まない。デバイスは表示されるものの、接続を選んでもうんともすんとも言わなかったわけです。
結果的には、JSONファイルのせいだったようで、正しいJSONファイルを読み込ませることでカスタマイズ画面に入ることが出来ました。
Epomaker TH40のサイトではTH40用のJSONファイルがなぜか5つも配布されているのですが、自分のTH40で使えたのは Epomaker TH40 V2 Version VIA JSON (EPOMAKER_TH40_QMK_version_JSON.zip
) というものだけでした。このバージョンだけはなぜか2.4GHz無線用のJSONファイルがなく、当方環境では残念ながら無線でのカスタマイズはできませんでした。
Epomaker TH40 V2 Version VIA JSON – epomaker
https://epomaker.com/blogs/via-json/epomaker-th40-json?_pos=5&_sid=9fa08925e&_ss=r
修飾キーとの同時押し
修飾キーとの同時押しはCtrlキーならLCTL(keycode)
、AltならLALT(keycode)
といったように記述します。省略してシンプルにC(keycode)
、A(keycode)
、S(keycode)
と書いても良いようです。
Modifier Keys | QMK Firmware
https://docs.qmk.fm/feature_advanced_keycodes
タップ・ホールド
よくある単押しで任意のキー、同時押しでレイヤーキーを設定する時は、VIAからはanyを選択し、LT(layer, keycode)
と記述します。自分のカスタマイズではLT(3, KC_MHEN)
で単推し 無変換 、長押しでレイヤー3という割り当てを使っています。単押しでスペースキー、長押しでレイヤー1というのも使っているのですが、これは頻繁に使われるパターンなのでVIAにSpace Fn1として予《あらかじ》め用意されています。
いじょ、Epomaker TH40のオレオレオキーマップの紹介でした。40%キーボードのキーマップは人によってぜんっぜん違って面白いですよね。そもそも40%キーボードは物理的な配列の時点でキーボード毎にてんでバラバラですし、そこにきて日本時の場合は避けて通れないIME、日本語入力の課題がある。その上でコーディング主体の人もいれば、そうでない人もいるわけです。
さて、自分のカスタマイズは一段落着いたし、また他所様のキーマップでも眺めに行きましょうかね。せば!
参考リンク
VIA Usage Guide | Keebio Documentation
https://docs.keeb.io/via
「のどか」 - README
https://appletllc.com/web/nodoka-doc/README-ja.html
この記事はここで終わりです。
読んでいただきありがとうございました。
良かったらシェアしてね!
That's all for this article. Thank you for your reading.
Please share this if you like it!