[NTLUG:Discuss] Shell script attaching to an X session?

Daniel Hauck daniel at yacg.com
Fri May 16 16:16:31 CDT 2008


Daniel Hauck さんは書きました:
> Here's the scenario:
> 
> I'm very interested to know when the nvidia packages for Fedora 9 are
> available on the livna repository.  My idea was to write a simple shell
> script that will check to see if the package files might be there, and
> if so, open up a dialog box using zenity announcing it.  I would then
> launch this script every hour.
> 
> The trouble is that the only scheduled task engine I'm aware of is
> "cron" and that's for background tasks and not associated with an X
> session which is what zenity requires in order to create a dialog box
> that works.
> 
> Here's my script:
> 
> -----
> #!/bin/sh
> LINECOUNT=`lynx -dump -listonly\
> http://livna-dl.reloumirrors.net/fedora/9/x86_64/ | grep -i nvidia | wc\ -l`
> # echo $LINECOUNT lines counted with nvidia in it
> if [ $LINECOUNT -gt 0 ]
> then
>  echo "nvidia packages detected on livna" > ~/nvidia-report.txt
>  zenity --info --text="nVidia detected" --title="nVidia detector"\
> --timeout=3540
> fi
> -----
> 
> 
> Pretty simple script right?  It could probably be done better -- I'm not
> that smart.
> 
> And the script actually works when I run it from an X session's terminal
> window.
> 
> Either I need to find an X scheduled task engine or I need to add some
> code that will attach itself to my X session so that the dialog box
> actually appears.
> 
> Ideas?
> 
> _______________________________________________
> http://www.ntlug.org/mailman/listinfo/discuss
> 

Seems I found the answer... easier than I suspected it might be.

Running the cron job as my local user, I make the zenity command like this:

 zenity --info --text="nVidia detected" --title="nVidia detector"\
--timeout=3540 --display=:0.0

It seems I can specify the display in zenity and it will appear on my X
display! :)




More information about the Discuss mailing list