¿Cómo puedo desactivar la funcionalidad de "pegar con el botón central del mouse" en todos los programas?

43

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.

derekhh
fuente
44
Hacer clic con el botón central para insertar selección es fundamentalmente parte del funcionamiento de X11; ver http://www.jwz.org/doc/x-cut-and-paste.html .
Ephemient
1
@Gilles: en todos los programas. :)
derekhh
44
No he visto ninguna forma trivial de hacer esto sin presionar el botón central del mouse por completo o piratear X o atornillar también con el portapapeles normal, por lo que mi "solución" sugerida es aprender a usar el botón central del mouse correctamente. Es increíblemente conveniente poder resaltar una URL de texto en cualquier lugar e ir a ella haciendo clic con el botón central en la ventana de mi navegador (FF).
jw013
44
@ephemient "Hacer clic con el botón central para insertar la selección es fundamentalmente parte de la forma en que funciona X11" ... cuando teníamos los ratones ópticos Sun que necesitaban aproximadamente 1 libra de presión en el botón central para obtener la señal. Hoy el botón central está en el gatillo del cabello y, además, se usa como una rueda, este "fundamental" tiene que irse (como muchas cosas "fundamentales" en X por cierto)
David Tonhofer
3
Siento que la capacidad de desactivar lo que quieras es un aspecto aún más fundamental de Linux.
Wayne Bloss

Respuestas:

24

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 xbindkeysal inicio, pkill xbindkeyspara detener.

Radivarig
fuente
77
¡¡¡Gracias!!! No puedo creer que la única solución de trabajo haya estado con 0 votos durante exactamente 2 años.
Retr0id
44
Finalmente, una solución que funcionó para mí en Ubuntu Mate 17.10. ¡Gracias!
Dmitry Frank
55
@spiil Probé esta solución y logra el efecto que deseas. Hice clic con el botón central en un campo de texto y no sucede nada, pero al hacer clic con el botón central en un enlace y al hacer clic para cerrar una pestaña, funcionan en Chromium, Firefox y Waterfox (los tres navegadores que probé).
user7214865
44
Desplazarse por el botón central de hacer clic y mantener presionado ya no funciona con esta solución: /
Marc.2377
2
Eres una leyenda Utilicé el botón central de mi trackball para desplazarme, pero la funcionalidad de pegar me hizo la vida imposible. Ahora está en colores brillantes de nuevo, ¡gracias!
redsPL
16

En Fedora 24 puede instalar gnome-tweak-toolusando el siguiente comando:

$ sudo dnf install gnome-tweak-tool

Abra gnome-tweak-tooly vaya a la pestaña "Teclado y mouse" y desactive "Hacer clic con el botón central y pegar".

Pawan Kumar
fuente
44
Esto también está disponible en Ubuntu 16.04: sudo apt-get install gnome-tweak-tool
Tyranin
1
Esto solo afecta a algunos programas como gedit, gnome-terminal y algunos otros. Vea también el comentario en askubuntu.com/questions/4507/… .
Kvothe
11

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 -
Gilles 'SO- deja de ser malvado'
fuente
1
No funciona. pastebin.com/0DYYMDLS
balki
@balki Weird. Ciertamente funciona para mi. Entonces, para descubrir por qué no funciona para usted, haga una nueva pregunta. Asegúrese de mencionar qué versión de X.org (u otro servidor X) tiene, en qué distribución está ejecutando esto y qué dispositivos de entrada están conectados.
Gilles 'SO- deja de ser malvado'
2
Apuesto a que a OP no le importa si es estándar (sé que no). No importa Las acciones del botón del mouse deberían ser más fáciles de personalizar.
Marc.2377
7

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)

Suraj Inamdar
fuente
Funciona perfectamente para touchpad en Slackware 14.2 (KDE).
Señor del
Esto es mejor que cualquiera de los anteriores que comienzan con la "descarga XX". El único problema que tuve es que para xinput set-button-map 12 1 0 3usted 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)
blindguy
3

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.

Cestariano
fuente
Esto aún le permite usar el mouse central para desplazarse. ¡Buena solución! Para mí, el archivo estaba en~/.config/sxhkd/sxhkdrc
Atnas
1

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).

wnoise
fuente
1

EDITAR: acabo de encontrar un problema con la solución que he publicado: en algunos programas ( gitkal 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 xsely 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 xsely 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 xselcon las mismas opciones. Dado xselque 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.

flarn2006
fuente
¡Gracias! Yo uso KDE, y esta solución es la ÚNICA que funciona para mí.
Aloso
@Aloso De nada, solo ten en cuenta la advertencia en la parte superior. Si alguna vez te encuentras incapaz de seleccionar texto en un programa, entonces ese es el culpable más probable.
flarn2006
Sí, noté este problema en el cuadro de diálogo "Guardar archivo" de Firefox. Ahora solo enciendo este script cuando estoy programando.
Aloso
@Aloso Ok entonces; me alegro de que todavía te sea
útil
0

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 ---------------------------------------------------------------------------------
Max Robbertze
fuente