UDISKIE(8)
π UDISKIE π
okay bestie, sit down, hydrate, and let me tell you about udiskie β it's section 8 of the manual and it is lowkey the most useful little gremlin on your system. π«Ά
β¨ NAME β¨
udiskie β automounter for removable media π
πΈ SYNOPSIS πΈ
udiskie [OPTIONS]
udiskie-mount [OPTIONS] (-a | DEVICE...)
udiskie-umount [OPTIONS] (-a | PATH...)
π¦ DESCRIPTION π¦
So. udiskie is an udisks2 front-end written in python. Its whole main character purpose is automatically mounting removable media, like your CDs or your flash drives β the stuff you plug in and then immediately forget about. π₯
It also comes with optional extras if you want them: mount notifications, a GTK tray icon, and user level CLIs for manual mount and unmount operations. And here's the tea on where your stuff ends up β the media will be mounted in a new directory under /media or /run/media/USER/, using the device name if possible. β¨
π COMMON OPTIONS π
these are the ones everybody shares, no drama:
-h,--helpβ Show help message and exit. π-V,--versionβ Show help message and exit.-v,--verboseβ Verbose output. (she's chatty, we love that π¬)-q,--quietβ Quiet output. (she's giving β¨silenceβ¨)-c FILE,--config=FILEβ Specify config file.-C,--no-configβ Don't use any config file. periodt.
π§ SHARED MOUNT AND DAEMON OPTIONS π§
both the mount side and the daemon side get these, they're sharing custody:
-p COMMAND,--password-prompt=COMMANDβ Password retrieval command. The string is formatted with the device attributes as keyword arguments, e.g.:
-p "zenity --entry --hide-text --text 'Enter password for {device_presentation}:'"
-P,--no-password-promptβ Disable unlocking of LUKS devices. π no unlocking, we don't know her.
π DAEMON OPTIONS π
-a,--automountβ Enable automounting new devices (default). she's on it fr fr.-A,--no-automountβ Disable automounting new devices.-n,--notifyβ Enable pop-up notifications (default).-N,--no-notifyβ Disable pop-up notifications.-t,--trayβ Show tray icon. π-s,--smart-trayβ Show tray icon that automatically hides when there is no action available. iconic behaviour honestly.-T,--no-trayβ Disable tray icon (default).-f PROGRAM,--file-manager=PROGRAMβ Set program to open mounted directories. Default is'xdg-open'. Pass an empty string to disable this feature.-F,--no-file-managerβ Disable browsing.--terminal=PROGRAMβ Set terminal command line to open mounted directories. Default is none! Pass an empty string to disable this feature.--no-terminalβ Disable terminal action.--appindicatorβ Use AppIndicator3 for the status icon. Use this on Ubuntu/Unity if no icon is shown. (iykyk π)--no-appindicatorβ Use Gtk.StatusIcon for the status icon (default).--password-cache MINUTESβ Cache passwords for LUKS partitions and set the timeout.--no-password-cacheβ Never cache passwords (default).--event-hook COMMANDβ Command to execute on device events. Command string be formatted using the event name and the list of device attributes (see below), e.g.:
--event-hook "zenity --info --text '{event}: {device_presentation}'"
--no-event-hookβ No notify command (default).
π MOUNT OPTIONS π
-a,--allβ Mount all handled devices. all of them. every single one. π-r,--recursiveβ Recursively mount cleartext partitions after unlocking a LUKS device. This will happen by default when running the udiskie daemon.-R,--no-recursiveβ Disable recursive mounting (default).-o OPTIONS,--options=OPTIONSβ Set mount options.
π UNMOUNT OPTIONS π
-a,--allβ Unmount all handled devices.-d,--detachβ Detach drive by e.g. powering down its physical port. bye bye π-D,--no-detachβ Don't detach drive (default).-e,--ejectβ Eject media from the drive, e.g CDROM. π-E,--no-ejectβ Don't eject media (default).-f,--forceβ Force removal (recursive unmounting). she's not asking. π€-F,--no-forceβ Don't force removal (default).-l,--lockβ Lock device after unmounting (default).-L,--no-lockβ Don't lock device.
π EXAMPLE USAGE π
Start udiskie in ~/.xinitrc:
udiskie &
Unmount media and power down USB device:
udiskie-umount --detach /media/Sticky
Mount all media:
udiskie-mount -a
Mount /dev/sdb1:
udiskie-mount /dev/sdb1
π CONFIGURATION π
okay this is the big one, stay with me. π§
The file .config/udiskie/config.yml can be used to configure defaults for command line parameters and customize further settings. The actual path may differ depending on $XDG_CONFIG_HOME. The file format is YAML, see https://en.wikipedia.org/wiki/YAML. And listen β if you don't want to install PyYAML, it is possible to use an equivalent JSON file with the name config.json instead. slay, options.
here's the whole annotated example config, comments and all, verbatim because I am not about to paraphrase YAML at you:
# This is an example (nonsense) configuration file for udiskie.
program_options:
# Configure defaults for command line options
tray: auto # [bool] Enable the tray icon. "auto"
# means auto-hide the tray icon when
# there are no handled devices.
menu: flat # ["flat" | "nested"] Set the
# systray menu behaviour.
automount: false # [bool] Enable automatic mounting.
notify: true # [bool] Enable notifications.
password_cache: 30 # [int] Password cache in minutes. Caching is
# disabled by default. It can be disabled
# explicitly by setting it to false
file_manager: xdg-open
# [string] Set program to open directories. It will be invoked
# with the folder path as its last command line argument.
terminal: 'termite -d'
# [string] Set terminal command line to open directories. It will be
# invoked with the folder path as its last command line argument.
password_prompt: ["gnome-keyring-query", "get", "{id_uuid}"]
# [string|list] Set command to retrieve passwords. If specified
# as a list it defines the ARGV array for the program call. If
# specified as a string, it will be expanded in a shell-like
# manner. Each string will be formatted using `str.format`. For a
# list of device attributes, see below. The two special string values
# "builtin:gui" and "builtin:tty" signify to use udiskie's
# builtin password prompt.
event_hook: "zenity --info --text '{event}: {device_presentation}'"
# [string|list] Set command to be executed on any device event.
# This is specified like `password_prompt`.
device_config:
# List of device option rules. Each item can match any combination of device
# attributes. Additionally, it defines the resulting action (see below).
# Any rule can contain multiple filters (AND) and multiple actions.
# Only the first matching rule that defines a given action is used.
# The rules defined here are simply prepended to the builtin device rules,
# so that it is possible to completely overwrite the defaults by specifying
# a catch-all rule (i.e. a rule without device attributes).
# Filter rules can be passed a list of values, in which case the rule is matched
# if the attribute matches any of the values in the list.
- device_file: /dev/dm-5 # [filter]
ignore: false # [action] never ignore this device
- id_uuid: # [filter] match by device UUID
- 9d53-13ba # This rule matches on either of these uids
- 8675-309a
options: [noexec, nodev] # [action] mount options can be given as list
ignore: false # [action] never ignore this device (even if fs=FAT)
automount: false # [action] do not automount this device
- id_type: vfat # [filter] match file system type
ignore: true # [action] ignore all FAT devices
- id_type: ntfs # [filter] (optional)
skip: true # [action] skip all further (even builtin) rules
# for all matched devices, and resolve action result
# on parent device
- ignore: true # never mount/unmount or even show this in the GUI
automount: false # show but do not automount this device
options: [] # additional options to be passed when mounting
- id_uuid: ... # [filter] match device by UUID
keyfile: /path/to/keyfile # [action] use keyfile to unlock a luks encrypted
# device, bypassing the password prompt
mount_options: # [deprecated] do not use
ignore_device: # [deprecated] do not use
notifications:
# Customize which notifications are shown for how long. Possible
# values are:
# positive number timeout in seconds
# false disable
# -1 use the libnotify default timeout
timeout: 1.5 # set the default for all notifications
# Specify only if you want to overwrite the default:
device_mounted: 5 # mount notification
device_unmounted: false # unmount notification
device_added: false # device has appeared
device_removed: false # device has disappeared
device_unlocked: -1 # encrypted device was unlocked
device_locked: -1 # encrypted device was locked
job_failed: -1 # mount/unlock/.. has failed
quickmenu_actions: [mount, unmount, unlock, terminal, detach, delete]
# List of actions to be shown in the quickmenu or the special value 'all'.
# The quickmenu is shown on left-click if using flat menu type.
notification_actions:
# Define which actions should be shown on notifications. Note that there
# are currently only a limited set of actions available for each
# notification. Events that are not explicitly specified show the default
# set of actions. Specify an empty list if you don't want to see any
# notification for the specified event:
device_mounted: [browse]
device_added: [mount]
icon_names:
# Customize the icon set used by the tray widget. Each entry
# specifies a list of icon names. The first installed icon from
# that list will be used.
media: [drive-removable-media, media-optical]
browse: [document-open, folder-open]
terminal: [terminal, terminator, xfce-terminal]
mount: [udiskie-mount]
unmount: [udiskie-unmount]
unlock: [udiskie-unlock]
lock: [udiskie-lock]
eject: [udiskie-eject, media-eject]
detach: [udiskie-detach]
delete: [udiskie-eject]
quit: [application-exit]
π‘ All keys are optional. Reasonable defaults are used if you leave them unspecified. so like. you can't really mess this up bestie π«Ά
π¦ DEVICE ATTRIBUTES π¦
okay so some of the config entries be using Device attributes. here's the list that's currently out there, BUT β and she said this not me β there is no guarantee that they will remain available. so like, enjoy them while they're here bestie π
fr fr, that caveat is straight from the source. don't come for me if your config breaks in three years.
is_driveβ no hint or example given in the original, so I'm not about to invent one πis_blockβ same deal, no hint, no example, moving onis_partition_tableβ no hint/example providedis_partitionβ no hint/example providedis_filesystemβ no hint/example providedis_luksβ no hint/example providedis_loopβ no hint/example providedis_toplevelβ no hint/example providedis_detachableβ no hint/example providedis_ejectableβ no hint/example providedhas_mediaβ no hint/example provideddevice_fileβ block device path, e.g."/dev/sdb1"device_presentationβ display string, e.g."/dev/sdb1"device_sizeβ block device sizedevice_idβ unique, persistent device identifierid_usageβ e.g."filesystem"or"crypto"is_cryptoβ no hint/example providedis_ignoredβ no hint/example providedid_typeβ e.g."ext4"or"crypto_LUKS"id_labelβ device labelid_uuidβ device UUIDis_luks_cleartextβ no hint/example providedis_externalβ udisks flagHintSystem=falseis_systeminternalβ udisks flagHintSystem=trueis_mountedβ no hint/example providedmount_pathsβ list of mount pathsmount_pathβ any mount pathis_unlockedβ no hint/example providedin_useβ device or any of its children mountedshould_automountβ no hint/example providedui_labelβ no hint/example providedloop_fileβ file backing the loop devicesetup_by_uidβ user that setup the loop deviceautoclearβ automatically delete loop device after usesymlinksβ no hint/example provideddrive_modelβ no hint/example provideddrive_vendorβ no hint/example provideddrive_labelβ no hint/example providedui_device_labelβ no hint/example providedui_device_presentationβ no hint/example providedui_id_labelβ no hint/example providedui_id_uuidβ no hint/example provided
π SEE ALSO π
the way this is literally the shortest section and it still ate π go read the udisks page too, iykyk π«Ά
π CONTACT π
if you hit a problem, got a general question, or you're like "bestie this needs a new feature", you can use the github issues. and if you don't have github, or you just don't vibe with it, you can reach out by email instead:
- https://github.com/coldfix/udiskie/issues
- thomas@coldfix.de
no cap, both of those are valid ways to slide into the maintainer's inbox π
and that's the whole page babes, you made it to the end π₯³ this was udiskie, part of UDISKIE(8), dated 08/20/2026. go forth and mount responsibly, mwah πβ¨
π¦ where this page comes from
- fedora 44: udiskie 2.7.0-1.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms