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.migrateProgressBarStyle()
|
||||||
Defaults.Keys.migrateMusicAuxControls()
|
Defaults.Keys.migrateMusicAuxControls()
|
||||||
Defaults.Keys.migrateMusicControlSlots()
|
Defaults.Keys.migrateMusicControlSlots()
|
||||||
|
Defaults.Keys.migrateCapsLockTintMode()
|
||||||
|
|
||||||
// Initialize idle animations (load bundled + built-in face)
|
// Initialize idle animations (load bundled + built-in face)
|
||||||
idleAnimationManager.initializeDefaultAnimations()
|
idleAnimationManager.initializeDefaultAnimations()
|
||||||
|
|
|
||||||
|
|
@ -4628,6 +4628,9 @@
|
||||||
},
|
},
|
||||||
"Caps Lock" : {
|
"Caps Lock" : {
|
||||||
|
|
||||||
|
},
|
||||||
|
"Caps Lock color" : {
|
||||||
|
|
||||||
},
|
},
|
||||||
"Caps Lock Indicator" : {
|
"Caps Lock Indicator" : {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ struct InlineHUD: View {
|
||||||
@Default(.showBluetoothDeviceNameMarquee) var showBluetoothDeviceNameMarquee
|
@Default(.showBluetoothDeviceNameMarquee) var showBluetoothDeviceNameMarquee
|
||||||
@Default(.enableMinimalisticUI) var enableMinimalisticUI
|
@Default(.enableMinimalisticUI) var enableMinimalisticUI
|
||||||
@Default(.showCapsLockLabel) var showCapsLockLabel
|
@Default(.showCapsLockLabel) var showCapsLockLabel
|
||||||
|
@Default(.capsLockIndicatorTintMode) var capsLockTintMode
|
||||||
@ObservedObject var bluetoothManager = BluetoothAudioManager.shared
|
@ObservedObject var bluetoothManager = BluetoothAudioManager.shared
|
||||||
|
|
||||||
@State private var displayName: String = ""
|
@State private var displayName: String = ""
|
||||||
|
|
@ -33,7 +34,7 @@ struct InlineHUD: View {
|
||||||
var body: some View {
|
var body: some View {
|
||||||
let useCircularIndicator = useCircularBluetoothBatteryIndicator
|
let useCircularIndicator = useCircularBluetoothBatteryIndicator
|
||||||
let hasBatteryLevel = value > 0
|
let hasBatteryLevel = value > 0
|
||||||
let capsLockAccentColor: Color = Defaults[.capsLockIndicatorUseGreenColor] ? .green : .white
|
let capsLockAccentColor = capsLockTintMode.color
|
||||||
|
|
||||||
let baseInfoWidth: CGFloat = {
|
let baseInfoWidth: CGFloat = {
|
||||||
if type == .bluetoothAudio {
|
if type == .bluetoothAudio {
|
||||||
|
|
|
||||||
|
|
@ -2538,6 +2538,7 @@ struct LiveActivitiesSettings: View {
|
||||||
@Default(.enableScreenRecordingDetection) var enableScreenRecordingDetection
|
@Default(.enableScreenRecordingDetection) var enableScreenRecordingDetection
|
||||||
@Default(.enableDoNotDisturbDetection) var enableDoNotDisturbDetection
|
@Default(.enableDoNotDisturbDetection) var enableDoNotDisturbDetection
|
||||||
@Default(.focusIndicatorNonPersistent) var focusIndicatorNonPersistent
|
@Default(.focusIndicatorNonPersistent) var focusIndicatorNonPersistent
|
||||||
|
@Default(.capsLockIndicatorTintMode) var capsLockTintMode
|
||||||
|
|
||||||
private func highlightID(_ title: String) -> String {
|
private func highlightID(_ title: String) -> String {
|
||||||
SettingsTab.liveActivities.highlightID(for: title)
|
SettingsTab.liveActivities.highlightID(for: title)
|
||||||
|
|
@ -2647,9 +2648,14 @@ struct LiveActivitiesSettings: View {
|
||||||
.disabled(!Defaults[.enableCapsLockIndicator])
|
.disabled(!Defaults[.enableCapsLockIndicator])
|
||||||
.settingsHighlight(id: highlightID("Show Caps Lock label"))
|
.settingsHighlight(id: highlightID("Show Caps Lock label"))
|
||||||
|
|
||||||
Defaults.Toggle("Use green color for Caps Lock text", key: .capsLockIndicatorUseGreenColor)
|
Picker("Caps Lock color", selection: $capsLockTintMode) {
|
||||||
.disabled(!Defaults[.enableCapsLockIndicator])
|
ForEach(CapsLockIndicatorTintMode.allCases) { mode in
|
||||||
.settingsHighlight(id: highlightID("Use green color for Caps Lock text"))
|
Text(mode.displayName).tag(mode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.pickerStyle(.segmented)
|
||||||
|
.disabled(!Defaults[.enableCapsLockIndicator])
|
||||||
|
.settingsHighlight(id: highlightID("Caps Lock color"))
|
||||||
} header: {
|
} header: {
|
||||||
Text("Caps Lock Indicator")
|
Text("Caps Lock Indicator")
|
||||||
} footer: {
|
} footer: {
|
||||||
|
|
|
||||||
|
|
@ -191,6 +191,36 @@ enum SneakPeekStyle: String, CaseIterable, Identifiable, Defaults.Serializable {
|
||||||
var id: String { self.rawValue }
|
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 {
|
enum ProgressBarStyle: String, CaseIterable, Identifiable, Defaults.Serializable {
|
||||||
case hierarchical = "Hierarchical"
|
case hierarchical = "Hierarchical"
|
||||||
case gradient = "Gradient"
|
case gradient = "Gradient"
|
||||||
|
|
@ -740,7 +770,9 @@ extension Defaults.Keys {
|
||||||
|
|
||||||
// MARK: Caps Lock Indicator
|
// MARK: Caps Lock Indicator
|
||||||
static let enableCapsLockIndicator = Key<Bool>("enableCapsLockIndicator", default: true)
|
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)
|
static let showCapsLockLabel = Key<Bool>("showCapsLockLabel", default: true)
|
||||||
|
|
||||||
// MARK: ImageService
|
// MARK: ImageService
|
||||||
|
|
@ -793,6 +825,14 @@ extension Defaults.Keys {
|
||||||
normalizeMusicAuxControls()
|
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() {
|
static func migrateMusicControlSlots() {
|
||||||
guard Defaults[.didMigrateMusicControlSlots] == false else { return }
|
guard Defaults[.didMigrateMusicControlSlots] == false else { return }
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue