Vaydeer プログラマブルキーボードを Mac で使うなら、キー割り当ては マクロを json ファイルで作って読み込む 方法がいちばん確実でした。
理由は2つあります。アプリの録画機能は、修飾キーを押したままだと 3 や C を記録してくれません。さらに「テキスト」と「よく使うショートカット」は、筆者の Mac では割り当てたキーを押すと、なぜかアプリが落ちました。
この記事では、アプリの基本的な使い方、設定ファイル(.json と .prf)の中身、json に書くキー番号(keyCode)をまとめます。「Vaydeer プログラマブルキーボード 設定」で検索しても、手順を追える解説が見つからなかったためです。
Vaydeer プログラマブルキーボード
Vaydeer プログラマブルキーボードは、左手で使う有線のメカニカルキーボードです。キーにはあらかじめ機能がなく、専用アプリ「Vaydeer keyboard」で割り当てを作り、本体に書き込んで使います。Mac と Windows に対応しています。

Vaydeer プログラマブルキーボード 9キー ショートカットキーボード ゲーミング 片手 有線 メカニカル キーボードマクロ可能
4,399 円
アプリを起動すると、Vaydeer の4機種(1キー、4キー、6キー、9キー)が並ぶ画面が出ます。ここで9キーを選びます。

右上の歯車アイコンから開く設定画面では、ソフトとファームウェアのバージョン、言語、キーボードの種類を確認できます。キーボードの種類は English Keyboard、Deutsch Tastatur、Clavier anglais の3つです。

かんたんな使い方
基本の流れは4ステップです。
- USB で接続して、アプリを起動し、9キーを選ぶ
- 画面右の項目を、左の9キーにドラッグ&ドロップする
- 右上の「フラッシュキーボード」を押して、本体に書き込む
- 必要ならレイヤーを追加する
ドラッグ元は、右側に並ぶ9つのカテゴリです。下の画像は「ボタンの配置」から英字を割り当てた例です。

割り当てただけでは本体に反映されません。「フラッシュキーボード」を押し、「フラッシュ成功」と出れば書き込み完了です。

レイヤーは、左上の「Layer1」のメニューから「レイヤーを追加する」で増やせます。最大6レイヤーなので、9キー×6で最大54個の割り当てを持てます。
レイヤーを切り替えるには、後述する「Vaydeer keyboard」カテゴリの「前へ」「次へ」をキーに割り当てます。画面の左上には、現在の割り当てとレイヤー名が表示されます。

設定の種類
右側のカテゴリは次の9つです。
| アプリの項目 | 割り当てられるもの | 使い方 |
|---|---|---|
| ボタンの配置 | 英字、数字などの通常キー | 使ってない |
| マルチメディア | 再生/一時停止、音量、前の曲、次の曲、ミュート | 使ってない |
| よく使うショートカット | キーの組み合わせ。コピー、貼り付け、保存する、取り消すが標準で入っている | Mac では落ちる |
| テキスト | 定型文の入力 | Mac では落ちる |
| イグニッションスイッチ | URL、アプリ、ファイル、フォルダを開く | 使ってない |
| マウス機能 | 左・中・右ボタン、進む、戻る | 使ってない |
| システム機能 | Mission Control、Launchpad、Finder の検索、スクリーンショットメニューなど | 使ってない |
| マクロ実行ボタンの設定 | 待ち時間つきのキー操作の並び。押すと1回だけ実行、または押している間くり返す | メインで使う |
| Vaydeer keyboard | 前へ、次へ(レイヤー切替) | 使う |
筆者の用途は、入力が面倒なショートカットや文字列を一発で出すことです。そのため、通常キー、マルチメディア、マウス、システム機能は出番がありませんでした。


テキストとショートカットは、Mac ではキーを押すとアプリが落ちた
テキストかショートカットを割り当てたキーを押すと、Vaydeer keyboard が終了します。マクロを割り当てたキーでは落ちません。
テキストの編集画面には「保存モード:ソフトウェア」と表示されます。

