mirror of
https://github.com/FujiwaraChoki/timezony.git
synced 2026-04-26 22:15:50 +03:00
A delightful macOS menu bar app for tracking multiple timezones
- Replace sheet presentation with inline view switching (sheets don't work well in MenuBarExtra popovers) - Add proper "Back" button navigation - Add hover indicator on timezone items showing + icon - Fix dismiss behavior that was closing entire app Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| Timezony | ||
| Timezony.xcodeproj | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| icon.png | ||
| LICENSE | ||
| README.md | ||
| screenshot.png | ||
Timezony
A delightful macOS menu bar app for tracking multiple timezones
Features
Visual Time Bars
Beautiful 24-hour gradient bars showing day/night cycles at a glance. Instantly see if it's daytime or nighttime in any timezone.
Time Converter
Need to schedule a call across timezones? Enter any time, select its timezone, and see what time that is everywhere else.
Clean Menu Bar Experience
Lives quietly in your menu bar with no Dock icon. Click to open, click away to close.
Effortless Management
- Search and add any timezone by city name
- Drag to reorder your timezones
- Hover to reveal delete button
- Persists your preferences automatically
Screenshot
Installation
Download
Download the latest release from the Releases page.
Build from Source
Requirements:
- macOS 14.0 (Sonoma) or later
- Xcode 15.0 or later
# Clone the repository
git clone https://github.com/FujiwaraChoki/timezony.git
cd timezony
# Open in Xcode
open Timezony.xcodeproj
# Or build from command line
xcodebuild -project Timezony.xcodeproj -scheme Timezony -configuration Release build
Usage
- Launch Timezony - The app appears in your menu bar (clock icon)
- Click the icon - Opens the timezone panel
- Add timezones - Click the
+button to search and add cities - Convert times - Expand "Convert Time" to see times across all zones
- Reorder - Drag timezones to arrange them
- Remove - Hover over a timezone and click the
×button
Default Timezones
Timezony comes pre-loaded with:
- New York (America/New_York)
- London (Europe/London)
- Tokyo (Asia/Tokyo)
Architecture
Timezony/
├── TimeZonyApp.swift # App entry point with MenuBarExtra
├── Models/
│ └── SavedTimezone.swift # Timezone data model
├── ViewModels/
│ └── TimezoneManager.swift # State management & persistence
├── Views/
│ ├── ContentView.swift # Main popover view
│ ├── TimezoneRowView.swift # Individual timezone display
│ ├── TimeBarView.swift # Visual 24h gradient bar
│ ├── TimeConverterView.swift # Time conversion panel
│ └── AddTimezoneView.swift # Search & add timezones
└── Utilities/
└── Extensions.swift # Helpers & color palette
Tech Stack
- SwiftUI - Native declarative UI
- MenuBarExtra - Modern menu bar API (macOS 13+)
- @Observable - Swift 5.9 observation framework
- TimelineView - Efficient per-second updates
- UserDefaults - Lightweight persistence
Color Palette
| Color | Hex | Usage |
|---|---|---|
| Midnight | #1A1A2E |
Night time gradient |
| Dawn | #FF7E5F |
Sunrise gradient |
| Daylight | #FEB47B |
Daytime gradient |
| Dusk | #764BA2 |
Sunset gradient |
| Coral | #FF6B6B |
Accent color |
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Setup
# Clone your fork
git clone https://github.com/YOUR_USERNAME/timezony.git
# Open in Xcode
open Timezony.xcodeproj
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built with SwiftUI and love
- Inspired by the need to coordinate across timezones
- SF Symbols for the beautiful icons
Made with ❤️ for remote teams everywhere