EN JA
MOUSED(8)
MOUSED(8) FreeBSD System Manager's Manual MOUSED(8)

名称

mousedマウスデータをコンソールドライバに渡す

書式

moused [ -DPRacdfs][ -I file][ -F rate][ -r resolution][ -S baudrate][ -VH [ -U distance -L distance]][ -A exp[ , offset]][ -a X[ , Y]][ -C threshold][ -m N=M][ -w N][ -z target][ -t mousetype][ -l level][ -3 [ -E timeout]][ -T distance[ , time[ , after]]] -p port


moused [ -Pd] -p port -i info

解説

moused ユーティリティとコンソールドライバは協力し、テキストコンソールやユーザプログラムにおけるマウス操作をサポートします。マウスの仮想化とユーザプログラムへのマウスデータの提供は標準フォーマットにて行われます ( sysmouse(4) を御覧ください)。

マウスデーモンはマウスデータの読みとりのために指定されたポートを監視し、解釈したデータを ioctl を介してコンソールドライバに渡します。マウスデーモンは、移動、ボタンの押し/離しイベント、存在するならばローラやホイールの移動も報告します。ローラ/ホイールの移動は“Z”軸での移動として報告されます。

マウスポインタが vidcontrol(1) によって有効にされていれば、コンソールドライバはマウスポインタをスクリーンに表示し、カットとペーストの機能を提供します。 sysmouse(4) をユーザプログラムがオープンすると、コンソールドライバはマウスデータをこのデバイスに送るので、ユーザプログラムはこのデータを使用できます。

マウスデーモンがシグナル SIGHUP を受けとると、マウスポートを再オープンし、自己を再初期化します。システムがサスペンドされている間にマウスの挿抜を行なった場合に有用です。

マウスデーモンがシグナル SIGUSR1 を受けとるとき、マウスイベントを渡すことを停止します。シグナル SIGUSR1 を再び送ると、マウスイベントを渡すことを再開します。偶然マウスパッドに触れることによってラップトップでタイプすることが中断される場合に役に立ちます。

次のオプションが利用可能です:

