"Metric" analog watchface for Garmin devices.
(obviously a joke)
| .claude | ||
| resources | ||
| source | ||
| .gitignore | ||
| CLAUDE.md | ||
| IMPROVEMENT_IDEAS.md | ||
| manifest.xml | ||
| monkey.jungle | ||
| PLAN-decimal-watchface.md | ||
| README.md | ||
Decimal Day Progress Watchface
A novelty Garmin watchface that displays time as decimal day progress (French Revolutionary Time style) instead of traditional 12/24 hour format!
Concept
Instead of the traditional 12-hour clock, this watchface divides the day into 10 equal parts and displays your progress through the day as a decimal number from 0 to 10.
Time Conversions
- Midnight (00:00) → 0.0
- 6:00 AM → 2.5
- Noon (12:00) → 5.0
- 6:00 PM → 7.5
- End of day (24:00) → 10.0
Features
- Analog watchface with 10 divisions (0-9)
- Rotating red hand showing current day progress
- Digital decimal time display
- Clean, minimalist design
- Supports most modern Garmin devices
Building the Watchface
Prerequisites
- Garmin Connect IQ SDK - Download from developer.garmin.com
- Java Development Kit (JDK) - OpenJDK recommended
- Visual Studio Code (optional but recommended)
- Garmin Monkey C Extension for VS Code (optional)
Build Methods
Method 1: Using Visual Studio Code
- Open this folder in VS Code
- Ensure the Monkey C extension is installed
- Press the play button in the toolbar
- Select your target device from the simulator
Method 2: Using Command Line
If you have the SDK installed and $SDK_PATH set:
# Build for simulator
$SDK_PATH/bin/monkeyc \
-o DecimalWatchFace.prg \
-f monkey.jungle \
-y $SDK_PATH/bin/developer_key
# Run in simulator
$SDK_PATH/bin/connectiq
Method 3: Using monkeybrains (if available)
monkeybrains build
monkeybrains run
Deploying to a Real Device
- Build the
.prgfile using one of the methods above - Connect your Garmin device via USB
- Copy the
.prgfile to theGARMIN/APPSfolder on your device - Safely disconnect the device
- The watchface should now be available in your watchface selection menu
Project Structure
MetricWatchFace/
├── manifest.xml # App configuration
├── monkey.jungle # Build configuration
├── source/
│ ├── DecimalWatchFaceApp.mc # Application entry point
│ └── DecimalWatchFaceView.mc # Main watchface logic
└── resources/
├── drawables/
│ ├── drawables.xml # Drawable resources
│ └── launcher_icon.png # App icon (placeholder)
└── strings/
└── strings.xml # String resources
How It Works
The watchface calculates decimal time using the formula:
decimalTime = (hours + minutes/60 + seconds/3600) / 24 * 10
This value (0.0 to 10.0) is then displayed:
- Graphically via a rotating red hand on an analog face
- Digitally as a decimal number at the bottom of the screen
Supported Devices
This watchface supports a wide range of Garmin devices including:
- Fenix series (5, 5 Plus, 6, 7)
- Forerunner series (245, 645, 945, 955)
- Vivoactive series (3, 4)
- Venu series (1, 2, 2 Plus)
See manifest.xml for the complete list.
Notes
- The launcher icon is currently a placeholder - you can replace it with your own PNG image
- The watchface uses a simple black background with white/red elements
- Updates occur every second when active to show smooth hand movement
Future Enhancements
Potential improvements:
- Add date display
- Battery indicator
- Step count or other fitness metrics
- Customizable colors via settings
- Different hand styles
- AMOLED-optimized always-on mode
License
This is a fun/joke project - feel free to use and modify as you wish!