Skip to main content

trackerkeeper

A frosted, cross-platform PySide6 app base — the shared starter every wolfgang warehaus app is baked from.

trackerkeeper is a fork-and-own starter, not a dependency. Clone it, rename it, delete what you don't need, and build. It solves the cross-platform window chrome, the design system, and the platform scaffolding once — so a new app is mostly its own idea plus a thin layer on top.

It boots to a themed, frosted, frameless window with a live Settings dialog — a blank canvas with the hard parts already done. See docs/PHILOSOPHY.md for the why.

What you get

  • AppWindow — a frosted, frameless main window that's borderless on KDE Wayland and Windows (with the native-frame smooth-resize fix), shapes compositor blur to a rounded self-painted body, and falls back to a near-opaque panel where blur isn't available (never see-through).
  • Design system — a three-family theme (frosted dark/light + solid), accent presets with WCAG-safe glyph contrast, scalable typography tiers, a 4-based spacing/radius scale. Live theme + accent switching, OS-following auto mode.
  • Widget kit — FrostedDialog, the Selector dropdown, IconButton with crisp HiDPI icons, keyboard-nav helpers, a top bar that doubles as the titlebar.
  • Cross-platform scaffolding — platform_compat, threaded async_io, the per-platform backend pattern (autostart / notifications / power), a minimal AppBus signal bus, slim persistent Settings, single-instance.
  • HiDPI done right — PassThrough fractional scaling + device-pixel snapping.
  • Languages for free — Qt translation catalogs wired at boot, plural-aware strings, locale-safe number/date/duration formatting (trackerkeeper.i18n.fmt), RTL-mirrored chrome. See docs/TRANSLATING.md.
  • Accessible by default — every kit control announces to screen readers (a test fails the build on unnamed ones), visible keyboard-focus states, a keyboard path for every mouse path. See docs/ACCESSIBILITY.md.
  • Structured logging — an opt-in rotating file log (~1 MB × 3) in the app's state dir, console noise capped at WARNING, TRACKERKEEPER_LOG=debug to turn it up.
  • Settings migrations — a versioned run-once migration runner (meta/schema_version), so a renamed key never strands an installed user.
  • Credentials store — save_secret/load_secret: OS keyring first, an encrypted per-machine blob (AES-GCM, or DPAPI on Windows) as the fallback — plaintext never touches disk.
  • Second-launch file forwarding — double-click a document while the app is open and the running instance raises + receives it (AppBus.files_received).
  • Update chip — a quiet daily GitHub release check with a dismissable Download / What's-new pill in the top bar; store/AUR builds stay silent.
  • Diagnostics bundle — a "Copy diagnostics" button that snapshots versions, platform, theme/blur state, settings (secrets excluded), and the log tail.

Quick start

git clone https://github.com/wolfgangwarehaus/trackerkeeper.git
cd trackerkeeper
pip install -e .
python -m trackerkeeper          # or: trackerkeeper  (the console script)

Runs straight from a checkout — the flat layout means no install is strictly required (python -m trackerkeeper).

Make it yours

  1. Rename the package + set your identity. Rename the trackerkeeper/ package to your app, then set your identity in one place — trackerkeeper/identity.py (org, app, display_name). It's the single source the QSettings handle, the Qt app/org names, the window title, and the Windows AUMID all read. (Or, for programmatic control, call trackerkeeper.configure(org=…, app=…, display_name=…) once, before importing the app — the font-scale loader reads identity at import time.)
  2. Boot your content. Call trackerkeeper.run_app(lambda window: YourWidget(window)) — it does the full cross-platform boot (identity, blur, HiDPI, single-instance, persisted theme, window geometry, the settings dialog) and shows your content. (Or, for the quickest start, just edit trackerkeeper/app.py::_placeholder.)
  3. Extend the bus. Add your app's signals by subclassing AppBus (trackerkeeper/bus.py); the base stays minimal.
  4. Keep it light. Heavy/native deps (a PDF engine, mpv, …) go in [project.optional-dependencies], never the PySide6-only core.

Layout

trackerkeeper/
  app.py          # main() + the placeholder you replace
  window.py       # AppWindow — the frosted cross-platform chrome
  top_bar.py      # the titlebar / top bar
  settings_dialog.py
  bus.py          # AppBus (signal bus)
  settings.py     # slim QSettings wrapper
  theme.py  design_tokens.py  color_tokens.py  ui_helpers.py   # the design system
  blur/  win_frameless.py  frosted_dialog.py  selector.py  icon_button.py  icons.py
  autostart/  notifications/  power/   # per-platform backend pattern
docs/PHILOSOPHY.md

License

GPL-2.0-or-later (matching the warehaus family). It's a starter you own — feel free to relicense your fork.

Metadata

Release files for trackerkeeper 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trackerkeeper 0.1.2
File Size Uploaded Provenance Actions
trackerkeeper-0.1.2.tar.gz 649.9 kB With provenance Details for trackerkeeper-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for trackerkeeper 0.1.2
File Interpreter ABI Platform Actions
trackerkeeper-0.1.2-py3-none-any.whl Python 3 none any Details for trackerkeeper-0.1.2-py3-none-any.whl

Total release size: 1.0 MB

Release files / trackerkeeper-0.1.2.tar.gz

Download URL trackerkeeper-0.1.2.tar.gz
Size 649.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7dc51e10615039b38f7fd6f6e002f8e77368c19d5fe788e52b4f1c684d230642
BLAKE2b-256 checksum
How to use checksums
b9945016ffb229357b725560475c42c0c89bae848acda7a31a30ac970a02a7ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 26, 2026.

Transparency log

Release files / trackerkeeper-0.1.2-py3-none-any.whl

Download URL trackerkeeper-0.1.2-py3-none-any.whl
Size 371.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
82549436621ca70fa3d992811d8feaa8114c66d493d4523e6ae2f0fdcc53a001
BLAKE2b-256 checksum
How to use checksums
7e2efc7815a7055edea4b57c86e55f4b9b2abbb3916344e7bccd1c31bea0a329
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 26, 2026.

Transparency log

Security for trackerkeeper 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for trackerkeeper-0.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page