A beautiful, simple timer/stopwatch for the Pebble smartwatch, now with optimized battery life and more!
Tell it how coarsely to show the time while it is a long way from zero, and it stops redrawing every second - but if you want to take a peek at the exact time, you can. It also runs in the background using the WakeUp API, so there is no need to keep the app open
Also here: touch controls, updated button controls including stopwatch split & edit, independent timer & stopwatch color configuration, an optional instant-start mode, and some bug fixes.
A fork of Timer+ by way of BrianEnders's touch fork.
| Aplite | Basalt | Chalk | Diorite | Emery | Flint | Gabbro |
|---|---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Button | Setting a timer | Counting down | Counting up |
|---|---|---|---|
| Up / Down | Change the selected field | Peek: the exact time for a second | Split: hold the reading while the clock runs on |
| Select | Next field, then start | Pause, with option to edit | Pause, with option to edit |
| Back | Back a field, or leave | Leave | Leave |
| Select, held | Reset to zero | Reset to zero | Reset to zero |
On touch watches the same actions are on the screen (peek and split remain button-only):
| Gesture | Same as | Notes |
|---|---|---|
| Turn the ring left or right | Up / Down | Sets the selected field while the clock is stopped, turning faster covers more |
| Swipe left | Select | Go forward between edit fields, as if dragging the selector |
| Swipe right | Back | Back a field, or leave |
| Hold the middle | Select, held | Reset to zero |
Configured from the Pebble app.
Two settings each switch on a coarser update rate from a threshold outwards, measured on the time remaining counting down and the time elapsed counting up:
| Setting | Effect | Display |
|---|---|---|
10-second updates above |
Redraw every 10 seconds from this far out | 5:3_ |
Minute updates above |
Redraw once a minute from this far out | 5:__ |
Both default to Never, the original once-a-second behaviour. Where they overlap the coarser one takes over, and the settings page switches the 10-second setting to Never to say so.
The progress ring shades the stretch the masked digits could mean, so it never claims to know more than they do. Live seconds always show for the last or first 20 seconds, when paused, or when using up or down buttons to peek (timer) or split (stopwatch).
Off by default. Switched on, timers and stopwatches both start from when you opened the app (with no timer or stopwatch to resume) or from when you reset by long-pressing select.
There is a configurable time window of 5s or 10s; if nothing is pressed within that window after app opening, the stopwatch starts itself. If you do press up, down, or select to begin editing the timer, then you've committed to timer mode. The time you spent editing (or waiting) will automatically be accounted for after the stopwatch or timer starts.
Counting down (timer) and counting up (stopwatch) each get their own accent, both green to start. Only the primary ring color is chosen; the middle and the interval band are shaded from it, so only colors that stay legible when shaded are offered. Color watches only.
If the app is left alone for five minutes it goes back to the watchface on its own, rather than sitting in the foreground costing battery. It costs most on the touch watches, where the screen stays powered for as long as the app is up.
A running timer or stopwatch keeps it open, and that is the only thing that does. Anywhere the clock is stopped it will go: sitting at nothing, a length you dialled but never started, a stopwatch you paused. Nothing is lost when it does, because the app stores where it was on the way out, so opening it again puts back exactly what you left.
Build a .pbw with the pebble CLI:
pebble buildFor formatting and intellisense in VS Code, generate compile_commands.json — redo this whenever
the build configuration changes:
- Install
bear:sudo apt install bear. - Clean, so every command is captured:
pebble clean. mkdir -p build.bear --output build/compile_commands.json -- pebble build.- Run
Show Recommended Extensionsand install the suggestions. - Run
clangd: Restart language server.
This app is other people's work with some of mine on top.
- Timer+ by Ycleptic Studios — the original, and everything that makes it worth using: the progress ring, the scalable digits, the whole design.
- pebble-timer-plus-touch by BrianEnders — the fork that originally introduced touch controls, built on his RotaryKit library, adapted here.
- pebble-timer-quick by jazzabeanie — the fork that originally introduced quick/instant timer or stopwatch counts from app start, which inspired the optional (and differently coded) mode here.
- pebble-instant-timer by howeaj — an entirely different timer that features saving battery by refreshing the display less often than once a second, which inspired the display update settings.
Work on this fork was assisted by Claude Code.
MIT. See LICENSE.md.




