Running X window programs from PM suspend-resume scripts
Serguei Miridonov
mirsev at cicese.mx
Mon Mar 22 21:58:55 UTC 2010
On Monday 22 March 2010, Chris Tyler wrote:
> On Mon, 2010-03-22 at 22:38 +0200, Serguei Miridonov wrote:
> > On Monday 22 March 2010, Chris Tyler wrote:
> > > On Mon, 2010-03-22 at 21:10 +0200, Serguei Miridonov wrote:
> > > > Hello,
> > > >
> > > > Is there a trick to run X window programs from PM
> > > > suspend-resume hooks? For example, I need to restore
> > > > keyboard mapping after suspend to RAM using
> > > >
> > > > xkbcomp some_file.xkm :0.0
> > > >
> > > > Running this in
> > > >
> > > > #!/bin/bash
> > > > DISPLAY=":0.0"
> > > > export DISPLAY
> > > > case $1 in
> > > >
> > > > hibernate | suspend)
> > > >
> > > > ;;
> > > >
> > > > thaw | resume)
> > > >
> > > > sleep 2
> > > >
> > > > chvt 1
> > > > sleep 1
> > > > xkbcomp /etc/X11/GoodKeyMap.xkm $DISPLAY
> > > > ;;
> > > >
> > > > *)
> > > >
> > > > ;;
> > > >
> > > > esac
> > > > exit 0
> > > >
> > > > gives an error: Cannot open display ":0.0"
> > > >
> > > > Any idea?
> > >
> > > Sounds like a problem with auth. Try setting the XAUTHORITY
> > > environment variable, perhaps?
> >
> > OK, I have changed the script adding the line
> >
> > user=`who | grep -e ' :0' | sed 's/ *:0.*$//'`
> >
> > and then running the required command as
> >
> > su - $user -c "xkbcomp /etc/X11/GoodKeyMap.xkm $DISPLAY"
> >
> > It works now. Is there a something simpler?
>
> This works because, with a HOME directory specified, the xkbcomp
> command can find the ~/.Xauthority file to get the magic cookie
> for display connection authentication.
>
> You should be able to set the XAUTHORITY environment variable to
> the absolute path of the .Xauthority file instead of using su (try
> something like: export XAUTHORITY=/home/${user}/.Xauthority)
Yes, this works too. Thanks.
Serguei
More information about the users
mailing list