2 votes

Raccourci clavier utilisant 'Mac Driver' dans Wine.

Je voudrais faire correspondre la touche Commande à la touche Contrôle, mais que cela ne soit effectif que lors de l'exécution d'une application Wine utilisant le nouveau 'Mac Driver', pas X11. J'ai essayé de modifier le registre, mais je ne sais pas ce que je fais et Google ne m'a pas beaucoup aidé.

Pas de logiciel tiers ! Je ne veux pas entendre parler de quelque chose comme KeyRemap4MacBook.

1voto

Wladimir Palant Points 631

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 .

0voto

emendelson Points 154

La réponse de Wladimir (et l'aide qu'il a fournie sur son propre site) a facilité la création d'une copie modifiée du code source, de sorte que le pilote Mac associe la touche Alt à la touche Option et la touche Win à la touche Cmd, ainsi qu'une copie corrigée du fichier winemac.drv.so. Plus de détails ici :

http://www.columbia.edu/~em36/cartes-de-vin.html

Tout le mérite revient à Wladimir. J'ai juste rassemblé les informations qu'il a fournies.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X