ターミナルからアプリを直接起動して、落ちる瞬間のログを取りました。
"/Applications/Vaydeer keyboard.app/Contents/MacOS/Vaydeer keyboard"
テキスト /n を割り当てたキーを押すと、次のログのあとにクラッシュしました。
software mode output: /n
###### WARNING! The application running this script tries to access accessibility features to execute keyToggle! ... ######
[1008/203143.946099:WARNING:in_range_cast.h(38)] value -634136515 out of range
zsh: segmentation fault
アプリがキー入力を代行するライブラリ(nut.js)を呼んだ直後に、数値が範囲外だという警告が出て、そのまま異常終了しています。入力内容は /n の2文字で、特殊な文字ではありません。
アクセシビリティの許可はもともとオンでした。入力ソースを「ABC」に切り替えても、結果は変わりませんでした。ショートカットでも同じように落ちましたが、ログは取っていません。原因は特定できていません。
録画は、修飾キーを押したままだと「3」「C」「P」を記録しない
アプリの録画では、修飾キーを押したままの通常キーが記録されませんでした。
Shift + Cmd + 3(スクリーンショット)を録画すると、記録されたのは Shift、Left Command、Shift の3つで、末尾が 3 ではなく Shift になりました。

マクロの録画も同じで、キーを「押す→すぐ離す」の連続で記録します。下の画面では、Shift を離してから Option を押し、Option を離してから F を押しています。修飾キーが押されたままにならないので、同時押しとして働きません。

録画後に、保存した json を直接編集すれば直せます。次の章からは、録画を使わずに最初から json を書いて読み込む方法です。
設定ファイルのマクロは json で書ける
左上のレイヤーメニューには、設定ファイルを出し入れする項目があります。

「コンフィグをダウンロードする」と「コンフィグをインストールする」には、それぞれ2つの形式があります。
| ファイル | メニューの表示 | 中身 |
|---|---|---|
.json |
ソフトを予め設定ファイル | 右側の一覧に並ぶ、自作のプリセット(マクロ、テキスト、ショートカット) |
.prf |
キーボードのコンフィグファイル | レイヤーごとの、9キーの割り当て |
つまり json が「部品」、prf が「どのキーにどの部品を置いたか」です。標準で入っている項目(コピー、貼り付け、前へ、次へなど)は system: true になっていて、json には書き出されません。

