An electron app written in ClojureScript. Integrates with Slack to let people know you are doing great things! Uses reagent for the UI.
- 25 minute pomodoro timer
- Update Slack profile with tomato while pom is in progress
- Send a Slack notification when pomodoro is complete
- Pause Slack notifications while pomodoro is running
- Play a sound when time is up (useful if Slack is not configured)
- Timer visible in tray!
Slack usage is optional, but if configured - your profile will be updated like so:
Tomaat currently relies on legacy-tokens to facilitate a simple text field entry of a slack token. Some day when the sun goes out and Slack deprecates these, then we will look into building a view for authentication.
Tomaat uses lein-figwheel for hot reloading of all
source files. Since Tomaat leverages electron apis across the board - all builds target :nodejs
.
To start development process:
$ lein start
$ lein electron
Note: figwheel requires the ws
node module for node targets. I opted to install this globally:
$ npm install -g ws
All source files are under src/tomaat
, and several build targets are laid out in project.clj
. Tomaat follows
a structure that allows for the main electron process, a renderer process, and a worker process.
The worker process runs as an invisible window for the purpose of running the timer, persisting config, and interacting with slack.
Tomaat is packaged using electron-packager. It has currently only been built and tested on macOS.
Just use make
to build Tomaat.
$ make
- webview for fetching slack token
- test and build for other operating systems