UDISKIE(8) | udiskie | UDISKIE(8) |
NAME¶
udiskie - automounter for removable media
SYNOPSIS¶
udiskie [OPTIONS]
udiskie-mount [OPTIONS] (-a | DEVICE...)
udiskie-umount [OPTIONS] (-a | PATH...)
DESCRIPTION¶
udiskie is an udisks2 front-end written in python. Its main purpose is automatically mounting removable media, such as CDs or flash drives. It has optional mount notifications, a GTK tray icon and user level CLIs for manual mount and unmount operations. The media will be mounted in a new directory under /media or /run/media/USER/, using the device name if possible.
COMMON OPTIONS¶
-h, --help
-V, --version
-v, --verbose
-q, --quiet
-c FILE, --config=FILE
-C, --no-config
SHARED MOUNT AND DAEMON OPTIONS¶
-p COMMAND, --password-prompt=COMMAND
-p "zenity --entry --hide-text --text 'Enter password for {device_presentation}:'"
-P, --no-password-prompt
DAEMON OPTIONS¶
-a, --automount
-A, --no-automount
-n, --notify
-N, --no-notify
-t, --tray
-s, --smart-tray
-T, --no-tray
-f PROGRAM, --file-manager=PROGRAM
-F, --no-file-manager
--terminal=PROGRAM
--no-terminal
--appindicator
--no-appindicator
--password-cache MINUTES
--no-password-cache
--event-hook COMMAND
--event-hook "zenity --info --text '{event}: {device_presentation}'"
--no-event-hook
MOUNT OPTIONS¶
-a, --all
-r, --recursive
-R, --no-recursive
-o OPTIONS, --options=OPTIONS
UNMOUNT OPTIONS¶
-a, --all
-d, --detach
-D, --no-detach
-e, --eject
-E, --no-eject
-f, --force
-F, --no-force
-l, --lock
-L, --no-lock
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¶
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. If you don’t want to install PyYAML, it is possible to use an equivalent JSON file with the name config.json instead.
# 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 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.
DEVICE ATTRIBUTES¶
Some of the config entries make use of Device attributes. The following list of attributes is currently available, but there is no guarantee that they will remain available:
Attribute Hint/Example
is_drive is_block is_partition_table is_partition is_filesystem is_luks is_loop is_toplevel is_detachable is_ejectable has_media device_file block device path, e.g. "/dev/sdb1" device_presentation display string, e.g. "/dev/sdb1" device_size block device size device_id unique, persistent device identifier id_usage E.g. "filesystem" or "crypto" is_crypto is_ignored id_type E.g. "ext4" or "crypto_LUKS" id_label device label id_uuid device UUID is_luks_cleartext is_external udisks flag HintSystem=false is_systeminternal udisks flag HintSystem=true is_mounted mount_paths list of mount paths mount_path any mount path is_unlocked in_use device or any of its children mounted should_automount ui_label loop_file file backing the loop device setup_by_uid user that setup the loop device autoclear automatically delete loop device after use symlinks drive_model drive_vendor drive_label ui_device_label ui_device_presentation ui_id_label ui_id_uuid
SEE ALSO¶
udisks(1)
CONTACT¶
You can use the github issues to report any issues you encounter, ask general questions or suggest new features. If you don’t have or like github, you can contact me by email:
https://github.com/coldfix/udiskie/issues
thomas@coldfix.de
12/10/2024 | udiskie |