json の構造
json の最上位は、platform と keyMap です。keyMap.types に、11種類のカテゴリが固定の順で並びます。
| name | title | type |
|---|---|---|
| Distribution-EN | KeyMap.Distribution | Key |
| Distribution-DE | KeyMap.Distribution | Key |
| Distribution-FR | KeyMap.Distribution | Key |
| MultiMedia | KeyMap.MultiMedia | Key |
| ShortcutKey | KeyMap.ShortcutKey | Key |
| Text | KeyMap.Text | Text |
| Trigger | KeyMap.Trigger | Trigger |
| Mousefunction | KeyMap.Mousefunction | Mouse |
| Systemfunction | KeyMap.Systemfunction | Key |
| MacroSettings | KeyMap.MacroSettings | Macro |
| Vaydeer | KeyMap.Vaydeer | Vaydeer |
icon は icon-keymap- に種類名を付けた文字列です(Distribution-EN などは icon-keymap-Distribution)。使わないカテゴリも、items を空の配列にして残します。マクロを書くのは、MacroSettings の items です。
{
"platform": "darwin",
"keyMap": {
"openItems": ["ShortcutKey"],
"types": [
{
"name": "MacroSettings",
"title": "KeyMap.MacroSettings",
"icon": "icon-keymap-MacroSettings",
"type": "Macro",
"items": [
{
"name": "Copy",
"macroType": "NoRepeat",
"actions": {
"down": [
{ "key": 91, "action": 0, "interval": 5 },
{ "key": 67, "action": 0, "interval": 5 },
{ "key": 67, "action": 1, "interval": 5 },
{ "key": 91, "action": 1, "interval": 5 }
]
},
"system": false,
"enable": true
}
]
}
]
}
}
上の例は説明用に MacroSettings だけを残しています。実際のファイルには、11種類すべてを並べます。
マクロの各項目の意味は次のとおりです。
| 項目 | 意味 |
|---|---|
name |
右側の一覧とキーに表示される名前 |
macroType |
NoRepeat は「キーを押したままでも1回だけ実行」。 |
actions.down |
キー操作の並び。上から順に実行される |
key |
キー番号(keyCode) |
action |
0 が押す、1 が離す |
interval |
次の操作までの待ち時間(ミリ秒) |
修飾キーを使う操作は、「修飾キーを押す → 通常キーを押す → 通常キーを離す → 修飾キーを逆の順で離す」の順に書きます。
| 入力したいもの | 操作の並び(key と action) |
|---|---|
| Cmd + C | 91↓ 67↓ 67↑ 91↑ |
| Shift + Cmd + P | 16↓ 91↓ 80↓ 80↑ 91↑ 16↑ |
/copy と打つ |
191↓↑ 67↓↑ 79↓↑ 80↓↑ 89↓↑(1キーずつ押して離す) |
バックスラッシュと n |
18↓ 220↓ 220↑ 18↑ 78↓↑ |
最後の行は、Option を押しながら 220(¥ キー)でバックスラッシュを出し、続けて n を打つ操作です。筆者の Mac では、これで「バックスラッシュ + n」の2文字が入力されます。入力ソースやキー配列によって、出る文字は変わる可能性があります。
prf の構造
prf は、layers の配列に、レイヤーごとの9キーが入っています。キーの順は、左上から右へ、行ごとです。
{
"platform": "darwin",
"deviceLayerMap": {
"layers": [
{
"name": "Layer1",
"keys": [
{
"typeName": "Macro",
"itemValue": {
"name": "Copy",
"macroType": "NoRepeat",
"actions": {
"down": [
{ "key": 91, "action": 0, "interval": 5 },
{ "key": 67, "action": 0, "interval": 5 },
{ "key": 67, "action": 1, "interval": 5 },
{ "key": 91, "action": 1, "interval": 5 }
]
},
"system": false
},
"itemType": "MacroSettings"
},
{
"typeName": "Vaydeer",
"itemValue": { "name": "前へ", "keys": [0], "system": true },
"itemType": "Vaydeer"
},
{ "typeName": null, "itemValue": null }
]
}
]
}
}
上の例は3キー分だけを示しています。実際の keys には、9個を並べます。マクロは、json と同じ内容が prf の中にも入ります。
割り当ての種類ごとの書き方は次のとおりです。
| 割り当て | typeName | itemType | itemValue の主な項目 |
|---|---|---|---|
| マクロ | Macro | MacroSettings | name、macroType、actions、system |
| テキスト | Text | Text | name、text、encoding(Software)、system、enable |
| ショートカット | Key | ShortcutKey | name、keys(例:[91, 67])、system、enable |
| レイヤー切替 | Vaydeer | Vaydeer | name(前へ/次へ)、keys([0]/[1])、system |
| 通常キー | Key | Distribution-DE など | name、keys(例:7 は [55])、system |
| 空きキー | null | (なし) | {"typeName": null, "itemValue": null} |
通常キーの itemType は、古い書き出しでは Distribution に keyboardtype が付く形でした。
読み込みの手順
筆者は次の順で読み込みました。
- レイヤーメニューから「工場出荷時設定にリセット」を実行する
- 「コンフィグをインストールする」から
.jsonを読み込む - 「コンフィグをインストールする」から
.prfを読み込む
json を読み込むと、右側の「マクロ実行ボタンの設定」に、書いたマクロが並びます。

続けて prf を読み込むと、キーの割り当てが画面に反映されます。

読み込んだ後にフラッシュが必要かどうかは、確認していません。
interval は 5ms にすると軽快
マクロの編集画面にある「標準遅延の使用」にチェックが入っていると、待ち時間は 50ms に固定されます。チェックを外すと、5〜60000ms の範囲で個別に指定できます。

