feat(udiskie): add aristides/udiskie plugin for usb/media drives management (#256)

* 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
This commit is contained in:
Arístides Pérez
2026-08-05 17:58:15 -04:00
committed by GitHub
parent 52bb05d5aa
commit 57e4b108c4
10 changed files with 1055 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
{
"settings": {
"enable_notifications": {
"label": "Desktop notifications",
"description": "Show native Noctalia desktop notifications on device events."
},
"auto_open_filemanager": {
"label": "Auto-open file manager",
"description": "Automatically open mounted drives in file manager."
},
"file_manager_cmd": {
"label": "File manager command",
"description": "Command used to open mounted folders."
},
"glyph": {
"label": "Bar glyph",
"description": "The glyph shown for the Udiskie widget on the bar."
},
"show_count": {
"label": "Show device count",
"description": "Display count of mounted devices on the bar widget."
},
"hide_when_empty": {
"label": "Hide when empty",
"description": "Hide the bar widget when no USB drives are connected."
}
},
"tooltip_empty": "No devices mounted",
"tooltip_mounted": "Mounted devices",
"panel_title": "Udiskie Manager",
"panel_empty": "No USB drives detected",
"btn_mount_all": "Mount All",
"btn_unmount_all": "Unmount All",
"btn_mount": "Mount",
"btn_unlock": "Unlock",
"btn_unmount": "Unmount",
"btn_eject": "Eject",
"btn_poweroff": "Power Off",
"btn_open": "Open",
"status_mounted": "Mounted",
"status_unmounted": "Unmounted",
"status_locked": "Locked (LUKS)",
"error_missing_dep": "udiskie binary is missing from PATH",
"btn_retry": "Retry Connection",
"btn_docs": "Check Documentation",
"copy_path_tooltip": "Copy mount path",
"notify_path_copied": "Path copied to clipboard",
"no_partitions_found": "No partitions found",
"notif_drive_connected_title": "Drive Connected",
"notif_drive_connected_body": "{label} connected",
"notif_drive_removed_title": "Drive Removed",
"notif_drive_removed_body": "{label} disconnected",
"notif_drive_mounted_title": "Drive Mounted",
"notif_drive_mounted_body": "{label} is ready to use",
"notif_drive_unmounted_title": "Drive Unmounted",
"notif_drive_unmounted_body": "{label} was safely unmounted",
"notif_mount_failed_title": "Mount Failed",
"notif_mount_failed_fallback": "Could not mount {device}",
"notif_mount_all_failed_title": "Mount All Failed",
"notif_mount_all_failed_fallback": "Could not mount all devices",
"notif_unmount_failed_title": "Unmount Failed",
"notif_unmount_failed_fallback": "Device {device} is busy or in use",
"notif_unmount_all_failed_title": "Unmount All Failed",
"notif_unmount_all_failed_fallback": "One or more devices are busy",
"notif_eject_failed_title": "Eject Failed",
"notif_eject_failed_fallback": "Could not eject {device}",
"notif_poweroff_failed_title": "Power Off Failed",
"notif_poweroff_failed_fallback": "Could not power off {device}"
}