* feat(udiskie): add Udiskie service for real-time device monitoring, notifications, and IPC * feat(udiskie): add main manager panel for drives and partitions * feat(udiskie): add plugin manifest, status widget, and english translation * feat(udiskie): add Makefile for testing and linting translations * feat(udiskie): add error handling for missing udiskie package * feat(udiskie): add right-click functionality to refresh Udiskie service * feat(udiskie): add option to hide widget when no devices are connected * feat(udiskie): add settings button to the panel for quick access to configuration * feat(udiskie): add button to copy mount path to clipboard in partition row * fix(udiskie): duplicated notifications when removing or unmounting devices * feat(udiskie): add disk usage information for mounted partitions in device state * feat(udiskie): update partition row status colors and enhance UI for status display * fix(udiskie): adjust timeout to give time for sudo tasks such as LUKS unlock * feat(udiskie): update partition row status color for LUKS devices and adjust panel width * fix(udiskie): scroll not working properly and items overflow container * feat(udiskie): add missing translations and remove hardcoded strings messages * feat(udiskie): add README and thumbnail * docs(udiskie): add performance section to README with resource usage comparison * fix(udiskie): update output parsing to use safe tab delimiters for device information * fix(udiskie): improve device hierarchy parsing to correctly identify partitions * feat(udiskie): centralize open with file manager code, and close panel on auto-open on mount (like manually open) * fix(udiskie): exclude LUKS containers from "Drive Connected" notifications * fix(udiskie): quote paths and device names in shell commands * fix(udiskie): improve error message cleaning regex * feat(udiskie): enhance README with device attributes and update service to suppress errors * fix(udiskie): use shell quoting for device paths in panel async commands * feat(udiskie): add spanish translations and update tests to check every translation
4.5 KiB
Udiskie Manager
Manage USB drives and media with notifications in just one panel.
Features
- Real-time device discovery and status monitoring via UDisks2 event streaming.
- Storage capacity and partition usage indicators with formatted bytes and percentage.
- Automatic detection and dedicated unlock action for LUKS encrypted volumes (
crypto_LUKS). - Interactive management panel with drive hierarchy, open, mount, unmount, eject, and power off actions.
- Copy mount path to clipboard action.
- Configurable bar widget with mounted device counter and auto-hide when empty option.
- Native desktop notifications for drive connections, disconnections, mounts, unmounts, and errors.
- Quick refresh and native settings integration.
Plugin
| Field | Value |
|---|---|
| ID | aristides/udiskie |
| Entries | Bar widget: status; panel: manager; service: service |
Requirements
Install udiskie, udisks2, and xdg-open on PATH:
udiskie: Device mount operations and device info queries.udisks2: Providesudisksctlfor real-time DBus event streaming.xdg-open: Launcher binary for opening mounted folders in the file manager.
udiskie-info -ofields: the service queriesudiskie-info -owith the device attributes listed underVALID_PARAMETERS(e.g.is_drive,is_partition,is_luks,mount_path,is_detachable). If yourudiskieis old enough to lack any of them, the device list will come back empty — upgradeudiskiein that case. A recent release (2.x) is recommended.
Usage
- Bar Widget (
status): Addstatusto the bar configuration in Noctalia settings. Left-click to open the Udiskie Manager Panel. Right-click to trigger an immediate plugin refresh. - Panel (
manager): Open via the bar widget or run:
noctalia msg panel-toggle aristides/udiskie:manager
Settings
| Setting | Type | Default | Description |
|---|---|---|---|
enable_notifications |
bool |
true |
Show desktop notifications on drive events and errors. |
auto_open_filemanager |
bool |
false |
Automatically open mounted drives in the file manager upon connection. |
file_manager_cmd |
string |
xdg-open |
File manager launcher command. |
glyph |
glyph |
device-usb |
Icon glyph shown for the widget on the bar. |
show_count |
bool |
true |
Display the count of mounted devices on the bar widget. |
hide_when_empty |
bool |
false |
Hide the bar widget when no USB drives are connected. |
IPC
# Toggle panel
noctalia msg panel-toggle aristides/udiskie:manager
# Service actions
noctalia msg plugin aristides/udiskie:service all mount /dev/sdX
noctalia msg plugin aristides/udiskie:service all unmount /dev/sdX
noctalia msg plugin aristides/udiskie:service all eject /dev/sdX
noctalia msg plugin aristides/udiskie:service all detach /dev/sdX
noctalia msg plugin aristides/udiskie:service all mount_all
noctalia msg plugin aristides/udiskie:service all unmount_all
noctalia msg plugin aristides/udiskie:service all refresh
Performance
The plugin eliminates the standalone Python udiskie daemon by using an event-driven udisksctl monitor subprocess managed by Noctalia. Both approaches activate udisksd via D-Bus on first use.
| Component | RSS | VSZ | CPU |
|---|---|---|---|
udisksctl monitor (this plugin) |
~12 MB | ~170 MB | 0.0% |
udiskie Python daemon (standalone) |
~84–110 MB | ~1183 MB | 0.2% |
udisksd (shared, D-Bus activated) |
~22 MB | ~688 MB | 0.2% |
Total footprint: plugin ~34 MB vs standalone ~106–132 MB. Saves ~72–98 MB RAM and avoids a persistent Python process.
Measurements are local to a given system/kernel and udiskie version; actual RSS/VSZ/CPU values vary by hardware and environment.
Development
Run plugin validation and tests using the workspace Makefile:
make test
Notes
- Requires plugin API level 9 or newer.