-3
2 ボタンマウスで 3 番目(中)のボタンをエミュレートします。物理的なボタンで左と右のものを同時に押すとエミュレートされます。
-C threshold
ダブルクリック速度をボタンクリック間最大インターバルとしてミリ秒で指定します。このオプションを指定しないと、デフォルト値は 500 ミリ秒が仮定されます。このオプションは、テキストモードコンソールのカットとペーストの操作においてのみ有効です。 sysmouse(4) を介してマウスデータを得るユーザプログラムは影響を受けません。
-D
シリアルポートの DTR を下げます。このオプションが有効なのは、 mousesystems がマウスプロトコルとして選択されている場合のみです。 mousesystems モードで 3 ボタンマウスを操作するためには、 DTR ラインを落とすことが必要かもしれません。
-E timeout
第 3 ボタンエミュレーション (前述) が有効なとき、2 つのボタンが同時に押されたかを判定する前に moused ユーティリティは最長 timeout ミリ秒待ちます。デフォルトのタイムアウトは 100 ミリ秒です。
-F rate
サポートされていれば、デバイスのレポート頻度 (秒あたりの回数) を設定します。
-L distance
“Virtual Scrolling” (仮想スクロール) が有効にされるとき、スクロールイベントが発生する前にマウスが動かなければならない (ピクセル単位の) distance (距離) を設定するために -L オプションを使用することができます。これは、スクロールの速度を効率的に制御します。デフォルトの distance (距離) は、2 ピクセルです。
-H
“水平仮想スクロール” (Horizontal Virtual Scrolling) を有効にします。このオプション設定すれば、中マウスボタンを押さえることによって動きは水平スクロールとして解釈されます。スクロールモードが有効になる前にマウスが動かなければならない距離を設定するために -U オプションを使用し、スクロール速度を設定するために -L オプションを使用します。このオプションは -V オプションのあるなしにかかわらず使用できます。
-I file
moused ユーティリティのプロセス ID を、指定されたファイルに書きます。このオプションを指定しないと、プロセス ID は /var/run/moused.pid に格納されます。
-P
シリアルマウス識別時に、プラグアンドプレイ COM デバイス列挙処理を開始しません。 -i オプションと共にこのオプションが指定された場合、 moused ユーティリティはシリアルマウスに関する有用な情報を表示できません。
-R
シリアルポートの RTS を下げます。このオプションが有効なのは mousesystems がプロトコルタイプとして、後述する -t オプションで指定されている場合のみです。これは前記 -D オプションと共によく使用されます。 mousesystems モードで 3 ボタンマウスを操作するためには、 RTS と DTR のラインを共に下げる必要があるかもしれません。
-S baudrate
シリアルポートの速度を指定します (1200 から 9600)。全シリアルマウスがこのオプションをサポートするわけではありません。
-T distance[ , time[ , after]]
ドリフトを終了します。マウスを動かしてないときに、マウスポインタがゆっくり動きまわるなら、このオプションを使用します。最後の実際にマウスが移動した以後の after ミリ行 (デフォルト 4000) の間を除いて、 time ミリ秒 (デフォルト 500) における distance (例えば 4) ピクセル (X+Y) までの移動は、無視されます。
-V
“仮想スクロール” (Virtual Scrolling) を有効にします。このオプション設定すれば、中マウスボタンを押さえることによって動きはスクロールとして解釈されます。スクロールモードが有効になる前にマウスが動かなければならない距離を設定するために -U オプションを使用し、スクロール速度を設定するために -L オプションを使用します。
-U distance
“仮想スクロール”が有効なとき、 -U オプションは、スクロールモードをアクティブにするまえにマウスが移動しなければならない距離を distance (ピクセル単位) に設定するために使用することができます。 distance のデフォルトは 3 ピクセルです。
-A exp[ , offset]
指数関数的 (ダイナミック) な加速をマウス動作に適用します。より速くマウスを動かせば動かすほど、それはさらに加速されます。それは、小さなマウス動作は加速されないので、それらが非常に正確であることを意味します、一方、より速い動作は、画面全域で素早くポインタをドライブします。

exp 値は、基本的な加速の量である、指数を指定します。役に立つ値は、範囲 1.1 から 2.0 ですが、利用者のマウスのハードウェアと利用者の個人的な好みに依存します。 1.0 の値は、指数関数的な加速となりません。 2.0 の値は、2 乗の加速を意味します (すなわち、利用者がマウスを 2 倍速く動かすなら、ポインタは、画面を 4 倍速く動きます)。 2.0 を超える値は、可能ですが、お勧めできません。始めの良い値は、たぶん 1.5 です。

オプションの offset 値は、加速が始まる距離を指定します。デフォルトは、加速が 1 単位より大きな移動に適用されることを意味する、 1.0 です。利用者が、より大きい値を指定するなら、始めの動作の加速がより高速になります、すなわち、小さくて正確な動作のための速度範囲は、より広くなります。通常、デフォルトで満足されるはずですが、振る舞いを満足させられないなら、 2.0 の値を試みてください。

-A オプションは、とにかく、それほど良く動作しない、 X サーバ自体の加速とうまく作用しないことに注意してください。したがって、必要なら、それをオフにすることをお勧めします: “xset m 1”。

-a X[ , Y]
マウスの入力を加速または減速します。線型加速のみです。 1.0 より小さい値は、しばらく減速します。 1.0 より大きい値は、加速します。 1 個の値だけを指定した場合、両方の座標軸での加速を設定します。

利用者は、同時に、直線的と指数関数的な加速を結合した効果を持つために、 -a-A オプションを使用することができます。

