Dell 노트북에서 터치 패드를 비활성화 / 활성화 / 토글하는 방법

Ubuntu 16.04에서 터치 패드를 조정하려고하지만 일반적인 방법 중 아무것도 작동하지 않는 것 같습니다. 예 :

synclient touchpadOff=1

여전히 작동합니다!

$ xinput set-prop $DEVICE_ID "Device Enabled" 0
$ xinput list-props 15 |head -n2
  Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (168):   0

… 여전히 작동합니다!

설정 앱에서 사용 중지 할 수 있습니다. 그러나 이것을 키보드 단축키에 매핑 할 수 있기를 원하므로 명령 줄 솔루션을 찾고 있습니다.

대답하면 Gnome-Shell과 Unity에서 작동하는 경우 보너스 포인트 🙂

편집 : 주석에서 요청 한대로 xinput의 출력.

$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=12   [slave  pointer  (2)]
⎜   ↳ DLL06E4:01 06CB:7A13 Touchpad             id=13   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=16   [slave  keyboard (3)]

Nb. 나는 15를 사용했다.$DEVICE_ID

편집-아래 답변 덕분에 여기 내 토글 스크립트가 있습니다.

하나의 라이너로 할 수도 있지만 이렇게하면 좋은 알림을받을 수 있습니다. 이것을 바로 가기 키에 첨부했으며 매력이 있습니다. 모두 감사합니다.

#!/bin/bash
if xinput list-props 13 | grep "Device Enabled (168):.*1" >/dev/null
then
  xinput disable 13
  notify-send -u low -i mouse "Trackpad disabled"
else
  xinput enable 13
  notify-send -u low -i mouse "Trackpad enabled"
fi


답변

이 명령으로 터치 패드를 끌 수 있습니다.

xinput disable 13

다시 활성화

xinput enable 13

이 장치는에 의해 제어되지 않습니다 psmouse. 에 의해 제어됩니다 synaptics_i2c. 그리고 그것은 장치 13입니다.

ID에 의존하지 않고 이전에 시도한대로 이름으로 전환 할 수도 있습니다. 그러나 새로운 입력 장치를 연결하지 않으면 ID는 그대로 유지됩니다.

자세한 내용은 이 답변 을 참조 하십시오.

잘못 감지 된 장치를 제거하려면 i8042.nopnp커널 부팅 매개 변수 를 추가해야합니다 .


답변

gsettings 사용

설정을 변경할 수있는 경우gsettings 일반적으로 선호하는 옵션입니다. 시스템 설정에서 터치 패드를 활성화 / 비활성화 할 수 있으며 시스템 설정에서 사용하는 것이 확실합니다. 아래 방법이 Dell에서도 작동 하는 gsettings것처럼 보입니다.

터치 패드를 전환하는 스크립트

14.04

#!/usr/bin/env python3
import subprocess

key = "org.gnome.settings-daemon.peripherals.touchpad" ;val = "touchpad-enabled"
curr = subprocess.check_output(["gsettings", "get", key, val]).decode("utf-8").strip()
newval = "false" if curr == "true" else "true"
subprocess.Popen(["gsettings", "set", key, val, newval])

15.04+

#!/usr/bin/env python3
import subprocess

key = "org.gnome.desktop.peripherals.touchpad" ;val = "send-events"
curr = subprocess.check_output(["gsettings", "get", key, val]).decode("utf-8").strip()
newval = "disabled" if curr == "'enabled'" else "enabled"
subprocess.Popen(["gsettings", "set", key, val, newval])

그것을 사용하려면

  1. 올바른 우분투 버전에 대한 위의 스크립트를 빈 파일에 복사하고 다른 이름으로 저장하십시오. toggle_touchpad.py
  2. 바로 가기에 다음 명령을 추가하십시오.

    python3 /path/to/toggle_touchpad.py
    

    시스템 설정> “키보드”> “바로 가기”> “사용자 정의 바로 가기”를 선택하십시오. “+”를 클릭하고 다음 명령을 추가하십시오.

    python3 /path/to/toggle_touchpad.py
    

설명

터치 패드를 비활성화하는 명령 :

14.04의 경우 :

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false

15.04 +의 경우 :

gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled

현재 상태 읽기

스크립트를 사용하여 명령으로 현재 설정을 읽는 경우 :

gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled

(14.04) 또는

gsettings get org.gnome.desktop.peripherals.touchpad send-events

(15.04+)

스크립트를 반대 값으로 설정 하여 터치 패드 를 토글 할 수 있습니다 .


편집하다; 토글 스크립트의 bash 버전

완료하기 위해 OP는 python스크립트가 작동했지만 표시하지 않기를 원했기 때문에 두 토글 스크립트 pythonbash버전 을 사용했습니다 .

14.04

#!/bin/bash

key="org.gnome.settings-daemon.peripherals.touchpad"
val="touchpad-enabled" ;curr="$key $val"

if [ "$(gsettings get $curr)" == "false" ]
then
 gsettings set $key $val true
else
 gsettings set $key $val false
fi

15.04+

#!/bin/bash

key="org.gnome.desktop.peripherals.touchpad"
val="send-events" ;curr="$key $val"

if [ "$(gsettings get $curr)" == "'enabled'" ]
then
 gsettings set $key $val disabled
else
 gsettings set $key $val enabled
fi

바로 가기 키를 넣으려면

  • 스크립트를 다음과 같이 저장하십시오 toggle_touchpad.sh
  • 다음 명령을 사용자 정의 단축키 아래에 넣으십시오.

    /bin/bash /path/to/toggle_touchpad.sh
    

답변

나도 16.04에 있습니다. 나는 보통 키보드 단축키에 작은 스크립트를 사용합니다. 터치 패드를 켜면 터치 패드가 꺼지지 만 몇 초 후에 켜집니다.

스크립트 :

    #!/bin/sh

STATUS=`synclient | grep TouchpadOff | awk '{ print $3}'`

        if [ $STATUS != 1 ];
        then
                synclient touchpadOff=1;
        else
                synclient touchpadOff=2;
        fi
exit 0

나는 당신의 질문을보기 전에 그것을 사용하려고하지 않습니다 …