Baroccoキーボード設定 (for Mac)

コンパクトな分離型キーボード[**Barocco**](http://www.archisite.co.jp/products/Mistel/Barocco-en/)（赤軸）がようやく[^date]届いたので設定メモ。
今まで主にHHKB Pro2を使用していたので、それからスムーズに移行できるように設定を行う。
色々とキー配置／設定が悩ましかったのでメモ。
（BackSpaceキーを二分割して小キーが2つあったり、右Spaceキーの右端に小キーがあれば悩みも減るのだが）

色々マクロで設定したが、結局Karabinerの[最終設定](#最終設定)に移行した。
[^date]: 10/26: Amazon.co.jpで注文。11/13: 到着。

## Barocco キーボードの概要
* キーボードの右下に3つ並んだLEDインジケータ（左からLED1, LED2, LED3）が配置されている。
   * 状態に合わせ<font color="red">赤</font><font color="#F33">●</font>／<font color="green">緑</font><font color="#3F3">●</font>／<font color="blue">青</font><font color="#33F">●</font>／白○の色で点灯する。
   * 以下【】内に ●/<font color="#F33">●</font>/<font color="#3F3">●</font>/<font color="#33F">●</font>/○ でLEDの点灯状態を表記する。
      * また <font color="#F33">◎</font>/<font color="#3F3">◎</font>/<font color="#33F">◎</font>/◎ でそれぞれの色の点滅を意味することとする。
      * 例えば【●・・】は、LED1が無点灯、他は任意という意味。
      * 例えば【<font color="#F33">●</font>・・】は、LED1が赤で点灯、他は任意という意味。
      * 例えば【・◎・】は、LED2が白で点滅、他は任意という意味。
* レイヤーは4つ。
   * デフォルト・レイヤーはキー設定変更不可で、1~3のレイヤーのみプログラマブル。
   * デフォルト・レイヤー: <kbd>Fn</kbd>+<kbd>M</kbd>【・●・】
   * レイヤー1: <kbd>Fn</kbd>+<kbd>&lt;,</kbd>【・<font color="#F33">●</font>・】
   * レイヤー2: <kbd>Fn</kbd>+<kbd>&gt;.</kbd>【・<font color="#3F3">●</font>・】
   * レイヤー3: <kbd>Fn</kbd>+<kbd>?/</kbd>【・<font color="#33F">●</font>・】
* キーレイアウトが3つある。
   * QWERTY, Dvorak, Colemak の3つ。
   * <kbd>Fn</kbd>+<kbd>A</kbd>で順にスイッチしていく。
     * デフォルトQWERTY【●・・】
        * ↳<kbd>Fn</kbd>+<kbd>A</kbd>→ Dvorak【<font color="#33F">●</font>・・】
        * ↳<kbd>Fn</kbd>+<kbd>A</kbd>→ Colemak【<font color="#3F3">●</font>・・】
        * ↳<kbd>Fn</kbd>+<kbd>A</kbd>→ QWERTY【●・・】↺
* キー設定の一括初期化には以下の方法がある。
   * 初期化したいレイヤーで<kbd>Fn</kbd>+<kbd>R</kbd>を長押し【・◎・】: 5秒後、初期化。
   * <kbd>左Alt</kbd>+<kbd>右Alt</kbd>を長押し【・◎・】: 5秒後、全レイヤー初期化。
   * 単一キーの設定初期化は[キープログラミング](#キープログラミング)の節で説明する。
* <kbd>Win</kbd>キーがMacの<kbd>&#8984; Command</kbd>キーとして働く。
* [ファームフェア](http://www.mistelkeyboard.com/firmware-upgrade)のアップデートにPCが必要。

### キープログラミング
* 以下の手順でレイヤー1~3のキー設定を変更できる。
   1. <kbd>Fn</kbd>+<kbd>&lt;,</kbd>/<kbd>&gt;.</kbd>/<kbd>?/</kbd> でキー設定を行いたいレイヤーへと移動する。【・<font color="#F33">●</font>/<font color="#3F3">●</font>/<font color="#33F">●</font>・】
   2. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・<font color="#33F">●</font>】: プログラミングモードへと移行。
   3. 変更元のキーを押す【・・<font color="#33F">◎</font>】
   4. 出力したいキーをタイプし[^note:keyset]、最後に<kbd>Pn</kbd>を押す。【・・<font color="#33F">●</font>】
   5. 他のキーを変更したい場合、手順3, 4を繰り返す。
   6. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・●】: プログラミングモードを終了。
* プログラミングモードの途中離脱も<kbd>Fn</kbd>+<kbd>右Ctrl</kbd>で行う。
* キー設定の初期化は、
   1. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・<font color="#33F">●</font>】: プログラミングモードへと移行。
   2. 初期化したいキーを長押し（多分5秒もあれば十分）【・・<font color="#33F">●</font>】
   3. LEDインジケータに動きは無いが、キーをアップしたときLED3の青が点滅してなければ成功。
   4. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・●】: プログラミングモードを終了。

[^note:keyset]: この時のキー配列は、デフォルトの物となっている。

#### Fn/Pnキーの設定
* 好きなキーへとFn/Pnキーを設定するのは、上記の方法とは異なる手順を用いる。
   * Fnキーを設定する。
      1. <kbd>Fn</kbd>+<kbd>左Shift</kbd>を3秒間長押し【・・<font color="#F33">◎</font>】
      2. <kbd>Fn</kbd>【・・<font color="#F33">◎</font>】
      3. Fnを割り当てたいキーを押す【・・●】
   * Pnキーは、上記のFnをPnに置き換えるだけ。
      1. <kbd>Pn</kbd>+<kbd>左Shift</kbd>を3秒間長押し【・・<font color="#3F3">◎</font>】
      2. <kbd>Pn</kbd>【・・<font color="#3F3">◎</font>】
      3. Pnを割り当てたいキーを押す【・・●】
* Fn/Pnキーはキーボード上に1キーしか設定できないようだ。（とても困る）
   * 他のキーに割り当てると、デフォルトのFnキーにはコマンド&#8984;キー（**右**コマンド&#8984;）、
   * デフォルトのPnキーにはアプリケーションキー[^note:appkey]の機能が自動的に割り当てられる。

[^note:appkey]: APPキーなんて知らなかったし、キーボードビュー上でも表示が出ないので分からなかったが、Karabiner付属のイベントビューアで確認した。

## Myキー変更
キー変更は以下のように行った。全てレイヤー1上。

### CapsLock → 左Ctrl⌃
* HHKBと同様に、Aキーの隣にCtrl&#8963;キーが有って欲しいので変更。
   1. <kbd>Fn</kbd>+<kbd>&lt;,</kbd>【・<font color="#F33">●</font>・】
   2. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・<font color="#33F">●</font>】
   3. <kbd>CapsLock</kbd>【・・<font color="#33F">◎</font>】
   4. <kbd>左Ctrl</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
   5. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・●】

### 左Ctrl⌃ → Fn, 左Alt⌥ ↔ 左Win, 右Alt⌥ ↔ 右Win
* Karabinerを用いて、左コマンド&#8984;の空打ちを「英数」、右&#8984;コマンドの空打ちを「かな」と設定しているので。
   * Fnキーを（[先の置き換えで](#capslock--%E5%B7%A6ctrl)用済みの左下の左Ctrl&#8963;キーへ）移動させ、右Win=右コマンド&#8984;キーを出現させる。
      1. <kbd>Fn</kbd>+<kbd>左Shift</kbd>を3秒間長押し【・・<font color="#F33">◎</font>】
      2. <kbd>Fn</kbd>【・・<font color="#F33">◎</font>】
      3. <kbd>左Ctrl</kbd>【・・●】
   * 以降の記述において、次の表記の更新を行う。
      * <kbd>Fn</kbd>は、Fnの機能を与えられたキーボード左下の<kbd>左Ctrl</kbd>キー
      * <kbd>右Win</kbd>は、デフォルトでFnの機能を持っていた<kbd>Fn</kbd>キー
   * 続いて、左右Alt&#8997;と左右Winの交換を行う。
      1. <kbd>Fn</kbd>+<kbd>&lt;,</kbd>【・<font color="#F33">●</font>・】
      2. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・<font color="#33F">●</font>】
      3. <kbd>左Alt</kbd>【・・<font color="#33F">◎</font>】
      4. <kbd>左Win</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
      5. <kbd>左Win</kbd>【・・<font color="#33F">◎</font>】
      6. <kbd>左Alt</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
      7. <kbd>右Alt</kbd>【・・<font color="#33F">◎</font>】
      8. <kbd>右Win</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
      9. <kbd>右Win</kbd>【・・<font color="#33F">◎</font>】
      10. <kbd>右Alt</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
      11. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・●】</del>

#### <del>左/右Alt⌥ → コマンド⌘, Win → 左Alt⌥</del>
[先の置き換え]("#%E5%B7%A6ctrl--fn-%E5%B7%A6alt--%E5%B7%A6win-%E5%8F%B3alt--%E5%8F%B3win)でやり直したので、こちらの設定は無しで。
履歴として残しておく。

* <del>スペースバーの両端にコマンド⌘キーが有って欲しいので。
   1. <kbd>Fn</kbd>+<kbd>&lt;,</kbd>【・<font color="#F33">●</font>・】
   2. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・<font color="#33F">●</font>】
   3. <kbd>左Alt</kbd>【・・<font color="#33F">◎</font>】
   4. <kbd>Win</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
   5. <kbd>右Alt</kbd>【・・<font color="#33F">◎</font>】
   6. <kbd>Win</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
   7. <kbd>Win</kbd>【・・<font color="#33F">◎</font>】
   8. <kbd>左Alt</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
   9. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・●】</del>

### BackSpace⌫キー ↔ |\キー
* HHKBと同じ位置で、かつ小指が届きやすい一にBackSpace&#9003;キーが欲しいので。
   1. <kbd>Fn</kbd>+<kbd>&lt;,</kbd>【・<font color="#F33">●</font>・】
   2. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・<font color="#33F">●</font>】
   3. <kbd>BackSpace</kbd>【・・<font color="#33F">◎</font>】
   4. <kbd>|\\</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
   5. <kbd>|\\</kbd>【・・<font color="#33F">◎</font>】
   6. <kbd>BackSpace</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
   7. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・●】
* これで次のようになる。
   * <kbd>BackSpace</kbd>: `\`
   * <kbd>Shift</kbd>+<kbd>BackSpace</kbd>: `|`
   * <kbd>|\\</kbd>: BackSpace&#9003;
   * ただし
      * <kbd>Fn</kbd>+<kbd>|\\</kbd>: nothing
      * <kbd>Fn</kbd>+<kbd>BackSpace</kbd>: Forward Delete&#8998;
   * ファンクションキーレイヤーの設定は、通常のキーとは別個に行う必要がある。
      * Forward Deleteなんて使わないので変更しないが。

###  Esc⎋キー ↔ `キー (Fn+Esc) 
* エスケープ&#9099;キーよりもバッククォート`の方が使用頻度が高いので。
   * 以下の Fn+Esc → Esc は、Firmware v1.03.00 でないと不可。 
   1. <kbd>Fn</kbd>+<kbd>&lt;,</kbd>【・<font color="#F33">●</font>・】
   2. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・<font color="#33F">●</font>】
   3. <kbd>Esc</kbd>【・・<font color="#33F">◎</font>】
   4. <kbd>Fn</kbd>+<kbd>Esc</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
   5. <kbd>Fn</kbd>+<kbd>Esc</kbd>【・・<font color="#33F">◎</font>】
   6. <kbd>Esc</kbd> → <kbd>Pn</kbd>【・・<font color="#33F">●</font>】
   7. <kbd>Fn</kbd>+<kbd>右Ctrl</kbd>【・・●】

### Use Karabiner
* [Karabiner](https://pqrs.org/osx/karabiner/index.html.ja)を用いてキーリマップ。

#### 右Ctrl⌃ + [/;'キー → Up↑/Down↓/Left←/Right→
* Controlは専ら左Ctrl⌃キーしか用いてないので、余った右Ctrl⌃キーとのコンビネーションで方向キーを設定する。
   * HHKBのFnの代用である。
   * そもそもHHKB Pro2に右Ctrl⌃キーは無いし。

#### 右Ctrl⌃ + L/Dot(.)/K/Comma(,) → PageUp⇞/PageDown⇟/Home↖/End↘
* これもHHKB相当。

#### 右Ctrl⌃ + A/S/D → Volume Up/Volume Down/Mute
* これもHHKB相当。
 
#### 右Ctrl⌃ + 1/2/.../0/-/=キー → Fn1/Fn2/.../Fn10/Fn11/Fn12
* Cmd+Fn1 によるウィンドウの切り替えを多用するので。

#### 右Ctrl⌃ + `キー → Escape⎋
* Esc&#9099;キーのデフォルトをBackquote(`)に設定したが、左下の左Ctrlに設定したFnとのコンビネーションではEscape&#9099;が使いにくいので。

#### 右Cnrl + `キー → Power⌽ or Eject⏏
* 画面だけをスリープさせるショートカット Control⌃ + Shift⇧ + Power&#x233D;/Eject&#9167; をよく利用するので。

#### private.xml
* 以上の設定を、private.xmlに追加する。
   * 特に意味は無いが、ベンダーIDとプロダクトIDによる限定を掛けた。

```xml
<?xml version="1.0"?>
<root>
  <!-- Vendr/Device Id の設定 -->
  <devicevendordef>
    <vendorname>MiSTEL</vendorname>
    <vendorid>0x04d9</vendorid>
  </devicevendordef>

  <deviceproductdef>
    <productname>BAROCCO_MD600</productname>
    <productid>0x0143</productid>
  </deviceproductdef>
  
  <item>
    <name>My Remaps</name>
    <item>
      <name>For BAROCCO</name>
      <item>
        <name>Control_R + [/;' To Up/Down/Left/Right</name>
        <appendix>Control_R + Braket Left([) to Up</appendix>
        <appendix>Control_R + Slash(/) to Down</appendix>
        <appendix>Control_R + Semicolon(;) to Left</appendix>
        <appendix>Control_R + Quote(') to Right</appendix>
        <identifier>remap.my_remap.r_ctrl_combi_to_arrow</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::BRACKET_LEFT, ModifierFlag::CONTROL_R,
          KeyCode::CURSOR_UP
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::SLASH, ModifierFlag::CONTROL_R,
          KeyCode::CURSOR_DOWN
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::SEMICOLON, ModifierFlag::CONTROL_R,
          KeyCode::CURSOR_LEFT
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::QUOTE, ModifierFlag::CONTROL_R,
          KeyCode::CURSOR_RIGHT
        </autogen>
      </item>
      <item>
        <name>Control_R + L/Dot(.)/K/Comma(,) To PageUp/PageDown/Home/End</name>
        <identifier>remap.my_remap.r_ctrl_combi_to_pageup_down_home_end</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::L, ModifierFlag::CONTROL_R,
          KeyCode::PAGEUP
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::DOT, ModifierFlag::CONTROL_R,
          KeyCode::PAGEDOWN
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::K, ModifierFlag::CONTROL_R,
          KeyCode::HOME
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::COMMA, ModifierFlag::CONTROL_R,
          KeyCode::END
        </autogen>
      </item>
      <item>
        <name>Control_R + A/S/D To VolDown/VolUp/Mute</name>
        <identifier>remap.my_remap.r_ctrl_combi_to_volumes</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::A, ModifierFlag::CONTROL_R,
          ConsumerKeyCode::VOLUME_DOWN
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::S, ModifierFlag::CONTROL_R,
          ConsumerKeyCode::VOLUME_UP
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::D, ModifierFlag::CONTROL_R,
          ConsumerKeyCode::VOLUME_MUTE
        </autogen>
      </item>
      <item>
        <name>Control_R + 1/2/.../0/Minus(-)/Equal(=) To Fn1/Fn2/.../Fn10/Fn11/Fn12</name>
        <identifier>remap.my_remap.r_ctrl_num_to_fn</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::1, ModifierFlag::CONTROL_R,
          KeyCode::F1
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::2, ModifierFlag::CONTROL_R,
          KeyCode::F2
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::3, ModifierFlag::CONTROL_R,
          KeyCode::F3
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::4, ModifierFlag::CONTROL_R,
          KeyCode::F4
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::5, ModifierFlag::CONTROL_R,
          KeyCode::F5
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::6, ModifierFlag::CONTROL_R,
          KeyCode::F6
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::7, ModifierFlag::CONTROL_R,
          KeyCode::F7
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::8, ModifierFlag::CONTROL_R,
          KeyCode::F8
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::9, ModifierFlag::CONTROL_R,
          KeyCode::F9
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::0, ModifierFlag::CONTROL_R,
          KeyCode::F10
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::MINUS, ModifierFlag::CONTROL_R,
          KeyCode::F11
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::EQUAL, ModifierFlag::CONTROL_R,
          KeyCode::F12
        </autogen>
      </item>
      <item>
        <name>Control_R + Shift_R + Backquote(`) To Power</name>
        <identifier>remap.my_remap.ctrl_r_shift_r_backquote2power</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::BACKQUOTE, ModifierFlag::CONTROL_R | ModifierFlag::SHIFT_R,
          ConsumerKeyCode::POWER
        </autogen>
      </item>
      <item>
        <name>Control_R + Shift_R + Backquote(`) To Eject</name>
        <identifier>remap.my_remap.ctrl_r_shift_r_backquote2eject</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::BACKQUOTE, ModifierFlag::CONTROL_R | ModifierFlag::SHIFT_R,
          ConsumerKeyCode::EJECT
        </autogen>
      </item>
      <item>
        <name>Control_R + Backquote(`) To Escape</name>
        <identifier>remap.my_remap.backquote_ctrl_r2esc</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::BACKQUOTE, ModifierFlag::CONTROL_R,
          KeyCode::ESCAPE
        </autogen>
      </item>
    </item>
  </item>
</root>

```

## 不満点
以下の不満点をMistelのサイトのメッセージ・フォームから送ったところ、1日と経たずに返信メールが届いた。
それには丁寧な返答と、現在サイトでは未公開の Firmware v1.03.00 が添付されており、問題の半分は解決した。
未解決の不満は、現在仕様とのことだ。

* <del><kbd>Fn</kbd>+<kbd>Esc</kbd>にマクロ設定が出来ない。</del>（**<font color="red">解決</font>**）
   * Firmware v1.03.00 で無事解決した。
* <kbd>Fn</kbd>キーが複数設定できない。（これは<kbd>Pn</kbd>キーでも同様）
* <kbd>Fn</kbd>キーを押してると<kbd>Shift</kbd>などの修飾キーが無視される。
   * よって<kbd>Fn</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd>/<kbd>J</kbd>/<kbd>K</kbd>/<kbd>L</kbd>の順でキーを押すと<kbd>Shift</kbd>が無視され、テキスト選択が出来ない。
      * <kbd>Shift</kbd>+<kbd>Fn</kbd>+<kbd>I</kbd>/<kbd>J</kbd>/<kbd>K</kbd>/<kbd>L</kbd>の順だと無問題。
* <del><kbd>右Cmd</kbd>が入力できない。</del>（**<font color="red">解決</font>**）
   * <del><kbd>Win</kbd>は<kbd>左Cmd</kbd>として解釈され、<kbd>Win</kbd>を他のキーにセットしても<kbd>左Cmd</kbd>のまま。</del>
   * <del>元から無い<kbd>右Cmd</kbd>が入力できない。</del>
   * <kbd>Fn</kbd>を別の場所に移したら、デフォルトの<kbd>Fn</kbd>キーが<kbd>Cmd</kbd>キーは<kbd>Cmd</kbd>キーでも<kbd>**右**Cmd</kbd>となることを見落としていた。
      * Mistel からの指摘で気づいた。

迅速な対応をしてくれた Mistel にはここでも感謝を述べさせていただく。
Thanks.

## 最終設定
* 結局キーボード側のマクロ設定は消して、Karabinerに任せることにした。
   * ただしFnキーの位置は左下の左Ctrlキーに移した。
      * Fnキーを移す前にPnキーも左Ctrlキーに移して、<del>Fnキーで上書きしてPnキーを潰した。</del>
         * Fnキーで上書きしたと思ったが、Fnキーと他のキーとの組合せに反応しないので、無反応キーとなった。
         * これで期せずして、レイヤーの（切り替えが出来ず）固定化に成功した。
   * CapsLockは[Seil](https://pqrs.org/osx/karabiner/seil.html.ja)を用いて、左Control(59)へと置き換えた。
   * Fn,Pnキーを潰す前に、左SpaceバーにHelp(Inc)を割り当てた。
      * Help(Inc)にしたのには、特に意味は無い。Macで認識するが無用なキーなら何でも良かった。
* 右Ctrl⌃ + [/;'キー → Up↑/Down↓/Left←/Right→
* 右Ctrl⌃ + L/Dot(.)/K/Comma(,) → PageUp⇞/PageDown⇟/Home↖/End↘
* 右Ctrl⌃ + A/S/D → Volume Up/Volume Down/Mute
* Esc⎋単押し → Backquote(`)
   * Esc⎋長押し → Esc⎋
* 右Ctrl⌃ + 右Shift⇧ + Esc⎋ → Eject⏏
* 右Shift⇧ + Esc⎋ → Backquote(`)
* 右Ctrl⌃ + Space → Space
   * 右Ctrl⌃キーを押してるときにSpaceバーを押してSpotlightが起動するのを防ぐため。
* BackSpace⌫キー ↔ \キー
* 左/右Alt⌥ ↔ 左/右Command⌘
   * 左/右Alt⌥キーの単押しで英数／かな。
   * 左/右Shift⇧キーを押してるとき左/右Alt⌥キーの単押しでかな／英数。（i.e. 逆転）
* Pn(APP) → FnLock
   * Pnキー跡地はAPPキーとなり、これをFnLockに割り当てた。
      * このFnは、Barocco固有のFnキーとは違いシステム的なキー。
* Fn + I/K/J/L → Up↑/Down↓/Left←/Right→

```xml
<?xml version="1.0"?>
<root>
  <!-- Vendr/Device Id の設定 -->
  <devicevendordef>
    <vendorname>MiSTEL</vendorname>
    <vendorid>0x04d9</vendorid>
  </devicevendordef>

  <deviceproductdef>
    <productname>BAROCCO_MD600</productname>
    <productid>0x0143</productid>
  </deviceproductdef>
  
  <item>
    <name>My Remaps</name>
    
    <item>
      <name>For BAROCCO (only in Barocco)</name>
      
      <item>
        <name>For Cursor moves</name>
        
        <item>
          <name>Control_R + [/;' To Up/Down/Left/Right</name>
          <appendix>Control_R + Braket Left([) to Up</appendix>
          <appendix>Control_R + Slash(/) to Down</appendix>
          <appendix>Control_R + Semicolon(;) to Left</appendix>
          <appendix>Control_R + Quote(') to Right</appendix>
          <appendix>（HHKB互換）</appendix>
          <identifier>remap.my_remap.barocco.r_ctrl_combi_to_arrow</identifier>
          <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
          <autogen>
            __KeyToKey__
            KeyCode::BRACKET_LEFT, ModifierFlag::CONTROL_R,
            KeyCode::CURSOR_UP
          </autogen>
          <autogen>
            __KeyToKey__
            KeyCode::SLASH, ModifierFlag::CONTROL_R,
            KeyCode::CURSOR_DOWN
          </autogen>
          <autogen>
            __KeyToKey__
            KeyCode::SEMICOLON, ModifierFlag::CONTROL_R,
            KeyCode::CURSOR_LEFT
          </autogen>
          <autogen>
            __KeyToKey__
            KeyCode::QUOTE, ModifierFlag::CONTROL_R,
            KeyCode::CURSOR_RIGHT
          </autogen>
        </item>
        
        <item>
          <name>Control_R + Slash(/)/Fn/Alt_R/Pn(APP) To Up/Down/Left/Right</name>
          <appendix>Control_R + Slash(/) to Up</appendix>
          <appendix>Control_R + Fn(Command_R) to Down</appendix>
          <appendix>Control_R + Alt_R to Left</appendix>
          <appendix>Control_R + Pn(APP) to Right</appendix>
          <identifier>remap.my_remap.barocco.r_ctrl_altfnpn_to_arrow</identifier>
          <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
          <autogen>
            __KeyToKey__
            KeyCode::SLASH, ModifierFlag::CONTROL_R,
            KeyCode::CURSOR_UP
          </autogen>
          <autogen>
            __KeyToKey__
            KeyCode::COMMAND_R, ModifierFlag::CONTROL_R,
            KeyCode::CURSOR_DOWN
          </autogen>
          <autogen>
            __KeyToKey__
            KeyCode::OPTION_R, ModifierFlag::CONTROL_R,
            KeyCode::CURSOR_LEFT
          </autogen>
          <autogen>
            __KeyToKey__
            KeyCode::PC_APPLICATION, ModifierFlag::CONTROL_R,
            KeyCode::CURSOR_RIGHT
          </autogen>
        </item>
      </item><!-- End of "For Cursor moves" -->
      
      <item>
        <name>Control_R + Pn(APP) To Control_R + Shift_R</name>
        <appendix>（HHKBの癖で、方向キー操作の時Shiftの様に押してしまうため）</appendix>
        <identifier>remap.my_remap.barocco.ctrl_r_pn2ctrl_r_shift_r</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::PC_APPLICATION, ModifierFlag::CONTROL_R,
          KeyCode::SHIFT_R, ModifierFlag::CONTROL_R
        </autogen>
      </item>
      
      <item>
        <name>Control_R + L/Dot(.)/K/Comma(,) To PageUp/PageDown/Home/End</name>
        <identifier>remap.my_remap.barocco.r_ctrl_combi_to_pageup_down_home_end</identifier>
        <appendix>（HHKB互換）</appendix>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::L, ModifierFlag::CONTROL_R,
          KeyCode::PAGEUP
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::DOT, ModifierFlag::CONTROL_R,
          KeyCode::PAGEDOWN
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::K, ModifierFlag::CONTROL_R,
          KeyCode::HOME
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::COMMA, ModifierFlag::CONTROL_R,
          KeyCode::END
        </autogen>
      </item>
      
      <item>
        <name>Control_R + A/S/D To VolDown/VolUp/Mute</name>
        <appendix>（HHKB互換）</appendix>
        <identifier>remap.my_remap.barocco.r_ctrl_combi_to_volumes</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::A, ModifierFlag::CONTROL_R,
          ConsumerKeyCode::VOLUME_DOWN
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::S, ModifierFlag::CONTROL_R,
          ConsumerKeyCode::VOLUME_UP
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::D, ModifierFlag::CONTROL_R,
          ConsumerKeyCode::VOLUME_MUTE
        </autogen>
      </item>
      
      <item>
        <name>Control_R + 1/2/.../0/Minus(-)/Equal(=) To Fn1/Fn2/.../Fn10/Fn11/Fn12</name>
        <appendix>（HHKB互換）</appendix>
        <identifier>remap.my_remap.barocco.r_ctrl_num_to_fn</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::1, ModifierFlag::CONTROL_R,
          KeyCode::F1
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::2, ModifierFlag::CONTROL_R,
          KeyCode::F2
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::3, ModifierFlag::CONTROL_R,
          KeyCode::F3
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::4, ModifierFlag::CONTROL_R,
          KeyCode::F4
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::5, ModifierFlag::CONTROL_R,
          KeyCode::F5
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::6, ModifierFlag::CONTROL_R,
          KeyCode::F6
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::7, ModifierFlag::CONTROL_R,
          KeyCode::F7
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::8, ModifierFlag::CONTROL_R,
          KeyCode::F8
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::9, ModifierFlag::CONTROL_R,
          KeyCode::F9
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::0, ModifierFlag::CONTROL_R,
          KeyCode::F10
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::MINUS, ModifierFlag::CONTROL_R,
          KeyCode::F11
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::EQUAL, ModifierFlag::CONTROL_R,
          KeyCode::F12
        </autogen>
      </item>
      
      <item>
        <name>Control_R + Shift_R + Tilde(~) To Eject</name>
        <identifier>remap.my_remap.barocco.ctrl_r_shift_r_tilde2eject</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::BACKQUOTE, ModifierFlag::CONTROL_R | ModifierFlag::SHIFT_R,
          ConsumerKeyCode::EJECT
        </autogen>
      </item>
      
      <item>
        <name>Shift_R + Tilde(~) To Backquote(`)</name>
        <identifier>remap.my_remap.barocco.shift_r_tilde2backquote</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::BACKQUOTE, ModifierFlag::SHIFT_R,
          KeyCode::BACKQUOTE
        </autogen>
      </item>
      
      <item>
        <name>Swap BackSpace For BackSlash(\)</name>
        <appendix>（Enterキーの上にBackSpaceを置き、更にその上にBackSlash(\)キーを置く）</appendix>
        <appendix>（HHKB互換）</appendix>
        <identifier>remap.my_remap.barocco.swap_backspace4backslash</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::BACKSLASH,
          KeyCode::DELETE
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::DELETE,
          KeyCode::BACKSLASH
        </autogen>
      </item>
      
      <item>
        <name>Swap Alt_L/R For Command_L/R</name>
        <appendix>（Alt_L/Rキーの空打ちで「英数／かな」）</appendix>
        <appendix>（Altキーを押してから他のキーを打つと通常のCommandキーとして動作）</appendix>
        <identifier>remap.my_remap.barocco.jis_command2eisuukana_prefer_command</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyOverlaidModifier__ 
          KeyCode::OPTION_L,
          KeyCode::COMMAND_L,
          KeyCode::JIS_EISUU
        </autogen>
        <autogen>
          __KeyOverlaidModifier__
          KeyCode::OPTION_R,
          KeyCode::COMMAND_R,
          KeyCode::JIS_KANA
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::COMMAND_L,
          KeyCode::OPTION_L
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::COMMAND_R,
          KeyCode::OPTION_R
        </autogen>
      </item>
      
      <item>
        <name>Swap Alt_L/R For Command_L/R</name>
        <appendix>（Shiftキーが押されてないとき、Alt_L/Rキーの空打ちで「英数／かな」）</appendix>
        <appendix>（Shift_L/Rキーが押されているとき、Alt_L/Rキーの空打ちで「かな／英数」）</appendix>
        <appendix>（Altキーを押してから他のキーを打つと通常のCommandキーとして動作）</appendix>
        <identifier>remap.my_remap.barocco.swap_alt4cmd_with_eisuukana_with_shift_swap</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyOverlaidModifier__ 
          KeyCode::OPTION_L, ModifierFlag::SHIFT_L,
          KeyCode::COMMAND_L, ModifierFlag::SHIFT_L,
          KeyCode::JIS_KANA
        </autogen>
        <autogen>
          __KeyOverlaidModifier__ 
          KeyCode::OPTION_L,
          KeyCode::COMMAND_L,
          KeyCode::JIS_EISUU
        </autogen>
        <autogen>
          __KeyOverlaidModifier__
          KeyCode::OPTION_R, ModifierFlag::SHIFT_R,
          KeyCode::COMMAND_R, ModifierFlag::SHIFT_R,
          KeyCode::JIS_EISUU
        </autogen>
        <autogen>
          __KeyOverlaidModifier__
          KeyCode::OPTION_R,
          KeyCode::COMMAND_R,
          KeyCode::JIS_KANA
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::COMMAND_L,
          KeyCode::OPTION_L
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::COMMAND_R,
          KeyCode::OPTION_R
        </autogen>
      </item>
      <!--
      <item>
        <name>Swap Alt_R For Command_R, Alt_L To Space, Command_L To Alt_R, Help(Inc) To Command_L</name>
        <appendix>（キーボード側で予め Space_L に Help(Inc) を設定しておく）</appendix>
        <appendix>（Space_Lキーの空打ちで「英数」）</appendix>
        <appendix>（Alt_Rキーの空打ちで「かな」）</appendix>
        <appendix>（Space_L/Alt_Rキーを押している間に他のキーを打つと通常のCommandキーとして動作）</appendix>
        <identifier>remap.my_remap.barocco.kana_eisuu_and_space_l2cmd_l</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyOverlaidModifier__
          KeyCode::OPTION_R,
          KeyCode::COMMAND_R,
          KeyCode::JIS_KANA
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::COMMAND_R,
          KeyCode::OPTION_R
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::OPTION_L,
          KeyCode::SPACE
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::COMMAND_L,
          KeyCode::OPTION_L
        </autogen>
        <autogen>
          __KeyOverlaidModifier__
          KeyCode::HELP,
          KeyCode::COMMAND_L,
          KeyCode::JIS_EISUU
        </autogen>
      </item>
      -->
      
      <item>
        <name>For Space</name>
        
        <item>
          <name>Control_R + Space To Space</name>
          <appendix>（方向キー操作のためContorl_Rを押しているときに、QuickLookのためSpaceを押して、Spotlightが起動するのを防ぐため）</appendix>
          <identifier>remap.my_remap.barocco.ctrl_r_space2space</identifier>
          <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
          <autogen>
            __KeyToKey__
            KeyCode::SPACE, ModifierFlag::CONTROL_R,
            KeyCode::SPACE
          </autogen>
        </item>
        
        <item>
          <name>Control_R + Help(Inc) To Space</name>
          <appendix>（左SpaceバーにHelp(Inc)を割り当てているときに、上述の用途により）</appendix>
          <identifier>remap.my_remap.barocco.ctrl_r_help2space</identifier>
          <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
          <autogen>
            __KeyToKey__
            KeyCode::HELP, ModifierFlag::CONTROL_R,
            KeyCode::SPACE
          </autogen>
        </item>
        
        <item>
          <name>Help(Inc) To Space</name>
          <appendix>（キーボード側で予め Space_L に Help(Inc) を設定しておく）</appendix>
          <identifier>remap.my_remap.barocco.help2space</identifier>
          <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
          <autogen>
            __KeyToKey__
            KeyCode::HELP,
            KeyCode::SPACE
          </autogen>
        </item>
      </item>
      
      <item>
        <name>Pn(APP) To FnLock</name>
        <appendix>（Pn機能をデフォルトの位置から動かすと、元の位置のキーはAPPとなる）</appendix>
        <identifier>remap.my_remap.app2fnlock</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::PC_APPLICATION,
          KeyCode::VK_LOCK_FN
        </autogen>
      </item>
      
      <item>
        <name>Control_R To Control_R</name>
        <appendix> (Double Control_R To LOCK_CONTROL_R)</appendix>
        <identifier>remap.my_remap.double_ctrl_r2lock_ctrl_r</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __DoublePressModifier__
          KeyCode::CONTROL_R,
          KeyCode::CONTROL_R,
          KeyCode::VK_LOCK_CONTROL_R
        </autogen>
      </item>
      
      <item>
        <name>Fn + I/K/J/L To Up/Down/Left/Right</name>
        <identifier>remap.my_remap.fn+ikjl2cursor</identifier>
        <device_only>DeviceVendor::MiSTEL, DeviceProduct::BAROCCO_MD600</device_only>
        <autogen>
          __KeyToKey__
          KeyCode::I, ModifierFlag::FN,
          KeyCode::CURSOR_UP
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::K, ModifierFlag::FN,
          KeyCode::CURSOR_DOWN
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::J, ModifierFlag::FN,
          KeyCode::CURSOR_LEFT
        </autogen>
        <autogen>
          __KeyToKey__
          KeyCode::L, ModifierFlag::FN,
          KeyCode::CURSOR_RIGHT
        </autogen>
      </item>
      
    </item>
  </item>
</root>

```

### 改良希望点
* もうちょっとキーボードの厚さが薄かった良い。手前だけでも。
   * 何だか妙に厚みがあるように感じる。HHKBと比べて。
* HHKBの様に、BackSpaceは分割して、右Shiftの右端にもキーを置いて欲しい。
* 左右スペースバーを少し短くして、内側に小さなキーがあると良い。ショートカットなどできっと重宝する。
   * 親指の感触ですぐ区別が付いて、押し間違いなんてのも少ないだろう。
* DIPスイッチなどで、Fn, Pnキーの無効化が出来ると良い。
   * ソフトでリマップできないキーが<del>2つも</del>在るのは邪魔。
   * <del>右下のAlt,Fn,Pnが自由に使えたら、</del>右Ctrl+/,Fn,Alt,Pn → ↑/↓/←/→ を設定して捗るのに。
      * Pnキー潰しに成功したので、左下の4つの特殊キーが開いた。
      * 
* テンキーパッドとかを繋ぐためのUSB端子は、miniじゃなくてA端子なら良いのに。
* 始めて赤軸を使ったが、やっぱり静電容量無接点方式の方が好きかも……

以上が改良されたら、最強のコンパクト分離式キーボードになるだろう。

いやUltimate Hacking Keyboardがあったか……でもあれは派手なインジケータが着いてるのが苦手なんだよな。
追加パーツ付けられるのは良いが。