Mouse

Como alterar as configurações do mouse e touchpad usando Xinput no Linux

Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar eventos de entrada no Wayland e no X e pode lidar com uma variedade de dispositivos de entrada, incluindo telas sensíveis ao toque e canetas stylus.

Este artigo explica como alterar várias opções para um dispositivo de entrada que está sendo manipulado pela biblioteca libinput. Para verificar e configurar as opções disponíveis, uma ferramenta de linha de comando chamada “xinput” será usada.

Observe que este guia funciona apenas com o servidor de exibição X. Para o Wayland, você precisa confiar nas configurações do sistema fornecidas pela distribuição ou usar um utilitário de configuração centralizado como gsettings.

Lista de dispositivos de entrada

Xinput vem pré-instalado por padrão no Ubuntu. Se por algum motivo ele não estiver instalado em seu sistema, execute o comando abaixo para instalá-lo:

$ sudo apt install xinput

Para listar todos os dispositivos de entrada internos e externos conectados ao seu sistema, execute o comando abaixo:

$ xinput --list

Você verá alguma saída no terminal como esta:

A entrada em “Ponteiro de núcleo virtual” (destacado por setas vermelhas) é um mouse USB com fio conectado ao meu sistema. Você terá que usar o nome exato ou id mostrado na imagem acima para configurar o mouse ou touchpad através da ferramenta de linha de comando xinput.

Observe que na captura de tela acima, xinput está mostrando propriedades de dispositivos conectados ao meu sistema. Os nomes e IDs dos dispositivos serão diferentes para o seu sistema, dependendo da configuração do hardware e dos dispositivos externos conectados via USB, Bluetooth ou receptores sem fio.

Exibir propriedades de um dispositivo conectado

Para ver o status atual e várias opções ativas para o dispositivo listado acima, execute um comando no seguinte formato:

$ xinput --list-props “id”

Para o mouse Dell listado acima, o comando seria:

$ xinput --list-props 8

Existe uma limitação ao usar este comando. Os IDs mostrados na saída do terminal tendem a mudar quando você conecta um dispositivo listado a uma porta diferente. Como os IDs mudam continuamente, sempre há uma chance de alterar acidentalmente as configurações de um dispositivo diferente. Para superar esse problema, é melhor usar o nome completo do dispositivo como identificador em vez de seu id. Portanto, para o mouse Dell listado acima, o melhor comando seria:

$ xinput --list-props "PixArt Dell MS116 USB Optical Mouse"

A área destacada abaixo no retângulo vermelho mostra a configuração atual do dispositivo. Você só pode alterar as opções que são mostradas na saída. Dependendo dos recursos do seu dispositivo, algumas opções extras podem ser listadas, enquanto outras podem ser totalmente omitidas.

Alterar as propriedades de um dispositivo conectado

Agora que você sabe como verificar as propriedades de um dispositivo de entrada conectado, as configurações dele podem ser facilmente alteradas usando alguns comandos simples.

Por exemplo, para ativar ou desativar a rolagem natural, você deve executar comandos no seguinte formato:

$ xinput set-prop "PixArt Dell MS116 USB Optical Mouse" 285 0
$ xinput set-prop "PixArt Dell MS116 USB Optical Mouse" 285 1

“285” é o id para rolagem natural, conforme mostrado na imagem acima. “0” desabilita a rolagem natural enquanto “1” habilita. Mais uma vez, usar IDs não é uma maneira confiável de alterar essas configurações. Uma abordagem melhor é usar o identificador de propriedade completo.

$ xinput set-prop "PixArt Dell MS116 USB Optical Mouse"
"Libinput Natural Scrolling Enabled" 0
$ xinput set-prop "PixArt Dell MS116 USB Optical Mouse"
"Libinput Natural Scrolling Enabled" 1

Observe que você não deve tocar nos identificadores de propriedade que contenham a palavra "Padrão". Estes são valores de fallback de referência e qualquer tentativa de alterá-los resultará no xinput gerando um erro.

Para saber mais sobre outras opções e aquelas listadas na saída do terminal acima, visite o seguinte página.

