/tick

A shortcut-first countdown timer for streams, webinars, or any reverse time-keeping needs.

Tick is shortcut-first countdown timer for your streams (e.g. OBS browser source), webinars (e.g. Zoom’s screen share), or any reverse time-keeping needs.

Screenshot of /tick’s counting down at 59 seconds

How to use

This is a single HTML file with no depedencies other than requiring JavaScript to be enabled, so if you wish to use this tool offline, then simply save it (Windows: Ctrl + S, MacOS: Command + S) to your device, and open it with your browser (Firefox, Chrome etc).

Always be cautious of scripts you find available online: open them in a text editor and inspect what they do.

Options

The toolbar provides access to the manual for quick reference to mouse and keyboard shortcuts, and quick access to important toggles (sound, theme, fullscreen), timer reset, and three presets (5, 10, 25 minutes). It first appears at the bottom-right and hides itself after a few moments. Tap or hover your mouse over this area to reveal it. You may not add or subtract from the timer when paused.

Touch controls

  • Tap once on the timer or label to start, if not already started. Tap again to pause or un-pause.
  • Tap once to reset and stop the timer, if overtime.
  • Double Tap anywhere to go into fullscreen.
  • Swipe up 👆 to add 10 minutes to the timer.
  • Swipe down 👇 to subtract 5 minutes from the timer.
  • Swipe left 👈 to add 1 minute.
  • Swipe right 👉 to subtract 1 minute.

Mouse controls

  • Click once on the timer or label to start, if not already started. Click again to pause or un-pause.
  • Click once to reset and stop the timer, if overtime.
  • Double Click anywhere to go into fullscreen.
  • Scroll up to add 1 minute.
  • Scroll down to subtract 1 minute.

Keyboard shortcuts

  • Enter to start at 10 minutes. Will subsequently restart the timer.
  • Space to start at 10 minutes, or pause if started, or restart at 10 minutes if into overtime.
  • Up arrow to add 10 minutes to the timer.
  • Down arrow to subtract 5 minutes from the timer.
  • Left arrow to add 1 minute.
  • Right arrow to subtract 1 minute.
  • Page Up to go into fullscreen mode. Page Up or Esc to exit fullscreen.
  • Page Down to toggle the theme between dark (default) and light.
  • End to reset and stop the timer.
  • Insert to toggle sound mode: automatically play a bell sound when the timer goes into overtime. Off by default.
  • ` to play a bell sound on demand.
  • Delete or Backspace to delete the current label and replace with text input. The label is dimmed when in edit more. Enter or Esc to confirm and exit edit mode.
  • Home to display the manual. Home or Esc when the manual is open to hide it.

URL parameters

Define a custom default timer, by specifying the mins URL parameter. For example, …/tick.html?mins=25 will make the timer start at 25 minutes ( pomodoro).

Future improvements (maybe)

  • Screen Wake on fullscreen mode.
  • Simple webworker and Manifest to allow saving as an app on mobile devices.
  • Add an inline Web Worker timer to increase accuracy.
  • No option to add or remove minutes in touch devices.
    • a) Add simple gestures left/right and up/down.
    • b) Add ◀ buttons ▶ on either side of the timer, only on hover.
  • Split minutes over 60 into hours.
  • URL Get params URLSearchParams(window.location.search)
    • a) to define initial timer (defaults at 10 minutes)
    • b) modify theme colors.
    • c) text label
  • Sound option (three-state toggle) to ring bell every minute, if overtime.
  • Display (bottom left) an overall timer that doesn’t reset.
  • Code comments.
  • Long-click or long-press to play bell sound on demand.
  • Key buffer (numerals only) to modify timer minutes directly.
  • Keep seconds intact when adding or subtracting minutes from or into overtime. Keeps the visual flow undisturbed.
  • Control panel or sync to other windows with BroadcastChannel (such as Speech Countdown Timer)
  • Local storage to remember theme and sound options.
  • Implement theming settings compatible with /valgrind.
  • Considering hundredrabbits / Themes simple theme framework; convert current themes.

Point of view

Single page; no external assets; no build systems; functional vanilla JavaScript. Pull requests welcome if they don’t deviate from these principles or alter coding style.

Etymology

A tick is an atomic unit used to define system time in computing. It is also a hematophagous parasitic insect that affects humans and other animals.

Credits


© 2022 Heracles Papatheodorou a.k.a @Arty2, MIT Licence