Acho que o EitherMouse merece ser mencionado aqui. Estou muito feliz com isso quando tenho que usar uma caixa do Windows. Isso torna o gerenciamento de uma configuração multi-mouses uma brisa.
Você pode fazer o download da ferramenta em seu site: link
Para o bem da posteridade, incluirei aqui também a solução para o GNU / Linux. A melhor maneira, na minha opinião, é definir uma configuração de seção Xorg InputClass personalizada. Isso entrará em vigor a qualquer momento em que o mouse for detectado. Aqui está o meu arquivo de configuração /etc/X11/xorg.conf.d/50-mouses-config.conf
:
Section "InputClass"
Identifier "Lachesis Left Handed"
MatchUSBID "1532:000c"
Option "ButtonMapping" "3 2 1"
EndSection
O valor Identifier
não é importante. O ID USB pode ser encontrado usando o comando lsusb
. Para ver quais botões estão disponíveis, a ferramenta xev
pode ser usada para obter o ID do botão ao pressionar os botões do mouse. O comando xinput list
pode ser usado para obter uma lista de todos os dispositivos de entrada em seu sistema e seu ID de entrada de x. Você pode obter uma lista completa dos botões do dispositivo usando o comando xinput get-button-map N
, em que N é o ID do xinput do seu dispositivo, como xinput get-button-map 10
. Você pode experimentar modificar o mapeamento dos botões do seu dispositivo usando o comando xinput set-button-map N *mapping*
, como: xinput set-button-map 10 3 2 1
Você terá que reiniciar sua sessão X para tornar sua nova configuração do Xorg efetiva. Em caso de problema, o Xorg.log ( tail -f /var/log/Xorg.0.log
) pode lhe dar uma pista sobre o que deu errado.
Uma alternativa xinput set-button-map
pode ser usada, mas é menos dinâmica (ela não será aplicada automaticamente quando o dispositivo for detectado). O script a seguir pode ser configurado para ser executado na inicialização (no Ubuntu, há uma GUI de aplicativos de inicialização para configurá-lo). Por algumas razões, isso não funcionará se você simplesmente chamar o script do seu arquivo ~ / .profile. A variável MOUSE_NAME corresponde a qualquer nome dado ao mouse na saída do comando xinput list
.
#!/bin/bash
MOUSE_NAME="Razer Razer Lachesis"
BUTTONS_MAP="3 2 1"
while read -r line; do
raw_line=$(grep "$MOUSE_NAME" | grep "pointer")
if [ ! -z "$raw_line" ]; then
mouse_id=$(echo "$raw_line" | cut -d '=' -f2 | sed 's/\t.*//g')
echo "Found ${MOUSE_NAME}'s id: $mouse_id"
xinput set-button-map $mouse_id $BUTTONS_MAP
break
fi
done < <(xinput list)