Lindoze Process Manager
A Linux system monitor with the layout of Windows 11 Task Manager.
Most Linux system monitors (gnome-system-monitor, ksysguard, even the otherwise-excellent mission-center) collapse every CPU thread into a single overlaid graph. On a 32-thread machine that's unreadable. Lindoze gives you the per-thread grid you remember from Windows Task Manager, plus the rest of the Task Manager layout — sortable processes, performance pages, startup apps — in a single Qt app. Built and tested on KDE Plasma and GNOME (Fedora Workstation); should work on other Qt-capable desktops too.
See CHANGELOG.md for release history.
How this was built
I built Lindoze: the design, the layout, and every decision about how it works are mine, and I've personally reviewed and tested all of it across KDE, GNOME, and older hardware. I used an AI coding assistant (Claude Code) to help write it, and per Fedora's AI-assisted contribution policy I'm fully accountable for every line. It's GPL-3 and the complete source is right here to read and audit — you don't have to take my word for any of it.
Screenshots
The Performance tab defaults to the per-thread grid (right-click or toggle button to switch to the aggregate view):
Each cell shows its core's live clock speed and current load, so the grid reads at a glance instead of being 32 anonymous sparklines.
Disk and Network each draw both directions as one combined graph — two color-coded traces sharing an axis, with live values and a real scale label:
Processes tab — Grouped or Flat views, multi-select batch actions, search, and per-process controls (here in Flat view, sorted by CPU with three tasks selected):
Startup apps tab — toggle XDG autostart entries with a 10-second undo:
Features
- Performance tab with per-resource sub-navigation
- CPU — aggregate + per-logical-processor grid (auto-sized; handles 2 to 128+ threads)
- Memory — usage, swap, cached/buffers from /proc/meminfo
- GPU — NVIDIA (via NVML), AMD (via sysfs), Intel (experimental — i915 perf PMU + hwmon); multi-GPU systems show one page per GPU
- Disk — per-physical-device R/W throughput
- Network — per-interface RX/TX throughput
- Processes tab — sortable tree, multiple view shapes
- View menu — Grouped (collapsible User / System groups), Flat (one global list, so sorting by CPU surfaces the hottest process anywhere at the top), or User only / System only; your choice is remembered
- Multi-select — Ctrl/Shift-click several processes and act on them at once: batch End / Kill / Suspend / Resume / Set priority, plus Copy PIDs / paths / command lines to the clipboard one per line. Processes you don't own are skipped.
- Search across name, executable path, full command line, and PID
- Selectable columns — show/hide the full executable path and command line (all arguments) from the Columns menu; your choice is remembered
- Compact / Standard row density toggle — tightens row padding to fit more processes per screen (the font size stays legible)
- Right-click actions: End task, Kill, Suspend/Resume, Set priority, Copy path / Copy PID / Copy command line, Open file location, Properties
- Startup apps tab —
~/.config/autostart/*.desktopentries; one-click toggle with 10-second undo and automatic.bakfiles - View menu — Always on Top (works on X11; on Wayland the compositor controls stacking, so use its own "Keep Above"). A small minimum window size lets it tuck into a screen corner.
Requirements
- Python 3.10+
- A Qt 6-capable Linux desktop (KDE, GNOME, etc.)
- For GPU pages:
- NVIDIA: the proprietary driver (provides NVML)
- AMD: any modern
amdgpudriver (kernel>=5.0); no extra packages needed - Intel (experimental):
i915driver, kernel>=5.13for the perf PMU; reads engine utilization viaperf_event_openand temp/freq via sysfs+hwmon. No subprocess, no root. Thexedriver degrades to temp/freq only — Arc-on-xe testing pending. Older Gen7 (Ivy Bridge) hardware is known thin: freq reads work via fallback sysfs path but PMU util may return 0. If your Intel GPU is detected but util/temp/freq look wrong, please runlindoze --dump-gpuand file an issue with the output.
Install
Quick install with pipx (recommended)
If you have pipx installed, one command does it:
pipx install lindoze
lindoze
Update later with pipx upgrade lindoze; remove with pipx uninstall lindoze.
To track the development branch instead of the latest release, install from
git: pipx install git+https://github.com/awn007-eng/lindoze.git.
(pipx itself: sudo apt install pipx on Ubuntu/Debian, sudo dnf install pipx
on Fedora/Nobara, sudo pacman -S python-pipx on Arch.)
Fedora / Nobara (Copr)
On Fedora-family distros you can install Lindoze as a proper RPM — it pulls Qt6/PySide6 from the system repos and adds the Start-menu entry and icon for you:
sudo dnf copr enable awn007/lindoze
sudo dnf install lindoze
Built for Fedora 42/43/44 and rawhide. Update with sudo dnf upgrade lindoze;
remove with sudo dnf remove lindoze.
From source (for hacking / customization)
git clone https://github.com/awn007-eng/lindoze.git
cd lindoze
./bootstrap.sh
./run.sh
bootstrap.sh creates a local .venv/, installs dependencies, drops a
Start-menu entry into ~/.local/share/applications/, and installs the
bundled icon. Safe to re-run — it's idempotent. Launch via ./run.sh or
your desktop's Start menu.
Flatpak
Not yet shipping on Flathub — coming in a future release.
Limitations / not yet supported
- No per-process GPU/Network columns — these need root or eBPF on Linux. The totals are accurate; per-process attribution isn't.
- No Services tab — systemd unit management is well-covered by KDE's System
Settings and
systemctl; we're not duplicating it. - No Users tab — single-user desktop assumption.
Credits
Inspired by Dave Plummer's work on the original Windows Task Manager. This is a tribute, not an affiliation.
License
GPL-3.0-or-later. See LICENSE.
Metadata
Release files for lindoze 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lindoze-0.7.0.tar.gz | 64.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lindoze-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 130.3 kB
Release files / lindoze-0.7.0.tar.gz
| Download URL | lindoze-0.7.0.tar.gz |
|---|---|
| Size | 64.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c708b8ccf0a103363b3f1a769af5f980787e4b792aec790343f534176bf60e1
|
|
BLAKE2b-256 checksum How to use checksums |
46a760f59b9140ebac4a3b07f558b9033366edba43fee67072e699df6f79f669
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 27, 2026.
Transparency logRelease files / lindoze-0.7.0-py3-none-any.whl
| Download URL | lindoze-0.7.0-py3-none-any.whl |
|---|---|
| Size | 65.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de6f585bcfbc9f27a36cf4fc8fbc32ea24a12c834b7f9be69cf0e6107c0bafb9
|
|
BLAKE2b-256 checksum How to use checksums |
e35ff7bddcf674dc4a1b726be120fc45d4062050bcbce5d02b84e11329c49789
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 27, 2026.
Transparency log