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


7

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터미널 명령의 출력을 추가하십시오 .
Pilot6

@ Pilot6 그렇게했습니다. 시간 내 주셔서 감사합니다 :-)
artfulrobot

명확하게하기 위해 토글 스크립트가 작동하는지 언급 할 수 있습니까? 그것은 사용 gsettings하고 약간의 토론이 있습니다 :)
Jacob Vlijm

나를 위해 장치 ID와 괄호 안의 숫자가 다릅니다.
lpanebr

답변:


9

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

xinput disable 13

다시 활성화

xinput enable 13

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

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

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

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


아, 방금 잘못된 장치를 얻었습니다. 그렇다면 시냅스가 무엇인지 궁금하십니까?! 감사.
artfulrobot

아무것도하지 않습니다. 커널에 의해 잘못 감지되었습니다. 고칠 수 있습니다.
Pilot6

3

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
    

터치 패드가 잘못 감지되었으므로이 모든 것이 OP에서 작동하지 않습니다.
Pilot6

감사합니다 @Pilot이, 나는 의심 나는 그가 할 수 시스템 설정에서 설정 : 내가 설정 응용 프로그램에서 비활성화 할 수 있습니다 내가 확신, 사용합니다 gsettings. OP가 언급하지 않았다고 언급하면 ​​답변을 제거합니다.
Jacob Vlijm

문제는 사용자 공간과 gsettings가 해결한다는 것 SynPS/2 Synaptics TouchPad입니다. 그러나 그것은 잘못이다. OP가 (으)로 부팅되면 i8042.nopnp아마도 작동합니다. 그러나 그렇게 복잡한 방법으로 그렇게 할 이유가 없습니다.
Pilot6

@ 파일럿 나는 이것이 복잡하지 않다고 생각하며 OP는 토글 할 때 단 하나의 단축키를 사용하는 옵션을 제공합니다. 그가 무엇을 응답하는지 보자.
Jacob Vlijm

안녕하세요, 여기 OP입니다. Pilot6은 왜 내 노력 (적어도 두 번째 노력)이 효과가 없는지 지적했습니다. 나는 잘못된 신분증 (doh!)을 가지고있었습니다. Jacob-쉘 명령을 실행하기 위해 Python으로 뛰어 들지 확실하지는 않지만 중요한 것은 gsettings 방법 15.10 이상이 작동했습니다.
artfulrobot

1

나도 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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.