No me gusta que pegue el botón central del mouse, porque a menudo termino con código no compilable en Eclipse. ¿Cómo puedo desactivar esto (en todos los programas)? Estoy corriendo Fedora.
No me gusta que pegue el botón central del mouse, porque a menudo termino con código no compilable en Eclipse. ¿Cómo puedo desactivar esto (en todos los programas)? Estoy corriendo Fedora.
Respuestas:
Esta solución funcionará globalmente y preservará la funcionalidad del mouse central.
Instalar xbindkeys xsel xdotool
Coloque esto en ~/.xbindkeysrc
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release
Recargar xbindkeys -p
Ejecutar xbindkeys
al inicio, pkill xbindkeys
para detener.
En Fedora 24 puede instalar gnome-tweak-tool
usando el siguiente comando:
$ sudo dnf install gnome-tweak-tool
Abra gnome-tweak-tool
y vaya a la pestaña "Teclado y mouse" y desactive "Hacer clic con el botón central y pegar".
Tener el botón central pegar es un estándar de interfaz de usuario de Unix, como hacer que el botón izquierdo seleccione o active, y el botón derecho haga otra cosa (como extender, alternar, activar un menú, ...). Lo encontrarás obligado a pegar en la mayoría de las aplicaciones de Unix.
Si su problema es que su mouse es demasiado sensible cuando coloca el dedo en la rueda, le sugiero que obtenga un mouse mejor. Hay muchos ratones decentes baratos.
Puede reasignar el botón 2 del mouse a un número diferente. Las aplicaciones identifican los botones izquierdo, medio y derecho del mouse como botones 1, 2 y 3 respectivamente. Ponga este código en un script que se ejecute cuando comience su sesión X (cómo hacerlo depende de su entorno de escritorio).
echo 'pointer = 1 6 3 4 5' | xmodmap -
Los ratones con rueda de desplazamiento admiten un evento de clic del botón central al presionar la rueda de desplazamiento. Esta es una gran característica, pero puede resultarle irritante. Afortunadamente se puede deshabilitar.
Primero, necesita saber la identificación del mouse, así:
$ 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)]
Mi mouse Dell Usb se imprimió aquí para el cual id = 12
entonces, puedo ver la asignación de mi botón del mouse como:
$ xinput get-button-map 12
que imprime
1 2 3 4 5 6 7 8 9 10 11 12
aquí solo los primeros tres números tienen significado para mí. Representan los botones izquierdo, medio y derecho del mouse.
Puedo desactivar el botón central del mouse configurándolo en 0:
$ xinput set-button-map 12 1 0 3
O puedo convertir el botón central del mouse en un botón izquierdo del mouse configurándolo en 1:
$ xinput set-button-map 12 1 1 3
árbitro. enlace https://wiki.ubuntu.com/X/Config/Input
funciona para mí (kubuntu 18.04 LTS)
xinput set-button-map 12 1 0 3
usted configuró todos los botones (1 - 12 para este examen xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12
)
Esto es lo que puede hacer si desea mantener funcional el clic del medio (para hacer clic para abrir enlaces en nuevas pestañas, por ejemplo) sin que pegue cosas.
Primero instale sxhkd y xsel .
Luego configure ./.config/.sxhkd/sxhkdrc así
~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
Y eso es básicamente todo.
Ahora inicie sxhkd (o configúrelo para iniciar al inicio). Ahora, el mouse central ya no pegará nada, sino que funcionará de manera normal.
~/.config/sxhkd/sxhkdrc
Es una convención común que muchos programas cumplen. No hay una forma global de desactivarlo, debe hacerlo programa por programa.
EDITAR: (aparte de, como dice Gilles, deshabilitar el botón del mouse 2. Pero algunos programas tienen otros usos para el botón del mouse 2, por lo que no recomendaría esto).
EDITAR: acabo de encontrar un problema con la solución que he publicado: en algunos programas ( gitk
al menos, no estoy seguro de qué tan común es), esto evitará que funcione la selección de texto. Así que pruébelo, pero si tiene problemas para seleccionar texto en un programa que usa regularmente, entonces la solución es dejar de usarlo.
Instale xsel
y luego ejecute el siguiente script de shell:
#!/bin/sh
while true; do
xsel -fin </dev/null
done
Mientras este script se esté ejecutando (puede configurarlo para que se ejecute al iniciar sesión), el botón central del mouse no se pegará en ninguna aplicación. Por lo tanto, técnicamente seguirá pegando, pero siempre no habrá nada que pegar.
La forma en que funciona es que se ejecuta xsel
y hace que copie ( -i
) el contenido de /dev/null
, sin bifurcar al fondo ( -n
), y que realmente mantenga esa cadena vacía en el búfer en lugar de simplemente borrarla y salir ( -f
). Cada vez que salga, volverá a invocar xsel
con las mismas opciones. Dado xsel
que seguirá ejecutándose hasta que otro programa "lo libere del deber" copiando otra cosa, no creará constantemente nuevos procesos, sino que mantendrá un solo proceso ejecutándose con precisión hasta que sea necesario nuevamente. (A menos que tenga varias instancias del script ejecutándose, pero no hay necesidad de hacerlo).
Además, no, esto no interferirá con la copia / pegado regular, porque el pegado del medio clic utiliza un portapapeles separado.
Este es mi guión. Es posible que necesites modificar tu
#!/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 ---------------------------------------------------------------------------------