Repository navigation
Add macOS support and use the SDK's key names - #1
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds macOS on Apple silicon as a second platform next to Windows, and moves to Macro Deck SDK 3.0.0-beta.17 so both platforms publish exactly the key names the combo editor stores.
macOS hook
Shared core
KeyboardHookholds the platform-neutral half (held keys, combo detection, what a suppressed combo swallows) and picks the backend for the OS. The WindowsWH_KEYBOARD_LLhook moved intoWindows/unchanged in behaviour.Key names from the SDK
MacroDeck.Sdk.Input.NativeKeys(Macro-Deck#1289) and name them withKeyNames, following ADR 0104 from Macro-Deck#1287: letters follow the active layout, digits and punctuation the key position (Minus,IntlBackslash), plusNumpadEnterandNumLock.ßkey isMinuslike in the recorder. On macOS letters go through the active input source, so the Z key on a German Mac isZ.Ctrl,Shift,AltandMeta, because the editor never storesRightCtrlfor event triggers.-,Esc,Cmd, ...) the same way the host's trigger matching does.Build and release
manifest.jsongets anosx-arm64entrypoint and thehost:notificationspermission,macrodeck-build.jsona matching target, and CI also runs onmacos-latest.cli-versionare on 3.0.0-beta.17, the Store's current minimum.Docs
Meta, password fields, keys macOS never reports). AGENTS.md describes the backends and the SDK key lookup.Checklist
dotnet buildanddotnet testpass locally (0 warnings, 63 tests).macrodeck-plugin testpasses against the packed artifact (0 failed).Tested on
ßasMinus, right-hand modifiers, suppression of Ctrl+ß.