From ArchWiki
Revision as of 03:49, 3 August 2012 by Fengchao (talk | contribs) (Introduction: this title is not needed. See Help:Style.)
Jump to: navigation, search

This document describes a method to configure halevt and traydevice in order to mount removable media.


First you need to install halevtAUR and traydeviceAUR from AUR.


After that you need to install a halevt config in ~/.halevt/:

$ cp /usr/share/halevt/examples/umount_from_tray-gtkdialog.xml ~/.halevt/traydevice.xml
$ vim ~/.halevt/traydevice.xml

Edit the relevant part into

<halevt:Device match="&MOUNTABLE;">
 <halevt:Insertion exec="traydevice $hal.udi$"/>
 <halevt:OnInit exec="traydevice $hal.udi$"/>

Or if you want it to automatically mount when plugging in then edit into

<halevt:Device match="&MOUNTABLE;">
 <halevt:Insertion exec="halevt-mount -u $hal.udi$ &amp; traydevice $hal.udi$"/>
 <halevt:OnInit exec="halevt-mount -u $hal.udi$ &amp; traydevice $hal.udi$"/>

Next you need to edit the default.xml file of traydevice and change it to use halevt-mount instead of pmount-hal.

$ cp /usr/share/traydevice/default.xml ~/.config/traydevice/
$ vim ~/.config/traydevice/default.xml

Edit the relevant part into

<menuitem icon="gtk.STOCK_ADD" text="mount">
 <!- - execute command pmount-hal, passing it hal udi of managed device -->
 <command executable="halevt-mount">


<!- - execute command pumount, passing it device node from hal property -->
<menuitem icon="gtk.STOCK_REMOVE" text="umount">
 <command executable="halevt-umount">

Finally you need to make halevt start when you login to X. Just add halevt to ~/.config/openbox/autostart if you are using Openbox, or ~/.config/awesome/rc.lua for Awesome.

Tips and Tricks

It is better to start halevt individually per user rather than as a system daemon since it might conflict with other volume manager.


Instead of halevt you can use another program based on UDisks - UDisksEvt. With the most recent version of Traydevice you can setup a complete hal-less (hal is deprecated after all) automounting system. UDisksEvt example configuration file already contains appropriate setup for Traydevice, so it should work out-of-the-box.