![]() |
|
xdm - the X Display Manager. |
xfs - the X Font Server. |
twm - a lightweight Window Manager. |
xterm - the best known terminal emulator. Also, xterm3d and nxterm. |
xwd - a screen and window image capturer. |
xf86config - X server configuration utility. |
xdpyinfo - X display information utility. This shows great detail about the X server. |
xlsclients - lists currently connected X server clients. |
xlsfonts - lists fonts available to X. |
appres - lists the X "resources" that a program will use. |
xfontsel - an application for viewing or selecting fonts. |
xprop - a tool for displaying window "properties", such as the Class name of the client. |
xset - sets user preferences for many things, including mouse, keyboard, sound (bell), etc. |
xsetroot - a program for changing the "root window" appearance, e.g. setting a background color. |
xvidtune - an application to adjust X server video modes and monitor related settings. |
xwininfo - displays information about a selected "window". |
xmodmap - a utility for manipulating keyboard and mouse button mappings. |
Many, many fonts. And quite a bit of documentation as well. |
The X server controls both input (keyboard, mouse, etc) and output (display, monitor) devices.
Video cards - This is much tougher. The X server is determined by the the chipset. Many, many are supported. But inevitably there are always some newer cards, or even revised cards, that are not. And some may have better support and better optimization than others. Advanced features such as multi-headed displays, 3D, TV out, DRI, etc., have some support as well, though this should be researched first, as the support may be limited. Supported cards are listed: http://xfree86.org/cardlist.html.
Open source drivers are often developed incrementally. For instance, a particular card may work well for basic display purposes, but specialized features such as 3D may come much later in the development cycle. This is a quite different development model than with proprietary drivers from the manufacturer.
Keyboards -- Any standard PC type keyboard should do fine, including PS/2, USB and many infra-red devices. Probably many "non-standard" ones too ;-)
Mice and other pointer devices -- Most should be supported including PS/2, bus, serial, USB and many infra-red devices. Optical mice also. Unix has long preferred three button mice, though more buttons is supported as well. Many wheeled mice have X server support via the "IMPS/2" (IntelliMouse), or other specific protocols, though may require supplemental configuration for some individual applications. (See the Links section.)
Laptops have their own unique set of problems since the hardware tends to be very specialized, and often different from what is commonly found on desktop style systems. X is supported by many. Check for details at http://www.linux-laptop.net/.
You can check the "hardware compatibility list" at your distribution's web site too. This should give a very good idea of what should work with your release.
Newer versions of XFree86 obviously will have better hardware support. If you are using an older Linux version and don't have full hardware support, see about upgrading XFree86. Check first to see if your distribution has updates for your release.
XF86Config file defines hardware devices, and other critical components of the X server environment.
This file contains various "sections". Each section defines some fundamental aspect of XFree86, such as "InputDevice" (mouse, keyboard, joystick, etc), "monitor", or "screen". The XF86Config man page describes the sections and common values for each. Note that the values listed in the man page is not a comprehensive listing. There are many device specific "options". Check http://xfree86.org for notes and tips on your hardware.
The author's current XF86Config-4, as generated by Red Hat's installer for XFree86 4.1:
Section "ServerLayout" Identifier "XFree86 Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection Section "Files" # The location of the RGB database. RgbPath "/usr/X11R6/lib/X11/rgb" # Multiple FontPath entries are allowed (they are concatenated together) # By default, Red Hat 6.0 and later now use a font server independent of # the X server to render fonts. FontPath "unix/:7100" EndSection # Module loading section Section "Module" Load "dbe" # Double-buffering Load "GLcore" # OpenGL support Load "dri" # Direct rendering infrastructure Load "glx" # OpenGL X protocol interface Load "extmod" # Misc. required extensions Load "v4l" # Video4Linux # Load "fbdevhw" Load "pex5" Load "record" Load "xie" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" Option "XkbLayout" "us" # Option "AutoRepeat" "500 5" # when using XQUEUE, comment out the above line, and uncomment the # following line # Option "Protocol" "Xqueue" # Specify which keyboard LEDs can be user-controlled (eg, with xset(1)) # Option "Xleds" "1 2 3" # To disable the XKEYBOARD extension, uncomment XkbDisable. # Option "XkbDisable" # To customize the XKB settings to suit your keyboard, modify the # lines below (which are the defaults). For example, for a non-U.S. # keyboard, you will probably want to use: # Option "XkbModel" "pc102" # If you have a US Microsoft Natural keyboard, you can use: # Option "XkbModel" "microsoft" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Device" "/dev/mouse" Option "Protocol" "IMPS/2" Option "Emulate3Buttons" "off" Option "ZAxisMapping" "4 5" EndSection Section "Monitor" Identifier "Sylvania F74" VendorName "Unknown" ModelName "Unknown" HorizSync 30 - 70 VertRefresh 55 - 120 Option "dpms" # Modelines go here if necessary. Use xvidtune to get proper values. EndSection Section "Device" Identifier "ATI Rage 128" Driver "r128" BoardName "Unknown" EndSection Section "Device" Identifier "Linux Frame Buffer" Driver "fbdev" BoardName "Unknown" EndSection Section "Screen" Identifier "Screen0" Device "ATI Rage 128" Monitor "Sylvania F74" DefaultDepth 24 Subsection "Display" Depth 24 Modes "1400x1050" "1280x1024" "1152x864" "1024x768" "800x600" EndSubSection Subsection "Display" Depth 16 Modes "1600x1200" "1400x1050" "1280x1024" "1152x864" "1024x768" "800x600" EndSubSection Subsection "Display" Depth 8 Modes "1024x768" "800x600" "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection |
Yours may look quite different. This is just one possible configuration with gratuitous comments from Red Hat (and me), and is for a fairly ordinary set up. There is nothing exotic here like multiple screens or displays.
It is beyond the scope of this document to explain this in detail. See the XF86Config man page. Also, consider visiting xfree86.org and look for specific options that might apply to your card or other hardware.
Just one quick note on the "Screen" section above. Notice there are three sub-sections, identified as "Display". Each sub-section has a different "Depth" specified, (a.k.a. ColorDepth). The "Modes" also vary somewhat according to the respective "Depth" setting. The active "Display" sub-section that will be used, is determined by the "DefaultDepth" setting (unless over-ridden by command line options). The default in this example is defined as "24", so the first sub-section will be used. Also, the highest "Mode" listed in this sub-section will be the default mode (resolution), which here is the first one listed. The first listed mode also determines the viewable screen area, which can be smaller than the mode (resolution) itself. In which case, you would have a virtual desktop that is larger than the viewable screen. To have the viewable screen, and resolution match, have the largest value as the first value listed for each "Mode".
Another note on the "Modes" here: what you see is the result of my choices during Red Hat's Xconfigurator's configuration. These are standard resolutions, but do not have to be! This is only limited by what your hardware can support. And you don't have to use standard width x height ratios either. Something like 1355x1112 is a valid setting (if your hardware supports it and it floats your boat!).
The X server will reject any "Modes" it thinks are invalid. You can cycle through valid modes to change screen resolution with Ctrl-Alt-+ and Ctrl-Alt-- (that's the keypad plus and minus keys).
In versions prior to v4.x, you would also see many "Modeline" statements that attempted to define the monitor's capabilities. These statements would look something like:
# 1024x768 @ 100Hz, 80.21 kHz hsync Modeline "1024x768" 115.5 1024 1056 1248 1440 768 771 781 802 -HSync -VSync |
Explicit "Modeline" definitions are not required as of 4.x ;-) This sometimes required hand editing to get optimal values in earlier versions of XFree86, though is generally not necessary with v4.x. The XFree86 Video Timings HOWTO, http://www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO/index.html has a nice, but rather technical, explanation of this.
If whatever configuration utility you are using, does not automatically recognize your video card or monitor specifications correctly, you are unlikely to get an optimal configuration. In such cases, you may have to manually supply the correct values. This should be available from your owner's manual (you kept that, right?). Or, check the manufacturer's web site.
Again, hand editing of this file is generally unnecessary. Should you decide this is indeed necessary, be careful. One small error may cause X to fail. Any changes to this file will require restarting X for the changes to take effect.
Using somebody else's XF86Config file, is generally a bad idea since they are unlikely to have identical hardware.
Vendor: Unknown, Model: Unknown Num hsync: 1, Num vsync: 1 hsync range 0: 30.00 - 70.00 vsync range 0: 55.00 - 120.00 "1400x1050" 122.00 1400 1488 1640 1880 1050 1052 1064 1082 +hsync +vsync |
The last line is the "Modeline" being used to drive the current screen. See The XFree86 Video Timings HOWTO, http://www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO/index.html, for more on "Modelines".
You can test modifications, and apply them to the current session. For changes to be made permanent, they will have to be added manually to the "Monitor" section of XF86Config (or XF86Config-4 for v.4.x) with a text editor.
xvidtune will dutifully warn of you of the hazards of playing with the monitor settings. It is unlikely you can hurt anything with modern monitors. But it is best used to make minor adjustments. Use at your own risk!
Hosting by: Hurra Communications Ltd.
Generated: 2007-01-26 17:57:58