Xsco(X) X Version 11 (Release 4) Xsco(X) Name Xsco - server for 80386- and 80486-based computers running SCO Open Desktop Syntax Xsco [:displayno] [option ...] Description Xsco is an X11 display server (Release 4) for 80386- and 80486-based com- puters running SCO Open Desktop. It is most often started with a display manager or the startx startup script. To shut down the server, press AltSysReq. On some keyboards, this is SysReq. Options :displayno sets the display number of the server. For example, Xsco :1 allows clients with DISPLAY= servername:1 to establish connections. The default displayno is 0. -h[elp] prints options and exits -a n specifies pointer acceleration. n is the ratio of how much is reported to how much the user actually moves the pointer. Pointer acceleration can also be changed with the xset utility. -auth file specifies a file that contains a collection of authorization records used to authenticate access bc disables certain kinds of error checking for bug compatibility with previous releases (for example, to work around bugs in R2 and R3 xterms and toolkits). This option does not use a dash (-). -bs disables backing store on all screens -cc visualclass specifies the default visual class. The following are legal values for visualclass: 0 StaticGray 1 GrayScale 2 StaticColor 3 PseudoColor 4 TrueColor 5 DirectColor Not all all graphics adapters support all six visual classes. Note that the -static option overrides this option. -co databasename sets the name of the RGB color database. databasename is the name of the color database, and may include a path. databasename must not include the .dir and .pag extensions of the files that constitute the database. The -co option duplicates the -fr option. -crt device specifies the console multiscreen on which the server is displayed. device must be a complete device name, such as ``/dev/tty03''. -d vendor.model.class.mode specifies your graphics adapter and its video mode (resolution). The file /usr/lib/grafinfo/grafdev contains the system-wide default string that is used on each tty when the -d option is not specified. Some examples of setting the display type or resolution with the -d option are: Xsco -d ibm.vga.vga.640x480-16 Xsco -d paradise.vga1024.svga.640x480-256 Xsco -d sigma.legend.vga.800x600-16 Xsco -d trident.tvga.svga.1024x768-16 Xsco -d trident.tvga.svga.1024x768-256 -evsync compensates for some timing problems between the event driver and the system clock. -fc font sets the cursor font. The default is /usr/lib/X11/fonts/misc/cursor. Use this only if you have a special purpose cursor font. -fn font sets the default text font. The default is fixed. Fonts are found in /usr/lib/X11/fonts. Most, however, are special purpose fonts. To display them, use the xfd client. -fp fontpath sets the font search path. By default, the server searches /usr/lib/X11/fonts/misc, /usr/lib/X11/fonts/75dpi, and /usr/lib/X11/fonts/100dpi. Use this option only if the fonts database was installed in a different directory. Note that the font search path can also be set with the xset command. -fr databasename sets the color database. The default is /usr/lib/X11/rgb. Use this option only if you have renamed the color database files, rgb.dir or rgb.pag, or moved them to a different directory. Note that this option is the same as the -co option. -I causes all remaining command line arguments to be ignored. Use this option for troubleshooting. -logo turns on the logo screen saver. This places the X logo on your screen if you do not use your screen for 10 minutes. Note that you must also use the -v off option to see the X logo. To specify how long the server must be idle before it activates the screen saver, use the - save option. -nologo turns off the logo screen saver. You can also specify this option as nologo (without the dash character). The -v option overrides this option. -nice n alters the priority of the server process by adding n to the value of the current nice. The n value is from 0 to 39. By default, the server process is assigned the value of 0. Lower values correspond to higher scheduling priority. -p n specifies how often (in seconds) to change the screen-saver pattern. This option works in conjunction with the -logo option. -r turns off auto-repeat. By default, auto-repeat is on. r turns on auto-repeat -save n activates the screen-saver after n seconds of non-use. The default is 600. This option reduces wear on your screen. If you use this option with the -logo option, the X logo moves around the screen according to how you specify the -p option. If n is ``0'', the screen saver is not activated. -static defaults to a static color visual class. This option overrides the - cc option. -su disables save under support on all screens -t threshold sets pointer acceleration threshold in pixels (that is, after how many pixels pointer acceleration should take effect). Pointer acceleration threshold can also be changed with the xset utility. -to timeout sets default connection timeout (the time allowed for the client to complete connection) in seconds -v on specifies video blanking for screen-saver. The default is on. This blanks out your screen after 10 minutes of non-use. This option over- rides the -logo and -nologo options. To specify how long the server must be idle before it activates the video blanking, use the -save option. -v off specifies screen-saver without video blanking. Instead, the root window pattern and X logo cover the screen. The pattern shifts peri- odically as specified with the -p option. -wm forces the default backing-store of all windows to be WhenMapped; a work-around for getting backing-store to apply to all windows Colors You can display up to 256 colors simultaneously on your screen, depending on the capabilities of the graphics adapter that you have installed on your system and the entries that you select when you run mkdev graphics. The RGB database files, rgb.dir and rgb.pag, are compiled using the rgb utility from the file rgb.txt. Each line of the rgb.txt file consists of three color values and a color name. The color values are decimal num- bers from 0 to 255 for the red, green, and blue components of the color. A typical line looks like this: 35 35 142 Navy Blue This entry defines Navy Blue as consisting of 35/255ths of the maximum possible intensity of red, 35/255ths of the maximum possible intensity of green, and 142/255ths of the maximum possible intensity of blue. The server is case-insensitive when searching for color names, so ``navy blue'' or ``Navy BLUE'' finds the entry above, for example. The server is sensitive to spaces in color names, so it does not equate ``Navy BLUE'' and ``NavyBLUE.'' Remember that the precision of different adapters varies. The exact same color values may not produce the exact same shade of that color on dif- ferent monitors. Screen-switching The server supports screen-switching between 10 or 12 console mul- tiscreens, depending on the number of function keys on your keyboard. The default screen-switching key sequence is Ctrl-Alt-Fn, where Fn is func- tion key 1 through 10 or 1 through 12. You can redefine the switch-screen key sequence using the xswkey program. The following conditions must be met: (1) you must be at the console; or (2) the DISPLAY environment variable must be set and at least one server must be running. The syntax of the xswkey program is: xswkey -[cas] c stands for the Ctrl key; a stands for the Alt key; and s stands for the Shift key. Specify the key sequence you want with xswkey and you can then use that key sequence with any function key. For example, to specify that you want to use Ctrl and Shift along with a function key, type: xswkey -cs Then, you switch screens by pressing Ctrl-Shift-Fn. To use only function keys without Ctrl, Alt, or Shift, use xswkey with only a hyphen and no arguments: xswkey - _________________________________________________________________________ NOTE If you are running a client on one multiscreen and you switch to another screen, the client on the original screen stops writing to the server until you switch back to that screen. _________________________________________________________________________ Environment Variables XENVIRONMENT points to a file with your default resources. DISPLAY specifies that clients open window on your display. See the X(X) manual page. Security The server provides two mechanisms for controlling client access to a display. These mechanisms include: + xhost + MIT-MAGIC-COOKIE-1 authorization protocol With earlier versions of the server, xhost was the only method available for protecting a server from unwanted connections. Although, this approach is still useful, however, it is not as secure as the MIT-MAGIC- COOKIE-1 protocol, which is new to the Release 4 version of the server. Both methods are explained below. The server can use an access-control list to decide whether or not to accept connections from clients. This list initially consists of the host on which the server is running as well as any computers listed in the /etc/Xn.hosts file, where n is the server's display number. Each line of the file should contain an Internet host name (for example, expo.lcs.mit.edu). There should be no leading or trailing spaces on any lines. For example: joesworkstation corporate.company.com You can add or remove hosts from this list and enable or disable access control using xhost. For example: % xhost +janesworkstation janesworkstation being added to access control list % xhost + all hosts being allowed (access control disabled) % xhost - all hosts being restricted (access control enabled) % xhost access control enabled (only the following hosts are allowed) joesworkstation janesworkstation corporate.company.com Unlike some window systems, X does not have any notion of window opera- tion permissions or place any restrictions on what a client can do; if a program can connect to a display, it has full run of the screen. The xhost method for controlling access to a display, as described ear- lier, allows you to specify machines that have permission to connect to a server. This approach is fine if you know that you can trust all of the users on a given machine. However, if you are interested in maintaining tighter restrictions on which clients can access a display, use the new Release 4 authorization protocol, named MIT-MAGIC-COOKIE-1. This proto- col is implemented by SCO Open Desktop X display manager, the Xsco server, Xlib, and xauth. Under this approach, a client that wishes to access a display must know the access key, called a ``magic cookie,'' that has been assigned to the server. When a client requests access to a display, it sends a magic cookie and if it matches the server's magic cookie, a connection is allowed, regardless of the location of the client. If the magic cookie is not correct, the server refuses a connection. Upon system startup, the X display manager generates a random magic cookie and stores it in a file that can only be read by the server. This magic cookie is also placed in $HOME/.Xauthority, by default, when a user logs in to the system. .Xauthority now contains the information needed for that user to connect to the server. The same magic cookie needs to exist in $HOME/.Xauthority on a remote machine for a client or remote user to gain access to the server. Use the xauth program to edit the .Xauthority file and pass the magic cookie to other machines. For more information on the xauth command, refer to the xauth(X) manual page. Note that if you run clients that were compiled for previous releases of the server and you use the MIT-MAGIC-COOKIE-1 protocol, the clients are not able to connect with the server by default. You must run xhost +yourmachinename for the clients to gain access to the server. Clients that are not compiled with X11 R4 (or later) libraries, such as those in the SCO Open Desktop 1.1 Development System, cannot recognize the MIT- MAGIC-COOKIE-1 protocol. Note too that it is not recommended that you use both the xhost and the MIT-MAGIC-COOKIE-1 protocols at the same time. This is because the xhost command overrides the security measures the authorization protocol pro- vides. Signals The server attaches special meaning to the following signals: SIGHUP causes the server to close all existing connections, free all resources, and restore all defaults. It is sent by the display man- ager whenever the user's main application (usually an xterm or win- dow manager) exits to force the server to clean up and prepare for the next user. If you switch away from the server to another con- sole multiscreen, the server waits for you to switch back before responding to this signal. SIGTERM causes the server to exit cleanly. If you switch away from the server to another console multiscreen, the server waits for you to switch back before responding to this signal. _________________________________________________________________________ NOTE Do not kill the server with the kill -9 command or by issuing SIGKILL. If the server does not exit cleanly, it leaves the keyboard and display in an unusable state. _________________________________________________________________________ Fonts Fonts are usually stored as individual files in directories. The font path controls the list of directories where the server looks when trying to open a font. Although most sites may choose to have the server start up with the appropriate font path (using the -fp option mentioned ear- lier), you can use the xset program to override it. The default font path for the server is: /usr/lib/X11/fonts/misc; /usr/lib/X11/fonts/75dpi; /usr/lib/X11/fonts/100dpi The default font path includes several miscellaneous fonts that are use- ful on all systems. It contains a very small family of fixed-width fonts (6x10, 6x12, 6x13, 8x13, 8x13bold, and 9x15) and the cursor font. It also has font-name aliases for the commonly used fonts, fixed and vari- able, among others. You create font databases by running mkfontdir in the directory contain- ing the compiled versions of the fonts (that is, the .snf files). Whenever you add fonts to a directory, run mkfontdir so the server can find the new fonts. The server cannot find any fonts in the directory if you do not run mkfontdir. Key mapping Xsco maintains two tables in memory that allow keyboard mapping to be modified dynamically. One table, called the ``modifiers list,'' contains the server keycodes corresponding to the keyboard's modifier keys, such as Shift, Alt, and Lock. The second table, called the ``keymap table,'' contains lists of key symbols (``keysyms'') that correspond to each keycode/modifier combination. Many non-U.S. keyboards have more than two symbols on some keys. To access additional symbols, a modifier known as ``Mode Switch'' switches between two groups of key symbols. Mode Switch is also known as the ``group modifier.'' The first two keysyms in the list are called Group 1. The third and fourth keysyms are called Group 2. When the group modifier is off, a keysym from Group 1 is used. When the group modifier is on, a keysym from Group 2 is used. The state of modifiers determines which keysym in the group is used. The first keysym in the selected keysym group is used when the Shift and Lock modifiers are off. The second keysym in the group is used in the following circumstances: + Shift modifier is on + Lock modifier is on and the keysym is an uppercase character + Lock modifier is on and corresponds to Shiftlock The X protocol defines how the first four keysyms are interpreted, but it does not limit the number of keysyms that may be associated with each keycode. If fewer than four keysyms are specified, the following rules apply: + If only one keysym is specified, it is used as the first keysym in both Group 1 and Group 2. + If only the Group 1 keysyms are specified, then they are used for Group 2 also. + If only three keysyms are specified, then the second keysym in Group 2 is ``NoSymbol''. If necessary, you can include the ``VoidSymbol'' keysym in a keymap to fine tune the key mapping. By default, the group modifier is not defined. You can make any key the group modifier by attaching a modifier bit (``Mod1'' though ``Mod5'') to the desired key in the modifiers list. You can monitor the effect of modifier keys and key mapping with the xev utility. It is the responsi- bility of the clients to interpret the association of the modifier bit with the new keysyms. Xsco establishes initial keyboard mapping by reading a configuration file, /usr/lib/X11/.Xsco.cfg that is created by the xsconfig utility. Users that want custom server configurations can maintain customized .Xsco.cfg files in their $HOME directories. Once Xsco is running, you can modify any entry in the modifiers list or keymap table with the xmod- map utility. Files System-wide keyboard configuration file: /usr/lib/X11/xsconfig/.Xsco.cfg System-wide default for graphics adapters and modes: /usr/lib/grafinfo/grafdev Graphics information files: /usr/lib/grafinfo/vendor/model.xgi Initial access control list: /etc/X*.hosts Font directories: /usr/lib/X11/fonts/misc /usr/lib/X11/fonts/75dpi /usr/lib/X11/fonts/100dpi Color database: /usr/lib/X11/rgb.txt /usr/lib/X11/rgb.dir /usr/lib/X11/rgb.pag Limitations If you kill the server in some way other than shutting it down with the SysReq key, you may not be able to type on the console. To remedy this, run the cleanscreen program by typing /etc/cleanscreen at the operating system prompt from a terminal. If you kill the server in some way other than with the SysReq key and you cannot log in as root, type Ctrld after running the cleanscreen program. Keyboard click and bell volume are not settable. See also mapkey(X), mkfontdir(X), rgb(X), X(X), xauth(X), xhost(X), xmodmap(X), xsconfig(X), xset(X), xswkey(X)