Monsgeek M1にQMKでキルスイッチ機能を実装したので注意点とやり方を紹介 & Monsgeek M1 with Durock splash brothersの所感

はじめに

Monsgeek M1にキルスイッチ機能を実装した記録と方法の説明を置いておきます。
以下を参考に試行錯誤しての実装でしたが正常に動作しています。

tsuiha.com

note.com

 

準備

以下のソフトウェアを使いました。
・QMK MSYS
・QMKtoolbox(Gloriousが既にWB32DFUに対応させたものを配布していたのでそれを使いました。https://www.gloriousgaming.com/blogs/guides-resources/gmmk-2-qmk-installation-guide)
テキストエディタ(入っていないならとりあえずMeryがシンプルでおすすめ)
また、キーボードのQMKファームウェアについても調べる必要があります。

以下に例として2つ上げておきます。
今回使用したMonsgeekM1
(https://github.com/jonylee1986/qmk_firmware_master/tree/hfdkb_m1/keyboards/monsgeek/m1)
参考にした記事で使っていたKeychron K3 pro
(https://github.com/Keychron/qmk_firmware/tree/bluetooth_playground/keyboards/keychron/k3_pro)
以降、Monsgeek M1に合わせて、jonylee1986/qmk_firmware_master --branch hdfdkb_m1やmonsgeek/m1と表記するところは自分のキーボードに合わせて変更してください。
K3 pro(ansi,white)であればそれぞれKeychron/qmk_firmware --branch bluetooth_playground, keychron/k3_pro/ansi/whiteとなるはずです。

STEP1 QMK MSYSの準備

QMK MSYSを起動し、

qmk setup jonylee1986/qmk_firmware_master --branch hdfdkb_m1 

と打ち実行するとWould you like clone といった文章が出るはずです。yと打ち返すと自身のパソコンのC:/Users/(ユーザー名)/qmk_firmwareファームウェアのファイルが作成されます。

qmk new-keymap

と入力し、キーボードの名前は正確にmonsgeek/m1といったように入力、自身の名前は多分適当でOKです。すると先ほど作成したqmk_firmware\keyboards\monsgeek\m1\keymaps内に、入力した自身の名前でフォルダが作成されています。今回は個々の名前をnameとしておきます。

STEP2  ファームウェアをいじる

ファームウェアをいじるには、先ほど作成したkeymapsの中にあるフォルダ内のkeymap.cをテキストエディタで開き、直接打ち込む必要があります。

試しにqmk compile -kb monsgeek/m1 -km defaultとQMK MSYSで入力することでコンパイルをしてみると自分の環境ではエラーが出てしまいました。どうにも86行目のNUM_DIRECTIONSがいけない模様。Githubを見ると昔そこに変更があった模様。(https://github.com/jonylee1986/qmk_firmware_master/commit/7d36afd25c804008c5bcdb1a08f610200ea442bd)

元の通り、86行目の[NUM_DIRECTIONS]を[2]に書き換えたらうまくコンパイルができました。nameの方のkeymap.cにも同様の変更を加えた上でキルスイッチ機能を書き込んでいきましょう。といっても、以下リンクの黄色くなっている部分をコピーし、Monsgeek M1の場合17行目にある#include QMK_KEYBOARD_Hとその次にあるenum __layers との間の行に貼り付ければOKです。

https://github.com/Tsuiha/Keyboard/blob/main/FloppyKBD/FD06/v6_Nitingale_LIT/qmk/nitingale_lit/keymaps/gprofile_via/keymap.c#L18-L242

次に、キルスイッチ機能の対象のキーに機能を割り当てます。

[WIN_B] = LAYOUT_all( /* Base */ のように書かれた下にキーボードのキーに対応した名前が割り当てられているので、KC_WのところをQK_KB0に、KC_AのところをQK_KB1に、KC_SのところをQK_KB2に、KC_DのところをQK_KB3に書き換えることで通常のWASDからキルスイッチ用のWASDに書き換えます。QK_KB(0~3)のどれかがすでに使われている場合、貼り付けした部分とキーボードの該当するWASD部分をQK_KB(使われていない数字)とすればいいはずです。MonsgeekM1では0~3のまま使用可能でした。

キルスイッチの特性上か、「だ」と入力する際「だあ」となってしまうことがあったのでさきほどQK_KBにする前の状態のレイヤーを別の名前のところに一つ作っておきます。とりあえず既存のレイヤー名の使わなそうなところに上書きしておくのが楽。後でVIAで書き換えることも可能なのでここで設定しなくても大丈夫です。TG(レイヤー名)というキー名がレイヤーの切り替えに使えます。レイヤー名のところは注意が必要で、レイヤーWIN_BでTG(WIN_W)を押すとレイヤーWIN_Wに飛び、WIN_WからWIN_Bに戻るにはTG(WIN_W)をもう一回押す必要があります。

最後にkeymaps下のrules.mk(なければ作ればOK?)をテキストエディタで開き、VIA_ENABLE = yes と入れておくとVIAに対応した状態になります。Remapもメーカー配布のjsonさえあれば使えます。

STEP3 コンパイル

qmk compile -kb monsgeek/m1 -km name

とQMK MSYSで実行すると以下の文章が出て完了するかエラーが発生します。

Copying monsgeek_m1_name.bin to qmk_firmware folder[OK]

エラーは頑張って直すしかないです。

STEP4 キーボードに書き込む

QMKtoolboxを起動します。次にキーボードをDFUモードで起動します。Monsgeek M1ではESCキーを押しながらケーブルを指すことでDFUモードになります。対応したQMKtoolboxではDFUモードでデバイスが接続されたときFlash,Exit DFUのボタンが押せるようになります。Monsgeek M1ではWB32に対応している必要があり、本来はwb32-dfu-updater_cli というものが必要ですが、冒頭に紹介したGloriousの配布しているQMKtoolboxだとWB32に対応した状態なので私はこれを使って書き込みました。

qmk_firmwareフォルダの直下にname.binができているので、それをQMKtoolboxのLocal fileのところで指定してFlashを押して書き込みます。書き込み終わったらExit DFUを押せば完了です。文字入力で「だ」を入力して「だあ」となることを確認したら完了です。

 

Monsgeek M1の所感

筐体:Monsgeek M1(QMK)ベアボーン

スイッチ:Durok splash brothers
キーキャップ:中華キーキャップ(2000円くらい)

まともに吸音などをしているキーボードは初めてなので比較対象はないがヨドバシにおいてあるキーボードと比べるとトップ10には入る打鍵感。

MonsgeekM1に付属品でテープMod、ブレーキングMod、スタビライザーフォームテープなどができ、加えてスタビライザールブをした。スタビライザーのあるキーはコトコト感強めで普通のキーはカタカタとコトコトの間くらいの打鍵音。思ったより軸はブレるが押下時はすっと下がってさっと戻るサクサク感がありゲームに向いていると感じた。スイッチにもルブした方が良いかも。アクチュエーションポイント1.0mmはちょうどよく短い。最近のアナログ系と比べると微妙かもしれないが、打鍵感の趣味とキルスイッチの両立を優先したので十分良い。デフォルトのガスケットマウントは打鍵感にいい意味で影響を与えず安定した打鍵感を与えゲームをする分にはちょうどよい。MODの響でノブが筐体に擦れるのでよくノブを使うならなにか対処するべきかも。アルミケースとはいえ色々挟まっているので反響音の感じはしない。

キーキャップは思ったよりグレーが明るかったが薄くないPBTで打鍵感は良好。

M1はMonsgeek公式サイトで買うかM1 QMKという名前で売っている物を買わないとQMK非対応らしいので要注意。