この記事でできること
- トラックボールで縦・横スクロールができるようになる
- Remapでキー配列をGUIで自由に変更できるようになる
動作確認環境
- OS: Windows
- キーボード: Keyball39
- QMKバージョン: 0.22.14
用語の説明
| 用語 | 説明 |
|---|---|
| QMK | キーボードのファームウェア(プログラム)を作るためのツール |
| ファームウェア | キーボードに書き込むプログラムのこと |
| keymap | どのキーに何を割り当てるかの設定 |
| ビルド | ソースコードをキーボードに書き込める形式に変換すること |
| Remap | ブラウザ上でキー配列を変更できるGUIツール |
| レイヤー | キーボードの「面」のこと。特定のキーを押すと別の面に切り替わる |
全体の流れ
STEP 1: QMK MSYSをインストール
STEP 2: Keyballリポジトリをclone
STEP 3: QMK 0.22.14をclone
STEP 4: シンボリックリンクを作成
STEP 5: keymapをコピーしてVIAを有効化
STEP 6: ビルド
STEP 7: キーボードに書き込む
所要時間の目安:30〜60分(ダウンロード時間による)
STEP 1: QMK MSYSをインストール
QMK MSYSはWindowsでQMKをビルドするための公式ツールです。
- https://msys.qmk.fm/ を開く
-
QMK_MSYS.exeをダウンロードしてインストール - スタートメニューから QMK MSYS を起動する
黒いターミナル画面が開けば成功です。
💡 以降のコマンドはすべてこの QMK MSYS のターミナル上で実行します。
STEP 2: Keyballリポジトリをclone
「clone」とはGitHubからソースコードをダウンロードすることです。
cd ~
git clone https://github.com/yowkees/keyball.git keyball
完了後に確認:
ls ~/keyball/
以下のように表示されればOKです。
keyball39 keyball44 keyball46 keyball61 qmk_firmware README.md ...
STEP 3: QMK 0.22.14をclone
⚠️ 重要: KeyballはQMK 0.22.14 でのみ動作確認されています。最新版(0.32以降)ではビルドエラーが発生するため、必ず以下のコマンドでバージョンを指定してcloneしてください。
cd ~
git clone https://github.com/qmk/qmk_firmware.git --depth 1 --recurse-submodules --shallow-submodules -b 0.22.14 qmk_022
少し時間がかかります。完了後に確認:
ls ~/qmk_022/
Makefile, keyboards, quantum などが表示されればOKです。
STEP 4: シンボリックリンクを作成
「シンボリックリンク」とはショートカットのようなものです。QMKからKeyballのソースを参照できるようにします。
cd ~/qmk_022/keyboards
ln -s ~/keyball/qmk_firmware/keyboards/keyball keyball
確認:
ls keyball/
keyball39, keyball44 などが表示されればOKです。
STEP 5: keymapをコピーしてVIAを有効化
5-1. viaキーマップをベースにコピー
Remapで設定変更できるように via キーマップをベースにします。
cd ~/qmk_022
cp -r keyboards/keyball/keyball39/keymaps/via keyboards/keyball/keyball39/keymaps/mykeymap
5-2. VIAを有効にする
以下のコマンドで rules.mk に1行追加します。
echo "VIA_ENABLE = yes" >> keyboards/keyball/keyball39/keymaps/mykeymap/rules.mk
5-3. スクロール機能について
via キーマップにはスクロール機能がデフォルトで組み込まれています。keymap.c に以下のコードが入っているため、レイヤー3に切り替えるだけでトラックボールが自動的にスクロールモードになります。
layer_state_t layer_state_set_user(layer_state_t state) {
// Auto enable scroll mode when the highest layer is 3
keyball_set_scroll_mode(get_highest_layer(state) == 3);
return state;
}
STEP 6: ビルド
以下のコマンドでファームウェアをビルドします。
cd ~/qmk_022
make SKIP_GIT=yes keyball/keyball39:mykeymap
少し時間がかかります。最後に以下のように表示されれば成功です。
Linking: .build/keyball_keyball39_mykeymap.elf [OK]
Creating load file for flashing: .build/keyball_keyball39_mykeymap.hex [OK]
Copying keyball_keyball39_mykeymap.hex to qmk_firmware folder [OK]
* The firmware size is fine - 26530/28672 (92%, 2142 bytes free)
生成されたファイルの場所:
C:\Users\(あなたのユーザー名)\qmk_022\keyball_keyball39_mykeymap.hex
STEP 7: キーボードに書き込む
7-1. QMK Toolboxをダウンロード
https://github.com/qmk/qmk_toolbox/releases を開いて QMK.Toolbox.exe をダウンロードして起動します。
7-2. hexファイルを選択
Open ボタンから STEP 6 で生成した keyball_keyball39_mykeymap.hex を選びます。
7-3. 書き込み
- Auto-flash のチェックをオンにする
- Keyball39の左側をPCにUSB接続する(左側がマスターです)
- キーボード裏のリセットボタンを素早く2回押す
- 自動で書き込みが始まります
-
Flash completeと表示されれば成功です
💡 リセットボタンは基板の裏側にある小さいタクトスイッチです。
使い方
スクロール操作
| 操作 | 動作 |
|---|---|
| 無変換キー長押し+トラックボール | 縦スクロール |
| 無変換キー長押し+Shift+トラックボール | 横スクロール |
💡 「無変換キー」はスペースキーの左隣あたりにあります。キーボードを触って確認してください。
レイヤー構成
| レイヤー | 切り替え方 | 主な内容 |
|---|---|---|
| 0 | 通常時 | 通常のキー入力 |
| 1 | Space長押し | 記号・ファンクションキー |
| 2 | Enter長押し | 数字・矢印キー |
| 3 | 無変換長押し | スクロールモード・設定 |
Remapでキー配列を変更する
書き込み後はRemapを使ってブラウザ上でキー配列を自由に変更できます。
- https://remap-keys.app/ を開く
- Keyball39をPCにUSB接続する
-
START REMAP FOR YOUR KEYBOARDをクリック - キーボードが認識されたらGUIでキーを変更する
- 変更後は
Flashをクリックして保存する
⚠️
SSNP_HOR(横スクロール固定)などのKeyball独自キーはRemapのGUIには表示されません。これらを使いたい場合はkeymap.cを直接編集してビルドし直す必要があります。
トラブルシューティング
make: No rule to make target エラーが出る
QMKのバージョンが合っていない可能性があります。必ずQMK 0.22.14 を使い、make は必ず ~/qmk_022/ の中で実行してください。
cd ~/qmk_022
make SKIP_GIT=yes keyball/keyball39:mykeymap
QMK Toolboxでキーボードが認識されない
- 左側をUSB接続しているか確認する
- リセットボタンを素早く2回押してみる
- USBケーブルを抜き差ししてみる
Remapで「見つかりません」になる
rules.mk に VIA_ENABLE = yes が追加されているか確認してください。
cat ~/qmk_022/keyboards/keyball/keyball39/keymaps/mykeymap/rules.mk
VIA_ENABLE = yes がなければ追加して再ビルド・書き込みが必要です。
echo "VIA_ENABLE = yes" >> ~/qmk_022/keyboards/keyball/keyball39/keymaps/mykeymap/rules.mk
まとめ
- KeyballはQMK 0.22.14 を使う(最新版は非対応)
-
viaキーマップをベースにすることでRemapも使える - スクロール機能はデフォルトで組み込み済み
- 縦スクロール:無変換長押し+トラックボール
- 横スクロール:無変換長押し+Shift+トラックボール
- Keyball独自キー(
SSNP_HORなど)はRemapで設定できないのでkeymap.cを直接編集する