isseium's blog

田舎に住むWebエンジニアのブログ

JCtrl +α で Windows 快適キーボード生活

はじめに

※設定変更等は自己責任でお願いいたします

生産的なエンジニアは、タッチタイピングは当然のことながら、できるだけキーボードショートカットを駆使し、マウス操作のロスをなくそうとすることに加えて、常にホームポジションにいるように心がけます。

しかし、現状の一般的なキーボードは、ESC, 方向キー, BS, Delなど、よく使うキーはホームポジションからは打つことができません。

そこで、よりキーボード生活を快適にするためなにかないか探したところ、K. Kimura ( @ ) さん作の JCtrl というソフトウェアに出会いました。無変換キー + 各種キー で様々な操作ができるようになるという優れたソフトウェアです。


今回は、これに少しMacライクなアレンジを加え、無変換ではなく、Caps Lock(英数)キー + 各種キーでショートカットキーを操作できるようにし、より生産的なキーボードにしてみました。

方針

  • JCtrl の適用(無変換によるショートカット導入)
  • 日本語 ON/OFF を Mac ライクにする
  • 無変換キーとCaps Lock(英数)キー入替(Caps Lock (位置)によるショートカットキーの導入)

これで、(キーボード表記上の) CapsLock + H が BS になったり、CapsLock + D が方向キーの下、といった操作が可能となります。私は、Macも使っていますので、IMEオンオフは同じ位置にしたかったので、それに近い形に変更いたしました。

JCtrlの導入

JCtrl とは、K. Kimura ( @ ) さんが開発した、文字編集操作、日本語変換操作などを楽にするために開発されたキーボードショートカット拡張ソフトウェアです。

JCtrl - http://www1.vecceed.ne.jp/~bemu/act/JCtrl_doc.html


無変換キー + 各種キーで、様々な動作ができます。
(ただし、管理者権限のパスワード入力画面やログイン画面などでは使えません)


キーマップはこんな感じ(無変換キーとの同時押し)


引用: JCtrlの機能割り付けマップ (http://www1.vecceed.ne.jp/~bemu/act/JCtrl_doc.html)



なお導入手順は難しくなく、適当なフォルダにインストールをして、起動します。
通知領域のアイコンを右クリックして、「スタートアップに登録」で、自動起動設定ができるようになります


JCtrl を使いこなすだけでもだいぶ生産性が向上するはずです。

さらなる効率化を求めて! 日本語 ON/OFFのカスタマイズ

Win (MS-IME, ATOKのデフォルト)では、半角全角キーで 日本語のON → OFF, OFF → ON を行います。
一方、Mac の日本語ON/OFF 切替は、ON(英数キー) とOFF(かなキー)で分けられています。

Winのほうは、目でIMEのバー状態を確認してから日本語ON/OFFをする必要があり、半角全角キーがホームポジションから遠いので、ロスが発生します。
一方、Macは、自分が思ったほうのキーを押してから文章入力を開始するという癖をつければ、そういったことを気にする必要はなくなります。


以上のことから、MacのIME ON/OFF の仕様が生産性向上には向いていると思うので、これをWindowsに適用します。


キーの位置は、Macと同様にスペースの左右のキーにしたいと思います。
つまり、スペース右側の変換キーをIME ON、無変換をIME OFFに…


おっと、無変換は JCtrl でも使っています。ぶつかってしまいました!!*1

解決策:Caps Lock と 無変換キーの位置を変える

Windows には、標準でキーバインドを変える方法があり、マイクロソフトが公式その方法を公開しています*2

レジストリをいじるので、その意味がわかる方のみ行って下さい。
ここをいじって、CapsLock と無変換キーの位置を交換します。


設定はこんな感じ。

設定後に再起動すると、スペースの左側のキーはCapsLockキーに、CapsLockキーが無変換キーになっています。


そして、今度こそ 日本語 ON/OFF のキーを変更します。
方法については、すでに秀逸な記事があるのでそちらを参照してください。

「無変換キー」を「IMEオフ」に設定した - IDEA*IDEA
http://www.ideaxidea.com/archives/2009/01/setting_muhenkan_key.html

記事と同じで設定画面まで進み、
「英数キー」を IME オフ
「変換キー」を IME オン
とします。


これで生産的なキーボードのできあがり!!

上級者向けおまけ: 矯正方法


※とっても危険です。ご利用は自己責任で!!


生産的なキーボードキーバインドにしても、これまで何年も使っている使い方をどうしてもしてしまいます。
結局使い慣れた方法を使ってしまい、せっかくの設定が、意味をなさなくなることもあります。

というわけで、矯正(強制)します。

方法は簡単です。
ScanCodeでキーを無効化しましょう。(0x00にマッピングすると無効化)

本当は無効ではなく使い分けをすべきなんですが、とりあえずはじめは矯正しましょう。

【重 要】

無効にしたキーは必ずほかのキーで入力できるようにしましょう。
(右下あたりのキーとか、テンキー側のキーとかに)
ログインに必要なキーが打てなくなると、ログインができなくなります

無効にしてみるといいかもキー
キー名 ScanCode
BS 000E
ESC 0001
ENTER 001C
半角全角 0029
E048
E04D
E04B
E050
TAB 000F
例) BS無効(必要なときのために右altに割り当て)


※追記:すみません、画像間違っていました

解説 *3 *4
2行目:
上位4バイト 00 00 00 05 -> 一番最後の 00 00 00 00 まで設定数を書く
下位4バイト 00 00 0E 00 -> BSキーを無効
3行目:
上位4バイト 0E 00 38 E0 -> 右altをBSに

その他、入替方法、ScanCodeの参照はコチラが便利です。
http://lamoo.s53.xrea.com/customize/index.html
http://www3.airnet.ne.jp/saka/keyboard/109scode.html
(ScanCode 1 の / から左側の16進数)


必ず、代替のキーバインドを設定してくださいね。
万が一失敗しても、責任はとりません。

万が一、失敗したら?

http://rest.seesaa.net/article/19501814.html
に掲載されておりました。が、確認はとっていません。



では、生産的なキーボード生活を!!!(会社でもこの設定にしたい・・・)

*1:JCtrl の作者さんに問い合わせましたが、無変換キー以外の対応はいますぐは無理のようでしたので、JCtrlに依存しない解決方法を考えました。

*2:Scan Code Mapper for Windows http://www.microsoft.com/whdc/archive/w2kscan-map.mspx
(古い文書ですが、Windows 7 x64 でも動作確認できました。)

*3:設定をする4バイトのうち、下位2バイト(00 0E = BSキー) を 上位2バイト(00 00 = 無効) に変更するという意味になります

*4:設定時はリトルエンディアンなのでキーマップは1バイトずつ逆になります。