@@ -116,6 +116,10 @@ const (
116116 modifierNameCtrl = "ctrl"
117117 modifierNameAlt = "alt"
118118 modifierNameShift = "shift"
119+ modifierDisplayCmd = "Cmd"
120+ modifierDisplayCtrl = "Ctrl"
121+ modifierDisplayAlt = "Alt"
122+ modifierDisplaySuper = "Super"
119123)
120124
121125// Config is the complete application configuration structure.
@@ -167,14 +171,25 @@ type ThemeConfig struct {
167171
168172// GeneralConfig defines general application-wide settings.
169173type GeneralConfig struct {
170- ExcludedApps []string `json:"excludedApps" toml:"excluded_apps"`
171- PassthroughUnboundedKeys bool `json:"passthroughUnboundedKeys" toml:"passthrough_unbounded_keys"`
172- ShouldExitAfterPassthrough bool `json:"shouldExitAfterPassthrough" toml:"should_exit_after_passthrough"`
173- PassthroughUnboundedKeysBlacklist []string `json:"passthroughUnboundedKeysBlacklist" toml:"passthrough_unbounded_keys_blacklist"`
174- HideOverlayInScreenShare bool `json:"hideOverlayInScreenShare" toml:"hide_overlay_in_screen_share"`
175- KBLayoutToUse string `json:"kbLayoutToUse" toml:"kb_layout_to_use"`
176- ExecShell string `json:"execShell" toml:"exec_shell"`
177- ExecShellArgs []string `json:"execShellArgs" toml:"exec_shell_args"`
174+ ExcludedApps []string `json:"excludedApps" toml:"excluded_apps"`
175+ PassthroughUnboundedKeys bool `json:"passthroughUnboundedKeys" toml:"passthrough_unbounded_keys"`
176+ ShouldExitAfterPassthrough bool `json:"shouldExitAfterPassthrough" toml:"should_exit_after_passthrough"`
177+ PassthroughUnboundedKeysBlacklist []string `json:"passthroughUnboundedKeysBlacklist" toml:"passthrough_unbounded_keys_blacklist"`
178+ HideOverlayInScreenShare bool `json:"hideOverlayInScreenShare" toml:"hide_overlay_in_screen_share"`
179+ KBLayoutToUse string `json:"kbLayoutToUse" toml:"kb_layout_to_use"`
180+ ExecShell string `json:"execShell" toml:"exec_shell"`
181+ ExecShellArgs []string `json:"execShellArgs" toml:"exec_shell_args"`
182+ PrimaryModifier PrimaryModifierConfig `json:"primaryModifier" toml:"primary_modifier"`
183+ }
184+
185+ // PrimaryModifierConfig names the modifier a hotkey written with Primary means
186+ // on each platform, so one shared config file can bind Cmd on macOS and Ctrl
187+ // or Super elsewhere. Every platform that is neither darwin nor windows reads
188+ // the linux entry.
189+ type PrimaryModifierConfig struct {
190+ Darwin string `json:"darwin" toml:"darwin"`
191+ Linux string `json:"linux" toml:"linux"`
192+ Windows string `json:"windows" toml:"windows"`
178193}
179194
180195// ModeIndicatorUI defines the visual/appearance settings for the mode indicator.
0 commit comments