Atajo de teclado usando 'Mac Driver' en WINE

2

Me gustaría asignar la tecla Comando a la tecla Control, pero es efectivo solo mientras se ejecuta una aplicación WINE utilizando el nuevo 'Controlador de Mac', no X11. Intenté una edición del registro pero no sé lo que estoy haciendo y Google no ha sido de mucha ayuda.

No hay software de terceros! No quiero escuchar nada como KeyRemap4MacBook.

    
pregunta Oakman 04.11.2013 - 02:52

2 respuestas

1

Estaba buscando resolver el mismo problema para usar las mismas teclas de acceso rápido dentro de Wine que para las aplicaciones OS X normales. No hay información disponible sobre lo que puedo decir, por lo que la solución más fácil fue encontrar el código fuente winemac.drv . La función importante es macdrv_compute_keyboard_layout() , que realiza muchos cálculos, pero para las teclas modificadoras, todo se reduce a tomar valores de default_map (todas las teclas modificadoras están marcadas como "fijas"). Desafortunadamente, a partir de Wine 1.7.10 no hay configurabilidad aquí, por lo que los valores del mapa deben cambiarse modificando el archivo compilado.

Para mí, el archivo compilado estaba ubicado en /Applications/Wine.app/Contents/Resources/lib/wine/winemac.drv.so . En general, es una buena idea crear una copia del archivo original antes de cambiarlo. Necesitas un editor hexadecimal para abrirlo. Primero echemos un vistazo a las siguientes dos líneas:

{ VK_RMENU,                 0x38 | 0x100,   TRUE },     /* kVK_RightCommand */
{ VK_LMENU,                 0x38,           TRUE },     /* kVK_Command */

De acuerdo con la tabla de teclas virtuales VK_RMENU tiene el valor 0xA5 y VK_LMENU el valor 0xA4. En otras palabras, la representación binaria de estas dos líneas se ve así:

A5 00 38 01 01 00 00 00
A4 00 38 00 01 00 00 00

Encontré esta secuencia de bytes en el desplazamiento 0x62770, ya que las compilaciones de Wine pueden ser ligeramente diferentes. Queremos asignar la clave de comando a VK_LCONTROL y VK_RCONTROL , lo que significa que estas dos entradas deben cambiarse a:

A3 00 1d 01 01 00 00 00
A2 00 1d 00 01 00 00 00

Ahora también me gustaría asignar la tecla Opción a Alt porque necesito una tecla Alt que funcione. Por defecto, ambas teclas de opción están sin asignar, lo que significa que están representadas por una secuencia de ocho ceros en la tabla y deben encontrarse por posición. La tecla de opción izquierda es la tercera entrada después del comando izquierdo, la tecla de opción derecha es la sexta entrada después del comando izquierdo (para mí, desplazamiento 0x62790 y 0x627A8 respectivamente). La primera entrada se puede cambiar en:

A4 00 38 00 01 00 00 00

Y el segundo en:

A5 00 38 01 01 00 00 00

Sí, estos son los valores asignados originalmente a la tecla Comando. En realidad, solo cambié la entrada de la tecla de opción izquierda, de esta manera la tecla de opción derecha todavía se puede utilizar para producir caracteres especiales.

Esta no es una gran solución, es más un hack que se repetirá cada vez que se actualice Wine. Además, la reasignación de la tecla Opción solo funciona para los atajos de teclado como Alt-F4, pero no para Alt-F. Aún así, hace el trabajo por ahora y, en el futuro, los desarrolladores de Wine agregarán algunas configuraciones aquí. Presenté la solicitud de cambio correspondiente como error 35351 .

    
respondido por el Wladimir Palant 09.01.2014 - 14:52
0

La respuesta de Wladimir (y otra ayuda que brindó en su propio sitio) hizo que sea fácil armar una copia modificada del código fuente, de modo que el controlador de Mac asigne la tecla Alt a la tecla Opción y la tecla Win al Cmd clave, más una copia parcheada del archivo winemac.drv.so. Detalles aquí:

enlace

Todo el crédito es para Wladimir. Acabo de reunir la información que él proporcionó.

    
respondido por el emendelson 13.04.2014 - 18:51

Lea otras preguntas en las etiquetas