一昔前は、マウスなんて存在せずにコンピュータを使っていた。
他に使う入力装置は、キーボードだけだ。
これを聞けば、Vimの話かと思うかも知れないが、今回は違う。
キーボードがマウスの代わりになる話だ。
ネズミの鍵たち
マウスキーは、マウスの代わりになるキーコードのことで、マウスポインタを動かすだけでなく、最大五つのボタンも用意しているため、マウスを持ち歩く必要がなくなりそうな予感が・・・。
移動する場合は、外部キーボードより、外部マウスとノートパソコンなどを持ち歩くよね・・・。
今回のマウスキーの仕組みは、X Window Systemを使っているとのこと。
通常のキーボードでもテンキーがマウスの代わりになる?
2種類の使い方
2つの方法で使える。
- rules.mkを使う。
- キーマップにキーコードを設定する。
rules.mk
これを設定することで、どのように使えるようになるのか分からない。
MOUSEKEY_ENABLE = yes
キーコードの設定
これが一般的だろう。
マウスカーソル移動
これも説明不要なぐらい普通に設定できるはず。
KC_MS_UP
:マウスカーソルを上に移動する(エイリアス:KC_MS_U
)。
KC_MS_DOWN
:マウスカーソルを上に移動する(エイリアス:KC_MS_D
)。
KC_MS_LEFT
:マウスカーソルを上に移動する(エイリアス:KC_MS_L
)。
KC_MS_RIGHT
:マウスカーソルを上に移動する(エイリアス:KC_MS_R
)。
マウスボタン
クリックするのは、普通は左クリック・右クリックの2種類だ。
ホイール付きのマウスが一般的だが、そのホイールをクリックできるものも一般的だろう。
あとは何かな・・・。
KC_MS_BTN1
:マウスの左クリック(エイリアス:KC_BTN1
)。
KC_MS_BTN2
:マウスの左クリック(エイリアス:KC_BTN2
)。
KC_MS_BTN3
:マウスの中クリック(エイリアス:KC_BTN3
)。ホイールボタンのクリック
KC_MS_BTN4
:マウスボタンの機能不明(エイリアス:KC_BTN4
)。
KC_MS_BTN5
:マウスボタンの機能不明(エイリアス:KC_BTN5
)。
マウスのホイール操作
クリックとは違う操作方法だ。
KC_MS_WH_UP
:ホイールを上げる(エイリアス:KC_WH_U
)。要は、先頭に近づく動きをする。分かりにくい例えは、Excelで言えば、左の番号が若くなる。ブラウザで言えば、タイトルに移動する。(分かりやすい例えがあれば教えて欲しい)
KC_MS_WH_DOWN
:ホイールを下げる(エイリアス:KC_WH_D
)。末尾(後尾?)に向かって移動する。上記のKC_MS_WH_UP
とは逆の動きをする。
以下2種類は最も欲する機能(水平スクロール)なのだが、動かない。いわゆるチルトホイールと言われるホイールだ。
KC_MS_WH_LEFT
:ホイールを左に傾ける(エイリアス:KC_WH_L
)。Excelで言えば、左に移動する。アルファベットがAに近づく。
KC_MS_WH_RIGHT
:ホイールを右に傾ける(エイリアス:KC_WH_R
)。Excelで言えば、右に移動する。アルファベットのAから遠ざかる。
XWindowsシステムを理解している人であれば、使いこなせるのかも知れない。
マウスのアクセラレーション
何を言っているのか分からない。
KC_MS_ACCEL0
:アクセラレーションを0にする。
KC_MS_ACCEL1
:アクセラレーションを1にする。
KC_MS_ACCEL2
:アクセラレーションを2にする。
動かしたが、変化したように見えなかった。
マウスカーソルの移動速度
標準では、以下の通りになっている(おぼろげな理解度)。
遅延:300ミリ秒 MOUSEKEY_DELAY
間隔:50ミリ秒 MOUSEKEY_INTERVAL
最高速度:10ミリ秒 MOUSEKEY_MAX_SPEED
最大時間:20ミリ秒 MOUSEKEY_TIME_TO_MAX
ホイールの最大速度:8ミリ秒 MOUSEKEY_WHEEL_MAX_SPEED
ホイールの最大時間:40ミリ秒 MOUSEKEY_WHEEL_TIME_TO_MAX
値を極端に大きくした場合、対象はC言語なので、許容できる値を簡単に超えてしまい、コンパイルエラーになるかも知れない。
気をつけること。
MOUSEKEY_DELAY
キー押下してから実際にマウスカーソルが反応するまでの反応速度のこと。
値を大きくすれば、反応が遅れる(遅延が大きくなる)。
遅延させてうれしいことは、細かい作業がしやすくなることだろうか。
しかし、0で十分だと思う。遅くするにしても10とかの二桁までだろう。
MOUSEKEY_INTERVAL
キー押下してから実際にマウスカーソルが反応するまでの待機時間のこと。
値を大きくすれば、待機時間が増えるため、ゆっくりしたマウスカーソル移動になる。
逆に、値を小さくすれば、マウスカーソルが素早く動く。
たとえて言えば、ゲーミングマウスのDPIの値と逆の動きをする。
DPIでは、値を大きくすれば、マウスカーソルは素早く動く。
今回の設定値を大きくすれば、マウスカーソルはゆっくり動く。
そんな感じかな。
MOUSEKEY_MAX_SPEED
設定した値の速度で移動する。
大きな値を設定した場合、まさに目にもとまらぬ早さで動く(こっちがDPIの例に相応しいか)。
しかし、使い方がよく分からない。
DELAYとINTERVALの値を大きくした場合、結局今回の設定値を大きくしても遅く動くようになってしまった。
MOUSEKEY_TIME_TO_MAX
キーを押し続ける時間分早くマウスカーソルが移動するようになる?
原理はよく分からないが、値を大きくした場合、それなりに早く動くように思う。
しかし、値を小さくした場合、マウスカーソルの動きを目視できないほど、すさまじい勢いで移動する。
どういうこと!?
個人的には、大きい値の方が好みだと言える。
MOUSEKEY_WHEEL_MAX_SPEED
マウスホイールの移動を設定する。
値が小さい場合、移動は小さい。ブラウザ移動で言えば、1行ずつ移動する。
値を大きくした場合、巨人の大ジャンプをするかのごとく移動するため、お勧めしない。
界王拳10倍 値を10倍にすれば、移動量も10倍になる(当たり前か)。
MOUSEKEY_WHEEL_TIME_TO_MAX
マウスホイールの移動時間を設定する。
上記のSpeed設定と違いがよく分からない。
値を小さくした場合、移動が早くなるため、移動距離は大きい。
その逆に、値を大きくした場合、ゆっくり動くため、移動距離は小さい。
個人的には値を大きくしたい。
感想
調べたはいいが、あまり使わないだろうな。そもそも設定は理解できていない。
マウスがないときのいざという隠し球として使うぐらいだろう。
それを考えれば、キーボードを使い始める前に、時間を掛けて設定しておくだけで十分だろう。
必要があれば使うだろうが、それでも設定したことを忘れそうな気がする。
横スクロールが有効であれば活用価値はあったのだが・・・。
以上だ。