Skip to content

Releases: awn007-eng/lindoze

v0.3.0 — graph readability

12 Jun 20:06

Choose a tag to compare

Graph readability pass: the sparklines now carry the numbers that give them meaning — per-core clocks, live values, and real axis scales — rendered inside Lindoze's existing dark cards.

Added

  • Per-core clock speed on each logical-processor cell in the CPU grid, next to its utilization trace.
  • Inline current-value readout painted on every graph, color-coded to the page accent — read CPU %, memory %, GPU %, or live throughput at a glance.
  • Axis scale labels: autoscaling Disk/Network graphs show their live ceiling with units (e.g. 247 MB/s).

Changed

  • Disk and Network each render their two directions as a single combined graph with two color-coded traces sharing one y-axis and a legend.
  • GPU Utilization and VRAM graphs gained real scale + value labels.
  • CPU grid cell labels (CPU N + clock) are tinted rose to complement the teal traces; the live % stays teal.

Install: pipx install lindoze · sudo dnf copr enable awn007/lindoze && sudo dnf install lindoze

v0.2.6 — CPU grid aspect cap + GNOME validated

11 Jun 00:24

Choose a tag to compare

The first release validated on a second desktop environment (GNOME on Fedora Workstation), plus a CPU-grid layout fix and a steady-state performance trim.

CPU per-thread grid

  • Per-thread cell size is now capped at 250×200 (aspect ~0.6) so low-core machines on a tall window no longer stretch each sparkline into a skyscraper. The grid centers itself on both axes when its footprint is smaller than the viewport.
  • High-core (32+) layouts are unchanged — they hit column-width-derived sizing, not the cap.

Performance

  • MiniGraph brushes/pens/fonts are cached and rebuilt only on resize; ProcessModel caches fonts, alignment, and group-header colors.
  • The Performance page now early-returns when it isn't the visible tab, skipping ~40 graph pushes + repaints per tick while you're on Processes or Startup. Roughly a 2–3% steady-state CPU drop measured on a Ryzen 7945HX.

Cross-desktop validation

  • Validated on GNOME (Fedora Workstation 44): Processes monospace numerics, Startup icon-theme fallback chain, and CPU narrow-window reflow all render correctly under Cantarell/Adwaita.
  • README claim updated from "tested on KDE" to "Built and tested on KDE Plasma and GNOME (Fedora Workstation); should work on other Qt-capable desktops too."
  • Added GNOME screenshots under docs/screenshots/gnome/.

Install

Fedora / Nobara (Copr):

sudo dnf copr enable awn007/lindoze
sudo dnf install lindoze

Any distro (pipx):

pipx install lindoze
# or
pipx upgrade lindoze

🤖 Generated with Claude Code

v0.2.5 — UX polish pass

10 Jun 11:19

Choose a tag to compare

A polish-focused release driven by an outside-Claude UI/UX review. No new tabs, but the existing ones read a lot better — especially under high core counts, at idle, and on first launch.

CPU per-thread grid

  • Reflows columns on window resize: narrow window → fewer columns, no clipping.
  • Vertical scroll area kicks in when even minimum cell size won't fit.
  • Last partial row is centered under the rows above (32 threads on 7 columns no longer left-clings).
  • Cells have a 100×50 readable floor so labels like CPU 117 won't clip even on Threadripper-class systems.

Processes

  • Numeric columns (PID, CPU %, Memory, Disk, Threads) are right-aligned with a monospace font role — digits and unit suffixes line up vertically, scanning for heavy hitters is faster.
  • Group header rows (User processes (N) / System processes (N)) get a faint teal background tint so they read as section dividers, not just bolder text.

Startup apps

  • Icons paint a fallback placeholder immediately and cache resolved themed icons. No more empty slots flashing on cold theme caches or first-paint screenshots.
  • Empty-state copy rewritten to be friendlier and explain where entries come from.

Sparkline rendering (affects every graph in the app)

  • Whole-cell vertical accent wash — faint at the top, stronger at the baseline — so idle/flat traces have presence instead of feeling like empty boxes.
  • Trace stroke thickened to 1.8px so it reads more confidently.
  • Cell border alpha softened so the per-thread grid looks like 32 quiet cells, not 32 empty boxes.

Window/system polish

  • Window + taskbar icon now resolves via Wayland's setDesktopFileName + a bundled SVG fallback. KWin/Mutter stop showing the generic 'W' fallback.
  • Toolbar buttons (Overall, End task, Refresh, 60s/10min/1hr time-scale) unified via a new shared lindoze/styles.py — same hover, same disabled state, same checked state everywhere.

README

  • Softened the "feels native to KDE / GNOME" claim to "tested on KDE; GNOME visual fit unverified" — matches the rest of the README's honest-limits tone. GNOME testing is on the wishlist.

Install

pipx install lindoze
# or
pipx upgrade lindoze

🤖 Generated with Claude Code

v0.2.4 — PyPI listing polish

09 Jun 19:45

Choose a tag to compare

Metadata-only release. No code changes — fixes the PyPI listing.

