Tapper time is a touchscren Pomodoro for use with Raspberry Pi and eInk display
This code makes a touchscreen eInk to-do list and pomodoro timer for your desk.
- Enter your to-do list in a list making app (like Todoist)
- Set up the Raspberry Pi with your credentials and to-do list ID
- Scroll through your to-do list and select an item
- The Pomodoro timer will count down
- When the timer is finished, you can mark the task as done or not
This project uses the eInk touchscreen with case and a Raspberry Pi Zero WH.
The drivers and demo are available from Waveshare.
Run the following steps on the Raspberry Pi
- Create a fresh SD Card image with Raspbian Lite
- Name the Raspberry Pi
pomodoro
- Log in to the terminal on the Rasbperry Pi
- Using
raspi-config
, enable SPI and I2C - Install pip3
sudo apt-get install libopenjp2-7
sudo apt-get update && sudo apt-get install python3-pip
- Pull the code to your host machine
- Make a copy of
example_config.json
and rename it toconfig.json
- Add your API token and todoist project ID
- Copy the files to your Raspberry Pi
rsync -a --mkpath --exclude-from=.rsync-exclude.txt . [email protected]:~/pomodoro
- Install the specific dependencies
cd /home/pi/pomodoro
pip3 install -r requirements.txt
- Install TapperTime as a service
sudo cp pomodoro.service /etc/systemd/system/pomodoro.service
sudo chmod 644 /etc/systemd/system/pomodoro.service
- Test that the service works
sudo systemctl start pomodoro
sudo systemctl status pomodoro
This project uses the Todoist API to retrieve and close tasks. You can set up the task source to point to other todo list apps, like Google Tasks, although authentication becomes more challenging.
All of the image drawing is handled by Pillow.
Sync the source files to the Raspberry Pi using rsync
.
NOTE: This assumes that your Raspberry Pi is on your network as pomodoro.local
rsync -a --exclude-from=.rsync-exclude.txt . [email protected]:~/pomodoro
Set up the unit test virtual environment
python3 -m venv new env-test
source env-test/bin/activate
pip3 install -r test/requirements.txt
Then run the tests
pytest