터치 패드 활성화 / 비활성화


17

내 asus ux501 vw에 Ubuntu 16.04를 설치했지만 일부 바로 가기가 작동하지 않습니다. 터치 패드를 활성화하거나 비활성화 할 수있는 바로 가기 : 터치 패드에 대한 작업으로 긴 문서를 작성할 수 있습니다.

나는 구글에서 그것을 찾으려고했지만 아무것도 얻지 못했다.

누군가가 그 문제를 해결하는 방법을 설명해 줄 수 있습니까? 감사 !

답변:


24

negusp 의 답변 에서이 bash 스크립트를 만들었습니다 . 터치 패드 장치를 찾아서 전환합니다. 시스템 설정에서 사용자 정의 바로 가기를 구성 할 수 있습니다.

#!/bin/bash

read TPdevice <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' )
state=$( xinput list-props "$TPdevice" | grep "Device Enabled" | grep -o "[01]$" )

if [ "$state" -eq '1' ];then
    xinput --disable "$TPdevice" && notify-send -i emblem-nowrite "Touchpad" "Disabled"
else
    xinput --enable "$TPdevice" && notify-send -i input-touchpad "Touchpad" "Enabled"
fi

다음 과 같이 토글 터치 패드 활성화 및 비활성화에 대해 Ctrl+ Shift+ F9를 설정 하고 있습니다.

여기에 이미지 설명을 입력하십시오

편집 : chmod + x filename 명령을 사용 하거나 사용자 정의 바로 가기 창의 명령 필드에 / bin / bash / filepath 를 입력 하여 스크립트를 실행 가능하게 만들어야 할 수도 있습니다.


2
체인 필요는 거의 없다 grep하고 sed. 두 개를 쉽게 통합 할 수 있습니다 sed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'.
David Foerster

