Skip to content

Ri5ha6h/homebrew-tzmate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tzmate app

tzmate is a lightweight native macOS menu bar app for checking your local time alongside equivalent times across curated world timezones.

Features

  • Menu bar clock that updates every second
  • Convert your local time across curated world timezones
  • Enable or disable timezone presets from Settings
  • Persist timezone preferences with UserDefaults
  • Native SwiftUI + AppKit menu bar experience
  • Lightweight footprint designed to live in the menu bar

Requirements

  • macOS 13.0 (Ventura) or later
  • Xcode 15 or later

Installation

Option 1: Build from Source

  1. Clone the repository:

    git clone <your-repo-url>
    cd <local-folder>
  2. Open the project in Xcode:

    open tzmate.xcodeproj
  3. Build and run the app in Xcode.

Option 2: Command-Line Build

Build a release app bundle from the command line:

./build.sh

The built app is produced at build/Build/Products/Release/tzmate.app.

Option 3: Homebrew Cask

The repository includes a Homebrew cask at Casks/tzmate.rb. Generate the release DMG and update the cask metadata with the release script:

./scripts/release.sh 1.2.0

The script will:

  • update the Xcode marketing version
  • update the app bundle identifier
  • build the app in Release
  • create dist/1.2.0/tzmate-1.2.0.dmg
  • compute the DMG SHA256
  • update the Homebrew cask version, SHA256, homepage, URL, and zap paths

After the script completes, upload the generated DMG to the GitHub release tagged v1.2.0, then commit the updated project, cask, and docs changes.

Installation can then follow the standard pattern:

brew tap <your-username>/tzmate
brew install --cask tzmate

Homebrew tap repositories use the homebrew-<tapname> naming convention, so brew tap Ri5ha6h/tzmate maps to the GitHub repository Ri5ha6h/homebrew-tzmate.

Creating Your Own Homebrew Tap

  1. Create a GitHub repository named homebrew-tzmate.

  2. Add the cask file:

    tzmate/
    └── Casks/
        └── tzmate.rb
    
  3. Update Casks/tzmate.rb:

    • confirm the release url matches your GitHub release asset naming
    • confirm the homepage matches https://github.com/<your-username>/homebrew-tzmate
    • commit the script-updated sha256
    • adjust the zap bundle preference paths if you ship with a different bundle identifier
  4. Push the tap repository to GitHub.

  5. Install via Homebrew:

    brew tap <your-username>/tzmate
    brew install --cask tzmate

The install command uses the tap name tzmate, while the backing GitHub repository is named homebrew-tzmate.

Usage

  1. Launch tzmate.
  2. Click the menu bar clock to open the popover.
  3. Review your local time and enabled timezone rows.
  4. Open Settings to enable or disable additional presets.
  5. Open About to view the app version and summary information.

Available Timezones

  • UTC - Coordinated Universal Time
  • PST - Pacific Time (America/Los_Angeles)
  • EST - Eastern Time (America/New_York)
  • CET - Central European Time (Europe/Paris)
  • GMT - Greenwich Mean Time (Europe/London)
  • IST - India Standard Time (Asia/Kolkata)
  • JST - Japan Standard Time (Asia/Tokyo)
  • AEST - Australian Eastern Time (Australia/Sydney)
  • CST - Central Time (America/Chicago)
  • MST - Mountain Time (America/Denver)
  • HKT - Hong Kong Time (Asia/Hong_Kong)
  • SGT - Singapore Time (Asia/Singapore)

Project Structure

tzmate/
├── tzmate.xcodeproj/
├── tzmate/
│   ├── App/
│   ├── Models/
│   ├── Services/
│   ├── ViewModels/
│   ├── Views/
│   ├── Resources/
│   └── Support/
├── Casks/
│   └── tzmate.rb
├── scripts/
│   └── release.sh
├── build.sh
└── README.md

About

A native swift app to tell time in different zone and more...

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors