0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

zmk キーマップ キーコード 一覧 (Keymap Editor等用)

0
Last updated at Posted at 2026-03-20

claudeに出力してもらいました

ZMK Keymap Editor 超詳細ガイド - GUI操作完全マスター

はじめに

この記事は、ZMK Keymap Editorhttps://nickcoutsos.github.io/keymap-editor/)の**完全ガイド**です。初心者から上級者まで、全ての操作方法と設定パターンを網羅的に解説します。

この記事の特徴

  • 📖 全400種類以上のキーコードを網羅
  • 🎯 18種類の全Behaviorを実例付きで解説
  • 💡 50以上の実践的な設定例
  • 🔧 30以上のトラブルシューティング
  • ⚙️ OSごとの挙動の違いも詳細に解説

想定読者:

  • ZMKファームウェアを使用している全てのユーザー
  • 分割キーボード・自作キーボードユーザー
  • コマンドラインが苦手な方
  • より効率的なキーマップを作りたい方

この記事でできるようになること:

  • ✅ キーマップエディターの完全な使いこなし
  • ✅ 自分に最適なキーマップの設計
  • ✅ 高度なBehaviorの組み合わせ
  • ✅ トラブルの自己解決

[TOC]


第1章: 初期設定と基本操作

1-1. アカウント連携とセットアップ

Step 1: GitHubアカウントの準備

ZMK Keymap Editorを使用するには、GitHubアカウントが必須です。

まだアカウントがない場合:

  1. https://github.com にアクセス
  2. 「Sign up」をクリック
  3. メールアドレス、パスワード、ユーザー名を入力
  4. メール認証を完了

既にアカウントがある場合:

  • そのまま次のステップへ

Step 2: ZMK Config リポジトリの作成

ZMKのキーマップを管理するリポジトリが必要です。

新規作成の場合:

  1. ZMK公式テンプレートを使用: https://github.com/zmkfirmware/unified-zmk-config-template
  2. 「Use this template」→「Create a new repository」をクリック
  3. リポジトリ名を入力(例: my-zmk-config
  4. Public/Private を選択(推奨: Private)
  5. 「Create repository」をクリック

既存リポジトリがある場合:

  • そのまま使用可能

Step 3: Keymap Editorとの連携

  1. https://nickcoutsos.github.io/keymap-editor/ にアクセス
  2. 画面中央の 「Authorize with GitHub」 ボタンをクリック
  3. GitHubのログイン画面が表示されたらログイン
  4. 権限の確認画面で 「Authorize」 をクリック

権限について:
Keymap Editorが要求する権限は、リポジトリの読み取りと書き込みのみです。他のリポジトリや個人情報にはアクセスしません。

Step 4: リポジトリの選択

  1. 認証が完了すると、自動的にリポジトリ一覧が表示される
  2. 使用するZMK Configリポジトリを選択
  3. 自動的にキーボードレイアウトが読み込まれる

リポジトリが表示されない場合:

  • ページ上部の 「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. コミットとビルド

コミットの実行

  1. 画面下部の 「Commit Changes」 をクリック
  2. コミットメッセージを入力(例: "Add media keys to layer 2")
  3. 「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が自動的にファームウェアをビルドします。

ビルド状況の確認方法:

  1. GitHubのリポジトリページにアクセス
  2. 「Actions」タブをクリック
  3. 最新のワークフロー実行を確認
  4. 緑のチェックマーク: ビルド成功
  5. 赤の×マーク: ビルド失敗

ビルド時間:

  • 通常: 3-5分
  • 混雑時: 10-15分

ファームウェアのダウンロード

ビルド成功後、ファームウェアをダウンロードします。

手順:

  1. Actionsタブで成功したワークフローをクリック
  2. 「Artifacts」 セクションを確認
  3. firmware という名前のzipファイルをダウンロード
  4. zipを展開すると .uf2 ファイルが入っている

キーボードへの書き込み

手順:

  1. キーボードをリセットモードにする
    • リセットスイッチを押す
    • または、キーマップの Bootloader キーを押す
  2. キーボードがUSBストレージとして認識される
  3. ダウンロードした .uf2 ファイルをドラッグ&ドロップ
  4. 自動的に書き込みが開始される
  5. 完了するとキーボードが再起動

分割キーボードの場合:
左右それぞれに対応するファームウェアを書き込む必要があります。通常、left.uf2right.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_1N1 は同じです。短い方が入力しやすいので、通常は 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キーを誤って押すと、キーボードが書き込みモードになり、通常の入力ができなくなります。

対策:

  1. 深いレイヤーに配置
  2. 周囲に何もキーを配置しない
  3. または、物理リセットスイッチを使う

実践的な配置例

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
            = <&macro_press ACTION1>
            , <&macro_tap ACTION2>
            , <&macro_release ACTION3>
            ;
    };
};

