せっかくのホイールマウス。X 環境であれば利用したいものです。 とくに Netscape Navigator 等のブラウザでは必須でしょう。
現在 Turbo Linux Server 6.1J を利用しているのですが、付属の Navigator は既にホイールに対応していました。 ですのでこのページの記述内容は使用していませんので動作の保証は出来ません。
/etc/X11/XF86Config の Pointer セクションをこのようにするとホイールの前後の回転が 4、5 ボタンになるようです。
Sectioin "Pointer" Protocol "imps/2" Device "/dev/mouse" ZAxismapping 4 5 End Section
~/.Xdefaults でもいいのですが、Navigator の設定は共通にしたいので /etc/X11/xinit/.Xresources に記述します。 Btn1 は左ボタン、Btn2 はホイールボタン、Btn3 は右ボタン、Btn4 はホイール前進、Btn5 はホイール手前、のようです。
! Navigator Wheel Setting
Netscape*drawingArea.translations: #replace\
<Motion>: DescribeLink()\n\
<Btn1Motion>: DisarmLinkIfMoved()\n\
<Btn2Motion>: DisarmLinkIfMoved()\n\
<Btn1Down>: ArmLink()\n\
<Btn2Down>: ArmLink()\n\
None<Btn1Up>: ActivateLink()\n\
None<Btn2Up>: ActivateLink(new-window)\n\
None<Btn3Down>: xfeDoPopup()\n\
None<Btn4Down>: LineUp()LineUp()LineUp()LineUp()LineUp()\n\
None<Btn5Down>: LineDown()LineDown()LineDown()LineDown()LineDown()\n\
Shift<Btn1Down>: ActivateLink(save-only)DisarmLink()\n\
Shift<Btn2Down>: ActivateLink(save-only)DisarmLink()\n\
Shift<Btn4Down>: xfeDoCommand(forward)\n\
Shift<Btn5Down>: xfeDoCommand(back)\n\
Ctrl<Btn4Down>: PageUp()\n\
Ctrl<Btn5Down>: PageDown()\n
<Motion>: DescribeLink() | リンクにポインタが乗ったときの動作。これを記入しないとリンクにポインタが乗ったときに指マークに変わりませんでした。 |
<Btn1Down>: ArmLink() | 左ボタンを押した状態でリンク上にマウスポインタを移すと、リンク文字列をアクティブにします。 |
None<Btn2Up>: ActivateLink(new-window) | 第 2 ボタン(ホイールボタン)を離した時にリンク先を新しいウィンドウで開きます。None は他にキーを押していない状態を表すようです。 |
None<Btn3Down>: xfeDoPopup() | 右ボタンを押下するとポップアップメニューを表示します。 |
None<Btn4Down>: LineUp()... | ホイールを前に回すと LineUp() の数だけ上にスクロールします。 |
Shift<Btn1Down>: ActivateLink(save-only) | Shift を押しながらリンクをクリックするとリンク先を保存します。 |
Shift<Btn5Down>: xfeDoCommand(back) | Shift を押しながらホイールを手前に回すと履歴の一つ前の画面に戻ります。 |
Ctrl<Btn5Down>: PageUp() | Ctrl を押しながらホイールを奥へ回すと 1 ページさかのぼります。 |
他にも Alt や Meta を組み合わせて細かな設定ができるようですが、私の場合は上記設定だけで十分です。 X でホイールマウスを使う詳しい解説は http://www.inria.fr/koala/colas/mouse-wheel-scroll/ にあります。
まずは Tcl/Tk 用のスクロール定義ファイル(~/.mscroll.tcl)を作成します。
proc mscroll {bindtag} { bind $bindtag <Button-5> [list %W yview scroll 5 units] bind $bindtag <Button-4> [list %W yview scroll -5 units] bind $bindtag <Shift-Button-5> [list %W yview scroll 1 units] bind $bindtag <Shift-Button-4> [list %W yview scroll -1 units] bind $bindtag <Control-Button-5> [list %W yview scroll 1 pages] bind $bindtag <Control-Button-4> [list %W yview scroll -1 pages] }
続いて tknamazu の設定ファイル(/usr/share/namazu/tknamazu/tknamazu.tcl)に、 先ほど作成したスクロール定義ファイルを読み込むように以下の記述を追加します。
# Enable Wheel Mouse
source ~/.mscroll.tcl
mscroll Text
2001.03.16 竹内さん(Vine Linux 2.1) Navigator 用のホイール定義の間違いを指摘/修正して下さいました。