Update caps lock settings

This commit is contained in:
Hariharan Mudaliar 2026-01-08 23:22:49 +05:30
commit 776144064f
No known key found for this signature in database
GPG key ID: 025583EB0BE5640E
5 changed files with 56 additions and 5 deletions

View file

@ -191,6 +191,36 @@ enum SneakPeekStyle: String, CaseIterable, Identifiable, Defaults.Serializable {
var id: String { self.rawValue }
}
enum CapsLockIndicatorTintMode: String, CaseIterable, Identifiable, Defaults.Serializable {
case green
case accent
case white
var id: String { rawValue }
var displayName: String {
switch self {
case .green:
return "Green"
case .accent:
return "Accent"
case .white:
return "White"
}
}
var color: Color {
switch self {
case .green:
return .green
case .accent:
return .accentColor
case .white:
return .white
}
}
}
enum ProgressBarStyle: String, CaseIterable, Identifiable, Defaults.Serializable {
case hierarchical = "Hierarchical"
case gradient = "Gradient"
@ -740,7 +770,9 @@ extension Defaults.Keys {
// MARK: Caps Lock Indicator
static let enableCapsLockIndicator = Key<Bool>("enableCapsLockIndicator", default: true)
static let capsLockIndicatorUseGreenColor = Key<Bool>("capsLockIndicatorUseGreenColor", default: false)
static let capsLockIndicatorUseGreenColor = Key<Bool>("capsLockIndicatorUseGreenColor", default: false) // Legacy toggle
static let capsLockIndicatorTintMode = Key<CapsLockIndicatorTintMode>("capsLockIndicatorTintMode", default: .white)
static let didMigrateCapsLockTintMode = Key<Bool>("didMigrateCapsLockTintMode", default: false)
static let showCapsLockLabel = Key<Bool>("showCapsLockLabel", default: true)
// MARK: ImageService
@ -793,6 +825,14 @@ extension Defaults.Keys {
normalizeMusicAuxControls()
}
static func migrateCapsLockTintMode() {
guard Defaults[.didMigrateCapsLockTintMode] == false else { return }
let legacyGreen = Defaults[.capsLockIndicatorUseGreenColor]
Defaults[.capsLockIndicatorTintMode] = legacyGreen ? .green : .white
Defaults[.didMigrateCapsLockTintMode] = true
}
static func migrateMusicControlSlots() {
guard Defaults[.didMigrateMusicControlSlots] == false else { return }