feat: better default shortcuts on non-us keyboards (closes #480)

This commit is contained in:
Louis Pontoise authored and lwouis committed 2020-08-04 00:47:01 +09:00
1 parent 28fb5f4afa
commit ea52111c1a
1 file changed
+12 -2
+12 -2
View File
@@ -1,9 +1,12 @@
import Cocoa import Cocoa
import Carbon.HIToolbox.Events import Carbon.HIToolbox.Events
import ShortcutRecorder
let defaults = UserDefaults.standard let defaults = UserDefaults.standard
class Preferences { class Preferences {
static var defaultsDependingOnScreenRatio_ = defaultsDependingOnScreenRatio()
// default values // default values
static var defaultValues: [String: String] = [ static var defaultValues: [String: String] = [
"maxScreenUsage": "80", "maxScreenUsage": "80",
@@ -11,7 +14,7 @@ class Preferences {
"fontHeight": "15", "fontHeight": "15",
"holdShortcut": "⌥", "holdShortcut": "⌥",
"nextWindowShortcut": "⇥", "nextWindowShortcut": "⇥",
"nextWindowShortcut2": "`", "nextWindowShortcut2": keyAboveTabDependingOnInputSource(),
"previousWindowShortcut": "⇧", "previousWindowShortcut": "⇧",
"cancelShortcut": "⎋", "cancelShortcut": "⎋",
"closeWindowShortcut": "W", "closeWindowShortcut": "W",
@@ -49,7 +52,10 @@ class Preferences {
"disableShortcutsBlacklistOnlyFullscreen": "true", "disableShortcutsBlacklistOnlyFullscreen": "true",
"updatePolicy": "1", "updatePolicy": "1",
"crashPolicy": "1", "crashPolicy": "1",
].merging(defaultsDependingOnScreenRatio()) { (_, new) in new } "rowsCount": defaultsDependingOnScreenRatio_["rowsCount"]!,
"minCellsPerRow": defaultsDependingOnScreenRatio_["minCellsPerRow"]!,
"maxCellsPerRow": defaultsDependingOnScreenRatio_["maxCellsPerRow"]!,
]
// constant values // constant values
// not exposed as preferences now but may be in the future, probably through macro preferences // not exposed as preferences now but may be in the future, probably through macro preferences
@@ -174,6 +180,10 @@ class Preferences {
// vertical; tested with 10/16 // vertical; tested with 10/16
return ["rowsCount": "6", "minCellsPerRow": "3", "maxCellsPerRow": "4"] return ["rowsCount": "6", "minCellsPerRow": "3", "maxCellsPerRow": "4"]
} }
static func keyAboveTabDependingOnInputSource() -> String {
return LiteralKeyCodeTransformer.shared.transformedValue(NSNumber(value: kVK_ANSI_Grave)) ?? "`"
}
} }
// MacroPreference are collection of values derived from a single key // MacroPreference are collection of values derived from a single key