2013-9-22[日] PCKeyboardHack, KeyRemap4MacBook でのダイヤモンドカーソル(^QF 有)設定

バッテリー妊娠で放置してた macbook を復活中(バッテリー新調)。実質win7機としてしか使ってなかったのだけど今度こそmac(osx)をそれなりにさわろうかと(未だにmacよくわからん)。macbookは昔買ったlate 2008 な奴なので今更すぎますが新しいの買うまでには至らず。メモリ8G,ssd250G にしたのでまだなんとかなるかな、と。osx10.8 や win8 (win7入れ直してwin8upgrade) にしたはいいけど、まず、何より辛いのはキーボード。普段PCのテンキーレスキーボード(フルキーボードからテンキーだけ無くしたタイプ)常用、それがないならダイヤモンドカーソル(VZ系)配置必需、という自分でも少し困った生態ですが抜けられず、で、windows環境については自前ソフトで対処だけど mac 側はさて...

といっても mac 側の選択はやっぱり PCKeyboardHack, KeyRemap4MacBook のインストールがベストの模様。以前だって入れてましたが、その能力を発揮できていなかったようで(ソフトが発達した面もありそうだけど)、今回本気で設定してみたら、ダイヤモンドカーソルで^QFとかの 2 ストロークキーも使えて、かなり幸せでした。

ということで、以下、PCKeyboardHack, KeyRemap4MacBook の設定メモ.

※[追記] PCKeyboardHack は OS X 10.8 用以降は"Seil"に、KeyRemap4MacBook は OS X 10.9用以降は "Karabiner" に変名された模様.

※[追記] ( こっち ) で 窓使いの憂鬱 を使ってlinuxのダイヤモンドカーソル対応してみた

日本語キーボードを接続する場合

PCKeyboardHack で、For Japanege の 3つをチェックする(Enable NFER Key on PC keyboard. Enable XFER Key on PC keyboard, Enable KAATAKANA Key on PC keyboard).
これで、日本語キーボード(JP106系) をつなげた時に、スペースの並びの、無変換キー、変換キー、右COMMANDキーとして使える.

※ 無変換キー=IME off 変換キー=IME on なので 全角/半角キーは使うこと無く. 無理に全角/半角キーを使うことは考えず、むしろ、このほうが楽なので、windows 環境も 無変換を IME off にすることにした.

ダイヤモンドカーソル関係

実は KeyRemap4MacBook の Change Key の項目に Diamond Cursor 等各種変更があるので、好みのがあればそれを使うのが吉... だけど好みにあうのがなかったので自分で private.xml を書くことに.

やりたいことは、他の修飾キーによる動作を壊さずに、別途CapsLockキー同時押しでダイヤモンドカーソル移動等VZ系の基本操作すること(簡易に実現できる範囲のみ用意)

まず CapsLockキーを別のキーにするには PCKeyboardHack で、
CapsLock→Change Caps Lock にチェックをし、keycode を 右CTRLキー(62) にする.
(macbookでは 右CTRLキー がついてないので右CTRLを拡張キー扱いにしても影響少ないだろうと想定)

CapsLock については、これだけでなく、macos本来のキー設定でCapsLockを無効にする必要があるらしいのでそれも行う.
システム環境設定
→キーボード(アイコン)
→キーボード(タブ)
→修飾キー...
→キーボードを選択(変更したいキーボードを選ぶ)
→CapsLock キーを アクションなしに変更.
キーボードごとに設定できるので、必要なだけ設定する.
(※と書いたけど、新規追加したキーボードのCapsLock無効化忘れてても右CTRL化してるような…)

次に private.xml の作成.
作ってみた private.xml は これ.

設定方法は KeyRemap4MacBook の Misc & Uninstall(タブ) の Open private.xml を開けて、作ったものを上書き. Change Key(タブ) で ReloadXML して項目が現れたら必要な物をチェック.

作ってみた設定項目は、(以下ここでの ^ は右Ctrlの意)

Control_R Diamond Cursor ^E^X^S^D(上下左右) ^A^F(単語移動) ^R^C(頁移動) ^H(BS) ^G(DEL)
Control_R-Q ^QF(検索) ^QA(置換) ^QS(行頭) ^QD(行末) ^QR ^QC(ファイル先頭/末移動)
Control_R-T/V ^T(HOME) ^V(END) ※vzと違うけど楽にHOME/ENDしたく
Control_R-Z/W ^Z(undo) ^W(redo) ※ お試し. (vzだと1行ロールup/downだけど)
PC Application to FN Key WinキーボードのAppsキーをmacのFNキー扱いにする

生成するキーは標準のテキストエディタ準拠。
それなりにはなったのだけど、macでの(追記:編集キーを使うと) PageUp/PageDown Home/End 等のデフォルト動作が windows とは違う習慣になっていてちくちくとつらい(移動じゃなくてスクロールだけって何それ ... 行頭/行末/頁移動/ファイル先頭末移動、がことごとくwinと違ってた)
(追記:mac側は 頁移動=単語移動(OPTION+←→), OPTION+PageUp/PageDown, 行頭移動=COMMAND+←, 行末移動=COMMAND+→, ファイル先頭移動=COMMAND+HOME,ファイル末移動=COMMAND+END, 検索=COMMAND+F, 置換(アプリで違うけど標準のエディタでは)=OPTION+COMMAND+F)

