Use Wheel Mouse

/ ホーム(H) / Linux(V) / ホイールマウスを使う

About

せっかくのホイールマウス。X 環境であれば利用したいものです。 とくに Netscape Navigator 等のブラウザでは必須でしょう。

現在 Turbo Linux Server 6.1J を利用しているのですが、付属の Navigator は既にホイールに対応していました。 ですのでこのページの記述内容は使用していませんので動作の保証は出来ません。


Setting
ホイールをボタンとして認識させる

/etc/X11/XF86Config の Pointer セクションをこのようにするとホイールの前後の回転が 4、5 ボタンになるようです。

Sectioin "Pointer"
  Protocol     "imps/2"
  Device       "/dev/mouse"
  ZAxismapping 4 5
End Section
Navigator 用にホイールを設定

~/.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/ にあります。

Tknamazu でホイールを使う

まずは 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

to do
Navigator のマウス設定の私的解釈がイマイチ。これだと範囲選択が出来ないし... でも IP masquerade が動いてからはサーバ機からはブラウズしないので良い。のか?

thanks

2001.03.16 竹内さん(Vine Linux 2.1) Navigator 用のホイール定義の間違いを指摘/修正して下さいました。


/ ホーム(H) / Linux(V) / ホイールマウスを使う

Copyright © Kazuhiro Yoshikawa (KaZ). All rights reserved.
Last modified .