コンテンツへスキップ
広告

【自作キーボード】qmk をカスタマイズしてキー配置を変更する方法

自作キーボードの醍醐味の一つ、キー配列を独自のモノに変更する作業。初心者として、ようやくここまできました。今回はキー配列の変更方法の忘備録を書いておきます。なおここで作るキー配列は、iPad(iOS)用とします。

基本ソフト qmk をパソコンにダウンロードする

キーボードをコントロールしているファームウエア(基本ソフト)は qmk と呼ばれるもので、無料でダウンロードして使うことができます。

ダウンロードの方法はここ(英語)に記されています。

If you plan on contributing a keymap, keyboard, or features to QMK, the easiest thing to do is fork the repo through Github, and clone your repo locally to make your changes, push them, then open a Pull Request from your fork.

Otherwise, you can either download it directly (zip, tar), or clone it via git (git@github.com:qmk/qmk_firmware.git), or https (https://github.com/qmk/qmk_firmware.git).

パソコン上で上記のページを開き、「How to Get It」の項目の最後の行に書いてあるアドレスを開きます。

開くとこのような画面になりますので、丸で囲んだ部分の「Clone or download」のボタンを押し、「Download ZIP」をクリック。ZIP ファイルというのは、たくさんのファイルやフォルダがまとめられているモノなので、ダウンロードが終了したらそれをダブルクリックして使えるようにします。

キーマップファイルを探し出す

ここまでが終わると、パソコン上に「qmk_firmware」というフォルダができあがります。これがキーボードをコントロールする基本ソフトウエアになります。

この qmk_firmware フォルダは、自作キーボードの心臓部。フォルダ内をたどっていくと実に様々なキーボードの名前が書かれたフォルダが出てきます。それぞれのフォルダには default(デフォルト)フォルダがあり、その中に keymap.c (キーマップ)ファイルが収められています。このキーマップと呼ばれたファイルの中に、「どのキーを押したらなんの文字が出てくるか」という命令書のようなものが書かれています。これが今回改変するファイルになります。

作業を始める前に、キーマップが入っているデフォルト・フォルダを同じ階層にコピーし、別な名前を付けて作業用のファイルとしておきます。こうしておくと作業中に万が一何かが起きて変なことになっても、一番大元のファイルを参照しながら正しい書き方に復元することができるので、安心です。

今回は minidox 用ですので、この qmk_firmware フォルダ内をたどっていき keymap.c ファイルを探し当てます。

キーマップファイルをテキストエディタで開く

ここまでできたら、作業用フォルダの方の keymap.c ファイルをテキストエディタを使って開きます。すると、こんな感じになります。

テキストエディタで開く理由は、例えば Microsoft Word などで開いてしまうと独自のファイル形式で保存してしまうため正しく動作しません。必ず「テキストエディタ」という名前のプログラムで開いて作業してください(無料で配布されているモノが沢山あります)。

キーマップファイルには何が書かれているか?

実際に上から何が書かれているか見て行きましょう。

// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
#define KC_GUIEI GUI_T(KC_LANG2)

まず最初の部分には、#define というコマンドが書かれています。これは、

#define A B

という具合に書きますが、「A」と書き込んだら「B」というように動作しますよ、というように命令するコマンドです。これはファイル内の表示をわかりやすくしたり、キーの組み合わせをスムーズに動かすことができる便利なコマンドです。

3行目に KC_GUIEI GUI_T(KC_LANG2) という列を加えているのは、キーボードにマックでお馴染みのコマンドキー(command)を割り当てるため。こうしておくと、command+A(全体を選択)/command+C(コピー)などといったキーボードショートカットを実現します。

ちょっとした工夫で、キーボードの使い勝手が大きく変えることができるようになります。

ファイルの中身ですが、最初の赤い部分がコメントアウトになっていて、実際のキー配列を見やすくするため、どんなキーの並びになっているかのメモが書かれています。実際のコマンドはすぐ下の黒い文字で書かれている部分。これが1セットになって、レイヤー(後述)ごとに繰り返されて行く構成になっていました。

キー配列にはルールはありませんので、文字入力の癖や指の記憶などに沿って、独自に自由に組み替えるのですが、やっていくとだんだん分からなくなってくるので、改変する時は必ず「赤い部分(並び方のメモ)と黒い部分(実際のコマンド)を上下同時に書き換える」のがコツ。こうすることで、実際のキー配列がどうなっているか確認しながら進めて行きます。

レイヤーを理解して使いこなす

今回作っている自作キーボードの中でもミニキーボードの部類に入る minidox は、通常のモノよりキー数が限られている(30プラス親指の6)ため、レイヤーという「キー配列の層」を何枚か使い分けるようになっています。

その切り替えは「Raise/Lower」キーで行い、中心となる Querty 層を起点に上層(Raise)と下層(Lower)がある3層構造で、実質3倍のキー数を稼いでいます。

注意したいのは、2枚目〜3枚目のレイヤーを出すには Raise/Lower キーを押し続けていないとならないこと。その層のキーは Raise/Lower キーを押し続けながらの組み合わせ(2キー同時押し)になりますので、左右の指の動きに合わせて無理の無いような配列を考えます。

キー配列を考える場合に事前にまとめておくと良いのが、よく使うキーの優先順位。

私の場合句読点(「、」や「。」)、日本語〜英語の切り替え、1文字削除(Backspace)を使う頻度が高いので、これらを優先的に割り当てました。特に日英切り替えは iOS のキーボード設定で「caps lockを使う」をオンにしておき、 Lower キーとの組み合わせで caps lock を有効にする配列を作って素早い切り替えを可能にすることができるようにしています。

この辺は使用頻度に加えて運指の記憶というものもあるので、使いながらちょこちょことメモを取り、微調整をしていくという感じでしょうか。

レイヤー(層)ごとにキー種をまとめるというのも覚えるのに便利な場合があります。私の場合、Raise 右手側には矢印キー(上下左右)を、また lower 左手側にオーディオ・コントロールを集めてみました

設定は何度でもやり直しがきくので、実際に使いながらちょっとでもやりにくいところがあれば直していくことができます。

ファイルを書き込む準備をする

配列の微調整はキーマップを書き込んで動かしてみる以外にはありませんので、ファイルを書き込む作業にも慣れが必要になります。

上の画面は実際にファイルをキーボードに書き込んでいる場面のスクリーンショットですが、手順は、

(1)ファイルの編集が終わったら、保存
(2)パソコンと minidox をケーブルでつなぐ
(3)コマンドラインを使ってファイルをパソコンからキーボードへ転送する

単純作業ですが、プログラムを仕事としていない私のような人間にとって大きなハードルとなる「(3)コマンドライン」の部分をクリアしなければならなくなります。

コマンドラインとは、パソコンに対する指示をキーボードのみで行うことを言います。マウスを使って直感的に操作するマックを長年使っている者としてはなかなかのハードルの高さですが、全部を理解する必要はありませんので、「書き込むことに限定した知識」を得るので十分です。

まず最初にすることは、コマンドラインを使うためのプログラム「ターミナル」というプログラムの場所を見つけること。これはアプリケーション→ユーティリティーと辿っていくと下の方に出てきます。

次に、ターミナルをダブルクリックして起動します。すると、

長方形のカーソルが点滅している画面になります。

ファイルを書き込む

まず最初にすることは、自分の現在地を知ること。そのために、ls(今いる場所にどのようなファイルがあるのかをリストする)と打ってファイル名あるいはフォルダ名を確認します。そこから移動するためには、cd(ディレクトリと言う現在地を変更する)というコマンドを使います。これを打つと目的のフォルダへ移動します。

私の場合、qmk_firmware フォルダはデスクトップに置いてあるので、

cd desktop(デスクトップへ移動) → ls(移動後のレベルにあるファイル名を一覧) → cd qmk_firmware(qmk_firmwareフォルダへ移動)

こんな風に打って、現在地をqmk_firmware のフォルダ内に移動させます。ここから

make minidox:makoto:avrdude

こうします。このコマンドラインの内容は、make minidox(キーボードの名前):makoto(作業ファイルがあるフォルダ名:avrdude(書き込み命令)だいたいこんな意味です。最初にファームウエアを設定し作業用のフォルダ名などそれぞれの環境に合わせてキーボードや作業ファイルの名前を変更して、このコマンドを実行します。

書き込み作業は

(1)USB ケーブルをつなぐ
(2)コマンドを打つ
(3)エラーなく終了したことを確認

という流れです。minidox は左右分割型なので、ファイルの書き込みは左手・右手用キーボード一つずつ別々に2回行います。エラーが起きるとメッセージが出て終了しますので、そのメッセージの内容を読み修正します。

エラーの原因は、改変した時にカンマが抜けたとか書き方がおかしい場合がとかといったことが多く、理由がはっきりと書かれて終わります。うまくいかない時はメッセージを良く読めばなぜエラーが出たのかがわかるようになっています。

もし原因がよく分からないエラーが出ている場合は、正しく avrdude がインストールされているかという部分まで疑ってみる必要もあるでしょう。私の場合最初これがわからず、非常に苦労しました。

【自作キーボード】マックでPROMICROへデータ書き込み作業の忘備録

この辺については上のブログにまとめてありますので、参考にしてみてください。

広告
%d人のブロガーが「いいね」をつけました。