AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1445784
Accepted
bgoodr
bgoodr
Asked: 2019-06-07 12:31:16 +0800 CST2019-06-07 12:31:16 +0800 CST 2019-06-07 12:31:16 +0800 CST

Como pressionar a roda de rolagem para a esquerda e voltar uma página no Firefox (mouse Logitech M-UAG120)

  • 772

Estou executando o Firefox versão 67 no Ubuntu 18.10 LTS.

Eu tenho um mouse Logitech M-UAG120 com uma roda de rolagem. A roda de rolagem tem uma maneira de empurrá-la lateralmente para a esquerda e para a direita. O que eu preciso é que a ação de empurrar para a esquerda faça o mesmo que Alt-LEFT do Firefox para voltar uma página e a operação oposta para empurrar a roda de rolagem para a direita. No momento, o Firefox não está respondendo a nenhum dos eventos X para nenhuma das operações de deslocamento da roda de rolagem. (Estou chamando essas "operações de push" porque isso não é o mesmo que clicar no botão do meio do mouse pressionando verticalmente a roda de rolagem, que está funcionando corretamente). A operação de rolagem também funciona corretamente.

Executei o xev e determinei que está gerando esses eventos X:

  1. Operação de pressão da roda de rolagem esquerda: Botão 6
  2. Operação de pressão da roda de rolagem direita: Botão 7

Pesquisei em http://kb.mozillazine.org/About:config e não encontrei nada específico para esses eventos, pesquisei na web e não encontrei.

Como configuro o mouse ou o Firefox para que os eventos X sejam consistentes para que produzam os mesmos comportamentos? Não desejo instalar drivers especiais para este mouse, se possível.

Atualização nº 1

No meu desktop Ubuntu 18.10 LTS, que tem um mouse Logitech M525 Bluetooth , as operações de push da roda de rolagem esquerda e direita geram um conjunto diferente de eventos X do que o mouse com fio usado em meu laptop, conforme visto em xev :

  1. Operação de pressão da roda de rolagem esquerda: Botão 8
  2. Operação de pressão da roda de rolagem direita: Botão 9

E as operações de push da roda de rolagem esquerda/direita desse mouse em particular funcionam como eu esperava.

Atualização nº 2:

Testei o mouse Logitech M-UAG120 novamente em ambas as máquinas (meu laptop e meu desktop, ambos executando o Ubuntu 18.10 LTS), e os eventos X gerados são consistentemente diferentes do mouse Logitech M525 Bluetooth .

Eu especulo que os eventos X específicos não são padronizados em dispositivos de mouse, mas isso é surpreendente, pois ambos os dispositivos de mouse são da Logitech.

firefox mouse
  • 1 1 respostas
  • 949 Views

