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 .