Skip to content

A fan recreation of Kojima Productions' OtaClock for modern macOS.

Notifications You must be signed in to change notification settings

rakazirut/OtaClock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

OtaClock

A fan recreation of Kojima Productions' OtaClock for modern macOS.

The original OtaClock was a desktop companion widget featuring Otacon from Metal Gear Solid, released by Konami around 2006 as a bonus for purchasers of Metal Gear Acid 2 and Metal Gear Solid 3: Subsistence. It was originally developed for internal use by the Kojima Productions development team. The original download links from Konami are long dead and the app is incompatible with modern operating systems.

This project is a reimplementation built with SwiftUI, reverse-engineered from the original app's assets and behavior. It recreates the core experience -- a transparent, always-on-top animated character with a clock speech bubble -- and adds modern features like multi-alarm scheduling and a Pomodoro timer.

Features

Clock Widget

  • Floating transparent widget with date, time, and day of week
  • Draggable to any position on screen
  • Visible across all spaces/desktops
  • Adjustable opacity (20%-100%) via menu bar slider

Alarm System

  • Up to 5 simultaneous alarms
  • Repeat scheduling: Once, Weekdays, Weekends, Every Day, or custom days
  • Enable/disable individual alarms without deleting
  • One-time alarms auto-delete after triggering
  • Auto-stop after 5 minutes if unattended
  • Full character animation + flash effect when ringing
  • Right-click the speech bubble to manage alarms

Pomodoro Timer

  • Classic work/break cycle with long breaks
  • Configurable durations (default 25/5/15)
  • Presets: Classic (25/5/15) and Long (40/10/20)
  • Live countdown in widget badge and menu bar
  • Color-coded indicator: red for work, green for break
  • Sound notification on phase completion
  • Start, pause, skip, and reset controls

Menu Bar

OtaClock
─────────────────────────
Pomodoro: Working 23:45
  Pause
  Skip
  Reset
  Settings...
─────────────────────────
Alarms:
  ● 9:30 AM (Weekdays)
  ○ 2:00 PM (Once)
─────────────────────────
Add Alarm...
Stop Alarm
─────────────────────────
Opacity  [====●────]
─────────────────────────
Quit                  ⌘Q

Interactions

Action Result
Drag widget Move to new position
Right-click speech bubble Open alarm manager
Click widget (while alarm ringing) Stop alarm
Menu bar icon Access all controls

Project Structure

OtaClock/
├── OtaClockApp.swift       # App entry, managers (Alarm, Pomodoro, Settings), AppDelegate
├── ContentView.swift        # Widget UI, sprite animation, clock display
├── AlarmPickerView.swift    # Alarm creation/editing with day scheduling
├── AlarmManagerView.swift   # Alarm list management
├── Assets.xcassets/         # Sprite sheet, speech bubble, app icon
├── sound1.mp3               # Pomodoro completion sound
├── sound2.mp3               # Alarm sound
└── Info.plist               # App config (LSUIElement for menu bar only)

Building

  1. Open OtaClock.xcodeproj in Xcode
  2. Build and run (Cmd+R)
  3. The widget appears in the top-right corner; the clock icon appears in the menu bar

To create a standalone app bundle: Product > Archive > Distribute App > Copy App

Requirements

  • macOS 13.0+
  • Xcode 15.0+

Character Animation

The pixel-art character has two animation modes:

  • Idle: Stands with occasional blinking
  • Alarm: Full 5-frame animation loop until dismissed

About

A fan recreation of Kojima Productions' OtaClock for modern macOS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages