Skip to content

Fix accidentally changed key mappings#33

Open
mykola-mokhnach wants to merge 1 commit into
stweil:mainfrom
sauce-archives:fix_mapping
Open

Fix accidentally changed key mappings#33
mykola-mokhnach wants to merge 1 commit into
stweil:mainfrom
sauce-archives:fix_mapping

Conversation

@mykola-mokhnach

Copy link
Copy Markdown
Contributor

I was wondering why https://keycode.info/ returns the keycode for Alt instead of Command if the Cmd key is pressed on Mac keyboard. This change should address this problem.

@stweil

stweil commented Jan 19, 2019

Copy link
Copy Markdown
Owner

Thank you. I'll test it soon and then merge your contribution.

@mykola-mokhnach

Copy link
Copy Markdown
Contributor Author

@stweil Thanks. Maybe such mapping was done for a reason, because I see LeftCmdKey=Alt_L in RealVNC client options (and only in this one).

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to correct macOS Command vs Option (Alt/Meta) key handling so that pressing Cmd is identified and forwarded correctly (e.g., as observed via keycode.info).

Changes:

  • Swaps which X11 keysyms (XK_Alt_* vs XK_Meta_*) are treated as Option vs Command when initializing modifier keycodes.
  • Swaps which CGEvent modifier flags (kCGEventFlagMaskAlternate vs kCGEventFlagMaskCommand) are applied when handling XK_Alt_* vs XK_Meta_* key events.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread OSXvnc-server/VNCServer.m
Comment on lines 89 to +92
keyCodeShift = keyTable[XK_Shift_L];
keyCodeOption = keyTable[XK_Meta_L];
keyCodeOption = keyTable[XK_Alt_L];
keyCodeControl = keyTable[XK_Control_L];
keyCodeCommand = keyTable[XK_Alt_L];
keyCodeCommand = keyTable[XK_Meta_L];
Comment thread OSXvnc-server/VNCServer.m
Comment on lines 222 to +225
keyCodeShift = keyTable[XK_Shift_L];
keyCodeOption = keyTable[XK_Meta_L];
keyCodeOption = keyTable[XK_Alt_L];
keyCodeControl = keyTable[XK_Control_L];
keyCodeCommand = keyTable[XK_Alt_L];
keyCodeCommand = keyTable[XK_Meta_L];
Comment thread OSXvnc-server/VNCServer.m
Comment on lines 654 to +657
if (down)
currentModifiers |= kCGEventFlagMaskAlternate;
currentModifiers |= kCGEventFlagMaskCommand;
else
currentModifiers &= ~kCGEventFlagMaskAlternate;
currentModifiers &= ~kCGEventFlagMaskCommand;
Comment thread OSXvnc-server/VNCServer.m
Comment on lines 661 to +664
if (down)
currentModifiers |= kCGEventFlagMaskCommand;
currentModifiers |= kCGEventFlagMaskAlternate;
else
currentModifiers &= ~kCGEventFlagMaskCommand;
currentModifiers &= ~kCGEventFlagMaskAlternate;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants