@@ -134,6 +134,38 @@ enum OSDControlSource: String, CaseIterable, Identifiable, Defaults.Serializable
134134 }
135135}
136136
137+ enum CalendarSubtitleDisplayMode : String , CaseIterable , Identifiable , Defaults . Serializable {
138+ case alwaysDefault
139+ case alwaysAlternate
140+ case tapToSwitch
141+
142+ var id : String { self . rawValue }
143+
144+ var localizedString : String {
145+ switch self {
146+ case . alwaysDefault:
147+ return NSLocalizedString ( " Always default " , comment: " " )
148+ case . alwaysAlternate:
149+ return NSLocalizedString ( " Always alternate " , comment: " " )
150+ case . tapToSwitch:
151+ return NSLocalizedString ( " Tap to switch " , comment: " " )
152+ }
153+ }
154+ }
155+
156+ enum AlternativeCalendarType : String , CaseIterable , Identifiable , Defaults . Serializable {
157+ case lunar = " Lunar "
158+
159+ var id : String { self . rawValue }
160+
161+ var localizedString : String {
162+ switch self {
163+ case . lunar:
164+ return NSLocalizedString ( " Lunar " , comment: " " )
165+ }
166+ }
167+ }
168+
137169extension Defaults . Keys {
138170 // MARK: General
139171 static let menubarIcon = Key < Bool > ( " menubarIcon " , default: true )
@@ -242,6 +274,10 @@ extension Defaults.Keys {
242274 static let showFullEventTitles = Key < Bool > ( " showFullEventTitles " , default: false )
243275 static let autoScrollToNextEvent = Key < Bool > ( " autoScrollToNextEvent " , default: true )
244276
277+ static let calendarSubtitleDisplayMode = Key < CalendarSubtitleDisplayMode > ( " calendarSubtitleDisplayMode " , default: . alwaysDefault)
278+ static let alternativeCalendar = Key < AlternativeCalendarType > ( " alternativeCalendar " , default: . lunar)
279+ static let calendarIsShowingAlternate = Key < Bool > ( " calendarIsShowingAlternate " , default: false )
280+
245281 // MARK: Fullscreen Media Detection
246282 static let hideNotchOption = Key < HideNotchOption > ( " hideNotchOption " , default: . nowPlayingOnly)
247283
0 commit comments