Configurar a velocidade do mouse (não a aceleração do ponteiro!)

30

Existe uma maneira de aumentar a velocidade do mouse no KDE4? Não quero nenhuma aceleração de ponteiro, é apenas a velocidade do mouse que desejo alterar.

Edit : Infelizmente, editar o xorg.conf não é uma opção para mim, porque eu quero que os usuários possam configurar a velocidade do mouse e é política da empresa negar aos usuários permissão para alterar o xorg.conf.

André
fonte
2
qual é a diferença entre esses dois?
Web-E
3
@ Web-E Aceleração é a taxa na qual a velocidade muda com o tempo
Oleh Prypin
@ Web-E essas são duas coisas diferentes.
Bruno Pereira

Respostas:

35

O KDE ainda não incorporou isso em seu centro de controle, mas você pode usar o xinput na linha de comando. Primeiro, corra xinput listpara encontrar o número do dispositivo do seu mouse:

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]

No meu laptop, a ID do dispositivo que eu quero é 10 (SynPS / 2 Synaptics TouchPad). No seu sistema, você terá que decidir qual dispositivo é o correto. Em seguida, execute xinput list-props <your device id>para ver as configurações atuais desse dispositivo:

$ xinput list-props 10
Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (144):   1
    Device Accel Profile (266):     1
    Device Accel Constant Deceleration (267):       2.500000
    Device Accel Adaptive Deceleration (268):       1.000000
    Device Accel Velocity Scaling (269):    12.500000
  [ many more settings omitted ]

O imóvel em que você está interessado é "Desaceleração constante de aceleração de dispositivo (267)". Para diminuir a velocidade do mouse, o valor deve ser aumentado executando xinput set-prop <your device id> <property id> <value>:

$ xinput set-prop 10 267 5.0

Neste exemplo, o valor é aumentado de 2,5 para 5,0 e o mouse se move a meia velocidade.

Luke
fonte
5
Você simplesmente não pode definir isso abaixo de 1,0, o que ainda é muito lento no meu caso.
pong
2
Não há problema com os adereços de lista, mas set-propresulta em: X Erro de solicitação com falha: BadAccess (tentativa de acessar recurso privado negado) X.Org X Server 1.16.0, executando o Unity Desktop. Para o X.Org X Server 1.9.3.90, o ID do mouse é 6 e o ​​número da propriedade 233.
Incnis Mrsi
2
Ainda melhor: xinput set-prop 'SynPS / 2 Synaptics TouchPad' 'Device Accel Constant desaceleration' 2.5
Simon Thum 29/04
2
essa configuração permanece após a reinicialização? se não, podemos fazê-lo ficar?
Ciprian Tomoiagă
3
O que fazer se "Desaceleração constante de aceleração de dispositivo" não for uma opção disponível?
DaVince
14

A terminologia das configurações do mouse no Linux (Xorg) é um pouco diferente do mundo do Windows.

Existem três configurações importantes:

  • threshold - O gatilho para a aceleração
  • acceleration - A velocidade após o limite ser atingido
  • resolution - A velocidade"

Essas configurações são independentes do ambiente da área de trabalho. Eles são configurações X puras. Então, isso sempre funciona. Consulte também a seção do mousexset para obter uma maneira verdadeiramente independente de alterar essas configurações.

O gerenciador de configurações do Unity parece renomear a thresholdsensibilidade. Mas como você está falando sobre o KDE, isso não deve importar.

Somente thresholde accelerationpode ser alterado pelo usuário. A resolutioné uma configuração a ser feito em xorg.conf. Mas geralmente, as duas primeiras configurações são suficientes para a maioria dos usuários.

As visualizações do Linux têm uma explicação sobre esses valores.

Basicamente: o mouse se move em uma velocidade base (modificável usando resolution). Se o mouse mover n pixels (n = threshold) em pouco tempo, a velocidade básica será multiplicada acceleration. Como exemplo, se você deseja desativar completamente a aceleração, pode definir o limite para 0. Em palavras: se o mouse mover 0pixels em pouco tempo, usarei base-speed * acceleration. Portanto, um limite de 0fornece velocidade constante do mouse.

Portanto, esses dois valores oferecem um controle muito refinado da velocidade.

exuma
fonte
1
O parâmetro especificamente em questão é a resolução, que não pode ser modificada usando o xset.
Luke
Para esclarecer, o limiar = 0 fornece aceleração polinomial em X, que não é de modo algum semelhante à velocidade constante. Use a solução acima.
Simon Thum
@SimonThum é esse mesmo o caso? Eu também pensei que a aceleração deveria ser linear (apesar de uma transição entre a velocidade básica para a velocidade final = velocidade básica * aceleração). Eu li isso muitas vezes nas seções de comentários. Você tem fontes que apóiam sua reivindicação?
Daniel451
Não entendo por que todo mundo espera usar a aceleração do mouse atualmente e a resolução não é facilmente acessível. A única configuração razoável quando você deseja ter um mouse de alta precisão é a aceleração desativada e a velocidade (plana) diminuída, porque os mouses a laser modernos têm um DPI alto e louco, mapeado pelo sistema para alta velocidade. Mas não quero sementes, quero precisão - de preferência sub-pixel.
Prokop Hapala 17/10
13

As etapas para aumentar a sensibilidade do mouse:

Primeiro, liste todos os dispositivos:

$ xinput list                                                               
⎡ Virtual core pointer                          id=2    [master pointer  (3)]                                 
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]                                 
⎜   ↳ PixArt USB Optical Mouse                  id=10   [slave  pointer  (2)]                                 
⎜   ↳ ETPS/2 Elantech Touchpad                  id=15   [slave  pointer  (2)]                                 
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]                                 
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]                                 
    ↳ Power Button                              id=6    [slave  keyboard (3)]                                 
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]                                 
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]                                 
    ↳ USB2.0 UVC 2M WebCam                      id=9    [slave  keyboard (3)]                                 
    ↳ Asus Laptop extra buttons                 id=13   [slave  keyboard (3)]                                 
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]                                 
    ↳   USB Keyboard                            id=11   [slave  keyboard (3)]                                 
    ↳   USB Keyboard                            id=12   [slave  keyboard (3)]   

No exemplo, vemos a identificação do mouse como 10. A seguir, liste suas propriedades:

$ xinput list-props 10
Device 'PixArt USB Optical Mouse':
        Device Enabled (140):   1
        Coordinate Transformation Matrix (142): 10.400000, 0.000000, 0.000000, 0.000000, 10.400000, 0.000000, 0.000000, 0.000000, 10.400000
        Device Accel Profile (265):     0
        Device Accel Constant Deceleration (266):       1.000000
        Device Accel Adaptive Deceleration (267):       1.000000
        Device Accel Velocity Scaling (268):    10.000000
        Device Product ID (260):        2362, 9488
        Device Node (261):      "/dev/input/event5"
        Evdev Axis Inversion (269):     0, 0
        Evdev Axes Swap (271):  0
        Axis Labels (272):      "Rel X" (150), "Rel Y" (151), "Rel Vert Wheel" (264)
        Button Labels (273):    "Button Left" (143), "Button Middle" (144), "Button Right" (145), "Button Wheel Up" (146), "Button Wheel Down" (147), "Button Horiz Wheel Left" (148), "Button Horiz Wheel Right" (149)
        Evdev Middle Button Emulation (274):    0
        Evdev Middle Button Timeout (275):      50
        Evdev Third Button Emulation (276):     0
        Evdev Third Button Emulation Timeout (277):     1000
        Evdev Third Button Emulation Button (278):      3
        Evdev Third Button Emulation Threshold (279):   20
        Evdev Wheel Emulation (280):    0
        Evdev Wheel Emulation Axes (281):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (282):    10
        Evdev Wheel Emulation Timeout (283):    200
        Evdev Wheel Emulation Button (284):     4
        Evdev Drag Lock Buttons (285):  0

A «Matriz de transformação de coordenadas» é exatamente o que queremos. Lembre-se de seu №142.

Alterando essa propriedade, podemos aumentar a velocidade do ponteiro. Na verdade, esses valores são uma matriz de transformação usada para calcular um movimento do ponteiro . No link:

Por padrão, o CTM para cada dispositivo de entrada em X é a matriz de identidade. Como exemplo, digamos que você toque em uma tela sensível ao toque no ponto (400, 197) na tela:

⎡ 1 0 0 ⎤   ⎡ 400 ⎤   ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦   ⎣  1  ⎦   ⎣  1  ⎦