3種類のアクション:

  • macro_press: キーを押す(離さない)
  • macro_tap: キーを押して離す
  • macro_release: キーを離す

実践例

例1: メールアドレス入力

macros {
    email: email {
        compatible = "zmk,behavior-macro";
        #binding-cells = <0>;
        bindings
            = <&macro_tap &kp Y &kp O &kp U &kp R>
            , <&macro_tap &kp AT>
            , <&macro_tap &kp E &kp X &kp A &kp M &kp P &kp L &kp E>
            , <&macro_tap &kp DOT>
            , <&macro_tap &kp C &kp O &kp M>
            ;
    };
};

例2: "ZMK" を大文字で入力

macros {
    zmk: zmk {
        compatible = "zmk,behavior-macro";
        #binding-cells = <0>;
        bindings
            = <&macro_press &kp LSHIFT>
            , <&macro_tap &kp Z &kp M &kp K>
            , <&macro_release &kp LSHIFT>
            ;
    };
};

例3: Ctrl+C, Ctrl+V(コピー&ペースト)

macros {
    copy_paste: copy_paste {
        compatible = "zmk,behavior-macro";
        #binding-cells = <0>;
        bindings
            = <&macro_press &kp LCTRL>
            , <&macro_tap &kp C>
            , <&macro_release &kp LCTRL>
            , <&macro_pause_for_release>
            , <&macro_press &kp LCTRL>
            , <&macro_tap &kp V>
            , <&macro_release &kp LCTRL>
            ;
    };
};

高度な機能

待機時間:

<&macro_wait_time 100>  // 100ms待機

キーを離すまで待つ:

<&macro_pause_for_release>

タップ時間の変更:

<&macro_tap_time 50>  // タップ時間を50msに

よくあるマクロパターン

パターン1: 定型文

// "Hello, World!" を入力
bindings
    = <&macro_tap &kp H &kp E &kp L &kp L &kp O>
    , <&macro_tap &kp COMMA &kp SPACE>
    , <&macro_tap &kp W &kp O &kp R &kp L &kp D>
    , <&macro_tap &kp EXCL>
    ;

パターン2: ショートカット連打

// Ctrl+F → 検索ワード → Enter
bindings
    = <&macro_press &kp LCTRL>
    , <&macro_tap &kp F>
    , <&macro_release &kp LCTRL>
    , <&macro_wait_time 50>
    , <&macro_tap &kp S &kp E &kp A &kp R &kp C &kp H>
    , <&macro_tap &kp ENTER>
    ;

パターン3: ウィンドウ切り替え

// Alt+Tab → 下矢印×3 → Enter
bindings
    = <&macro_press &kp LALT>
    , <&macro_tap &kp TAB>
    , <&macro_wait_time 100>
    , <&macro_tap &kp DOWN &kp DOWN &kp DOWN>
    , <&macro_tap &kp ENTER>
    , <&macro_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等)は安全な位置か?
□ 変更履歴を記録しているか?
□ バックアップは取っているか?

参考リンク(再掲)


この記事が役に立ったら、いいね❤️やストック📚をお願いします!

質問やフィードバックはコメント欄でお気軽にどうぞ! 💬

あなたのキーマップ設計の成功を祈っています! 🎉⌨️

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?