XF86Setup README
Introduction
XF86Setup is a new program to aid in the configuration of the
XFree86 servers. It is unlike previous programs (such as ConfigXF86
and xf86config) in that it is specifically designed to do as much
as possible while in graphics mode.
However, xf86config is not being replaced. XF86Setup's
resource requirements are considerably greater than those of
xf86config. It also is not usable for OS/2 configuration
(at least not yet).
XF86Setup requires that both the VGA16 and card-appropriate servers
be installed. Furthermore, the servers must include the XKEYBOARD,
XFree86-VidModeExtension, and XFree86-Misc extensions. If the
dialog program is installed, it will be used, but is not required.
If you wish to run XF86Setup without installing it first,
you need to set the environment variable
XF86SETUPLIB to point to the source directory.
The command line options are documented in the XF86Setup man
page. For instructions regarding the use of the program, see the
Quick Start Guide to XFree86 Configuration
and the on-line help.
The rest of this file contains information that is mainly of
use to someone interested in hacking on the code.
Manifest
- CHANGELOG
- List of changes in each version
- Imakefile
- Imakefile to generate the program
- LICENSE
- Redistribution license and disclaimer
- README
- ASCII version of the README
- README.html
- HTML version of the README
- TODO
- Things to be done or at least considered
- XF86Setup.man
- The man page
- main.c
- Main prog that starts the Tcl interpreter
- tclcards.c
- Routines to connect Tcl and the Cards
database reading functions
- tclcards.h
- Prototypes for above
- tclkbd.c
- Routines to connect to the XKB extension
- tclmisc.c
- Routines to connect to the XFree86-Misc
extension
- tclmisc.h
- Prototypes for above
- tclother.c
- Routines to implement misc Tcl commands
- tclvidmode.c
- Routines to connect Tcl and
XFree86-VidModeExtension
- tclvidmode.h
- Prototypes for above
- tclxfconf.c
- Interface to xf86Config.c for reading an
existing XF86Config file
- xfsconf.h
- Prototypes for above
- tclxkbui.c
- Tk widget interface to the xkbui library
- tkother.c
- Routines to implement misc commands requiring Tk
- card.tcl
- Device configuration routines
- carddata.tcl
- Information regarding supported chips and
such that is used by card.tcl
- done.tcl
- Routines that are used once the user has
finished the various configuration steps
- filelist.tcl
- Lists of files that should be checked for
proper installation
- keyboard.tcl
- Routines for keyboard and other configuration
- mondata.tcl
- Default monitor sync rates and modes
- monitor.tcl
- Monitor configuration routines
- mouse.tcl
- Mouse configuration routines
- phase1.tcl
- Tcl commands to do Phase I
- phase2.tcl
- Tcl commands for Phase II
- phase3.tcl
- Tcl commands for Phase III
- phase4.tcl
- Tcl commands for Phase IV
- phase5.tcl
- Tcl commands for Phase V
- setuplib.tcl
- Library of XF86Setup specific Tcl procs
- srvflags.tcl
- Configuration routines for server flags
- pics
- Directory containing bitmaps used by program
- scripts
- Directory of other scripts that use XF86Setup
as an interpreter to implement other clients
- tcllib
- Directory containing Tcl code to set the
standard widget bindings (from the Tcl &
Tk 4.0p3 distributions) and with misc tcl
routines and the combobox widget
New Tcl commands
The program includes a Tcl interpreter which has been extended
with additional commands (in addition to those in the Tk toolkit).
They are explained below.
Interfacing with the Cards database
Two commands have been added to read data from the
Cards database (as used by xf86config)
- xf86cards_getlist
- Return the full list of card names
- xf86cards_getentry
- Get complete info on a card
A valid card name should be supplied as an argument to
xf86cards_getentry
XFree86-VidModeExtension commands
Several commands have been added which allow the program to
communicate with the XFree86-VidModeExtension server extension,
namely:
- xf86vid_getversion
- Query extension version
- xf86vid_getbasevals
- Get the ErrorBase and EventBase
- xf86vid_getmodeline
- Get the current video mode settings
- xf86vid_getallmodelines
- Get video settings for all modes
- xf86vid_getmonitor
- Get monitor specs
- xf86vid_lockmodeswitch
- Turn on/off mode switching
- xf86vid_switchmode
- Switch to next/previous mode
Only the last two take an argument, which is either lock
or unlock in the case of xf86vid_lockmodeswitch
and either next or prev in the case of
xf86vid_switchmode.
xf86vid_getversion returns the version as a floating
point number (e.g., 1.2), whereas xf86vid_getbasevals
returns a Tcl list containing two elements.
The xf86vid_getmodeline command returns a string
which contains the standard mode line values including flags,
if any, with each value separated by a single space.
xf86vid_getallmodelines returns a Tcl list. The
number of elements corresponds to the number of valid video
modes. Each element is in the format returned by
xf86vid_getmodeline. The first element contains the
mode info for the current mode.
xf86vid_getmonitor also returns a Tcl list. The
first element is the vendor name. The second is the model name.
The third element contains all of the horizontal sync rates
as comma separated ranges (so for example if the sync rates
were 31.5, 35-40, and 45-55 the return value would be:
31.50-31.50,35.00-40.00,45.00-55.00). The last element
contains the vertical sync rates in the same format.
XFree86-Misc extension commands
Communication with the XFree86-Misc extension is possible
using these new commands:
- xf86misc_getversion
- Query extension version
- xf86misc_getbasevals
- Get the ErrorBase and EventBase
- xf86misc_getmouse
- Get the current mouse settings
- xf86misc_setmouse
- Set the current mouse settings
- xf86misc_getkeyboard
- Get the current keyboard settings
- xf86misc_setkeyboard
- Set the current keyboard settings
- xf86misc_getsaver
- Get the power saver settings
- xf86misc_setsaver
- Set the power saver settings
XKEYBOARD extension commands
A few commands are available for communicating with the XKEYBOARD
extension:
- xkb_components
- List the components that make up the
given keyboard
- xkb_free
- Free a previously allocated keyboard
description structure
- xkb_getrulesprop
- Read the _XKB_RULES_NAMES root property
- xkb_list
- Returns a list of available components
- xkb_listrules
- Returns a list of available rules
defs and their descriptions
- xkb_load
- Change the keyboard setup for the
specified components
- xkb_read
- Get keyboard information from the
server
- xkb_setrulesprop
- Set the _XKB_RULES_NAMES root property
- xkb_resolvecomponents
- Use the XKB rules to determine the
components necessay for an
appropriate keymap (requires XKB
library support that might not yet
be in the XFree86 tree).
The xkbview widget is also available as interface to the xkbui library.
Miscellaneous
Other commands added to the interpreter are:
- getuid
- Returns the real uid of the user
- server_running
- Returns true if a server is
running on the specified display
- process_running
- Checks if the specified process is running
- has_symlinks
- Returns true if running on an OS
that supports symbolic links
- link
- Makes a (soft or hard) link from
one file to another
- unlink
- Removes the specified file
- mkdir
- Create the named directory
- rmdir
- Remove the named directory
- umask
- Set the file creation mode mask
- sleep
- Sleeps for the specified number
of seconds
- findfocuswindow
- Search along an axis for a window which
accepts focus (added to the interpreter
after Tk has been initialized)
getuid just returns the numeric result of getuid().
The server_running command simply tries to perform
an XOpenDisplay() on its argument. If the call fails,
it returns false (0), otherwise it calls XCloseDisplay()
and returns true (1).