ましゅーましまし

LARPとフォントとTRPGと日本語配列とマダミスとキーボードと(電子ペーパー)ディスプレイと自由の話

スペースバーにシフトキーを兼用させよう

シフトキーは使いにくい

キーボードを使って英語の文書を打つときにはシフト(Shift)キーをよく使うことになります。冒頭の単語や固有名詞の頭文字、略語などで大文字を入力するときや、記号を入力するときにシフトキーを押さえる必要があるからです*1

しかし、シフトキーはよく使う割に、押さえにくいキーです。

力の弱い小指を使うことになりますし、右シフトキーを押さえるときは右手のホームポジションが崩れてしまいます*2

スペースバーに兼用させよう

シフトキーを、力の強い指で、ホームポジションを崩さずに押さえることができたら、文字を打つことはずっと楽になります。

具体的には、パソコンにキー配列をカスタマイズするソフトウェアをインストールして、「①スペースバーだけを打ったときは、スペースバーが押された」ことにして、「②スペースバーを押しながら、他のキーも押したときは、(スペースバーではなく)シフトキーが押された」ことになるようにすると具合が良いです*3

スペースバーだけを押したときの挙動は、いつもと同じなので、一文字開ける(空白文字を入力する)ことにも、かなを漢字に変換することにも支障は生じません。

そして、小指をシフトキーに伸ばす動作の代わりに、力の強い親指でホームポジションであるスペースキーを押さえれば足りることになります。シフト動作がぐっと楽になるだけでなく、ホームポジションが崩れないので、文章を打つスピードも速くなるのです。

なお、この設定はスペース(Space)バーでシフト(Shift)キーを兼用することから、SandSと称されることがあります。この設定については、このブログでまた何度か言及するつもりですので、このブログでも、この設定については"SandS"と呼ぶことにします。

具体的な導入方法

Windowsの場合

定番のキー配列カスタマイズソフトをインストールすれば、だいたいは、SandSの動作を登録することができるかと思います*4。比較的メジャーなカスタマイズ設定なので、そもそも組込まれていることも多いです。

keyhacの場合

私はWindowsではkeyhacというキーボード操作カスタマイズソフトを使っています。keyhacの場合は、「スペースバーが、右シフトキーとして振る舞うようにする」「右シフトキーは左シフトキーとして振る舞うようにする」「右シフトキー(物理的には、スペースバー)だけを押して離した場合には、スペースバーとして振る舞うようにする」という3つの設定を組み合わせることで実現できます。

def configure(keymap):
   keymap_global = keymap.defineWindowKeymap()
   keymap.replaceKey("Space", "RShift")
   keymap.replaceKey("RShift", "LShift")
   keymap_global["O-RShift"] = "Space"

Macの場合

Macの場合は定番のキー配列カスタマイズソフトである、KeyRemap4MacBookの設定画面の"Change Key"タブ内のChange Space Keyの中に、

Space to Shift_L (+When you type Space only, send Space) + [KeyRepeat]

という選択肢があるので、それをONにすればSandSができるようになります。

*1:JISかな配列を使う場合や、かな漢字変換ソフトとしてSKKを使う場合、Google日本語入力ローマ字変換テーブルで大文字を使用する定義を使う場合、などにもシフトキーを多用することになります。

*2:特にEmacsキーバインドを使う人は、ただでさえ左手小指を多用するのに、シフトキーのためにも左手小指を使うことになりますので、さらに問題が大きくなります。

*3:実際にどういう動作になるのか、体験してみたい人は、SandSキーお試しアプレットで使用感を試すことができます。ただし、リンク先のお試しアプレットは、Javaアプレットという最近は流行らない技術で作られていて、Javaアプレットが使えないブラウザも出てきています。そのようなブラウザをお使いの方は、残念ながら、お試しはできません。

*4:Xkeymacsの場合の設定方法