As coordenadas X e Y do evento do dispositivo são inseridas na segunda matriz do cálculo. O resultado do cálculo é onde as coordenadas X e Y do evento são mapeadas para a tela. Como mostrado, a matriz de identidade mapeia as coordenadas do dispositivo para as coordenadas da tela sem nenhuma alteração.

Então, o que nós queremos fazer com a matriz - é definir os valores que de acordo com x e y para qualquer outro valor particular, e isso iria alterar a velocidade do ponteiro. Um exemplo do meu PC:

$ xinput set-prop 10 142 2.400000, 0.000000, 0.000000, 0.000000, 2.400000, 0.000000, 0.000000, 0.000000, 1.000000

É xinput set-prop <device-id> <property-number> <property-values>. Brinque um pouco com isso até encontrar os apropriados. Nota: não altere o último valor da matriz. Esse foi o meu erro quando tentei conseguir trabalho - nesse caso, você simplesmente não verá nenhuma diferença.

Pelo menos versões recentes de xinputpermitem especificar dispositivos e opções por nome, portanto, este exemplo também pode funcionar:

xinput set-prop 'PixArt USB Optical Mouse' 'Coordinate Transformation Matrix' 1.2 0 0 0 1.2 0 0 0 1

Essas alterações estão ativas apenas para a sessão atual; portanto, depois de escolher uma boa sensibilidade, você deve aplicá-la permanentemente adicionando-a xorg.conf(ou criando um arquivo como /etc/X11/xorg.conf.d/40-mouse-sensitivity.conf):

Section "InputClass"
    Identifier "PixArt USB Optical Mouse"
    MatchIsPointer "Yes"
    Option "TransformationMatrix" "1.2 0 0 0 1.2 0 0 0 1"
EndSection

Se você não tiver certeza se isso funciona, altere-o para um valor grande como 5.0, salve o arquivo e reinicie.

Agradecimentos: Sou grato a Simon Thum, da lista de discussão do xorg, ele foi quem deu a dica sobre a matriz.

Olá anjo
fonte
É melhor deixar a Matriz de transformação de coordenadas para seu objetivo original, "transformar coordenadas", por exemplo, no caso de orientação da tela ou trabalhar com telas sensíveis ao toque, etc. A maneira mais simples é ajustar a desaceleração constante de aceleração de dispositivo, por exemplo.
Kari Kääriäinen
2
@ KariKääriäinen como os outros confusos. A chamada "aceleração do ponteiro" não tem nada a ver com a sensibilidade do mouse, apenas permite mover um ponteiro o mais longe possível. Ou seja, se você mover o mouse na mesma distância, mas com velocidades diferentes, o ponteiro será movido para uma distância diferente. Isso é bastante desconfortável, você precisa desacelerar toda vez para chegar a um ponto. Mas alterar a matriz de transformação permite, em certo sentido, imitar uma maior sensibilidade do mouse. E entre, especificamente, deceleration diminui a velocidade.
Hi-Angel
1
Interessante, mas esse método tem uma desvantagem: ao usar isso, alguns pixels simplesmente não são alcançáveis. Para tornar isso mais óbvio, tentei xinput set-prop 11 138 40, 0, 0, 0, 40, 0, 0, 0, 1e confirmei que o mouse só alcançava coordenadas espaçadas em 40 pixels. O uso no mundo real provavelmente usaria apenas 2 ou 4 em vez de 40, mas ainda falta pixels. Optei pelo outro método (use o recurso de aceleração como ganho de velocidade constante) porque ele não tem essa desvantagem.
Stéphane Gourichon
4
A única resposta certa.
MichalH
1
A partir de 2019, não haverá mais propriedade 'Desaceleração constante do dispositivo', pelo menos não no meu caso. A matriz de transformação ainda está lá e pode ser acionada com o efeito desejado, embora o que @ StéphaneGourichon aponte acima faça todo sentido. Ah bem, linux e suas esquisitices ...
kellogs 11/03
4

Embora eu não esteja muito claro sobre a questão, aqui está minha sugestão.

Para o KDE

Uma pesquisa rápida revela que não existe essa opção para aumentar a velocidade do mouse abaixo do valor limite.

Alguns usuários sugerem alterar a resolução do mouse no /etc/X11/xorg.confarquivo ( mouse InputDevice section) como

Option "Resolution" "400"

Mas a maioria dos usuários disse que não funcionou.

