アプリケーション拡張機能なしでキーボード操作を快適にする方法

キーボード環境を快適にするには

作業効率を高めるには、キーボード環境を整えることが重要です。 ブラインドタッチをする人にとっては、ホームポジションからあまり手を離さないで操作できることが増えれば快適になります。 キーボード操作が好きな人は、本当に必要なとき以外はマウスを使うことを嫌がりますし、ホームポジションから手を離すことも嫌がります。

僕は、ウィンドウマネージャーはratpoison、キー割り当てはxmodmapを使っています。

CtrlとCapsLock入れ替え

快適にするために、最低限やっておくこととしては、CtrlとCapsLockを入れ替えておくことです。 キーボード操作が中心になると、Ctrlの使用頻度はかなり高いので、これは必須となります。 入れ替えておくと、Aの左にCtrlが来るので、かなりCtrlが押しやすくなります。 xmodmapの設定ファイルに以下の設定をしておきます。 今では、xorg.confを設定する方法もあるらしいです。


remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

Aの左は小指を酷使して嫌という人は、変換、無変換キーをCtrlに割り当てるという手もあります。 僕の場合、 変荷重キーボードを買ったので 、 Aの左がCtrlでも疲れません。 変荷重キーボードは、小指のように力が弱い指については、弱く押しても入力できるようになっています。

半角・全角キーをESCに割り当てる

半角・全角キーをESCに割り当てるのも地味に役立ちます。 そして、遠くにある元のESCキーは余ったファンクションキーに割り当てておくとあとで機能を割り当てられます。 ファンクションキーはF35まで定義されているので、F13以降から適当に割り当ててください。


!Esc = WWW
keycode 9 = F24
!半角/全角
keycode 49 = Escape

F24に割り当てたEscキーは、ホームポジションから遠すぎるので、タイピング中に使う機能には割り当てることはおすすめできません。 僕は、BGMの一時停止機能に割り当ててあります。

ショートカットキーを機能を割り当てる

特にLinux環境だと、ショートカットキー(単にキーということにする)に自由に機能を割り当てることができるようになっています。 キー割り当ては、ウィンドウマネージャーレベル、アプリケーションレベルでできます。

ウィンドウマネージャーレベルでは、今どんなアプリケーションを操作していても有効です。 対して、アプリケーションレベルでは、そのアプリケーション固有の機能を割り当てます。 ここで注意が必要なことは、ウィンドウマネージャーレベルのキーが優先することです。 すでにウィンドウマネージャーレベルで割り当てられたキーは、アプリケーションでは使えません。 ウィンドウマネージャーレベルで割り当てたキーを忘れてしまうことがあるので、アプリケーションとかぶらないようにすることが大事です。

僕の場合は、ウィンドウマネージャーレベルでのキーはホームポジションから遠めにしてあります。 たとえば、F24(xmodmapでESCをF24に割り当て済み)に「/bin/echo pause > ~/mplayer.fifo」を割り当てるには ~/.ratpoisonrc にこう指定します。


definekey top F24 exec /bin/echo pause > ~/mplayer.fifo

ちなみにこのコマンドはMPlayerで一時停止を行うコマンドです。 予め「mkfifo ~/mplayer.fifo」で作成しておき、 ~/.mplayer/config に「input=file=/r/mplayer.fifo」という行を加えておく必要があります。

Super、Hyperキーを使う

すでにアプリケーションにはたくさんの機能が割り当てているので、Shift、Ctrl、Altの修飾キーでは足りなくなってきます。

悲観する必要はありません。 実はX Window Systemでは、SuperとHyper修飾キーも使えます。 しかし、それらはキーボードには存在しません。 ではどうするか、それはxmodmapでキーに割り当てておくことです。

僕の場合、無変換キーをAltに割り当て、AltキーをHyperに割り当てています。 Altはそこそこ使用頻度が高いのでより押しやすい位置に移動したのです。 そして、元のAltキーにHyperを割り当てました。


! 131 = 無変換
remove mod1 = Alt_L
keysym Alt_L = Hyper_L
add mod3 = Hyper_L
keycode 131 = Alt_L
add mod1 = Alt_L

この設定をしてからXを再起動すればHyperが有効になります。

Hyperはどんなアプリケーションにも割り当てられていない*1ので、自分の好き勝手に割り当てることができます。 EmacsでHyper-q(元のAlt-q)を押したとき「H-q is undefined」と出てくれば、正しく設定されています。 Hyper修飾子は「H-」です。

SuperはデフォルトでWindowsキーに割り当てられているらしいです。 僕は使っていません。 ホームポジションからあまりにも押しづらく、使いものにならないからです。

特定の操作で別のキーを押したことにする

ショートカットキーといえば、キーに機能を割り当てるものと思いがちです。 実は特定のキーを押したときに、別のキーを押したのと同じ効果を得ることもできます。

たとえば、多くのアプリケーションではPageUpやPageDownにはスクロールなどの機能が割り当ててあります。 しかしこれらのキーは遠すぎます。 そこでもっと楽な操作でこれらのキーを押したのと同じ効果を得るようにするのです。 そうすることで、あらゆるアプリケーションの操作が快適になります。 ブラウザでもEmacsでもホームポジションから手を離さずにキーボードでスクロールできます。

すでにHyperキーを設定している場合、ratpoisonでは以下の設定をします。


definekey top H-s meta Prior
definekey top H-d meta Next
definekey top H-a meta Home
definekey top H-f meta End

この設定で、H-sとH-dでPageUpとPageDownとなります。 ついでに、HomeとEndもそれぞれH-aとH-fに割り当てましょう。 こうすることで、スクロールで使われる特殊キーが左手のホームポジションに集約されます。

常にH-dとH-aでスクロールする習慣がつくと、EmacsではC-vとM-vは使わなくなります。 そうなるとC-vとM-vは別の機能に割り当てることも可能になります。

*1:少なくとも僕は知らない。