Changes

  • README: absolute GitHub raw URLs for screenshots (PyPI doesn't rewrite relative paths, so images now render on pypi.org/project/lindoze).
  • pyproject: expanded [project.urls] with Repository and Bug Tracker so PyPI's sidebar shows project links.

Install:

pipx install lindoze

🤖 Generated with Claude Code

v0.2.3 — Install + CI tooling

09 Jun 19:08

Choose a tag to compare

Tooling release — no user-visible app changes, but the project is much more installable and shippable than it was at v0.2.2.

Install

  • Lindoze is now on PyPI: pipx install lindoze (or pip install lindoze)
  • bootstrap.sh now self-installs the .desktop start-menu entry and bundled SVG icon into the per-user XDG locations. Idempotent — safe to re-run. No more manual icon/desktop-entry setup after git clone.
  • packaging/lindoze.desktop uses an @EXEC_PATH@ substitution token and the bundled icon — no more hard-coded paths.

CI

  • New GitHub Actions workflow runs pytest matrix on Python 3.10/3.11/3.12 + ruff lint on every push and pull request
  • ruff config is select=["F"] only (pyflakes/real-bug rules), so the compact x = Foo(); x.setBar(...) widget-construction style stays intact

Releases

  • New Trusted Publishing workflow auto-publishes future releases to PyPI on v* tag push via GitHub Actions OIDC — no long-lived API tokens in the repo, and a manual-approval gate via the pypi environment

🤖 Generated with Claude Code

v0.2.2 — Search highlighting + graph time-scale toggle

09 Jun 18:47

Choose a tag to compare

Two polish features for the Processes and Performance tabs — plus Lindoze is now on PyPI.

Processes tab

  • Matched search needle is now bolded in accent teal in the Name and PID columns via a custom item delegate
  • New "N matches" counter sits between the search box and the End-task button; refreshes on each snapshot so newly-spawned matching processes are included

Performance tab

  • New 60s / 10min / 1hr time-scale toolbar above the right pane, applied globally to all detail-page graphs
  • Sidebar mini-graphs stay fixed at 60s (they're 54px wide — larger scales would just produce noise)
  • Selection persists across launches via QSettings
  • Graphs now render right-anchored — newest sample at the right edge, oldest where data starts. Fresh launches show graphs growing in from the right instead of starting with a misleading flat-zero baseline.

Install

Lindoze is now on PyPI:

pipx install lindoze

Or pip install lindoze if you don't use pipx. See the README for the from-source path.

🤖 Generated with Claude Code

v0.2.1 — Persist window state across launches

09 Jun 18:47

Choose a tag to compare

Small QoL release: Lindoze now remembers how you had it set up.

What's new

  • Window size and position restored between launches
  • Last-viewed top-level tab (Processes / Performance / Startup apps) restored on next launch
  • Processes tab remembers column widths and sort order

Internals

  • Settings written via Qt's QSettings() on close; stored in ~/.config/Lindoze/Lindoze Process Manager.conf.

🤖 Generated with Claude Code

Lindoze v0.2.0

08 Jun 14:58

Choose a tag to compare

What's new

Polishes the experimental Intel GPU support that landed after v0.1 and adds a debug flag so Intel users can file actionable bug reports without me needing access to their hardware.

Intel GPU

  • Frequency sysfs fallback — older Gen7 (Ivy Bridge HD 4000-era) places gt_cur_freq_mhz directly under cardN/, not cardN/device/. We try both now, so freq reads work across kernel generations.
  • --dump-gpu flag — prints raw PMU file descriptors, counter values, sysfs paths, and event configs to stderr. If your Intel GPU is detected but util/temp/freq look wrong, paste the output into a GitHub issue.
  • PMU parser unit tests — 15 tests with synthetic counter fixtures exercise the engine-busy math without needing real Intel hardware.

Known thin spots

  • Ivy Bridge (Gen7): detection + freq work; PMU util may still report 0. Awaiting a user report with --dump-gpu output.
  • xe driver: temp/freq only; Arc-on-xe testing pending.
  • Old AMD radeon driver: no gpu_busy_percent sysfs → not detected. Use amdgpu if available.

Unchanged from v0.1

Processes / Performance (CPU / Mem / NVIDIA+AMD / Disk / Network) / Startup tabs, plus the perf knobs (1500ms sampler, paused-when-hidden, /proc/loadavg thread count) all carry over.

Install

git clone https://github.com/awn007-eng/lindoze.git
cd lindoze && git checkout v0.2.0
python3 -m venv .venv && .venv/bin/pip install -e .
.venv/bin/lindoze

Vibe-coded with Claude Code. Design and decisions are mine; Claude handled most of the typing.

v0.1.0 — Initial release

06 Jun 19:19

Choose a tag to compare

First public release of Lindoze — a Linux system monitor laid out like Windows 11 Task Manager.

Highlights

  • Per-thread CPU grid — every logical processor as its own mini-graph, no overlaid mess
  • Multi-GPU support — NVIDIA (NVML) and AMD (sysfs), one page per detected device
  • Processes tab with sortable tree, search, end-task / kill / suspend / renice
  • Startup apps tab with one-click toggle and 10-second undo

Install

Currently from source:

git clone https://github.com/awn007-eng/lindoze.git
cd lindoze
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/lindoze

Not yet supported (planned)

  • Intel GPU page (NVIDIA + AMD only for v0.1)
  • Flatpak / Flathub distribution
  • Per-process GPU / Network attribution

Credits

Inspired by Dave Plummer's work on the original Windows Task Manager.