Je cherchais à résoudre le même problème afin d'utiliser les mêmes raccourcis dans Wine que pour les applications OS X ordinaires. Aucune information à ce sujet n'est disponible d'après ce que je peux dire, donc la solution la plus simple s'est avérée être de trouver le fichier code source de winemac.drv
. La fonction importante est macdrv_compute_keyboard_layout()
qui effectue un grand nombre de calculs divers, mais pour les touches de modification, tout se résume essentiellement à prendre des valeurs à partir de default_map
(toutes les touches de modification sont marquées comme "fixes"). Malheureusement, à partir de Wine 1.7.10 il n'y a pas de configurabilité ici, donc les valeurs de la carte doivent être changées en modifiant le fichier compilé.
Pour moi, le fichier compilé était situé sous /Applications/Wine.app/Contents/Resources/lib/wine/winemac.drv.so
. C'est généralement une bonne idée de créer une copie du fichier original avant de le modifier. Vous avez besoin d'un éditeur hexadécimal pour l'ouvrir. Examinons d'abord les deux lignes suivantes :
{ VK_RMENU, 0x38 | 0x100, TRUE }, /* kVK_RightCommand */
{ VK_LMENU, 0x38, TRUE }, /* kVK_Command */
Selon le table des clés virtuelles VK_RMENU
a la valeur 0xA5 et VK_LMENU
la valeur 0xA4. En d'autres termes, la représentation binaire de ces deux lignes ressemble à ceci :
A5 00 38 01 01 00 00 00
A4 00 38 00 01 00 00 00
J'ai trouvé cette séquence d'octets à l'offset 0x62770, pour votre Wine build les choses pourraient être légèrement différentes. Nous voulons faire correspondre la clé Command à VK_LCONTROL
y VK_RCONTROL
ce qui signifie que ces deux entrées doivent être transformées en.. :
A3 00 1d 01 01 00 00 00
A2 00 1d 00 01 00 00 00
Maintenant, j'aimerais également faire correspondre la touche Option à la touche Alt, car j'ai besoin d'une touche Alt fonctionnelle. Par défaut, les deux touches Option ne sont pas mappées, ce qui signifie qu'elles sont représentées par une séquence de huit zéros dans la table et qu'elles doivent être trouvées par position. La touche Option de gauche est la troisième entrée après la commande de gauche, la touche Option de droite est la sixième entrée après la commande de gauche (pour moi, respectivement offset 0x62790 et 0x627A8). La première entrée peut être changée en :
A4 00 38 00 01 00 00 00
Et le second dans :
A5 00 38 01 01 00 00 00
Oui, ce sont les valeurs initialement attribuées à la touche Commande. En fait, je n'ai modifié que l'entrée pour la touche Option gauche, de cette façon la touche Option droite peut toujours être utilisée pour produire des caractères spéciaux.
Ce n'est pas une grande solution, plutôt un hack qui devra être répété à chaque fois que Wine sera mis à jour. De plus, le remappage de la touche Option ne fonctionne que pour les raccourcis clavier comme Alt-F4 mais pas pour Alt-F. Néanmoins, cela fait le travail pour le moment et dans le futur, les développeurs de Wine espèrent ajouter une certaine configuration ici. J'ai déposé la demande de changement correspondante en tant que bug 35351 .