리눅스에서 휠 마우스를 이용하자작성일: 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을 실행하고, 넷스케이프를띄워서
아무 페이지나 읽어보자. (스크롤바가 나타날 만큼 세로로 긴 페이지) 그다음 휠을 움직여
보면? 아무 일도 일어나지 않는다!! :-P 설치만 한 상태에서는휠을 거의 사용할 수 없을 것
이다. (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 를 쓸 당시부터 가졌던 의문이다. 누가 답 좀 가르쳐주시길...