Desativando "voltar" para um trackball da Logitech

9

Eu tenho um trackball Logitech Marble Mouse com quatro botões:

insira a descrição da imagem aqui

Usando as instruções aqui , eu 50-marblemouse.confconfigurei (xorg.conf) para que, mantendo o botão "voltar" , eu possa rolar:

Section "InputClass"
        Identifier  "Marble Mouse"
        MatchProduct "Logitech USB Trackball"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "EmulateWheel" "true"
        Option "EmulateWheelButton" "8"
EndSection

No entanto, às vezes "hold" registra como um clique em "back", o que é super irritante quando estou navegando em uma página da web. Existe alguma maneira de usar o botão para rolar, mas desativar um clique?

A solução usual parece ser usar o botão "avançar" para rolar, já que os cliques são inofensivos, mas acho que ter que clicar com o dedo anelar é muito mais estranho do que pressionar o botão voltar.

lambshaanxy
fonte
Você já resolveu isso?
Revetahw disse Reinstate Monica
De nada. Vamos ver se faz alguma coisa, muitas perguntas ficam sem resposta aqui.
Revetahw diz Reinstate Monica
Alguma das respostas o ajudou? Preciso conceder a recompensa ou deixá-la ir.
Revetahw diz Restabelecer Monica
@Fiksdal Estou viajando esta semana e não tenho acesso à minha área de trabalho, então não pude testá-los ... J.Cole's parece o mais promissor.
lambshaanxy
Bem. Sem problemas.
Revetahw diz Reinstate Monica

Respostas:

2

Eu acho que a opção que você está procurando é o ButtonMapping. Eu tinha um recurso irritante semelhante com o mouse ( https://www.kensington.com/en/no/4493/k72327eu/slimblade-trackball ), então descobri isso há um tempo.

A opção "EmulateWheelButton" ainda deve funcionar, mesmo se você desabilitar o botão ou reatribuir o mapeamento ...

Agora, eu só testei isso com o xinput no evdev. É muito mais rápido experimentar as coisas com o xinput e você pode simplesmente adicionar um script aos seus "Aplicativos de Inicialização" em vez de modificar o / etc / X11 / e reiniciar o X repetidamente.

Portanto, isso deve ser tudo o que você precisa no xorg.d / mouse.conf (as linhas comentadas são o que seria necessário se você não quiser usar um script de login para fazer isso por usuário), embora você não precise disso em tudo se você usar o xinput:

Section "InputDevice"
    Identifier  "Configured Mouse"
    Driver    "evdev"
    Option    "Device"                "/dev/input/mice"
    Option    "Protocol"              "auto"
    #Option    "EmulateWheel"          "1"
    #Option    "EmulateWheelButton"    "8"
    #Option    "ButtonMapping"        "1 2 3 4 5 6 7 0 9 10 11 12"
EndSection

Aqui está o que eu fiz para descobrir minha solução (substitua meu dispositivo pelo seu dispositivo nos seguintes comandos, obviamente):

Mostrar dispositivos:

$ xinput list
Virtual core pointer                        id=2    [master pointer  (3)]
  ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
  ↳ ELAN Touchscreen                            id=11   [slave  pointer  (2)]
  ↳ SynPS/2 Synaptics TouchPad                  id=13   [slave  pointer  (2)]
  ↳ Kensington Kensington Slimblade Trackball   id=18   [slave  pointer  (2)]

Veja quais propriedades são suportadas para esse dispositivo:

$ xinput list-props "Kensington Kensington Slimblade Trackball"
Device 'Kensington Kensington Slimblade Trackball':
    Device Enabled (142):        1
    Coordinate Transformation Matrix (144):        1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (273):        0
    Device Accel Constant Deceleration (274):        1.000000
    Device Accel Adaptive Deceleration (275):        1.000000
    Device Accel Velocity Scaling (276):        10.000000
    Device Product ID (260):        1149, 8257
    Device Node (261):        "/dev/input/event17"
    Evdev Axis Inversion (277):        0, 0
    Evdev Axes Swap (279):        0
    Axis Labels (280):        "Rel X" (152), "Rel Y" (153), "Rel Vert Wheel" (573)
    Button Labels (281):        "Button Left" (145), "Button Middle" (146), "Button Right" (147), "Button Wheel Up" (148), "Button Wheel Down" (149), "Button Horiz Wheel Left" (150), "Button Horiz Wheel Right" (151), "Button Side" (679), "Button Unknown" (263), "Button Unknown" (263), "Button Unknown" (263), "Button Unknown" (263)
    Evdev Scrolling Distance (282):        1, 1, 1
    Evdev Middle Button Emulation (283):        0
    Evdev Middle Button Timeout (284):        50
    Evdev Third Button Emulation (285):        0
    Evdev Third Button Emulation Timeout (286):        1000
    Evdev Third Button Emulation Button (287):        3
    Evdev Third Button Emulation Threshold (288):        20
    Evdev Wheel Emulation (289):        1
    Evdev Wheel Emulation Axes (290):        0, 0, 4, 5
    Evdev Wheel Emulation Inertia (291):        10
    Evdev Wheel Emulation Timeout (292):        200
    Evdev Wheel Emulation Button (293):        8
    Evdev Drag Lock Buttons (294):        0

Agora vamos tentar:

$ xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 2 3 4 5 6 7 0 9 10 11 12
$ xinput set-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 1
$ xinput set-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8

Agora, meu botão superior direito funciona apenas como rolagem automática em vez do comportamento irritante das costas!

J Cole
fonte
1

Aqui está minha configuração para este trackball muito bom, no Ubuntu, em 2009. Espero que ainda esteja funcionando, talvez você tenha algumas diferenças com "Driver" e "Device". No entanto, as opções de botões devem ser as mesmas.

Code: Section "InputDevice"
Identifier    "Marble Mouse"
Driver        "mouse"
Option        "CorePointer"
Option        "Device"   "/dev/input/mice"
Option        "Protocol"        "ExplorerPS/2"
Option        "Emulate3Buttons"    "true"
Option        "Buttons"        "9"
Option        "EmulateWheel"        "1"
Option        "EmulateWheelButton"    "8"
Option        "YAxisMapping"        "4 5"
Option        "XAxisMapping"        "6 7"
EndSection

Então nós temos:

  • O terceiro botão está no "Forward" (9), muito conveniente.
  • a roda de emulação está em "Voltar" (8)
  • observe que eu defini os eixos X e Y, o que significa que, ao pressionar "Voltar" com o polegar, você pode rolar nas duas direções usando a bola, como em um touchpad.
ttoine
fonte
0

Usando as instruções "Exemplo de configuração nº 3, renuncie ao botão" Voltar "" fornecidas pelo seu link , você pode remapear o botão Voltar para ser algo mais inofensivo, como clique com o botão direito do mouse.

Eu não sei exatamente como você mescla isso com o seu arquivo de configuração acima.

crimsonspectre
fonte