Vaydeer プログラマブルキーボードを Mac で使うなら、キー割り当ては マクロを json ファイルで作って読み込む 方法がいちばん確実でした。

理由は2つあります。アプリの録画機能は、修飾キーを押したままだと 3 や C を記録してくれません。さらに「テキスト」と「よく使うショートカット」は、筆者の Mac では割り当てたキーを押すと、なぜかアプリが落ちました。

この記事では、アプリの基本的な使い方、設定ファイル(.json と .prf)の中身、json に書くキー番号(keyCode)をまとめます。「Vaydeer プログラマブルキーボード 設定」で検索しても、手順を追える解説が見つからなかったためです。


Vaydeer プログラマブルキーボード

Vaydeer プログラマブルキーボードは、左手で使う有線のメカニカルキーボードです。キーにはあらかじめ機能がなく、専用アプリ「Vaydeer keyboard」で割り当てを作り、本体に書き込んで使います。Mac と Windows に対応しています。

Vaydeer プログラマブルキーボード 9キー ショートカットキーボード ゲーミング 片手 有線 メカニカル キーボードマクロ可能VAYDEER

Vaydeer プログラマブルキーボード 9キー ショートカットキーボード ゲーミング 片手 有線 メカニカル キーボードマクロ可能

4,399 円

Amazonで詳細を見る

アプリを起動すると、Vaydeer の4機種(1キー、4キー、6キー、9キー)が並ぶ画面が出ます。ここで9キーを選びます。

Vaydeer keyboard アプリの起動画面。1キー・4キー・6キー・9キーのデバイスが並ぶ

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

Vaydeer keyboard の設定画面。バージョン情報とキーボードの種類の選択肢が表示されている


かんたんな使い方

基本の流れは4ステップです。

  1. USB で接続して、アプリを起動し、9キーを選ぶ
  2. 画面右の項目を、左の9キーにドラッグ&ドロップする
  3. 右上の「フラッシュキーボード」を押して、本体に書き込む
  4. 必要ならレイヤーを追加する

ドラッグ元は、右側に並ぶ9つのカテゴリです。下の画像は「ボタンの配置」から英字を割り当てた例です。

「ボタンの配置」から A〜I の英字を9つのキーに割り当てた画面

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

フラッシュ成功のダイアログ。下にはショートカットの編集欄が表示されている

レイヤーは、左上の「Layer1」のメニューから「レイヤーを追加する」で増やせます。最大6レイヤーなので、9キー×6で最大54個の割り当てを持てます。

レイヤーを切り替えるには、後述する「Vaydeer keyboard」カテゴリの「前へ」「次へ」をキーに割り当てます。画面の左上には、現在の割り当てとレイヤー名が表示されます。

画面左上に表示される、現在のレイヤーとキー割り当て


設定の種類

右側のカテゴリは次の9つです。

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

筆者の用途は、入力が面倒なショートカットや文字列を一発で出すことです。そのため、通常キー、マルチメディア、マウス、システム機能は出番がありませんでした。

「マルチメディア」カテゴリ。再生/一時停止、ボリューム、前の曲、次の曲、ミュートが並ぶ

「システム機能」を割り当てた画面。Mission Control、Launchpad、Finder の検索などが並ぶ


テキストとショートカットは、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 + Cmd + 3 を録画した結果。最後のキーが 3 ではなく Shift になっている

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

マクロを録画した結果。Shift、Option、F がそれぞれ押してすぐ離す順に並んでいる

録画後に、保存した json を直接編集すれば直せます。次の章からは、録画を使わずに最初から json を書いて読み込む方法です。


設定ファイルのマクロは json で書ける

左上のレイヤーメニューには、設定ファイルを出し入れする項目があります。

レイヤーメニュー。コンフィグをインストールする、ダウンロードする、工場出荷時設定にリセットが並び、ダウンロードの下にキーボードのコンフィグファイル(.prf)とソフトを予め設定ファイル(.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 が付く形でした。

読み込みの手順

筆者は次の順で読み込みました。

  1. レイヤーメニューから「工場出荷時設定にリセット」を実行する
  2. 「コンフィグをインストールする」から .json を読み込む
  3. 「コンフィグをインストールする」から .prf を読み込む

json を読み込むと、右側の「マクロ実行ボタンの設定」に、書いたマクロが並びます。

json を読み込んだ後の画面。マクロ一覧に Copy、Cut、Paste、Command Palette などが並んでいる

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

prf を読み込んだ後の画面。インストールしましたと表示され、9キーにマクロと前へ・次へが並んでいる

読み込んだ後にフラッシュが必要かどうかは、確認していません。

interval は 5ms にすると軽快

マクロの編集画面にある「標準遅延の使用」にチェックが入っていると、待ち時間は 50ms に固定されます。チェックを外すと、5〜60000ms の範囲で個別に指定できます。

マクロの編集画面。標準遅延の使用を外し、各キーの間隔を5msにしている

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 上段の数字と同じ番号になる