Como desabilito um touchpad usando a linha de comando?

36

Existe uma maneira de desativar um touchpad usando um comando de terminal?

    
por Peng Wu 16.10.2011 / 21:22

5 respostas

47

Para desativar o touch pad:

synclient TouchpadOff=1

Para reativar:

synclient TouchpadOff=0
    
por stedotmartin 16.10.2011 / 21:39
20

Existem pelo menos dois métodos (que eu conheço) que você pode tentar.

synclient

Se o seu laptop estiver equipado com um touchpad Synaptics (ou ALPS), você pode usar synclient como já foi mencionado pelo Shutupsquare. Estou executando o Ubuntu 14.04 e na minha máquina ele foi instalado por padrão.

Teste se o synclient estiver instalado: synclient -V (deve informar o número da versão)

Ativar o touchpad: synclient TouchpadOff=0

Transformar o touchpad em OFF: synclient TouchpadOff=1

Eu não testei isso sozinho, mas se seu objetivo é não mover o mouse quando seus braços estiverem apoiados no touch pad, isso pode ajudar.

Ativar a detecção de palma: synclient PalmDetect=1

Ativar a detecção da palma da mão: synclient PalmDetect=0

Em geral, você pode configurar qualquer propriedade do seu touchpad Synaptics por synclient property=value . Onde a propriedade é uma das propriedades disponíveis mostradas por synclient -l

Links para leitura adicional

ubuntu - wiki de ajuda de comminity - SynapticsTouchpad

archlinux - wiki - Touchpad Synaptics

ask ubuntu - Como faço minhas configurações de synclient? - Ubuntu

xinput

Se você não quiser ou não puder usar o synclient, também poderá usar xinput . O procedimento é um pouco semelhante.

liste todos os dispositivos xinput: xinput

Parte da saída pode ser assim:

⎡ 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)]

Neste caso particular, meu touchpad tem id = 17 e seu nome completo é "ETPS / 2 Elantech Touchpad".

O comando para definir uma propriedade é xinput set-prop . A propriedade para ativar ou desativar o touchpad é Device Enabled , portanto, para ativar ou desativar, digite:

Transformar o touchpad em: xinput set-prop <id> "Device Enabled" 1 (onde <id> é o seu ID do dispositivo, no meu caso 17)

Transformar o touchpad em OFF: xinput set-prop <id> "Device Enabled" 0

Ativar a detecção de palma: xinput set-prop <id> "Palm Detection" 1

Ativar a detecção da palma da mão: xinput set-prop <id> "Palm Detection" 0

Para consultar as propriedades disponíveis: xinput list-props <id> OR xinput list-props <full-name> , isso deve ser bem semelhante a synclient -l .

Links para leitura adicional

ubuntu - wiki - input

NOTA

Ao definir propriedades através de xinput ou synclient , as propriedades não são definidas para a outra ferramenta. Eles também não são colocados no centro de controle da unidade.

    
por bremme 30.09.2014 / 01:50
4

synclient e xinput não funcionarão se você estiver usando o ambiente gnome (ou unidade, canela), porque substituirá as configurações, portanto, se você quiser que synclient ou xinput assumam essas configurações, deve desativar isso primeiro:

  1. instale dconf-editor se não estiver instalado:

    apt-get install dconf-editor
    
  2. execute dconf-editor

    dconf-editor 
    
  3. abra o diretório /org/gnome/settings-daemon/plugins/mouse/ ou /org/cinnamon/settings-daemon/plugins/mouse/ e desmarque a caixa de seleção de active .

  4. logout ou reboot

Isso deve fazer synclient ou xinput funcionar.

    
por realhu 29.01.2016 / 14:10
1
  1. Relacione seus dispositivos de entrada:

    xinput list
    

    No meu caso, tenho esta lista:

    Virtual core XTEST pointer                  id=4
    Logitech M510                               id=11   
    ETPS/2 Elantech Touchpad                    id=15
    
  2. Desative seu touchpad passando o ID

    xinput set-prop 15 "Device Enabled" 0
    
por D.Snap 06.06.2016 / 05:55
1

Eu escrevi um pedaço de código python para que você possa usar a técnica xinput sem fazer todo o trabalho manual. Copyleft, AS-IS, sem garantia, use a seu próprio risco. Funciona muito bem para mim: e se você estiver usando o gnome, apenas mapeie-o para um atalho-chave como Ctrl Deslocamento T .

#!/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()
    
por World Python Developer 28.12.2016 / 06:48