-c
マウスによっては、中ボタンを押したイベントを、左右ボタンが押されたかのようにレポートするものがあります。このオプションはこれを扱うものです。
-d
デバッグ用のメッセージを有効にします。
-f
デーモンにならずに、フォアグラウンドプロセスとして実行します。テストやデバッグに有用です。
-i info
指定された情報を表示し終了します。指定可能な情報を以下に示します:

port
ポート (デバイスファイル) 名、例えば、 /dev/cuau0, /dev/mse0/dev/psm0 です。
if
インタフェースタイプ: serial, bus, inport, ps/2 です。
type
プロトコルタイプ。 -t オプションの説明の後でリストされているものか、ドライバが sysmouse データフォーマット標準をサポートする場合には sysmouse です。
model
マウスモデル。 moused ユーティリティは常にモデルを識別できるわけではありません。
all
上記全部。ポート、インタフェース、タイプ、モデルをこの順に一行に表示します。

moused ユーティリティは要求された情報を判別できない場合、“ unknown”か“ generic”を印刷 (表示) します。

-l level
moused がどのレベルでマウスドライバを動作させるか指定します。より詳しいことは psm(4)動作レベル を参照して下さい。
-m N=M
物理ボタン M に論理ボタン N を割当てます。このオプションは任意個数指定可能です。複数の物理ボタンを単一の論理ボタンに割り当て可能です。この場合、指定された物理ボタンのいずれかが押されている場合、論理ボタンが押されていることになります。‘ =’の周りに空白を入れてはなりません。
-p port
マウスと通信するためのポートとして port を使います。
-r resolution
デバイスの解像度を設定します;インチあたりのドット数または、 low, medium-low, medium-high, high のいずれかです。全デバイスにてこのオプションがサポートされているわけではありません。
-s
シリアルラインのために 9600 ボーを選びます。全シリアルマウスがこのオプションをサポートしているわけではありません。
-t type
ポートに接続されているマウスのプロトコルタイプを指定します。以下に列挙されるタイプを陽に指定するか、 auto を指定して moused ユーティリティに適切なプロトコルを自動選択させることができます。コマンドラインにてこのオプションを指定しないと、 -t auto が仮定されます。通常では、 moused ユーティリティがプロトコルの自動検出ができない場合に必要です ( マウスデーモンの構成) を参照。

このオプションでプロトコルタイプを指定した場合、前記 -P オプションが暗示され、プラグアンドプレイ COM デバイス列挙処理が無効になります。

また、マウスを PS/2 マウスポートに接続している場合、常に autops/2 を選択すべきです。これは、マウスのブランドやモデルとは関係ありません。同様に、マウスをバスマウスポートに接続している場合、 autobusmouse を選択してください。これらのマウスではシリアルマウスプロトコルは動作しません。

USB マウスでは、プロトコルは auto であることが必要です。他のプロトコルは USB マウスで動作しません。

このオプションにおける有効なタイプを以下に列挙します。

シリアルマウス:

microsoft
Microsoft シリアルマウスプロトコル。大抵の 2 ボタンマウスはこのプロトコルを使用します。
intellimouse
Microsoft IntelliMouse プロトコル。 Genius NetMouse, ASCII Mie Mouse, Logitech MouseMan+, FirstMouse+ もこのプロトコルを使用します。他のローラ/ホイールを持つマウスもこのプロトコル互換でしょう。
mousesystems
MouseSystems の 5 バイトプロトコル。 3 ボタンマウスはこのプロトコルを使用するかもしれません。
mmseries
MM Series マウスプロトコル。
logitech
Logitech マウスプロトコル。これは古い Logitech モデルであることに注意。新しいモデルには mouseman もしくは intellimouse を指定します。
mouseman
Logitech MouseMan と TrackMan のプロトコル。 3 ボタンマウスによってはこのプロトコル互換かもしれません。 MouseMan+ と FirstMouse+ は、このプロトコルではなく、 intellimouse プロトコルを使用します
glidepoint
ALPS GlidePoint プロトコル。
thinkingmouse
Kensington ThinkingMouse プロトコル。
mmhitab
Hitachi タブレットプロトコル。
x10mouseremote
X10 MouseRemote。
kidspad
Genius の Kidspad と Easypad のプロトコル。
versapad
Interlink VersaPad プロトコル。
gtco_digipad
GTCO Digipad プロトコル。