Você pode aumentar o valor limite para que a aceleração não inicie até que o valor limite seja atingido. (A configuração está dentro Mouse> Advanced Settings)

Uma postagem relacionada pode ser encontrada aqui .

Pela Unidade

  • Pressione a Supertecla (tecla do Windows).
  • Pesquise por mouse.
  • Selecione Mouse And Touchpad
  • Agora mude a sensibilidade para um valor mais alto. Possivelmente é isso que você quer.

    configurações do mouse

Web-E
fonte
2
Ok, esta é exatamente a configuração que estou procurando, mas sua captura de tela foi tirada do Gnome e minha pergunta é relativa ao KDE4.
7893 André
Desculpe por não ter verificado sua pergunta corretamente. Atualizada.
Web-E
Uau, obrigada! Parece que você se esforçou bastante nisso. Infelizmente, editar o xorg.conf não é uma opção, porque quero que os usuários possam configurar a definição de "Resolução" e é política da empresa negar aos usuários permissão para alterar o xorg.conf. Eu adicionarei esta restrição ao comentário original, mas ainda assim voto o seu comentário.
André
3
AMD. A capacidade de definir a "resolução do ponteiro" através de apenas um arquivo de configuração (ou seja, não interativamente) deve ser considerada um erro. Quantas vezes um usuário deve reiniciar o XServer para encontrar uma resolução apropriada? Cinco? Dez? É tão engraçado quanto triste ...
Hi-Angel
Acabei de instalar o unity-control-center, configurei a sensibilidade do mouse para alta, e não funcionou.
Hi-Angel
2

Dado o que o post acima havia dito, eu encontrei esse trabalho.

O fato é que o mouse se move a um múltiplo constante da velocidade base, onde o múltiplo é definido pelo parâmetro "aceleração".

No entanto, esse multiplicador é aplicado somente depois que o mouse se move mais rápido que uma velocidade "limite", especificada pelo parâmetro "sensibilidade".

Isso cria a sensação estranha de "aceleração", onde, se você começar a mover o mouse rapidamente, ele começa a pular incontrolavelmente à medida que ultrapassa a velocidade limite.

Então, o que você pode fazer é definir a "sensibilidade" como 0, tornando o limite igual a 0. O que isso faz é a sua aceleração aplicada o tempo todo à velocidade do mouse.

Então a velocidade do mouse é apenas um múltiplo do parâmetro "aceleração" e, como é uma multiplicação linear, você deve ter uma velocidade constante proporcional ao parâmetro de aceleração. Sem a sensação de aceleração e saltos.

Resumindo: defina a sensibilidade como 0. Ajuste o parâmetro "aceleração" como se fosse "velocidade"

evan
fonte
Esta resposta é a versão genérica da resposta orientada pelo KDE do lolmaus. Fiz exatamente isso, embora tenha tentado com o limiar de 1 pixel, pois outras respostas mencionavam 0 como "desativar". De qualquer forma, eu poderia testá-lo imediatamente executando isso: xset mouse 4 0e assim por diante, e finalmente resolvi xset mouse 2 0. Este é um tipo de hack (usando o recurso de aceleração para velocidade normal), mas funciona, embora eu ache que ainda existe algum limite aplicado.
Stéphane Gourichon
1

Pessoalmente, acho que o movimento preciso do ponteiro é melhor para a experiência geral da área de trabalho; portanto, essa configuração também é importante para mim. Eu sempre estava me perguntando por que os designers de OS UXP não apenas tornam a aceleração o padrão, mas também tendem a remover o controle da interface do usuário.

Você pode achar que a aceleração, que deveria torná-lo mais confortável para o UXP, é realmente indesejável em algumas situações, pois você pode perder os elementos de interface do usuário certos na tela ao mover o mouse rapidamente ou precisa de precisão para algum aplicativo CAD. Especificamente, é difícil controlar os elementos da interface do usuário de controle deslizante e giratório ou mover uma forma na interface do usuário de algum designer. Além disso, com a aceleração, é difícil posicionar o cursor do mouse em um editor de texto precisamente quando você copia e cola uma região do texto. Alguns podem argumentar que, quando você precisa obter precisão, diminui a velocidade, mas e se você não quiser diminuir a velocidade e ainda obter precisão?

Você pode verificar se há aceleração ou não:

