Macで本気でRealforceを使う

タイピングをガチってた割に打鍵感にそこまでこだわりのない方なので、 macbook では設定もめんどいし内蔵キーボードでいいか、Control と Command と Caps くらい入れ替えときゃいいだろ、 くらいの気持ちで雑に過ごしてきたのですが、

  • 首肩痛めたのでノートパソコンスタンド(こういうやつ)を導入した
  • → らキーボードの位置も高くなって打ちづらいので余ってた Realforce を繋いだ
  • → ら Windows 用のショートカットが身に染み込みすぎてて発狂した *1

のでなんとかして MacWindows 用外付けキーボードを繋いで Windowsキーバインドで使ってやろう*2 という記事です。

結論

お金と時間と空間に余裕のあって Mac しか使わない人

東プレ,第2世代「REALFORCE」のMac向けフルキーボード4製品を2019年3月に発売 - 4Gamer.net

REALFORCE for Macが出るらしいんでそれを待ちましょう。

別に 変換/無変換 とか使わなくね? むしろ Mac の 英数/かな の方がいいでしょという人

Windows の方の挙動を変えてしまいましょう。GoogleIME ならこの辺でいけそうです。

Windowsで英数/かな入力切替は無変換/変換キーでしよう | Techs Life

また将来的には Windows の 無変換/変換 の挙動が Mac の 英数/かな 準拠に変わるという話もあるらしいです。

[半角/全角]キー不要に? WindowsのIME切り替えがMac方式に - ITmedia NEWS

私の場合

KarabinerHyperSwitch 入れたらそこそこ苦痛なく使える状態になりました。

やったこと

とはいえ Windows はそこまでキーボードショートカットに頼る文化でもないので(多分)、 無意識で使おうとしてストレスになるようなショートカットはそこまで多くありませんでした。 のでその辺だけ上書きして、Mac でもそれっぽい挙動になるようにしました。

具体的には (Windows における)

  • Ctrl+A, C, V, Z, F, T, ...
  • 半角/全角
  • 変換, 無変換
  • Alt+Tab

あたりです。

Karabiner

Windows の Ctrl+英字キー 辺りのショートカットは Mac では大体 Cmd+英字キー あたりで違和感なく使えるので、 それだけなら Mac の標準機能でできます。(システム環境設定 → キーボード → キーボード → 修飾キー)

f:id:permil:20190124101707p:plain:w300

が、他の入れ替えは標準機能ではできないので Karabiner を入れます。 いわゆるキーリマッピングツールで Windows における窓使いの憂鬱とか DvorakJ みたいやつです。たぶん。

Karabiner を入れると認証を求められるので適当に許可します。 Karabiner-Elements.app が設定用アプリ、Karabiner-EventViewer.app は実際に発生しているキーコードのビューワーです。

f:id:permil:20190124102329p:plain

Karabiner を入れると別のキーボードデバイスとして認識されます。 ので修飾キーの入れ替えが戻ったり、内臓キーボードと Windows キーボードで Control の位置が違ったりして一瞬焦るんですが、 Karabiner 側でキーボードごとの設定を持てるので、Cmd/Control/Caps あたりシステムの設定を使わず Karabiner 側で個別に設定することにします。(既にシステム側で設定済の人は戻した方が混乱しないかもしれません。)

Control, Caps, Cmd

内蔵キーボードと外付けキーボードで修飾キーの配置が違うので個別に設定します。

内蔵キーボードでは Windows ユーザーが如何にも押しそうな位置に Caps があるので、Caps を押したら Cmd になるようにしてしまいます。 Simple Modifications から

  1. Target Device に Apple Internal Keyboard を選択し、
  2. Add Item → From key: caps_lock, To key: left_command

を設定します。

f:id:permil:20190124104732p:plain

同様に外付けの方では、caps_lock → control、left_control → left_command を設定します。

半角/全角

Complex Modifications → Add rule → Import more rules from the Internet (open a web browser)
の一番下の other examples から、
input_source_if,input_source_unless example
を Import し、Karabiner の方で Enable にすれば完了です。 この辺の下の方見ました。

変換, 無変換

まじめにシミュレートしようとすると面倒そうなんですが、 私は単に日本語入力後「カタカナに変換」「普通に変換」の用途でしか使ってなかったので、単に

Simple Modifications → Target Devices: For all devices から

  • From key: PCキーボードの無変換キー → To key: F7
  • From key: PCキーボードの変換キー → To key: spaceber

を設定するだけでごまかしてます。

入力してないときは無変換キーで入力モード切り替えるとかも Complex Modifications 使えばできんのかな、どうだろ...

(おまけ) PrintScreen, Alt+PrintScreen

頻繁に使うわけでもないし元のショートカットでも困ってないんですが Complex Modifications でできそうだったので試しに設定してみました。

  • PrintScreen → Cmd+Shift+3
  • Alt+PrintScreen → Cmd+Shift+4, 50ms後 Space

Windows のような最前面にあるウィンドウを自動でキャプチャする機能はないっぽいので、 Cmd+Shift+4 → Space でキャプチャするウィンドウの選択までを Alt+PrintScreen で行うようにしてみました。

実際の設定内容はこんな感じ*3 Complex Modifications の設定は設定ファイル(~/.config/karabiner/karabiner.json)を手動でゴリゴリいじるしかなさそうなので分かる人の参考になれば。complex_modifications → rules の下の配列に追加してけば良いです。 公式ドキュメント日本語の解説記事が大変参考になりました。

HyperSwitch

Windows の Alt+Tab に相当する機能は Mac には存在しないようなので、*4 それっぽい挙動を実現してる HyperSwitch を入れました。

手順はこの辺り。 ざっくり書くと

  1. インストール後起動すると認証を求められるので許可する
  2. 再度起動しライセンスに同意
  3. Preference → General から Run HyperSwitch in the background にチェック

で Option+Tab (Windows 用キーボードでは Alt+Tab) でウィンドウを切り替えられるようになると思います。 複数の操作スペース (マルチデスクトップ) を使っている人は Include Windows from other spaces にチェックを複数スペースをまたいだウィンドウの切り替えができるようになります。お好みで。

*1:どうやらこれまでは「macbook の場合はこのキーで 英字/かな 変換」みたいな理解をしてたのでそんなに不都合なく使えてたみたいです。Realforce 繋いだら完全に脳が Windows モードになって頭おかしくなった。

*2:コード書くときは7割方 mac になってしまったけれど、PC はゲーム機だと思ってるので心はいつも Windows ユーザーです

*3:本当は複数打鍵も設定できるみたいなのだけど GUI が絡むせいか delay 入れないと動かなかった。この辺の人もハマってるっぽい。

*4:同じアプリのウィンドウ同士を切り替える Command+F1 と、アプリ間を切り替える Command+Tab はあるが、アプリをまたがってウィンドウを切り替えるショートカットはないっぽい。たぶん。