udiskie is a simple daemon that uses UDisks to automatically mount removable storage devices. This daemon comes with optional mount notifications and gtk tray icon. It also provides a user level CLI for mount and unmount operations.
- UDisks required for all operation modes. UDisks2 support is experimental and has to be requested explicitly via command line parameter.
- dbus-python required for all operation modes
- PyGObject to run the automount/notification daemon (provides the main loop)
- notify-python or notify2 for mount notifications
- Zenity to unlock LUKS devices
- PyGTK to show the system tray icon
udiskie requires permission for the following PolicyKit actions:
org.freedesktop.udisks.filesystem-mount
for mounting and unmountingorg.freedesktop.udisks.luks-unlock
to unlock LUKS devicesorg.freedesktop.udisks.drive-eject
to eject drivesorg.freedesktop.udisks.drive-detach
to detach drives
These are usually granted when using a desktop environment. If your login session is not properly activated you may need to customize your PolicyKit settings. Create the file /etc/polkit-1/localauthority/50-local.d/10-udiskie.pkla
with the following contents:
[udiskie]
Identity=unix-group:storage
Action=org.freedesktop.udisks.filesystem-mount;org.freedesktop.udisks.luks-unlock;org.freedesktop.udisks.drive-eject;org.freedesktop.udisks.drive-detach
ResultAny=yes
This configuration allows all members of the storage group to run udiskie.
Alternatively, change the setting for allow_inactive
to yes in the file /usr/share/polkit-1/actions/org.freedesktop.udisks.policy
:
<action id="org.freedesktop.udisks.filesystem-mount">
...
<allow_inactive>yes</allow_inactive>
...
</action>
...
<action id="org.freedesktop.udisks.luks-unlock">
...
<allow_inactive>yes</allow_inactive>
...
</action>
...
<action id="org.freedesktop.udisks.drive-eject">
...
<allow_inactive>yes</allow_inactive>
...
</action>
...
<action id="org.freedesktop.udisks.drive-detach">
...
<allow_inactive>yes</allow_inactive>
...
</action>
Note that UDisks2 uses another set of permissions, see /usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
.
udiskie comes with a set of themeable custom Tango-style GTK icons for its tray icon menu. The installer tries to install the icons into GTK's default hicolor theme. Typically this is located in /usr/share/icons/hicolor
. If you have any problems with this or you need a custom path you can manually do it like so:
cp ./icons/scalable /usr/share/icons/hicolor -r
gtk-update-icon-cache /usr/share/icons/hicolor
The icons roughly follow the Tango style guidelines. Some icons incorporate the CDROM icon of the base icon theme of the Tango desktop project (released into the public domain).
The following entry points are defined:
udiskie
to run the automount/notification daemonudiskie-mount
user level mount/unlock operationsudiskie-umount
user level unmount/lock/eject/detach operations
See the man pages for further instructions
udiskie is developed on github. Feel free to contribute patches as pull requests as you see fit.
Try to be consistent with PEP 8 guidelines as far as possible and test everything. Furthermore, your commit messages should start with a capitalized verb for consistency. Unless your modification is completely trivial, also add a message body to your commit.
Where possible dependency injection should be used to keep the module easily testable.