入力デバイスにこだわりを。

  ,j;;;;;j,. —一、 `  ―–‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i    f’辷jァ  !i;;;;;  ThinkPadのキーボード以外は総じてクソ・・・
ヾ;;;ハ    ノ       .::!lリ;;r゛
`Z;i   〈.,_..,.      ノ;;;;;;;;>  そんなふうに考えていた時期が
,;ぇハ、 、_,.ー-、_’,.    ,f゛: Y;;f.   俺にもありました
~”戈ヽ   `二´    r’´:::. `!

くそ!AAがきれいに出力されねーよ!
こんにちは、maruchangです。

今回は入力デバイスに関するありがたーいお話。でも、工学的なお話ではないよ。そのあたりを期待しちゃった人はごめんね。

最近の話なのですが、齢35にしてキーボードにこだわるようになりました。19のころからこの業界に身を置くものとしては、かなり遅咲きだよね!
というのも、20のころに初めて触ったThinkPad560Eのキータッチが最強すぎて、それ以外はどんなものでもクソだろうっていう先入観があったからです。でも、ここ数年のThinkPadの打鍵感はいまいちだよね。

そんなThinkPad以外はゴミだと信じて疑わなかった自分が、ここ半年ぐらいで利用したキーボードの所感を述べてみます。それと、自分が仕事で利用しているキーボードの、キーバインドについても触れてみようかなーと思います。ま、世の中なんでもそうだけど、先入観だけで物事を判断しちゃいかんよね!

HHKB Lite2 for Mac(PD-KB200MA/US配列)

初めて触れたHHKB。HHKBの存在は10年ぐらい前から知っていたけど、当時の自分は無知でThinkPadさいきょー!とか吠えていたので見向きもせず。
ひょんなことから触れることになり、圧倒的なコンパクトさ、無駄なキーの排除が素敵に思えて(というより、HHKB使いこなす俺かっこよくね?的な中二的発想ともいう)、まずは職場のWindowsマシンで利用開始。その後、Realforceの購入を機に、自宅のMacbook Proに繋げて使う。

HHKB全般に言えることだけど、本体が省スペースであるため、場所をとらないしマウスなどに手を伸ばす距離が短くて済むのがいいところ。これは自分にとってなかなかのメリット。
というのも、ThinkPadのトラックポイント信者である自分は、ホームポジションから極力手を動かしたくない派。じゃあ、IBMが出している外付けキーボードにすればいいじゃんって声が今聞こえたけど、やつは打鍵感がThinkPadと全然違くてダメ。そんなわけで、HHKBは移動距離が少なくていいのだ。キーボードをどけて物を書くときも、場所をとらないのがいいしね。

気になる打鍵感ですが、RealforceやHHKB Proに比べると堅い感じかなー。ダカダカダカダカ!って感じ。でも、デスクトップ付属のキーボードや、そこいらの安い外付けよりはるかにいいよ。大概の人はこいつで満足できると思う。デスクトップ付属のやつや、安いやつは押しても反応していなくていらいらすることがあるけど、こいつはしっかり反応してくれるからね。

デメリットといえば、ファンクションキーやHome、Endキーなどが、Fnキーを押しながらでないと使えないところかな。慣れりゃいいんだろうけど、頻繁に使う人にとっては、Fnキーを押さないと使えないところに不満がでるかも?自分は、F6~F10で日本語の変換をしていたので最初は不便に感じていたけど、IMEの機能であるCtrl-TとかCtrl-Iとかで変換するように矯正したので、ファンクションキーについては不便を感じなくなった。HomeやEndはカーソルキー側を使うようにしてるよ!

HHKB Lite2(PD-KB220B/U/JP配列)

自宅のWindowsデスクトップにつないで、たまーに使ってます。Lite2 for Macと同じくこちらもLite2なんだけど、打鍵感はこちらのほうがやや柔らかい感じ。打ち比べてみるとわかるけど、なかなか打ち比べるシーンはないかも。

Realforce91UBK(NG01B0/JP配列)

キーボード界隈で大人気のRealforce。周りでも使用している人が多い。ヤフオクで9000円ぐらいで入手できたので使ってみた。

HHKBに比べるとコンパクトさでは劣る。その代り、Fnキーと併用しなくていいので、こちらのほうが入力はしやすいかも?テンキーが欲しい人は、テンキーのついたモデルもあるし選択肢が多いのがメリット。

打鍵感については、比較対象がHHKB Proになるわけですが、意外と打ち比べてみると違った感じがします。よくネット上でのRealforceの打鍵感は、スコスコって表現されてますけど、確かにそんな感じ。対してHHKB Proはポクポクって感じかな。HHKB ProはThinkPadに近い印象を受けた。
入力はしやすくて軽いので、楽にタイピングができます。でも軽さのせいか、指を置いておくと自重で打鍵されちゃいます。ぼけっとしてたら「aaaaaaa」って入力されちゃってるとかね!

キー配置が標準的なので、万人向けの扱いやすいキーボード。多くの人には一番お勧めしたいかな。デメリットは重さだろうか・・・。

HHKB Professional2(PD-KB400BN/US配列/無刻印)

最近使い始めました。しかも無刻印!こんなの使いこなせる俺かっこよくね?という中二的発想で購入しました。

とにかくコンパクトさがいい!刻印なんていらんのですよ、手元なんてめったに見ないし。むしろ、刻印に惑わされる。
打鍵感も気持ちいいですね。Realforceもよかったけど、こっちのほうが自分は好き。

