Re: lug-bg: X11 restore default options
- Subject: Re: lug-bg: X11 restore default options
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Wed, 14 Jul 2004 11:32:31 +0300
On Wed, Jul 14, 2004 at 11:06:53AM +0300, Peter Pentchev wrote:
> On Wed, Jul 14, 2004 at 10:42:15AM +0300, linux@xxxxxxxxxxxxxxxx wrote:
> > Искам да попитам в тази листа за следното.
> >
> > Пуснаш една games зала под Linux.
> >
> > Но ето какъв проблем имам.
> >
> > Някой игри сменят резолюцията на екрана.
> >
> > И ако по default са 1024x768 след излизането на някой игри е правят 640x480
> >
> > Възможно ли е тя да се поднови на 1024x768 без да се рестартира X-са.
[snip]
> Иначе видеорежимът под X може да бъде променен с помощта на xvidtune,
> ако X сървърът ти поддържа разширението XFree86-VidModeExtension. Това
> можеш да разбереш лесно, като просто от X терминал или нещо такова
> пуснеш 'xvidmode -show' - ако ти покаже нещо за текущия режим, значи
Уфффф.. разбира се, тук имах предвид 'xvidtune -show', не 'xvidmode'...
> имаш необходимите разширения; 'xvidtune -prev' и 'xvidtune -next' би
> трябвало да работят. За съжаление поне версията на xvidtune, която
> ползвам в момента, не може да установи точно зададен видеорежим, а само
> да смени с предишния или следващия (-prev или -next). За сметка на това
> пък това може да бъде направено с просто shell-скриптче, което ще пратя
> след минутка, като го довърша съвсем :) Него ще можеш да ползваш като
> wrapper около играта: вместо да пускаш играта директно, пускаш това
> скриптче, което запомня в какъв режим си, пуска играта, чака тя да
> свърши, след което се опитва да възстанови видеорежима. Но това след
> минутка :)
А ето го и самото скриптче. Инсталация:
install -c -o root -g root -m 755 restmode.sh /usr/X11R6/bin/restmode
Ако си под FreeBSD като мен, или някое друго BSD, ще трябва да смениш
'-g root' с '-g wheel', но под повечето Linux-и май групата си се казва
'root'.
Начин на употреба:
restmode firefox
restmode frozenbubble
restmode sopwith -c
Т.е. просто пускаш restmode и му подаваш като параметри името на
програмата и евентуално параметрите, които тя иска. Оттам нататък
скриптчето си знае работата :)
Ако X сървърът ти поддържа повече от 15 видеорежима, може да се наложи
да промениш стойността на maxtries в началото на скрипта. В следващата
версия, която вероятно ще се появи до час и ще съдържа README, manpage и
Makefile за инсталация, най-вероятно ще добавя поддръжка на getopt, така
че да може да задаваш maxtries на командния ред, но засега ще трябва
така.
Поздрави,
Петър
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
The rest of this sentence is written in Thailand, on
#!/bin/sh
#
# restmode - run a program, then restore the X video mode
#
# $Ringlet: sh/restmode/restmode.sh,v 1.1 2004/07/14 08:23:10 roam Exp $
##### USER-CONFIGURABLE PORTION
#
# maxtries - a number determining how many video modes to cycle through
# before giving up
# FIXME: this should be made a command-line option
maxtries=15
##### END OF USER-CONFIGURABLE SECTION
if [ $# = 0 ]; then
echo 'Usage: restmode program [args...]' 1>&2
exit 1
fi
curmode=`xvidtune -show`
if [ "$?" -ne 0 ]; then
echo 'Could not determine the current X video mode' 1>&2
exit 1
fi
echo "restmode: original X video mode line: $curmode"
echo "restmode: executing $@"
$@
echo "restmode: attempting to restore the video mode to $curmode"
i=0
while [ "$i" -lt "$maxtries" ] && ! [ "`xvidtune -show`" = "$curmode" ] ; do
echo "restmode: switching, current mode is `xvidtune -show`"
xvidtune -prev
i=`expr "$i" + 1`
done
Attachment:
pgpPdmaBlk1W2.pgp
Description: PGP signature
|