A portable timer-application: simple yet efficient time management tool.
It was hugely inspired by @dziemborowicz's Hourglass app.
Why did I make it:
- to get familiar with Python GUI toolkits (with
tkinterin particular) to be able to utilize this skills in my other projects - to make a proper substitution for Hourglass
What is Hourglass? Click to (un)fold.
It's a countdown timer desctop GUI application for Windows; written on C#; minimalistic in a Unix-way-ish sence.
It looks like this:
Nothing's wrong with it. It's an amazing app. I've being using it for 3+ years.
Though, in my humble opinion, it maybe needs some slight optimization. Its downsides are:
- unreasonably high memory consumption: 70-180 MB, depending on the size of the window I guess
- inefficient GPU usage: up to 30% load on GeForce RTX 2060
- like why it even needs GPU?
- it is used to produce a fancy window flickering background effect when the timer has rang
- like why it even needs GPU?
- a single-file portable app
- resizable window with adaptive UI
- right button click opens a context menu, where you can:
- change UI theme
- change the ring sound
- the application state is saved between sessions (last valid input, UI theme, the dinging sound picked)
- when the timer expires:
- the short dinging sound is played
- the timer window pops up above all the over windows
- the progress bar is also displayed on a taskbar plate, so it's visible even when the app is minimized
Windows 10 is required.
- Download the executable named
secondglass.exe, from the latest release - Run the executable
- Type the time duration in a textbox and press the
start-button (or just Enter). Input examples:10becomes: 10 minutes123or123 mor123minbecomes: 2 hours 3 minutes30sor30 sor30 secbecomes: 30 seconds1h 35mbecomes: 1 hour 35 minutes
- You can pause, restart or abort the timer by pressing
pause,restartandstopbuttons respectively
secondglass.timer— the core-logics of the app (ui-agnostic)secondglass.ui.console— visualization in command linesecondglass.ui.tkbootstrap—tkinter-powered UIsecondglass.progress— working with Windows toolbar indicator
tkbootstrap— givestkintersome attractive appearancecomtypes— grants access to Windows API (to change window toolbar)pygame— plays that dinging sound when the timer ringspyinstaller— packs everything together into a single executable
- Install the dependencies:
- option 1 - if having both
makeandPoetry:- in the project directory execute
make init
- in the project directory execute
- option 2 - if only having
Poetry:- in the project directory execute
poetry install
- in the project directory execute
- option 3 - if having none:
- in the project directory create virtual environment and switch to it
- execute
pip install -r requirements.txt
- option 1 - if having both
- Run the app:
- option 1:
make run - option 2:
poetry run python -m secondglass - option 3:
python -m secondglass
make runormake— run app with Pythonmake lint— launching linters and formaters (mypy,black,isort,flake8)make test— run unit-testsmake build— create an executable in abuildfolder
- this application is licensed under MIT License
- the application icons were created by @paomedia and are licensed under CC0 1.0
- the application sounds belong to a variety of authors:
- LloydEvans09's:
- Light wood — under CC 4.0
- Balsa hit 1.wav — under CC0 1.0
- Wood spin — under CC0 1.0
- spray_can_rattle.wav — under CC NC 4.0
- ArtOrDie's:
- michael_grinnell's:
- Metalic_Ching_Keys_2.wav — under CC0 1.0
- LloydEvans09's:

