[우분투 18.04 데스크톱] 텍스트 입력 중 터치패드 튐(클릭) 막아보자

우분투 16.04에서는 타자 치는 중에 터치패드가 튀어서 터치되는 증상이 없었던 것으로 기억합니다. 마우스&터치패드 관련 설정에서 “Disable while typeng” 체크 박스를 켜놓고 사용했었거든요.

 

▲ 우분투 16.04 데스크톱의 Mouse&Touchpad 설정 창.

 

그런데 우분투 18.04 데스크톱에서는 이 옵션이 안 보이더군요(Gnome3 인터페이스가 치밀하지 못하네요. Gnome3 환경으로 바뀌면서 손볼 곳이 늘었습니다.). 그리고 터치패드가 아주 민감하게 설정되어 있어서 타이핑할 때 (터치패드에 손이 닿지 않았음에도) 반응하여 마우스 포인터가 있는 곳에서 자꾸 클릭이 됩니다. 우분투 사용 빈도가 늘수록 자꾸 신경이 쓰여서 해결 방법들을 찾아봤습니다.

 

일정 넓이 이상의 터치를 손바닥으로 간주하게끔 처리하는 방법은 터치패드 하드웨어/드라이버마다 설정값이 달라질 확률이 높기 때문에 범용성이 떨어진다고 판단해서 제외.

 

▲ org.gnome.desktop.peripherals.touchpad 에 disable-while-typing 항목이 분명히 있는데 우분투 18.04에서는 왜 작동하지 않는 것인지…

 

최종적으로 적용하기로 결정한 방법은… syndaemon 명령어를 이용해서 타이핑하는동안 터치패드 클릭을 무력화하는 것입니다. 손터치만 무력화되고, 물리버튼 클릭은 그대로 작동합니다. 그래서 마우스에는 영향이 없을 겁니다.

 

※ 참고한 글들

https://kwonnam.pe.kr/wiki/linux/ubuntu/touchpad
https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Disable_touchpad_while_typing
https://askubuntu.com/questions/192566/how-do-i-verify-that-syndaemon-is-disabling-the-touchpad-while-i-type/439082#439082

 

▲ 에디터로 원하는 경로에 원하는 이름의 sh 파일을 만듭니다. 저는 사용자 홈 디렉토리에 solve-touch.sh 파일을 만들었습니다.

 

▲ 위 스크린 샷처럼 입력하고 저장+빠져나옵니다. 핵심은 syndaemon -t -i 0.8 -R -d 입니다.

 

터미널 창에서 syndaemon -? 라고 쳐보면 설명이 자세하게 나오는데, 적용한 옵션을 순서대로 설명하면… 탭과 스크롤만 금지하고 마우스 움직임은 지속(-t) | 키보드 입력이 끝난 뒤 터치패드 클릭 되돌릴 때까지의 시간 0.8 초.(-i 0.8) | XRecord extension을 사용(-R) | 대몬으로 작동시킴(-d). 이렇습니다.

 

▲ chmod u+x solve-touch.sh 처럼 입력해서 파일에 실행 권한을 줍니다.
ll solve-touch.sh 라고 쳐보면 사용자에게 실행(x) 권한이 추가된 것을 확인할 수 있습니다.

 

▲ 작동 테스트를 해봅니다.
터미널 창에서 ./solve-touch.sh 라고 입력합니다.

ps -xf | grep syndaemon 이라고 쳐봤더니 3914번 PID로 데몬(프로세스)가 실행되고 있습니다.
“시스템 정보” 에서 프로세스 탭을 확인해봐도 3914번 PID와 syndaemon 이름이 보입니다.

 

▲ 제대로 작동하고 있는지는 타이핑하면서 터치패드 포인터를 이리저리 옮기면서 탭 해봐도 되고, 터미널 창에서 while true; do synclient|grep TouchpadOff; sleep 0.5; done 이라고 입력해봐도 됩니다. 키 입력이 안되면 0을/키 입력이 되면 0 이외의 값이 출력될 겁니다. 테스트 중단은 Ctrl+C.

 

▲ syndaemon 데몬을 끌 때는 “시스템 정보” 에서 “프로세스 끝내기” 버튼을 이용하는 것을 추천합니다. 터미널 창에서 killall -q syndaemon 이라고 쳐도 되는데, 키 입력 도중에 명령어가 들어가면 터치가 안 되게끔 고정되더군요. 이 상황은 로그아웃/재부팅 해야만 해결됐습니다.

 

이제 solve-touch.sh 파일을 부팅될 때 실행되도록 조치합니다.

▲ “프로그램 표시” 버튼을 클릭한 다음(단축키 : Win키) “시작 프로그램(Startup Applications)”을 클릭합니다.

 

▲ “추가” 버튼을 누르고, “명령” 항목에 /bin/sh /경로/파일명.sh 형식으로 입력합니다.

추가를 마쳤으면 창을 닫고 PC를 재부팅해 봅니다.

 

▲ “시스템 정보”의 “프로세스” 탭을 보면 syndaemon이 돌아가고 있을 겁니다.

 

성공!

 

▲ /home/계정명/.config/autostart/ 디렉토리를 보면 desktop 확장자로 바로가기가 등록되어 있을 겁니다. 파일 내용은 위 스샷과 같습니다. 그러니까 /home/계정명/.config/autostart/ 디렉토리에 등록하면 부팅할 때 실행되는 거였네요.

 

설정 값이 마음에 안 들면 조금씩 바꿔보시고, 좋은 설정값 찾아내셨다면 공유해주세요. 본문에 반영하겠습니다.

CC BY-NC-ND 4.0