バスおよび InPort マウス:

busmouse
バスおよび InPort マウスはこのプロトコルのみ使用可能であり、バスおよび InPort マウスはブランドに依らずこのオプションを指定する必要があります。

PS/2 マウス:

ps/2
PS/2 マウスはこのプロトコルのみ使用可能であり、 PS/2 マウスはブランドに依らずこのオプションを指定する必要があります。

USB マウスでは、 auto が使用可能な唯一のプロトコルであり、ブランドにかかわらず USB マウスにはこれを指定すべきです。

-w N
物理ボタン N が、ホイールモードボタンとして動作するようにします。このボタンが押されている間、X 軸および Y 軸の移動は 0 と報告され、 Y 軸の移動は Z 軸の移動に割り付けられます。後述する -z オプションを使用することにより、 Z 軸の移動を更に仮想ボタンに割り付けることができます。
-z target
Z 軸(ローラ/ホイール)動作を別の軸や仮想ボタンに割り付けます。有効な target は以下のいずれかです:
x
y
X または Y 軸の移動として、検知した Z 軸移動を報告します。
N
仮想ボタン N および N+1 を押したイベントとして、検知した負/正の Z 軸移動をそれぞれ報告します。物理ボタン NN+1 が存在する必要はありません。論理ボタンへの割り付けは Z 軸移動を仮想ボタンへ割り付けた後に行われます。
N1 N2
仮想ボタン N1 および N2 を押したイベントとして、検知した負/正の Z 軸移動をそれぞれ報告します。
N1 N2 N3 N4
2 個のホイールがあり 2 番目のホイールが水平スクロール動作を生成するために使用されるマウス、およびユーザが加えた水平の力を検知するノブまたはスティック付きのマウスで有用です。

2 番目のホイールの動きは、負の向きが N3 にマップされ、正の向きが N4 にマップされます。ボタン N3 および N4 がマウスに実在する場合、このアクションは検出されません。

水平移動や 2 番目のローラ/ホイールの動きは常に検出されるわけではないことに注意してください。なぜなら、これらをエンコードするための受け入れられた標準が無いように見えるからです。

また、水平方向において、左が負であると考えるマウスもいれば、逆だと考えるマウスもいることにも注意してください。更に、2 個のホイールが両方とも垂直に搭載されており、一方の方向がもう一方の方向とはマッチしないものもあります。

マウスデーモンの構成

まず、使用予定マウスのインタフェースタイプを知ることが必要です。これはマウスのコネクタを見れば分かります。シリアルマウスは D-Sub の 9 ピンまたは 25 ピンのメスです。バスおよび InPort のマウスは D-Sub 9 ピンのオスか丸い DIN 9 ピンコネクタです。 PS/2 マウスは小さくて丸い DIN 6 ピンコネクタです。マウスによってはコネクタを別の形状に変換可能なコネクタが附属しています。このようなアダプタを使用する場合には、マウスから一番遠いコネクタの形状を見てください。 USB マウスは、平らな長方形のコネクタを持ちます。

次に決めねばならないことは、インタフェースのために使用するポートです。バス、InPort、PS/2 マウスでは、選択肢はありません: バスおよび InPort マウスは常に /dev/mse0 を使用し、 PS/2 マウスは常に /dev/psm0 を使用します。シリアルマウスの場合、接続可能なポートが複数ありえます。多くの人が組み込みのシリアルポート /dev/cuau0 をマウスに割当てます。複数の USB マウスをシステムまたは USB ハブに接続可能です。それらは /dev/ums0, /dev/ums1 のようにアクセス可能です。

