Wheel Mouse

いくつかのページを調べてX上でホイールマウスを使えるようにした。 設定などは このページ を参照にした。使ってみると結構便利。tipsから独立ページさせた。

もどる

設定

logitechかmicrosoftのIntelliMouseならば確実に使えると思う。 設定は非常に簡単で、/etc/X11/XF86Config

Section "Pointer"
    Protocol  "IMPS/2"
・
・
    ZAxisMapping 4 5
・
・
・
EndSection
	

と直すだけで対応しているソフトではホイールを使うことができる。 対応しているソフトは例えばmozilla0.9.5とかである。試してみよう。

XEmacsホイールマウスで使う

.emacsに、以下のような設定を書き足せばよい。

;; scroll on wheel of mouses
(define-key global-map 'button4
  '(lambda (&rest args)
     (interactive)
     (let ((curwin (selected-window)))
       (select-window (car (mouse-pixel-position)))
       (scroll-down 5)
       (select-window curwin)
       )))
(define-key global-map [(shift button4)]
  '(lambda (&rest args)
     (interactive)
     (let ((curwin (selected-window)))
       (select-window (car (mouse-pixel-position)))
       (scroll-down 1)
       (select-window curwin)
       )))
(define-key global-map [(control button4)]
  '(lambda (&rest args)
     (interactive)
     (let ((curwin (selected-window)))
       (select-window (car (mouse-pixel-position)))
       (scroll-down)
       (select-window curwin)
       )))

(define-key global-map 'button5
  '(lambda (&rest args)
     (interactive)
     (let ((curwin (selected-window)))
       (select-window (car (mouse-pixel-position)))
       (scroll-up 5)
       (select-window curwin)
       )))
(define-key global-map [(shift button5)]
  '(lambda (&rest args)
     (interactive)
     (let ((curwin (selected-window)))
       (select-window (car (mouse-pixel-position)))
       (scroll-up 1)
       (select-window curwin)
       )))
(define-key global-map [(control button5)]
  '(lambda (&rest args)
     (interactive)
     (let ((curwin (selected-window)))
       (select-window (car (mouse-pixel-position)))
       (scroll-up)
       (select-window curwin)
       )))

;;And, on a related topic, you may also want this code to navigate in XEmacs with the numeric keypad:

;; scroll on numpad

(define-key global-map 'kp_9 'scroll-down)
(define-key global-map 'kp_3 'scroll-up)
(define-key global-map 'kp_6
  '(lambda (&rest args) (interactive) (other-window 1)))
(define-key global-map 'kp_4
  '(lambda (&rest args) (interactive) (other-window -1)))
(define-key global-map 'kp_2
  '(lambda (&rest args) (interactive) (scroll-up 1)))
(define-key global-map 'kp_8
  '(lambda (&rest args) (interactive) (scroll-down 1)))
(define-key global-map 'kp_7 'beginning-of-buffer)
(define-key global-map 'kp_1 'end-of-buffer)
(define-key global-map 'kp_5
  '(lambda (&rest args) (interactive) (recenter 0)))
;;;; end wheel section 
	

これでスクロールできるようになる。 シフトを押しながらスクロールさせると1行づつ、 コントロールを押しながらスクロールさせると1ページ単位で スクロールできる。

kterm でホイールマウスで使う

.Xdefaultに、以下のような設定を書き足せばよい。

!# Scrolling on wheel mouse: half a page normally, line per line with shift
kterm.vt100.translations: #override\n\
Shift<Btn4Down>,<Btn4Up>:scroll-back(1,line)\n\
Shift<Btn5Down>,<Btn5Up>:scroll-forw(1,line)\n\
Ctrl<Btn4Down>,<Btn4Up>:scroll-back(1,page)\n\
Ctrl<Btn5Down>,<Btn5Up>:scroll-forw(1,page)\n\
<Btn4Down>,<Btn4Up>:scroll-back(1,halfpage)\n\
<Btn5Down>,<Btn5Up>:scroll-forw(1,halfpage)\n\

!# In the scrollbar we map buttons 5 & 4 to 1 and 2 otherwise, core dump
!# This will move proportionnaly to cursor position but we dont know how to
!# program the same exact behavior as in the text widget.
kterm.vt100.Scrollbar.translations: #override\n\
<Btn5Down>: StartScroll(Forward)\n\
<Btn4Down>: StartScroll(Backward)\n\
	

これでスクロールできるようになる。 シフトを押しながらスクロールさせると1行づつ、 コントロールを押しながらスクロールさせると1ページ単位で スクロールできる。

IMWheel

スクロール対応していないソフトには、 IMWheelというソフトがある。 インストールしてみるといいかも

$ wget http://jonatkins.org/imwheel/files/imwheel-1.0.0pre1.tar.gz 
$ tar xvfz imwheel-1.0.0pre1.tar.gz 
imwheel-1.0.0pre1/
imwheel-1.0.0pre1/Makefile.in
imwheel-1.0.0pre1/README
imwheel-1.0.0pre1/stamp-h.in
・
・
$ cd imwheel-1.0.0pre1
$ ./configure
・
・
$ make
・
$ su
# make install
	

これを実行するとinstallerをダウンロードしてインストールを開始する。

インストール終了したら、 自分のホームディレクトリに 「/usr/local/bin/imwheel &」と書いた .xinitrcを作っておいてXを再起動すればよい。

もどる


Kenji Ohmori
Last modified: Tue May 31 02:00:38 JST 2005