ELECOM EX-G Pro Trackball 잉여 버튼을 Page Up/Down으로 쓰기

Posted on Oct 25, 2019

컴퓨터를 많이 쓰니까 다른 부분보다 손목이 먼저 망가져서, 손목을 조금만 큰 각도로 꺾으면 아프다. ㅠ.ㅠ.. 예전에도 그랬었는데1

  1. 마우스 안쓰고, 트랙볼 쓰기2
  2. 키보드 넘패드 부분 없는 짧은 86키 레이아웃 쓰기

로지텍 마블 트랙맨 잘 쓰다가, 지름을 받아서 조금 다음 티어의 제품으로 업그레이드 해봤다.

그래서 바꾼게 –> 엘레컴 EX-G Pro Trackball

..그런데 다 좋은데, 저기 있는 Function assignment button 이라고 써있는게 2개가 더 달려있음.3

이 추가기능버튼들은 윈도였다면 벤더에서 제공하는 프로그램을 통해서 할당이 가능할거 같은데, 리눅스/X윈도에서는 xev으로 확인해보니 그냥 Button 10번, 11번이었다.

그래서 조금 설정을 해보기로 했다. 원하는건 단순하다:

  1. 어차피 wheel 달려있지만, 강렬한 Page Down, Page Up 기능으로 웹페이지나 문서를 읽을 때 더 강렬하게 편안하고 싶다.
    • 마우스휠을 굴리는 것도 딸캌 한 번 클릭에 비하면 칼로리 소모가 무시 못하게 크다.

그래서 다음의 조합으로 설정해봤음:

  1. xbindkeys
    • 키보드, 마우스 이벤트를 잡아서 원하는 쉘커맨드 실행
    • GNU Guile을 설정파일을 작성해서, Scheme으로 원하는 기능 작성도 가능. (그렇게 열심히 코딩할 것도 없지만)
  2. xdotool
    • fake keyboard/mouse input, window management, and more
    • 이걸로 Page Down / Page Up 키를 대신 눌러주도록.

참고로, X윈도에서는 ‘Page Down’ / ‘Page Up’ 키들을 ‘Next’ / ‘Prior’이라고 부름.4

그래서 xbindkeys 설정 파일은 다음처럼 만들어봤다:

;;;; ~/.xbindkeysrc.scm
(xbindkey '("b:10") "xdotool key Next")
(xbindkey '("b:11") "xdotool key Prior")

간단하다. 그리고 적당히 시작스크립트에 xbindkeys 실행하도록 한 줄 넣어줬다.

그냥 언제나 X윈도로 이런거 할때마다 느끼는거지만, 유닉스쟁이들은 자동화와 커맨드들의 연결을 통해 뭔가를 하는걸 정말 사랑하는구나 싶다.

XTEST X윈도 프로토콜 같은거 일일이 표준화하면서 넣어서 xdotool 같은 자동화 도구 만들어내는거나 그런거 보면 재밌다. 하긴 뭐 그럴려고 리눅스, 오픈소스 쓰는거겠지만.

그나저나 참 오랬만에 Guile을 설정 언어로 쓰는 프로그램을 봤다. ㅎㅎ Guile으로 설정 파일 쓸거면 그냥 거기서 키이벤트 발생하는 기능 넣어놓으면 좋았을까 싶다가도, 유닉스스럽게 한 프로그램은 한가지 일만 잘하기 가 떠올랐다.



  1. 한 10여년;;; ↩︎

  2. 저렴하고 그럭저럭 쓸만한 로지텍 마블 트랙맨 (소개글)을 주로 썼었다. ↩︎

  3. 다른 “Back” / “Forawrd” 버튼 같은건 리눅스에서도 웹브라우져에서 잘 동작함. ↩︎

  4. 참고 http://xahlee.info/linux/linux_show_keycode_keysym.html, https://cgit.freedesktop.org/xorg/proto/x11proto/tree/keysymdef.h ↩︎