Reasignación de la tecla de encendido para eliminar

14

Tengo un macbook pro con Ubuntu 13.10 con FluxBox. Desafortunadamente, el botón de encendido está físicamente sobre el espacio de retroceso donde esperaría que se encuentre la tecla de eliminación. En OS X, el programa PowerKey se puede usar para reasignar la tecla de encendido para eliminar. ¿Cómo puedo hacer algo similar en X Windows?

Desactivé la tecla de encendido editando /etc/systemd/logind.confy configurando HandlePowerKey = ignore Después de esto, puedo presionar el botón de encendido sin apagar la computadora portátil.

La ejecución xev -event keyboardrevela que KeyPress para la tecla de encendido normalmente está siendo consumido por otro proceso:

MappingNotify event, serial 36, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeymapNotify event, serial 36, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

Sin embargo, al ejecutar solo xterm directamente desde la consola, pude obtener con éxito el código clave y reasignar la clave.

xinit /usr/bin/xterm -- :1
xev -event keyboard | tee /tmp/junk.txt
tail -n ???? /tmp/junk.txt
MappingNotify event, serial 28, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 29, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

En este punto, también era posible asignar la clave usando xmodmap. Lo asigné a la barra diagonal inversa, que es más fácil de ver que eliminar:

 xmodmap -e "keycode 124 = backslash bar"

Podría obtener un equivalente apenas funcional para ejecutar agregando esto, ~/.fluxbox/keyspero esto es lo suficientemente feo y lento como para ser inutilizable.

  # Remap the power off to a delete key...
  XF86PowerOff :Exec xdotool key Delete

¿Cómo puedo usar xmodmap o setxkbmap para usar el botón de encendido al mismo tiempo que un administrador de ventanas normal?

Nathan
fuente

Respuestas:

3

No entiendo exactamente la oración final, pregunta, pero puedo relacionarme con el título de la pregunta: "Reasignación de la tecla de encendido para eliminar".

Intente reemplazar cualquier "XF86PowerOff" o solo el correspondiente a su teclado con "Eliminar" en / usr / share / X11 / xkb / symbols / inet.

Debe repetir esto después de una actualización del sistema que actualiza ese archivo.

LyXTeX
fuente
Consulte askubuntu.com/questions/325272/… para más detalles. Esta respuesta debe ser aceptada.
phil294
1

No es una respuesta exacta, pero ¿has intentado presionar fn+ delete? Esto debería actuar como una eliminación real , frente a su acción real de 'retroceso' y está muy cerca de la tecla de encendido.

Otro consejo:

fn+ enteractúa como un botón Insertar , por lo que debería poder presionar shift+ fn+ entery Pegar como un clic central.

Daryl Tucker
fuente
0

Es difícil decirlo con certeza. Estas pueden ser cosas que ya ha probado, pero pueden conducir a una solución fácil.

¿Funciona xmodmap para otras claves, o hay algo que fluxbox está haciendo que está rompiendo xmodmap por completo?

¿Qué sucede si inicia x, modmap la tecla de encendido y luego inicia fluxbox? ¿Se pega el mapeo?

Si se ejecuta antes de xmodmap obras fluxbox y mantiene su configuración, puede escribir un script de shell para llamar tanto en el orden correcto, o si está usando GDM se debe leer ~/.xmodmapo ~/.xmodmaprcautomáticamente para usted antes de fluxbox entra en escena.

Mike Fairhurst
fuente
Sí, xmodmap funciona. En este momento, tengo el comando derecho alternativo y el derecho correlacionados para eliminar e insertar respectivamente usando xmodmap -e "remove mod1 = Alt_L" -e "remove mod4 = Super_L" -e "add mod1 = Super_L" -e "add mod4 = Alt_L "-e" eliminar mod1 = Alt_R "-e" eliminar mod4 = Super_R "-e" keysym Alt_R = Eliminar "-e" keysym Super_R = Insertar "
nathan
¿Puede incluir la salida de xmodmap -pke dentro de fluxbox?
Mike Fairhurst
@nathan, entonces este es el problema de cuándo se ejecuta xmodmap, después de fluxbox o antes. Tuve el mismo problema con wm impresionante
Darek