Difference between revisions of "Udiskie"
(→Links) |
m (→Links: Already exist in Installation.) |
||
Line 169: | Line 169: | ||
== Links == | == Links == | ||
* [http://bitbucket.org/byronclark/udiskie Udiskie Homepage] | * [http://bitbucket.org/byronclark/udiskie Udiskie Homepage] | ||
− |
Revision as of 02:19, 13 November 2012
Udiskie is an automatic disk mounting service using udisks. It can be used for mounting CDs, flash drives, and other media. It is simple to use and requires no configuration.
Contents
Installation
You can install Udiskie by using the udiskie package that is found in the Official Repositories. Start the Udiskie service by adding
udiskie &
to your xinitrc file, before the window manager is loaded.
Once Udiskie is running, all removable media will automatically be mounted under /media
under a new directory that matches the device name.
Permissions
udiskie requires permission for the org.freedesktop.udisks.filesystem-mount
action to be granted through PolicyKit. If you use a display manager that supports ConsoleKit this will be taken care of for you automatically. If you don't, you'll need to set up consolekit to work with startx/xinit or use the storage group method.
Consolekit
Start your window manager or desktop environment with ck-launch-session, for example, an exec line in ~/.xinitrc:
exec ck-launch-session awesome
You may need to start udiskie within the Consolekit session -- that seems to be necessary, for example, when launching dwm:
exec ck-launch-session bash -c "udiskie & dwm"
Storage group
If it doesn't already exist, create the file /etc/polkit-1/localauthority/50-local.d/10-udiskie.pkla
with these contents:
[Local Users] Identity=unix-group:storage Action=org.freedesktop.udisks.* ResultAny=yes ResultInactive=yes ResultActive=yes
This example configuration allows any member of the storage
group to mount and unmount disks with udiskie.
Unmounting
Use the udiskie-umount
command to unmount media. For example, for a device named "MY_USB_DRIVE":
udiskie-umount /media/MY_USB_DRIVE
Or, you can unmount all media with the command:
udiskie-umount -a
Window Manager Menu Scripts
For convenience, you can add a script to the menu in some window managers to allow for easy access and control of removable media.
Openbox
Here's an openbox menu script that offers a slight variation on the WindowMaker example below:
#!/bin/bash # An openbox menu for removable media (requires udiskie). # # This script will generate sub-menus for any device mounted # under /media. You can browse the device in a file manager or # unmount it. # # It will ignore the "cd", "dvd", and "fl" directories and the U3 # containers found on some windows formatted drives # # By default, this script uses the rox file manager to browse the # media. DIR=$(cd $(dirname "$0") && pwd) SCRIPT=$(basename "$0") NOTIFY="notify-send" FM_CMD="rox" pipemenu() { cd /media echo '<openbox_pipe_menu>' for i in * do if [ "$i" != "*" ] && [[ ! "$i" =~ ^U3|cd|dvd|fl ]]; then echo "<item label=\"Browse $i\">" echo "<action name=\"Execute\">" echo "<execute>$FM_CMD /media/$i</execute>" echo "</action></item>" echo "<item label=\"Unmount $i\">" echo "<action name=\"Execute\">" echo "<execute>$DIR/$SCRIPT unmount /media/$i</execute>" echo "</action></item>" echo "<separator/>" fi done echo "<item label=\"Eject CD/DVD\">" echo "<action name=\"Execute\">" echo "<execute>eject -T</execute>" echo "</action></item>" echo "<item label=\"Remount all\">" echo "<action name=\"Execute\">" echo "<execute>$DIR/$SCRIPT remount</execute>" echo "</action></item>" echo "</openbox_pipe_menu>" } case $1 in unmount) udiskie-umount $2 if mountpoint -q $2; then $NOTIFY "Failed to unmount $2" else $NOTIFY "Unmounted $2" fi ;; remount) killall udiskie udiskie & $NOTIFY "Mounting removable media..." ;; *) pipemenu ;; esac
Window Maker
Create a "Generated Submenu" entry in the root menu.
#!/bin/bash # For a Window Maker menu for removable media. # # This script will generate sub-menus for any device mounted # under /media. You can browse the device in a file manager or # unmount it. # # It will ignore the "cd", "dvd", and "fl" directories. # # It uses "emelFM2" file manager to browse the media. cd /media echo \"Media\" MENU for i in * do if ["$i" != "*" ] && [ "$i" != "cd" ] && [ "$i" != "dvd" ] && [ "$i" != "fl" ] then echo \"Browse $i\" EXEC \"emelfm2 -1 \'/media/$i\'\" fi done for i in * do if ["$i" != "*" ] && [ "$i" != "cd" ] && [ "$i" != "dvd" ] && [ "$i" != "fl" ] then echo \"Unmount $i\" EXEC \"udiskie-umount \'/media/$i\'\" fi done echo \"Eject Disc\" EXEC \"eject --traytoggle\" echo \"Media\" END