Spawning X apps in hotplug scripts

Bob Marcan bob at interstudio.homeunix.net
Fri Apr 9 11:30:40 UTC 2004


Andy Green wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi folks -
> 
> I just gave my 9-year old daughter a digital camera for her birthday, it comes 
> up as a usb storage class device and of course works fine.
> 
> The problem is I need to set it up suitable for a child to use on her laptop, 
> and the default situation of mounting and unmounting is very poor for that.
> 
> I did some reading and discovered autofs (there is a tip about it at 
> fedoranews.org), and was able to set this up with a timeout of two seconds, 
> and that works quite well.  The autofs service is given a mountpoint and 
> dynamically mounts the given device at the mountpoint *when the mountpoint is 
> touched*.  It then umounts the device after the timeout period.
> 
> I did some further reading and was able to also set up a hotplug script 
> specific to the camera IDs, which generates and deletes a symlink to the 
> mount point when the camera is inserted and removed.
> 
> That gets me a /mnt/camera link that appears when the camera is inserted, as 
> soon as you touch it, by ls /mnt/camera or anything else, the camera 
> filesystem is mounted, accessed (so in the ls example you see the camera 
> contents listed), and auto-umounted after the two second timeout period.  
> When you pull out the camera the /mnt/camera link is removed. That's really 
> nice.
> 
> But I want to go for gold and completely automate the process, such that 
> merely plugging in the camera moves all the files in the camera to a 
> specified directory and empties the camera.  I can do this with the hotplug 
> shellscript using mv, but there is no feedback about the process and it is 
> critical the camera is not removed too early.  What I want to use instead is 
> the KDE kfmclient move command, which brings up a nice dialog with a progress 
> bar that disappears at the end of the move action, same as a konqueror file 
> move.  Then you need to wait three seconds, unplug the camera and you're 
> done.  If this is possible I will write up a little howto bringing together 
> all the pieces.
> 
> The problem is that although I can run a test kfmclient instance as root which 
> works...
> 
> [root at fastcat root]# kfmclient move /mnt/camera/* '/home/agreen/pics'
> 
> this does not work when running from the hotplug script, presumably because 
> that shell lacks some critical authentication or other information needed to 
> allow X to accept it.  (Confession: I try this on an FC2 devel machine, but 
> the question is relevant for all FC versions).
> 
> I looked around some more late last night, and saw that gPhoto2 has a script 
> for this situation which should be able to run an X11 app from a hotplug 
> script, called usbcam.x11-app.  The business end of that boils down to
> 
> su -l agreen -c "env DISPLAY=:0 HOME=/home/agreen kfmclient copy /mnt/camera/* 
> '/home/agreen/Pics'"
> 
> trying this out gets me
> 
> Would you like to enter a security context? [y] n
> bash: /root/.bashrc: Permission denied
> Xlib: connection to ":0.0" refused by server
> Xlib: No protocol specified
> 
> kfmclient: cannot connect to X server :0
> 
> 
> My question is then: how can I spawn an X app, preferably with user 
> credentials rather than root, from a hotplug script.
> 
> - -Andy
> 
> - -- 
> Find your answer without waiting for replies....
> Searchable list archives at 
> http://marc.theaimsgroup.com/?l=fedora-list&r=1&w=2
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.4 (GNU/Linux)
> 
> iD8DBQFAdn/ijKeDCxMJCTIRAjgVAJ9z1Gyxs2uwwmvn5EXmcg1uLXNJjQCfW1hh
> qMdd1jaGsJsX4I4lCYLAH9U=
> =HkDK
> -----END PGP SIGNATURE-----
> 
> 

xhost +localhost in ./xinitrc ?

-- 
  Bob Marcan                     mailto:bob.marcan at hermes-plus.si
  Aster^H^H...HermesPlus^H^H^H...S&T
  Slandrova ul. 2                       tel:    +386 (1) 5895-200
  1000 Ljubljana, Slovenia              http://www.hermes-plus.si





More information about the fedora-list mailing list