4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ErgoDoxEZによるネズミを動かす鍵となるものは

Posted at

一昔前は、マウスなんて存在せずにコンピュータを使っていた。
他に使う入力装置は、キーボードだけだ。
これを聞けば、Vimの話かと思うかも知れないが、今回は違う。
キーボードがマウスの代わりになる話だ。

ネズミの鍵たち

マウスキーは、マウスの代わりになるキーコードのことで、マウスポインタを動かすだけでなく、最大五つのボタンも用意しているため、マウスを持ち歩く必要がなくなりそうな予感が・・・。
移動する場合は、外部キーボードより、外部マウスとノートパソコンなどを持ち歩くよね・・・。

今回のマウスキーの仕組みは、X Window Systemを使っているとのこと。

通常のキーボードでもテンキーがマウスの代わりになる?

2種類の使い方

2つの方法で使える。

  1. rules.mkを使う。
  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設定と違いがよく分からない。

値を小さくした場合、移動が早くなるため、移動距離は大きい。
その逆に、値を大きくした場合、ゆっくり動くため、移動距離は小さい。

個人的には値を大きくしたい。

感想

調べたはいいが、あまり使わないだろうな。そもそも設定は理解できていない。
マウスがないときのいざという隠し球として使うぐらいだろう。
それを考えれば、キーボードを使い始める前に、時間を掛けて設定しておくだけで十分だろう。
必要があれば使うだろうが、それでも設定したことを忘れそうな気がする。

横スクロールが有効であれば活用価値はあったのだが・・・。

以上だ。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?