명령 줄을 사용하여 터치 패드를 비활성화하려면 어떻게합니까?


39

터미널 명령을 사용하여 터치 패드를 비활성화하는 방법이 있습니까?

답변:


55

터치 패드를 끄려면 :

synclient TouchpadOff=1

다시 켜려면 :

synclient TouchpadOff=0

간단하지만 요점으로 이동하십시오.
Ade Malsasa Akbar

7
컴퓨터에서 작동하지 않습니다 ...
Casper

흥미롭고 알고 싶습니다.
aleroxac

2
Dell XPS 13의 Ubuntu 14.04 LTS에서 명령이 오류없이 실행되었지만 효과가 없었습니다.
IJ 케네디

토글은 좋을 것입니다. 바로 가기로 설정하고 싶습니다. 더 나은 방법은 도킹 된 상태에서 터치 패드를 끄는 것입니다
Christian Bongiorno

22

시도 할 수있는 적어도 두 가지 방법이 있습니다.

synclient

랩탑에 Synaptics (또는 ALPS) 터치 패드가 장착되어 있으면 synclientShutupsquare에서 이미 언급 한대로 실제로 사용할 수 있습니다 . Ubuntu 14.04를 실행 중이며 내 컴퓨터에서 기본적으로 설치되었습니다.

synclient가 설치되어 있는지 테스트 synclient -V하십시오 (버전 번호를보고해야 함).

터치 패드 켜기 : synclient TouchpadOff=0

터치 패드 끄기 : synclient TouchpadOff=1

나는 이것을 직접 테스트하지는 않았지만 터치 패드에 팔을 올려 놓았을 때 마우스를 움직이지 않는 것이 목표라면 도움이 될 수 있습니다.

손바닥 감지를 켭니다. synclient PalmDetect=1

손바닥 감지를 끕니다 : synclient PalmDetect=0

일반적으로으로 Synaptics 터치 패드의 모든 속성을 구성 할 수 있습니다 synclient property=value. 속성이 다음에 표시된 사용 가능한 속성 중 하나 인 경우synclient -l

더 읽을 수있는 링크

우분투-커뮤니티 도움말 위키-SynapticsTouchpad

archlinux-위키-터치 패드 시냅틱

ask ubuntu-synclient 설정을 어떻게 유지합니까? -우분투

xinput

synclient를 원하지 않거나 사용할 수없는 경우을 사용할 수도 있습니다 xinput. 절차는 다소 비슷합니다.

모든 xinput 장치를 나열하십시오. xinput

출력의 일부는 다음과 같습니다.

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse           id=13   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=17   [slave  pointer  (2)]

이 특별한 경우 내 터치 패드의 ID는 17이며 전체 이름은 "ETPS / 2 Elantech Touchpad"입니다.

속성을 설정하는 명령은 xinput set-prop입니다. 터치 패드를 활성화 또는 비활성화하는 속성은입니다. 활성화 또는 비활성화하려면 Device Enabled다음을 입력하십시오.

터치 패드 켜기 : xinput set-prop <id> "Device Enabled" 1( <id>내 경우 장치 ID는 어디에 있습니까? 17)

터치 패드 끄기 : xinput set-prop <id> "Device Enabled" 0

손바닥 감지를 켭니다. xinput set-prop <id> "Palm Detection" 1

손바닥 감지를 끕니다 : xinput set-prop <id> "Palm Detection" 0

사용 가능한 속성을 쿼리하려면 xinput list-props <id>OR xinput list-props <full-name>을 사용하십시오 synclient -l.

더 읽을 수있는 링크

우분투-위키-입력

노트

속성을 설정 xinput하거나 속성을 synclient다른 도구로 설정하지 않은 경우. 또한 통일 제어 센터에도 설정되어 있지 않습니다.


1
두 번째 답변 주셔서 감사합니다. synclient나를 위해 일 xinput하지 않았다.
Robin Winslow

1
xinput다시 시작 하면 ID가 변경 될 수 있습니다. 따라서 스크립트 또는 바로 가기에서 이러한 ID를 사용하면 작동하지 않습니다.
Lode

synclient완전히 아치 리눅스에서 작동합니다. 정말 감사합니다 !!!
Theodore R. Smith

이것은 나를 위해 그것을했다. 특히 via xinput <enable/disable> <id>설정 이 효과가 없어서 실행해야한다는 것을 알았습니다 . TouchpadOffsynclient
Michael Mol

소개해 주셔서 감사합니다 xinput. 내장 키보드와 트랙 포인트 버튼으로 외부 키보드의 입력을 방해하는 잘못된 입력을 보내는 피클이 약간 생겼습니다. 이를 통해 내장 장치를 비활성화 할 수있었습니다. 건배! :)
sjakobi

4

