Linux Programmer

터치패드 켜기/끄기 토글 기능 - Fedora Linux 본문

컴퓨터 관련/리눅스 데스크탑

터치패드 켜기/끄기 토글 기능 - Fedora Linux

sunyzero 2024. 1. 8. 19:52

랩탑(노트북)에는 터치패드를 켜고 끌 수 있는 펑션키가 존재한다. 랩탑의 펌웨어가 펑션키를 표준적인 방법으로 작동시키는 경우라면 윈도, 리눅스 어디서든지 잘 작동한다. 하지만 비표준적인 방법으로 작성된 경우라면 윈도에서만 작동되고, 리눅스에서는 제대로 작동되지 않을 수도 있다.

예를 들어 아래 삼성 갤럭시북3 사진에 보면 F5 펑션키에 터치패드 그림이 그려져 있는 것을 볼 수 있는데, 아쉽게도 리눅스에서 작동되지 않는다. 다시말해 삼성의 갤럭시북3 랩탑의 Fn-F5 키는 윈도에서는 잘 작동하지만, 리눅스에서는 해당 키를 눌러도 아무런 반응이 없다. 따라서 Fn-F5키 대신에 Ctrl-Super-F5를 누르는 방식으로 우회하는 기능을 만들어보자. 참고로 Super는 키보드의 "윈도키"를 말한다.

Samsung Galaxy book3 Pro (nt940)



 

0. 작업 환경

운영체제 (배포판) Fedora Linux 38
X window 데스크탑 환경 GNOME40
랩탑 모델 삼성 갤럭시북3 Pro 14인치 (nt940)
사용 프로그램 gsettings, notify-send


gsettings는 glib2에 속한 바이너리로서 기본으로 설치되어있다. notify-send는 알람을 띄우는 기능으로, 터치패드를 활성화 했는지 비활성화 했는지를 화면에 알람으로 알려주도록 할 것이다.

 

1. 터치패드 on/off 스크립트 작성

먼저 ${HOME}/bin/ 경로에 toggle-touchpad.sh를 아래와 같은 내용으로 생성하고, 실행권한을 부여하자.

만일 랩탑에 여러 유저 생성해서 사용한다면 모든 유저가 사용할 수 있도록 /usr/local/bin/toggle-touchpad.sh 경로에 스크립트를 저장하자.

 

#!/bin/bash

# NAME: toggle-touchpad
# PATH: /home/$USER/bin
# NOTE: ref https://askubuntu.com/questions/863746/keyboard-shortcut-to-toggle-enable-disable-laptop-touchpad/863750#863750

set -e
TOUCHPAD_STATUS=$(gsettings get org.gnome.desktop.peripherals.touchpad send-events | tr -d "'\"")
set +e

case $TOUCHPAD_STATUS in
    enabled)
        echo "[INFO] Disable the touchpad"
        gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled
        DISPLAY=:0 notify-send --urgency=normal --icon=/usr/share/icons/gnome/256x256/status/user-available.png "Touchpad disabled"
        ;;
    disabled)
        echo "[INFO] Enable the touchpad"
        gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled
        DISPLAY=:0 notify-send --urgency=normal --icon=/usr/share/icons/gnome/256x256/status/user-busy.png "Touchpad enabled"
        ;;
    *)
        >&2 echo "[ERR] Unknown touchpad status = $TOUCHPAD_STATUS"
        exit 1
        ;;
esac

exit 0

 

2. 스크립트 테스트 실행

앞서 작성한 toggle-touchpad.sh shell script가 잘 작동하는지 터미널에서 테스트를 해보자. 방법은 터미널에서 스크립트를 두어번 실행해보면, 트랙패드 on/off가 토글되는 것을 볼 수 있다.

$ ~/bin/toggle-touchpad.sh
...터치패드가 on 상태라면 off가 된다.

$ ~/bin/toggle-touchpad.sh
...터치패드가 off 상태라면 on 된다.

잘 작동하는지 확인했다면 단축키를 지정하자.

 

3. 단축키 지정

매번 명령을 직접 내리기를 어렵기 때문에 단축키(shortcut)를 지정해서 사용하도록 한다. 앞서 언급한대로 <Ctrl-Super-F5>로 매핑하도록 하겠다. "제어판"에서 "키보드" , "사용자 설정 바로 가기"에서 아래처럼 추가해놓는다.

 

GNOME40 - control-panel - shortcut - toggle-touchpad

이제 단축키가 잘 작동하는지 <Ctrl-Super-F5>를 눌러본다. 

 

4. 패치

삼성 갤럭시북3에 대한 키보드 스캔 코드 DB가 만들어졌다. 아래 주소에서 확인할 수 있다.

https://github.com/joshuagrisham/samsung-galaxybook-extras

 

히스토리

2024-08-11 갤럭시북3 키보드 스캔코드 DB에 관한 내용 추가

2024-01-08 초안

반응형
Comments