3
오류 라인 6을 얻은 후 Ubuntu 17.10에 대한 스크립트에서 약간의 수정 : [: : 정수 표현식이 장치를 찾을 수 없을 것으로 예상 됨 터치 패드를 터치 패드로 변경
Gregor Grajzar

1
멋진 답변! 내 유일한 추가는 추가 할 수 있습니다 zenity --info --text "Touchpad DISABLED" --timeout=2그리고 zenity --info --text "Touchpad ENABLED" --timeout=2당신에 ifelse블록, 각각 다음 새로운 상태를 발표 2 초에 autocloses 창을 팝업.
Gabriel Staples

1
여기 내 약간의 수정 사항을 참조하십시오 : askubuntu.com/a/1109515/327339
Gabriel Staples

1
업데이트 : 일부 시스템 은의 출력에 표시 Touchpad되지 않으므로 두 시스템을 모두 검색하도록 답변을 업데이트했습니다. 또한을 사용하여 느린 스크롤 휠 문제를 올바르게 수정했습니다 . 여기에 전체 ANS를 참조하십시오 askubuntu.com/questions/844151/enable-disable-touchpad/...TouchPadxinputimwheel
가브리엘 스테이 플스에게

11

바로 가기가 필요하지만 데스크탑에 2 개의 스크립트를 쉽게 넣고 실행할 수 있습니다.

먼저 터미널로 가십시오. 을 입력하십시오 xinput. 출력 예 :

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [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)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_1.3M             id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys 

터치 패드를 찾으십시오. 이 예에서 터치 패드는 id = 12 로 표시됩니다.

이것으로 첫 번째 스크립트를 만듭니다

#!/bin/bash
xinput enable 12

저장하고 이름을 지정하고 touchpadenable.sh터미널에서 다음을 사용하여 실행 파일로 표시하십시오.

chmod +x touchpadenable.sh

똑같은 작업을 다시 수행하지만 파일 이름을 touchpaddisable.sh(또는 무엇이든) 대신

xinput enable 12

명령을 사용하십시오

xinput disable 12

저장하고 실행 파일로 표시하면 데스크탑에서 스크립트를 실행할 수 있어야합니다. 참고 : 스크립트를 마우스 오른쪽 단추로 클릭하고 속성을 클릭하여 실행해야 할 수 있습니다.


답변 감사합니다! 나는 이런 것을 사용할 것이다! 한 가지 스크립트 파일에 작성하면 동일한 단축키를 사용할 수 있다고 생각하십니까?
Rei

@Thomas이 답변보기 : askubuntu.com/questions/597395/…
negusp

6

negusp 의 답변 처럼 먼저 터치 장치를 확인해야하며 다음과 같이 표시됩니다.

~ $ xinput
⎡ 가상 코어 포인터 id = 2 [마스터 포인터 (3)]
core ↳ 가상 코어 XTEST 포인터 id = 4 [슬레이브 포인터 (2)]
PixArt Dell MS116 USB 광 마우스 id = 10 [슬레이브 포인터 (2)]
PS ↳ SynPS / 2 Synaptics TouchPad id = 14 [슬레이브 포인터 (2)]
⎜ ↳ DLLC6B2 : 00 06CB : 75BF 터치 패드 id = 12 [슬레이브 포인터 (2)]
⎣ 가상 코어 키보드 id = 3 [마스터 키보드 (2)]
    ↳ 가상 코어 XTEST 키보드 id = 5 [슬레이브 키보드 (3)]
    ↳ 전원 버튼 id = 6 [슬레이브 키보드 (3)]
    ↳ 비디오 버스 id = 7 [슬레이브 키보드 (3)]
    ↳ 전원 버튼 id = 8 [슬레이브 키보드 (3)]
    ↳ 절전 버튼 id = 9 [슬레이브 키보드 (3)]
    ↳ Integrated_Webcam_HD id = 11 [슬레이브 키보드 (3)]
    Translate AT Translated Set 2 keyboard id = 13 [슬레이브 키보드 (3)]
    ↳ Dell WMI 단축 키 id = 15 [슬레이브 키보드 (3)]
    Wireless DELL 무선 핫키 id = 16 [슬레이브 키보드 (3)]

내 경우에는 id = 12 인 장치입니다. 이제 데스크탑 폴더에 "bin"이라는 폴더 아래에 "toggle-touch"라는 이름의 bash 스크립트를 만들고 "~ / Desktop / bin"이되고 다음 코드를 복사하십시오. 장치 변수가 내 터치 id = 12를 가리키고 경우를 수정하십시오.

#!/bin/bash

device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`

if [ $state == '1' ];then
  xinput --disable $device
else
  xinput --enable $device
fi

이 스크립트 실행 권한으로 설정하십시오.

chmod 775 /Desktop/bin/toggle-touch

마지막으로이 경로를 홈 폴더의 ".bashrc"에 추가 할 수 있습니다. 파일 끝에 다음 줄을 추가하면됩니다.

PATH=$PATH:~/Desktop/bin

경로를 다음과 같이 업데이트하십시오.

. .bashrc

그런 다음 어느 곳에서나이 스크립트를 실행할 수 있습니다. 도움이 되길 바랍니다.


1

내 우분투 18.04에서 Almas Dusal 의 대답은 TouchPad다음 코드 줄 에서 'p'를 소문자로 변경하기 전까지는 작동하지 않았습니다 .

read TPdevice <<< $( xinput | sed -nre '/Touchpad/s/.*id=([0-9]*).*/\1/p' )

그 후 스크립트에서 터치 패드를 성공적으로 비활성화하고 활성화했지만 마우스 및 터치 패드 설정 화면에 반영되지 않았습니다 . 설정보기를 업데이트하는 동안 터치 패드를 토글하는 다음과 같은 새로운 스크립트를 만들었습니다.

#!/bin/bash

state=$( gsettings get org.gnome.desktop.peripherals.touchpad send-events )

if [ "$state" = "'enabled'" ];then
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled' \
        && notify-send -i touchpad-disabled-symbolic "Touchpad" "Disabled"
else
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'enabled' \
        && notify-send -i input-touchpad-symbolic "Touchpad" "Enabled"
fi

1

Ubuntu 14.04, 16.04 및 18.04에서 테스트 및 작동했습니다.

좋아하세요 @Almas Dusal의 대답 처럼 수행, @ negusp의 대답 사용을 제외하고는이 대신하기 때문에 내 수정 된 스크립트 3 명 추가 혜택 ( : 혜택 1과 3 아래 2019 9월 12일을 추가 한 업데이트를 )

  1. 일부 시스템은 대문자를 사용하고 다른 시스템은 그렇지 않기 때문에 AND 의 출력 xinput을 모두 검색합니다 . 이것은 내 스크립트가 더 많은 시스템 (모든 시스템)과 호환되도록합니다.TouchpadTouchPad
  2. zenity터치 패드가 활성화 또는 비활성화되어 있는지 표시하기 위해 2 초 자동 닫기 팝업 창을 추가합니다 . 아래 팝업 창 스크린 샷을 참조하십시오.
  3. 스크롤 휠 속도를 올바르게 수정하여 imwheel마우스를 사용할 때 활성화하고 (마우스 스크롤 휠을 사용할 때 우분투 / Linux에서 느린 스크롤 휠 문제를 해결 함) imwheel터치 패드 를 사용할 때 비활성화합니다. imwheel그렇지 않으면 터치 패드 스크롤이 실제로 글리치됩니다 활성화되면. 이 작업을 수행하려면 해당 줄의 주석 처리를 제거하십시오. 예 : # imwheel -b "4 5"# killall imwheel.
#!/bin/bash

# GS_toggle_touchpad.sh
# - toggle the touchpad on and off

# Gabriel Staples
# Written: 2 Apr. 2018 
# Updated: 12 Sept. 2019 

# References:
# - /ubuntu//a/874865/327339
# - /ubuntu/844151/enable-disable-touchpad/1109515#1109515 <-- my own ans!

# Search for id number of "TouchPad" OR "Touchpad" in `xinput` list; manually type `xinput` to see all your devices
read TouchPadDeviceId <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' ) 

state=$( xinput list-props "$TouchPadDeviceId" | grep "Device Enabled" | grep -o "[01]$" )

echo "TouchPadDeviceId = $TouchPadDeviceId"
echo "state = $state"

if [ "$state" -eq '1' ];then
    xinput --disable "$TouchPadDeviceId"
    zenity --info --text "Touchpad DISABLED" --timeout=2
    # Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here: 
    # /ubuntu//a/991680/327339
    # imwheel -b "4 5"
else
    xinput --enable "$TouchPadDeviceId"
    zenity --info --text "Touchpad ENABLED" --timeout=2
    # Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here: 
    # /ubuntu//a/991680/327339
    # killall imwheel
fi

스크롤 휠 속도를 고정하기 위해이 답변을 따르는 경우에만 임 휠링이 필요합니다 . Chrome 스크롤 속도를 영구적으로 수정하십시오 .

이제 Ctrl+ Alt+ 의 바로 가기 키를 지정하십시오 P(또는 'P'는 touch'P'ad를 의미합니다). 위의 스크립트에 추가 된 zenity자체 폐쇄 팝업 창 부분은 여기에 내 대답에 더 자세히 설명되어 있습니다 ( /superuser//a/1310142/425838 ).

위의 단축키를 사용하면 2 초 후에 자동으로 닫히는이 팝업 창이 나타납니다.

여기에 이미지 설명을 입력하십시오

그리고 다시 누르면 2 초 후에 자동으로 닫히는 팝업 창이 나타납니다.

여기에 이미지 설명을 입력하십시오

완전한!

추가로, 마우스를 많이 사용하는 사용자라면 위의 스크립트를 호출하는 명령을 Ubuntu의 시작 프로그램에 추가하면 컴퓨터가 시작될 때마다 트랙 패드가 실행되고 비활성화됩니다! 트랙 패드에 손을 대고 부딪 히고 실수로 물건을 지울 수 있도록이 세트가 있습니다! 이제 내 손이 트랙 패드에 부딪히면 비활성화되어 있기 때문에 아무 일도 일어나지 않습니다. :)

참고 :이 모든 것은 Ubuntu 18.04 및 이전 버전에서 훌륭하게 작동합니다. 우분투 18.04 및 우분투 14.04에서 테스트했습니다. 18.04의 바로 가기 설정 창에있는 스크린 샷은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

관련 :

  1. Chrome 스크롤 속도를 영구적으로 수정

HP Probook에서 다시 활성화 할 수 없습니다. 이 XInput에 2 개 항목은, SynPS/2 Synaptics TouchPad하고 SYNA306A:00 06CB:CD0B Touchpad. 첫 번째 실행은 하나를 비활성화하고 두 번째 실행은 다른 하나를 비활성화합니다. 거기에서 두 번째는 토글되지만 첫 번째는 토글되지 않습니다.
rtaft

0

내 스크립트를 여기에 두십시오 (위와 다소 비슷 함). 장치 ID를 미리 조회 할 필요없이 바로 사용할 수 있습니다.

#!/bin/bash

function query_device_id {
    xinput list | grep -i touchpad | sed 's/.*id=\([0-9]*\).*/\1/g'
}

let device_id=$(query_device_id)

let state=$(xinput list-props $device_id | grep Enabled | awk '{print $4;}')

let new_state=$((1 - $state))

xinput set-prop $device_id "Device Enabled" $new_state

0

쉘 스크립트를 작성하고 아래 코드를 붙여넣고 touchPadDisable.sh로 이름을 지정하십시오.

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput disable $temp

다른 쉘 스크립트를 작성하고 아래 코드를 붙여 넣고 touchPadEnable.sh로 이름을 지정하십시오.

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput enable $temp

첫 번째 스크립트는 터치 패드를 비활성화하고 두 번째 스크립트는 터치 패드를 활성화합니다.

이 스크립트를 키보드의 사용자 정의 단축키에 추가 할 수 있습니다.


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