mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
Update caps lock settings
This commit is contained in:
parent
168dc27af5
commit
776144064f
5 changed files with 56 additions and 5 deletions
|
|
@ -345,6 +345,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
|||
Defaults.Keys.migrateProgressBarStyle()
|
||||
Defaults.Keys.migrateMusicAuxControls()
|
||||
Defaults.Keys.migrateMusicControlSlots()
|
||||
Defaults.Keys.migrateCapsLockTintMode()
|
||||
|
||||
// Initialize idle animations (load bundled + built-in face)
|
||||
idleAnimationManager.initializeDefaultAnimations()
|
||||
|
|
|
|||
|
|
@ -4628,6 +4628,9 @@
|
|||
},
|
||||
"Caps Lock" : {
|
||||
|
||||
},
|
||||
"Caps Lock color" : {
|
||||
|
||||
},
|
||||
"Caps Lock Indicator" : {
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ struct InlineHUD: View {
|
|||
@Default(.showBluetoothDeviceNameMarquee) var showBluetoothDeviceNameMarquee
|
||||
@Default(.enableMinimalisticUI) var enableMinimalisticUI
|
||||
@Default(.showCapsLockLabel) var showCapsLockLabel
|
||||
@Default(.capsLockIndicatorTintMode) var capsLockTintMode
|
||||
@ObservedObject var bluetoothManager = BluetoothAudioManager.shared
|
||||
|
||||
@State private var displayName: String = ""
|
||||
|
|
@ -33,7 +34,7 @@ struct InlineHUD: View {
|
|||
var body: some View {
|
||||
let useCircularIndicator = useCircularBluetoothBatteryIndicator
|
||||
let hasBatteryLevel = value > 0
|
||||
let capsLockAccentColor: Color = Defaults[.capsLockIndicatorUseGreenColor] ? .green : .white
|
||||
let capsLockAccentColor = capsLockTintMode.color
|
||||
|
||||
let baseInfoWidth: CGFloat = {
|
||||
if type == .bluetoothAudio {
|
||||
|
|
|
|||
|
|
@ -2538,6 +2538,7 @@ struct LiveActivitiesSettings: View {
|
|||
@Default(.enableScreenRecordingDetection) var enableScreenRecordingDetection
|
||||
@Default(.enableDoNotDisturbDetection) var enableDoNotDisturbDetection
|
||||
@Default(.focusIndicatorNonPersistent) var focusIndicatorNonPersistent
|
||||
@Default(.capsLockIndicatorTintMode) var capsLockTintMode
|
||||
|
||||
private func highlightID(_ title: String) -> String {
|
||||
SettingsTab.liveActivities.highlightID(for: title)
|
||||
|
|
@ -2647,9 +2648,14 @@ struct LiveActivitiesSettings: View {
|
|||
.disabled(!Defaults[.enableCapsLockIndicator])
|
||||
.settingsHighlight(id: highlightID("Show Caps Lock label"))
|
||||
|
||||
Defaults.Toggle("Use green color for Caps Lock text", key: .capsLockIndicatorUseGreenColor)
|
||||
.disabled(!Defaults[.enableCapsLockIndicator])
|
||||
.settingsHighlight(id: highlightID("Use green color for Caps Lock text"))
|
||||
Picker("Caps Lock color", selection: $capsLockTintMode) {
|
||||
ForEach(CapsLockIndicatorTintMode.allCases) { mode in
|
||||
Text(mode.displayName).tag(mode)
|
||||
}
|
||||
}
|
||||
.pickerStyle(.segmented)
|
||||
.disabled(!Defaults[.enableCapsLockIndicator])
|
||||
.settingsHighlight(id: highlightID("Caps Lock color"))
|
||||
} header: {
|
||||
Text("Caps Lock Indicator")
|
||||
} footer: {
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue