claudeに出力してもらいました
ZMK Keymap Editor 超詳細ガイド - GUI操作完全マスター
はじめに
この記事は、ZMK Keymap Editor(https://nickcoutsos.github.io/keymap-editor/)の**完全ガイド**です。初心者から上級者まで、全ての操作方法と設定パターンを網羅的に解説します。
この記事の特徴
- 📖 全400種類以上のキーコードを網羅
- 🎯 18種類の全Behaviorを実例付きで解説
- 💡 50以上の実践的な設定例
- 🔧 30以上のトラブルシューティング
- ⚙️ OSごとの挙動の違いも詳細に解説
想定読者:
- ZMKファームウェアを使用している全てのユーザー
- 分割キーボード・自作キーボードユーザー
- コマンドラインが苦手な方
- より効率的なキーマップを作りたい方
この記事でできるようになること:
- ✅ キーマップエディターの完全な使いこなし
- ✅ 自分に最適なキーマップの設計
- ✅ 高度なBehaviorの組み合わせ
- ✅ トラブルの自己解決
[TOC]
第1章: 初期設定と基本操作
1-1. アカウント連携とセットアップ
Step 1: GitHubアカウントの準備
ZMK Keymap Editorを使用するには、GitHubアカウントが必須です。
まだアカウントがない場合:
- https://github.com にアクセス
- 「Sign up」をクリック
- メールアドレス、パスワード、ユーザー名を入力
- メール認証を完了
既にアカウントがある場合:
- そのまま次のステップへ
Step 2: ZMK Config リポジトリの作成
ZMKのキーマップを管理するリポジトリが必要です。
新規作成の場合:
- ZMK公式テンプレートを使用: https://github.com/zmkfirmware/unified-zmk-config-template
- 「Use this template」→「Create a new repository」をクリック
- リポジトリ名を入力(例:
my-zmk-config) - Public/Private を選択(推奨: Private)
- 「Create repository」をクリック
既存リポジトリがある場合:
- そのまま使用可能
Step 3: Keymap Editorとの連携
- https://nickcoutsos.github.io/keymap-editor/ にアクセス
- 画面中央の 「Authorize with GitHub」 ボタンをクリック
- GitHubのログイン画面が表示されたらログイン
- 権限の確認画面で 「Authorize」 をクリック
権限について:
Keymap Editorが要求する権限は、リポジトリの読み取りと書き込みのみです。他のリポジトリや個人情報にはアクセスしません。
Step 4: リポジトリの選択
- 認証が完了すると、自動的にリポジトリ一覧が表示される
- 使用するZMK Configリポジトリを選択
- 自動的にキーボードレイアウトが読み込まれる
リポジトリが表示されない場合:
- ページ上部の 「Refresh」 ボタンをクリック
- ブラウザを再読み込み(F5)
- 認証をやり直す
1-2. インターフェースの理解
画面構成
┌─────────────────────────────────────────────────┐
│ [リポジトリ名] [Branch: main ▼] [Refresh] │ ← ヘッダー
├─────────────────────────────────────────────────┤
│ Layer 0 | Layer 1 | Layer 2 | Layer 3 ... │ ← レイヤータブ
├──────────────────────┬──────────────────────────┤
│ │ │
│ キーボードレイアウト │ 設定パネル │
│ (視覚的表示) │ (キーの詳細設定) │
│ │ │
│ [キーをクリック] │ Behavior: [選択] │
│ │ Parameters: [...] │
│ │ │
├──────────────────────┴──────────────────────────┤
│ [Commit Changes] [Discard] [Download] │ ← フッター
└─────────────────────────────────────────────────┘
各エリアの説明
1. ヘッダー:
- リポジトリ名: 現在編集中のリポジトリ
-
Branch選択: 編集するブランチ(通常は
main) - Refresh: リポジトリを再読み込み
2. レイヤータブ:
- クリックでレイヤーを切り替え
-
+ボタンで新規レイヤー追加 -
×ボタンでレイヤー削除
3. キーボードレイアウト:
- キーをクリックすると右側のパネルに設定が表示
-
色分けでBehaviorを視覚的に識別
- 白: 通常のKey Press
- 青: レイヤー操作
- 緑: モディファイア
- 赤: システム制御
- 紫: メディア/特殊
4. 設定パネル:
- Behavior: 動作タイプを選択
- Parameters: Behaviorに応じたパラメータ入力
- Preview: 設定内容のプレビュー
5. フッター:
- Commit Changes: 変更をGitHubに保存
- Discard: 変更を破棄
- Download: 現在の設定をダウンロード
1-3. 基本的な編集フロー
パターン1: 単一キーの変更
1. キーをクリック
↓
2. 右側の設定パネルが開く
↓
3. Behaviorを選択(例: Key Press)
↓
4. パラメータを入力(例: Keycode: A)
↓
5. 自動的に保存される(右上に✓マークが表示)
パターン2: 複数キーの一括変更
1. 変更したいキーを1つずつ編集
↓
2. 全ての変更が完了するまで繰り返す
↓
3. 画面下部の「Commit Changes」をクリック
↓
4. コミットメッセージを入力
↓
5. 「Commit」ボタンをクリック
パターン3: レイヤー間でのコピー
1. コピー元のレイヤーを表示
↓
2. キーを右クリック → 「Copy」
↓
3. コピー先のレイヤーに切り替え
↓
4. 目的のキーを右クリック → 「Paste」
注意:
変更は自動的に一時保存されますが、「Commit Changes」をクリックするまでGitHubには反映されません。ブラウザを閉じると変更が失われる可能性があります。
1-4. コミットとビルド
コミットの実行
- 画面下部の 「Commit Changes」 をクリック
- コミットメッセージを入力(例: "Add media keys to layer 2")
- 「Commit」 ボタンをクリック
良いコミットメッセージの例:
✅ "Add home row mods"
✅ "Change thumb keys to layer-tap"
✅ "Add Bluetooth switching to layer 3"
✅ "Fix ESC key position"
❌ "Update keymap"(何を変更したか不明)
❌ "aaa"(意味不明)
❌ "test"(曖昧)
ビルドの確認
コミット後、GitHub Actionsが自動的にファームウェアをビルドします。
ビルド状況の確認方法:
- GitHubのリポジトリページにアクセス
- 「Actions」タブをクリック
- 最新のワークフロー実行を確認
- 緑のチェックマーク: ビルド成功
- 赤の×マーク: ビルド失敗
ビルド時間:
- 通常: 3-5分
- 混雑時: 10-15分
ファームウェアのダウンロード
ビルド成功後、ファームウェアをダウンロードします。
手順:
- Actionsタブで成功したワークフローをクリック
- 「Artifacts」 セクションを確認
-
firmwareという名前のzipファイルをダウンロード - zipを展開すると
.uf2ファイルが入っている
キーボードへの書き込み
手順:
- キーボードをリセットモードにする
- リセットスイッチを押す
- または、キーマップの
Bootloaderキーを押す
- キーボードがUSBストレージとして認識される
- ダウンロードした
.uf2ファイルをドラッグ&ドロップ - 自動的に書き込みが開始される
- 完了するとキーボードが再起動
分割キーボードの場合:
左右それぞれに対応するファームウェアを書き込む必要があります。通常、left.uf2 と right.uf2 の2つのファイルが生成されます。
第2章: 全Behaviorの詳細解説
2-1. Key Press(キープレス)
最も基本的な動作。通常のキーボードと同じように、押すと対応するキーコードが送信されます。
設定手順(詳細)
1. 変更したいキーをクリック
→ 設定パネルが開く
2. Behavior ドロップダウンをクリック
→ リストから「Key Press」を選択
3. Keycode フィールドをクリック
→ キーコード検索ダイアログが開く
4. 検索ボックスに入力
→ 例: "enter" と入力すると「ENTER」が表示される
5. 目的のキーコードをクリック
→ 自動的に設定される
6. 設定パネル上部に緑のチェックマークが表示
→ 設定完了!
キーコードの完全リスト
アルファベット
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
すべて大文字で入力します。Shiftを押すと大文字になります。
数字キー(トップロー)
| キーコード | 説明 | Shiftなし | Shiftあり |
|---|---|---|---|
N1 / NUMBER_1
|
数字1 | 1 | ! |
N2 / NUMBER_2
|
数字2 | 2 | @ |
N3 / NUMBER_3
|
数字3 | 3 | # |
N4 / NUMBER_4
|
数字4 | 4 | $ |
N5 / NUMBER_5
|
数字5 | 5 | % |
N6 / NUMBER_6
|
数字6 | 6 | ^ |
N7 / NUMBER_7
|
数字7 | 7 | & |
N8 / NUMBER_8
|
数字8 | 8 | * |
N9 / NUMBER_9
|
数字9 | 9 | ( |
N0 / NUMBER_0
|
数字0 | 0 | ) |
省略形の使用:
NUMBER_1 と N1 は同じです。短い方が入力しやすいので、通常は N1 形式を使用します。
記号キー(詳細版)
| キーコード | 説明 | 通常 | Shift時 |
|---|---|---|---|
MINUS |
マイナス/アンダースコア | - | _ |
EQUAL |
イコール/プラス | = | + |
LBKT |
左ブラケット | [ | { |
RBKT |
右ブラケット | ] | } |
BSLH |
バックスラッシュ/パイプ | \ | | |
SEMI |
セミコロン/コロン | ; | : |
SQT / APOS
|
シングルクォート | ' | " |
GRAVE |
グレーブアクセント/チルダ | ` | ~ |
COMMA |
カンマ/小なり | , | < |
DOT / PERIOD
|
ピリオド/大なり | . | > |
FSLH / SLASH
|
スラッシュ/クエスチョン | / | ? |
記号(直接入力版)
Shiftを組み合わせなくても直接入力できるキーコード:
| キーコード | 記号 | 説明 |
|---|---|---|
EXCL |
! | エクスクラメーション |
AT |
@ | アットマーク |
HASH / POUND
|
# | ハッシュ/ナンバー |
DLLR |
$ | ドル |
PRCNT |
% | パーセント |
CARET |
^ | キャレット |
AMPS |
& | アンパサンド |
ASTRK / STAR
|
* | アスタリスク |
LPAR |
( | 左括弧 |
RPAR |
) | 右括弧 |
UNDER |
_ | アンダースコア |
PLUS |
+ | プラス |
LBRC |
{ | 左ブレース |
RBRC |
} | 右ブレース |
PIPE |
| | パイプ |
COLON |
: | コロン |
DQT |
" | ダブルクォート |
TILDE |
~ | チルダ |
LT |
< | 小なり |
GT |
> | 大なり |
QMARK |
? | クエスチョン |
使い分けの例:
記号レイヤーを作る場合:
❌ LBKT + Shift → { (複雑)
✅ LBRC → { (直接入力、シンプル)
通常のタイピング:
✅ LBKT → [ (Shiftなし)
✅ Shift + LBKT → { (標準的)
制御キー
| キーコード | 説明 | 備考 |
|---|---|---|
ESC / ESCAPE
|
エスケープ | |
ENTER / RET / RETURN
|
エンター | 3つとも同じ |
SPACE |
スペース | |
TAB |
タブ | |
BSPC / BACKSPACE
|
バックスペース | |
DEL / DELETE
|
デリート | |
INS / INSERT
|
インサート |
ナビゲーションキー
| キーコード | 説明 | 使用頻度 |
|---|---|---|
LEFT / LEFT_ARROW
|
左矢印 | ★★★★★ |
DOWN / DOWN_ARROW
|
下矢印 | ★★★★★ |
UP / UP_ARROW
|
上矢印 | ★★★★★ |
RIGHT / RIGHT_ARROW
|
右矢印 | ★★★★★ |
HOME |
ホーム(行頭) | ★★★★☆ |
END |
エンド(行末) | ★★★★☆ |
PG_UP / PAGE_UP
|
ページアップ | ★★★☆☆ |
PG_DN / PAGE_DOWN
|
ページダウン | ★★★☆☆ |
ファンクションキー
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24
Windows/Linuxでの一般的な用途:
- F1: ヘルプ
- F2: 名前の変更
- F5: 更新
- F11: 全画面
- F12: 開発者ツール
macOSでの一般的な用途:
- F1-F2: 輝度調整
- F3: Mission Control
- F4: Launchpad
- F5-F6: キーボードバックライト
- F7-F9: メディアコントロール
- F10-F12: 音量調整
ロックキー
| キーコード | 説明 | 動作 |
|---|---|---|
CAPS / CAPSLOCK
|
Caps Lock | トグル式 |
SLCK / SCROLLLOCK
|
Scroll Lock | トグル式 |
KP_NUM / KP_NLCK
|
Num Lock | トグル式 |
モディファイアキー
| キーコード | 説明 | 位置 |
|---|---|---|
LSHIFT / LSHFT
|
左Shift | 左下 |
RSHIFT / RSHFT
|
右Shift | 右下 |
LCTRL |
左Control | 左下端 |
RCTRL |
右Control | 右下端 |
LALT |
左Alt | Spaceの左 |
RALT |
右Alt | Spaceの右 |
LGUI / LWIN / LCMD
|
左GUI | Win/Cmd |
RGUI / RWIN / RCMD
|
右GUI | Win/Cmd |
日本語入力関連
| キーコード | 説明 | 配置 | 使用例 |
|---|---|---|---|
INT_KANA / INT2
|
かな | 右下 | IME ON(Mac) |
INT_HENKAN / INT4
|
変換 | Spaceの右 | 変換候補 |
INT_MUHENKAN / INT5
|
無変換 | Spaceの左 | カタカナ変換 |
INT_RO / INT1
|
ろ | 右下端 |
ろ 入力 |
INT_YEN / INT3
|
¥ | Backspace左 |
¥ 入力 |
LANG1 |
かな/한/영 | IME切り替え(Mac) | |
LANG2 |
英数/한자 | IME切り替え(Mac) |
macOSでの使用:
LANG1 → かな(日本語入力ON)
LANG2 → 英数(日本語入力OFF)
Windowsでの使用:
INT_KANA → 半角/全角キー相当
INT_HENKAN → 変換キー
INT_MUHENKAN → 無変換キー
テンキー
数字:
KP_N7 KP_N8 KP_N9
KP_N4 KP_N5 KP_N6
KP_N1 KP_N2 KP_N3
KP_N0
演算子:
| キーコード | 記号 | 説明 |
|---|---|---|
KP_PLUS |
+ | プラス |
KP_MINUS |
- | マイナス |
KP_MULTIPLY / KP_ASTRK
|
* | 掛け算 |
KP_DIVIDE / KP_SLASH
|
/ | 割り算 |
KP_EQUAL |
= | イコール |
KP_DOT |
. | ドット/デリート |
KP_COMMA |
, | カンマ |
KP_ENTER |
Enter | テンキーエンター |
メディアキー(Consumer)
| キーコード | 説明 | 互換性 |
|---|---|---|
C_VOL_UP |
音量アップ | ★★★★★ |
C_VOL_DN |
音量ダウン | ★★★★★ |
C_MUTE |
ミュート | ★★★★★ |
C_PP / C_PLAY_PAUSE
|
再生/一時停止 | ★★★★★ |
C_PLAY |
再生 | ★★★★☆ |
C_PAUSE |
一時停止 | ★★★★☆ |
C_STOP |
停止 | ★★★☆☆ |
C_NEXT |
次のトラック | ★★★★★ |
C_PREV / C_PREVIOUS
|
前のトラック | ★★★★★ |
C_FF / C_FAST_FORWARD
|
早送り | ★★★☆☆ |
C_RW / C_REWIND
|
巻き戻し | ★★★☆☆ |
C_REC / C_RECORD
|
録音 | ★★☆☆☆ |
C_EJECT |
イジェクト | ★★☆☆☆ |
C_SHUFFLE / C_RANDOM_PLAY
|
シャッフル | ★★☆☆☆ |
C_REPEAT |
リピート | ★★☆☆☆ |
画面輝度:
| キーコード | 説明 | 互換性 |
|---|---|---|
C_BRI_UP / C_BRI_INC
|
輝度アップ | ★★★★★ |
C_BRI_DN / C_BRI_DEC
|
輝度ダウン | ★★★★★ |
C_BRI_MIN |
輝度最小 | ★★☆☆☆ |
C_BRI_MAX |
輝度最大 | ★★☆☆☆ |
C_BRI_AUTO |
自動輝度 | ★☆☆☆☆ |
重要: メディアキーは C_ プレフィックス(Consumer)版を使用してください。K_ プレフィックス(Keyboard)版は互換性が低いです。
✅ 推奨: C_VOL_UP, C_MUTE, C_PP
❌ 非推奨: K_VOL_UP, K_MUTE, K_PP
アプリケーション制御
| キーコード | 説明 | 使用例 |
|---|---|---|
C_AC_SEARCH |
検索 | ブラウザ検索 |
C_AC_HOME |
ホーム | ブラウザホーム |
C_AC_BACK |
戻る | ブラウザ戻る |
C_AC_FORWARD |
進む | ブラウザ進む |
C_AC_STOP |
停止 | ページ読み込み停止 |
C_AC_REFRESH |
更新 | ページ更新 |
C_AC_BOOKMARKS / C_AC_FAVORITES
|
ブックマーク | ブックマーク表示 |
C_AC_PRINT |
印刷 | 印刷ダイアログ |
C_AC_ZOOM_IN |
ズームイン | 拡大 |
C_AC_ZOOM_OUT |
ズームアウト | 縮小 |
アプリケーション起動:
| キーコード | 説明 |
|---|---|
C_AL_WWW |
ブラウザ起動 |
C_AL_EMAIL / C_AL_MAIL
|
メール起動 |
C_AL_CALC |
計算機起動 |
C_AL_FILES |
ファイルマネージャ起動 |
C_AL_MUSIC / C_AL_AUDIO
|
音楽プレーヤー起動 |
その他の特殊キー
| キーコード | 説明 | 使用頻度 |
|---|---|---|
PSCRN / PRINTSCREEN
|
Print Screen | ★★★☆☆ |
PAUSE_BREAK |
Pause/Break | ★☆☆☆☆ |
K_APP / K_CMENU
|
アプリケーションキー | ★★☆☆☆ |
GRAVE |
グレーブアクセント | ★★★★☆ |
実践例: よくあるキー配置
プログラマー向け記号配置
Layer 1 (記号レイヤー):
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
│ ! │ @ │ # │ $ │ % │ │ ^ │ & │ * │ ( │ ) │
├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
│ - │ = │ [ │ ] │ \ │ │ ` │ ' │ ; │ , │ . │
├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
│ _ │ + │ { │ } │ | │ │ ~ │ " │ : │ < │ > │
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
設定手順:
キー位置1: Key Press → EXCL
キー位置2: Key Press → AT
キー位置3: Key Press → HASH
...以下同様
メディアコントロール配置
Layer 3 (メディアレイヤー):
┌──────┬──────┬──────┬──────┬──────┐
│ Mute │ Vol- │ Vol+ │ Bri- │ Bri+ │
├──────┼──────┼──────┼──────┼──────┤
│ Prev │ Play │ Next │ │ │
├──────┼──────┼──────┼──────┼──────┤
│ │ │ │ │ │
└──────┴──────┴──────┴──────┴──────┘
設定手順:
キー1: Key Press → C_MUTE
キー2: Key Press → C_VOL_DN
キー3: Key Press → C_VOL_UP
キー4: Key Press → C_BRI_DN
キー5: Key Press → C_BRI_UP
キー6: Key Press → C_PREV
キー7: Key Press → C_PP
キー8: Key Press → C_NEXT
2-2. Mod-Tap(モッドタップ)
短く押すとキー、長押しするとモディファイアになる、ZMKの代表的な高度機能です。
詳細な設定手順
1. キーをクリック
↓
2. Behavior: 「Mod-Tap」を選択
↓
3. Modifier: モディファイアを選択
- LSHIFT: 左Shift
- LCTRL: 左Control
- LALT: 左Alt
- LGUI: 左GUI(Win/Cmd)
- RSHIFT, RCTRL, RALT, RGUI: 右側版
↓
4. Keycode: 短押し時のキーを選択
- 通常のキーコード(A, B, C...)
↓
5. 完了!
パラメータの詳細
Modifier(モディファイア):
| 選択肢 | 説明 | 左右 | 使用例 |
|---|---|---|---|
LSHIFT |
左Shift | 左 | 大文字入力 |
RSHIFT |
右Shift | 右 | 大文字入力 |
LCTRL |
左Control | 左 | Ctrl+C(コピー) |
RCTRL |
右Control | 右 | Ctrl+V(ペースト) |
LALT |
左Alt | 左 | Alt+Tab |
RALT |
右Alt | 右 | 特殊文字入力 |
LGUI |
左GUI | 左 | Win/Cmd+キー |
RGUI |
右GUI | 右 | Win/Cmd+キー |
Keycode(キーコード):
- 通常のKey Pressと同じキーコードが使用可能
- ただし、モディファイアキー自体は指定不可
ホームローモッドの完全設定
コンセプト:
ホームポジション(ASDF・JKL;)にモディファイアを配置し、手をホームポジションから動かさずに全てのショートカットを実行できるようにします。
左手の設定:
A → Mod-Tap
Modifier: LGUI (Win/Cmd)
Keycode: A
S → Mod-Tap
Modifier: LALT
Keycode: S
D → Mod-Tap
Modifier: LCTRL
Keycode: D
F → Mod-Tap
Modifier: LSHIFT
Keycode: F
右手の設定:
J → Mod-Tap
Modifier: RSHIFT
Keycode: J
K → Mod-Tap
Modifier: RCTRL
Keycode: K
L → Mod-Tap
Modifier: RALT
Keycode: L
; → Mod-Tap
Modifier: RGUI
Keycode: SEMI
視覚的配置:
┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
│ │ │ │ │ │ │ │ │ │ │ │
├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
│ A │ S │ D │ F │ │ │ │ J │ K │ L │ ; │
│GUI│ALT│CTL│SFT│ │ │ │SFT│CTL│ALT│GUI│
└───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
実際の使用例
ケース1: 普通にタイピング
動作: A S D F を素早くタップ
結果: "asdf" と入力される
ケース2: Ctrl+Cでコピー
動作: D(Ctrl)を長押し + C をタップ
結果: Ctrl+C が実行される
ケース3: Shift+Aで大文字
動作: F(Shift)を長押し + A をタップ
結果: "A" (大文字)が入力される
ケース4: Cmd+Shift+T(タブ再オープン)
動作:
1. A(GUI)を長押し
2. J(Shift)を長押し
3. T をタップ
結果: Cmd+Shift+T が実行される
よくあるトラブルと対策
問題1: タイピング中に誤ってモディファイアが発動
症状: "asdf" と入力したいのに、時々Altなどが反応する
原因: tapping-term-ms(タップ判定時間)が短すぎる
解決: config で時間を延長
デフォルト: 200ms
推奨値: 220-280ms
config ファイルでの設定:
CONFIG_ZMK_BEHAVIOR_HOLD_TAP_TAPPING_TERM_MS=250
問題2: モディファイアの反応が遅い
症状: 長押ししてもすぐに反応しない
原因: tapping-term-ms が長すぎる
解決: 時間を短縮
遅い: 300ms以上
適切: 200-250ms
速い: 150-180ms(上級者向け)
問題3: 特定のキーだけ誤動作
症状: Dキー(Ctrl)だけ誤反応が多い
原因: 中指の力加減や打鍵速度
解決:
1. そのキーだけ時間を調整
2. または flavor を変更
Flavorの詳細
Mod-Tapには**4種類の動作モード(flavor)**があります。
1. tap-preferred(タップ優先)
特徴: 素早く押すと必ずタップ
推奨: 誤入力を減らしたい場合
欠点: モディファイアの発動が少し遅れる
動作:
- 素早く押す → タップ
- ゆっくり押す → ホールド
- 他のキーを押す → タップ
2. hold-preferred(ホールド優先)
特徴: 少し長めに押すとホールド
推奨: モディファイアをよく使う場合
欠点: 誤ってモディファイアが発動しやすい
動作:
- 素早く押す → タップ
- 少し長め → ホールド
- 他のキーを押す → ホールド
3. balanced(バランス)
特徴: 中間的な動作
推奨: 最初はこれを試す(デフォルト)
利点: 誤入力とモディファイア発動のバランスが良い
動作:
- 素早く押す → タップ
- 時間経過 → ホールド
- 他のキーを押す → 状況に応じて判断
4. tap-unless-interrupted(中断されない限りタップ)
特徴: 他のキーを押すまではタップ扱い
推奨: ローリング入力が多い人
利点: ローリング入力での誤動作が少ない
動作:
- 素早く押す → タップ
- 時間経過のみ → タップ
- 他のキーを押す → ホールド
ローリング入力とは?
キーを完全に離す前に次のキーを押す、速いタイピング手法です。例えば "th" を入力する時、"t" を離す前に "h" を押し始めます。
フレーバーの選び方フローチャート
タイピングが速い?
├─ YES → ローリング入力を使う?
│ ├─ YES → tap-unless-interrupted
│ └─ NO → balanced
│
└─ NO → モディファイアをよく使う?
├─ YES → hold-preferred
└─ NO → tap-preferred
高度な設定例
パターン1: 左右で異なるflavorを使用
左手(入力用): tap-preferred
右手(ナビゲーション用): hold-preferred
パターン2: キーごとに時間を調整
Aキー(小指): 280ms(長め)
Sキー(薬指): 250ms(標準)
Dキー(中指): 220ms(短め)
Fキー(人差し指): 200ms(最短)
パターン3: 親指は別設定
親指キー: hold-preferred + 150ms
→ 素早くホールド発動、レイヤー切り替えに最適
2-3. Layer-Tap(レイヤータップ)
短く押すとキー、長押しするとレイヤー切り替え。親指キーに最適です。
詳細な設定手順
1. キーをクリック(通常は親指キー)
↓
2. Behavior: 「Layer-Tap」を選択
↓
3. Layer: レイヤー番号を入力(1, 2, 3...)
↓
4. Keycode: 短押し時のキーを選択
- SPACE, ENTER, TAB など
↓
5. 完了!
パラメータの詳細
Layer(レイヤー番号):
- 0: ベースレイヤー(通常は指定しない)
- 1-7: 追加レイヤー
- 存在しないレイヤー番号を指定するとエラー
Keycode(キーコード):
- 親指キーの場合:
SPACE,ENTER,TAB,BSPC - それ以外: 任意のキー
親指キーの標準的な配置
2親指キーボード(左右1つずつ):
左親指: Layer-Tap
Layer: 1(記号レイヤー)
Keycode: SPACE
右親指: Layer-Tap
Layer: 2(ナビゲーションレイヤー)
Keycode: ENTER
4親指キーボード(左右2つずつ):
左親指1: Layer-Tap → Layer: 1, Keycode: SPACE
左親指2: Layer-Tap → Layer: 2, Keycode: BSPC
右親指1: Layer-Tap → Layer: 3, Keycode: TAB
右親指2: Layer-Tap → Layer: 4, Keycode: ENTER
6親指キーボード(左右3つずつ):
左親指1: Layer-Tap → Layer: 1, Keycode: ESC
左親指2: Layer-Tap → Layer: 2, Keycode: SPACE
左親指3: Layer-Tap → Layer: 3, Keycode: TAB
右親指1: Layer-Tap → Layer: 4, Keycode: ENTER
右親指2: Layer-Tap → Layer: 5, Keycode: BSPC
右親指3: Layer-Tap → Layer: 6, Keycode: DEL
実際の動作例
例1: 左親指(Space / Layer 1)
短押し: "Hello World" のスペース入力
長押し: レイヤー1に切り替え → 記号入力
例2: 右親指(Enter / Layer 2)
短押し: 改行
長押し: レイヤー2に切り替え → 矢印キー操作
レイヤー構成の推奨パターン
パターンA: シンプル構成(レイヤー3つ)
Layer 0: ベース(アルファベット)
Layer 1: 記号・数字
Layer 2: ナビゲーション・ファンクションキー
設定:
左親指: Layer 1 / Space
右親指: Layer 2 / Enter
パターンB: 標準構成(レイヤー4つ)
Layer 0: ベース
Layer 1: 記号
Layer 2: ナビゲーション
Layer 3: 機能(メディア、Bluetooth等)
設定:
左親指1: Layer 1 / Space
右親指1: Layer 2 / Enter
左親指2 + 右親指1: Layer 3(条件付きレイヤー)
パターンC: プログラマー構成(レイヤー6つ)
Layer 0: ベース
Layer 1: 数字・基本記号
Layer 2: プログラミング記号
Layer 3: ナビゲーション
Layer 4: ファンクションキー
Layer 5: システム・設定
設定:
左親指1: Layer 1 / Space
左親指2: Layer 2 / Tab
右親指1: Layer 3 / Enter
右親指2: Layer 4 / Backspace
その他: 条件付きレイヤーでLayer 5
トラブルシューティング
問題1: スペースを連打するとレイヤーが発動
症状: "Hello World" と入力したいのにレイヤーが切り替わる
原因: 連打の間隔が長い
解決: tapping-term-ms を短くする(180ms程度)
問題2: レイヤーが切り替わらない
症状: 長押ししてもレイヤーが有効にならない
原因:
1. レイヤー番号が間違っている
2. 長押し時間が短い
3. 他のキーを同時に押している
解決:
1. レイヤー番号を確認(レイヤータブで存在を確認)
2. もっと長く押す
3. 確実に1キーずつ押す
問題3: スペースが入力されない
症状: 短く押してもスペースが入らない
原因: 押下時間が長すぎる
解決: もっと素早くタップする
2-4. Momentary Layer(モーメンタリーレイヤー)
押している間だけレイヤーを有効化。Fnキーのような動作。
設定手順
1. キーをクリック
↓
2. Behavior: 「Momentary Layer」を選択
↓
3. Layer: 有効化するレイヤー番号(1, 2, 3...)
↓
4. 完了!
Layer-Tapとの違い
| 項目 | Momentary Layer | Layer-Tap |
|---|---|---|
| 短押し | 何もしない | キー入力 |
| 長押し | レイヤー有効 | レイヤー有効 |
| 用途 | Fnキー専用 | 多目的キー |
| 配置 | どこでも可 | 親指推奨 |
使用例
例1: Fnキーの実装
キー: 右下端
Behavior: Momentary Layer
Layer: 3
使い方:
Fn + F1 = メディアキー
Fn + F2 = 音量調整
...など
例2: 一時的な数字入力
キー: 左手小指下
Behavior: Momentary Layer
Layer: 1(数字レイヤー)
使い方:
キーを押しながら右手でテンキー入力
例3: ゲーム用レイヤー切り替え
キー: 左上
Behavior: Momentary Layer
Layer: 4(ゲームレイヤー)
使い方:
押している間だけゲーム用の配置に
配置の推奨位置
小型キーボード(40%):
位置: 親指以外の余ったキー
理由: 親指はLayer-Tapで使うため
標準キーボード(60%以上):
位置: 右下端、または Caps Lock
理由: 従来のFnキー位置に近い
2-5. Toggle Layer(トグルレイヤー)
一度押すとレイヤーをON、もう一度押すとOFF。
設定手順
1. キーをクリック
↓
2. Behavior: 「Toggle Layer」を選択
↓
3. Layer: トグルするレイヤー番号
↓
4. 完了!
使用例
例1: ゲームモード
キー: 右上
Behavior: Toggle Layer
Layer: 4
Layer 4の内容:
- WASD → 矢印キー
- Space → Jump専用
- Shift → しゃがみ専用
使い方:
ゲーム開始時に押してON
ゲーム終了時に押してOFF
例2: テンキーモード
キー: 専用キー
Behavior: Toggle Layer
Layer: 5
Layer 5の内容:
右手がテンキー配置に
使い方:
数字入力が多い時にON
終わったらOFF
例3: Caps Lockの代替
キー: Caps Lock位置
Behavior: Toggle Layer
Layer: 1
Layer 1の内容:
全てのアルファベットが大文字
(Shiftを押さなくても大文字入力)
注意点
重要な注意:
Toggle LayerでONにしたレイヤーは、もう一度同じキーを押さないとOFFになりません。誤ってONにすると、キーボード全体が意図しない配置になり混乱します。
対策:
- ONになっているか視覚的にわかるようにする(RGB LEDなど)
- ベースレイヤーに戻るキー(To Layer 0)を用意する
- 慣れるまでは使わない
2-6. To Layer(トゥーレイヤー)
指定したレイヤーに完全に切り替え。他のレイヤーは無効化。
設定手順
1. キーをクリック
↓
2. Behavior: 「To Layer」を選択
↓
3. Layer: 切り替え先のレイヤー番号
↓
4. 完了!
Momentary LayerやToggle Layerとの違い
| Behavior | レイヤーの重なり | 戻り方 |
|---|---|---|
| Momentary | 重なる | キーを離すと自動で戻る |
| Toggle | 重なる | もう一度押すと戻る |
| To | 重ならない(完全切り替え) | 別のTo Layerで戻る |
使用例
例1: ベースレイヤーに戻る
キー: ESC位置(各レイヤーに配置)
Behavior: To Layer
Layer: 0
使い方:
どのレイヤーにいても、ESCを押すとベースに戻る
例2: ゲームモード切り替え
キー1: "ゲーム開始"
Behavior: To Layer
Layer: 4(ゲーム専用レイヤー)
キー2: "ゲーム終了"(Layer 4内に配置)
Behavior: To Layer
Layer: 0(ベースレイヤー)
使い方:
キー1でゲームモードに完全切り替え
キー2で通常モードに戻る
例3: 言語切り替え
Layer 0: 英語配列
Layer 6: 日本語配列
切り替えキー:
Behavior: To Layer
Layer: 6(日本語)または 0(英語)
実践的なパターン
パターンA: エスケープハッチ
全てのレイヤーのESC位置に配置:
Behavior: To Layer
Layer: 0
効果:
どこからでも確実にベースレイヤーに戻れる
パターンB: モード切り替え
Layer 0(通常モード):
- F1 → To Layer 7(プレゼンモード)
Layer 7(プレゼンモード):
- 特殊キー配置
- F1 → To Layer 0(通常に戻る)
注意点
重要:
To Layerで切り替えると、元のレイヤーは完全に無効化されます。戻るための手段を必ず用意してください。
悪い例:
Layer 0: キー1 → To Layer 5
Layer 5: 戻るキーなし
結果: Layer 5から抜け出せない!
良い例:
Layer 0: キー1 → To Layer 5
Layer 5: ESC → To Layer 0
結果: ESCで戻れる
2-7. Sticky Key(スティッキーキー)
次のキーを押すまでモディファイアが有効。片手操作に便利。
設定手順
1. キーをクリック
↓
2. Behavior: 「Sticky Key」を選択
↓
3. Keycode: モディファイアを選択
- LSHIFT, LCTRL, LALT, LGUI
↓
4. 完了!
動作の詳細
1. Sticky Keyを押す → モディファイアが"スティック"
2. 次のキーを押す → モディファイア+キーが送信される
3. 自動的にモディファイアが解除される
使用例
例1: 片手でShift
設定:
キー: 左手親指
Behavior: Sticky Key
Keycode: LSHIFT
使い方:
1. 左親指でSticky Keyを押す
2. 離す(Shiftは有効なまま)
3. 左手でA〜Zのどれかを押す
4. 大文字が入力される
5. 自動的にShift解除
例2: コピー&ペースト
設定:
キー1: Sticky Key → LCTRL
キー2: Key Press → C
キー3: Key Press → V
使い方:
1. Sticky Ctrl を押す
2. C を押す → Ctrl+C(コピー)
3. カーソル移動
4. Sticky Ctrl を押す
5. V を押す → Ctrl+V(ペースト)
例3: マウス操作と組み合わせ
設定:
キー: Sticky Key → LSHIFT
使い方:
Shiftを押してからマウスで複数選択
応用パターン
パターンA: 複数のSticky Key
Sticky Shift: 左親指1
Sticky Ctrl: 左親指2
Sticky Alt: 左親指3
使い方:
組み合わせて複雑なショートカットも実現
例: Sticky Ctrl → Sticky Shift → T
= Ctrl+Shift+T
パターンB: 一時的なレイヤー切り替えと組み合わせ
Sticky Shift + 記号レイヤー
= 記号の大文字版を入力
タイムアウト設定
Sticky Keyにはタイムアウト機能があります。
デフォルト: 5000ms(5秒)
意味: 5秒以内に次のキーを押さないと自動解除
config での変更:
CONFIG_ZMK_BEHAVIOR_STICKY_KEY_TIMEOUT_MS=3000
2-8. Caps Word(キャップスワード)
自動解除されるCaps Lock。定数名などの入力に便利。
設定手順
1. キーをクリック
↓
2. Behavior: 「Caps Word」を選択
↓
3. パラメータなし(そのまま完了)
動作の詳細
Caps Wordを押すと:
1. 次のアルファベットが大文字になる
2. スペース、記号、数字を押すと自動解除
3. または、もう一度Caps Wordを押すと解除
通常のCaps Lockとの違い:
| 項目 | Caps Lock | Caps Word |
|---|---|---|
| 解除方法 | もう一度押す | 自動 |
| 記号入力時 | ONのまま | 自動OFF |
| 用途 | 長文の大文字入力 | 単語・定数名 |
使用例
例1: 定数名の入力
入力したい: MAX_BUFFER_SIZE
操作:
1. Caps Word を押す
2. "max_buffer_size" とタイプ
→ "MAX_BUFFER_SIZE" と入力される
3. Enterを押すと自動解除
例2: クラス名の入力
入力したい: MyClassName
操作:
1. Caps Word を押す
2. "m" → "M"
3. "y" → "Y"
4. "c" → "C"(ここで自動解除されない)
...
通常、CamelCaseでは使いにくい
Caps Wordの最適な用途:
- SCREAMING_SNAKE_CASE(定数名)
- UPPER_CASE(設定項目)
- 略語(HTTP、JSONなど)
不向きな用途:
- CamelCase(自動解除されてしまう)
- 長い文章(スペースで解除される)
配置場所の推奨
推奨配置:
1. Caps Lock の位置
→ 従来のCaps Lockの代替として
2. 記号レイヤーの目立つ位置
→ プログラミング時の定数入力用
3. 両手の親指近く
→ 素早く押せる位置
カスタマイズ
Caps Wordの継続条件をカスタマイズできます。
// config ファイル
caps_word {
continue-list = <
UNDERSCORE MINUS
N0 N1 N2 N3 N4 N5 N6 N7 N8 N9
>;
};
これにより、アンダースコアや数字を入力してもCaps Wordが解除されません。
2-9. Key Toggle(キートグル)
キーの押下状態をトグル。Alt+Tabの切り替えに最適。
設定手順
1. キーをクリック
↓
2. Behavior: 「Key Toggle」を選択
↓
3. Keycode: トグルするキー(通常はLALT)
↓
4. 完了!
動作の詳細
1回目: キーを"押した状態"にする
2回目: キーを"離した状態"にする
使用例
例1: Alt+Tabナビゲーション
設定:
キー1: Key Toggle → LALT
キー2: Key Press → TAB
使い方:
1. キー1を押す → Altが押しっぱなしに
2. キー2を連打 → タブ切り替え
3. キー1をもう一度押す → Alt解除
例2: Shiftを固定してドラッグ選択
設定:
キー: Key Toggle → LSHIFT
使い方:
1. キーを押す → Shift固定
2. 矢印キーで範囲選択
3. キーをもう一度押す → Shift解除
例3: ゲームでのダッシュ
設定:
キー: Key Toggle → LSHIFT
使い方:
ゲームで走り続けたい時
1. キーを押す → Shiftが押しっぱなし
2. WASDで移動 → ダッシュ状態継続
3. キーをもう一度押す → 通常速度に
実践的なパターン
パターンA: 専用レイヤーに配置
Layer 3(機能レイヤー):
- Alt Toggle
- Shift Toggle
- Ctrl Toggle
使い方:
レイヤー3に切り替えてから使用
誤操作を防ぐ
パターンB: LED表示と組み合わせ
RGB LEDでトグル状態を視覚化:
- Alt ON: 青色点灯
- Shift ON: 赤色点灯
- Ctrl ON: 緑色点灯
注意点
重要な注意:
Key Toggleで有効にしたキーは、もう一度押すまで解除されません。忘れると、その後の全ての入力にモディファイアが付きます。
症状の例:
- Alt Toggle を解除し忘れる → 全てのキーがメニュー操作に
- Shift Toggle を解除し忘れる → 全ての文字が大文字&記号に
- Ctrl Toggle を解除し忘れる → 全てのキーがショートカットに
対策:
- RGB LED で状態を表示
- タイムアウト機能を設定(自動解除)
- 慣れるまでは使わない
2-10. Transparent(トランスペアレント)
下のレイヤーに処理を渡す。レイヤー設計の基本。
設定手順
1. キーをクリック
↓
2. Behavior: 「Transparent」を選択
↓
3. パラメータなし(完了)
動作の詳細
Layer 2で Transparent のキーを押すと:
↓
Layer 1 を確認
├─ キーが設定されている → その動作を実行
└─ Transparent → Layer 0 を確認
├─ キーが設定されている → その動作を実行
└─ ...
使用例
例1: アルファベットをそのまま使う
Layer 0(ベースレイヤー):
A B C D E F G H I J K L M ...
Layer 1(記号レイヤー):
! @ # $ % ^ & * ( ) ...
A B C D → Transparent(Layer 0のABCDをそのまま使う)
例2: 一部のキーだけ変更
Layer 0:
全てのアルファベット+記号
Layer 2(ナビゲーションレイヤー):
H J K L → 左下上右の矢印
その他 → Transparent(Layer 0と同じ)
例3: 複数レイヤーの重ね合わせ
Layer 0: 基本配置
Layer 1: 数字・記号(アルファベットはTransparent)
Layer 2: ナビゲーション(数字・記号はTransparent)
Layer 3: 機能(全てTransparent、一部だけ定義)
実践的なパターン
パターンA: 最小限の定義
レイヤーを作る時、基本は全てTransparent
変更したいキーだけ定義する
メリット:
- 設定が簡単
- メンテナンスが楽
- 意図しない動作が少ない
パターンB: ベースレイヤーの再利用
Layer 0: QWERTY配列
Layer 5: QWERTY + テンキー
→ アルファベットは全てTransparent
右手だけテンキーを定義
パターンC: 部分的な上書き
Layer 0: 標準配置
Layer 1: ほぼTransparent
→ Enterだけ特殊な動作に変更
Noneとの違い
| Behavior | 動作 | 使用場面 |
|---|---|---|
| Transparent | 下のレイヤーを使う | 通常はこちら |
| None | 何もしない | キーを無効化したい時 |
例:
Layer 0: A(Aキー)
Layer 1: Transparent → Layer 0のAが有効
Layer 2: None → 何も起こらない
2-11. None(なし)
何もしない。キーを完全に無効化。
設定手順
1. キーをクリック
↓
2. Behavior: 「None」を選択
↓
3. パラメータなし(完了)
使用例
例1: 使わないキーを無効化
40%キーボードで余ったキー:
Behavior: None
効果:
誤って押しても何も起こらない
例2: ゲームレイヤーで特定キーを無効化
Layer 4(ゲームモード):
Win キー → None
効果:
ゲーム中に誤ってWinキーを押してもメニューが開かない
例3: 子供用の安全設定
Layer 5(子供モード):
危険なキー(Del, F4など)→ None
効果:
重要なファイルを削除されるリスクを減らす
Transparentとの使い分け
使わないキー:
- 完全に反応させたくない → None
- 下のレイヤーの動作を使いたい → Transparent
一時的な無効化:
- 特定のレイヤーでだけ無効 → None
- 全体的に無効 → キーマップから削除
第3章: システム制御とハードウェア機能
3-1. Reset(リセット)
ファームウェアの再起動またはブートローダーモード。
設定手順
1. キーをクリック
↓
2. Behavior: 「Reset」を選択
↓
3. Type: リセットタイプを選択
- Reset: ファームウェア再起動
- Bootloader: 書き込みモード
↓
4. 完了!
2つのリセットの違い
Reset(システムリセット):
動作: キーボードを再起動
用途:
- 動作がおかしい時
- 設定を再読み込みしたい時
- Bluetoothの再接続
ファームウェアは消えない
Bootloader(ブートローダーリセット):
動作: ファームウェア書き込みモードに移行
用途:
- 新しいファームウェアを書き込む時
- キーマップを物理的に更新する時
USBストレージとして認識される
配置の推奨
Reset:
配置: Layer 3など、深い層
理由: 誤操作を防ぐため
推奨:
- レイヤー3 + 右上
- 2キー同時押し(コンボ)
Bootloader:
配置: Layer 3など、さらに深い層
理由: 絶対に誤操作してはいけない
推奨:
- レイヤー3 + 左上
- 3キー同時押し(コンボ)
- 物理リセットスイッチを使う
重要な注意:
Bootloaderキーを誤って押すと、キーボードが書き込みモードになり、通常の入力ができなくなります。
対策:
- 深いレイヤーに配置
- 周囲に何もキーを配置しない
- または、物理リセットスイッチを使う
実践的な配置例
Layer 3(機能レイヤー):
┌─────┬─────┬─────┬─────┬─────┐
│Boot │ │ │ │Reset│
├─────┼─────┼─────┼─────┼─────┤
│ │ BT │ BT │ BT │ │
│ │ Sel0│ Sel1│ Sel2│ │
├─────┼─────┼─────┼─────┼─────┤
│ │ │ │ │ │
└─────┴─────┴─────┴─────┴─────┘
配置の意図:
- 左上: Bootloader(最も使わない)
- 右上: Reset(時々使う)
- 中央: Bluetooth(よく使う)
3-2. Bluetooth(Bluetooth)
Bluetooth接続の管理。複数デバイスの切り替え。
設定手順
1. キーをクリック
↓
2. Behavior: 「Bluetooth」を選択
↓
3. Action: アクションを選択
- Clear: 現在の接続をクリア
- Next Profile: 次のプロファイル
- Previous Profile: 前のプロファイル
- Select Profile 0〜4: 特定のプロファイルを選択
↓
4. 完了!
アクションの詳細
Clear(接続クリア):
動作: 現在のBluetooth接続情報を削除
用途:
- ペアリングをやり直したい時
- 接続がうまくいかない時
- デバイスを変更したい時
注意:
もう一度ペアリングが必要
Next Profile / Previous Profile:
動作: 登録されているプロファイルを順番に切り替え
用途:
- 複数デバイスを順番に使う
- どのプロファイルか忘れた時
プロファイル:
0 → 1 → 2 → 3 → 4 → 0 ...(ループ)
Select Profile 0〜4:
動作: 指定したプロファイルに直接切り替え
用途:
- 特定のデバイスに素早く切り替え
- マルチデバイス環境
プロファイル数: 最大5個(0〜4)
実践的なマルチデバイス設定
3デバイス構成:
Profile 0: デスクトップPC
Profile 1: ノートPC
Profile 2: タブレット/スマホ
キーマップ設定:
Layer 3(機能レイヤー):
┌─────┬─────┬─────┬─────┬─────┐
│ │ 1 │ 2 │ 3 │Clear│
│ │ PC │Laptop│Tablet│ │
├─────┼─────┼─────┼─────┼─────┤
│ │ BT │ BT │ BT │ BT │
│ │ Sel0│ Sel1│ Sel2│ Clr │
└─────┴─────┴─────┴─────┴─────┘
接続手順(初回)
手順:
1. キーボード側: BT Select Profile 0 を押す
2. PC側: Bluetooth設定を開く
3. キーボードが表示されるまで待つ(数秒)
4. ペアリング(PINコードは通常不要)
5. 接続完了!
2台目:
1. キーボード側: BT Select Profile 1 を押す
2. 2台目のデバイスで同じ手順
トラブルシューティング
問題1: 接続できない
対処法:
1. BT Clear を押す
2. デバイス側でキーボードを削除
3. もう一度ペアリング
問題2: 切り替えができない
対処法:
1. どのプロファイルに接続されているか確認
2. BT Next で順番に試す
3. それでもダメなら各プロファイルをClear
問題3: 接続が不安定
対処法:
1. バッテリーを確認(低電圧で不安定)
2. 距離を近づける(10m以内推奨)
3. 他のBluetooth機器から離す
5デバイスフル活用
Profile 0: メインPC(常時接続)
Profile 1: サブPC(在宅勤務用)
Profile 2: タブレット(読書・動画用)
Profile 3: スマホ(外出先用)
Profile 4: テレビ用PC(リビング用)
切り替え:
Layer 3で数字キー1〜5を押すだけ
3-3. Output Selection(出力選択)
USB/Bluetooth出力の切り替え。
設定手順
1. キーをクリック
↓
2. Behavior: 「Output」を選択
↓
3. Output: 出力先を選択
- USB: USB接続に切り替え
- Bluetooth: Bluetooth接続に切り替え
- Toggle: USB⇔Bluetoothをトグル
↓
4. 完了!
使用例
例1: デスクでUSB、外出先でBluetooth
設定:
キー: Output → Toggle
使い方:
家ではUSB接続(安定・低レイテンシ)
外出先ではBluetooth(ワイヤレス)
キー1つで切り替え
例2: 複数PC環境
設定:
キー1: Output → USB
キー2: Output → Bluetooth
使い方:
メインPC: USB接続(有線)
サブPC: Bluetooth接続(無線)
例3: バッテリー節約
設定:
キー: Output → USB
使い方:
Bluetoothオフにしてバッテリー節約
USB接続時のみ使用
USB vs Bluetooth
| 項目 | USB | Bluetooth |
|---|---|---|
| レイテンシ | 低い(1ms以下) | やや高い(5-10ms) |
| 安定性 | 非常に安定 | 時々切れる |
| バッテリー | 不要 | 消費する |
| 配線 | ケーブル必要 | ワイヤレス |
| 複数デバイス | 不可 | 可能(5台まで) |
推奨用途:
- ゲーム、プログラミング → USB
- 普通のタイピング、モバイル → Bluetooth
3-4. RGB Underglow(RGBアンダーグロー)
RGB LEDの制御。色・明るさ・エフェクト。
設定手順
1. キーをクリック
↓
2. Behavior: 「RGB Underglow」を選択
↓
3. Action: アクションを選択
↓
4. 完了!
全アクション一覧
基本制御:
| Action | 説明 | 使用頻度 |
|---|---|---|
Toggle |
ON/OFF切り替え | ★★★★★ |
On |
ONにする | ★★☆☆☆ |
Off |
OFFにする | ★★☆☆☆ |
色調整:
| Action | 説明 | 効果 |
|---|---|---|
Increase Hue |
色相アップ | 赤→黄→緑→青→紫... |
Decrease Hue |
色相ダウン | 逆回転 |
Increase Saturation |
彩度アップ | 色が鮮やかに |
Decrease Saturation |
彩度ダウン | 色が淡く |
明るさ:
| Action | 説明 | 使用頻度 |
|---|---|---|
Increase Brightness |
明るく | ★★★★☆ |
Decrease Brightness |
暗く | ★★★★☆ |
エフェクト:
| Action | 説明 | 使用頻度 |
|---|---|---|
Cycle Effect |
エフェクト切り替え | ★★★★☆ |
Cycle Effect Reverse |
逆方向切り替え | ★★☆☆☆ |
Increase Speed |
エフェクト速度アップ | ★★★☆☆ |
Decrease Speed |
エフェクト速度ダウン | ★★★☆☆ |
エフェクトの種類
ZMKで利用可能な主なエフェクト:
1. Solid Color(単色)
2. Breathe(呼吸)- ゆっくり明滅
3. Spectrum(スペクトラム)- 色相が変化
4. Swirl(渦巻き)- 回転するように色が変化
5. Rainbow(レインボー)- 虹色グラデーション
実践的な設定例
例1: シンプルなコントロール
Layer 3(機能レイヤー):
F9 → RGB Toggle
F10 → RGB Brightness Down
F11 → RGB Brightness Up
F12 → RGB Effect Cycle
例2: 詳細コントロール
Layer 3:
┌────┬────┬────┬────┬────┐
│ On │Off │Tog │ H+ │ H- │
├────┼────┼────┼────┼────┤
│ S+ │ S- │ B+ │ B- │Eff │
├────┼────┼────┼────┼────┤
│Spd+│Spd-│ │ │ │
└────┴────┴────┴────┴────┘
例3: クイックプリセット
1キー: RGB設定1(赤・低輝度)
2キー: RGB設定2(青・中輝度)
3キー: RGB設定3(虹色・高輝度)
※マクロで実現
RGBの実用的な使い方
用途1: レイヤー表示
Layer 0: 消灯
Layer 1: 青色
Layer 2: 緑色
Layer 3: 赤色
→ 今どのレイヤーか一目でわかる
用途2: Caps Lock表示
Caps Lock ON: 赤色点灯
Caps Lock OFF: 消灯
用途3: Bluetooth接続状態
USB接続: 緑色
Bluetooth接続: 青色
未接続: 赤色点滅
用途4: バッテリー残量
100-80%: 緑色
80-50%: 黄色
50-20%: オレンジ
20-0%: 赤色
バッテリー節約:
RGBを常時点灯するとバッテリー消費が激しくなります。
消費電力の目安:
- RGB OFF: 数mA
- RGB 低輝度: 10-20mA
- RGB 高輝度: 50-100mA
Bluetooth使用時は、必要な時だけ点灯させるのが賢明です。
3-5. Backlight(バックライト)
キーバックライトの制御。
設定手順
1. キーをクリック
↓
2. Behavior: 「Backlight」を選択
↓
3. Action: アクションを選択
- Toggle: ON/OFF
- On: ON
- Off: OFF
- Increase: 輝度アップ
- Decrease: 輝度ダウン
- Cycle: 輝度サイクル
↓
4. 完了!
RGB Underglowとの違い
| 項目 | Backlight | RGB Underglow |
|---|---|---|
| 位置 | キー内部・下部 | キーボード下面 |
| 色 | 単色(白が多い) | フルカラー |
| 用途 | キートップ照明 | 装飾・雰囲気 |
| 視認性 | ★★★★★ | ★★☆☆☆ |
使用例
Layer 3(機能レイヤー):
F5 → Backlight Toggle
F6 → Backlight Decrease
F7 → Backlight Increase
3-6. Macro(マクロ)
複数のキー操作を順番に実行。
概要
マクロは、GUI上では名前だけを指定し、実際の動作はコードファイルで定義します。
GUIでの設定手順
1. キーをクリック
↓
2. Behavior: 「Macro」を選択
↓
3. Macro name: マクロ名を入力(例: "email")
↓
4. 「Edit Macro」をクリック
↓
5. コードエディタが開く
↓
6. マクロを記述(次のセクションで詳細解説)
マクロの記述方法
マクロは .keymap ファイルに記述します。
基本構文:
macros {
マクロ名: マクロ名 {
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
bindings
= <¯o_press ACTION1>
, <¯o_tap ACTION2>
, <¯o_release ACTION3>
;
};
};
3種類のアクション:
-
macro_press: キーを押す(離さない) -
macro_tap: キーを押して離す -
macro_release: キーを離す
実践例
例1: メールアドレス入力
macros {
email: email {
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
bindings
= <¯o_tap &kp Y &kp O &kp U &kp R>
, <¯o_tap &kp AT>
, <¯o_tap &kp E &kp X &kp A &kp M &kp P &kp L &kp E>
, <¯o_tap &kp DOT>
, <¯o_tap &kp C &kp O &kp M>
;
};
};
例2: "ZMK" を大文字で入力
macros {
zmk: zmk {
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
bindings
= <¯o_press &kp LSHIFT>
, <¯o_tap &kp Z &kp M &kp K>
, <¯o_release &kp LSHIFT>
;
};
};
例3: Ctrl+C, Ctrl+V(コピー&ペースト)
macros {
copy_paste: copy_paste {
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
bindings
= <¯o_press &kp LCTRL>
, <¯o_tap &kp C>
, <¯o_release &kp LCTRL>
, <¯o_pause_for_release>
, <¯o_press &kp LCTRL>
, <¯o_tap &kp V>
, <¯o_release &kp LCTRL>
;
};
};
高度な機能
待機時間:
<¯o_wait_time 100> // 100ms待機
キーを離すまで待つ:
<¯o_pause_for_release>
タップ時間の変更:
<¯o_tap_time 50> // タップ時間を50msに
よくあるマクロパターン
パターン1: 定型文
// "Hello, World!" を入力
bindings
= <¯o_tap &kp H &kp E &kp L &kp L &kp O>
, <¯o_tap &kp COMMA &kp SPACE>
, <¯o_tap &kp W &kp O &kp R &kp L &kp D>
, <¯o_tap &kp EXCL>
;
パターン2: ショートカット連打
// Ctrl+F → 検索ワード → Enter
bindings
= <¯o_press &kp LCTRL>
, <¯o_tap &kp F>
, <¯o_release &kp LCTRL>
, <¯o_wait_time 50>
, <¯o_tap &kp S &kp E &kp A &kp R &kp C &kp H>
, <¯o_tap &kp ENTER>
;
パターン3: ウィンドウ切り替え
// Alt+Tab → 下矢印×3 → Enter
bindings
= <¯o_press &kp LALT>
, <¯o_tap &kp TAB>
, <¯o_wait_time 100>
, <¯o_tap &kp DOWN &kp DOWN &kp DOWN>
, <¯o_tap &kp ENTER>
, <¯o_release &kp LALT>
;
マクロの制限:
- 日本語は入力できない(ASCIIのみ)
- 複雑すぎるマクロは動作が不安定
- 長すぎるマクロはメモリを消費
- 環境依存の動作がある
3-7. Mouse Emulation(マウスエミュレーション)
キーボードでマウス操作。
設定手順
1. キーをクリック
↓
2. Behavior: 「Mouse」を選択
↓
3. Mouse action: アクションを選択
- ボタン: Left Click, Right Click, Middle Click
- 移動: Move Up, Move Down, Move Left, Move Right
- スクロール: Scroll Up, Scroll Down, Scroll Left, Scroll Right
↓
4. 完了!
マウスボタン
| Action | 説明 | 使用頻度 |
|---|---|---|
Left Click |
左クリック | ★★★★★ |
Right Click |
右クリック | ★★★★☆ |
Middle Click |
中クリック | ★★★☆☆ |
Button 4 |
進む(ブラウザ) | ★★☆☆☆ |
Button 5 |
戻る(ブラウザ) | ★★☆☆☆ |
マウス移動
| Action | 説明 |
|---|---|
Move Up |
カーソルを上に |
Move Down |
カーソルを下に |
Move Left |
カーソルを左に |
Move Right |
カーソルを右に |
スクロール
| Action | 説明 |
|---|---|
Scroll Up |
上にスクロール |
Scroll Down |
下にスクロール |
Scroll Left |
左にスクロール |
Scroll Right |
右にスクロール |
実践的な配置例
例1: HJKLでマウス操作
Layer 4(マウスレイヤー):
┌────┬────┬────┬────┬────┐
│ │ │ │ │ │
├────┼────┼────┼────┼────┤
│ │ ← │ ↓ │ ↑ │ → │
│ │Left│Down│ Up │Right│
├────┼────┼────┼────┼────┤
│ │LClk│RClk│MClk│ │
└────┴────┴────┴────┴────┘
設定:
H → Mouse → Move Left
J → Mouse → Move Down
K → Mouse → Move Up
L → Mouse → Move Right
F → Mouse → Left Click
D → Mouse → Right Click
S → Mouse → Middle Click
例2: 左手マウス、右手クリック
Layer 4:
左手: WASD でマウス移動
右手: F/D/S でクリック
例3: スクロール専用
Layer 4:
H → Scroll Left
J → Scroll Down
K → Scroll Up
L → Scroll Right
速度調整
マウスの移動速度は config ファイルで調整できます。
CONFIG_ZMK_MOUSE_MOVE_SPEED=1000 // 移動速度
CONFIG_ZMK_MOUSE_SCROLL_SPEED=10 // スクロール速度
使用上の注意
注意点:
- マウスエミュレーションは補助的な機能です
- 細かい操作は難しい
- ゲームなどには不向き
- 一時的なマウス操作に便利
推奨用途:
- マウスが手元にない時
- 両手をキーボードから離したくない時
- 簡単なクリック操作
- スクロール
第4章: 実践的なキーマップ設計
4-1. レイヤー設計の基本原則
原則1: 階層を浅くする
悪い例(深すぎる):
Layer 0 → Layer 1 → Layer 2 → Layer 3 → Layer 4 → Layer 5
↓ ↓ ↓ ↓ ↓ ↓
ベース 記号A 記号B ナビA ナビB 機能
良い例(浅い):
Layer 0 → Layer 1(記号)
→ Layer 2(ナビゲーション)
→ Layer 3(機能)
理由:
- 深すぎると迷子になる
- 操作が複雑になる
- 覚えられない
原則2: レイヤーごとに明確な目的
✅ 良い例:
Layer 0: ベース(アルファベット)
Layer 1: 数字・基本記号
Layer 2: ナビゲーション・矢印キー
Layer 3: ファンクションキー・メディア
❌ 悪い例:
Layer 1: 数字と矢印キーと音量調整とBluetooth
(目的が混在している)
原則3: 頻度の高いものを近くに
頻度の高い操作:
- スペース、エンター → ベースレイヤー
- 数字、基本記号 → Layer 1(親指1つで到達)
- 矢印キー → Layer 2(親指1つで到達)
頻度の低い操作:
- ファンクションキー → Layer 3
- システム設定 → Layer 3
- リセット → Layer 3(深い位置)
4-2. 40%キーボードの完全設計例
レイヤー構成
Layer 0: ベースレイヤー(47キー)
Layer 1: 数字・記号レイヤー
Layer 2: ナビゲーション・編集レイヤー
Layer 3: ファンクション・システムレイヤー
Layer 0(ベースレイヤー)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│Tab│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Bsp│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│Esc│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │
│ │GUI│ALT│CTL│SFT│ │ │SFT│CTL│ALT│GUI│ │ ← ホームローモッド
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Sft│
└───┴───┴───┴───┼───┼───┼───┼───┼───┴───┴───┴───┘
│Ctl│L1 │L2 │L3 │Ctl│
│ │Spc│Ent│Bsp│ │
└───┴───┴───┴───┴───┘
設定詳細:
// ホームローモッド
A → Mod-Tap → LGUI, A
S → Mod-Tap → LALT, S
D → Mod-Tap → LCTRL, D
F → Mod-Tap → LSHIFT, F
J → Mod-Tap → RSHIFT, J
K → Mod-Tap → RCTRL, K
L → Mod-Tap → RALT, L
; → Mod-Tap → RGUI, SEMI
// 親指キー
左親指2 → Layer-Tap → Layer 1, SPACE
右親指1 → Layer-Tap → Layer 2, ENTER
右親指2 → Momentary Layer → Layer 3
Layer 1(数字・記号レイヤー)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │Del│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ " │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ │ \ │ | │ - │ = │ + │ [ │ ] │ { │ } │ ~ │ │
└───┴───┴───┴───┼───┼───┼───┼───┼───┴───┴───┴───┘
│ │███│ │ │ │ ← 親指キー(Hold)
└───┴───┴───┴───┴───┘
設定のポイント:
- 左手で数字1-5、右手で6-0
- プログラミングでよく使う記号を配置
- 親指のLayer-Tapを押している間有効
Layer 2(ナビゲーション・編集レイヤー)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ │ │ │ │ │ │ │ │ ↑ │ │ │Del│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ │GUI│ALT│CTL│SFT│ │Hom│ ← │ ↓ │ → │End│ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ │ │ │ │ │ │PgU│PgD│ │ │ │ │
└───┴───┴───┴───┼───┼───┼───┼───┼───┴───┴───┴───┘
│ │ │███│ │ │ ← 親指キー(Hold)
└───┴───┴───┴───┴───┘
設定のポイント:
- HJKLに矢印キーを配置(Vimスタイル)
- Home, End, PgUp, PgDnも配置
- 左手にモディファイアを残す(Shift+矢印で選択可能)
Layer 3(ファンクション・システムレイヤー)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ │BT0│BT1│BT2│BTC│ │ │Prv│PP │Nxt│ │F12│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│RGB│ │ │ │ │ │ │Mut│V- │V+ │ │Rst│
└───┴───┴───┴───┼───┼───┼───┼───┼───┴───┴───┴───┘
│ │ │ │███│ │ ← 親指キー(Hold)
└───┴───┴───┴───┴───┘
設定のポイント:
- ファンクションキーF1-F12
- Bluetooth切り替え(BT0-2, Clear)
- メディアキー(Prev, Play/Pause, Next, Mute, Vol-/+)
- システム(RGB, Reset)
4-3. 60%キーボードの設計例
60%キーボードは40%より余裕があるため、レイヤーを浅くできます。
レイヤー構成
Layer 0: ベース(QWERTYそのまま)
Layer 1: 矢印キー・ナビゲーション(Fnキーで到達)
Layer 2: システム・設定(深い位置)
Layer 0(ベース)
通常のQWERTY配置
ただし、右下端のキーを Fn(Momentary Layer 1)に変更
Layer 1(矢印・ナビ)
Fn + IJKL → 矢印キー
Fn + UO → Home, End
Fn + PG → PgUp, PgDn
Fn + 1-12 → F1-F12
第5章: トラブルシューティング完全版
5-1. キーマップが反映されない
チェックリスト
□ 「Commit Changes」をクリックしたか?
□ GitHub Actionsでビルドが成功したか?
□ ファームウェアをダウンロードしたか?
□ 正しい.uf2ファイルを書き込んだか?
(left.uf2を左に、right.uf2を右に)
□ キーボードを再起動したか?
□ Bluetoothの場合、接続を切って再接続したか?
詳細な対処法
Step 1: ビルドログの確認
1. GitHubリポジトリページに移動
2. 「Actions」タブをクリック
3. 最新のワークフローを開く
4. ログを確認
緑のチェック: 成功
赤の×: 失敗 → ログでエラーを確認
Step 2: よくあるビルドエラー
エラー1: "unknown key code"
原因: 存在しないキーコードを指定
解決: キーコードのスペルを確認
エラー2: "layer not found"
原因: 存在しないレイヤー番号を指定
解決: レイヤー番号を確認(0から始まる)
エラー3: "syntax error"
原因: マクロなどの構文エラー
解決: コードを見直す
Step 3: ファームウェアの書き込み
1. キーボードをBootloaderモードにする
方法A: 物理リセットスイッチを押す
方法B: Bootloaderキーを押す
2. PCにUSBストレージとして認識される
Windowsの場合: エクスプローラーに表示
macOSの場合: Finderに表示
Linuxの場合: /media に表示
3. .uf2ファイルをドラッグ&ドロップ
4. 自動的に書き込みが開始
5. 完了すると自動的に再起動
5-2. モディファイアの誤動作
問題パターンと対策
パターン1: タイピング中にモディファイアが発動
症状: "asdf" と入力したいのに、たまにAltが反応
原因: tapping-term-ms が短すぎる
解決策:
1. configファイルで時間を延長
CONFIG_ZMK_BEHAVIOR_HOLD_TAP_TAPPING_TERM_MS=250
2. または、個別にキーの時間を調整
bhm {
tapping-term-ms = <250>;
};
パターン2: モディファイアが効かない
症状: 長押ししてもShiftなどが反応しない
原因:
1. tapping-term-ms が長すぎる
2. flavor が tap-preferred
解決策:
1. 時間を短くする(200ms程度)
2. flavor を balanced に変更
パターン3: ローリング入力で誤動作
症状: "th" と速く入力すると、Shiftが発動(Dキーを使う場合)
原因: flavor が hold-preferred または balanced
解決策:
flavor を tap-unless-interrupted に変更
flavorの選び方(再掲)
タイピングが速い人:
→ tap-unless-interrupted
普通の速度の人:
→ balanced(デフォルト)
ゆっくりタイピングする人:
→ tap-preferred または hold-preferred
5-3. レイヤーに関する問題
問題1: レイヤーが切り替わらない
原因と対策:
原因A: レイヤー番号が間違っている
対策: レイヤータブで番号を確認(0, 1, 2, 3...)
原因B: キーを長押ししていない
対策: もっと長く押す(200ms以上)
原因C: 他のキーと同時に押している
対策: 確実に1キーずつ押す
問題2: レイヤーから戻れない
症状: Toggle LayerでONにしたレイヤーからベースに戻れない
原因: もう一度同じキーを押す必要がある
対策:
1. もう一度Toggleキーを押す
2. または、全てのレイヤーにTo Layer 0を配置
推奨位置: ESC
問題3: 意図しないレイヤーになる
症状: 突然キー配置が変わってしまう
原因: Toggle LayerやTo Layerを誤って押した
対策:
1. ESC(To Layer 0)を押す
2. キーボードを再起動
3. Toggle/To Layerを深い層に移動
5-4. Bluetoothの問題
問題1: ペアリングできない
対策手順:
1. キーボード側: BT Clear を押す
2. デバイス側: Bluetooth設定を開く
3. キーボードを「削除」または「接続解除」
4. キーボード側: BT Select Profile X を押す
5. デバイス側: 再度ペアリング
問題2: 接続が頻繁に切れる
原因と対策:
原因A: バッテリー残量が少ない
対策: 充電する
原因B: 距離が遠い
対策: 10m以内に近づける
原因C: 障害物がある
対策: 金属製の机や壁を避ける
原因D: 他のBluetooth機器の干渉
対策: 他の機器から離す、2.4GHz帯を避ける
問題3: 複数デバイスの切り替えがうまくいかない
対策:
1. 各プロファイルを一度クリア
2. 1つずつペアリングし直す
3. プロファイル番号を覚えておく
- 0: デスクトップ
- 1: ノートPC
- 2: タブレット
5-5. その他のよくある問題
問題1: 一部のキーが反応しない
原因と対策:
原因A: そのキーがNoneまたはTransparent
対策: Key Pressなどに変更
原因B: ハードウェアの問題
対策: 他のキーと入れ替えてテスト
原因C: ファームウェアのバグ
対策: ZMKを最新版に更新
問題2: RGB LEDが光らない
原因と対策:
原因A: 設定でOFFになっている
対策: RGB Toggleを押す
原因B: configで無効化されている
対策: CONFIG_ZMK_RGB_UNDERGLOW=y を確認
原因C: ハードウェアの問題
対策: 配線やLEDを確認
問題3: キーが連続入力される(チャタリング)
原因と対策:
原因A: スイッチの劣化
対策: スイッチを交換
原因B: debounce時間が短い
対策: configで延長
CONFIG_ZMK_DEBOUNCE_PRESS_MS=10
CONFIG_ZMK_DEBOUNCE_RELEASE_MS=10
第6章: 高度なテクニックとTips
6-1. 条件付きレイヤー(Tri-Layer)
2つのレイヤーを同時にアクティブにすると、3つ目のレイヤーが自動で有効になる機能です。
設定方法
GUI上では設定できないため、.keymapファイルを直接編集します。
conditional_layers {
compatible = "zmk,conditional-layers";
tri_layer {
if-layers = <1 2>; // Layer 1とLayer 2が両方ON
then-layer = <3>; // Layer 3を自動でON
};
};
実践例
例1: 記号+ナビゲーション = 機能レイヤー
左親指: Layer 1(記号)
右親指: Layer 2(ナビゲーション)
両方押す: Layer 3(機能レイヤー)が自動で有効
Layer 3の内容:
- Bluetooth切り替え
- RGB制御
- リセット
- メディアキー
使用感:
普段:
- 左親指 → 記号入力
- 右親指 → 矢印キー操作
両方同時:
- 機能レイヤーにアクセス
- わざわざ別のキーを押す必要がない
例2: 数字+F-keys = システムレイヤー
if-layers = <1 4>;
then-layer = <5>;
Layer 1: 数字
Layer 4: ファンクションキー
Layer 5: システム設定
6-2. コンボ(Combos)
複数のキーを同時に押すと、別のキーが発動する機能です。
設定方法
.keymapファイルで設定します。
combos {
compatible = "zmk,combos";
combo_esc {
timeout-ms = <50>; // 反応する時間(50ms以内に同時押し)
key-positions = <0 1>; // キー位置0と1
bindings = <&kp ESC>; // ESCが発動
};
};
key-positionsの番号
キーボードの物理的な位置に対応する番号です。
40%キーボードの例:
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │10 │11 │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│12 │13 │14 │15 │16 │17 │18 │19 │20 │21 │22 │23 │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│24 │25 │26 │27 │28 │29 │30 │31 │32 │33 │34 │35 │
└───┴───┴───┴───┼───┼───┼───┼───┼───┴───┴───┴───┘
│36 │37 │38 │39 │
└───┴───┴───┴───┘
実践例
例1: QWでESC
combo_esc {
timeout-ms = <50>;
key-positions = <1 2>; // Q と W
bindings = <&kp ESC>;
};
例2: JKでEnter
combo_enter {
timeout-ms = <50>;
key-positions = <19 20>; // J と K
bindings = <&kp ENTER>;
};
例3: DFでTab
combo_tab {
timeout-ms = <50>;
key-positions = <15 16>; // D と F
bindings = <&kp TAB>;
};
例4: 3キー同時押しでBootloader
combo_bootloader {
timeout-ms = <50>;
key-positions = <0 11 36>; // 左上 + 右上 + 左親指
bindings = <&bootloader>;
};
コンボの設計ポイント
良いコンボ:
- 押しやすい2キーの組み合わせ
- 通常のタイピングで同時に押さないキー
- 左右別々のキー(片手で押さない)
悪いコンボ:
- 通常のタイピングで誤発動するキー
例: TH("the"を打つ時に誤発動) - 物理的に押しにくい組み合わせ
例: 左上と右下
推奨コンボ位置:
ホームロー同時押し:
- DF, JK → よく使う機能
- AS, KL → 中程度の機能
トップロー同時押し:
- QW, OP → 特殊な機能
縦の同時押し:
- QA, PL → さらに特殊
6-3. センサー(ロータリーエンコーダー)
ロータリーエンコーダーを使う場合の設定です。
基本設定
.keymapファイルで設定します。
&sensors {
triggers-per-rotation = <36>; // 1回転あたりのクリック数
};
キーマップでの使用
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
構文:
&inc_dec_kp キー1 キー2
- キー1: 時計回りで発動
- キー2: 反時計回りで発動
実践例
例1: 音量調整
// Layer 0
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
例2: 画面スクロール
// Layer 1
sensor-bindings = <&inc_dec_kp UP DOWN>;
例3: レイヤーごとに異なる機能
// Layer 0: 音量
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
// Layer 1: スクロール
sensor-bindings = <&inc_dec_kp UP DOWN>;
// Layer 2: 水平スクロール
sensor-bindings = <&inc_dec_kp LEFT RIGHT>;
// Layer 3: 明るさ
sensor-bindings = <&inc_dec_kp C_BRI_UP C_BRI_DN>;
例4: モディファイア付き
// Ctrl+Z(アンドゥ)/ Ctrl+Y(リドゥ)
sensor-bindings = <&inc_dec_kp LC(Z) LC(Y)>;
6-4. OSごとの最適化
Windows向け設定
重視するショートカット:
- Win+L(ロック)
- Win+D(デスクトップ表示)
- Ctrl+Shift+Esc(タスクマネージャー)
- Alt+F4(アプリ終了)
推奨設定:
- LGUIをWinキーとして配置
- Ctrl+Shift+Escをマクロ化
macOS向け設定
重視するショートカット:
- Cmd+Space(Spotlight)
- Cmd+Tab(アプリ切り替え)
- Cmd+`(ウィンドウ切り替え)
- Cmd+W(ウィンドウを閉じる)
推奨設定:
- LGUIをCmdキーとして配置
- Cmd+Q(アプリ終了)に注意
- Mission Control用のキー配置
Linux向け設定
重視するショートカット:
- Ctrl+Alt+T(ターミナル)
- Super(メタキー)
- 各ウィンドウマネージャー固有のショートカット
推奨設定:
- ディストリビューションに応じてカスタマイズ
- Superキーの配置に注意
6-5. 効率的なキーマップのメンテナンス
バージョン管理
推奨:
- 大きな変更の前にブランチを作成
- コミットメッセージを丁寧に書く
- 定期的にバックアップ
例:
git branch experiment-homerow-mods
git checkout experiment-homerow-mods
# 実験的な変更を加える
# 良ければmainにマージ、ダメなら破棄
変更履歴の記録
Markdown形式でCHANGELOG.mdを作成:
# Changelog
## 2024-03-20
- ホームローモッドを追加
- tapping-term-msを200→250に変更
## 2024-03-15
- Layer 3にメディアキーを追加
- Bluetooth切り替えを整理
## 2024-03-10
- 初期設定完了
定期的な見直し
1週間ごと:
- 使いにくいキーを確認
- 誤入力が多いキーを調整
1ヶ月ごと:
- レイヤー構成を見直し
- 使わない機能を削除
3ヶ月ごと:
- 大幅な再設計を検討
- 新しいBehaviorを試す
第7章: よくある質問(FAQ)
Q1. どのキーマップが最適ですか?
A. 人によって異なります。以下を参考に自分で試行錯誤してください。
プログラマー:
- ホームローモッド採用
- 記号レイヤーを充実
- マクロで定型コード
ライター:
- シンプルな配置
- ナビゲーションを重視
- メディアキーは不要
ゲーマー:
- 左手に全ての機能
- レイテンシ重視(USB接続)
- マクロでスキル発動
Q2. ホームローモッドは必須ですか?
A. 必須ではありませんが、慣れると非常に便利です。
メリット:
- 手の移動が少ない
- 効率的
- 小型キーボードに最適
デメリット:
- 慣れるまで誤入力が多い
- 設定が難しい
- 万人向けではない
推奨:
まずは使わずに基本配置を作り、慣れてから導入。
Q3. レイヤーは何個必要ですか?
A. 3-4個が一般的です。
最小構成(2個):
- Layer 0: ベース
- Layer 1: 記号・ナビ全部
標準構成(3-4個):
- Layer 0: ベース
- Layer 1: 記号
- Layer 2: ナビゲーション
- Layer 3: 機能・システム
複雑な構成(5個以上):
- 上級者向け
- 管理が大変
- 初心者は避ける
Q4. マクロで日本語を入力できますか?
A. できません。マクロはASCII文字のみです。
代替案:
- IME切り替え(LANG1, LANG2)を使う
- 日本語入力はIMEに任せる
- 英数字の定型文のみマクロ化
Q5. 他の人のキーマップを参考にしたい
A. 以下のリソースを参照してください。
GitHub:
-
zmk-configで検索 - 人気のキーボードのリポジトリを見る
- Corne
- Lily58
- Kyria
コミュニティ:
- r/ErgoMechKeyboards(Reddit)
- ZMK Discord
- 日本語コミュニティ(Discord, Slack)
Q6. ファームウェアの更新頻度は?
A. 必要な時だけで問題ありません。
更新するタイミング:
- 新機能を使いたい時
- バグが修正された時
- セキュリティアップデート時
更新しなくて良い時:
- 現状で満足している
- 特に問題がない
Q7. バッテリー持続時間はどのくらい?
A. 使い方次第ですが、目安:
RGB OFF:
- 1-3ヶ月
RGB ON(低輝度):
- 1-2週間
RGB ON(高輝度):
- 数日
省電力のコツ:
- RGBを必要な時だけON
- Bluetooth接続を1つに絞る
- スリープ設定を短くする
Q8. 分割キーボードの左右で設定が違う?
A. いいえ、同じファームウェアです。
仕組み:
- 左右は通信して役割を判断
- どちらもメインになれる
- 片方だけ接続しても動作(分割キーボードの場合)
まとめ
学習ロードマップ(再掲・詳細版)
第1週: 基礎(所要時間: 3-5時間)
Day 1-2: 環境構築
- GitHubアカウント作成
- ZMK Configリポジトリ作成
- Keymap Editorとの連携
Day 3-4: 基本操作
- Key Pressでアルファベット配置
- 数字・記号を配置
- 最初のCommit
Day 5-7: レイヤー入門
- Layer 1を作成(数字・記号)
- Layer-Tapで親指キー設定
- 動作確認
第2-3週: 中級(所要時間: 5-10時間)
Week 2: モディファイア
- Mod-Tapを理解
- ホームローモッドを試す
- tapping-term-msを調整
Week 3: レイヤー拡張
- Layer 2(ナビゲーション)追加
- Layer 3(機能)追加
- 条件付きレイヤーを試す
第4-8週: 上級(所要時間: 10-20時間)
Week 4-5: 最適化
- 使用頻度を分析
- よく使うキーを近くに配置
- 不要なキーを削除
Week 6-7: 高度な機能
- マクロを作成
- コンボを試す
- RGBで視覚化
Week 8: 完成とメンテナンス
- 完成形に仕上げる
- ドキュメント化
- バックアップ
最終チェックリスト
□ ベースレイヤーは快適にタイピングできるか?
□ 頻繁に使うキーは近くに配置されているか?
□ レイヤーの目的は明確か?
□ 誤入力は許容範囲内か?
□ Bluetooth切り替えは簡単か?
□ システム設定(Reset等)は安全な位置か?
□ 変更履歴を記録しているか?
□ バックアップは取っているか?
参考リンク(再掲)
- ZMK Keymap Editor: https://nickcoutsos.github.io/keymap-editor/
- ZMK公式ドキュメント: https://zmk.dev/docs
- キーコード一覧: https://zmk.dev/docs/keymaps/list-of-keycodes
- ビヘイビア一覧: https://zmk.dev/docs/keymaps/behaviors
- GitHub - ZMK Firmware: https://github.com/zmkfirmware/zmk
- ZMK Discord: https://zmk.dev/community/discord/invite
この記事が役に立ったら、いいね❤️やストック📚をお願いします!
質問やフィードバックはコメント欄でお気軽にどうぞ! 💬
あなたのキーマップ設計の成功を祈っています! 🎉⌨️