> From: Gustavo Noronha Silva <gust...@noronha.dev.br> > > v5 addresses the casting issue pointed out by Akihiko Odaki. > Sorry it took me so long to update the patches, but here > they are! Hopefully we can get them in now ;D > > Btw I also changed my email address slightly (.dev.br > instead of .eti.br). > > ----- > > This series adds two new options to the cocoa display: > > - full-grab causes it to use a global tap to steal system combos > away from Mac OS X, so they can be handled by the VM > > - swap-option-command does what it says on the tin; while that is > something you can do at the Mac OS X level or even supported by > some keyboards, it is much more convenient to have qemu put > Meta/Super and Alt where they belong if you are running a > non-Mac VM > > Both are off by default. For full-grab in particular, it is off also > because unfortunately it needs accessibility permissions for input > grabbing, so it requires more deliberate action by the user anyway. > > Gustavo Noronha Silva (2): > ui/cocoa: capture all keys and combos when mouse is grabbed > ui/cocoa: add option to swap Option and Command > > qapi/ui.json | 22 +++++++++ > qemu-options.hx | 4 ++ > ui/cocoa.m | 129 ++++++++++++++++++++++++++++++++++++++++++++---- > 3 files changed, 146 insertions(+), 9 deletions(-) > > -- > 2.30.1 (Apple Git-130)
I could not make the full-grab feature work. I tried this: ./build/qemu-system-ppc -display cocoa,full_grab=on This is the error message I saw: qemu-system-ppc: -display cocoa,full_grab=on: Parameter 'full_grab' is unexpected The command and option key swapping feature does work. This should be a very useful feature to those with a PC keyboard. I totally suggest that a new menu called Options be made with these features added. This is how it could look like: Options - Full Keyboard Grab - Swap Command and Option Keys Right now the user has to restart QEMU if he or she wants to swap the command and options keys to initiate a full keyboard grab. This is not fun. With a menu the user could change these options while QEMU remains running. This code can be used to add the Options menu: ui/cocoa.m | 137 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 128 insertions(+), 9 deletions(-) diff --git a/ui/cocoa.m b/ui/cocoa.m index 9f72844b07..de85305c7a 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -1655,6 +1755,14 @@ static void create_initial_menus(void) [menuItem setSubmenu:menu]; [[NSApp mainMenu] addItem:menuItem]; + // Options menu + menu = [[NSMenu alloc] initWithTitle:@"Options"]; + [menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Full Keyboard Grab" action:@selector(setFullGrab:) keyEquivalent:@""] autorelease]]; + [menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Swap Command and Option Keys" action:@selector(setSwapOptionCommand:) keyEquivalent:@""] autorelease]]; + menuItem = [[[NSMenuItem alloc] initWithTitle:@"Options" action:nil keyEquivalent:@""] autorelease]; + [menuItem setSubmenu:menu]; + [[NSApp mainMenu] addItem:menuItem]; + // Window menu menu = [[NSMenu alloc] initWithTitle:@"Window"]; [menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"] autorelease]]; // Miniaturize To be able to check and uncheck menu items you could see the method (void)adjustSpeed:(id)sender. Please let me know if there is anything else I could do to help. Thank you.