Click to See Complete Forum and Search --> : scaling the display in X


nowonmai
02-05-2004, 11:26 AM
I have a kiosk app which uses a 1024x768 display, but on two kiosks, the display is 800x600. Is there any straightforward way of downscaling the display to fit on the 800x600 screen.
Getting new screens is not an option, since that would entail replacing the housing too... etc etc... just loads of hassle. I also don't fancy having to rescale all the graphics and displays... again, hassle, hassle hassle.
I've had a bit of a dig around, but nothing seems to be presenting itself.

dalek
02-05-2004, 05:05 PM
I think you can change that in the XF86Config file. Should be in /etc/X11/XF86Config.

You just need to change what resolutions you want to set it at.

Look for this section: This is a example only here.

# ************************************************** ********************
# Screen sections
# ************************************************** ********************

# Any number of screen sections may be present. Each describes
# the configuration of a single screen. A single specific screen section
# may be specified from the X server command line with the "-screen"
# option.
Section "Screen"
Identifier "Screen 1"
Device "** NVIDIA (generic) [nv]"
Monitor "My Monitor"
DefaultDepth 24

Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600"
ViewPort 0 0
EndSubsection
EndSection

You need to change the line that says

Modes "1280x1024" "1024x768" "800x600" "640x480"

to read like this:

Modes "800x600"

When you do that, it should ONLY run in 800x600 resolution. Make sure your monitor can do this. It should, never seen one that couldn't but just in case.

Hope that helps. Oh, you have to be root in Linux to change that file. Be careful now.

Later

:D :D :D :D

nowonmai
02-05-2004, 05:36 PM
thanks for that, but I'd already tried it... the problem is not getting 800x600 res, but getting the 1024x768 screen to fit in 800x600, i.e. scale down by 20% in each direction, but retain all the screen. When I try what you suggested, it crops rather than resizing.

mdwatts
02-05-2004, 06:16 PM
Look into using a combination of the modes above with either ViewPort or Virtual in your X config.

The XF86Config manpage (man XF86Config) should have something on those options plus the main www.xfree86.org site in the documentation.

hlrguy
02-05-2004, 06:25 PM
Hmm, something to look into...you can start a vnc server session with any size. When another screen connects to it, if it is smaller than the running server, it will create a fullscreen version with slidebars on the bottom and side. So, what you would have is a full 1024x768, with the 800x600 screen seeing 80% of it, and being able to move around.

So, you log into the 800x600, start vncserver with 1024x768, then connect to it with vncviewer locally.

http://www.realvnc.com/man/vncviewer.html
A full-screen mode is supported. This is particularly useful when connecting to a remote screen which is the same size as your local one. If the remote screen is bigger, you can scroll by bumping the mouse against the edge of the screen.

It isn't scaled, but it isn't cropped, maybe a workable solution?

hlrguy

nowonmai
02-05-2004, 08:42 PM
Sadly, no. This is basically for a public access internet kiosk, and much as I hate to say it, the public wouldn't always be the swiftest on the uptake.
The thing needs to be instantly understandable for the lowest common denominator.
Thanks for all the suggestions though...