A full-featured Pomodoro timer optimized for Even Realities G2 smart glasses. Stay focused with 25-minute work sessions, take strategic breaks, and track your productivityโall displayed clearly on your glasses.
The Pomodoro timer displaying on Even Realities G2 glasses with the minimalist single-line layout
- 25-minute focus sessions with traditional Pomodoro technique
- 5-minute short breaks after each focus session
- 15-minute long breaks every 4 Pomodoros
- Automatic mode switching based on session completion
- Session tracking with daily counters and total focus time
- Minimalist single-line display optimized for G2 glasses (576ร288px)
- R1 ring control for start/pause without touching your phone
- Auto-pause when glasses removed - timer pauses automatically
- Auto-resume when glasses on - seamlessly continue your session
- Real-time sync between phone and glasses display
- Battery level monitoring and wearing detection
- Clean, Even Design System interface following Even OS 2.0 guidelines
- Mode tabs for manual switching (Pomodoro/Short Break/Long Break)
- Visual session counter showing current Pomodoro (#1-#4)
- Daily statistics with completed sessions and total focus minutes
- Detailed event log for debugging and monitoring
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FOCUS 25:00 Start โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Mode Timer Button
(left) (center) (top-right)
During Focus:
FOCUS 25:00 Start
FOCUS 24:59 Pause (when running)
During Short Break:
SHORT BREAK 05:00 Start
SHORT BREAK 04:59 Pause (when running)
During Long Break:
LONG BREAK 15:00 Start
LONG BREAK 14:59 Pause (when running)
- Node.js 20+ (Download)
- Even Realities G2 glasses
- Even Realities app (TestFlight for iOS or APK for Android)
- Same WiFi network for phone and development machine
-
Clone or download this repository
git clone <repository-url> cd even-pomodoro
-
Install dependencies
npm install
-
Start the development server
npm run dev
Server starts on
http://localhost:3000 -
Generate QR code for Even app
npm run qr
-
Scan QR code with Even Realities app
- Open Even Realities app on your phone
- Scan the QR code displayed in terminal
- App loads in WebView on your phone
-
Launch on glasses
- Menu appears on glasses after QR scan
- Use R1 ring to select the Pomodoro app
- Tap to launch - UI appears on glasses
- Single tap on button area (right side) - Start/Pause timer
- That's it! Simple and focused.
- Mode tabs (top) - Switch between Pomodoro/Short Break/Long Break
- Start button - Begin or pause the current session
- Reset button - Stop timer and reset to mode's default duration
-
Start a Focus session (25 minutes)
- Tap Start on glasses or phone
- Timer counts down
- Work without distractions
-
Timer completes โ Automatic switch to Short Break (5 minutes)
- Take a quick break
- Stretch, hydrate, rest your eyes
-
Repeat for 4 Pomodoros total
- Pomodoro #1 โ Short Break
- Pomodoro #2 โ Short Break
- Pomodoro #3 โ Short Break
- Pomodoro #4 โ Long Break (15 minutes)
-
After Long Break โ Cycle restarts at Pomodoro #1
While automatic switching follows the Pomodoro technique, you can manually switch modes using the phone UI tabs:
- Tap "Pomodoro" tab โ 25-minute focus session
- Tap "Short Break" tab โ 5-minute break
- Tap "Long Break" tab โ 15-minute break
Switching modes stops any running timer and resets to the new mode's default duration.
Glasses removed while timer running:
- Timer automatically pauses
- Phone shows: "Auto-paused: Glasses removed"
- State is preserved
Glasses put back on:
- Timer automatically resumes
- Continues from where you left off
- No manual intervention needed
Perfect for bathroom breaks, meetings, or any interruption!
- Session counter resets at midnight (local time)
- Total focus minutes accumulated throughout the day
- Persistent storage via Even Hub localStorage API
- Displayed at bottom of phone UI:
X sessions today (Y min)
- Shows current position in 4-Pomodoro cycle:
#1,#2,#3,#4 - Increments after each short break
- Resets to
#1after long break - Helps you track progress toward your next long break
even-pomodoro/
โโโ index.html # Main app (HTML + CSS + JavaScript)
โโโ app.json # Even Hub app manifest
โโโ package.json # Dependencies and scripts
โโโ README.md # This file
โโโ node_modules/ # Dependencies (after npm install)
npm run dev # Start development server (localhost:3000)
npm run qr # Generate QR code for Even app
npm run pack # Package as .ehpk for Even Hub submission- Even Hub SDK (
@evenrealities/even_hub_sdk) - Glasses WebView integration - Vite - Fast development server with hot reload
- Vanilla JavaScript - No framework dependencies, pure ES6+
- Even Design System - Official Even OS 2.0 design tokens
- FK Grotesk typography with system font fallbacks
State Management:
const state = {
isRunning: boolean, // Timer active state
timeLeft: number, // Seconds remaining
mode: string, // 'focus' | 'shortBreak' | 'longBreak'
currentPomodoroCount: number, // 1-4 tracking position in cycle
completedSessions: number, // Daily completed focus sessions
totalFocusMinutes: number, // Daily focus time accumulator
bridge: object, // Even Hub SDK bridge
glassesInitialized: boolean, // Glasses UI ready state
isWearing: boolean, // Wearing detection
wasRunningBeforeRemoval: boolean // Auto-pause state
}Glasses UI Containers:
- Container 1 (Timer) - xPosition: 228, width: 120 (centered)
- Container 2 (Mode) - xPosition: 20, width: 120 (left)
- Container 3 (Button) - xPosition: 460, width: 100,
isEventCapture: 1(right)
Event Handling:
sysEventtype 3 = R1 click/taptextEvent= Container-specific interactions (if SDK sends them)deviceStatusChanged= Connection, battery, wearing detection
Solution:
- After scanning QR code, check if menu appears on glasses
- Use R1 ring to navigate menu and select Pomodoro app
- Tap to launch - UI should appear on glasses
- Check phone log section for "โ Glasses UI created successfully"
Check:
- Ensure you're clicking on the button area (right side of display)
- Look for log message: "โ R1 click detected (sysEvent type 3)"
- Verify glasses are connected: Status shows "Connected (XX%)"
If still not working:
- Refresh the app (rescan QR code)
- Check for error messages in log
- Ensure Even Realities app is up to date
Solutions:
- Check if
updateGlassesDisplay()appears in log - Verify
state.glassesInitializedis true - Restart the app and reconnect glasses
Explanation:
- Counters reset at midnight (local time) by design
- This follows daily productivity tracking patterns
- Data persists via localStorage as long as app remains open
Ensure:
npm install # Install dependencies first
npm run dev # Server must be running
npm run qr # In a separate terminalAlternative: Use IP address directly
# Find your local IP
ifconfig | grep "inet " | grep -v 127.0.0.1
# Generate QR for: http://YOUR_IP:3000Use Cloudflare Tunnel:
# Install cloudflared
brew install cloudflared
# Start tunnel
npx cloudflared tunnel --url http://localhost:3000
# Copy the https://xxx.trycloudflare.com URL
# Generate QR code from that URLWhen ready to submit to Even Hub:
npm run packCreates even-pomodoro.ehpk file for submission. The .ehpk format bundles:
index.html- Main applicationapp.json- App manifest with metadata- All embedded resources
- Single-line layout prevents visual clutter on glasses
- Only essential information displayed
- Clean, distraction-free focus
- FK Grotesk typography
- Official Even OS 2.0 color tokens
- 6px border radius, 12px/24px spacing
- Accessibility-first design
- Traditional 25/5/15 timing
- 4-Pomodoro cycles before long break
- Automatic mode transitions
- Session tracking and metrics
- Glasses-based mode switching - Tap mode text to cycle modes
- Custom durations - User-configurable session lengths
- Notification sounds - Audio alerts for session completion
- Weekly statistics - 7-day productivity trends
- Task integration - Associate Pomodoros with specific tasks
- Gesture controls - Swipe gestures for additional actions
MIT License - See LICENSE file for details
- Even Realities for the G2 glasses and SDK
- Francesco Cirillo for the Pomodoro Technique
- Pomofocus for design inspiration
Built with โค๏ธ for focused work and smart glasses