json では interval に直接 5 と書けます。筆者は全マクロを 5ms にして、動作が軽快になりました。
keyCode は Windows の仮想キーコードとほぼ同じ体系
json と prf に書くキー番号は、JavaScript の keyCode(Windows の仮想キーコードとほぼ同じ体系)でした。巻末に「KeyCode(キーコード)一覧表」を載せます。
配列と OS による違いは、次のとおりです。
- 英字、数字、修飾キーは、キーボードの種類が English でも Deutsch でも同じ番号です。prf に書かれた数字の「7」は、どちらも 55 でした。
- 記号キーは、配列と入力ソースによって出る文字が変わります。
- Mac の Command は 91 で、Windows では同じ番号が Windows キーに当たります。Windows に持っていくなら、Cmd をすべて Ctrl(17)に直す必要があるはずです。ただし筆者は Mac でしか試していません。
まとめ
Mac では、テキストとショートカットが使えず、録画も修飾キーを押したままの入力を記録しません。そのため、マクロを json と prf で作って読み込む方法に落ち着きました。キー番号は keyCode で、Cmd が 91、Shift が 16、Option が 18、英字は 65 から始まります。
未解決なのは、テキストとショートカットでアプリが落ちる原因です。macOS 14.6.1 とアプリ 1.2.3 の組み合わせで起きていて、原因がわかりません。Windows と、English 以外の配列では確認していません。
次回は、動いたファイルを見本にして Claude に作ってもらう
読み込みに成功した .json と .prf があれば、同じ形式のファイルは Claude に作ってもらえます。見本のファイルを添付して、次のように頼みます。
添付の keyconfig-9keys-Sample.json と keymaps-9keys-Sample.prf と同じ形式で、次の割り当てのファイルを作ってください。
- 左上から順に、Copy(Cmd+C)、Cut(Cmd+X)、Paste(Cmd+V)、前へ、Command Palette(Shift+Cmd+P)、次へ、…
- マクロの interval はすべて 5
- 修飾キーは「押す → 通常キーを押して離す → 修飾キーを逆順に離す」の順にする
これで、録画と手作業の編集を省けます。
📍 付録:keycode 一覧表(Vaydeer 9キー・Mac 向け)
マクロの key に入れる番号の一覧です。Vaydeer のアプリで確認した結果を注記しました。
見方
| 記号 | 意味 |
|---|---|
| ◎ | Vaydeer のアプリで、番号とキー名の対応を確認済み |
| △ | 確認済みだが、注意点がある |
| ? | 未確認(手元の json に出てこない) |
| ✕ | 使えない、または使う意味がない見込み |
◎ と △ は、アプリのマクロ編集画面で番号とキー名の対応を確認したものです。実機で動作まで確認したのは、Copy・Cut・Paste、Command Palette、改行・タブを入力するマクロ、/copy、Enter、Space です。? と ✕ は実機で試していません。
修飾キー
| 番号 | HEX | キー | VK 定数名 | 対応 |
|---|---|---|---|---|
| 16 | 10 | Shift(左) | VK_SHIFT | ◎ |
| 17 | 11 | Control | VK_CONTROL | ◎ |
| 18 | 12 | Option(Alt) | VK_MENU | ◎ |
| 20 | 14 | Caps Lock | VK_CAPITAL | △ |
| 91 | 5B | Command(左)/ Windows キー(左) | VK_LWIN | ◎ Mac では Command |
| 93 | 5D | アプリケーションキー(Contextmenu) | VK_APPS | △ キーボードによって番号が違う |
編集・移動・制御
| 番号 | HEX | キー | VK 定数名 | 対応 |
|---|---|---|---|---|
| 8 | 08 | Backspace(Mac の delete) | VK_BACK | ◎ |
| 9 | 09 | Tab | VK_TAB | ◎ |
| 12 | 0C | Clear | VK_CLEAR | ◎ Mac のテンキーにある Clear |
| 13 | 0D | Enter(Return) | VK_RETURN | ◎ |
| 27 | 1B | Esc | VK_ESCAPE | ◎ |
| 32 | 20 | Space | VK_SPACE | |
| 33 | 21 | Page Up | VK_PRIOR | ◎ |
| 34 | 22 | Page Down | VK_NEXT | ◎ |
| 35 | 23 | End | VK_END | ◎ |
| 36 | 24 | Home | VK_HOME | ◎ |
| 37 | 25 | ← | VK_LEFT | ◎ |
| 38 | 26 | ↑ | VK_UP | ◎ |
| 39 | 27 | → | VK_RIGHT | ◎ |
| 40 | 28 | ↓ | VK_DOWN | ◎ |
| 46 | 2E | Delete(前方削除) | VK_DELETE | ◎ |
数字(上段)
◎ VK_0〜VK_9 です。
| キー | 番号 | キー | 番号 | キー | 番号 | キー | 番号 |
|---|---|---|---|---|---|---|---|
| 0 | 48 | 1 | 49 | 2 | 50 | 3 | 51 |
| 4 | 52 | 5 | 53 | 6 | 54 | 7 | 55 |
| 8 | 56 | 9 | 57 |
英字
◎ VK_A〜VK_Z です。
録画では、修飾キーを押したままの 3・C・P が記録されない。Shift + Command + 3 のような組み合わせは、json に番号を書いて作る。
| キー | 番号 | キー | 番号 | キー | 番号 | キー | 番号 |
|---|---|---|---|---|---|---|---|
| A | 65 | B | 66 | C | 67 | D | 68 |
| E | 69 | F | 70 | G | 71 | H | 72 |
| I | 73 | J | 74 | K | 75 | L | 76 |
| M | 77 | N | 78 | O | 79 | P | 80 |
| Q | 81 | R | 82 | S | 83 | T | 84 |
| U | 85 | V | 86 | W | 87 | X | 88 |
| Y | 89 | Z | 90 |
記号
番号は文字ではなく、キーの位置に対応します。
| 番号 | HEX | US 配列 | JIS 配列 | VK 定数名 | 対応 |
|---|---|---|---|---|---|
| 186 | BA | ; |
: |
VK_OEM_1 | ◎ |
| 187 | BB | = |
; |
VK_OEM_PLUS | ◎ |
| 188 | BC | , |
, |
VK_OEM_COMMA | ◎ |
| 189 | BD | - |
- |
VK_OEM_MINUS | ◎ |
| 190 | BE | . |
. |
VK_OEM_PERIOD | ◎ |
| 191 | BF | / |
/ |
VK_OEM_2 | ◎ |
| 192 | C0 | ` |
@ |
VK_OEM_3 | ◎ |
| 219 | DB | [ |
[ |
VK_OEM_4 | ◎ |
| 220 | DC | バックスラッシュ | ¥ |
VK_OEM_5 | ◎ Option と組み合わせるとバックスラッシュ |
| 221 | DD | ] |
] |
VK_OEM_6 | ◎ |
| 222 | DE | ' |
^ |
VK_OEM_7 | ? 未確認 |
| 226 | E2 | なし(ISO 配列のキー) | _(ろ) |
VK_OEM_102 | ? 未確認 |
テンキー
テンキーの 0〜9(VK_NUMPAD0〜VK_NUMPAD9)です。? Vaydeer のアプリの「テンキー」では、0〜9 が 48〜57(上段の数字と同じ番号)で記録される。96〜105 は未確認。
| キー | 番号 | キー | 番号 | キー | 番号 | キー | 番号 |
|---|---|---|---|---|---|---|---|
| 0 | 96 | 1 | 97 | 2 | 98 | 3 | 99 |
| 4 | 100 | 5 | 101 | 6 | 102 | 7 | 103 |
| 8 | 104 | 9 | 105 |
| 番号 | HEX | キー | VK 定数名 | 対応 |
|---|---|---|---|---|
| 106 | 6A | テンキー * |
VK_MULTIPLY | ◎ |
| 107 | 6B | テンキー + |
VK_ADD | ◎ |
| 108 | 6C | テンキー Separator | VK_SEPARATOR | ? 未確認 |
| 109 | 6D | テンキー - |
VK_SUBTRACT | ◎ |
| 110 | 6E | テンキー . |
VK_DECIMAL | ◎ アプリでは Num Del |
| 111 | 6F | テンキー / |
VK_DIVIDE | ◎ |
ファンクションキー
△ F1〜F12(VK_F1〜VK_F12)です。Mac の設定「F1、F2 などのキーを標準のファンクションキーとして使用」によって、画面の明るさなどの機能キーとして働く場合がある(未確認)。
| キー | 番号 | キー | 番号 | キー | 番号 | キー | 番号 |
|---|---|---|---|---|---|---|---|
| F1 | 112 | F2 | 113 | F3 | 114 | F4 | 115 |
| F5 | 116 | F6 | 117 | F7 | 118 | F8 | 119 |
| F9 | 120 | F10 | 121 | F11 | 122 | F12 | 123 |
? F13〜F24(VK_F13〜VK_F24)です。
| キー | 番号 | キー | 番号 | キー | 番号 | キー | 番号 |
|---|---|---|---|---|---|---|---|
| F13 | 124 | F14 | 125 | F15 | 126 | F16 | 127 |
| F17 | 128 | F18 | 129 | F19 | 130 | F20 | 131 |
| F21 | 132 | F22 | 133 | F23 | 134 | F24 | 135 |
キーボード別 独自の番号(参考)
標準の keyCode と異なる番号です。Mac のキーボードで記録した結果なので、キーボードによって変わる可能性があります。使うときは自分の環境で確認してください。
| 番号 | キー | 標準の keyCode | 備考 |
|---|---|---|---|
| 21 | 右 Shift | 16(左右同じ) | 標準では IME 用の番号 |
| 23 | 右 Option | 18(左右同じ) | 標準では IME 用の番号 |
| 24 | テンキーの Enter(Num Enter) | 13 | 標準では IME 用の番号 |
| 48〜57 | テンキーの 0〜9 | 96〜105 | 上段の数字と同じ番号になる |