(1) Mova o ponteiro do mouse para a direita da tela, observe a posição física do dispositivo na mesa.

(2) Mova o mouse moderadamente para a esquerda um pouco, para que o cursor passe pelo centro da tela e, em seguida, retorne muito lentamente o dispositivo físico à sua posição original.

(3) Repita as etapas (1) e (2) várias vezes.

Se não houver aceleração, o cursor deve chegar à direita da tela o tempo todo. Se houver aceleração, o ponteiro se moverá cada vez mais para a esquerda; portanto, depois de 3 ou 4 vezes, ele apenas atingirá o lado esquerdo da tela; portanto, é necessário corrigi-lo.

Nenhuma aceleração significa que você precisa ajustar o Device Accel Velocity Scalingparâmetro.

Isso desacelerará o movimento do mouse em geral, então você precisa compensar isso com o ajuste constante da velocidade. Isso pode ser feito com a diminuição do Device Accel Constant Decelerationparâmetro.

Aqui está o que funcionou para mim:

  1. Encontre o ID do dispositivo do mouse:

$ xinput list ... ⎜ ↳ PixArt USB Optical Mouse id=10 [slave pointer (2)] ...

O ID do dispositivo = 10

  1. Listar propriedades do dispositivo

$ xinput list-props 10 ... Device Accel Constant Deceleration (276): 1.000000 ... Device Accel Velocity Scaling (278): 10.000000 ...

  1. Reduza o parâmetro de dimensionamento ao mínimo, isso deve proporcionar movimento individual do mouse em relação ao movimento físico real. Se você configurá-lo para algo como 0,1, 0,001 ou 1e-30, não importa, pois é uma aceleração muito menor que o padrão de 10.0. Você não pode defini-lo como zero, pois é considerado um erro.

$ xinput set-prop 10 278 1e-10

  1. (opcional) Agora você pode perceber que, apesar de ser preciso, a velocidade diminuiu em geral; portanto, pode ser necessário jogar com o Constant Decelerationparâmetro para restaurar a velocidade confortável. No meu caso, uma configuração confortável foi 0,7, que acelerou o ponteiro pela metade, fazendo com que o movimento do mouse se parecesse com a mesma velocidade de antes, mas sem aceleração:

$ xinput set-prop 10 276 0.7

Se você quiser mais rápido, defina aqui um valor mais baixo, como 0,5, 0,4 etc. Se você quiser mais devagar, defina-o como 1,0, 1,2 ou até 1,5

George Polevoy
fonte
1

As respostas acima agora estão desatualizadas. O que funcionou melhor para mim é a última seção desta entrada do wiki :

com libinput

Como alternativa, desde libinput-1.1.0-1 e xf86-input-libinput-0.15.0-1, você pode usar um perfil de aceleração simples. Para habilitá-lo, crie o seguinte arquivo:

/etc/X11/xorg.conf.d/50-mouse-acceleration.conf

Seção "Identificador da classe InputClass" "Driver do mouse" libinput "MatchIsPointer" yes "Opção" AccelProfile "" flat "Opção" AccelSpeed ​​"" 0 "EndSection

e reinicie o X.

Outra opção é este comando:

$ xinput --set-prop 'Perfil de aceleração da libinput ativado' 0, 1

O que não precisa de uma reinicialização do X, mas não é persistente. Embora possa ser configurado para ser executado automaticamente com a inicialização automática.

kellogs
fonte
0

Como ajustar a velocidade do mouse no KDE
  • sem ativar a aceleração do mouse
  • e apenas usando a caixa de diálogo settigns (sem console, sem arquivos de configuração)

Este é um resumo coloquial da resposta de exhuma, não esqueça de votar.

No KDE, a aceleração do mouse não é logarítmica. Ou seja, ele tem duas velocidades constantes do mouse: não acelerado e acelerado. Ele muda de um para outro quando você puxa o mouse com rapidez suficiente.

A primeira velocidade não é configurável (pelo menos, da GUI). A segunda velocidade é configurável.

A solução é:

  1. Defina "Limiar do ponteiro" como 0. Como resultado, a segunda velocidade será aplicada o tempo todo.
  2. Ajuste a "Aceleração do ponteiro" para aumentar ou diminuir a velocidade.

Você terminará com uma velocidade constante e não dinâmica do cursor ajustada ao seu gosto.

lolmaus - Andrey Mikhaylov
fonte