leopardgeckoのブログ

Macの関連事項など

Planckキーボード:レイヤーを切り替えずにMacとWindowsで共用する。

はじめに

MacWindowsで同じキーボードを使いまわしたい場合、PlanckはMacではUS配列で認識され、WindowsではJIS配列のキーボードとして認識されます。そこで、記号の入力をどうやって一致させるのかという問題が生じます。特に問題になるのは、シフトキーを押しながら「;(セミコロン)」を押したときと「’(シングルクォーテーション)」と「”(ダブルクォート)」の入力でしょう。記号は全て別のレイヤーに追いやってしまう手もありますが、普通のQWERTY配列で使っている場合はこれだけはデフォルトレイヤーに残しておきたいという人も多いのではないでしょうか。
どちらもJIS配列として使うならばMacのシステム環境設定でキーボードをUSからJISに切り替えるだけで済みますが、問題はどちらもUS配列として使いたい場合です。古めのWindowsでUS配列のキーボードとして認識させるにはレジストリを書き換えるなど少々面倒な作業が必要になるようです。また、共用のPCで使いたい時などはそこまでいじるわけにはいかない場合もあるでしょう。
以前公開した記事のようにMacWindowsのレイヤーをそれぞれ用意する方法もありますが、いちいちレイヤーを切り替えるのは面倒ですしデフォルトレイヤーがどちらに設定されているのかがわからなくなってしまうこともあるでしょう。
そこで、OS標準の簡単な作業をするだけでMacでもWindowsでもレイヤーの切り替えなしでUS配列のキーボードとして使う方法を考えました。以前の記事とかぶる部分もありますが、これまでの集大成ということでご容赦ください。

考え方

  • MacでもWidowsでもJIS配列のキーボードとして認識させておいて、実際にはUS配列として使えるキーマップを作ります。
  • コピペなどのキー操作を統一させるために、MacのコマンドキーがWindowsではコントロールキーとして動作するようにします。
  • MacでもWindowsでも同じキーで日本語と英語の入力切り替えができるようにします。

やり方

以下のキーマップをダウンロードしてコンパイルし、Planckに転送します。keymap.cだけでなく全てのファイルを入れてください。
キー配列は適宜ご自身の使いやすいものに変えてください。

キーマップのファイルはここからダウンロード
動作確認環境:Planck PCB rev 4、QMK Firmware 0.6.214

次にMacのシステム環境設定を開き、「キーボード」からPlanckをJIS配列のキーボードとして認識させます。具体的なやり方は他サイトを参照してください。

また、同じくシステム環境設定の「キーボード」から、「修飾キー」のボタンを押し、CommandキーとControlキーを入れ替えます。これでMacのCommandキーがWindowsで使うときはControlキーになりますので、同じキーでコピペなどができるようになります。
(Command/Controlキーの入れ替えは不要!という方は、上記の入れ替え作業をやらずにconfig.hの12行目の「#define SWAP_LCTR_LGUI」を削除してください。Controlキーの位置は変わらず、MacでのCommandキーがWindowsではWindowsキーになります)

WindowsではOSの標準機能で「無変換」キーをIMEオフ(日本語入力オフ)に、「変換」キーをIMEオン(日本語入力オン)に割り当てておきます。具体的なやり方は他サイトを参照してください。

キーマップの説明

LowerとRaise以外にも二つのレイヤーを用意しましたが、MacWindowsの共有には直接関係ないオマケですので必ずしも使う必要はありません。keymap.cを見たい場合はこちらから

レイヤー 説明
JIS/US デフォルトレイヤー。通常のQWERTY配列です。JISとUSの2種類がありますが、MacとWidowsだけで使うならUSレイヤーに切り替える必要はありません。US配列でしか認識できない機器(iOS機など)で使うときにはUSレイヤーに切り替えてください。
Lower 主に数字入力とメディアキー用。テンキー様配列もあります。後述のようにレイヤーをトグル(ロック)できるので、数値だけ入力する際には楽でしょう。
Raise 主に記号入力とメディアキー用。Lower同様にトグルできます。(記号のレイヤーをロックしてもあまり意味はないかもしれませんが・・・)
Function_1 Escキーの長押しでオンになります。移動、ウインドウやタブの切り替え、Lower/Raiseレイヤーにトグルするためのレイヤーです。Escキーを押しながらLower/Raiseキーを押せばLower/Raiseレイヤーにトグルできます。もう一度Lower/Raiseキーを押せば解除されデフォルトレイヤーに戻ります。
Function_2 Tabキーの長押しでオンになります。マクロ入力用のレイヤーです。お好きな設定にしてみてください。
Adjust 設定を変更するためのレイヤーです。デフォルトのJIS/USレイヤーを切り替える、ファームウェア書き換えモードに移る、バックライトの強さを変える、など。Mac用のパワーキー(一発でスリープできる)、Windows用のタスクマネージャーを呼び出すキーも用意しました。
  • その他解説

    • MacWindowsのどちらでもLowerキーの単押しで英語入力、Raiseキーの単押しで日本語入力になります。
    • LED対応です。オンになっているレイヤーによって光の点滅速度が変わります。Lower/Raiseをトグルしているかどうかの判断にも便利です。レイヤーをオンにするたびに点滅するので全てのキーにLEDを仕込むと鬱陶しいかもしれません。私はLower/Raiseキーだけに2x3x4mmの角形LEDを入れています。
    • サウンド対応しています。Lower/Raiseのトグルon/offや、Adjustキーを押した時などにサウンドが鳴ります。誤動作防止の役に立つでしょう。
    • コンパイルされたファームウェアはPlanckのメモリギリギリのサイズになります。「LED点灯やマウスキーはいらないけどマクロをいっぱい設定したい!」というような場合には「rules.mk」ファイルの「BACKLIGHT_ENABLE」や「MOUSEKEY_ENABLE」を「no」に設定してください。特にマウスキーをオフにするとメモリがだいぶ空きます。

下はLEDやレイヤートグルの動作紹介の動画です。(この動画ではダブルタップも出てきますが、今回のファームウェアには実装していません)

最後に

新しいMacに接続するときはJIS配列として認識させてコマンドキーとコントロールキーを入れ替えるだけ、Windowsで使いたいときは無変換/変換キーの設定をするだけで全く同じ使い勝手になります。

QMK Firmwareの良いところは、C言語で動作するのでアイデア次第でこのような極めて強引な手法も簡単に実現できてしまうことでしょう。自作系キーボードでは単純にキーを並べ替えるだけではない機能的なカスタマイズも楽しいものだろうと思います。