sketchybar: meetingbar
If there are multiple upcoming meetings at the same time, show the
shorter one.
change zvxyzuovuytonqqyuxnxsvlnnnmmqnzl
commit 99061afcc8036f45f7af4a68d69043635f77c75f
author Alpha Chen <alpha@kejadlen.dev>
date
parent nvuuqnmp
diff --git a/.config/sketchybar/meetingbar.swift b/.config/sketchybar/meetingbar.swift
index 717c184a..880c9822 100755
--- a/.config/sketchybar/meetingbar.swift
+++ b/.config/sketchybar/meetingbar.swift
@@ -96,7 +96,20 @@ class MeetingBar {
         let events = eventStore.events(matching: predicate).filter { !$0.isAllDay }
 
         let currentMeeting = events.first(where: { currentDate >= $0.startDate && currentDate <= $0.endDate })
-        let nextMeeting = events.first(where: { $0.startDate > currentDate })
+
+        // Find all events starting after current time
+        let upcomingEvents = events.filter { $0.startDate > currentDate }
+        // If multiple events start at the same time, pick the shortest one
+        let nextMeeting = upcomingEvents.min { first, second in
+            if first.startDate == second.startDate {
+                // Same start time, compare durations
+                let firstDuration = first.endDate.timeIntervalSince(first.startDate)
+                let secondDuration = second.endDate.timeIntervalSince(second.startDate)
+                return firstDuration < secondDuration
+            }
+            // Different start times, pick the earlier one
+            return first.startDate < second.startDate
+        }
 
         // No current meeting, show next meeting if available
         guard let current = currentMeeting else {
diff --git a/.config/sketchybar/sketchybarrc b/.config/sketchybar/sketchybarrc
index 5f95922b..3e532874 100755
--- a/.config/sketchybar/sketchybarrc
+++ b/.config/sketchybar/sketchybarrc
@@ -114,7 +114,6 @@ sketchybar --add item datetime right \
            # --set meetingbar \
            #       icon=􀉉 \
            #       icon.padding_right=8 \
-           #       label.y_offset=2 \
            #       update_freq=120 \
            #       script="$PLUGIN_DIR/meetingbar.sh"