synclient그리고 xinput당신이 원하는 그렇다면 설정을 무시하기 때문에 당신이 그놈 (또는 연합, 계피) 환경을 사용하지 작동하는지 synclient또는 xinput이러한 설정을 인수하기 위해, 당신은 첫 번째를 비활성화해야합니다 :

  1. 설치 dconf-editor되지 않은 경우 설치 :

    apt-get install dconf-editor
    
  2. 운영 dconf-editor

    dconf-editor 
    
  3. 디렉토리를 열고 /org/gnome/settings-daemon/plugins/mouse//org/cinnamon/settings-daemon/plugins/mouse/, 그리고 체크 박스를 해제합니다 active.

  4. logout 또는 reboot

이것은 만들 synclient거나 xinput작동 해야 합니다.


1
  1. 입력 장치를 나열하십시오.

    xinput list
    

    내 경우에는이 목록이 있습니다.

    Virtual core XTEST pointer                  id=4
    Logitech M510                               id=11   
    ETPS/2 Elantech Touchpad                    id=15
    
  2. ID를 전달하여 터치 패드 비활성화

    xinput set-prop 15 "Device Enabled" 0
    

수동으로 입력 할 때, 당신은 사용할 수 있습니다 xinput enable [device]xinput disable [device]직접. 그러나 스크립팅 할 때 set-prop [device] "Device Enabled" [value]World Python Developer의 답변과 같이 사용 이 약간 더 쉬울 수 있습니다.
hsandt

1

파이썬 코드를 작성하여 xinput모든 수동 작업을 수행하지 않고도 기술을 사용할 수 있습니다 . Copyleft, AS-IS, 보증 없음, 모든 책임은 사용자에게 있습니다. 저에게 잘 작동합니다. 그놈을 사용하는 경우 다음과 같은 키 바로 가기에 매핑하십시오 CtrlShiftT.

#!/usr/bin/python2
# -*- coding: utf-8 -*-
'''Program to toggle Touchpad Enable to Disable or vice-versa.'''

import commands
import re


def current_id():
    """ Search through the output of xinput and find the line that has the
    word TouchPad.  At that point, I believe we can find the ID of that device."""

    props = commands.getoutput("xinput").split("\n")
    match = [line for line in props if "TouchPad" in line]
    assert len(match) == 1, "Problem finding Touchpad string! %s" % match

    pat = re.match(r"(.*)id=(\d+)", match[0])
    assert pat, "No matching ID found!"

    return int(pat.group(2))


def current_status(tpad_id):
    """Find the current Device ID, it has to have the word TouchPad in the line."""

    props = commands.getoutput("""xinput list-props %d""" % tpad_id).split('\n')
    match = [line for line in props if "Device Enabled" in line]
    assert len(match) == 1, "Can't find the status of device #%d" % tpad_id

    pat = re.match(r"(.*):\s*(\d+)", match[0])
    assert pat, "No matching status found!"
    return int(pat.group(2))

def flop(tpad_id, status):
    """Change the value of status, and call xinput to reverse that status."""
    if status == 0:
        status = 1
    else:
        status = 0

    print "Changing Device #%d Device Enabled %d" % (tpad_id, status)
    commands.getoutput("""xinput set-prop %d "Device Enabled" %d""" % (tpad_id, status))

def main():
    """Get curent device id and status, and flop status value."""
    tpad = current_id()
    stat = current_status(tpad)
    flop(tpad, stat)

main()

0

Gnome에서 터치 패드를 토글하는 기능 키가 작동하지 않아 gsettings를 사용하여 스크립트를 만들었습니다.

  • 장점 : 공급 업체별이 아님
  • 단점 : Gnome에서 터치 패드 클릭 (탭이 아님)은 여전히 ​​어떤 이유로 처리되지만 xinput솔루션은 터치 패드를 예상대로 완전히 비활성화합니다. 나처럼 유일한 문제는 입력하는 동안 실수로 커서를 움직이고 있다는 것입니다.

toggle_touchpad_gsettings.py

#!/usr/bin/python3.6
import sys
import subprocess

gsettings_schema, gsettings_key = "org.gnome.desktop.peripherals.touchpad", "send-events"

def get_touchpad_send_events():
    send_events_value = subprocess.check_output(["gsettings", "get", gsettings_schema, gsettings_key])
    return send_events_value.strip()

def toggle_touchpad():
    # string returned from get is a repr including quotes,
    # but string sent with set does not need to have quotes
    if get_touchpad_send_events() == b"'enabled'":
        newval = 'disabled'
    else:
        newval = 'enabled'
    subprocess.Popen(["gsettings", "set", gsettings_schema, gsettings_key, newval])
    print(f"Set {gsettings_schema}:{gsettings_key} to {newval}")

def main():
    toggle_touchpad()

if __name__ == '__main__':
    main()

Unity에서도 작동하지만 테스트하지 않았습니다.

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