Stavo cercando di risolvere lo stesso problema per poter utilizzare gli stessi hotkey di Wine come per le normali applicazioni OS X. Nessuna informazione è disponibile da quello che posso dire, quindi la soluzione più semplice è stata trovare il codice sorgente di winemac.drv
. L'importante funzione è macdrv_compute_keyboard_layout()
che fa molti calcoli diversi ma per i tasti modificatori tutto si riduce essenzialmente a prendere valori da default_map
(tutti i tasti modificatori sono contrassegnati come "fissi"). Sfortunatamente, da Wine 1.7.10 non c'è configurabilità qui, quindi i valori della mappa devono essere modificati modificando il file compilato.
Per me il file compilato si trovava sotto /Applications/Wine.app/Contents/Resources/lib/wine/winemac.drv.so
. Generalmente è una buona idea creare una copia del file originale prima di cambiarlo. Hai bisogno di un editor esadecimale per aprirlo. Per prima cosa diamo un'occhiata alle seguenti due righe:
{ VK_RMENU, 0x38 | 0x100, TRUE }, /* kVK_RightCommand */
{ VK_LMENU, 0x38, TRUE }, /* kVK_Command */
In base alla tabella delle chiavi virtuali VK_RMENU
ha il valore 0xA5 e VK_LMENU
il valore 0xA4. In altre parole, la rappresentazione binaria di queste due linee si presenta così:
A5 00 38 01 01 00 00 00
A4 00 38 00 01 00 00 00
Ho trovato questa sequenza di byte all'offset 0x62770, perché le cose su Wine build potrebbero essere leggermente diverse. Vogliamo mappare il tasto Comando su VK_LCONTROL
e VK_RCONTROL
che significa che queste due voci devono essere cambiate in:
A3 00 1d 01 01 00 00 00
A2 00 1d 00 01 00 00 00
Ora vorrei anche mappare il tasto Opzione su Alt perché ho bisogno di un tasto Alt funzionante. Di default entrambi i tasti Opzione sono non mappati, il che significa che sono rappresentati da una sequenza di otto zeri nella tabella e devono essere trovati per posizione. Il tasto Opzione sinistro è la terza voce dopo il comando sinistro, il tasto Opzione destro è la sesta voce dopo il comando sinistro (per me offset rispettivamente 0x62790 e 0x627A8). La prima voce può essere modificata in:
A4 00 38 00 01 00 00 00
E il secondo in:
A5 00 38 01 01 00 00 00
Sì, questi sono i valori originariamente assegnati al tasto Comando. In realtà ho solo modificato la voce per il tasto Opzione sinistro, in questo modo è possibile utilizzare il tasto Opzione destro per produrre caratteri speciali.
Questa non è una grande soluzione, più di un trucco che dovrà essere ripetuto ogni volta che Wine viene aggiornato. Inoltre, la rimappatura del tasto Opzione funziona solo per le scorciatoie da tastiera come Alt-F4 ma non per Alt-F. Comunque, fa il lavoro per ora e in futuro gli sviluppatori di Wine sperano di aggiungere qualche configurazione qui. Ho archiviato la richiesta di modifica corrispondente come bug 35351 .