A Windows Device Manager-like graphical tool for Linux. Provides a clean, category-based interface to view, inspect, and manage hardware devices via sysfs/udev.
- Category tree — devices grouped by type: Multimedia, Network, Storage, USB, PCI, etc.
- Detail tabs — General info, Advanced details, Driver info, Kernel logs/events
- Device actions — Enable / Disable devices (via polkit-protected privileged helper)
- Status bar — Spinner and progress indicators for long-running operations
- GTK4 UI — Defined via Cambalache
.uifile (no programmatic widget creation)
Multi-module Maven project:
| Module | Path | Description |
|---|---|---|
core |
core/ |
Device enumeration, categorization, detail providers, action service |
gui-gtk |
gui-gtk/ |
GTK4 UI (java-gi bindings) |
gui-qt |
gui-qt/ |
Qt UI — V2 (planned) |
Device data is gathered from sysfs, udev, and system tools (lspci, lsusb, lshw, dmesg, modinfo, etc.). Embedded static binaries are preferred over OS dependencies.
| Tool | Version | Notes |
|---|---|---|
| JDK | 25+ | java-gi GTK binding targets OpenJDK 25 |
| Maven | 3.8+ | Build and tests |
dpkg-deb |
— | Debian package assembly (Debian/Ubuntu only) |
If the default java is older than 25, set JAVA_HOME before running Maven:
JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64 mvn test# Compile and run tests
mvn test
# Compile only (skip tests)
mvn install -DskipTestsThe .deb bundles a trimmed JRE (via jlink), application JARs, a launcher script, a polkit-protected privileged helper, a .desktop entry, and an SVG icon.
# Build the .deb (default)
JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64 packaging/build-deb.sh
# Or via Maven profile
JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64 mvn package -Ppackage-deb -DskipTestsOutput: packaging/dist/linux-device-manager_0.1.0-1_amd64.deb
packaging/verify-deb.shsudo dpkg -i packaging/dist/linux-device-manager_0.1.0-1_amd64.debInstalled layout:
| Path | Content |
|---|---|
/opt/linux-device-manager/runtime/ |
Trimmed JRE (jlink) |
/opt/linux-device-manager/lib/ |
Application JARs + dependencies |
/usr/bin/linux-device-manager |
Launcher script |
/usr/libexec/ldm-helper |
Privileged device helper |
/usr/share/polkit-1/actions/org.ldm.policy |
Polkit policy |
/usr/share/applications/linux-device-manager.desktop |
Desktop entry |
/usr/share/icons/hicolor/scalable/apps/linux-device-manager.svg |
App icon |
sudo dpkg -r linux-device-managerDeferred for V1 (GTK4 library bundling in AppImage is non-trivial).
- V1 — Complete functionality with GTK4 UI
- V2 — Qt UI with all V1 features
linux-device-manager/
├── core/ # Core device management library
├── gui-gtk/ # GTK4 UI (java-gi)
├── gui-qt/ # Qt UI (planned)
├── helper/ # Privileged helper script + polkit policy
├── packaging/ # .deb build scripts, desktop files, control files
└── docs/ # Design specs and implementation plans
