리눅스에서 휠 마우스를 이용하자작성일: 1999. 8. 7.이 글에서는, 리눅스의 X윈도우 상에서
로지텍 휠마우스 벌크제품의 휠스크롤기능을 사용하는 법에 대해서 다루었습니다. 제 홈
페이지에 올리려고 작성한 것을 text 로 변환했기에 가로 폭 등이 조금 안 맞아서보기 불편
할지 모르겠습니다. 양해바랍니다. ------------------------------------------------------얼
마 전, 리눅스에서도 휠 마우스의 휠스크롤 기능을 사용할 수 있다는 말을 듣고로지텍 제
품을 구입했다.내가 구입한 것은 Logitech FirstMouse+(PS/2) 제품이었는데, 몇천원을 아끼려고벌
크 제품을 구입했다. 표면에 Logitech이 아닌 Trigem 상표가 찍혀 있고, 바닥을보면 모델명이 M-
S48 이라고 적혀 있다. (참고로, 정품은 Logitech마크가 컬러로찍혀 있고, 모델명은 M-C48이다)
처음에 이 제품의 휠을 사용하기 위해서 인터넷과 통신망을 뒤져보았는데, "벌크제품의 경
우는 안된다"라는 말이 있어서 가슴이 철렁 내려앉았으나, 지금은무난하게 사용하고 있다.
함부로 벌크 제품을 구입할 것도 아니라는 교훈도간직하고 있다.
-------------
-----------------------------------------참고해야 할 사이트 * Colas Nahaboo X mouse wheel scroll page h
ttp://www.inria.fr/koala/colas/mouse-wheel-scroll/ 리눅스에서 휠 마우스를 사용하는 방법을 잘 설
명하고 있는 곳이다. 꼭 한 번 보게 될 것이며 (리소스 파일 때문에. 아래에서 설명) 로
지텍 마우스 정품, 마이크로소프트 인텔리 마우스 등을 쓰고 있는 사람은 이곳에서
imwheel 이란 프로그램에 대해서 알아보기 바란다. * Directory Listing: Mouse_Diag and Enable_Logit
ech_Wheel http://www.physics.wm.edu/~norman/Mouse_Diag/index.html 나와 같은 벌크 제품을 사용하
는 사람은 이곳에서 Enable_Logitech_Wheel-0.3.tgz 파일을 다운받아야 한다. * 적수네 동네 -
팁! 게시판 [게시판 보기] http://www.linux.sarang.net/board/list.php3?table=tip 이 곳에서 검
색어로 "휠"을 넣으면 imwheel 을 이용한 휠마우스 사용법에 대해 적은 글을 찾을 수 있
다. ------------------------------------------------------필요한 파일과 패키지 * Enable_Logi
tech_Wheel-0.3.tgz - 위에서 말한 사이트에서 다운로드받으면 된다. ---------------
---------------------------------------설치 1. Enable_Logitech_Wheel-0.3.tgz 파일의 압축을 푼다.
gzip -dc Enable_Logitech_Wheel-0.3.tgz | tar xvf - 또는 tar zxvf Enable_Logitech_Wheel-0.3.tgz
2. 압축이 풀린 디렉토리로 들어가서 컴파일한다. [uliphin@localhost temp]$ cd Enable_
Logitech_Wheel-0.3 (~/temp 에서 압축을 풀었다면) [uliphin@localhost Enable_Logitech
_Wheel-0.3]$ make Compiling enable_wheel.c - DONE! Creating Executable: Enable_Lo
gitech_Wheel - DONE! [uliphin@localhost Enable_Logitech_Wheel-0.3]$ 3. 실행파일과 man p
age를 각각 적절한 장소에 옮겨준다. cp Enable_Logitech_Wheel /usr/local/bin/ cp
Enable_Logitech_Wheel.1 /usr/local/man/man1/ (여기서처럼, /usr/local/bin 등에 옮기려면 root의
권한이 필요할테니, su 명령 등을 쓰도록 한다.) 4. X윈도우가 휠마우스를 지
원하도록 /etc/X11/XF86Config 파일을 수정한다. 아래에서 굵게 표시한 부분에 특히 주의하
여 정확히 수정한다. (앞부분 생략) Section "Pointer" P
rotocol "MouseManPlusPS/2" Device "/dev/mouse" Buttons 5
ZAxisMapping 4 5 EndSection (뒷부분 생략) 5. X윈도우를 재실행한
다. 6. Enable_Logitech_Wheel 을 실행한다. (한텀에서 실행하건, 윈도우 매니저에 따라
나름대로 설정하여 시작할 때 자동으로 실행하게 하건 상관없다. 내 경우에는 KDE가 시
작할 때 자동으로 실행하게 해 놓았다.) ----------------------------------------
-------사용위의 설치과정을 마치고 나서, Enable_Logitech_Wheel을 실행하고, 넷스케이프를띄워서
아무 페이지나 읽어보자. (스크롤바가 나타날 만큼 세로로 긴 페이지) 그다음 휠을 움직여
보면? 아무 일도 일어나지 않는다!!
설치만 한 상태에서는휠을 거의 사용할 수 없을 것
이다. (gftp, rxvt 등에서는 작동한다.)이쯤에서 눈치 챘을지도 모르지만, Enable_Logitech_Wheel 은
마우스의 휠의위,아래 움직임을 각각 버튼4, 버튼5가 눌린 것으로 인식시키는 역할을 한다.
(정확한 기술적인 내용은 나도 잘 모른다. 항상 그렇듯이..) 그런데, 정작어플리케이션들이
버튼4와 버튼5에 대해 반응을 하지 않는다면 결국 무용지물인것이다. 따라서, 각 프로그램
들이 그 버튼에 대해 특정한 동작을 수행하도록설정해주어야 한다. 여기서는 한텀과 넷스
케이프에 대해서만 알아보자.한텀한텀의 리소스(resource) 파일은 /usr/X11R6/lib/X11/app-defaults/Han
term 이다.이 파일을 들여다보면, 다음과 같은 부분이 있을 것이다. Hanterm*VT100.Translations
: #override Ctrl ~Shift ~Meta <KeyPress> F3: toggle-chat() Ctrl ~Shift ~Meta <KeyPress> F9: hanja
: -input() Ctrl ~Shift ~Meta <KeyPress> space: hanja-input() Ctrl ~Shift ~Meta <KeyPress> F7: code-input() Ctrl ~Shift ~Meta <KeyPress> F2: change-code() ~Ctrl Shift ~Meta <KeyPress> space: toggle-hangul() Ctrl ~Shift Meta <KeyPress> c: toggle-chat() <KeyPress> Hangul: toggle-hangul() <KeyPress> Hangul_Hanja: hanja-input()이 부분의 끝에 다음과 같이 추가해준다. 굵은 글씨로 된 부분이 추가할부분이다. Hanterm*VT100.Translations:#override (생략) <KeyPress> Hangul_Hanja: hanja-input() <-- 원래 부분의 마지막 Shift<Btn4Down>,<Btn4Up>:scroll-back(1,line) Shift<Btn5Down>,<Btn5Up>:scroll-forw(1,line) Ctrl<Btn4Down>,<Btn4Up>:scroll-back(1,page) Ctrl<Btn5Down>,<Btn5Up>:scroll-forw(1,page) <Btn4Down>,<Btn4Up>:scroll-back(1,halfpage) <Btn5Down>,<Btn5Up>:scroll-forw(1,halfpage)이 때 주의할 점은, 중간에 한 줄이라도 띄우면 안 된다라는 것과, 각 줄의 끝의백슬래쉬는 "다음 줄과 연결"을 뜻하기 때문에, 원래 부분의 마지막에는백슬래쉬가 있어야 하고, 추가한 부분의 끝에는 없어야 한다라는 점이다.이제, Enable_Logitech_Wheel 이 실행되어 있는 상태에서 hanterm 을 띄우고,엔터키를 마구 눌러서 한 페이지를 넘긴 다음, 그 위에서 마우스의 휠을움직여보자. 스크롤바가 위아래로 움직이며 스크롤이 된다면 성공!!! 그냥 휠만움직이면 반페이지씩, Ctrl키를 누른 채로 움직이면 한 페이지씩, Shift키를 누른채로 움직이면 한줄씩 움직일 것이다.그런데, 정작 스크롤바 위에 마우스 포인터가 있을 때는 휠이 작동을 안 한다. 이부분도 리소스 파일을 수정해 주어야 한다./usr/X11R6/lib/X11/app-defaults/Hanterm 파일에 다음 항목을 추가한다. Hanterm*VT100.Scrollbar.Translations:#override <Btn5Down>: StartScroll(Forward) <Btn4Down>: StartScroll(Bacward)넷스케이프이번에는 넷스케이프에서 휠을 사용하는 법에 대해 알아보자. 한텀과 마찬가지로리소스파일을 고쳐줘야 하는데, 넷스케이프의 리소스 파일은/usr/X11R6/lib/X11/app-defaults/Netscape 이며, 다음의 굵은 글씨 부분을추가해준다. *drawingArea.translations: #replace (생략) <Btn3Down>: xfeDoPopup() <-- 원래 부분의 마지막 <Btn3Up>: ActivatePopup() Ctrl<Btn4Down>: PageUp() Ctrl<Btn5Down>: PageDown() Shift<Btn4Down>: LineUp() Shift<Btn5Down>: LineDown() None<Btn4Down>: LineUp()LineUp()LineUp()LineUp()LineUp()LineUp() None<Btn5Down>: LineDown()LineDown()LineDown()LineDown()LineDown()LineDown() Alt<Btn4Down>: xfeDoCommand(forward) Alt<Btn5Down>: xfeDoCommand(back) (생략) *globalNonTextTranslations: #override (생략) ~Meta ~Alt ~Ctrl<Key>osfPageDown: PageDown() <-- 원래 부분의 마지막 Ctrl<Btn4Down>: PageUp() Ctrl<Btn5Down>: PageDown() Shift<Btn4Down>: LineUp() Shift<Btn5Down>: LineDown() None<Btn4Down>:LineUp()LineUp()LineUp()LineUp()LineUp()LineUp() None<Btn5Down>:LineDown()LineDown()LineDown()LineDown()LineDown()LineDown() Alt<Btn4Down>: xfeDoCommand(forward) Alt<Btn5Down>: xfeDoCommand(back)노파심에서 얘기하지만, 각 줄은 ""으로 끝날 때까지 전부 한 줄로 되어있어야 한다. 중간에 줄이 바뀌면 안 되니, 이 글을 볼 때 브라우저의 가로너비를최대로 해서 보기 바란다.
이제 넷스케이프를 띄우고, 스크롤 기능을 시험해보자. Shift나 Ctrl키와 같이움직였을 때의 반응은 한텀과 비슷하고, Alt키를 누른채로 휠을 아래로 움직이면"이전 페이지로", 위로 움직이면 "다음 페이지로" 기능처럼 동작할 것이다.요것도 매우 쓸만하다.
그 외 프로그램들한텀과 넷스케이프 말고도, emacs 등 여러 프로그램에서 휠을 쓰기 위한 리소스파일의 예제가 위에서 언급한Colas Nahaboo X mouse wheel scroll page 에 나와 있으니 참조하도록 한다. ------------------------------------------------------끝으로 * 로지텍 정품이나 마이크로소프트 인텔리마우스 등을 사용하는 이들은, 역시 Colas Nahaboo X mouse wheel scroll page 에 가서 글을 잘 읽어보면 imwheel 이라는 프로그램을 이용해서 휠을 작동시키는 법에 대해 언급하고 있을 것이다. 로지텍 벌크 제품인 경우에는 그 방법이 효과가 없었기 때문에 위와 같이 하여야 하였다. * 휠이 결국 버튼4와 버튼5의 작동으로 인식되다보니, KDE의 파일 선택 창 등에서는 휠을 움직이면 스크롤이 되는 게 아니라 버튼1(왼쪽 버튼)을 클릭한 것과 동일한 결과가 나온다 . 함부로 휠을 움직이면 황당한 경우를 당할 수 있으니 염두에 둘 것. * 넷스케이프의 경우, 처음에는 프레임이 있는 곳에서는 휠이 작동을 하지 않았다. 그런데 어느 순간부터 작동하기 시작하였다. :-O 뭘 만져주어야 하는지는 모르겠지만, 아마 환경설정 부분에서 폰트를 변경하고 확인버튼을 누른 후에 작동을 하기 시작한 걸로 기억한다. 프레임에서 휠이 작동을 안 하면 환경설정을 한번쯤 끄적거려줄 것. * 프레임이 있는 페이지에서는, 자기가 스크롤하고 싶은 프레임을 한번 클릭해 준 다음 휠을 움직여야 한다. 마우스 포인터의 위치만 가지고는 인식을 못하니 염두에 둘 것. * NumLock 키가 눌러져 있으면 휠이 작동하지 않는다. 왜 NumLock 키가 키패드 외에 다른 부분에도 이런 영향을 끼치는지는 알짜 4.2 를 쓸 당시부터 가졌던 의문이다. 누가 답 좀 가르쳐주시길...