目的
Iris keyboard (rev.4)の key map を変更するためのの software の準備をする。特に HTTP Proxy環境下での環境に対応する。動作環境は Window 10 向けだが他の Windows の version でも大丈夫なはず。Mac の場合は最後に追記している。
環境構築の流れ
- MSYS2 をインストールし、shell 環境の土台を作る
- Git をインストールし、QMK software 入手のための準備をする
- QMK firmware を入手する
この後、利用したい keyboard の firmware を書き込む流れとなる。Iris rev.4はPCBにマイコンが搭載されている。またUSB Type-Cコネクタとなっており、以前より耐久性が上がっている。
設定の流れ
- Iris keyboard の keymap を好きなように変更する
- Iris keyboard の firmware を build する
- firmware を書き込む
MSYS2 Installation
Set proxy
$ export http_proxy=http://proxyserver:portnumber
ここではshellで入力しているが、.bashrc などに書いておけば次回から設定される。
Update Core system and others
$ pacman -Syu
Install Git
$ pacman -S git
Set proxy
$ git config --global http.proxy http://proxyserver:portnumber
$ git config --global https.proxy http://proxyserver:portnumber
設定を確認する
$ cat .gitconfig
[http]
proxy = http://proxyserver:portnumber
[https]
proxy = http://proxyserver:portnumber
ここまできたら、QMKのsource codeを入手する
Install QMK source code
$ git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
ここでsubmodulesをちゃんと入れておかないとうまくいかない。単にcloneでは後で失敗するので注意。
QMKファームウェアビルド環境の構築
$ cd qmk_firmware
$ ./util/qmk_install.sh
Layout
コンパイル
Build keyboard firmware
$ make keebio/iris/rev4:default
rev4ではkeebioの下に移動してたので一つ深くなっている。
書き込み
$ make keebio/iris/rev4:default:flash
カスタマイズ
ここからキー配列を変更するなどのカスタマイズの詳細を記載する。
Keymap 変更
動作が確認できたら、自分の好きな keymap に変更するため、keymap.c を編集する。
編集が終わったら、再度コンパイルと書き込みを行う。
keyboard の reset switch を押すように指示が出るのでボタンを押すと、書き込みされる。
左右別々に2回書き込むことになる。これは面倒くさいが、二つマイコンを使っているので仕方ない。
modifier key の lock を防ぐ
入力中に Shift key がなぜか lock されることがあり、手動で Shift key を再度押すことで lock 解除されるのではるが、時折頻発し、大変なストレスを感じていた。
解決方法としては、config.h に以下を追加すればよい。自分は config.h の最後に追加した。
# define PREVENT_STUCK_MODIFIERS
これを追加してから Shift key が lock されてしまう現象がすっかりなくなった。ずっと shift key が物理的に接触がおかしいのかと思っていたが software の問題であった。現在は、これで解決しており、再発していない。
詳しい説明はこちら。
QMK - Prevent stuck modifier
補足: Macの場合
HomeBrew がインストールされているとして、
Windows 同様に git で QMK を download して、setup を実行する。
$ git clone https://github.com/qmk/qmk_firmware.git
$ cd qmk_firmware/
$ ./util/qmk_install.sh
$ sudo make iris/rev2:default
ここまではok.
しかし、最新のgcc 8.2では、firmwareの書き込みでerrorになってしまった。調べたところ、gcc 8.1 でないとうまく動かないそう。詳しくは[1] を参照のこと。
そこで、以下を実行し、古いgccをインストールする。
$ brew untap osx-cross/avr
$ brew tap leico/avr
$ brew uninstall avr-gcc && brew install avr-gcc@8_1
avr-gccのインストールはちょっと時間かかる。
$ sudo make iris/rev2:foo:avrdude
うまく書き込めた。fooと名前のkeyboardの種類を作り、keymapを自分の好みに修正する。
参考: Software
[0] [QMK firmware Guide] (https://docs.qmk.fm/#/newbs_building_firmware)
[1] [Lets Split Sockets/Vitamins failing with default build] (https://www.reddit.com/r/olkb/comments/939tz6/lets_split_socketsvitamins_failing_with_default/)
[2] Prevent stuck modifiers
参考:Hardware: IRIS keyboard のカスタマイズ関連
[2] [Iris keyboard tent] (https://www.thingiverse.com/thing:2681357)
[3] [Iris keyboard #3] (https://k2m4.blogspot.com/2018/10/iris-keyboard-3.html)