作成にあたってはググっていろいろ参照…ちゃんと控えてなかった。まあ 2 ストロークキー以外は難しいことはなかったです。
2 ストロークキー関係はあまり情報なさそうで、一番役立ったのは こちら。(あと、VZ化されてるこちとか)
見よう見まね、やった結果は先の private.xml にありますが、ほんとうにこれでよいのかは自信なし。少なくともうちでは動いてるということで。

(追記: 2ストロークキーの設定では参考元にあるように config_only を使用。使わずオーソドックス?な方法だとたしかに "キーリピートが止まらない" 症状でした。ただ VK_CONFIG_SYNC_KEYDOWNUP_???? の使い方がよくわからずウマく設定できず、他の方の2ストロークキーの設定で使われてる VK_CONFIG_FORCE_ON/OFF を真似ねてみたところ希望の動作になりました。
あと、private.xmlの定義順で2ストローク用キー(Q)より先に1ストロークのキー(SDEXAFRC)が定義されていると2ストローク目のキー(SDEXAFRC)が1ストロークのキーとして処理をされてしまうようで、Qの定義を先に行なっています)

 AppsキーをFN にするのは一見 PCKeyboardHack で出来そうに思えたけど変更元となるAppsキーが一覧にないので、KeyRemap4MacBook で試してみたら意図通り動いてくれた、といった代物. (実際使うことがあるかというと ... 音量操作は便利かも、と使うようになった)(追記: Apps キーを使うには PCKeyboardHack でチェックマーク付けて有効にしておく必要あり) [追記] 使ってなかったら...いつの間にか機能しなくなっていた模様(OSバージョンアップ付近?)

※他の方の設定みてるとアプリケーション別とかの対応をされてたりして、結構高度なカスタマイズできるようですが、そこまでの気合はなく.

※ 編集キーの役割が違うので配置的にPCキーボードに拘る必要ないけれど、キータッチ感のために変える値打ちはある……が、テンキーレスキーボード、リアフォ 91U を繋ぐと右側の日本語キーボード配置な記号群が英語キーボード準拠に化ける。数字キー部分の記号は日本語準拠なので解せない。FILCOの茶軸やFujitsuの8769 を繋ぐと問題なく入力できたのでそちらを使えばいいのだけど、ちと敗北感あり。

※追記:そもそも己がダイヤモンドカーソル使うようになったキッカケが、むかーし FM-11(OS-9)とPC98(DOS)を使ってたからで、違う文化圏のマシンを触る限り二十ウン年前と問題はかわらんし解決方法もまた……なんですが、どうせ覚えるなら emacs やら vi(m) のほうが幸せだったかもな、です(今更その気はないけれど)。unix系osは生き続けemacs,vimユーザーも新規ユーザーがいるわけですが、 DOS(CP/M) 系の操作は Windows に殺されたので、未だにダイヤモンドカーソルに拘ってる人はおそらく40代付近以上……滅んだ操作体系で 小指痛くなることもあるけれど 左手のみですむ移動操作は(特に左利きには) それなりに幸せかもとは、言っておこう。

テキストエディタ物色中

さて、最低限キーボードを触る気になれるようになったけれど、問題は常用できそうなテキストエディタがあるか……まだ物色中。

決定打は今のところなし。Windowsではなんだかんだで秀丸(VisualStudio風キーカスタマイズ)に慣れすぎて……全角空白可視化したいしvz由来のスタック型カット&ペースト必需だし tsv,csv モードもなるべくほしくetc…(後半わがままなのは自覚. 正直エディタを使いこなせてるかというと?な奴だし)

NxWineで秀丸 は 思いの外動いてくれて良さげだったけれど、細かい不具合はあるにはあるし、キー操作でタブ切り替えると窓のフォーカス離れるのでいちいちマウス操作することになり今は諦め。(他の商用winエミュソフト使えばマシなんだろうか?)

性能的には sublime text 2/3 がよさそうだけどシュアウェア購入に見合うかは微妙. この金額払うのなら秀丸で使ってる機能がほぼほしいと思ってしまい…(スタック型カット&ペーストはありそ?なくてもスクリプトでなんとかなりそうな気配だけど tsv,csvモードは無さそ?。アウトライン表示とかはどうだろ). win,mac,linux 用があるのは魅力だけど(ああwin版はime入力窓が追従せず離れて表示されるのは嫌状態).

フリーのだと mi, TextMate2, komodo edit あたりか.

mi は日本人作者だしシンプルでとりあえず使う分にはよさげ……キーカスタマイズが部分的なのでもう少し設定できればと思う(理解が足りてないだけ?)

komodo edit はIDE的要素つよくてテキストエディタとしてはちょっと重め、だけどこれもオープンソースだし win/mac/linuxあるのは魅力か.

TextMate2 は元々商用でそこそこ評判がよかったものがオープンソース化したものらしく高機能、だけどごちゃごちゃしてる感じ、でも日本語の解説頁はままありそう……あ今ググってこれみたらデフォルトでスタック型カット&ペーストできた。これは俄然興味わいてきた

……もうしばらく右往左往してます。