¿Cómo reasignar el menú contextual a otra tecla en Linux?

19

Acabo de comprar un Thinkpad de Lenovo y estoy muy orgulloso de todo lo que contiene. Se siente tan sólido como el kernel de Linux: P.

El problema es que Lenovo decidió eliminar la clave del menú contextual que es la clave que hace el clic derecho. Lo reemplazaron por una tecla de pantalla de impresión. Mi teclado tiene su parte numérica con algunos botones encima. Hay una tecla de lupa que me gustaría reasignar para abrir el menú contextual o ser la tecla de clic derecho. ¿Es posible hacer esto?

Intenté buscar otras preguntas relacionadas, pero solo encontré preguntas y respuestas sobre cómo agregar opciones al menú contextual de Nautilus. Quiero asignar una tecla física de mi teclado para abrir este menú. Justo como antes. También parece que Dell está soltando esta tecla en su teclado inspiron. No sé qué está pasando ya que uso el teclado más que el mouse.

Gracias por adelantado.

Jhonnytunes
fuente
3
Instala xbindkeys con sudo apt-get install xbindkeys. Luego, en una ejecución de terminal, xbindkeys -kescriba la clave que desea cambiar. ¿Puedes agregar el resultado a tu pregunta?
Seth
"NoCommand" m: 0x50 + c: 46 Mod2 + Mod4 + l
Jhonnytunes
¿Quién querría una tecla Imprimir pantalla donde esperaría una tecla Menú? Realmente me pregunto qué tan borracho puedes presentarte para trabajar en Lenovo. De todos modos, tenga en cuenta que no necesita un .Xmodmapgenerado por, xmodmap -pkepara empezar, también puede poner su enlace en un archivo vacío. Además, mira lo que @Baha_hi descubrió a continuación.
J. Katzwinkel

Respuestas:

13

Es un poco complicado, pero puedes hacerlo. Sigue estos pasos:

Detectar código clave

  1. Ejecute xevpara detectar el código clave:

    xev | grep keycode
    
            state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
            state 0x0, keycode 107 (keysym 0xff67, Menu), same_screen YES,
            state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    
  2. Presione la tecla que desea reconfigurar. La salida en el terminal le mostrará el keycode(tenga cuidado, podría tener varios).

Mapeo de prueba

  1. Establecer nueva asignación temporalmente, para mí es keycode 107:

    xmodmap -e "keycode  107 = Return NoSymbol Return"
    

Si la clave se comporta como se esperaba, puede guardar la configuración.

Guarda tu configuración

  1. Guarde su tabla de $HOMEmapas de teclas actual en su , para anular el valor predeterminado:

    xmodmap -pke > ~/.Xmodmap
    
  2. Cree o edite ~/.xinitrcpara cargar su configuración:

    $EDITOR ~/.xinitrc
    
  3. Agregar líneas siguientes

    if [ -f $HOME/.Xmodmap ]; then
            /usr/bin/xmodmap $HOME/.Xmodmap
    fi
    

Disfrutar

La mayor parte de la información anterior proviene del artículo de ArchWiki .

Ed Villegas
fuente
Hay un problema. Cuando presiono el botón 'l' está marcado. Lo comprobé en xev y me dio el código 46 que está asignado a la letra L l. Tal vez no tiene un código clave para tomar uno.
Jhonnytunes
@Jhonnytunes. Verifique que la distribución de su teclado sea correcta. Puede cambiar su modelo escribiendo `sudo dpkg-reconfigure keyboard-configuration`.
Ed Villegas
Sigue siendo el mismo comportamiento. Probé diferentes modelos de thinkpad y nada.
Jhonnytunes
Por cierto, mi thinkpad es un E530c y no aparece en la lista de teclados.
Jhonnytunes
Si esta es la distribución de su teclado, tal vez la tecla al lado de «Eliminar» sea en realidad «Menú contextual» (la función que está buscando). De lo contrario, vuelva a configurar otra clave o pregunte directamente al escritorio de Lenovo qué diseño debe elegir.
Ed Villegas
12

Encontré aquí que usar: shift+ F10abre el menú contextual.

Sé que no es la mejor solución, ¡pero pensé que podría ayudar para un uso temporal!

PD: También tengo e530c, y probé esto en Debian 7 (Wheezy).

Bahax
fuente
3

Finalmente encontré la manera de hacer esto después de horas de pruebas y falla: D

En primer lugar, instale xautomation:

sudo apt-get install xautomation

Luego dirígete a la pestaña Acceso directo de la sección Teclado en Configuración del sistema Ubuntu. Primero vaya a la entrada Capturas de pantalla y vuelva a asignar las acciones a otra tecla o desactívelas si lo desea. Reemplacé la tecla PrtSc (Imprimir) por el botón negro Thinkpad (Launch1).

Ahora vaya a la sección Accesos directos personalizados y agregue un acceso directo. nómbrelo como quiera, por ejemplo, Menú. En el campo Comando, inserte esto:

xte 'keydown Shift_L' 'key F10' 'keyup Shift_L'

¡El trabajo está hecho! Funciona como un milagro;)

Danial Behzadi
fuente
2

Esto hizo el truco para mí. Para mí, el código clave para el botón "PrtSc" en mi thinkpad es 107. Lo encontré con la herramienta "xev" en ubuntu.

xmodmap -e "keycode  107 = Menu"

Este es un cambio temporal.

Puede hacer que esto sea permanente agregando este comando a / etc / profile y se ejecutará cada vez que inicie y será un cambio permanente.

Puntero nulo
fuente
1

Recientemente adquirí un Lenovo E550 y tuve el mismo problema, lo resolví usando xte(from xautomation) junto con xmodmap.

¿Por qué las otras respuestas no funcionarán por completo?

  1. La respuesta @Ed Villegas (ni @Null Pointer ) no funcionará porque algunas de las teclas ubicadas sobre la parte numérica no son teclas únicas por sí mismas ( por ejemplo, la tecla de bloqueo está relacionada con la combinación Super+ L). Cuando xevse usa para tratar de encontrar el código clave de la tecla de bloqueo, devuelve Superlos Lcódigos de tecla y , solo tiene que interpretar la xevsalida línea por línea.

  2. Para @Bahax y @John Finegan : Shift+ F10es una tecla de menú contextual, no funciona en todas las aplicaciones y no proporciona las mismas funciones que Menu. Si selecciona un archivo en el explorador de archivos y presiona Menuel menú contextual para que el archivo en sí aparezca, esto no sucede con la combinación Shift+ F10, sino que proporcionaría un menú contextual para la ventana.

  3. @Danial Behzadi adopta un enfoque similar para las personas en el segundo elemento, pero al vincular la combinación de teclado a una tecla a través de un simulador de pulsación de tecla, vinculará la tecla al Shift+ F10y proporcionará el mismo resultado.

La respuesta que funciona

Es importante tener en cuenta que la tecla que no está presente en el teclado ThinkPad es Menu(es decir, su nombre), se muestra en la siguiente imagen:

Tecla de menu

Aunque la clave no está presente, su código clave debe existir en su computadora, puede encontrarlo imprimiendo la tabla de códigos clave con la xmodmap -pke | grep Menuque debería obtener algo como:

salida de xmodmap

Con eso en mente, instale xautomation(para usar xtepara simulaciones de pulsaciones de teclas) como en la respuesta de @Danial Behzadi :

sudo apt-get install xautomation

Y cree un acceso directo personalizado, en el disparador presione la tecla que desea que sea el acceso directo, y en el Actionpegado xte 'key Menu'. Aplicar y probar.

Hans
fuente