シンボリックリンク /dev/mouse でマウスの実際のポートを指すようにして、どの“マウス”ポートか後で簡単に分かるようにするのが良いかもしれません。

次に適切なマウスプロトコルを選択します。 moused ユーティリティは、マウスタイプを自動決定可能かもしれません。 moused ユーティリティを -i オプションを付けて実行し、表示を見ます。コマンドがプロトコルタイプを識別した場合、あなたは何も調べる必要はありません。プロトコルタイプを指定せずにデーモンを起動可能です ( 使用例) を参照。

コマンドは、マウスドライバがこのプロトコルをサポートするなら、 sysmouse と印刷 (表示) します。

-i オプションで印刷 (表示) される typemodel は、対象のポインティングデバイスの製品名では必ずしもありませんが、互換性のあるデバイスの名前でしょう。

-i オプションがなにも表示しない場合、 moused ユーティリティに対して -t オプションを使用し、プロトコルタイプを指定する必要があります。予測して試行する必要があります。以下に経験則を示します:

  1. バスおよび InPort マウスはブランドに依らず busmouse プロトコルを使用します
  2. PS/2 マウスはブランドに依らず ps/2 プロトコルを使用します
  3. USB マウスには auto プロトコルを指定する必要があります。
  4. ほとんどの 2 ボタンシリアルマウスは microsoft プロトコルをサポートします。
  5. 3 ボタンシリアルマウスは mousesystems プロトコルで動作するかもしれません。動作しない場合には、三番目 (中) ボタンが機能せずに microsoft プロトコルで動作するでしょう。 3 ボタンシリアルマウスは、期待通り三番目のボタンが動作しつつ mouseman プロトコルで動作するかもしれません。
  6. 3 ボタンマウスには小さなスイッチが付いていて、“MS”と“PC”または“2”と“3”とで選択できるようになっているかもしれません。“MS”と“2”は通常 microsoft プロトコルを意味します。“PC”と“3”は mousesystems プロトコルを選択します。
  7. マウスにローラやホイールが付いている場合、 intellimouse プロトコル互換でしょう。

マウスのために選択したプロトコルタイプが正しいかどうかテストする目的で、現在の仮想コンソールでマウスポインタを有効にします。

vidcontrol -m on

マウスデーモンをフォアグラウンドで開始します。

moused -f -p <selected_port> -t <selected_protocol>

マウスポインタがマウスの移動に伴い、正しく移動することを確認してください。そして、カットとペーストの機能を左、右、中のボタンを使用して確認してください。 ^C をタイプすると、コマンドは停止します。

複数のマウス

システムに接続したマウスと同じ数だけ、マウスデーモンを同時実行可能です;一つのマウスデーモンが一つのマウスに対応します。ラップトップコンピュータ組み込みの PS/2 ポインティングデバイスを移動中使用し、オフィスではドッキングステーション接続のシリアルマウスを使用する場合に有用です。マウスデーモンを二つ実行し、アプリケーションプログラム (例えば X Window System) に sysmouse(4) を使用させます。するとアプリケーションプログラムは常に両マウスからマウスデータを受け取ります。シリアルマウスが取り付けられていない場合、対応するマウスデーモンは移動やボタン状態の変化を検出しませんので、アプリケーションプログラムは PS/2 マウスのデーモンからのマウスデータのみを使います。一方この構成で両方のマウスを接続し同時に両方を動かした場合、マウスの移動をすべて組み合わせたようにマウスポインタがスクリーン上を移動します。

関連ファイル

