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])
그것을 사용하려면
- 올바른 우분투 버전에 대한 위의 스크립트를 빈 파일에 복사하고 다른 이름으로 저장하십시오.
toggle_touchpad.py
-
바로 가기에 다음 명령을 추가하십시오.
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
스크립트가 작동했지만 표시하지 않기를 원했기 때문에 두 토글 스크립트 python
의 bash
버전 을 사용했습니다 .
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
나는 당신의 질문을보기 전에 그것을 사용하려고하지 않습니다 …