実質的な初エントリー。何を書こうかと考えていましたが、ここ数年をかけてカスタマ イズを続けていたキーボード配置の変態的カスタマイズをまとめのために紹介しようと 思います。使っているキーボードは日本ではごく一般的な109日本語キーボードです。
そもそもカスタマイズを始めたきっかけ
3年ぐらい前タイピングのスピードをあげるのにはまったことがありました1。最初はローマ字入力を練習していたのですがそれが上達し てくると、次はアルファベット、記号入力の練習を始めました。アルファベット、記号 入力になるとローマ字入力では使わなかった Shift キーを押さなければならなくなり ます。
このとき、左 Shift キーを左手小指で押していたので、A や Z とかの押しにくさといっ たらなかった。しかもホームポジションから離れて本来とは違う指で a や z を打鍵し なければいかなくなります。周りには左 Shift キーと右 Shift キーを使い分けている 人もいましたが、そんなメンドクセー事はしたくねー、と思いました。ここで初めてキー ボード配置を変えたいと思ったわけです。
sticky shift, SandS, one shot modifier
んで、そんなことは昔の人達も考えているわけで特殊な Shift キーの入力の仕方は幾 つか考えられていました。その1つが sticky Shift。これは Shift キーを押しながら 他のキーを打鍵するのではなく Shift キーを1回打鍵した直後の文字が大文字になると いう入力の仕方です(Shift を押し続ける必要がないということですね)。
そしてもう1つが SandS です。これはスペースキーを押しながら他のキーを打鍵すると スペースキーが Shift キーとして働くという入力の仕方です。スペースキーを単独で 打鍵すればスペースが入力されます。これは普段遊ばせている親指で Shift キーを押 せるようになるので、全くホームポジションから離れずに大文字、記号を入力すること ができます!初めて使ったときはヨダレが出ました。
この SandS は one shot modifier の一種と言えます。one shot modifier は対象キー をおしながら他のキーを打鍵すると修飾キー2と して働き、対象キーを単独で打鍵するとそのまま入力される方式です。SandS の場合は 対象キーがスペースで、修飾キーが Shift ということですね。これまたあとで出ます。 sticky shift だと1つの大文字しか入力することができません。英語を書いてる時や、 SKK で入力するときは便利なんでしょうが、私はプログラムも書くことがあり、大文字、 記号が連続することも多々あるので、SandS を使うことにしました。
窓使いの憂鬱
実際に SandS を実現しようとすると、何かしらのプログラムでキー配置をいじること になります。キー配置を変更できるプログラムとしては窓使いの憂鬱がものすごく有名 です。他にも、猫まねきや AutoHotKey とかあるらしいのですが使ったことないので知 りません。使っている人がいたら使い勝手を教えてください。
窓使いの憂鬱は
いかんともしがたい理由により UN*X Wizard が窓使いにジョブチェンジする時、その操作体系の違いにより憂鬱な日々を送らざるを得ないことは想像に難くありません。「窓使いの憂鬱」は、その憂鬱を少しだけ和らげることができるアイテムです。 — 窓使いの憂鬱
というような目的で作られており、かなーり柔軟にキーボード配置の変更ができます。詳細はマニュアルに譲りますが、SandS を使うだけなら設定ファイルに
mod Shift += !!Space
or
mod Shift += !!!Space
と書くだけです。前者の場合、スペースを押し続けても、スペースは入力されません。 これだと、連続してスペースを入力したいとき不便なので、後者の場合はスペースを押 し続けてしばらく経つとスペースが(連続で)入力されます。スペースを押してからど のキーを打鍵しようかな?と考えているとスペースが入力されてしまいます。そんなこ んなで SandS を手に入れた私は超快適な Shift 生活を送ることができました。
Ctrl キーのカスタマイズ
タイピングにはまっていたのとほぼ同じ頃、私は Emacs というエディタを使い始めま した。一般的な Windows ユーザは Shift やせいぜい Ctrl ぐらいしか修飾キーを使わ ないと思いますが、このEmacs というエディタ、Ctrl や Alt、果てには Super や Hyper といった修飾キーを多用しまくります。特に Ctrl キーの使う頻度は半端じゃあ りません。というか使わないとまともに操作できません。
なので、Emacs 界隈ではキーボードの左下に追いやられている左 Ctrl を Caps Lock と交換して、a キーの横に Ctrl を持ってくることがよくやられます。はじめからそう 配置されているキーボードがあるくらいですから、やっている人はかなり多いのでしょ う。これを窓使いの憂鬱で実現するには、設定ファイルに
## 左コントロールとCapsLockの入れ替え ## CapsLock を Ctrl にして、CapsLock の存在を消し去ることにした mod Control += 英数 key *英数 = *LeftControl #mod Control -= LeftControl #key LeftControl = 英数
と書きます3。下2行がコメントアウトしてあります が、これは私の場合は Ctrl と Caps Lock の交換ではなく Caps Lock を Ctrl に変更 して Caps Lock というキーには消え去ってもらうことにしています。いままで一度も 意図的に Caps Lock を使ったことはありませんし、他人に Ctrl どこにあるの?と聞 かれる心配もないので、これでいいかと思っています。下2行のコメントアウトを外せ ば単純な交換になります。このカスタマイズによってだいぶ Emacs が使いやすくなり ます。
さらにカスタマイズ。親指を遊ばせてはならない
以上で SandS と Ctrl の位置変更はできて、なかなか使い勝手も向上したわけですが、 まだ満足しません。まず、Crtl が a キーの横になったのはいいのですが、これは結局 左手小指で押さなければならず、左 Shift キーと同じ問題がでてきます(Ctrl+a をど うやって押すか?)。また、Emacs でなかなか使用頻度の高い Alt の押しにくさも問 題です(最も使うであろう Alt+x は親指がつりそうになります)。
じゃあどうするかというと、ここまで読んでくれたなら予想できてしまうかもしれませ んが、Ctrl も Alt も親指で押せる位置に変更します。当然親指の位置的にスペースキー に近いキーになります。そして、スペースの両隣といえば変換キーと無変換キー。みな さん、この2つのキー使ったことありますか?私はありません。なんでこんな位置に鎮 座しているのか全く理解できませんが、この位置にあるなら有効活用してしまおうとい うことです。
ちなみにこの頃から使う OS が Windows 7 になり、窓使いの憂鬱が開発終了で使えな くなってしまいました。Windows 7 における窓使いの憂鬱の後継としてのどかというプ ログラムがあります。有料にはなってしまいましたが2000円程度ですし、それだけの価 値は絶対あります、とおすすめしておきます。以下ではのどかの設定を説明します。使 い勝手はほぼ窓使いの憂鬱とは変わりませんから、以下の設定も窓使いの憂鬱でそのま ま使えるかもしれません(確認はしていない)。
というわけでのどかで変換キーに Ctrl、無変換キーに Alt を割り当てるには、のどかの設定ファイルに
## 無変換をAltにする mod Alt += !!無変換 key *無変換 = *RightAlt ## 変換をCrtlにする mod Ctrl += !!変換 key *変換 = *RightControl
と書くだけです。実に簡単です。ただし、もともと IME で変換キーや無変換キーに何か しらの動作が割り当てられていることがあります。それを無効にしないと所望の動きは しないと思います。
このカスタマイズをすることにより Emacs の操作性は当社比2倍になります。実際、こ れによって Alt を使うキーバインドが使いやすくなり、ますます Emacs が便利になっ た気がします4。親指を使うのは最初はなかなか難しいですが、慣れればそうでもあ りません。動きとしては圧倒的に人差し指から小指までのほうが激しいのですから。
さらにさらに(変態的に)カスタマイズ。修飾キーだけなんてもったいない
実は上の Ctrl や Alt を親指で押すのは、Emacs 界隈ではたまに聞く話で、私以外に も設定している人はいると思います。しかし、私はこれをさらに変態的にカスタマイズ します。せっかく親指で修飾キーを押せるようになったのだから、その修飾キーを one shot modifier にしてしまうのです。つまり、変換キーや無変換キーを単独で打鍵 した場合、何か別のキーを入力するように設定します。
どのキーを入力するかはいろいろ考えられます。私も試行錯誤中ですが、今のところ変 換キーを Enter、無変換キーを Esc にしています。この2つのキーは意外とホームポジ ションから遠いのです。Emacs 使いなら Enter は C-m にしろ、と言われるかもしれま せんが、C-m は1ストロークとはいえ2つのキーを押すことになるので、やはり1つのキー 単独の押しやすさにはかないませんし、のどかで設定すればどのようなアプリケーショ ン上でも使えるので便利です。Esc は Emacs ではそんなに使用頻度は高くありません が、あると便利なときもあります。vi 派の人ならものすごく便利に使えるんじゃない でしょうか?
これを実現するのどかの設定は
1: ## 変換をCrtlにする 2: mod Ctrl += !!変換 3: #key *変換 = *RightControl 4: ## 単独で押したら Enter にする(one shot modifier) 5: key ~R-*C-変換 = Enter 6: key R-*C-変換 = &Ignore 7: 8: ## 無変換をAltにする 9: mod Alt += !!無変換 10: #key *無変換 = *RightAlt 11: ## 単独で押したら Esc にする(one shot modifier) 12: key ~R-*M-無変換 = Escape 13: key R-*M-無変換 = &Ignore 14: 15: ## Emacs でうまく動いてくれないの対策 16: ## IME の状態を無視するために必要? 17: key *IC-*I- =
となります。この設定で、変換キーと無変換キーを one shot modifier にすることが できます。単独で押すキーを設定しているのが5, 12行目です。それだけだと、Ctrl+何 かのキー を押そうとして変換キーを押したけど、やっぱやめた、と思って変換キーを 離すと Enter が入力されてしまいます。&Ignore がある行でそれを防止しています。 最後の1行は Emacs でうまく動いてくれないのを防止するための設定です。詳しくはこ こを見てみてください。
ここまで変態的なキー配置にしている人はあまりいないんじゃないでしょうか。使って みると Enter の押しやすさにはかなりびっくりします。
私は病気です。わかってます。でも hyper と super が必要なんです。
ここからは Emacs 限定です。先程も少し言ったように、Emacs では ctrl や alt の他 にも hyper や super という修飾キーが使えます。聞きなれない修飾キーですが、昔の キーボードにはあったらしいのです。Emacs では ctrl や alt を使ったキーバインド は多いので、なかなか自由にキーバインドを変更できませんが、hyper や super を使っ たキーバインドは自分の好きに割り当てることができます。私の場合、実際にはそんな に多く割り当てていませんが、将来キーバインドが増えることを考慮して hyper, super を用意しています。
しかし、のどかでは hyper, super という修飾キーを直接何かのキーに割り当てること はできません。もし出来る方法をご存じの方がいましたら、教えてくれるとうれしいで す。
じゃあどうするかというと、Windwos 上の Emacs であれば、Emacs の設定により windows キーと app キーを hyper, super にすることができます。しかし、大概のキー ボードでは、app キーは押しにくいところにあるものです。なので、のどかで位置の変 更をしておきます。当然親指で押せるところです。ここでは、変換の1つ右隣、これま た使ったことのないカタカナひらがなキーを app キーとして使います。のどかの設定 で
## ひらがなキーを Applications キーにする ## Emacs で hyper としてつかうため key *ひらがな = *Applications
と書くだけです。実質1行です。あとは、Emacs の方で設定するだけです。Emacs の設 定ファイル(init.el)に
(setq w32-apps-modifier 'hyper ; apps キーを hyper キーにする w32-lwindow-modifier 'super) ; 左Windows キーを super キーにする
と書けば OK。これで自由に hyper と super が使えます。ただし、もともと OS で設 定されている windows+d や windos+e を Emacs で使うのは難しいと思います。他のキー バインドにしときましょう。
さらに、windows キーももっと親指で押しやすい位置に変更することも考えました。本 来左 alt のある場所に割り当てるとか。しかし、そうすると普通だと使うであろう左 alt が潰れてしまいます。他の人がこのキーボード配置で使ったときに混乱してしまう 可能性があります。というわけで、今はその設定は見送っています。
実は今までの設定は、普段殆ど使わないキーに対して新しいキーを割り当てていただけ なので、他の人が使ったとしてもほとんど違和感を感じないはずです。それは逆に言う と自分が他の普通のキーボードを使うときもキーの押し間違えをすることも少なくなる と思います(効率は当然落ちますが)。つまり、このキーボード配置への依存度を下げ ることができるのです(今更の感は多分にありますが)!
まとめ
以上つらつらと書きましたが、現在のキー配置をまとめて図で表すとこのようになっ ています。
とにかく、親指修飾キーは超おすすめですので一度やってみてください!みんな親指を 遊ばせすぎです。ctrl や alt は標準でこの位置にしてもいいくらいだと思うんですけ どね。
この記事は Windows 上での話です。Ubuntu でも同じようなキーボード配置にしている のですが、記事が長くなりすぎたのでその解説は次回ということで。長文失礼しました。
おまけ
使っているキーボードはスペースバーの長さが普通のキー2つ分くらいです。4つ分くら いの長いスペースバーだと変換キーや無変換キーが押しにくく、親指修飾キーの威力が 半減します。ぜひ短いスペースバーのキーボードでどうぞ。私はスペースバーの長さで 買うノートパソコンを決めたぐらいです。