A minimal, custom GUI task tracking app built with PyQt5.
Track your tasks with style — includes toast notifications, autosave to JSON, and a retro-stationery aesthetic.
- Add, check off, and delete tasks
- Task persistence via
tasks.json - Beautiful custom UI with icons and background
- Toast notifications for user feedback
- Cross-platform: Windows, Linux (via PyInstaller)
- Python 3.9+
- PyQt5
- JSON for storage
- PyInstaller (for building executables)
There are multiple ways to install and run Task Tracker depending on your target platform.
This project includes a small installer script (install.sh) to make the app accessible as a normal desktop application.
Install for the current user (no sudo):
./install.shInstall system-wide (will use /usr/local and require sudo):
./install.sh --systemFiles installed by default (user install):
- $HOME/.local/share/task-tracker/ -> application files (copy of
src/) - $HOME/.local/bin/task-tracker -> wrapper script to run the app
- $HOME/.local/share/icons/hicolor/256x256/apps/task-tracker.png -> icon
- $HOME/.local/share/applications/task-tracker.desktop -> desktop entry
Notes:
- If you install system-wide you may need to run
sudo update-desktop-databaseor log out and back in for the menu to refresh. - The installer expects
python3to be available on PATH.
You can build a .deb locally using the provided packaging script or the manual steps below.
Prerequisites:
- dpkg-deb (Debian packaging tools)
- fakeroot (to build without root)
- python3 and
python3-pyqt5installed on target system
Quick build (script):
chmod +x packaging/build_deb.sh
packaging/build_deb.sh 0.1.0Manual build steps (from repo root):
# variables
PKG=task-tracker
VERSION=0.1.0
ARCH=all
OUT="${PKG}_${VERSION}_${ARCH}.deb"
BUILD="$(pwd)/build_package"
# create layout
rm -rf "$BUILD"
mkdir -p "$BUILD/DEBIAN"
mkdir -p "$BUILD/usr/share/$PKG"
mkdir -p "$BUILD/usr/bin"
mkdir -p "$BUILD/usr/share/icons/hicolor/256x256/apps"
mkdir -p "$BUILD/usr/share/applications"
# copy files
cp -r src/* "$BUILD/usr/share/$PKG/"
cp resources/th-1828655096.png "$BUILD/usr/share/icons/hicolor/256x256/apps/${PKG}.png" 2>/dev/null || true
# wrapper
cat > "$BUILD/usr/bin/$PKG" <<'EOF'
#!/bin/sh
exec python3 /usr/share/task-tracker/task-tracker_app.py "$@"
EOF
chmod 755 "$BUILD/usr/bin/$PKG"
# desktop entry
cat > "$BUILD/usr/share/applications/$PKG.desktop" <<EOF
[Desktop Entry]
Name=Task Tracker
Comment=A beautiful little to-do app
Exec=/usr/bin/$PKG
Icon=$PKG
Terminal=false
Type=Application
Categories=Utility;Productivity;
EOF
# control
cat > "$BUILD/DEBIAN/control" <<EOF
Package: $PKG
Version: $VERSION
Section: utils
Priority: optional
Architecture: $ARCH
Depends: python3, python3-pyqt5
Maintainer: Your Name <you@example.com>
Description: A small task tracker app built with PyQt5
A simple to-do application.
EOF
# build with fakeroot
fakeroot dpkg-deb --build "$BUILD" "$OUT"
Install the package:
sudo dpkg -i task-tracker_0.1.0_all.deb
sudo apt-get install -fNotes:
- The packaging script copies
src/into/usr/share/task-trackerinside the package, creates a/usr/bin/task-trackerwrapper, installs the icon (if present) to the hicolor icon path, and adds a desktop entry under/usr/share/applications. - Edit dependencies in
packaging/build_deb.sh(control file) if you need different package names or additional runtime deps. - Consider adding a GitHub Actions workflow to build and publish
.debassets automatically on tags.
You can install Task Tracker with the .deb package:
This project is licensed under the MIT License.