DEV Community

Cover image for Linux Device Manager — every bus, driver, and kernel event in one GTK4 tree
albilu
albilu

Posted on

Linux Device Manager — every bus, driver, and kernel event in one GTK4 tree

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, Esc returns focus, full keyboard + context-menu support

How it's built

  • Java 25 + java-gi for GTK4 bindings, UI defined in Cambalache (main.ui) loaded via GtkBuilder — 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 jlink runtime; 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
Enter fullscreen mode Exit fullscreen mode

Build from source in one reproducible Docker image (eclipse-temurin:25-jdk + GTK4 + Xvfb):

make build && make test && make package
Enter fullscreen mode Exit fullscreen mode

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-sysadmin listing
  • 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)