Non mi piace incollare il pulsante centrale del mouse, perché finisco spesso con il codice non compilabile in Eclipse. Come posso disattivarlo (in tutti i programmi)? Sto correndo Fedora.
Non mi piace incollare il pulsante centrale del mouse, perché finisco spesso con il codice non compilabile in Eclipse. Come posso disattivarlo (in tutti i programmi)? Sto correndo Fedora.
Risposte:
Questa soluzione funzionerà a livello globale e preserverà la funzionalità del mouse centrale.
Installare xbindkeys xsel xdotool
Metti questo dentro ~/.xbindkeysrc
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release
Ricaricare xbindkeys -p
Esegui xbindkeys
all'avvio, pkill xbindkeys
per interrompere.
In Fedora 24 puoi installarlo gnome-tweak-tool
usando il seguente comando:
$ sudo dnf install gnome-tweak-tool
Apri gnome-tweak-tool
e vai alla scheda "Tastiera e mouse" e disabilita "Incolla-clic-centrale".
Avere il pulsante centrale incolla è uno standard dell'interfaccia utente unix, come se il pulsante sinistro selezioni o si attivi e il pulsante destro fa qualcos'altro (come estendere, attivare o disattivare un menu, ...). Lo troverai incollato nella maggior parte delle applicazioni unix.
Se il tuo problema è che il tuo mouse è troppo sensibile quando metti il dito sul volante, ti suggerisco di ottenere un mouse migliore. Ci sono molti topi decenti a buon mercato.
È possibile riassegnare il pulsante del mouse 2 a un numero diverso. Le applicazioni identificano i pulsanti sinistro, centrale e destro del mouse rispettivamente come pulsanti 1, 2 e 3. Inserisci questo codice in uno script che viene eseguito all'avvio della tua sessione X (come farlo dipende dal tuo ambiente desktop).
echo 'pointer = 1 6 3 4 5' | xmodmap -
I mouse Scrollwheel supportano un evento clic del pulsante centrale quando si preme la rotellina. Questa è un'ottima funzionalità, ma potresti trovarla irritante. Fortunatamente può essere disabilitato.
Innanzitutto, devi conoscere l'id del mouse, in questo modo:
$ xinput list | grep 'id='
che stampa qualcosa di simile
⎡ 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)]
Il mio mouse USB Dell è stato stampato qui per il quale id = 12
così, posso visualizzare la mappatura del mio pulsante del mouse come:
$ xinput get-button-map 12
quale stampa
1 2 3 4 5 6 7 8 9 10 11 12
qui solo i primi tre numeri hanno un significato per me. Rappresentano i pulsanti sinistro, centrale e destro del mouse.
Posso disattivare il pulsante centrale del mouse impostandolo su 0:
$ xinput set-button-map 12 1 0 3
Oppure posso trasformare il pulsante centrale del mouse in un pulsante sinistro del mouse impostandolo su 1:
$ xinput set-button-map 12 1 1 3
rif. link https://wiki.ubuntu.com/X/Config/Input
funziona per me (kubuntu 18.04 LTS)
xinput set-button-map 12 1 0 3
hai impostato tutti i pulsanti (1-12 per in questo esempio xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12
)
Ecco cosa puoi fare se vuoi mantenere funzionale il clic centrale (per fare clic per aprire i collegamenti in nuove schede, ad esempio) senza incollare le cose.
Prima installa sxhkd e xsel .
Quindi configurare ./.config/.sxhkd/sxhkdrc in questo modo
~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 questo è tutto.
Ora avvia sxhkd (o configuralo per l'avvio all'avvio). Ora, il mouse centrale non incollerà più nulla ma funzionerà normalmente.
~/.config/sxhkd/sxhkdrc
È una convenzione comune a cui aderiscono molti programmi. Non esiste un modo globale per disattivarlo, è necessario farlo su un programma per programma.
EDIT: (a parte, come dice Gilles, disabilitare il pulsante del mouse 2. Ma alcuni programmi hanno altri usi per il pulsante del mouse 2, quindi non lo consiglierei.)
EDIT: ho appena riscontrato un problema con la soluzione che ho pubblicato: in alcuni programmi ( gitk
almeno, non sono sicuro di quanto sia comune) ciò impedirà il funzionamento della selezione del testo. Quindi provalo, ma se hai problemi con la selezione del testo in un programma che usi regolarmente, la soluzione è smettere di usarlo.
Installa xsel
, quindi esegui il seguente script di shell:
#!/bin/sh
while true; do
xsel -fin </dev/null
done
Finché questo script è in esecuzione (puoi impostarlo per essere eseguito all'accesso) il pulsante centrale del mouse non verrà incollato in nessuna applicazione. Quindi tecnicamente incollerà ancora, ma non ci sarà sempre nulla da incollare.
Il modo in cui funziona è che esegue xsel
e fa copiare ( -i
) il contenuto di /dev/null
, senza biforcarsi sullo sfondo ( -n
), e per contenere effettivamente quella stringa vuota nel buffer invece di cancellarla ed uscire ( -f
). Ogni volta che esce, invocherà di xsel
nuovo con le stesse opzioni. Dal momento xsel
che continuerà a funzionare fino a quando un altro programma "lo alleggerirà dal dovere" copiando qualcos'altro, non creerà costantemente nuovi processi, mantenendo un singolo processo in esecuzione esattamente fino a quando non sarà nuovamente necessario. (A meno che tu non abbia più istanze dello script in esecuzione, ma non è necessario farlo.)
Inoltre no, ciò non interferirà con il normale copia / incolla, poiché l'incollamento con clic centrale utilizza un blocco appunti separato.
Questa è la mia sceneggiatura. Potrebbe essere necessario apportare modifiche
#!/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 ---------------------------------------------------------------------------------