このページの本文へ

KTUの自作キーボー道 第4回

カスタムキーマップで自作キーボードを自分の分身とする

2018年03月15日 12時00分更新

文● 加藤勝明 編集●北村/ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

テキストエディターで
ファームウェアを自作

 ビルド環境整備が終わったら、今度はソースを編集する環境、すなわちテキストエディターを準備する。QMKのソースはプレーンテキストなのでその気になればメモ帳でも編集可能だが、プログラム向けのエディタを導入した方が作業がはかどるからだ。

 無料で使るプログラミング定番エディターとして「Atom」や「Visual Studio Code」が挙げられるが、なじんだ環境があればそれを使うのもよいだろう。今回はAtomを使っての作業を解説しよう。

まずはAtom公式サイト(https://atom.io)へ。インストールはすぐに終了する

Atomを起動したらまず「File」メニュー→「Open Folder」を選択。QMKのソース一式の入ったフォルダー(c:\git)を指定しよう

正しく指定できれば、QMKソースのファイルツリーがAtomの左ペインにズラリと並ぶ。「Keyboard」の中にあるフォルダーそれぞれが、QMKに対応した自作キーボードだ(一部例外もあるが)。また、右側に出ていた余分なタブは全部消しておく

 ゼロからキーマップを作るのは現実的でないので、まずは既存のものをコピーしてそれを編集するとしよう。各キーボードの「Keymaps」フォルダーがあり、その中にカスタムファームウェアをビルドするためのファイルが格納されている。まずはここから叩き台となるキーマップをコピーするのだ。

 Keymapsフォルダーの中には標準キーマップを示す「defalut」フォルダーのほかに、ユーザーが作ったキーマップのフォルダーが収録される。今回は無難なdefaultをコピーしたが、他のユーザーが作ったキーマップをお手本にするのもいいだろう。

左ペインのKeyboardの中から「Iris」→「Keymaps」と進む。defaultのほかにいくつかフォルダーが入っているが、それらはすべてユーザーがカスタムしたキーマップだ

既存のキーマップを叩き台にして自分用のキーマップを作るためには、左ペインのフォルダーの上で右クリック→「Duplicate」を選択。今回はIrisの「default」を複製した。

複製したフォルダー名には好きな名前(画像では“ktu”)を付けておく。この名前は半角英数のみ&スペースなしにしておくのがコツだ

IrisのKeymapsフォルダーの中に新しいフォルダー(画像ではKTU)ができる。このフォルダー内のファイルを編集することで、Irisのキーマップを自在にカスタマイズするのだ

 ここまでできたらファームウェアのビルドと書き込みもやってみよう。とりあえず今複製したキーマップ(先の例ではktu)でもいいし、Irisの他のキーマップでもいい。

 ビルドするにはMSYS2 MinGWのターミナルを使う。まずビルドするコマンド「make」に続け、「対象のキーボード名:キーマップのフォルダ名:ターゲット」と3つの情報をコロンで連結して入力する。

 今回キーボードがIris、キーマップのフォルダ名が“ktu”だ。ターゲットというのはキーボードに書き込む処理を行うツールのことで、Arduino Pro Microを使っているキーボードの場合“avrdude”となる。すなわち、入力すべきビルド用コマンドは「make iris:ktu:avrdude」となる。

   ビルドが終わると「reset your controller now...」の表記が出るので、キーボードのリセットボタンを押す(特定のキーマップにリセット機能を持たせてあれば、そのキーでも可)。

 あとはカスタマイズしたキーボードを使う→Atomでkeymap.cを編集する→ファームウェアをビルドして書き込む→……を繰り返す。一発では理想のファームウェアは生まれない。トライ&エラーを繰り返し最高のファームウェアを作り出すのだ。

MSYS2 MinGWのターミナルを開いたら、QMKのソースを展開したフォルダーへ移動し(cd c:\git)、次にビルドするコマンド「sudo make iris:ktu:avrdude」を入力する。ビルドが終了すると、キーボードをリセットするようメッセージが出るので、Irisのリセットボタンを押そう。コマンド待ち状態になれば書き込みは終了だ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事
ピックアップ

ASCII.jpメール アキバマガジン

ASCII.jp RSS2.0 配信中