Não gosto de colar o botão do meio do mouse, porque muitas vezes acabo com código não compilável no Eclipse. Como posso desativar isso (em todos os programas)? Estou executando o Fedora.
Não gosto de colar o botão do meio do mouse, porque muitas vezes acabo com código não compilável no Eclipse. Como posso desativar isso (em todos os programas)? Estou executando o Fedora.
Respostas:
Esta solução funcionará globalmente e preservará a funcionalidade do meio do mouse.
Instalar xbindkeys xsel xdotool
Coloque isso em ~/.xbindkeysrc
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release
recarregar xbindkeys -p
Execute xbindkeys
na inicialização, pkill xbindkeys
para parar.
No Fedora 24, você pode instalar gnome-tweak-tool
usando o seguinte comando:
$ sudo dnf install gnome-tweak-tool
Abra gnome-tweak-tool
e vá para a guia "Teclado e mouse" e desative "Colar com o botão do meio".
Ter a cola do botão do meio é um padrão de interface de usuário unix, como ter o botão esquerdo selecionado ou ativado e o botão direito fazer outra coisa (como estender, alternar, abrir um menu,…). Você o encontrará vinculado à maioria dos aplicativos unix.
Se o seu problema é que o mouse é sensível demais ao colocar o dedo no volante, sugiro que você compre um mouse melhor. Existem muitos ratos decentes baratos.
Você pode reatribuir o botão 2 do mouse para um número diferente. Os aplicativos identificam os botões esquerdo, médio e direito do mouse como botões 1, 2 e 3, respectivamente. Coloque esse código em um script que é executado quando a sessão do X é iniciada (como fazer isso depende do ambiente da área de trabalho).
echo 'pointer = 1 6 3 4 5' | xmodmap -
Os mouses Scrollwheel suportam um evento de clique no botão do meio ao pressionar o scrollwheel. Esse é um ótimo recurso, mas você pode achar isso irritante. Felizmente, pode ser desativado.
Primeiro, você precisa conhecer o id do mouse, assim:
$ xinput list | grep 'id='
que imprime algo como
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ PixArt Dell MS116 USB Optical Mouse 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=6 [slave keyboard (3)]
Video Bus id=7 [slave keyboard (3)]
Power Button id=8 [slave keyboard (3)]
Sleep Button id=9 [slave keyboard (3)]
Dell KB216 Wired Keyboard id=10 [slave keyboard (3)]
Dell KB216 Wired Keyboard id=11 [slave keyboard (3)]
Eee PC WMI hotkeys id=13 [slave keyboard (3)]
Meu mouse USB Dell imprimiu aqui para o qual id = 12
para visualizar o mapeamento do botão do mouse, como:
$ xinput get-button-map 12
que imprime
1 2 3 4 5 6 7 8 9 10 11 12
aqui apenas os três primeiros números têm significado para mim. Eles representam os botões esquerdo, médio e direito do mouse.
Posso desligar o botão do meio do mouse, definindo-o como 0:
$ xinput set-button-map 12 1 0 3
Ou posso transformar o botão do meio do mouse em um botão esquerdo do mouse, definindo-o como 1:
$ xinput set-button-map 12 1 1 3
ref. link https://wiki.ubuntu.com/X/Config/Input
funciona para mim (kubuntu 18.04 LTS)
xinput set-button-map 12 1 0 3
você definir todos os botões (1 a 12 para este exemplo xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12
)
Aqui está o que você pode fazer se quiser manter o clique do meio funcional (por exemplo, para abrir links em novas guias), sem colar as coisas.
Primeiro instale o sxhkd e o xsel .
Em seguida, configure ./.config/.sxhkd/sxhkdrc da seguinte maneira
~button2
echo -n | xsel -n -i
~control + c
echo -n | xsel -n -i
~control + shift + c
echo -n | xsel -n -i
~control + x
echo -n | xsel -n -i
E é basicamente isso.
Agora inicie o sxhkd (ou configure-o para iniciar na inicialização). Agora, o mouse do meio não colará mais nada, mas funcionará normalmente.
~/.config/sxhkd/sxhkdrc
É uma convenção comum que muitos programas cumprem. Não existe uma maneira global de desativá-lo, você deve fazê-lo programa por programa.
EDIT: (além de, como Gilles diz, desabilitar o botão 2. do mouse. Mas alguns programas têm outros usos para o botão 2 do mouse, por isso eu não recomendaria isso.)
EDIT: Acabei de encontrar um problema com a solução que eu postei: em alguns programas ( gitk
pelo menos, não tenho certeza de quão comum é), isso impedirá a seleção de texto de funcionar. Portanto, tente, mas se você tiver problemas para selecionar texto em um programa usado regularmente, a solução é parar de usá-lo.
Instale xsel
e execute o seguinte script de shell:
#!/bin/sh
while true; do
xsel -fin </dev/null
done
Enquanto esse script estiver em execução (você pode configurá-lo para executar no login), o botão do meio do mouse não será colado em nenhum aplicativo. Portanto, tecnicamente, ele ainda será colado, mas sempre haverá nada para colar.
O modo como funciona é que ele é executado xsel
e copia ( -i
) o conteúdo de /dev/null
, sem bifurcar para o plano de fundo ( -n
) e, na verdade, retém a string vazia no buffer, em vez de apenas limpá-la e sair ( -f
). Sempre que sair, ele será chamado xsel
novamente com as mesmas opções. Como xsel
continuará em execução até que outro programa "o exija" copiando outra coisa, ele não criará constantemente novos processos, mantendo um único processo em execução precisamente até que seja necessário novamente. (A menos que você tenha várias instâncias do script em execução, mas não há necessidade de fazer isso.)
Além disso, não, isso não interferirá na cópia / colar normal, porque a pasta do clique do meio usa uma área de transferência separada.
Este é o meu roteiro. O seu pode precisar de ajustes
#!/bin/bash
clear
echo
echo
echo
echo -----Now fixing your scroll button --- -hold onto pants
echo
xinput --list|grep "Virtual core XTEST pointer"
echo ---------------------------------------------------------------------------------
echo
id=$(
xinput --list|grep "Virtual core XTEST pointer" |awk '{
for(i=1; i<=NF; i++) {
tmp=match($i, /id=[0-9]+/)
if(tmp) {
print $i
}
}
}' $1 | tr -d '[:alpha:]='
)
echo fixing $id:
xinput set-button-map $id 1 10 2 4 5 6 7 8 9 3
echo
echo
xinput get-button-map $id
echo ---------------------------------------------------------------------------------