[ltp] Last desperate attempt to show off my Debian Thinkpad at aconference

Brad Langhorst linux-thinkpad@linux-thinkpad.org
Sat, 26 Feb 2005 15:27:31 -0500


On Fri, 2005-02-25 at 15:13 -0500, Alex Deucher wrote:

> > Okay. So I assume that means the second head needs to be connected when
> > X starts, for it to be recognized? Is it possible to restart X to detect
> > the new screen, without killing all the running applications on the
> > existing screen?
> 
> since X is not dynamically re-configurable, you can only have one
> configuration per instance.  if you want to change it, you have to
> restart X.  restarting X will disconnect all your X clients.

I have this trouble as well...
I'd like to be able to 
1) enable display :0.1 on the fly or
2) force display:0.1 to be enabled even though it's not detected during
X startup
 I get this if I don't have an external display plugged in"
(WW) RADEON(1): Only one monitor detected, Second screen will NOT be
created 

I'm including the script I use for doing presentations...
I call it like this: 'presentation.sh blah.sxi 640x480'

I do have one remaining problem with this setup:
-my keyboard focus always stays in in the vncclient if I run it in
fullscreen mode... I can work around this by starting a window manager
in the vncserver or starting up a mouseable task manager so I can kill
the fullscreen client when I'm done.

John: do you have this one solved?

- one caveat... if you use the openoffice quickstarter or have
openoffice programs already running on the main display, the
presentation will display on the main display. It's not possible (afaik)
to start up a fresh copy of openoffice on :3.


cat ~/bin/presentation.sh
#!/bin/sh
res="$2"
#set resolution to 1024x768 by default
if [ -z "$res" ] ; then res="1024x768" ; fi
echo "switching to $res"

xrandr -d :0.1 -s $res

#create a new instance of X for vnc
vnc4server :3 -name 'presentation' -localhost -geometry $res

#put window of the presentation on the main display
xvnc4viewer -Shared -UseLocalCursor :3 -passwd ~/.vnc/passwd &

#put a full screen version on the external display
#xvnc4viewer -display :0.1 -Shared -UseLocalCursor :3 -passwd
~/.vnc/passwd &
xvnc4viewer -display :0.1 -Shared -FullScreen -UseLocalCursor :3 -passwd
~/.vnc/passwd &

pres="$1"
if [ -z "$pres" ] ; then
    echo "not starting any presentation"
else
    echo "starting presentation: $1"
    ooimpress -display :3 -show $1
fi

#make sure that the screensaver doesn't kick in during the presentation
while [ `pidof soffice.bin | wc -L` -gt 0 ]
do xscreensaver-control -deactivate
sleep 30
done