デメリットとしてはLite2であげたFnキー問題ですが、こいつはさらにカーソルキーまでFnキーを押さないと使えないというハードルの高さ。カーソルキーに慣れきっていると、思わずないはずのカーソルキーの場所に手が伸びる・・・。ちなみに、JP配列のHHKB Proはカーソルキーがあります。
自分は、このカーソルキーにどうしてもなじめなくて、AutoHotKeyを使って、hjklをカーソルキーに割り当てました。そのあたりは後述。

Realforceに比べると、使う人を選んでしまうHHKB Pro。まずはLite2で慣れて、それから移行するのがいいかも!?

そういうわけで・・・

4つのキーボードについてそれぞれ所感を語ってみたわけですが、ぜひとも一度、誰かに借りるなり思い切って買ってみるなりで、入力デバイスに変化をつけてみてほしいですね。
ま、所詮キーボードなんて付属のやつで十分っしょ、仕事でしか使わないし・・・なんて思っているそこのあなた!m9っ`Д´)ビシ!!
毎日仕事で使っているからこそ、少しでもいいからこだわりを持ってほしい。ほら、大工さんとか料理人さんとかも道具にこだわってるじゃない?ちょっとのこだわりで、つらい仕事も少しは楽しく、いやとんでもなく楽しくなるかも?

あ、使いやすいキーボードに変更して、クソみたいなコードは量産しちゃだめよ!そこはおじさんとの約束。

最後にHHKB Proのためのキーバインド

とにかく、カーソルキーになじめなかった&普段から作業はほとんどLinuxのコンソールとVimばかりなので、どうせなら慣れているVimのキーバインドを取り込んでしまえ、ということで、AutoHotKeyを使ってVimライクなキーバインドにしてみました。

対応したキーバインドは下記の通り。

  • カーソルキー
  • HomeとEndキー
  • PgUpとPgDownキー

カーソルキーはhjkl、HomeはCtrl-a、EndはCtrl-e、PgUpはCtrl-u、PgDownはCtrl-dです。
AutoHotkey で Vim風操作の Firefoxという記事を参考にしてみました。
この記事のやり方でいいところは、一度Vim modeという状態にしてキーバインドを変更するところ。最初、Winキー+hjklにしようとしたら、Win+lでロックされるっつう弊害が・・・。
というわけで、下に設定内容を載せておきました。ぜひとも参考にしてください。xキーでDeleteもいれるといいかも。むしろいれておこう。

[sourcecode]
; Vim Mode ON
#i::
    ToolTip, Vim Mode
    vim_mode:=True
    return

; Vim Mode OFF
Esc::
    if (vim_mode=True) {
        ToolTip
        vim_mode:=False
        return
    }
    SendPlay, {Esc}
    return

h::
    if (vim_mode=True) {
        Send, {Left}
        return
    }
    SendPlay, h
    return

+h::
    if (vim_mode=True) {
        Send, +{Left}
        return
    }
    SendPlay, +h
    return

^+h::
    if (vim_mode=True) {
        Send, ^+{Left}
        return
    }
    SendPlay, ^+h
    return

^h::
    if (vim_mode=True) {
        Send, ^{Left}
        return
    }
    SendPlay, ^h
    return
j::
    if (vim_mode=True) {
        Send, {Down}
        return
    }
    SendPlay, j
    return

+j::
    if (vim_mode=True) {
        Send, +{Down}
        return
    }
    SendPlay, +j
    return

^+j::
    if (vim_mode=True) {
        Send, ^+{Down}
        return
    }
    SendPlay, ^+j
    return

^j::
    if (vim_mode=True) {
        Send, ^{Down}
        return
    }
    SendPlay, ^j
    return

k::
    if (vim_mode=True) {
        Send, {Up}
        return
    }
    SendPlay, k
    return

+k::
    if (vim_mode=True) {
        Send, +{Up}
        return
    }
    SendPlay, +k
    return

^+k::
    if (vim_mode=True) {
        Send, ^+{Up}
        return
    }
    SendPlay, ^+k
    return

^k::
    if (vim_mode=True) {
        Send, ^{Up}
        return
    }
    SendPlay, ^k
    return

l::
    if (vim_mode=True) {
        Send, {Right}
        return
    }
    SendPlay, l
    return

+l::
    if (vim_mode=True) {
        Send, +{Right}
        return
    }
    SendPlay, +l
    return

^+l::
    if (vim_mode=True) {
        Send, ^+{Right}
        return
    }
    SendPlay, ^+l
    return

^l::
    if (vim_mode=True) {
        Send, ^{Right}
        return
    }
    SendPlay, ^l
    return

^a::
    if (vim_mode=True) {
        Send, {Home}
        return
    }
    SendPlay, ^a
    return

^+a::
    if (vim_mode=True) {
        Send, +{Home}
        return
    }
    SendPlay, ^+a
    return

^e::
    if (vim_mode=True) {
        Send, {End}
        return
    }
    SendPlay, ^e
    return

^+e::
    if (vim_mode=True) {
        Send, +{End}
        return
    }
    SendPlay, ^+e
    return

^u::
    if (vim_mode=True) {
        Send, {PgUp}
        return
    }
    SendPlay, ^u
    return

^+u::
    if (vim_mode=True) {
        Send, +{PgUp}
        return
    }
    SendPlay, ^+u
    return

^d::
    if (vim_mode=True) {
        Send, {PgDn}
        return
    }
    SendPlay, ^d
    return

^+d::
    if (vim_mode=True) {
        Send, +{PgDn}
        return
    }
    SendPlay, ^+d
    return
[/sourcecode]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です