Tornando as Mudanças Persistentes

O método explicado acima altera as configurações apenas para a sessão ativa. Quando você reinicializar o sistema, essas mudanças irão embora. Para torná-los persistentes, duas abordagens podem ser usadas.

O primeiro método requer que você adicione esses comandos aos aplicativos de inicialização. Você pode adicionar quantas entradas quiser usando uma interface gráfica agradável. Nenhuma permissão de root é necessária para criar essas entradas, além disso, alterá-las mais tarde é muito fácil.

Para adicionar o comando aos aplicativos de inicialização, inicie o aplicativo “Aplicativos de Inicialização” no inicializador de aplicativos. Clique no botão “Adicionar” para adicionar uma entrada. Defina uma descrição e insira o comando xinput apropriado de acordo com suas necessidades. Certifique-se de que a caixa de seleção esteja marcada depois de salvar a entrada.

É isso, o comando xinput que você digitou será executado automaticamente na inicialização do sistema. Eu adicionei um pouco de atraso ao comando para esperar que a sessão carregue corretamente. Para referência, aqui está o comando usado abaixo na captura de tela abaixo:

$ sleep 3 && xinput set-prop "PixArt Dell MS116 USB Optical Mouse"
"Libinput Natural Scrolling Enabled" 1

O segundo método requer que você execute alguns comandos como root e edite um arquivo de texto. A vantagem de usar este método é que você não precisa criar entradas separadas para cada opção em uma GUI e tudo reside apenas em um arquivo de texto, tornando mais fácil compartilhá-lo entre dispositivos.

Execute os comandos abaixo para criar o diretório necessário e o arquivo conf:

$ sudo mkdir -p / etc / X11 / xorg.conf.d
$ sudo touch / etc / X11 / xorg.conf.d / 99-libinput.conf

Observe a parte “99” no nome do arquivo. Indica a ordem de carregamento dos arquivos existentes no “xorg.conf.d ”pasta. Um arquivo com o maior número como prefixo será carregado por último, substituindo quaisquer opções especificadas nos arquivos anteriores no caso de haver duplicatas. Ao especificar “99” ou qualquer outro número como prefixo, você pode garantir que ele seja carregado após outros arquivos.

Abra “99-libinput.arquivo conf ”com acesso root em seu editor de texto favorito. Insira o snippet de código abaixo depois de fazer as alterações necessárias de acordo com seus requisitos.

Seção "InputClass"
Identificador "Dell Mouse"
MatchProduct "PixArt Dell MS116 USB Optical Mouse"
Opção "NaturalScrolling" "true"
EndSection

Onde:

Ao especificar corretamente “MatchProduct”, você poderá limitar as opções de configuração a um dispositivo específico apenas. As alterações feitas no arquivo conf terão efeito quando você reiniciar da próxima vez. Você pode adicionar qualquer número de opções na seção “InputClass”. Uma lista de várias opções que podem ser adicionadas ao arquivo está disponível aqui.

Conclusão

O método explicado acima é especialmente útil quando você deseja usar regras de configuração por dispositivo. A interface de configuração padrão do sistema no GNOME e KDE fornece apenas algumas das opções mais comumente usadas disponíveis para vários dispositivos de entrada. Para configurar opções avançadas para um dispositivo de entrada, você não tem escolha a não ser usar “xinput” ou criar um arquivo de configuração dedicado.

Como transmitir mídia do Ubuntu para o Chromecast
Para entender o objetivo deste artigo, devemos primeiro discutir quatro termos-chave relacionados a ele: mídia, arquivos de mídia, Ubuntu e Chromecast...
Como instalar e usar a ferramenta GNOME Tweak no Ubuntu
A Gnome Tweak Tool é um utilitário usado para personalizar a aparência geral e o comportamento dos elementos no Gnome Desktop Environment. Em termos s...
Como instalar e usar o Dolphin Emulator no Ubuntu
Dolphin Emulator é um projeto de código aberto e plataforma cruzada que está entre os emuladores de jogos populares para PC. É altamente compatível co...