Como desabilitar o Xorg clique direito em em tempo de execução

3

Eu tenho um computador (na verdade, um Banana Pi Pro) com uma tela sensível ao toque que eu configurei para emular o clique direito via xorg.conf :

Section "InputClass"
    Identifier "Touchscreen"
    Option "EmulateThirdButton" "1"
    Option "EmulateThirdButtonTimeout" "750"
    Option "EmulateThirdButtonThreshold" "30"
EndSection

Isso funciona muito bem. Mas às vezes, quando eu quero usar um mouse real, essas configurações se tornam bastante irritantes, porque os cliques longos do mouse são convertidos em cliques do mouse. Além disso, a seleção de arrastar se torna imprecisa devido ao limite de 30 pixels.

Gostaria de saber se é possível desativar a emulação do clique direito quando o mouse é usado:

  1. É possível modificar a configuração do Xorg em tempo de execução para alterar a seção "InputClass"?

  2. Caso contrário, é possível aplicar esta seção apenas a um dispositivo de entrada específico (a tela sensível ao toque)?

  3. Se a única maneira é atualizar xorg.conf e reiniciar o servidor, qual seria a maneira menos dolorosa de fazer isso? Idealmente, seria bom preservar as aplicações que já estão em execução, mas duvido que seja possível.

  4. Existe um programa que faz o que eu quero sem alterar xorg.conf ? Como em esta questão , onde xrandr é usado para configurar dinamicamente Parâmetros que são estáticos quando configurados via xorg.conf .

por Dmitry Grigoryev 19.08.2015 / 19:52

2 respostas

5

xinput controla as configurações de entrada. Ele tem o mesmo papel para a entrada que xrandr tem para a exibição.

Execute xinput list para listar dispositivos. Cada dispositivo tem um nome e um ID numérico. Você pode usar esse nome ou essa ID para listar as propriedades do dispositivo correspondente. Os IDs dos dispositivos podem depender da ordem em que os dispositivos são detectados, portanto, para segmentar um dispositivo específico, use seu nome. Por exemplo, eu tenho um mouse como dispositivo 8; Aqui está um trecho de suas propriedades:

$ xinput list-props 8
…
    Evdev Third Button Emulation (280):     0
    Evdev Third Button Emulation Timeout (281):     1000
    Evdev Third Button Emulation Button (282):      3
    Evdev Third Button Emulation Threshold (283):   20
…

Para que eu possa usar um dos seguintes comandos para ativar a emulação de terceiro botão para este dispositivo:

xinput set-prop 8 280 1
xinput set-prop 8 'Evdev Third Button Emulation' 1

Existe uma hierarquia de dispositivos, que xinput list representa graficamente. A aplicação de uma propriedade a um dispositivo também é aplicada a seus filhos. Por exemplo, você pode aplicar uma propriedade a todos os dispositivos apontadores aplicando-a ao ponteiro raiz Virtual core pointer .

    
por 20.08.2015 / 00:51
1

Graças à resposta do @Gilles, instalei o xinput e descobri como meu dispositivo de tela sensível ao toque era chamado:

xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ft5x_ts                                   id=7    [slave  pointer  (2)]
⎜   ↳ GiGa HiD                                  id=9    [slave  pointer  (2)]

Com essas informações, eu consegui personalizar meu arquivo xorg.conf para afetar somente o dispositivo ft5x_ts (a tela sensível ao toque) usando MatchProduct parâmetro:

Section "InputClass"
    Identifier "Touchscreen"
    MatchProduct "ft5x_ts"
    Option "EmulateThirdButton" "1"
    Option "EmulateThirdButtonTimeout" "750"
    Option "EmulateThirdButtonThreshold" "30"
EndSection

Após a reinicialização, a emulação do clique direito foi efetiva somente na tela sensível ao toque.

PS: talvez seja importante mencionar que meu computador é baseado no Banana Pi Pro com um módulo de LCD da LeMaker , para que outras pessoas de Banana Pi pudessem encontrar este tópico.

    
por 20.08.2015 / 22:20