numaの日記: キーボード配列の設定変更(続き) 2
以前、英語キーボードでCapsLockキーにCtrlキーの機能を割り当てた。今回はその続きとなる。
いま使っているキーボードはカーソルキーが逆T字型に配列されたもので、上矢印キー(↑)の左右にPgUp/PgDnキーが配置されている。ありがちなことだが、この配置だと、左右矢印キーと間違えてPgUp/PgDnキーを押してしまう。そうすると、カーソルを左右に動かすだけのつもりなのに、それが1ページ分上下に動いてしまい、大慌てすることとなる。そこで、その対策を講じてみた。
さて、キー割当てを変更したいという要求はよくあることで、そのためのツールも多数公開されている。PgUp/PgDnを無効にしたり、左右矢印キー(Left/Right)の機能を割り当てたりするだけならば、どれでも好きなツールを使えばよい(なんなら、レジストリを直接変更してもよい)。しかし、それではPgUp/PgDnに相当するキーがなくなってしまう。キー操作でその機能は利用したいのだ。ただ、そのキーを使うのを避けたいだけのことで。
そこで、次のようなキー割当てを実現することを目的として、ツールを探してみた。
- PgUpに左矢印(Left)機能を、PgDnに右矢印(Right)機能を、それぞれ割り当てる。
- Ctrl+PgUpにPgUp機能を、Ctrl+PgDnにPgDn機能を、それぞれ割り当てる。
- Ctrl+UpにHome機能を、Ctrl+DownにEnd機能を、それぞれ割り当てる。Home/Endキーは存在するが、カーソル操作キーからは遠く、不便なのだ。
- PrtSc (Print Screen)にAppsキー(右クリックメニューを呼び出すキー)を割り当てる。現状ではAppsキーは存在せず、右Altと右Ctrlの間にPrtScキーがある(他のキーボードなら右Alt、右Windows、Apps、右Ctrlの順に並んでいるところ。)。メーカーの考えでは、Appsキーはなくてもいいが、PrtScキーは欲しいということらしい。しかし、どちらかというとAppsキーの方を使いたいので、ここで割当てを変更する。
- PrtScも、ごくたまに使いたくなる可能性もあるので、Ctrl+PrtScにその機能を割り当てる。
ShiftやCtrlの状態を含めたキー割当てを行う場合、レジストリ変更では済まず、常駐プログラムの厄介になる。そこで、AutoHotkeyを使うことにした。これは、機能は豊富だが、その分とっつきが悪い。GUIでボタンをいくつか押しておしまい、ではなく、定義ファイルを書く必要があるからだ。その代り、プログラムで細かい制御ができる。
さて、AutoHotkeyで最初に書いた定義ファイルは次の通り。
^PgUp::PgUp
^PgDn::PgDn
PgUp::Left
PgDn::Right
^Up::Home
^Down::End
^PrintScreen::PrintScreen
PrintScreen::AppsKey
ただし、“a::b”という表記は“aキーをbで置き換える”という意味で、“^X”はCtrlキーとXキーを同時に押すという意味である。やってみた結果、PrintScreenはうまくいったが、その他のカーソル制御関係は、編集モード時にうまくいかない。Ctrl+PgUpでは何も起きないし、Ctrl+Upで行の先頭にカーソル移動してほしいところが、バッファの先頭に移動したりする。そこで方針を変えてみた。
PgUp::Send {Left}
PgDn::Send {Right}
^PgUp::Send {PgUp}
^PgDn::Send {PgDn}
^Up::Send {Home}
^Down::Send {End}
PrintScreen::Send {AppsKey}
^PrintScreen::Send {PrintScreen}
ただし、“Send {キー名}”は、“キー名”で示されるキーが押されたという信号を送る命令である。こちらではうまくいった。なぜそうなったか、原因は調査中。
これで、取りあえずの要求は満足できた。AutoHotkeyはなかなか面白そうなので、しばらく遊んでみようと思う。
ブラインドタッチ (スコア:0)
Home/EndとPgUp/PgDnは逆の方が良くないですか?
キー配列からすると左右でPgUp/PgDnは分からないでもないですが、
カーソルやページの移動方向を考えると90度ずれてます。
Re:ブラインドタッチ (スコア:1)
なるほど。試してみます。