/dev/consolectl
コンソール制御デバイス
/dev/mse%d
バスおよび InPort マウスのドライバ
/dev/psm%d
PS/2 マウスドライバ
/dev/sysmouse
仮想化されたマウスドライバ
/dev/ttyv%d
仮想コンソール
/dev/ums%d
USB マウスドライバ
/var/run/moused.pid
現在実行中の moused ユーティリティのプロセス ID
/var/run/MouseRemote
X10 MouseRemote のイベントのための UNIX ドメインストリームソケット

使用例

moused -p /dev/cuau0 -i type

moused ユーティリティにシリアルポート /dev/cuau0 に接続されたマウスのプロトコルタイプを識別させます。成功すると、コマンドはタイプを表示しますが、失敗すると“ unknown”が表示されます。

moused -p /dev/cuau0 
vidcontrol -m on

moused ユーティリティが指定されたポートのマウスプロトコルタイプを識別可能な場合、 -t オプション無してデーモンを起動可能であり、前記のようにマウスポインタをテキストコンソール上で有効にできます。

moused -p /dev/mouse -t microsoft 
vidcontrol -m on

シリアルポート /dev/mouse に対してマウスデーモンを起動します。プロトコルタイプは microsoft-t オプションにて陽に指定しています。

moused -p /dev/mouse -m 1=3 -m 3=1

物理ボタン 3 (右ボタン) を論理ボタン 1 (論理的に左) に、物理ボタン 1 (左ボタン) を論理ボタン 3 (論理的に右) に、それぞれ割当てます。左右のボタンを事実上交換します。

moused -p /dev/mouse -t intellimouse -z 4

Z 軸 (例えばマウスホイール) における負の移動をボタン 4 が押されたものとし、 Z 軸 (例えばマウスホイール) における正の移動をボタン 5 が押されたものとします。

利用者が

ALL ALL = NOPASSWD: /usr/bin/killall -USR1 moused

/usr/local/etc/sudoers ファイルに追加し、

killall -USR1 moused

をウィンドウマネージャのキーにバインドするなら、タイプしている間にマウスパッドに触れ続けるなら、利用者は、ラップトップでマウスイベントをサスペンドすることができます。

規格

moused ユーティリティは、PnP シリアルマウスをサポートするために、“Plug and Play External COM Device Specification”を部分的にサポートしています。しかしながら、シリアルマウスごとに仕様充足の度合が異なりますので、標準のバージョン 1.0 に完全に従ってはいません。このように厳密さを欠いた方法でも、シリアルマウスの適切なプロトコルタイプを常に決定できるわけではありません。

歴史

moused ユーティリティは、 FreeBSD 2.2 ではじめて登場しました。

作者

moused ユーティリティは、 Michael Smith <msmith@FreeBSD.org>によって書かれました。このマニュアルページは、 Mike Pritchard <mpp@FreeBSD.org>によって書かれました。コマンドとマニュアルページは、その後 Kazutaka Yokota <yokota@FreeBSD.org>によって更新されました。

警告

パッドデバイスの多くは、ユーザがパッド表面を“タップ”した場合に最初の (左) ボタンが押されたものとします。また、ALPS GlidePoint および Interlink VersaPad のモデルによっては、タップ動作を 4 番目のボタンのイベントとして扱います。このようなモデルでは、オプション“ -m 1=4”を使用して、他のパッドデバイスと同様の効果を得られます。

仮想コンソールでのカットとペーストの機能は、マウスに 3 ボタンあることを仮定しています。論理ボタン 1 (論理的に左) は、コンソールのテキスト領域を選択してカットバッファにコピーします。論理ボタン 3 (論理的に右) は、選択された領域を拡張します。論理ボタン 2 (論理的に中) は、選択されたテキストをテキストカーソル位置にペーストします。マウスに 2 つしかボタンが無い場合、中央の `ペースト' ボタンは使用できません。ペースト機能を使用するためには、 -3 オプションを使用して中ボタンをエミュレートするか、 -m オプションを“ -m 2=3”のように使用して物理右ボタンに論理中ボタンを割当てます。

May 15, 2008 FreeBSD