Windows has Device Manager. Linux has lspci, lsusb, lshw, three sysfs walks, and a dmesg grep you run from memory. I wanted one window that shows all of it — with safe enable/disable — so I built Linux Device Manager (LDM): a native GTK4 app that combines sysfs, udev, and the proven CLI tools into one clean category tree.
Repo: https://github.com/getldm/linux-device-manager (GPL-3.0-or-later, v0.2.0 out now)
What it does
- Category tree — Multimedia, Network, Storage, USB, PCI and more, with functional categories taking priority over raw bus groupings
- Detail tabs — General, Advanced, Driver, and Kernel logs/events, loaded lazily and cached until refresh
- Safe Enable / Disable — USB authorization plus driver bind/unbind through a polkit-protected privileged helper, with state verification after every action
- Accurate identity — canonical sysfs paths deduplicate aliases, so controllers stay separate from their disks/NICs; USB composites are classified by all their functions
- Kernel logs that actually match — current-boot snapshots matched to device/interface IDs, not shared driver names
-
Fast search — type in the tree,
Ctrl+F,Escreturns focus, full keyboard + context-menu support
How it's built
-
Java 25 + java-gi for GTK4 bindings, UI defined in Cambalache (
main.ui) loaded viaGtkBuilder— no programmatic widgets - Data layer reads sysfs/udev directly and shells out to
lspci,lsusb,modinfo,journalctl,dmesg,udevadm(all optional enrichments) - Ships a trimmed
jlinkruntime; only GTK4 and the hardware tools come from the host - XDG-compliant, no hardcoded home paths — works sandboxed
Install
Packages for Debian/Ubuntu (.deb), Fedora/RHEL (.rpm), Arch (pkg.tar.zst), plus portable AppImage and Flatpak, all assembled from one stage tree:
# Debian/Ubuntu
sudo apt install ./linux-device-manager_*.deb
# Fedora/RHEL
sudo rpm -i linux-device-manager-*.rpm
# Arch
sudo pacman -U linux-device-manager-*.pkg.tar.zst
# AppImage (needs host GTK4)
./LinuxDeviceManager-*-x86_64.AppImage
# Flatpak
flatpak install --user ./org.ldm.LinuxDeviceManager.flatpak
Build from source in one reproducible Docker image (eclipse-temurin:25-jdk + GTK4 + Xvfb):
make build && make test && make package
Status and roadmap
- v0.2.0 is released with all five formats; AppStream metainfo validates clean
- In flight: Flathub submission (offline source-build manifest with vendored Maven deps — Flathub builders have no network), AppImageHub catalog entry, and an
awesome-sysadminlisting - Known limitation: inside the Flatpak sandbox, enumeration is read-only best-effort and the privileged helper is degraded — future work is reaching host tools via
flatpak-spawn --host
How you can help
-
Test on your hardware — exotic USB composites, multi-function PCI cards, and weird drivers are where bugs hide; issues with
lsusb -v/ sysfs paths attached are gold - Packagers — a Debian sponsor, Fedora COPR, or AUR maintainer would get LDM into Repology/pkgs.org automatically
- Design eyes — the UI is Cambalache-defined, so layout tweaks are XML diffs, not code refactors
If you've ever wished lspci had a GUI with an off switch, give it a spin. ⭐s and hardware-bug reports equally welcome.
Top comments (0)