Faça os movimentos do mouse rolarem quando o botão do meio for pressionado

29

No Windows, estou acostumado a clicar no botão central e oferecer uma opção de "rolagem rápida" para cima ou para baixo. Como posso obter esse comportamento no Linux? Atualmente, parece usar o botão voltar ao clicar no centro.

Eu uso o Gnome no CentOS.

some1
fonte
O que, especificamente, não funciona? Os ratos Unix tinham três botões desde o primeiro dia, portanto o botão do meio do mouse normalmente funciona fora da caixa.
Gilles 'SO- stop be evil'
Estou acostumado a clicar no botão central e oferecer uma opção de "rolagem rápida" para cima ou para baixo. Atualmente, parece usar o botão Voltar ao clicar no centro.
some1
2
Ah, então você quer o comportamento do Windows do botão do meio (ou melhor, de pressionar a roda), em vez do comportamento do Unix (onde o botão do meio normalmente cola o conteúdo da área de transferência). Você realmente precisa dizer isso na sua pergunta, não podemos ler sua mente! Isso requer suporte de aplicativos; quais aplicativos você usa? Qual ambiente de área de trabalho (por exemplo, Gnome, KDE, XFCE,…)?
Gilles 'SO- stop be evil' (
Bem, eu imaginei que haveria um painel de configuração em algum lugar onde eu pudesse definir isso, mas eu não conseguia nem chegar tão longe. A área de trabalho é o Gnome, presumo, é o padrão? E a questão está no firefox.
some1
11
Para o Firefox, há uma solução em uma pergunta quase duplicada .
Gilles 'SO- stop be evil' (

Respostas:

26

Esse recurso do Windows nunca chegou ao mundo Unix. No mundo Unix, o principal objetivo do botão do meio do mouse é colar o conteúdo da área de transferência (ou mais precisamente, o texto selecionado com o mouse, que é copiado automaticamente). Alguns aplicativos de plataforma cruzada, como Firefox e Chrome, são compatíveis com o botão do meio do mouse no estilo Linux no Windows e vice-versa, mas, além disso, a maioria dos aplicativos não suporta esse tipo de rolagem refinada.

No entanto, você pode se aproximar bastante do nível do sistema. É possível configurar um botão do mouse para que, quando pressionado, os movimentos do mouse sejam transformados em eventos de roda. Esse é o mesmo recurso ao qual você está acostumado, mas é provável que encontre o movimento instável, porque os aplicativos recebem eventos de roda, que geralmente são interpretados como rolagem por uma linha ou coluna inteira.

Para brincar com essa configuração, use o programa xinput (não sei se há uma interface gráfica para ele). Primeiro, execute o seguinte comando para ver o nome do seu dispositivo apontador:

$ xinput --list       
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Generic USB Mouse                         id=8    [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳   USB Keyboard                            id=9    [slave  keyboard (3)]

Por exemplo, na saída acima, o dispositivo apontador é Generic USB mouse. Você pode executar o seguinte comando para listar as propriedades que podem ser ajustadas:

xinput --list-props 'Generic USB Mouse'

O conjunto de propriedades que você está procurando é o de “Emulação de roda Evdev”. Com as seguintes configurações, quando o botão do meio do mouse (botão 2) é pressionado, mover o mouse envia eventos de roda (4 = para cima, 5 = para baixo, 6 = para a esquerda, 7 = para a direita).

xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation' 1
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Button' 2
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Axes' 6 7 4 5

Você pode ajustar outros parâmetros (inércia, tempo limite).

Você pode colocar esses comandos em um script. Adicione #!/bin/shcomo a primeira linha e torne o arquivo de script executável (por exemplo chmod +x ~/bin/activate-wheel-emulation.sh). Em seguida, adicione esse script à lista de comandos a serem executados quando a sessão for iniciada ( gnome-session-propertiespermite configurar isso).

Se você possui acesso root e deseja fazer a alteração para todos os usuários (aceitável em uma máquina doméstica), é mais simples fazê-lo através do arquivo de configuração do servidor X.org . Como root, crie um arquivo chamado /etc/X11/xorg.conf.d/wheel-emulation.confcontendo configurações para o driver do mouse . As configurações são as mesmas, mas estão organizadas de maneira um pouco diferente.

Section "InputClass"
    Identifier "Wheel Emulation"
    MatchProduct "Generic USB Mouse"
    Option "EmulateWheel" "on"
    Option "EmulateWheelButton" "2"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection
Gilles 'SO- parar de ser mau'
fonte
Você deve ter cuidado ao ajustar os outros parâmetros. Se você reduzir Evdev Wheel Emulation Timeoutmuito o parâmetro, poderá perder completamente a funcionalidade do botão do meio do mouse (clique). Por exemplo, se você reduzir Evdev Wheel Emulation Timeoutpara abaixo do valor Evdev Middle Button Timeout, não gerará mais eventos de clique no botão do meio. Da experiência pessoal, o seguinte parece funcionar razoavelmente bem:
agnussmcferguss
xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Emulation' 1. xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Timeout' 50. xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Timeout' 100. Que fornece clique razoavelmente ágil e funcionalidade de rolagem, embora se você encontrá-lo dispara rápido demais, tente aumentar Evdev Wheel Emulation Timeout(acho que 200 é o padrão)
agnussmcferguss
Gilles, acho que há algo errado no seu arquivo de configuração xorg.conf.d sugerido. Quando o usei, meu X.Org inicializou em uma tela preta. Eu deduzi uma versão que funciona adicionando Device "evdev"e colocando aspas duplas em torno do "EmulateWheelButton"valor de "2". (Desculpas, não tenho tempo para investigar se uma ou as duas alterações corrigem o problema.) #
317
@Arkanon As aspas duplas ausentes são definitivamente um erro de sintaxe. Eu acho que não Device "evdev"faz sentido, você quis dizer Driver "evdev"? Eu acho que isso seria uma alternativa à MatchProductdiretiva que define as opções para todos os dispositivos de entrada, em vez de apenas mouses USB genéricos.
Gilles 'SO- stop be evil'
11
@ Wallacoloo Eu não sei se você consegue esse efeito exato, mas pode fazer com que o teclado numérico mova o mouse digitando Pointer_EnableKeys(pesquise no Google ou faça uma nova pergunta aqui), e você pode configurar um comportamento mais sofisticado com o XKB (pesquisar teclado : mousekeys, ou faça uma nova pergunta aqui, descrevendo exatamente o que você deseja e o que resolverá se não conseguir exatamente).
Gilles 'SO- stop be evil'
25

Acontece que isso pode ser feito através das preferências do Firefox.

  1. No menu suspenso: Editar -> Preferências
  2. Em seguida, selecione as guias: Avançado -> geral
  3. Em seguida, marque "Usar rolagem automática"

Captura de tela

   ss

some1
fonte
0

para chromevocê poder usar esta extensão para rolagem automática

Auto rolagem

não esqueça de reiniciar o chrome depois de instalar a extensão

codegames
fonte