4. XFree86 and YouIf you're going to game under X, it's crucial that you know a bit about X. The "X Window
User HOWTO", and especially "man XF86Config" are required reading. Don't
short change yourself; read them. They have an extremely high "information to space" ratio. Many
problems can be fixed easily if you know your way around XF86Config (or
XF86Config-4). 4.1. Getting information about your X systemWhether you're trying to diagnose an X problem or requesting help from a mailing list or
Usenet newsgroup, you'll want to have as much information available as possible. These are a
set of tools you can use to obtain that information. 4.1.1. ProbeonlyOne of the best diagnostic tools and sources of information about your X system is
probeonly output. To use it, kill X if it's already running and from a
console, type: Yes, that's a single dash; so much for standards. The output of X goes to stderr,
so we have to redirect stderr with "2>" to a file named X.out. This
file will have almost everything there is to know about your X system. It's crucial that
you know the difference between the various markers you'll see in probeonly output: (--) probed (**) from config file (==) default setting
(++) from command line (!!) notice (II) informational
(WW) warning (EE) error (??) unknown.
|
Here's an example of some information I gleaned from my output: I'm running at 16 bpp color: (**) TDFX(0): Depth 16, (--) framebuffer bpp 16
|
X has detected what my videocard chipset and videoram are: (--) Chipset 3dfx Voodoo5 found
(--) TDFX(0): VideoRAM: 32768 kByte Mapping 65536 kByte
|
4.1.2. Getting info about your setup: xvidtunexvidtune is your friend when your X screen is shifted a
little bit too far to the right, or if the vertical length is too small to fit on your
monitor. However, it's a great diagnostic tool also. It'll give you: the hsync/vsync range specified in your XF86Config file the 4 horizontal and 4 vertical numbers which defines your videomode (the
1st horizontal/vertical numbers gives the screen resolution). These 8 numbers will tell you
which modeline your X uses. See the XFree86 Video Timings Howto for more information. Note
that explicit modelines are no longer necessary, since XFree 4.0.1 and up computes
modetimings automatically based on your monitor's and video card's capabilities. However,
there may be times when you'll want to play around with mode timings, like for weird
hardware or if want to tweak your display. the "dot clock" your videocard is running at.
4.1.3. Getting info about your setup: xwininfoxwininfo tells you all sorts of information about X windows. And
actually, your "background" or "root" window is considered a window too. So when xwininfo
asks you to click on the window you want the information on, click on your background.
It'll tell you things like screen and window resolution, color depth, window gravity state
(which gives a hint to the window manager about where to place new windows), backing store
usage and more. 4.1.4. Other sources of informationxdpyinfo gives cool stuff, like X version and loaded extensions
(invaluable when trying to see what's missing, like GLX, DRI, XFree86-VidMode, etc.). 4.1.5. Getting information about your 3D systemglxinfo gives lots of useful information about OpenGL like whether
direct rendering enabled, the currently installed versions of glx and mesa, vendor/renderer
strings, the GL library files being used and more. 4.2. Playing Games In X Without a Window ManagerWhen playing a game under X, you should consider starting X without a window manager
(WM). Heavyweight WMs, like Enlightenment, or full-blown desktop environments like GNOME or
KDE, may produce a noticeable slow down. Even lightweight WMs, like twm, rob your CPU of
clock cycles (and in twm's case, even full screen games will have a frame around the window).
Running a game without a WM or DE depends on how you access X. If you usually log in to a
Virtual Console and start X with "startx" try the following: Modify ~/.xinitrc, which tells X what to run upon starting. Here
is what my .xinitrc looks like: #quake3 +set r_gldriver libGR.so.1
#exec ut
#lsdldoom -server 2
#exec tribes2
exec /usr/bin/enlightenment
|
You'll usually see a window or desktop manager being executed from this file (GNOME or
KDE). Comment out the lines containing the WM or desktop manager with a pound sign (#) and
place your game on a new line with any command line arguments you want to pass. If the game
is not located in your $PATH, give its full path name. If you log directly into X using gdm, then things are a little different. These
instructions are for gdm 2.4 or greater. They *may* work with kde, but I cannot say for
certain. First, check your gdm.conf (usually in /etc/X11/gdm or /etc/gdm)
file for a line that says begins "SessionDesktopDir=blah". One of the
directories listed as options should be "/usr/share/xsessions", and is the directory which will be used in
this example. As root, change to the "/usr/share/xsessions" directory and take a look at its contents.
It should contain some .desktop files, each corresponding to an entry
you'll see in gdm's Session menu, e.g gnome.desktop,
enlightenment.destop. This example will show you how to log in to Doom3.
Copy any of the desktop files to "doom3.desktop" and open the new file in
your favourite text editor. The file will be full of alternative languages, so cut out
everything you don't want and make the file look like this: [Desktop Entry]
Encoding=UTF-8
Name=DOOM III
Comment=iD's Doom III
#if game is not in path, remember to put the full path here
Exec=/usr/games/doom3/doom3
# no icon yet, only the top three are currently used
Icon=
Type=Application
|
Save the file and log out of your window manager. At the gdm login screen, you should
now see "DOOM III" as an option in "Sessions". Naturally you can add a
.desktop file for each game you have installed |
|