1 respostas

  • Voted
  1. Best Answer
    bgoodr
    2019-06-09T13:30:23+08:002019-06-09T13:30:23+08:00

    Solução

    Encontrei a seguinte solução:

    Eu adicionei /usr/share/X11/xorg.conf.d/71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf:

    Section "InputClass"
            Identifier "Logitech Optical Tilt Wheel Mouse M-UAG120"
            MatchUSBID "046d:c019" 
            MatchDevicePath "/dev/input/event*"
            # I found that using this command:
            #
            #   xinput --set-button-map 10 1 2 3 4 5 8 9 8 9
            #                                        ^ ^
            # The "^" above are the numbers I changed from 6 and 7 to 8 and 9, respectively.
            # That does the same thing as this ButtonMapping below:
            #
            Option "ButtonMapping" "1 2 3 4 5 8 9 8 9"
    EndSection
    

    E reiniciado.

    É intrigante para mim que reiniciar o gerenciador de exibição gdm usando sudo service gdm restartnão funcionou: isso me impediu de fazer login (continuava voltando para o prompt de senha, embora eu não tivesse CAPSLOCK ativado nem nada), então tive que recorrer à reinicialização.


    TL;DR Material de referência

    Material de referência que achei útil para entender o que foi dito acima:

    xinput para encontrar o ID do dispositivo e os parâmetros do botão

    Por ID do dispositivo, quero dizer o id=10número abaixo. Por "parâmetros de botão" quero dizer o significado dos parâmetros usados ​​nos ButtonMappingarquivos /usr/share/X11/xorg.conf.d/71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf.

    Grep para encontrar o dispositivo depois de conectado:

    $ xinput --list | grep -i logit
    ⎜   ↳ Logitech USB Optical Mouse                id=10   [slave  pointer  (2)]
    

    Veja o que o sistema acha que são os significados dos botões:

    $ xinput --list 10 | grep -i 'Button labels'
            Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back" None
    

    Estou especulando que as strings entre aspas são valores enumerados baseados em 1 correspondentes a ButtonMapping, mas ainda não tenho prova disso. Então, supondo que esteja correto, podemos numerá-los:

    $ xinput --list 10 | grep -i 'Button labels' | sed 's%: %:\n%g; s%" "%"\n"%g' | sed '1d' | cat -n
         1  "Button Left"
         2  "Button Middle"
         3  "Button Right"
         4  "Button Wheel Up"
         5  "Button Wheel Down"
         6  "Button Horiz Wheel Left"
         7  "Button Horiz Wheel Right"
         8  "Button Side"
         9  "Button Extra"
        10  "Button Forward"
        11  "Button Back" None
    $ 
    

    Essa especulação também parece combinar com Logitech_Marble_Mouse -- Basic_function .

    Assim, as ButtonMappingposições para 8 e 9 correspondem às ações "browser back" e "browser forward" que desejo que o sistema passe para o aplicativo Firefox X. Como eu queria preservar todos os outros comportamentos, a linha chave no /usr/share/X11/xorg.conf.d/71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.confarquivo é:

    Option "ButtonMapping" "1 2 3 4 5 8 9 8 9"
    #                                 ^ ^
    

    (Os ^parâmetros 6 e 7 marcados sendo alterados, apenas).

    Mapeamento de botões

    A seção Mapeamento de botões da página man libinput(4) descreve o mecanismo.

    "libinput" é o que eu encontrei porque no Ubuntu 16.04 e Logitech M570 afirma:

    O Ubuntu 18.04 não usa mais o driver evdev por padrão. Foi substituído por Libinput

    Alterando dinamicamente o mapa de botões usando o comando xinput

    A página man input(1) tem uma opção para verificar diretamente os parâmetros do botão para a ButtonMappingopção sem reiniciar o gerenciador de exibição ou o servidor X:

    --set-button-map device map_button_1 [map_button_2 [...]]
            Change the button mapping of device. The buttons are specified in physical order (starting with button 1) and are mapped to the logical button provided. 0 disables a but‐
            ton. The default button mapping for a device is 1 2 3 4 5 6 etc.
    

    Então o comando que eu poderia usar, sem precisar reiniciar/reiniciar nada, era:

    $ xinput --set-button-map 10 1 2 3 4 5 8 9 8 9
    $
    

    Atribuindo botões

    Logitech_Marble_Mouse -- A atribuição de botões é específica do ArchLinux e do dispositivo, mas ainda assim foi bastante útil, especificamente onde afirma:

    Você pode querer atribuir novas ações para pressionamentos de botão. Isso é feito definindo parâmetros posicionais. Os valores podem ser alterados para os botões 1, 2, 3, 8 e 9. (O botão 2 é simplesmente um pressionamento combinado dos dois botões grandes.) Não altere os parâmetros 4, 5, 6 ou 7.

    Exceto que eu realmente tive que alterar os parâmetros 6 e 7 no meu ButtonMappingpara este dispositivo de mouse. O texto acima não explicou por que declarou "Não altere".

    página de manual do xorg.conf(5)

    A página de manual xorg.conf(5) mostra como os arquivos conf funcionam, mas esteja ciente de que, como o comportamento muda de lançamento para lançamento, certifique-se de que você está no lançamento correto, como pode ser visto no topo de suas páginas da web :

    xorg.conf(5) captura de tela anotada

    lsusb -d VENDEDOR:DISPOSITIVO

    A execução do comando lsusb ( página man lsusb(8) ) me ajudou a identificar o fornecedor e o ID do dispositivo:

    $ lsusb -d 046d:c019
    Bus 001 Device 009: ID 046d:c019 Logitech, Inc. Optical Tilt Wheel Mouse
    

    Foi isso que acabei usando dentro da MatchUSBIDopção na InputClassseção do arquivo 71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf. Veja a resposta de Govelius para Problema atribuindo layouts diferentes para vários dispositivos de entrada simultâneos no Linux .

    /var/log/Xorg*.log arquivos

    /var/log/Xorg.*.logEncontrando os arquivos modificados mais recentemente :

    $ ls -ladtr /var/log/X*
    -rw-r--r-- 1 root root 18922 Mar 17  2017 /var/log/Xorg.failsafe.log.old
    -rw-r--r-- 1 root root 18922 Mar 19  2017 /var/log/Xorg.failsafe.log
    -rw-r--r-- 1 root root 26019 Jun  8 12:20 /var/log/Xorg.2.log.old
    -rw-r--r-- 1 root root 26019 Jun  8 12:21 /var/log/Xorg.2.log
    -rw-r--r-- 1 root root 28910 Jun  8 12:45 /var/log/Xorg.0.log.old
    -rw-r--r-- 1 root root 38010 Jun  8 12:45 /var/log/Xorg.1.log.old
    -rw-r--r-- 1 root root 27869 Jun  8 12:57 /var/log/Xorg.0.log
    -rw-r--r-- 1 root root 34901 Jun  8 12:57 /var/log/Xorg.1.log
    $ 
    

    Em seguida, vasculhando-o para ver o meu ButtonMappingestá aparecendo:

    $ grep -n -B10 -i -H -e 'ButtonMapping' /var/log/Xorg.1.log
    /var/log/Xorg.1.log-292-[   665.912] (**) Logitech USB Optical Mouse: Applying InputClass "libinput pointer catchall"
    /var/log/Xorg.1.log-293-[   665.912] (**) Logitech USB Optical Mouse: Applying InputClass "Logitech Optical Tilt Wheel Mouse M-UAG120"
    /var/log/Xorg.1.log-294-[   665.912] (II) Using input driver 'libinput' for 'Logitech USB Optical Mouse'
    /var/log/Xorg.1.log-295-[   665.912] (II) systemd-logind: got fd for /dev/input/event5 13:69 fd 46 paused 0
    /var/log/Xorg.1.log-296-[   665.913] (**) Logitech USB Optical Mouse: always reports core events
    /var/log/Xorg.1.log-297-[   665.913] (**) Option "Device" "/dev/input/event5"
    /var/log/Xorg.1.log-298-[   665.913] (**) Option "_source" "server/udev"
    /var/log/Xorg.1.log-299-[   665.914] (II) event5  - Logitech USB Optical Mouse: is tagged by udev as: Mouse
    /var/log/Xorg.1.log-300-[   665.914] (II) event5  - Logitech USB Optical Mouse: device is a pointer
    /var/log/Xorg.1.log-301-[   665.914] (II) event5  - Logitech USB Optical Mouse: device removed
    /var/log/Xorg.1.log:302:[   665.914] (**) Option "ButtonMapping" "1 2 3 4 5 8 9 8 9"
    $ 
    

    Logitech Optical Tilt Wheel Mouse M-UAG120aparece e o subseqüente ButtonMapping.

    Configuração da classe de entrada

    A seção InputClass da página de manual libinput(4) descreve todas as opções, incluindo a MatchUSBIDopção.

    • 3

relate perguntas

  • Use um mecanismo de pesquisa diferente no modo Privado do Firefox

  • no Firefox, por que esta página é renderizada dessa maneira (conteúdo da tag noscript sendo ignorado), ao executar NoScript ou uBlock Origin?

  • Execute um script Selenium em uma máquina remota

  • Os navegadores não obtêm páginas compactadas no sistema operacional Windows 7 de 64 bits

  • Compartilhamento de guias entre instâncias separadas do Firefox

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve