XFree86(1) XFree86(1) NAME XFree86 - X11R6 X server SYNOPSIS XFree86 [:display] [option ...] DESCRIPTION XFree86 is a full featured X server that was originally designed for UNIX and UNIX-like operating systems running on Intel x86 hardware. It now runs on a wider range of hardware and OS platforms. This work was originally derived from X386 1.2 by Thomas Roell which was contributed to X11R5 by Snitily Graphics Consulting Service. The XFree86 server architecture was redesigned for the 4.0 release, and it includes among many other things a loadable module system derived from code donated by Metro Link, Inc. The current XFree86 release is com- patible with X11R6.6. PLATFORMS XFree86 operates under a wide range of operating systems and hardware platforms. The Intel x86 (IA32) architecture is the most widely sup- ported hardware platform. Other hardware platforms include Compaq Alpha, Intel IA64, SPARC and PowerPC. The most widely supported oper- ating systems are the free/OpenSource UNIX-like systems such as Linux, FreeBSD, NetBSD and OpenBSD. Commercial UNIX operating systems such as Solaris (x86) and UnixWare are also supported. Other supported operat- ing systems include LynxOS, and GNU Hurd. Darwin and Mac OS X are sup- ported with the XDarwin(1) X server. Win32/Cygwin is supported with the XWin X server. NETWORK CONNECTIONS XFree86 supports connections made using the following reliable byte- streams: Local On most platforms, the "Local" connection type is a UNIX-domain socket. On some System V platforms, the "local" connection types also include STREAMS pipes, named pipes, and some other mechanisms. TCPIP XFree86 listens on port 6000+n, where n is the display number. This connection type can be disabled with the -nolisten option (see the Xserver(1) man page for details). ENVIRONMENT VARIABLES For operating systems that support local connections other than Unix Domain sockets (SVR3 and SVR4), there is a compiled-in list specifying the order in which local connections should be attempted. This list can be overridden by the XLOCAL environment variable described below. If the display name indicates a best-choice connection should be made (e.g. :0.0), each connection mechanism is tried until a connection succeeds or no more mechanisms are available. Note: for these OSs, the Unix Domain socket connection is treated differently from the other local connection types. To use it the connection must be made to unix:0.0. The XLOCAL environment variable should contain a list of one more more of the following: NAMED PTS SCO ISC which represent SVR4 Named Streams pipe, Old-style USL Streams pipe, SCO XSight Streams pipe, and ISC Streams pipe, respectively. You can select a single mechanism (e.g. XLOCAL=NAMED), or an ordered list (e.g. XLOCAL="NAMED:PTS:SCO"). his variable overrides the compiled-in defaults. For SVR4 it is recommended that NAMED be the first prefer- ence connection. The default setting is PTS:NAMED:ISC:SCO. To globally override the compiled-in defaults, you should define (and export if using sh or ksh) XLOCAL globally. If you use startx(1) or xinit(1), the definition should be at the top of your .xinitrc file. If you use xdm(1), the definitions should be early on in the /usr/X11R6/lib/X11/xdm/Xsession script. OPTIONS XFree86 supports several mechanisms for supplying/obtaining configura- tion and run-time parameters: command line options, environment vari- ables, the XF86Config(5) configuration file, auto-detection, and fall- back defaults. When the same information is supplied in more than one way, the highest precedence mechanism is used. The list of mechanisms is ordered from highest precedence to lowest. Note that not all param- eters can be supplied via all methods. The available command line options and environment variables (and some defaults) are described here and in the Xserver(1) manual page. Most configuration file param- eters, with their defaults, are described in the XF86Config(5) manual page. Driver and module specific configuration parameters are described in the relevant driver or module manual page. Starting with version 4.4, XFree86 has support for generating a usable configuration at run-time when no XF86Config(5) configuration file is provided. The initial version of this automatic configuration support is targeted at the most popular hardware and software platforms sup- ported by XFree86. Some details about how this works can be found in the CONFIGURATION section below and in the getconfig(1) manual page. In addition to the normal server options described in the Xserver(1) manual page, XFree86 accepts the following command line switches: vtXX XX specifies the Virtual Terminal device number which XFree86 will use. Without this option, XFree86 will pick the first available Virtual Terminal that it can locate. This option applies only to platforms such as Linux, BSD, SVR3 and SVR4, that have virtual terminal support. -allowMouseOpenFail Allow the server to start up even if the mouse device can't be opened or initialised. This is equivalent to the Allow- MouseOpenFail XF86Config(5) file option. -allowNonLocalModInDev Allow changes to keyboard and mouse settings from non-local clients. By default, connections from non-local clients are not allowed to do this. This is equivalent to the AllowNonLo- calModInDev XF86Config(5) file option. -allowNonLocalXvidtune Make the VidMode extension available to remote clients. This allows the xvidtune client to connect from another host. This is equivalent to the AllowNonLocalXvidtune XF86Config(5) file option. By default non-local connections are not allowed. -appendauto Append the automatic XFree86 server configuration data to an existing configuration file. By default this is only done when an existing configuration file does not contain any ServerLay- out sections or any Screen sections. This can be useful for providing configuration details for things not currently han- dled by the automatic configuration mechanism, such as input devices, font paths, etc. -autoconfig Use automatic XFree86 server configuration, even if a configu- ration file is available. By default automatic configuration is only used when a configuration file cannot be found. -bgamma value Set the blue gamma correction. value must be between 0.1 and 10. The default is 1.0. Not all drivers support this. See also the -gamma, -rgamma, and -ggamma options. -bpp n No longer supported. Use -depth to set the color depth, and use -fbbpp if you really need to force a non-default frame- buffer (hardware) pixel format. -configure When this option is specified, the XFree86 server loads all video driver modules, probes for available hardware, and writes out an initial XF86Config(5) file based on what was detected. This option currently has some problems on some platforms, but in most cases it is a good way to bootstrap the configuration process. This option is only available when the server is run as root (i.e, with real-uid 0). -crt /dev/ttyXX SCO only. This is the same as the vt option, and is provided for compatibility with the native SCO X server. -depth n Sets the default color depth. Legal values are 1, 4, 8, 15, 16, and 24. Not all drivers support all values. -disableModInDev Disable dynamic modification of input device settings. This is equivalent to the DisableModInDev XF86Config(5) file option. -disableVidMode Disable the the parts of the VidMode extension (used by the xvidtune client) that can be used to change the video modes. This is equivalent to the DisableVidModeExtension XF86Config(5) file option. -fbbpp n Sets the number of framebuffer bits per pixel. You should only set this if you're sure it's necessary; normally the server can deduce the correct value from -depth above. Useful if you want to run a depth 24 configuration with a 24 bpp framebuffer rather than the (possibly default) 32 bpp framebuffer (or vice versa). Legal values are 1, 8, 16, 24, 32. Not all drivers support all values. -flipPixels Swap the default values for the black and white pixels. -gamma value Set the gamma correction. value must be between 0.1 and 10. The default is 1.0. This value is applied equally to the R, G and B values. Those values can be set independently with the -rgamma, -bgamma, and -ggamma options. Not all drivers support this. -ggamma value Set the green gamma correction. value must be between 0.1 and 10. The default is 1.0. Not all drivers support this. See also the -gamma, -rgamma, and -bgamma options. -ignoreABI The XFree86 server checks the ABI revision levels of each mod- ule that it loads. It will normally refuse to load modules with ABI revisions that are newer than the server's. This is because such modules might use interfaces that the server does not have. When this option is specified, mismatches like this are downgraded from fatal errors to warnings. This option should be used with care. -keeptty Prevent the server from detaching its initial controlling ter- minal. This option is only useful when debugging the server. Not all platforms support (or can use) this option. -keyboard keyboard-name Use the XF86Config(5) file InputDevice section called keyboard- name as the core keyboard. This option is ignored when the ServerLayout section specifies a core keyboard. In the absence of both a ServerLayout section and this option, the first rele- vant InputDevice section is used for the core keyboard. -layout layout-name Use the XF86Config(5) file ServerLayout section called layout- name. By default the first ServerLayout section is used. -logfile filename Use the file called filename as the XFree86 server log file. The default log file is /var/log/XFree86.n.log on most plat- forms, where n is the display number of the XFree86 server. The default may be in a different directory on some platforms. This option is only available when the server is run as root (i.e, with real-uid 0). -logverbose [n] Sets the verbosity level for information printed to the XFree86 server log file. If the n value isn't supplied, each occur- rence of this option increments the log file verbosity level. When the n value is supplied, the log file verbosity level is set to that value. The default log file verbosity level is 3. -modulepath searchpath Set the module search path to searchpath. searchpath is a comma separated list of directories to search for XFree86 server modules. This option is only available when the server is run as root (i.e, with real-uid 0). -noappendauto Disable appending the automatic XFree86 server configuration to a partial static configuration. -nosilk Disable Silken Mouse support. -pixmap24 Set the internal pixmap format for depth 24 pixmaps to 24 bits per pixel. The default is usually 32 bits per pixel. There is normally little reason to use this option. Some client appli- cations don't like this pixmap format, even though it is a per- fectly legal format. This is equivalent to the Pixmap XF86Con- fig(5) file option. -pixmap32 Set the internal pixmap format for depth 24 pixmaps to 32 bits per pixel. This is usually the default. This is equivalent to the Pixmap XF86Config(5) file option. -pointer pointer-name Use the XF86Config(5) file InputDevice section called pointer- name as the core pointer. This option is ignored when the ServerLayout section specifies a core pointer. In the absence of both a ServerLayout section and this option, the first rele- vant InputDevice section is used for the core pointer. -probeonly Causes the server to exit after the device probing stage. The XF86Config(5) file is still used when this option is given, so information that can be auto-detected should be commented out. -quiet Suppress most informational messages at startup. The verbosity level is set to zero. -rgamma value Set the red gamma correction. value must be between 0.1 and 10. The default is 1.0. Not all drivers support this. See also the -gamma, -bgamma, and -ggamma options. -scanpci When this option is specified, the XFree86 server scans the PCI bus, and prints out some information about each device that was detected. See also scanpci(1) and pcitweak(1). -screen screen-name Use the XF86Config(5) file Screen section called screen-name. By default the screens referenced by the default ServerLayout section are used, or the first Screen section when there are no ServerLayout sections. -showconfig This is the same as the -version option, and is included for compatibility reasons. It may be removed in a future release, so the -version option should be used instead. -weight nnn Set RGB weighting at 16 bpp. The default is 565. This applies only to those drivers which support 16 bpp. -verbose [n] Sets the verbosity level for information printed on stderr. If the n value isn't supplied, each occurrence of this option increments the verbosity level. When the n value is supplied, the verbosity level is set to that value. The default ver- bosity level is 0. -version Print out the server version, patchlevel, release date, the operating system/platform it was built on, and whether it includes module loader support. -xf86config file Read the server configuration from file. This option will work for any file when the server is run as root (i.e, with real-uid 0), or for files relative to a directory in the config search path for all other users. KEYBOARD The XFree86 server is normally configured to recognize various special combinations of key presses that instruct the server to perform some action, rather than just sending the key press event to a client appli- cation. The default XKEYBOARD keymap defines the key combinations listed below. The server also has these key combinations builtin to its event handler for cases where the XKEYBOARD extension is not being used. When using the XKEYBOARD extension, which key combinations per- form which actions is completely configurable. For more information about when the builtin event handler is used to recognize the special key combinations, see the documentation on the HandleSpecialKeys option in the XF86Config(5) man page. The special combinations of key presses recognized directly by XFree86 are: Ctrl+Alt+Backspace Immediately kills the server -- no questions asked. This can be disabled with the DontZap XF86Config(5) file option. Ctrl+Alt+Keypad-Plus Change video mode to next one specified in the configuration file. This can be disabled with the DontZoom XF86Config(5) file option. Ctrl+Alt+Keypad-Minus Change video mode to previous one specified in the configura- tion file. This can be disabled with the DontZoom XF86Con- fig(5) file option. Ctrl+Alt+Keypad-Multiply Not treated specially by default. If the AllowClosedownGrabs XF86Config(5) file option is specified, this key sequence kills clients with an active keyboard or mouse grab as well as killing any application that may have locked the server, nor- mally using the XGrabServer(3) Xlib function. Ctrl+Alt+Keypad-Divide Not treated specially by default. If the AllowDeactivateGrabs XF86Config(5) file option is specified, this key sequence deac- tivates any active keyboard and mouse grabs. Ctrl+Alt+F1...F12 For BSD and Linux systems with virtual terminal support, these keystroke combinations are used to switch to virtual terminals 1 through 12, respectively. This can be disabled with the DontVTSwitch XF86Config(5) file option. CONFIGURATION XFree86 typically uses a configuration file called XF86Config for its initial setup. Refer to the XF86Config(5) manual page for information about the format of this file. Starting with version 4.4, XFree86 has a mechanism for automatically generating a built-in configuration at run-time when no XF86Config file is present. The current version of this automatic configuration mecha- nism works in three ways. The first is via enhancements that have made many components of the XF86Config file optional. This means that information that can be probed or reasonably deduced doesn't need to be specified explicitly, greatly reducing the amount of built-in configuration information that needs to be generated at run-time. The second is to use an external utility called getconfig(1), when available, to use meta-configuration information to generate a suitable configuration for the primary video device. The meta-configuration information can be updated to allow an existing installation to get the best out of new hardware or to work around bugs that are found post- release. The third is to have "safe" fallbacks for most configuration informa- tion. This maximises the likelihood that the XFree86 server will start up in some usable configuration even when information about the spe- cific hardware is not available. The automatic configuration support for XFree86 is work in progress. It is currently aimed at the most popular hardware and software plat- forms supported by XFree86. Enhancements are planned for future releases. FILES The XFree86 server config file can be found in a range of locations. These are documented fully in the XF86Config(5) manual page. The most commonly used locations are shown here. /etc/X11/XF86Config Server configuration file. /etc/X11/XF86Config-4 Server configuration file. /etc/XF86Config Server configuration file. /usr/X11R6/etc/XF86Config Server configuration file. /usr/X11R6/lib/X11/XF86Config Server configuration file. /var/log/XFree86.n.log Server log file for display n. /usr/X11R6/bin/* Client binaries. /usr/X11R6/include/* Header files. /usr/X11R6/lib/* Libraries. /usr/X11R6/lib/X11/fonts/* Fonts. /usr/X11R6/lib/X11/rgb.txt Color names to RGB mapping. /usr/X11R6/lib/X11/XErrorDB Client error message database. /usr/X11R6/lib/X11/app-defaults/* Client resource specifications. /usr/X11R6/man/man?/* Manual pages. /etc/Xn.hosts Initial access control list for display n. SEE ALSO X(7), Xserver(1), xdm(1), xinit(1), XF86Config(5), xf86config(1), xf86cfg(1), xvidtune(1), apm(4), ati(4), chips(4), cirrus(4), cyrix(4), fbdev(4), glide(4), glint(4), i128(4), i740(4), i810(4), imstt(4), mga(4), neomagic(4), nsc(4), nv(4), r128(4), rendition(4), s3virge(4), siliconmotion(4), sis(4), sunbw2(4), suncg14(4), suncg3(4), suncg6(4), sunffb(4), sunleo(4), suntcx(4), tdfx(4), tga(4), trident(4), tseng(4), v4l(4), vesa(4), vga(4), vmware(4), README , RELNOTES , README.mouse , README.DRI , Install . AUTHORS XFree86 has many contributors world wide. The names of most of them can be found in the documentation, CHANGELOG files in the source tree, and in the actual source code. The names of the contributors to the current release can be found in the release notes . XFree86 was originally based on X386 1.2 by Thomas Roell, which was contributed to the then X Consortium's X11R5 distribution by SGCS. The project that became XFree86 was originally founded in 1992 by David Dawes, Glenn Lai, Jim Tsillas and David Wexelblat. XFree86 was later integrated in the then X Consortium's X11R6 release by a group of dedicated XFree86 developers, including the following: Stuart Anderson, Doug Anson, Gertjan Akkerman, Mike Bernson, Robin Cutshaw, David Dawes, Marc Evans, Pascal Haible, Matthieu Herrb, Dirk Hohndel, David Holland, Alan Hourihane, Jeffrey Hsu, Glenn Lai, Ted Lemon, Rich Murphey, Hans Nasten, Mark Snitily, Randy Ter- bush, Jon Tombs, Kees Verstoep, Paul Vixie, Mark Weaver, David Wex- elblat, Philip Wheatley, Thomas Wolfram, Orest Zborowski. Contributors to XFree86 4.4.0 include: Roi a Torkilsheyggi, Dave Airlie, Andrew Aitchison, Marco Antonio Alvarez, Alexandr Andreev, Jack Angel, Eric Anholt, Ani, Juuso berg, Sergey Babkin, Alexey Baj, Bang Jun-Young, Uberto Barbini, Kyle Bateman, Matthew W. S. Bell, Vano Beridze, Hiroyuki Bessho, Andrew Bevitt, Christian Biere, Martin Birgmeier, Jakub Bogusz, Le Hong Boi, Paul Bolle, Charl Botha, Stanislav Brabec, Eric Branlund, Rob Braun, Peter Breitenlohner, Michael Breuer, Kevin Brosius, Frederick Bruckman, Oswald Buddenhagen, Nilgn Belma Bugner, Julian Cable, Yukun Chen, Ping Cheng, Juliusz Chroboczek, Fred Clift, Alan Coopersmith, Martin Costabel, Alan Cox, Michel Dnzer, David Dawes, Leif Delgass, Richard Dengler, John Dennis, Thomas Dickey, Randy Dunlap, Chris Edgington, Paul Eggert, Paul Elliott, Emmanuel, Visanu Euarchukiati, Mike Fabian, Rik Faith, Brian Feldman, Wu Jian Feng, Kevin P. Fleming, Jose Fonseca, Hugues Fournier, Miguel Fre- itas, Quentin Garnier, Brre Gaup, Michael Geddes, Frank Giessler, Hansruedi Glauser, Wolfram Gloger, Alexander Gottwald, Guido Guen- ther, Ralf Habacker, Bruno Haible, Lindsay Haigh, John Harper, James Harris, Mike A. Harris, Bryan W. Headley, John Heasley, Thomas Hellstrm, Matthieu Herrb, Jonathan Hough, Alan Hourihane, Joel Ray Holveck, Harold L Hunt II, Ricardo Y. Igarashi, Mutsumi ISHIKAWA , Tsuyoshi ITO, Kean Johnston, Nicolas JOLY, Phil Jones, Roman Kagan, Theppitak Karoonboonyanan, Etsushi Kato, Koike Kazuhiko, Aidan Kehoe, Juergen Keil, Andreas Kies, Thomas Klausner, Mario Klebsch, Egmont Koblinger, Vlatko Kosturjak, Kusanagi Kouichi, Mel Kravitz, Peter Kunzmann, Nick Kurshev, Mashrab Kuva- tov, Marc La France, Radics Laszlo, Zarick Lau, Nolan Leake, Michel Lespinasse, Noah Levitt, Dave Love, H.J. Lu, Lubos Lunak, Sven Luther, Torrey T. Lyons, Calum Mackay, Paul Mackerras, Roland Mainz, Kevin Martin, Michal Maruska, Kensuke Matsuzaki, maxim, Stephen McCamant, Ferris McCormick, Luke Mewburn, Nicholas Miell, Robert Millan, Hisashi MIYASHITA, Gregory Mokhin, Patrik Mont- gomery, Joe Moss, Josselin Mouette, Frank Murphy, Reiko Nakajima, Paul Nasrat, Dan Nelson, Bastien Nocera, Alexandre Oliva, Hideki ONO, Peter Osterlund, Sergey V. Oudaltsov, Samus Ciardhuin, Bob Paauwe, Paul Pacheco, Tom Pala, Ivan Pascal, T. M. Pederson, Earle F. Philhower III, Nils Philippsen, Manfred Pohler, Alexander Pohoyda, Alain Poirier, Arnaud Quette, Jim Radford, Dale Rahn, Lucas Correia Villa Real, Ren Rebe, Tyler Retzlaff, Sebastian Rit- tau, Tim Roberts, Alastair M. Robinson, Branden Robinson, Daniel Rock, Ian Romanick, Bernhard Rosenkraenzer, Mns Rullgrd, Andriy Rysin, Supphachoke Santiwichaya, Pablo Saratxaga, Matthias Scheler, Jens Schweikhardt, Danilo Segan, Shantonu Sen, Stas Sergeev, Jung- shik Shin, Nikola Smolenski, Andreas Stenglein, Paul Stewart, Alexander Stohr, Alan Strohm, Will Styles, James Su, Mike Sulivan, Ville Syrjala, Slava Sysoltsev, Akira TAGOH, Toshimitsu Tanaka, Akira Taniguchi, Owen Taylor, Neil Terry, Jonathan Thambidurai, John Tillman, Adam Tlalka, Linus Torvalds, Christian Tosta, Warren Turkal, Stephen J. Turnbull, Ted Unangst, Mike Urban, Simon Vallet, Thuraiappah Vaseeharan, Luc Verhaegen, Yann Vernier, Michail Vidi- assov, Sebastiano Vigna, Mark Vojkovich, Stephane Voltz, Boris Weissman, Keith Whitwell, Thomas Winischhofer, Eric Wittry, Kim Woelders, Roy Wood, Jason L. Wright, Joerg Wunsch, Chisato Yamauchi, Hui Yu. Contributors to XFree86 4.5.0 include: Szilveszter Adam, Tim Adye, Taneem Ahmed, Andrew Aitchison, Raoul Arranz, Zaeem Arshad, Dwayne Bailey, Ilyas Bakirov, Denis Barbier, Kyle Bateman, J. Scott Berg, Thomas Biege, Dmitry Bolkhovityanov, H Merijn Brand, Peter Breitenlohner, Benjamin Burke, Dale L Busacker, busmanus, Julian Cable, Mike Castle, David M. Clay, Philip Clayton, Alan Coopersmith, Ricardo Cruz, Michel Dnzer, J. D. Darling, David Dawes, Michael Dawes, Rafael vila de Espndola, Rick De Laet, Josip Deanovic, Angelus Dei, Laurent Deniel, Thomas Dickey, Stefan Dirsch, Charles Dobson, DRI Project, Emmanuel Dreyfus, Boris Dusek, Georgina O. Economou, Egbert Eich, Bernd Ernesti, Chris Evans, Rik Faith, Adrian Fiechter, Matthew Fischer, FreeType Team, Terry R. Frienrichsen, Christopher Fynn, Hubert Gburzynski, Nicolas George, Frank Giessler, Fred Gleason, Dmitry Golubev, Alexander Gottwald, Herbert Graeber, Miroslav Halas, John Harper, Harshula, John Heasley, Matthieu Herrb, David Holl, Alex Holland, Peng Hongbo, Alan Hourihane, Harold L Hunt II, Alan Iwi, Timur Jamakeev, Paul Jarc, Kean Johnston, Nicolas Joly, Mark Kandianis, Kaleb Keithley, Chamath Keppitiyagama, Jung-uk Kim, Satoshi Kimura, Michael Knud- sen, Vlatko Kosturjak, Alexei Kosut, Anton Kovalenko, Joachim Kue- bart, Marc La France, David Laight, Zarick Lau, Pierre Lalet, Michael Lampe, Lanka Linux User Group, Nolan Leake, Werner Lemberg, Dejan Lesjak, Noah Levitt, Greg Lewis, Bernhard R Link, Jonas Lund, S. Lussos, Torrey T. Lyons, Roland Mainz, N Marci, Kevin Martin, Stephen McCamant, Mesa Developers, Luke Mewburn, Petr Mladek, Bram Moolenaar, Steve Murphy, Ishikawa MUTSUMI, Radu Octavian, Lee Olsen, Greg Parker, Ivan Pascal, Alexander E. Patrakov, Mike Pechkin, Sos Pter, Zvezdan Petkovic, Alexander Pohoyda, Xie Qian, Bill Randle, Adam J. Richter, Tim Roberts, Bernhard Rosenkraenzer, Andreas Rden, Steve Rumble, Oleg Safiullin, Ty Sarna, Leo Savernik, Barry Scott, Shantonu Sen, Yu Shao, Andreas Schwab, Matthias Scheler, Dan Shearer, Michael Shell, Paul Shupak, Alexander Stohr, Marius Strobl, Mikko Markus Torni, Jess Thrysoee, Izumi Tsutsui, Tungsten Graphics, Ryan Underwood, Tristan Van Berkom, Michael van Elst, Phillip Vandry, Roman Vasylyev, Luc Verhaegen, Rodion Vshevtsov, Mark Vojkovich, Edi Werner, Keith Whitwell, Scot Wilcoxon, Dave Williss, Thomas Winischhofer, Kuang-che Wu, X-Oz Technologies, Chisato Yamauchi, Michael Yaroslavtsev, David Yerger, Su Yong, Hui Yu, Sagi Zeevi, Christian Zietz. Contributors to XFree86 4.6.0 include: ASPEED Technologies, Andrew Aitchison, James Ascroft-Leigh, tienne Bersac, Peter Breitenlohner, Terry Chang, Y. C. Chen, Jeff Chua, James Cloos, Alan Coopersmith, Miguel Gonzlez Cuadrado, David Dawes, Thomas Dickey, Stefan Dirsch, Bernd Ernesti, Jordan Frank, Will L G, Frank Giessler, Thorsten Glaser, Damian Janusz Gruszka, Lukas Hejtmanek, Evil Mr Henry, Jens Herden, Alan Hourihane, Nico- las Joly, Bang Jun-Young, Alexander Kabaev, Satoshi Kimura, Milos Komarcevic, Marc La France, Dejan Lesjak, Khong Jye Liew, Jong Lin, Michael Lorenz, Michael Macallan, Michal Maruska, Luke Mewburn, Timothy Musson, Newsh, Takaaki Nomura, Ivan Pascal, Bob Peterson, Pierre, Aaron Plattner, Alexander Pohoyda, Jeremy C. Reed, Conrad Schuler, Bruno Schwander, Olaf Seibert, Aaron Solochek, Helmar Spangenberg, Ken Stailey, Tobias Stoeckmann, Tungsten Graphics, James Richard Tyrer, Staffan Ulfberg, Denis Vlasenko, Mark Vojkovich, Tom Williams, Dave Williss, X-Oz Technologies, XGI, Christos Zoulas. XFree86 source is available from the FTP server , and from the XFree86 CVS server . Documentation and other information can be found from the XFree86 web site . LEGAL XFree86 is copyright software, provided under licenses that permit mod- ification and redistribution in source and binary form without fee. Portions of XFree86 are copyright by The XFree86 Project, Inc. and numerous authors and contributors from around the world. Licensing information can be found at . Refer to the source code for specific copyright notices. XFree86(R) is a registered trademark of The XFree86 Project, Inc. XF86Config(5) XF86Config(5) NAME XF86Config - Configuration File for XFree86 INTRODUCTION XFree86 supports several mechanisms for supplying/obtaining configura- tion and run-time parameters: command line options, environment vari- ables, the XF86Config configuration file, auto-detection, and fallback defaults. When the same information is supplied in more than one way, the highest precedence mechanism is used. The list of mechanisms is ordered from highest precedence to lowest. Note that not all parame- ters can be supplied via all methods. The available command line options and environment variables (and some defaults) are described in the Xserver(1) and XFree86(1) manual pages. Most configuration file parameters, with their defaults, are described below. Driver and mod- ule specific configuration parameters are described in the relevant driver or module manual page. Starting with version 4.4, XFree86 has support for generating a usable configuration at run-time when no XF86Config file is provided. The initial version of this automatic configuration support is targeted at the most popular hardware and software platforms supported by XFree86. Some details about how this works can be found in the XFree86(1) and getconfig(1) manual pages. Starting with version 4.5, it is possible for this automatically gener- ated configuration to supplement a partial static configuration. The partial static configuration can be used to provide non-default config- uration details for things that are not currently handled by the auto- matic configuration mechanism. DESCRIPTION XFree86 uses a configuration file called XF86Config for its initial setup. This configuration file is searched for in the following places when the server is started as a normal user: /etc/X11/ /usr/X11R6/etc/X11/ /etc/X11/$XF86CONFIG /usr/X11R6/etc/X11/$XF86CONFIG /etc/X11/XF86Config-4 /etc/X11/XF86Config /etc/XF86Config /usr/X11R6/etc/X11/XF86Config. /usr/X11R6/etc/X11/XF86Config-4 /usr/X11R6/etc/X11/XF86Config /usr/X11R6/lib/X11/XF86Config. /usr/X11R6/lib/X11/XF86Config-4 /usr/X11R6/lib/X11/XF86Config where is a relative path (with no ".." components) specified with the -xf86config command line option, $XF86CONFIG is the relative path (with no ".." components) specified by that environment variable, and is the machine's hostname as reported by gethostname(3). When the XFree86 server is started by the "root" user, the config file search locations are as follows: /etc/X11/ /usr/X11R6/etc/X11/ $XF86CONFIG /etc/X11/$XF86CONFIG /usr/X11R6/etc/X11/$XF86CONFIG $HOME/XF86Config /etc/X11/XF86Config-4 /etc/X11/XF86Config /etc/XF86Config /usr/X11R6/etc/X11/XF86Config. /usr/X11R6/etc/X11/XF86Config-4 /usr/X11R6/etc/X11/XF86Config /usr/X11R6/lib/X11/XF86Config. /usr/X11R6/lib/X11/XF86Config-4 /usr/X11R6/lib/X11/XF86Config where is the path specified with the -xf86config command line option (which may be absolute or relative), $XF86CONFIG is the path specified by that environment variable (absolute or relative), $HOME is the path specified by that environment variable (usually the home directory), and is the machine's hostname as reported by gethostname(3). The XF86Config file is composed of a number of sections which may be present in any order. Each section has the form: Section "SectionName" SectionEntry ... EndSection The section names are: Files File pathnames ServerFlags Server flags Module Dynamic module loading InputDevice Input device description Device Graphics device description VideoAdaptor Xv video adaptor description Monitor Monitor description Modes Video modes descriptions Screen Screen configuration ServerLayout Overall layout DRI DRI-specific configuration Vendor Vendor-specific configuration The following obsolete section names are still recognised for compati- bility purposes. In new config files, the InputDevice section should be used instead. Keyboard Keyboard configuration Pointer Pointer/mouse configuration The old XInput section is no longer recognised. The ServerLayout sections are at the highest level. They bind together the input and output devices that will be used in a session. The input devices are described in the InputDevice sections. Output devices usu- ally consist of multiple independent components (e.g., and graphics board and a monitor). These multiple components are bound together in the Screen sections, and it is these that are referenced by the Server- Layout section. Each Screen section binds together a graphics board and a monitor. The graphics boards are described in the Device sec- tions, and the monitors are described in the Monitor sections. Config file keywords are case-insensitive, and "_" characters are ignored. Most strings (including Option names) are also case-insensi- tive, and insensitive to white space and "_" characters. Each config file entry usually takes up a single line in the file. They consist of a keyword, which is possibly followed by one or more arguments, with the number and types of the arguments depending on the keyword. The argument types are: Integer an integer number in decimal, hex or octal Real a floating point number String a string enclosed in double quote marks (") Note: hex integer values must be prefixed with "0x", and octal values with "0". A special keyword called Option may be used to provide free-form data to various components of the server. The Option keyword takes either one or two string arguments. The first is the option name, and the optional second argument is the option value. Some commonly used option value types include: Integer an integer number in decimal, hex or octal Real a floating point number String a sequence of characters Boolean a boolean value (see below) Frequency a frequency value (see below) Note that all Option values, not just strings, must be enclosed in quotes. Boolean options may optionally have a value specified. When no value is specified, the option's value is TRUE. The following boolean option values are recognised as TRUE: 1, on, true, yes and the following boolean option values are recognised as FALSE: 0, off, false, no If an option name is prefixed with "No", then the option value is negated. Example: the following option entries are equivalent: Option "Accel" "Off" Option "NoAccel" Option "NoAccel" "On" Option "Accel" "false" Option "Accel" "no" Frequency option values consist of a real number that is optionally followed by one of the following frequency units: Hz, k, kHz, M, MHz When the unit name is omitted, the correct units will be determined from the value and the expectations of the appropriate range of the value. It is recommended that the units always be specified when using frequency option values to avoid any errors in determining the value. FILES SECTION The config file may have multiple Files sections. These are used to specify some path names required by the server. Earlier Files sections have priority over later sections. This means that a path name speci- fied in a Files section cannot be overridden by a later Files section (this behaviour may change in the future). Some of these paths can also be set from the command line (see Xserver(1) and XFree86(1)). The command line settings override the values specified in the config file. The Files section is optional, as are all of the entries that may appear in it. The entries that can appear in this section are: Identifier "name" specifies an optional identifying name for the Files section. FontPath "path" sets the search path for fonts. This path is a comma separated list of font path elements which the XFree86 server searches for font databases. Multiple FontPath entries may be specified, and they will be concatenated to build up the fontpath used by the server. Font path elements may be either absolute directory paths, or a font server identifier. Font server identifiers have the form: /: where is the transport type to use to connect to the font server (e.g., unix for UNIX-domain sockets or tcp for a TCP/IP connection), is the hostname of the machine running the font server, and is the port number that the font server is listening on (usually 7100). When this entry is not specified in the config file, the server falls back to the compiled-in default font path, which contains the following font path elements: /usr/X11R6/lib/X11/fonts/misc/ /usr/X11R6/lib/X11/fonts/Speedo/ /usr/X11R6/lib/X11/fonts/Type1/ /usr/X11R6/lib/X11/fonts/CID/ /usr/X11R6/lib/X11/fonts/75dpi/ /usr/X11R6/lib/X11/fonts/100dpi/ The recommended font path contains the following font path ele- ments: /usr/X11R6/lib/X11/fonts/local/ /usr/X11R6/lib/X11/fonts/misc/ /usr/X11R6/lib/X11/fonts/75dpi/:unscaled /usr/X11R6/lib/X11/fonts/100dpi/:unscaled /usr/X11R6/lib/X11/fonts/Type1/ /usr/X11R6/lib/X11/fonts/CID/ /usr/X11R6/lib/X11/fonts/Speedo/ /usr/X11R6/lib/X11/fonts/75dpi/ /usr/X11R6/lib/X11/fonts/100dpi/ Font path elements that are found to be invalid are removed from the font path when the server starts up. RGBPath "path" sets the path name for the RGB color database. When this entry is not specified in the config file, the server falls back to the compiled-in default RGB path, which is: /usr/X11R6/lib/X11/rgb Note that an implicit .txt is added to this path if the server was com- piled to use text rather than binary format RGB color databases. ModulePath "path" sets the search path for loadable XFree86 server modules. This path is a comma separated list of directories which the XFree86 server searches for loadable modules loading in the order speci- fied. Multiple ModulePath entries may be specified, and they will be concatenated to build the module search path used by the server. Options Option flags may be specified in Files sections. SERVERFLAGS SECTION The config file may have multiple ServerFlags sections. These are used to specify some global XFree86 server options. Earlier ServerFlags sections have priority over later sections. This means that an option specified in a ServerFlags section cannot be overridden by a later ServerFlags section. Except for the Identifier entry, all of the entries in this section are Options, although for compatibility pur- poses some of the old style entries are still recognised. Those old style entries are not documented here, and using them is discouraged. The ServerFlags section is optional, as are the entries that may be specified in it. Options specified in this section (with the exception of the "Default- ServerLayout" Option) may be overridden by Options specified in the active ServerLayout section. Options with command line equivalents are overridden when their command line equivalent is used. Entries recog- nised by this section are: Identifier "name" specifies an optional identifying name for the ServerFlags sec- tion. Option "DefaultServerLayout" "layout-id" This specifies the default ServerLayout section to use in the absence of the -layout command line option. Option "NoTrapSignals" "boolean" This prevents the XFree86 server from trapping a range of unex- pected fatal signals and exiting cleanly. Instead, the XFree86 server will die and drop core where the fault occurred. The default behaviour is for the XFree86 server to exit cleanly, but still drop a core file. In general you never want to use this option unless you are debugging an XFree86 server problem and know how to deal with the consequences. Option "DontVTSwitch" "boolean" This disallows the use of the Ctrl+Alt+Fn sequence (where Fn refers to one of the numbered function keys). That sequence is normally used to switch to another "virtual terminal" on operat- ing systems that have this feature. When this option is enabled, that key sequence has no special meaning and is passed to clients. Default: off. Option "DontZap" "boolean" This disallows the use of the Ctrl+Alt+Backspace sequence. That sequence is normally used to terminate the XFree86 server. When this option is enabled, that key sequence has no special meaning and is passed to clients. Default: off. Option "DontZoom" "boolean" This disallows the use of the Ctrl+Alt+Keypad-Plus and Ctrl+Alt+Keypad-Minus sequences. These sequences allows you to switch between video modes. When this option is enabled, those key sequences have no special meaning and are passed to clients. Default: off. Option "DisableVidModeExtension" "boolean" This disables the parts of the VidMode extension used by the xvidtune client that can be used to change the video modes. Default: the VidMode extension is enabled. Option "AllowNonLocalXvidtune" "boolean" This allows the xvidtune client (and other clients that use the VidMode extension) to connect from another host. Default: off. Option "DisableModInDev" "boolean" This disables the parts of the XFree86-Misc extension that can be used to modify the input device settings dynamically. Default: that functionality is enabled. Option "AllowNonLocalModInDev" "boolean" This allows a client to connect from another host and change keyboard and mouse settings in the running server. Default: off. Option "AllowMouseOpenFail" "boolean" This allows the server to start up even if the mouse device can't be opened/initialised. Default: false. Option "VTInit" "command" Runs command after the VT used by the server has been opened. The command string is passed to "/bin/sh -c", and is run with the real user's id with stdin and stdout set to the VT. The purpose of this option is to allow system dependent VT initiali- sation commands to be run. This option should rarely be needed. Default: not set. Option "VTSysReq" "boolean" enables the SYSV-style VT switch sequence for non-SYSV systems which support VT switching. This sequence is Alt-SysRq followed by a function key (Fn). This prevents the XFree86 server trap- ping the keys used for the default VT switch sequence, which means that clients can access them. Default: off. Option "XkbDisable" "boolean" disable/enable the XKEYBOARD extension. The -kb command line option overrides this config file option. Default: XKB is enabled. Option "BlankTime" "time" sets the inactivity timeout for the blanking phase of the screensaver. time is in minutes. This is equivalent to the XFree86 server's `-s' flag, and the value can be changed at run- time with xset(1). Default: 10 minutes. Option "StandbyTime" "time" sets the inactivity timeout for the "standby" phase of DPMS mode. time is in minutes, and the value can be changed at run- time with xset(1). Default: 20 minutes. This is only suitable for VESA DPMS compatible monitors, and may not be supported by all video drivers. It is only enabled for screens that have the "DPMS" option set (see the MONITOR section below). Option "SuspendTime" "time" sets the inactivity timeout for the "suspend" phase of DPMS mode. time is in minutes, and the value can be changed at run- time with xset(1). Default: 30 minutes. This is only suitable for VESA DPMS compatible monitors, and may not be supported by all video drivers. It is only enabled for screens that have the "DPMS" option set (see the MONITOR section below). Option "OffTime" "time" sets the inactivity timeout for the "off" phase of DPMS mode. time is in minutes, and the value can be changed at run-time with xset(1). Default: 40 minutes. This is only suitable for VESA DPMS compatible monitors, and may not be supported by all video drivers. It is only enabled for screens that have the "DPMS" option set (see the MONITOR section below). Option "Pixmap" "bpp" This sets the pixmap format to use for depth 24. Allowed values for bpp are 24 and 32. Default: 32 unless driver constraints don't allow this (which is rare). Note: some clients don't behave well when this value is set to 24. Option "PC98" "boolean" Specify that the machine is a Japanese PC-98 machine. This should not be enabled for anything other than the Japanese-spe- cific PC-98 architecture. Default: auto-detected. Option "Log" "logflag" This option enables special handling for log files that may be useful when debugging certain types of problems. The values for logflag are Flush and Sync. Flush causes the log file buffer to be flushed after each write. Sync causes the log file buffer to be flushed and the file data to be written to the disk after each write. The default is for neither of these flags to be enabled. Enabling these flags during normal operation may degrade performance and/or lengthen startup time. Option "NoPM" "boolean" Disables something to do with power management events. Default: PM enabled on platforms that support it. Option "Xinerama" "boolean" enable or disable XINERAMA extension. Default is disabled. Option "AllowDeactivateGrabs" "boolean" This option enables the use of the Ctrl+Alt+Keypad-Divide key sequence to deactivate any active keyboard and mouse grabs. Default: off. Option "AllowClosedownGrabs" "boolean" This option enables the use of the Ctrl+Alt+Keypad-Multiply key sequence to kill clients with an active keyboard or mouse grab as well as killing any application that may have locked the server, normally using the XGrabServer(3) Xlib function. Default: off. Note that the options AllowDeactivateGrabs and AllowClosedown- Grabs will allow users to remove the grab used by screen saver/locker programs. An API was written to such cases. If you enable this option, make sure your screen saver/locker is updated. Option "HandleSpecialKeys" "when" This option controls when the server uses the builtin handler to process special key combinations (such as Ctrl+Alt+Backspace). Normally the XKEYBOARD extension keymaps will provide mappings for each of the special key combinations, so the builtin handler is not needed unless the XKEYBOARD extension is disabled. The value of when can be Always, Never, or WhenNeeded. Default: Use the builtin handler only if needed. The server will scan the keymap for a mapping to the Terminate action and, if found, use XKEYBOARD for processing actions, otherwise the builtin handler will be used. MODULE SECTION The config file may have multiple Module section. They are used to specify additional XFree86 server modules to be loaded. This section is ignored when the XFree86 server is built in static form. The types of modules normally loaded in this section are XFree86 server extension modules, and font rasteriser modules. Most other module types are loaded automatically when they are needed via other mechanisms. The Module section is optional, as are all of the entries that may be spec- ified in it. Identifier "name" specifies an optional identifying name for the Module section. Options Option flags may be specified in Module sections. Entries that identify which modules to pre-load may be in two forms. The first and most commonly used form is an entry that uses the Load keyword, as described here: Load "modulename" This instructs the server to load the module called modulename. The module name given should be the module's standard name, not the module file name. The standard name is case-sensitive, and does not include the "lib" prefix, or the ".a", ".o", or ".so" suffixes. Example: the Type 1 font rasteriser can be loaded with the fol- lowing entry: Load "type1" The second form of entry is a SubSection, with the subsection name being the module name, and the contents of the SubSection being Options that are passed to the module when it is loaded. Example: the extmod module (which contains a miscellaneous group of server extensions) can be loaded, with the XFree86-DGA extension dis- abled by using the following entry: SubSection "extmod" Option "omit XFree86-DGA" EndSubSection Modules are searched for in each directory specified in the ModulePath search path, and in the drivers, input, extensions, fonts, and internal subdirectories of each of those directories. In addition to this, operating system specific subdirectories of all the above are searched first if they exist. To see what font and extension modules are available, check the con- tents of the following directories: /usr/X11R6/lib/modules/fonts /usr/X11R6/lib/modules/extensions The "bitmap" font modules is loaded automatically. It is recommended that at very least the "extmod" extension module be loaded. If it isn't some commonly used server extensions (like the SHAPE extension) will not be available. INPUTDEVICE SECTION The config file may have multiple InputDevice sections. There will normally be at least two: one for the core (primary) keyboard, and one of the core pointer. If either of these two is missing, a default con- figuration for the missing ones will be used. Currently the default configuration may not work as expected on all platforms. InputDevice sections have the following format: Section "InputDevice" Identifier "name" Driver "inputdriver" options ... EndSection The Identifier and Driver entries are required in all InputDevice sec- tions. All other entries are optional. The Identifier entry specifies the unique name for this input device. The Driver entry specifies the name of the driver to use for this input device. When using the loadable server, the input driver module "inputdriver" will be loaded for each active InputDevice section. An InputDevice section is considered active if it is referenced by an active ServerLayout section, if it is referenced by the -keyboard or -pointer command line options, or if it is selected implicitly as the core pointer or keyboard device in the absence of such explicit refer- ences. The most commonly used input drivers are "keyboard" and "mouse". In the absence of an explicitly specified core input device, the first InputDevice marked as CorePointer (or CoreKeyboard) is used. If there is no match there, the first InputDevice that uses the "mouse" (or "keyboard" or "kbd") driver is used. The final fallback is to use built-in default configurations. InputDevice sections recognise some driver-independent Options, which are described here. See the individual input driver manual pages for a description of the device-specific options. Option "CorePointer" When this is set, the input device is installed as the core (primary) pointer device. There must be exactly one core pointer. If this option is not set here, or in the ServerLayout section, or from the -pointer command line option, then the first input device that is capable of being used as a core pointer will be selected as the core pointer. This option is implicitly set when the obsolete Pointer section is used. Option "CoreKeyboard" When this is set, the input device is to be installed as the core (primary) keyboard device. There must be exactly one core keyboard. If this option is not set here, in the ServerLayout section, or from the -keyboard command line option, then the first input device that is capable of being used as a core key- board will be selected as the core keyboard. This option is implicitly set when the obsolete Keyboard section is used. Option "AlwaysCore" "boolean" Option "SendCoreEvents" "boolean" Both of these options are equivalent, and when enabled cause the input device to always report core events. This can be used, for example, to allow an additional pointer device to generate core pointer events (like moving the cursor, etc). Option "HistorySize" "number" Sets the motion history size. Default: 0. Option "SendDragEvents" "boolean" ??? DEVICE SECTION The config file may have multiple Device sections. There must be at least one, for the video card being used. Device sections have the following format: Section "Device" Identifier "name" Driver "driver" entries ... EndSection The Identifier and Driver entries are required in all Device sections. All other entries are optional. The Identifier entry specifies the unique name for this graphics device. The Driver entry specifies the name of the driver to use for this graphics device. When using the loadable server, the driver mod- ule "driver" will be loaded for each active Device section. A Device section is considered active if it is referenced by an active Screen section. Device sections recognise some driver-independent entries and Options, which are described here. Not all drivers make use of these driver- independent entries, and many of those that do don't require them to be specified because the information is auto-detected. See the individual graphics driver manual pages for further information about this, and for a description of the device-specific options. Note that most of the Options listed here (but not the other entries) may be specified in the Screen section instead of here in the Device section. BusID "bus-id" This specifies the bus location of the graphics card. For PCI/AGP cards, the bus-id string has the form PCI:bus:device:function (e.g., "PCI:1:0:0" might be appropriate for an AGP card). This field is usually optional in single-head configurations when using the primary graphics card. In multi- head configurations, or when using a secondary graphics card in a single-head configuration, this entry is mandatory. Its main purpose is to make an unambiguous connection between the device section and the hardware it is representing. This information can usually be found by running the XFree86 server with the -scanpci command line option. Screen number This option is mandatory for cards where a single PCI entity can drive more than one display (i.e., multiple CRTCs sharing a sin- gle graphics accelerator and video memory). One Device section is required for each head, and this parameter determines which head each of the Device sections applies to. The legal values of number range from 0 to one less than the total number of heads per entity. Most drivers require that the primary screen (0) be present. Chipset "chipset" This usually optional entry specifies the chipset used on the graphics board. In most cases this entry is not required because the drivers will probe the hardware to determine the chipset type. Don't specify it unless the driver-specific docu- mentation recommends that you do. Ramdac "ramdac-type" This optional entry specifies the type of RAMDAC used on the graphics board. This is only used by a few of the drivers, and in most cases it is not required because the drivers will probe the hardware to determine the RAMDAC type where possible. Don't specify it unless the driver-specific documentation recommends that you do. DacSpeed speed DacSpeed speed-8 speed-16 speed-24 speed-32 This optional entry specifies the RAMDAC speed rating (which is usually printed on the RAMDAC chip). The speed is in MHz. When one value is given, it applies to all framebuffer pixel sizes. When multiple values are give, they apply to the framebuffer pixel sizes 8, 16, 24 and 32 respectively. This is not used by many drivers, and only needs to be specified when the speed rat- ing of the RAMDAC is different from the defaults built in to driver, or when the driver can't auto-detect the correct defaults. Don't specify it unless the driver-specific documen- tation recommends that you do. Clocks clock ... specifies the pixel that are on your graphics board. The clocks are in MHz, and may be specified as a floating point number. The value is stored internally to the nearest kHz. The ordering of the clocks is important. It must match the order in which they are selected on the graphics board. Multiple Clocks lines may be specified, and each is concatenated to form the list. Most drivers do not use this entry, and it is only required for some older boards with non-programmable clocks. Don't specify this entry unless the driver-specific documentation explicitly recommends that you do. ClockChip "clockchip-type" This optional entry is used to specify the clock chip type on graphics boards which have a programmable clock generator. Only a few XFree86 drivers support programmable clock chips. For details, see the appropriate driver manual page. VideoRam mem This optional entry specifies the amount of video ram that is installed on the graphics board. This is measured in kBytes. In most cases this is not required because the XFree86 server probes the graphics board to determine this quantity. The driver-specific documentation should indicate when it might be needed. BiosBase baseaddress This optional entry specifies the base address of the video BIOS for the VGA board. This address is normally auto-detected, and should only be specified if the driver-specific documentation recommends it. MemBase baseaddress This optional entry specifies the memory base address of a graphics board's linear frame buffer. This entry is not used by many drivers, and it should only be specified if the driver-spe- cific documentation recommends it. IOBase baseaddress This optional entry specifies the IO base address. This entry is not used by many drivers, and it should only be specified if the driver-specific documentation recommends it. ChipID id This optional entry specifies a numerical ID representing the chip type. For PCI cards, it is usually the device ID. This can be used to override the auto-detection, but that should only be done when the driver-specific documentation recommends it. ChipRev rev This optional entry specifies the chip revision number. This can be used to override the auto-detection, but that should only be done when the driver-specific documentation recommends it. TextClockFreq freq This optional entry specifies the pixel clock frequency that is used for the regular text mode. The frequency is specified in MHz. This is rarely used. IRQ interrupt-number This optional entry allows an interrupt number to be specified. Options Option flags may be specified in the Device sections. These include driver-specific options and driver-independent options. The former are described in the driver-specific documentation. Some of the latter are described below in the section about the Screen section, and they may also be included here. VIDEOADAPTOR SECTION The config file may have multiple VideoAdaptor sections, which may be referenced from Screen sections. VideoAdaptor sections have the following format: Section "VideoAdaptor" Identifier "name" entries ... SubSection "Port" entries ... EndSubSection ... EndSection The only mandatory entry in a VideoAdaptor section is the Identifier. Other entries include: VendorName "vendor" This optional entry specifies the video adaptor's manufacturer. BoardName "model" This optional entry specifies the video adaptor's model name. Options may be specified in the VideoAdaptor section. The Port SubSections provide information about video adaptor ports. Each of these may contain an Identifier entry and Options. MONITOR SECTION The config file may have multiple Monitor sections. There should nor- mally be at least one, for the monitor being used, but a default con- figuration will be created when one isn't specified. Monitor sections have the following format: Section "Monitor" Identifier "name" entries ... EndSection The only mandatory entry in a Monitor section is the Identifier entry. The Identifier entry specifies the unique name for this monitor. The Monitor section provides information about the specifications of the monitor, monitor-specific Options, and information about the video modes to use with the monitor. Specifying video modes is optional because the server now has a built-in list of VESA standard modes. When modes are specified explicitly in the Monitor section (with the Modes, ModeLine, or UseModes keywords), built-in modes with the same names are not included. Built-in modes with different names are, how- ever, still implicitly included. The entries that may be used in Monitor sections are described below. VendorName "vendor" This optional entry specifies the monitor's manufacturer. ModelName "model" This optional entry specifies the monitor's model. HorizSync horizsync-range gives the range(s) of horizontal sync frequencies supported by the monitor. horizsync-range may be a comma separated list of either discrete values or ranges of values. A range of values is two values separated by a dash. By default the values are in units of kHz. They may be specified in MHz or Hz if MHz or Hz is added to the end of the line. The data given here is used by the XFree86 server to determine if video modes are within the specifications of the monitor. This information should be available in the monitor's handbook. If this entry is omitted, a default range of 28-33kHz is used. VertRefresh vertrefresh-range gives the range(s) of vertical refresh frequencies supported by the monitor. vertrefresh-range may be a comma separated list of either discrete values or ranges of values. A range of values is two values separated by a dash. By default the values are in units of Hz. They may be specified in MHz or kHz if MHz or kHz is added to the end of the line. The data given here is used by the XFree86 server to determine if video modes are within the specifications of the monitor. This information should be available in the monitor's handbook. If this entry is omitted, a default range of 43-72Hz is used. DisplaySize width height This optional entry gives the width and height, in millimetres, of the picture area of the monitor. If given this is used to calculate the horizontal and vertical pitch (DPI) of the screen. Gamma gamma-value Gamma red-gamma green-gamma blue-gamma This is an optional entry that can be used to specify the gamma correction for the monitor. It may be specified as either a single value or as three separate RGB values. The values should be in the range 0.1 to 10.0, and the default is 1.0. Not all drivers are capable of using this information. UseModes "modesection-id" Include the set of modes listed in the Modes section called mod- esection-id. This make all of the modes defined in that section available for use by this monitor. Mode "name" This is an optional multi-line entry that can be used to provide definitions for video modes for the monitor. In most cases this isn't necessary because the built-in set of VESA standard modes will be sufficient. The Mode keyword indicates the start of a multi-line video mode description. The mode description is ter- minated with the EndMode keyword. The mode description consists of the following entries: DotClock clock is the dot (pixel) clock rate to be used for the mode. HTimings hdisp hsyncstart hsyncend htotal specifies the horizontal timings for the mode. VTimings vdisp vsyncstart vsyncend vtotal specifies the vertical timings for the mode. Flags "flag" ... specifies an optional set of mode flags, each of which is a separate string in double quotes. "Interlace" indicates that the mode is interlaced. "DoubleScan" indicates a mode where each scanline is doubled. "+HSync" and "-HSync" can be used to select the polarity of the HSync signal. "+VSync" and "-VSync" can be used to select the polarity of the VSync signal. "Composite" can be used to specify com- posite sync on hardware where this is supported. Addition- ally, on some hardware, "+CSync" and "-CSync" may be used to select the composite sync polarity. HSkew hskew specifies the number of pixels (towards the right edge of the screen) by which the display enable signal is to be skewed. Not all drivers use this information. This option might become necessary to override the default value sup- plied by the server (if any). "Roving" horizontal lines indicate this value needs to be increased. If the last few pixels on a scan line appear on the left of the screen, this value should be decreased. VScan vscan specifies the number of times each scanline is painted on the screen. Not all drivers use this information. Values less than 1 are treated as 1, which is the default. Gener- ally, the "DoubleScan" Flag mentioned above doubles this value. ModeLine "name" mode-description This entry is a more compact version of the Mode entry, and it also can be used to specify video modes for the monitor. is a single line format for specifying video modes. In most cases this isn't necessary because the built-in set of VESA standard modes will be sufficient. The mode-description is in four sections, the first three of which are mandatory. The first is the dot (pixel) clock. This is a single number specifying the pixel clock rate for the mode in MHz. The second section is a list of four numbers specifying the horizontal timings. These numbers are the hdisp, hsync- start, hsyncend, and htotal values. The third section is a list of four numbers specifying the vertical timings. These numbers are the vdisp, vsyncstart, vsyncend, and vtotal values. The final section is a list of flags specifying other characteris- tics of the mode. Interlace indicates that the mode is inter- laced. DoubleScan indicates a mode where each scanline is dou- bled. +HSync and -HSync can be used to select the polarity of the HSync signal. +VSync and -VSync can be used to select the polarity of the VSync signal. Composite can be used to specify composite sync on hardware where this is supported. Addition- ally, on some hardware, +CSync and -CSync may be used to select the composite sync polarity. The HSkew and VScan options men- tioned above in the Modes entry description can also be used here. Option "DPMS" "boolean" Set whether DPMS is enabled for the monitor. The default is taken from the monitor's DDC/EDID information if available, or false if not. Option "TargetRefresh" "refresh" Sets a target refresh rate to use for the monitor. If the moni- tor has valid modes with a refresh rate greater or equal to this value, those with a lower refresh rate will not be considered when determining the default resolution to use. This is improves the default resolution selection when none is specified explicitly. Default: TargetRefresh not used. Option "SyncOnGreen" "boolean" Set whether sync-on-green should be enabled. The availability of this option is driver-specific. Default: false. Option "PreferredMode" "XresxYres" Sets a preferred resolution to use for the default mode. By default the preferred mode resolution is taken from the DDC/EDID data if it is available and if it is provides a default mode preference. This is typically true for flat panel displays, which have a native/preferred resolution. This option is not used if the UsePreferredMode option is false. Option "UsePreferredMode" "boolean" Controls whether or not a preferred mode, either detected from the monitor's DDC/EDID data or provided explicitly with the Pre- ferredMode option, is used. Default: true. Options Additional Option flags, including driver-specific options, may be included in Monitor sections. MODES SECTION The config file may have multiple Modes sections, or none. These sec- tions provide a way of defining sets of video modes independently of the Monitor sections. Monitor sections may include the definitions provided in these sections by using the UseModes keyword. In most cases the Modes sections are not necessary because the built-in set of VESA standard modes will be sufficient. Modes sections have the following format: Section "Modes" Identifier "name" entries ... EndSection The Identifier entry specifies the unique name for this set of mode descriptions. The other entries permitted in Modes sections are the Mode and ModeLine entries that are described above in the Monitor sec- tion, as well as Options. SCREEN SECTION The config file may have multiple Screen sections. There must be at least one, for the "screen" being used. A "screen" represents the binding of a graphics device (Device section) and one or more monitors (Monitor sections). A Screen section is considered "active" if it is referenced by an active ServerLayout section or by the -screen command line option. If neither of those is present, the first Screen section found in the config file is considered the active one. Screen sections have the following format: Section "Screen" Identifier "name" Device "devid" Monitor "monid" entries ... SubSection "Display" entries ... EndSubSection ... EndSection The Identifier and Device entries are mandatory. All others are optional. The Identifier entry specifies the unique name for this screen. The Screen section provides information specific to the whole screen, including screen-specific Options. In multi-head configurations, there will be multiple active Screen sections, one for each head. The entries available for this section are: Device "device-id" This mandatory entry specifies the Device section to be used for this screen. This is what ties a specific graphics card to a screen. The device-id must match the Identifier of a Device section in the config file. Monitor monitor-num "monitor-id" One of these entries may be given for each monitor associated with this screen. In the absence of these entries, at least one default monitor will be created for the screen. The monitor-id field is mandatory, and specifies the Monitor section being ref- erenced. The monitor-num field is required when more than one monitor is being associated with the screen. Each referenced monitor should be given a unique monitor number. This monitor number may be given special significance by the driver, and it is also used to identify which Display subsection(s) are associ- ated with the screen/monitor. If this field is omitted in a multiple-monitor configuration, default values will be assigned. This is not recommended, and this behaviour may change in future revisions. If a Monitor name is not specified, a default configuration is used. Currently the default configuration may not function as expected on all platforms. VideoAdaptor "xv-id" specifies an optional Xv video adaptor description to be used with this screen. DefaultDepth depth specifies which color depth the server should use by default. The -depth command line option can be used to override this. If neither is specified, the default depth is driver-specific, but in most cases is 8. DefaultFbBpp bpp specifies which framebuffer layout to use by default. The -fbbpp command line option can be used to override this. In most cases the driver will chose the best default value for this. The only case where there is even a choice in this value is for depth 24, where some hardware supports both a packed 24 bit framebuffer layout and a sparse 32 bit framebuffer layout. Options Various Option flags may be specified in the Screen section. Some are driver-specific and are described in the driver docu- mentation. Others are driver-independent, and will eventually be described here. Option "Accel" Enables XAA (X Acceleration Architecture), a mechanism that makes video cards' 2D hardware acceleration available to the XFree86 server. This option is on by default, but it may be necessary to turn it off if there are bugs in the driver. There are many options to disable specific accelerated operations, listed below. Note that disabling an operation will have no effect if the operation is not accelerated (whether due to lack of support in the hardware or in the driver). Option "BiosLocation" "address" Set the location of the BIOS for the Int10 module. One may select a BIOS of another card for posting or the legacy V_BIOS range located at 0xc0000 or an alternative address (BUS_ISA). This is only useful under very special circumstances and should be used with extreme care. Option "InitPrimary" "boolean" Use the Int10 module to initialize the primary graphics card. Normally, only secondary cards are soft-booted using the Int10 module, as the primary card has already been initialized by the BIOS at boot time. Default: false. Option "NoInt10" "boolean" Disables the Int10 module, a module that uses the int10 call to the BIOS of the graphics card to initialize it. Default: false. Option "NoMTRR" Disables MTRR (Memory Type Range Register) support, a feature of modern processors which can improve video performance by a fac- tor of up to 2.5. Some hardware has buggy MTRR support, and some video drivers have been known to exhibit problems when MTRR's are used. Option "XaaNoCPUToScreenColorExpandFill" Disables accelerated rectangular expansion blits from source patterns stored in system memory (using a memory-mapped aper- ture). Option "XaaNoColor8x8PatternFillRect" Disables accelerated fills of a rectangular region with a full- color pattern. Option "XaaNoColor8x8PatternFillTrap" Disables accelerated fills of a trapezoidal region with a full- color pattern. Option "XaaNoDashedBresenhamLine" Disables accelerated dashed Bresenham line draws. Option "XaaNoDashedTwoPointLine" Disables accelerated dashed line draws between two arbitrary points. Option "XaaNoImageWriteRect" Disables accelerated transfers of full-color rectangular pat- terns from system memory to video memory (using a memory-mapped aperture). Option "XaaNoMono8x8PatternFillRect" Disables accelerated fills of a rectangular region with a mono- chrome pattern. Option "XaaNoMono8x8PatternFillTrap" Disables accelerated fills of a trapezoidal region with a mono- chrome pattern. Option "XaaNoOffscreenPixmaps" Disables accelerated draws into pixmaps stored in offscreen video memory. Option "XaaNoPixmapCache" Disables caching of patterns in offscreen video memory. Option "XaaNoScanlineCPUToScreenColorExpandFill" Disables accelerated rectangular expansion blits from source patterns stored in system memory (one scan line at a time). Option "XaaNoScanlineImageWriteRect" Disables accelerated transfers of full-color rectangular pat- terns from system memory to video memory (one scan line at a time). Option "XaaNoScreenToScreenColorExpandFill" Disables accelerated rectangular expansion blits from source patterns stored in offscreen video memory. Option "XaaNoScreenToScreenCopy" Disables accelerated copies of rectangular regions from one part of video memory to another part of video memory. Option "XaaNoSolidBresenhamLine" Disables accelerated solid Bresenham line draws. Option "XaaNoSolidFillRect" Disables accelerated solid-color fills of rectangles. Option "XaaNoSolidFillTrap" Disables accelerated solid-color fills of Bresenham trapezoids. Option "XaaNoSolidHorVertLine" Disables accelerated solid horizontal and vertical line draws. Option "XaaNoSolidTwoPointLine" Disables accelerated solid line draws between two arbitrary points. Each Screen section may optionally contain one or more Display subsec- tions. Those subsections provide depth, fbbpp and monitor specific configuration information, and the ones chosen depend on the depth and/or fbbpp that is being used for the screen, as well as the monitor number(s) in multi-monitor configurations. The Display subsection for- mat is described in the section below. DISPLAY SUBSECTION Each Screen section may have multiple Display subsections. The "active" Display subsections are the first for each monitor number that match the depth and/or fbbpp values being used, or failing that, the first for each monitor number that has neither a depth or fbbpp value specified. Display subsections with no monitor number specified are used for single monitor per screen configurations. The Display subsec- tions are optional. When there isn't one that matches the monitor num- ber and/or depth and/or fbbpp values being used, all the parameters that can be specified here fall back to their defaults. Display subsections have the following format: SubSection "Display" Monitor monitor-num Depth depth entries ... EndSubSection None of the entries in a Display subsection are mandatory. Monitor monitor-num This entry specifies which Monitor entry of the Screen section that this Display subsection applies to. This number should match the monitor number of one of the Monitor references in the Screen screen. If it doesn't match, then this Display subsec- tion will be ignored. If this entry is omitted, it is applied to single-monitor configurations. For multi-monitor configura- tions, the driver may also use information in this subsection for screen-wide parameters. Not all of the parameters in this subsection make sense on a per-monitor basis. Which get used and how they get used is currently up to the driver. Entries that are relevant to multi-monitor configurations include Modes, Virtual, ViewPort, and Options. Depth depth This entry specifies what colour depth the Display subsection is to be used for. This entry is usually specified, but it may be omitted to create a match-all Display subsection or when wishing to match only against the FbBpp parameter. The range of depth values that are allowed depends on the driver. Most driver sup- port 8, 15, 16 and 24. Some also support 1 and/or 4, and some may support other values (like 30). Note: depth means the num- ber of bits in a pixel that are actually used to determine the pixel colour. 32 is not a valid depth value. Most hardware that uses 32 bits per pixel only uses 24 of them to hold the colour information, which means that the colour depth is 24, not 32. FbBpp bpp This entry specifies the framebuffer format this Display subsec- tion is to be used for. This entry is only needed when provid- ing depth 24 configurations that allow a choice between a 24 bpp packed framebuffer format and a 32bpp sparse framebuffer format. In most cases this entry should not be used. Weight red-weight green-weight blue-weight This optional entry specifies the relative RGB weighting to be used for a screen is being used at depth 16 for drivers that allow multiple formats. This may also be specified from the command line with the -weight option (see XFree86(1)). Virtual xdim ydim This optional entry specifies the virtual screen resolution to be used. xdim must be a multiple of either 8 or 16 for most drivers, and a multiple of 32 when running in monochrome mode. The given value will be rounded down if this is not the case. Video modes which are too large for the specified virtual size will be rejected. If this entry is not present, the virtual screen resolution will be set to accommodate all the valid video modes given in the Modes entry. Some drivers/hardware combina- tions do not support virtual screens. Refer to the appropriate driver-specific documentation for details. ViewPort x0 y0 This optional entry sets the upper left corner of the initial display. This is only relevant when the virtual screen resolu- tion is different from the resolution of the initial video mode. If this entry is not given, then the initial display will be centered in the virtual display area. Modes "mode-name" ... This optional entry specifies the list of video modes to use. Each mode-name specified must be in double quotes. They must correspond to those specified or referenced in the appropriate Monitor section (including implicitly referenced built-in VESA standard modes). The server will delete modes from this list which don't satisfy various requirements. The first valid mode in this list will be the default display mode for startup. The list of valid modes is converted internally into a circular list. It is possible to switch to the next mode with Ctrl+Alt+Keypad-Plus and to the previous mode with Ctrl+Alt+Key- pad-Minus. When this entry is omitted, the valid modes refer- enced by the appropriate Monitor section will be used. If the Monitor section contains no modes, then the selection will be taken from the built-in VESA standard modes. Visual "visual-name" This optional entry sets the default root visual type. This may also be specified from the command line (see the Xserver(1) man page). The visual types available for depth 8 are (default is PseudoColor): StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor The visual type available for the depths 15, 16 and 24 are (default is TrueColor): TrueColor DirectColor Not all drivers support DirectColor at these depths. The visual types available for the depth 4 are (default is Stat- icColor): StaticGray GrayScale StaticColor PseudoColor The visual type available for the depth 1 (monochrome) is Stat- icGray. Black red green blue This optional entry allows the "black" colour to be specified. This is only supported at depth 1. The default is black. White red green blue This optional entry allows the "white" colour to be specified. This is only supported at depth 1. The default is white. Options Option flags may be specified in the Display subsections. These may include driver-specific options and driver-independent options. The former are described in the driver-specific docu- mentation. Some of the latter are described above in the sec- tion about the Screen section, and they may also be included here. SERVERLAYOUT SECTION The config file may have multiple ServerLayout sections. A "server layout" represents the binding of one or more screens (Screen sections) and one or more input devices (InputDevice sections) to form a complete configuration. In multi-head configurations, it also specifies the relative layout of the heads. A ServerLayout section is considered "active" if it is referenced by the -layout command line option or by an Option "DefaultServerLayout" entry in the ServerFlags section (the former takes precedence over the latter). If those options are not used, the first ServerLayout section found in the config file is con- sidered the active one. If no ServerLayout sections are present, the single active screen and two active (core) input devices are selected as described in the relevant sections above. ServerLayout sections have the following format: Section "ServerLayout" Identifier "name" Screen "screen-id" ... InputDevice "idev-id" ... options ... EndSection Each ServerLayout section must have an Identifier entry and at least one Screen entry. The Identifier entry specifies the unique name for this server layout. The ServerLayout section provides information specific to the whole session, including session-specific Options. The ServerFlags options (described above) may be specified here, and ones given here override those given in the ServerFlags section. The entries that may be used in this section are described here. Screen screen-num "screen-id" position-information One of these entries must be given for each screen being used in a session. The screen-id field is mandatory, and specifies the Screen section being referenced. The screen-num field is optional, and may be used to specify the screen number in multi- head configurations. When this field is omitted, the screens will be numbered in the order that they are listed in. The num- bering starts from 0, and must be consecutive. The optional position-information field describes the way multiple screens are positioned. When this information is not provided, the positioning of the screen defaults to Absolute 0 0. There are a number of different ways that this information can be provided: x y Absolute x y These both specify that the upper left corner's coordinates are (x,y). The Absolute keyword is optional. Some older versions of XFree86 (4.2 and earlier) don't recognise the Absolute keyword, so it's safest to just specify the coordi- nates without it. RightOf "screen-id" LeftOf "screen-id" Above "screen-id" Below "screen-id" Relative "screen-id" x y These give the screen's location relative to another screen. The first four position the screen immediately to the right, left, above or below the other screen. When positioning to the right or left, the top edges are aligned. When posi- tioning above or below, the left edges are aligned. The Relative form specifies the offset of the screen's origin (upper left corner) relative to the origin of another screen. InputDevice "idev-id" "option" ... One of these entries should be given for each input device being used in a session. Normally at least two are required, one each for the core pointer and keyboard devices. If either of those is missing, suitable InputDevice entries are searched for using the method described above in the INPUTDEVICE section. The idev-id field is mandatory, and specifies the name of the Input- Device section being referenced. Multiple option fields may be specified, each in double quotes. The options permitted here are any that may also be given in the InputDevice sections. Normally only session-specific input device options would be used here. The most commonly used options are: "CorePointer" "CoreKeyboard" "SendCoreEvents" and the first two should normally be used to indicate the core pointer and core keyboard devices respectively. Options Any option permitted in the ServerFlags section may also be specified here. When the same option appears in both places, the value given here overrides the one given in the ServerFlags section. Here is an example of a ServerLayout section for a dual headed configu- ration with two mice: Section "ServerLayout" Identifier "Layout 1" Screen "MGA 1" Screen "MGA 2" RightOf "MGA 1" InputDevice "Keyboard 1" "CoreKeyboard" InputDevice "Mouse 1" "CorePointer" InputDevice "Mouse 2" "SendCoreEvents" Option "BlankTime" "5" EndSection DRI SECTION This optional section is used to provide some information for the Direct Rendering Infrastructure. Identifier "name" specifies an optional identifying name for the DRI section. Group "group-name" Group group-id specifies the group ownership for the DRI device nodes. It may be specified as a group name or as a numerical group ID. Mode mode specifies the numerical permissions for the DRI device nodes. Buffers count size specifies buffers. Options Option flags may be specified in DRI sections. VENDOR SECTION The optional Vendor section may be used to provide vendor-specific con- figuration information. Multiple Vendor sections may be present, and they may contain the following entries: Identifier "name" specifies an identifying name for the Vendor section. VendorName "vendor-name" specifies the vendor name. Options may be specified in the Vendor sections. In addition to these entries, there may be named SubSections, each of which may contain an Identifier entry and Option entries. FILES For an example of an XF86Config file, see the file installed as /usr/X11R6/lib/X11/XF86Config.eg. SEE ALSO X(7), Xserver(1), XFree86(1), apm(4), chips(4), cirrus(4), cyrix(4), fbdev(4), glide(4), glint(4), i128(4), i740(4), i810(4), imstt(4), mga(4), neomagic(4), nv(4), r128(4), rendition(4), savage(4), s3virge(4), siliconmotion(4), sis(4), sunbw2(4), suncg14(4), suncg3(4), suncg6(4), sunffb(4), sunleo(4), suntcx(4), tdfx(4), tga(4), tri- dent(4), tseng(4), v4l(4), vesa(4), vga(4), vmware(4), README , RELNOTES , README.mouse , README.DRI , Install . AUTHORS This manual page was largely rewritten for XFree86 4.0 by David Dawes . xf86config(1) xf86config(1) NAME xf86config - generate an XF86Config file SYNOPSIS xf86config DESCRIPTION xf86config is an interactive program for generating an XF86Config file for use with XFree86 X servers. Note that the default name used by xf86config for the XF86Config file is system-dependent. For instance, on some systems, XF86Config-4 is used, and on OS/2, XConfig is used. FILES /usr/X11R6/lib/X11/Cards Video cards database SEE ALSO XFree86(1), XF86Config(5), reconfig(1) AUTHOR Harm Hanemaayer. xf86cfg(1) xf86cfg(1) NAME xf86cfg - Graphical configuration tool for XFree86 4.0 SYNOPSIS xf86cfg [-xf86config XF86Config] [-modulepath moduledir] [-fontpath fontsdir] [-toolkitoption ...] DESCRIPTION Xf86cfg is a tool to configure XFree86 4.0, and can be used to either write the initial configuration file or make customizations to the cur- rent configuration. When the DISPLAY environment variable is not set, xf86cfg will run the command XFree86 -configure to allow the xserver detect the hardware in the computer, and write an initial XF86Config file in the user's home directory. Then, it will start XFree86 and allow customizations. If the DISPLAY environment variable is set, xf86cfg will read the default XF86Config, that may not be the same being used by the current server, and allow customizations. To use an alternative location for modules or fonts the respective search paths may be specified. Unless there is an Apply button in the current xf86cfg dialog, the changes made will take place the next time XFree86 is started. Xf86cfg allows addition and configuration of new devices, such as video cards, monitors, keyboards and mouses. Screen layout configuration for xinerama or traditional multi-head is also available. Modelines can be configured or optimized. AccessX basic configurations can be made in the xf86cfg's accessx sec- tion. OPTIONS -xf86config Specifies an alternate XF86Config file for configuration. -modulepath Specifies where xf86cfg, and the server it may start, should look for XFree86 modules. -serverpath Specifies the complete path, not including the binary name, of the XFree86 binary. -fontpath Specifies the path to the fonts that should be used by the server started by xf86cfg. -rgbpath Specifies the path to the rgb.txt file that should be used by the server started by xf86cfg, if any. -textmode If xf86cfg was compiled with support to ncurses, this option makes xf86cfg enters a text mode interface. -nomodules When built with support for loading modules, this options changes xf86cfg behaviour, so that it will not load any mod- ules, and thus start quicker. ENVIRONMENT DISPLAY Default host and display number XWINHOME Directory where XFree86 was installed, defaults to /usr/X11R6. XENVIRONMENT Name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property FILES /etc/XF86Config Server configuration file /etc/X11/XF86Config Server configuration file /usr/X11R6/etc/XF86Config Server configuration file /usr/X11R6/lib/X11/XF86Config.hostname Server configuration file /usr/X11R6/lib/X11/XF86Config Server configuration file /usr/X11R6/lib/X11/app-default/XF86Cfg Specifies xf86cfg resources /usr/X11R6/lib/X11/xkb/X0-config.keyboard Keyboard specific configuration SEE ALSO XFree86(1) XF86Config(5) COPYRIGHT Copyright 2000, Conectiva Linux S.A. http://www.conectiva.com Copyright 2000, The XFree86 Project http://www.XFree86.org AUTHORS Paulo Csar Pereira de Andrade The XFree86 Project BUGS Probably. getconfig(1) getconfig(1) NAME getconfig - get configuration information for the XFree86 server SYNOPSIS getconfig [option ...] DESCRIPTION getconfig is a programmatic interface that is used by the XFree86 server to get configuration information about video hardware when oper- ating without an XF86Config file. This implementation of getconfig is written in perl. It processes a prioritized and ordered list of rules supplied internally and from meta-configuration files. The rules are in the form of perl expres- sions. getconfig writes to standard output the XF86Config-style con- figuration data specified by the last highest priority rule that evalu- ates to true. Information about the format of the meta-configuration files can be found in the getconfig(5) manual page. OPTIONS -I search-path Specify the search path to use for meta-config files. search- path is a comma-separated list of directories to search. Each directory in the search path is searched for files with a .cfg suffix. Each such file is opened and checked for a valid sig- nature string. Rules are read from files with a valid signa- ture string and appended to the list of rules to evaluate. If no search path is specified, only the internally supplied con- figuration rules will be used. -D Enable debugging output. -V Print out the version information and exit. -X XFree86-version Specify the XFree86 version in numeric (integer) form. -b subsys-id Specify the PCI subsystem ID of the video device. -c class Specify the PCI class of the video device. -d device-id Specify the PCI device ID of the video device. -r revision Specify the PCI revision of the video device. -s subsysvendor-id Specify the PCI subsystem vendor ID of the video device. -v vendor-id Specify the PCI vendor ID of the video device. -S sbus-path Specify the SBUS path of the video device. FILES .cfg files located in the search path. The search path typically spec- ified by the XFree86 server is: /etc/X11 /usr/X11R6/etc/X11 /usr/X11R6/lib/X11/getconfig where is the XFree86 server's module search path. SEE ALSO getconfig(5), XFree86(1), XF86Config(5). AUTHORS The XFree86 automatic configuration support and the getconfig interface was written by David H. Dawes, with the support of X-Oz Technologies. getconfig(5) getconfig(5) NAME getconfig - meta configuration files for getconfig(1) SYNOPSIS *.cfg DESCRIPTION getconfig is a programmatic interface that is used by the XFree86 server to get configuration information about video hardware when oper- ating without an XF86Config file. This implementation of getconfig is written in perl. It processes rules from meta-configuration files. All meta-configuration files have a .cfg suffix. Lines starting with a pound-sign (#) are comments, and are ignored. Blank lines that consist only of white space are also treated as com- ments and ignored. The first non-comment line must be a signature string followed by the file format version number. The signature string is "XFree86 Project getconfig rules file. Version: " The currently defined version is "1.0". Files that do not have the correct signature string are ignored. The remaining non-comment lines define rules. The start of a new rule is indicated by a line with no leading white space. Subsequent lines making up a rule must be indented with white space. Logical lines within a rule may be split over multiple physical lines by using the usual continuation convention ('\' at the end of the line). The first logical line of each rule is a perl expression. It may be any valid perl expression whose evaluated (with 'eval') result may be used as the argument to a perl 'if' statement. The second logical line should be the name of the XFree86 video driver to use when the rule is true, and subsequent logical lines of each rule, if present, are additional con- figuration output for the video device's XF86Config Device section. The driver name and additional lines of configuration information are written to standard output when the rule is chosen as the successful rule. Pseudo rules consisting of perl expressions may be present in the file for the purpose of defining custom perl variables or setting the weight to use for the following rules. Pseudo rules are rules that consist of a single logical line only, and they are never candidates themselves for the successful rule. Several perl variables are pre-defined, and may be used within rules. They include: $vendor PCI vendor ID $device PCI device ID $revision PCI revision ID $subsys PCI subsystem ID $subsysVendor PCI subsystem vendor ID $class PCI class $sbuspath SBUS path $XFree86Version XFree86 version, as a 'v' string $XFree86VersionNumeric XFree86 numeric version $XFree86VersionMajor XFree86 major version $XFree86VersionMinor XFree86 minor version $XFree86VersionPatch XFree86 patch version $XFree86VersionSnap XFree86 snap version $weight current rule weight The $weight variable determines the weight of the rules as they are processed. The weight for subsequent rules may be set with a pseudo rule that sets or changes the value of $weight. The default weight, and the weight used for built-in rules is 500. The meta-configuration files are processed in an unpredictable order. The weighting of the rules is used to determine their relative priority After processing all of the rules, both built-in and those read from the meta-configuration files, the getconfig program chooses as the suc- cessful rule the last and highest weighted rule that evaluates to true. FILES .cfg files located in the search path. The search path typically spec- ified by the XFree86 server is: /etc/X11 /usr/X11R6/etc/X11 /usr/X11R6/lib/X11/getconfig where is the XFree86 server's module search path. /usr/X11R6/lib/X11/getconfig/xfree86.cfg Default rules file that gets installed. This file doesn't contain any rules by default. /usr/X11R6/lib/X11/getconfig/cfg.sample A sample rules file that gives some exam- ples of what types of rules can appear in rules files. SEE ALSO getconfig(1), XFree86(1), XF86Config(5). AUTHORS The XFree86 automatic configuration support and the getconfig interface was written by David H. Dawes, with the support of X-Oz Technologies. APM(4) APM(4) NAME apm - Alliance ProMotion video driver SYNOPSIS Section "Device" Identifier "devname" Driver "apm" ... EndSection DESCRIPTION apm is an XFree86 driver for Alliance ProMotion video cards. The driver is accelerated for supported hardware/depth combination. It supports framebuffer depths of 8, 15, 16, 24 and 32 bits. For 6420, 6422, AT24, AT3D and AT25, all depths are fully accelerated except 24 bpp for which only screen to screen copy and rectangle filling is accelerated. SUPPORTED HARDWARE The apm driver supports PCI and ISA video cards on the following Alliance ProMotion chipsets ProMotion 6420 ProMotion 6422 AT24 AT3D AT25 CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the chipset type, but the following ChipSet names may optionally be specified in the config file "Device" section, and will override the auto-detection: "6422", "at24", "at3d". The AT25 is Chipset "at3d" and the 6420 is 6422. The driver will auto-detect the amount of video memory present for all chips. The actual amount of video memory can also be specified with a VideoRam entry in the config file "Device" section. The following driver Options are supported: Option "HWCursor" "boolean" Enable or disable the hardware cursor. Default: on. Option "SWCursor" "boolean" Force the software cursor. Default: off. Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "NoLinear" "boolean" Disable or enable use of linear frame buffer. Default: on. Note: it may or may not work. Tell me if you need it. Option "PciRetry" "boolean" Enable or disable PCI retries. Default: off. Option "Remap_DPMS_On" "string" Option "Remap_DPMS_Standby" "string" Option "Remap_DPMS_Suspend" "string" Option "Remap_DPMS_Off" "string" Remaps the corresponding DPMS events. I've found that my Her- cules 128/3D swaps Off and Suspend events. You can correct that with Option "Remap_DPMS_Suspend" "Off" Option "Remap_DPMS_Off" "Suspend" in the Device section of the config file. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Kent Hamilton, Henrik Harmsen and Loic Grenie. ATI(4) ATI(4) NAME ati - ATI video driver SYNOPSIS Section "Device" Identifier "devname" Driver "ati" ... EndSection DESCRIPTION ati is an XFree86 driver for ATI video cards. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The ati driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: ... R128(4) R128(4) NAME r128 - ATI Rage 128 video driver SYNOPSIS Section "Device" Identifier "devname" Driver "r128" ... EndSection DESCRIPTION r128 is an XFree86 driver for ATI Rage 128 based video cards. It con- tains full support for 8, 15, 16 and 24 bit pixel depths, hardware acceleration of drawing primitives, hardware cursor, video modes up to 1800x1440 @ 70Hz, doublescan modes (e.g., 320x200 and 320x240), gamma correction at all pixel depths, a fully programming dot clock and robust text mode restoration for VT switching. SUPPORTED HARDWARE The r128 driver supports all ATI Rage 128 based video cards including the Rage Fury AGP 32MB, the XPERT 128 AGP 16MB and the XPERT 99 AGP 8MB. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects all device information necessary to initialize the card. However, if you have problems with auto-detection, you can specify: VideoRam - in kilobytes MemBase - physical address of the linear framebuffer IOBase - physical address of the MMIO registers ChipID - PCI DEVICE ID In addition, the following driver Options are supported: Option "SWcursor" "boolean" Selects software cursor. The default is off. Option "NoAccel" "boolean" Enables or disables all hardware acceleration. The default is to enable hardware acceleration. Option "Dac6Bit" "boolean" Enables or disables the use of 6 bits per color component when in 8 bpp mode (emulates VGA mode). By default, all 8 bits per color component are used. The default is off. Option "VideoKey" "integer" This overrides the default pixel value for the YUV video overlay key. The default value is undefined. Option "Display" "string" Select display mode for devices which support flat panels. Sup- ported modes are: "FP" - use flat panel; "CRT" - use cathode ray tube; "Mirror" - use both FP and CRT; "BIOS" - use mode as configured in the BIOS. The default is FP. The following Options are mostly important for non-x86 architectures: Option "ProgramFPRegs" "boolean" Enable or disable programming of the flat panel registers. Beware that this may damage your panel, so use this at your own risk. The default depends on the device. Option "PanelWidth" "integer" Option "PanelHeight" "integer" Override the flat panel dimensions in pixels. They are used to program the flat panel registers and normally determined using the video card BIOS. If the wrong dimensions are used, the sys- tem may hang. Option "UseFBDev" "boolean" Enable or disable use of an OS-specific framebuffer device interface (which is not supported on all OSs). See fbdevhw(4) for further information. Default: off. Option "DMAForXv" "boolean" Try or don't try to use DMA for Xv image transfers. This will reduce CPU usage when playing big videos like DVDs, but may cause instabilities. Default: off. The following additional Options are supported: Option "ShowCache" "boolean" Enable or disable viewing offscreen cache memory. A development debug option. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Rickard E. (Rik) Faith faith@precisioninsight.com Kevin E. Martin kevin@precisioninsight.com RADEON(4) RADEON(4) NAME radeon - ATI RADEON video driver SYNOPSIS Section "Device" Identifier "devname" Driver "radeon" ... EndSection DESCRIPTION radeon is a XFree86 driver for ATI RADEON based video cards. It con- tains full support for 8, 15, 16 and 24 bit pixel depths, dual-head setup, flat panel, hardware 2D acceleration, hardware 3D acceleration (except R300 and IGP series cards), hardware cursor, XV extension, Xin- erama extension. SUPPORTED HARDWARE The radeon driver supports PCI and AGP video cards based on the follow- ing ATI chips R100 Radeon 7200 RV100 Radeon 7000(VE), M6 RS100 Radeon IGP320(M) (2D only) RV200 Radeon 7500, M7, FireGL 7800 RS200 Radeon IGP330(M)/IGP340(M) (2D only) RS250 Radeon Mobility 7000 IGP (2D only) R200 Radeon 8500, 9100, FireGL 8800/8700 RV250 Radeon 9000PRO/9000, M9 RS300 Radeon 9100 IGP (2D only) RV280 Radeon 9200PRO/9200/9200SE, M9+ R300 Radeon 9700PRO/9700/9500PRO/9500/9600TX, FireGL X1/Z1 (2D only) R350 Radeon 9800PRO/9800SE/9800, FireGL X2 (2D only) R360 Radeon 9800XT (2d only) RV350 Radeon 9600PRO/9600SE/9600, M10/M11, FireGL T2 (2D only) RV360 Radeon 9600XT (2d only) CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects all device information necessary to initialize the card. However, if you have problems with auto-detection, you can specify: VideoRam - in kilobytes MemBase - physical address of the linear framebuffer IOBase - physical address of the MMIO registers ChipID - PCI DEVICE ID In addition, the following driver Options are supported: Option "SWcursor" "boolean" Selects software cursor. The default is off. Option "NoAccel" "boolean" Enables or disables all hardware acceleration. The default is to enable hardware acceleration. Option "Dac6Bit" "boolean" Enables or disables the use of 6 bits per color component when in 8 bpp mode (emulates VGA mode). By default, all 8 bits per color component are used. The default is off. Option "VideoKey" "integer" This overrides the default pixel value for the YUV video overlay key. The default value is 0x1E. Option "UseFBDev" "boolean" Enable or disable use of an OS-specific framebuffer device interface (which is not supported on all OSs). See fbdevhw(4) for further information. The default is off. Option "AGPMode" "integer" Set AGP data transfer rate. (used only when DRI is enabled) 1 -- x1 (default) 2 -- x2 4 -- x4 others -- invalid Option "AGPFastWrite" "boolean" Enable AGP fast write. (used only when DRI is enabled) The default is off. Option "BusType" "string" Used to replace previous ForcePCIMode option. Should only be used when driver's bus detection is incorrect or you want to force a AGP card to PCI mode. Should NEVER force a PCI card to AGP bus. PCI -- PCI bus AGP -- AGP bus PCIE -- PCI Express (falls back to PCI at present) (used only when DRI is enabled) The default is auto detect. Option "ForcePCIMode" "boolean" Force to use PCI GART for DRI acceleration. This option is dep- recated in favor of the BusType option above and will be removed in the next release. Option "DDCMode" "boolean" Force to use the modes queried from the connected monitor. The default is off. Option "DisplayPriority" "string" Used to prevent flickering or tearing problem caused by display buffer underflow. AUTO -- Driver calculated (default). BIOS -- Remain unchanged from BIOS setting. Use this if the calculation is not correct for your card. HIGH -- Force to the highest priority. Use this if you have problem with above options. This may affect performence slightly. The default value is AUTO. Option "MonitorLayout" "string" This option is used to overwrite the detected monitor types. This is only required when driver makes a false detection. The possible monitor types are: NONE -- Not connected CRT -- Analog CRT monitor TMDS -- Desktop flat panel LVDS -- Laptop flat panel This option can be used in following format: Option "MonitorLayout" "[type on primary], [type on secondary]" For example, Option "MonitorLayout" "CRT, TMDS" Primary/Secondary head for dual-head cards: (when only one port is used, it will be treated as the primary regardless) Primary head: DVI port on DVI+VGA cards LCD output on laptops Internal TMDS prot on DVI+DVI cards Secondary head: VGA port on DVI+VGA cards VGA port on laptops External TMDS port on DVI+DVI cards The default value is undefined. Option "CloneMode" "string" Set the first mode for the secondary head. It can be different from the modes used for the primary head. If you don't have this line while clone is on, the modes specified for the primary head will be used for the secondary head. For example, Option "CloneMode" "1024x768" The default value is undefined. Option "CloneHSync" "string" Set the horizontal sync range for the secondary monitor. It is not required if a DDC-capable monitor is connected. For example, Option "CloneHSync" "30.0-86.0" The default value is undefined. Option "CloneVRefresh" "string" Set the vertical refresh range for the secondary monitor. It is not required if a DDC-capable monitor is connected. For example, Option "CloneVRefresh" "50.0-120.0" The default value is undefined. Option "OverlayOnCRTC2" "boolean" Force hardware overlay to clone head. The default value is off. Option "IgnoreEDID" "boolean" Do not use EDID data for mode validation, but DDC is still used for monitor detection. This is different from NoDDC option. The default value is off. Option "PanelSize" "string" Should only be used when driver cannot detect the correct panel size. Apply to both desktop (TMDS) and laptop (LVDS) digital panels. When a valid panel size is specified, the timings col- lected from DDC and BIOS will not be used. If you have a panel with timings different from that of a standard VESA mode, you have to provide this information through the Modeline. For example, Option "PanelSize" "1400x1050" The default value is none. Option "PanelOff" "boolean" Disable panel output. Only used when clone is enabled. The default value is off. Option "EnablePageFlip" "boolean" Enable page flipping for 3D acceleration. This will increase performance but not work correctly in some rare cases, hence the default is off. Option "ForceMinDotClock" "frequency" Override minimum dot clock. Some Radeon BIOSes report a minimum dot clock unsuitable (too high) for use with television sets even when they actually can produce lower dot clocks. If this is the case you can override the value here. Note that using this option may damage your hardware. You have been warned. The fre- quency parameter may be specified as a float value with standard suffixes like "k", "kHz", "M", "MHz". SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: ... CHIPS(4) CHIPS(4) NAME chips - Chips and Technologies video driver SYNOPSIS Section "Device" Identifier "devname" Driver "chips" ... EndSection DESCRIPTION chips is an XFree86 driver for Chips and Technologies video processors. The majority of the Chips and Technologies chipsets are supported by this driver. In general the limitation on the capabilities of this driver are determined by the chipset on which it is run. Where possi- ble, this driver provides full acceleration and supports the following depths: 1, 4, 8, 15, 16, 24 and on the latest chipsets an 8+16 overlay mode. All visual types are supported for depth 1, 4 and 8 and both TrueColor and DirectColor visuals are supported where possible. Multi- head configurations are supported on PCI or AGP buses. SUPPORTED HARDWARE The chips driver supports video processors on most of the bus types currently available. The chipsets supported fall into one of three architectural classes. A basic architecture, the WinGine architecture and the newer HiQV architecture. Basic Architecture The supported chipsets are ct65520, ct65525, ct65530, ct65535, ct65540, ct65545, ct65546 and ct65548 Color depths 1, 4 and 8 are supported on all chipsets, while depths 15, 16 and 24 are supported only on the 65540, 65545, 65546 and 65548 chipsets. The driver is accelerated when used with the 65545, 65546 or 65548 chipsets, however the DirectColor visual is not available. Wingine Architecture The supported chipsets are ct64200 and ct64300 Color depths 1, 4 and 8 are supported on both chipsets, while depths 15, 16 and 24 are supported only on the 64300 chipsets. The driver is accelerated when used with the 64300 chipsets, however the DirectColor visual is not available. HiQV Architecture The supported chipsets are ct65550, ct65554, ct65555, ct68554, ct69000 and ct69030 Color depths 1, 4, 8, 15, 16, 24 and 8+16 are supported on all chipsets. The DirectColor visual is supported on all color depths except the 8+16 overlay mode. Full acceleration is supplied for all chipsets. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the chipset type, but the following ChipSet names may optionally be specified in the config file "Device" section, and will override the auto-detection: "ct65520", "ct65525", "ct65530", "ct65535", "ct65540", "ct65545", "ct65546", "ct65548", "ct65550", "ct65554", "ct65555", "ct68554", "ct69000", "ct69030", "ct64200", "ct64300". The driver will auto-detect the amount of video memory present for all chipsets. But maybe overridden with the VideoRam entry in the config file "Device" section. The following driver Options are supported, on one or more of the sup- ported chipsets: Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "NoLinear" "boolean" Disables linear addressing in cases where it is enabled by default. Default: off. Option "Linear" "boolean" Enables linear addressing in cases where it is disabled by default. Default: off. Option "HWCursor" "boolean" Enable or disable the HW cursor. Default: on. Option "SWCursor" "boolean" Enable or disable the SW cursor. Default: off. Option "STN" "boolean" Force detection of STN screen type. Default: off. Option "UseModeline" "boolean" Reprogram flat panel timings with values from the modeline. Default: off. Option "FixPanelSize" "boolean" Reprogram flat panel size with values from the modeline. Default: off. Option "NoStretch" "boolean" This option disables the stretching on a mode on a flat panel to fill the screen. Default: off. Option "LcdCenter" "boolean" Center the mode displayed on the flat panel on the screen. Default: off. Option "HWclocks" "boolean" Force the use of fixed hardware clocks on chips that support both fixed and programmable clocks. Default: off. Option "UseVclk1" "boolean" Use the Vclk1 programmable clock on HiQV chipsets instead of Vclk2. Default: off. Option "FPClock8" "float" Option "FPClock16" "float" Option "FPClock24" "float" Option "FPClock32" "float" Force the use of a particular video clock speed for use with the flat panel at a specified depth. Option "MMIO" "boolean" Force the use of memory mapped IO for acceleration registers. Default: off. Option "FullMMIO" "boolean" Force the use of memory mapped IO where it can be used. Default: off. Option "SuspendHack" "boolean" Force driver to leave centering and stretching registers alone. This can fix some laptop suspend/resume problems. Default: off. Option "Overlay" Enable 8+24 overlay mode. Only appropriate for depth 24. Default: off. Option "ColorKey" "integer" Set the colormap index used for the transparency key for the depth 8 plane when operating in 8+16 overlay mode. The value must be in the range 2-255. Default: 255. Option "VideoKey" "integer" This sets the default pixel value for the YUV video overlay key. Default: undefined. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: off. Option "SyncOnGreen" "boolean" Enable or disable combining the sync signals with the green sig- nal. Default: off. Option "ShowCache" "boolean" Enable or disable viewing offscreen memory. Used for debugging only. Default: off. Option "18bitBus" "boolean" Force the driver to assume that the flat panel has an 18bit data bus. Default: off. Option "Crt2Memory" "integer" In a dual-head mode (69030 only) this option selects the amount of memory to set aside for the second head. If not specified, half the memory is used. Default: off. Option "DualRefresh" "integer" The 69030 supports independent refresh rates on its two display channels. This mode of operations uses additional memory band- width and thus limits the maximum colour depth and refresh rate that can be achieved, and so is off by default. Using this option forces the use of an independent refresh rate on the two screens. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) You are also recommended to read the README.chips file that comes with all XFree86 distributions, which discusses the chips driver in more detail. AUTHORS Authors include: Jon Block, Mike Hollick, Regis Cridlig, Nozomi Ytow, Egbert Eich, David Bateman and Xavier Ducoin CIRRUS(4) CIRRUS(4) NAME cirrus - Cirrus Logic video driver SYNOPSIS Section "Device" Identifier "devname" Driver "cirrus" ... EndSection DESCRIPTION cirrus is an XFree86 driver for Cirrus Logic video chips. The driver provides support for the following framebuffer depths: 8, 15, 16, 24, 32 bpp. The cirrus_alpine module also supports 1 and 4 bpp. Conver- sion of 32 bpp to 24 bpp is supported and preferred. Interlace is not supported. DGA is supported. RAMDAC speed may be specified. SUPPORTED HARDWARE The cirrus driver supports several chipsets through two automatically loaded modules. CL-GD546x support is in the cirrus_laguna module: CL-GD5462 CL-GD5464 CL-GD5464BD CL-GD5465 cirrus_alpine module: CL-GD5430 CL-GD5434-4 CL-GD5434-8 CL-GD5436 CL-GD5446 CL-GD5480 CL-GD7548 CL-GD7555 CL-GD7556 CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The following driver Options are supported: cirrus_laguna module: ChipRev HWcursor NoAccel Rotate ShadowFB cirrus_alpine module: ChipRev HWcursor MemCFG1 MemCFG2 MMIO NoAccel Rotate ShadowFB VideoRam If VideoRam is specified, that setting is respected and memory is not probed. Option "Clocks" Clocks line may not be specified for Cirrus chips. Option "HWCursor" "boolean" Enable or disable the HW cursor. Hardware cursor sizes of 32 and 64 are supported in the "Alpine" module. Hardware cursor size of 64 is supported in the "Laguna" module. Default: on for 7548, 7555/6; otherwise off. Option "MemCFG1" "integer" Option "MemCFG2" "integer" May configure memory on non-primary cards. "Alpine" module does not yet know how to configure memory. Use options MemCFG1 and MemCFG2 to set registers SR0F and SR17 before trying to count ram size. The 754x supports MMIO for the BitBlt engine but not for the VGA registers. The 754x may have difficulty with 2 256K X 16 DRAMs (1024) or 4 512K X 8 DRAMs (2048). The 7555/6 assumes 2048. Default: memory automatically detected. Option "MMIO" "boolean" By default, MMIO is used if we have a separate IOAddress and not in monochrome mode (1 bpp). When MMIO is not used, RAC IO flags RAC_COLORMAP, RAC_CURSOR, RAC_VIEWPORT, and RAC_FB are set. Default: on Option "NoAccel" "boolean" Disable or enable acceleration. Acceleration can not be used in less than 8 bpp. Default: Acceleration disabled for 5436, 5480, 7548; otherwise enabled. Option "PciRetry" "boolean" Enable or disable PCI retries. Default: off. Option "Rotate" "CW" Option "Rotate" "CCW" Rotate the display clockwise or counterclockwise. This mode is unaccelerated. This mode forces use of the shadow framebuffer layer. Screen depth must be less than 8 bpp with "Alpine" mod- ule. HW cursor is disabled with Rotate. Default: no rotation. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. This mode is unaccelerated. Screen depth must be less than 8 bpp with "Alpine" module. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors of this document include: Scot Wilcoxon (Scot@Wilcoxon.org), authors of mga(4x). CYRIX(4) CYRIX(4) NAME cyrix - Cyrix video driver SYNOPSIS Section "Device" Identifier "devname" Driver "cyrix" ... EndSection DESCRIPTION cyrix is an XFree86 driver for the Cyrix MediaGX (now Natsemi Geode) series of processors when using the built in video. SUPPORTED HARDWARE The cyrix driver supports the MediaGX, MediaGXi and MediaGXm proces- sors, as well as the Natsemi 'Geode' branded processors. It supports the CS5510, CS5520, CS5530 and CS5530A companion chips. The driver sup- ports 4, 8, 15 and 16 bit deep displays with video compression and acceleration. The MediaGX run length compresses its shared framebuffer, for the best performance on a MediaGX machine pick backgrounds that compress well horizonally. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The following driver options are supported: Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "SWCursor" "boolean" Disable or enable software cursor. Default: software cursor is enabled. Option "HWCursor" "boolean" Disable or enable hardware cursor. Default: hardware cursor is disabled. Option "ShadowFB" "boolean" Disable or enable shadow frame buffer. The shadow buffer is nor- mally only used when rotating the screen. The default is false. Option "Rotate" "CW" Option "Rotate" "CCW" Rotate the display clockwise or counterclockwise for use on Cyrix based tablet PC systems. This mode is currently unacceler- ated. Default: no rotation. BUGS This driver has not been tested on the original 5510 hardware for some considerable time. 8bit mode does not currently work on the CS5510 with external RAMDAC. The 5530A video overlay facility is not currently supported. XFree86 uses the MediaGX 'SoftVGA' interface. On a small number of boards this is buggy and may result in strange illegal instruction traps. Hardware cursors are not currently supported. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Richard Hecker, Annius Groenink, Dirk Hohndel, The GGI Project, Alan Cox. FBDEV(4) FBDEV(4) NAME fbdev - video driver for framebuffer device SYNOPSIS Section "Device" Identifier "devname" Driver "fbdev" BusID "pci:bus:dev:func" ... EndSection DESCRIPTION fbdev is an XFree86 driver for framebuffer devices. This is a non- accelerated driver, the following framebuffer depths are supported: 8, 15, 16, 24. All visual types are supported for depth 8, and TrueColor visual is supported for the other depths. Multi-head configurations are supported. SUPPORTED HARDWARE The fbdev driver supports all hardware where a framebuffer driver is available. fbdev uses the os-specific submodule fbdevhw(4) to talk to the kernel device driver. Currently a fbdevhw module is available for linux. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. For this driver it is not required to specify modes in the screen sec- tion of the config file. The fbdev driver can pick up the currently used video mode from the framebuffer driver and will use it if there are no video modes configured. For PCI boards you might have to add a BusID line to the Device sec- tion. See above for a sample line. You can use "XFree86 -scanpci" to figure out the correct values. The following driver Options are supported: Option "fbdev" "string" The framebuffer device to use. Default: /dev/fb0. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: on. Option "Rotate" "string" Enable rotation of the display. The supported values are "CW" (clockwise, 90 degrees), "UD" (upside down, 180 degrees) and "CCW" (counter clockwise, 270 degrees). Implies use of the shadow framebuffer layer. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7), fbdevhw(4) AUTHORS Authors include: Gerd Knorr, Michel Danzer, Geert Uytterhoeven GLIDE(4) GLIDE(4) NAME glide - Glide video driver SYNOPSIS Section "Device" Identifier "devname" Driver "glide" ... EndSection READ THIS IF NOTHING ELSE This driver has a special requirement that needs to be fulfilled before it will work: You need Glide installed and you need to make a link for the libglide2x.so file. Read the second paragraph in the description below to find out how. DESCRIPTION glide is an XFree86 driver for Glide capable video boards (such as 3Dfx Voodoo boards). This driver is mainly for Voodoo 1 and Voodoo 2 boards, later boards from 3Dfx have 2D built-in and you should preferably use a driver separate for those boards or the fbdev(4) driver. This driver is a bit special because Voodoo 1 and 2 boards are very much NOT made for running 2D graphics. Therefore, this driver uses no hardware accel- eration (since there is no acceleration for 2D, only 3D). Instead it is implemented with the help of a "shadow" framebuffer that resides entirely in RAM. Selected portions of this shadow framebuffer are then copied out to the Voodoo board at the right time. Because of this, the speed of the driver is very dependent on the CPU. But since the CPU is nowadays actually rather fast at moving data, we get very good speed anyway, especially since the whole shadow framebuffer is in cached RAM. This driver requires that you have installed Glide. (Which can, at the time of this writing, be found at http://glide.xxedgexx.com/3DfxRPMS.html). Also, you need to tell XFree86 where the libglide2x.so file is placed by making a soft link in the /usr/X11R6/lib/modules directory that points to the libglide2x.so file. For example (if your libglide2x.so file is in /usr/lib): # ln -s /usr/lib/libglide2x.so /usr/X11R6/lib/modules If you have installed /dev/3dfx, the driver will be able to turn on the MTRR registers (through the glide library) if you have a CPU with such registers (see http://glide.xxedgexx.com/MTRR.html). This will speed up copying data to the Voodoo board by as much as 2.7 times and is very noticeable since this driver copies a lot of data... Highly recom- mended. This driver supports 16 and 24 bit color modes. The 24 bit color mode uses a 32 bit framebuffer (it has no support for 24 bit packed-pixel framebuffers). Notice that the Voodoo boards can only display 16 bit color, but the shadow framebuffer can be run in 24 bit color. The point of supporting 24 bit mode is that this enables you to run in a multi- head configuration with Xinerama together with another board that runs in real 24 bit color mode. (All boards must run the same color depth when you use Xinerama). Resolutions supported are: 640x480, 800x600, 960x720, 1024x768, 1280x1024 and 1600x1200. Note that not all modes will work on all Voodoo boards. It seems that Voodoo 2 boards support no higher than 1024x768 and Voodoo 1 boards can go to 800x600. If you see a message like this in the output from the server: (EE) GLIDE(0): grSstWinOpen returned ... Then you are probably trying to use a resolution that is supported by the driver but not supported by the hardware. Refresh rates supported are: 60Hz, 75Hz and 85Hz. The refresh rate used is derived from the normal mode line according to the following table: Mode-line refresh rate Used refresh rate 0-74 Hz 60 Hz 74-84 Hz 75 Hz 84- Hz 85 Hz Thus, if you use a modeline that for example has a 70Hz refresh rate you will only get a 60Hz refresh rate in actuality. Selecting which Voodoo board to use with the driver is done by using an option called "GlideDevice" in the "Device" section. (If you don't have this option present then the first board found will be selected for that Device section). For example: To use the first Voodoo board, use a "Device" section like this, for example: Section "Device" Identifier "Voodoo" Driver "glide" Option "dpms" "on" Option "GlideDevice" "0" EndSection And if you have more than one Voodoo board, add another "Device" sec- tion with a GlideDevice option with value 1, and so on. (You can use more than one Voodoo board, but SLI configured boards will be treated as a single board.) Multihead and Xinerama configurations are supported. Limited support for DPMS screen saving is available. The "standby" and "suspend" modes are just painting the screen black. The "off" mode turns the Voodoo board off and thus works correctly. This driver does not support a virtual screen size different from the display size. SUPPORTED HARDWARE The glide driver supports any board that can be used with Glide (such as 3Dfx Voodoo boards) CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The following driver Options are supported: Option "OnAtExit" "boolean" If true, will leave the Voodoo board on when the server exits. Useful in a multihead setup when only the Voodoo board is con- nected to a second monitor and you don't want that monitor to lose signal when you quit the server. Put this option in the Device section. Default: off. Option "GlideDevice" "integer" Selects which Voodoo board to use. (Or boards, in an SLI config- uration). The value should be 0 for the first board, 1 for the second and so on. If it is not present, the first Voodoo board found will be selected. Put this option in the Device section. EXAMPLE Here is an example of a part of an XF86Config file that uses a multi- head configuration with two monitors. The first monitor is driven by the fbdev video driver and the second monitor is driven by the glide driver. Section "Monitor" Identifier "Monitor 1" VendorName "Unknown" ModelName "Unknown" HorizSync 30-70 VertRefresh 50-80 # 1024x768 @ 76 Hz, 62.5 kHz hsync Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823 EndSection Section "Monitor" Identifier "Monitor 2" VendorName "Unknown" ModelName "Unknown" HorizSync 30-70 VertRefresh 50-80 # 1024x768 @ 76 Hz, 62.5 kHz hsync Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823 EndSection Section "Device" Identifier "fb" Driver "fbdev" Option "shadowfb" Option "dpms" "on" # My video card is on the AGP bus which is usually # located as PCI bus 1, device 0, function 0. BusID "PCI:1:0:0" EndSection Section "Device" # I have a Voodoo 2 board Identifier "Voodoo" Driver "glide" Option "dpms" "on" # The next line says I want to use the first board. Option "GlideDevice" "0" EndSection Section "Screen" Identifier "Screen 1" Device "fb" Monitor "Monitor 1" DefaultDepth 16 Subsection "Display" Depth 16 Modes "1024x768" EndSubSection EndSection Section "Screen" Identifier "Screen 2" Device "Voodoo" Monitor "Monitor 2" DefaultDepth 16 Subsection "Display" Depth 16 Modes "1024x768" EndSubSection EndSection Section "ServerLayout" Identifier "Main Layout" # Screen 1 is to the right and screen 2 is to the left Screen "Screen 2" Screen "Screen 1" "" "" "Screen 2" "" EndSection If you use this configuration file and start the server with the +xin- erama command line option, the two monitors will be showing a single large area where windows can be moved between monitors and overlap from one monitor to the other. Starting the X server with the Xinerama extension can be done for example like this: $ xinit -- +xinerama SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Author: Henrik Harmsen. GLINT(4) GLINT(4) NAME glint - GLINT/Permedia video driver SYNOPSIS Section "Device" Identifier "devname" Driver "glint" ... EndSection DESCRIPTION glint is an XFree86 driver for 3Dlabs & Texas Instruments GLINT/Perme- dia based video cards. The driver is rather fully accelerated, and pro- vides support for the following framebuffer depths: 8, 15 (may give bad results with FBDev support), 16, 24 (32 bpp recommended, 24 bpp has problems), 30, and an 8+24 overlay mode. SUPPORTED HARDWARE The glint driver supports 3Dlabs (GLINT MX, GLINT 500TX, GLINT 300SX, GLINT GAMMA, GLINT DELTA, GLINT GAMMA2, Permedia, Permedia 2, Permedia 2v, Permedia 3, R3, R4) and Texas Instruments (Permedia, Permedia 2) chips. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the chipset type, but the following ChipSet names may optionally be specified in the config file "Device" section, and will override the auto-detection: "ti_pm2", "ti_pm", "r4", "pm3", "pm2v", "pm2", "pm", "300sx", "500tx", "mx", "gamma", "gamma2", "delta" The driver will try to auto-detect the amount of video memory present for all chips. If it's not detected correctly, the actual amount of video memory should be specified with a VideoRam entry in the config file "Device" section. Additionally, you may need to specify the bus ID of your card with a BusID entry in the config file "Device" section, especially with FBDev support. The following driver Options are supported: Option "UseFlatPanel" "boolean" Enable the FlatPanel feature on the Permedia3. Default: off. Option "SWCursor" "boolean" Enable or disable the SW cursor. Default: off. This option disables the HWCursor option and vice versa. Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "Overlay" Enable 8+24 overlay mode. Only appropriate for depth 24, 32 bpp. (Note: This hasn't been tested with FBDev support and probably won't work.) Recognized values are: "8,24", "24,8". Default: off. Option "PciRetry" "boolean" Enable or disable PCI retries. (Note: This doesn't work with Permedia2 based cards for Amigas.) Default: off. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. (Note: This disables hardware acceleration.) Default: off. Option "UseFBDev" "boolean" Enable or disable use of an OS-specific fb interface (which is not supported on all OSs). See fbdevhw(4) for further informa- tion. Default: off. Option "BlockWrite" "boolean" Enable or disable block writes for the various Permedia 2 chips. This improves acceleration in general, but disables it for some special cases. Default: off. Option "FireGL3000" "boolean" If you have a card of the same name, turn this on. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Alan Hourihane, Dirk Hohndel, Stefan Dirsch, Michel Danzer, Sven Luther I128(4) I128(4) NAME i128 - Number 9 I128 video driver SYNOPSIS Section "Device" Identifier "devname" Driver "i128" ... EndSection DESCRIPTION i128 is an XFree86 driver for Number 9 I128 video cards. The driver is accelerated and provides support for all versions of the I128 chip fam- ily, including the SGI flatpanel configuration. Multi-head configura- tions are supported. SUPPORTED HARDWARE The i128 driver supports PCI and AGP video cards based on the following I128 chips: I128 rev 1 (original) I128-II I128-T2R Ticket 2 Ride I128-T2R4 Ticket 2 Ride IV CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the chipset type and may not be overridden. The driver auto-detects the amount of video memory present for all chips and may not be overridden. The following driver Options are supported: Option "HWCursor" "boolean" Enable or disable the HW cursor. Default: on. Option "SWCursor" "boolean" Enable or disable the SW cursor. Default: off. Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "SyncOnGreen" "boolean" Enable or disable combining the sync signals with the green sig- nal. Default: off. Option "Dac6Bit" "boolean" Reduce DAC operations to 6 bits. Default: false. Option "Debug" "boolean" This turns on verbose debug information from the driver. Default: off. The following additional Options are supported: Option "ShowCache" "boolean" Enable or disable viewing offscreen cache memory. A development debug option. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Robin Cutshaw (driver), Galen Brooks (flatpanel sup- port). I740(4) I740(4) NAME i740 - Intel i740 video driver SYNOPSIS Section "Device" Identifier "devname" Driver "i740" ... EndSection DESCRIPTION i740 is an XFree86 driver for Intel i740 video cards. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The i740 driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: ... I810(4) I810(4) NAME i810 - Intel 8xx integrated graphics chipsets SYNOPSIS Section "Device" Identifier "devname" Driver "i810" ... EndSection DESCRIPTION i810 is an XFree86 driver for Intel integrated graphics chipsets. The driver supports depths 8, 15, 16 and 24. All visual types are sup- ported in depth 8. For the i810/i815 other depths support the True- Color and DirectColor visuals. For the 830M and later, only the True- Color visual is supported for depths greater than 8. The driver sup- ports hardware accelerated 3D via the Direct Rendering Infrastructure (DRI), but only in depth 16 for the i810/i815 and depths 16 and 24 for the 830M and later. SUPPORTED HARDWARE i810 supports the i810, i810-DC100, i810e, i815, 830M, 845G, 852GM, 855GM, 865G, 915G and 915GM chipsets. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The Intel 8xx family of integrated graphics chipsets has a unified mem- ory architecture and uses system memory for video ram. For the i810 and i815 familiy of chipset, operating system support for allocating system memory for video use is required in order to use this driver. For the 830M and later, this is required in order for the driver to use more video ram than has been pre-allocated at boot time by the BIOS. This is usually achieved with an "agpgart" or "agp" kernel driver. Linux, and recent versions of FreeBSD, OpenBSD and NetBSD have such kernel drivers available. By default 8 Megabytes of system memory are used for graphics. For the 830M and later, the default is 8 Megabytes when DRI is not enabled and 32 Megabytes with DRI is enabled. This amount may be changed with the VideoRam entry in the config file Device section. It may be set to any reasonable value up to 64MB for older chipsets or 128MB for newer chipets. It is advisable to check the XFree86 log file to check if any features have been disabled because of insufficient video memory. In particular, DRI support or tiling mode may be disabled with insuffi- cient video memory. Either of these being disabled will reduce perfor- mance for 3D applications. Note however, that increasing this value too much will reduce the amount of system memory available for other applications. The driver makes use of the video BIOS to program video modes for the 830M and later. This limits the video modes that can be used to those provided by the video BIOS, and to those that will fit into the amount of video memory that the video BIOS is aware of. The following driver Options are supported: Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "SWCursor" "boolean" Disable or enable software cursor. Default: software cursor is disable and a hardware cursor is used for configurations where the hardware cursor is available. Option "ColorKey" "integer" This sets the default pixel value for the YUV video overlay key. Default: undefined. Option "CacheLines" "integer" This allows the user to change the amount of graphics memory used for 2D acceleration and video. Decreasing this amount leaves more for 3D textures. Increasing it can improve 2D per- formance at the expense of 3D performance. Default: depends on the resolution, depth, and available video memory. The driver attempts to allocate at least enough to hold two DVD-sized YUV buffers by default. The default used for a specific configura- tion can be found by examining the XFree86 log file. Option "DRI" "boolean" Disable or enable DRI support. Default: DRI is enabled for con- figurations where it is supported. The following driver Options are supported for the i810 and i815 chipsets: Option "DDC" "boolean" Disable or enable DDC support. Default: enabled. Option "Dac6Bit" "boolean" Enable or disable 6-bits per RGB for 8-bit modes. Default: 8-bits per RGB for 8-bit modes. Option "XvMCSurfaces" "integer" This option enables XvMC. The integer parameter specifies the number of surfaces to use. Valid values are 6 and 7. Default: XvMC is disabled. The following driver Options are supported for the 830M and later chipsets: Option "VBERestore" "boolean" Enable or disable the use of VBE save/restore for saving and restoring the initial text mode. This is disabled by default because it causes lockups on some platforms. However, there are some cases where it must enabled for the correct restoration of the initial video mode. If you are having a problem with that, try enabling this option. Default: Disabled. Option "VideoKey" "integer" This is the same as the "ColorKey" option described above. It is provided for compatibility with most other drivers. Option "XVideo" "boolean" Disable or enable XVideo support. Default: XVideo is enabled for configurations where it is supported. Option "MonitorLayout" "anystr" Allow different monitor configurations. e.g. "CRT,LFP" will con- figure a CRT on Pipe A and an LFP on Pipe B. Regardless of the primary heads' pipe it is always configured as ",". Additionally you can add different configu- rations such as "CRT+DFP,LFP" which would put a digital flat panel and a CRT on pipe A, and a local flat panel on pipe B. For single pipe configurations you can just specify the monitors types on Pipe A, such as "CRT+DFP" which will enable the CRT and DFP on Pipe A. Valid monitors are CRT, LFP, DFP, TV, CRT2, LFP2, DFP2, TV2 and NONE. NOTE: Some configurations of monitor types may fail, this depends on the Video BIOS and system con- figuration. Default: Not configured, and will use the current head's pipe and monitor. Option "Clone" "boolean" Enable Clone mode on pipe B. This will setup the second head as a complete mirror of the monitor attached to pipe A. NOTE: Video overlay functions will not work on the second head in this mode. If you require this, then use the MonitorLayout above and do (as an example) "CRT+DFP,NONE" to configure both a CRT and DFP on Pipe A to achieve local mirroring and disable the use of this option. Default: Clone mode on pipe B is disabled. Option "CloneRefresh" "integer" When the Clone option is specified we can drive the second moni- tor at a different refresh rate than the primary. Default: 60Hz. Option "CheckDevices" "boolean" On mobile platforms it's desirable to monitor the device status and switch the outputs accordingly. For example, when the lid is opened or closed, or when using hotkeys without ACPI support. By default this option is on for mobile platforms and is not avail- able on desktop systems. Default: enabled. Option "FixedPipe" "anystr" When using a dual pipe system, it may be preferable to fix the primary pipe such that if you boot up on an external screen you may want the internal flat panel to be the primary. Using this option will allow this. Options are A or B. Default: disabled (uses current pipe as primary). Option "DisplayInfo" "boolean" It has been found that a certain BIOS call can lockup the Xserver because of a problem in the Video BIOS. The log file will identify if you are suffering from this problem and tell you to turn this option off. Default: enabled Option "DevicePresence" "boolean" Tell the driver to perform an active detect of the currently connected monitors. This option is useful if the monitor was not connected when the machine has booted, but unfortunately it doesn't always work and is extremely dependent upon the Video BIOS. Default: disabled Option "Rotate" "CW" Option "Rotate" "CCW" Rotate the desktop 90 degrees clockwise or counterclockwise. This option forces the ShadowFB option on, and disables acceler- ation. Default: no rotation. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. This option disables acceleration. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Keith Whitwell, and also Jonathan Bian, Matthew J Sot- tek, Jeff Hartmann, Mark Vojkovich, Alan Hourihane, H. J. Lu. 830M and 845G support reworked for XFree86 4.3 by David Dawes and Keith Whitwell. 852GM, 855GM, and 865G support added by David Dawes and Keith Whitwell. 915G and 915GM support added by Alan Hourihane and Keith Whitwell. Dual Head, Clone and lid status support added by Alan Hourihane. IMSTT(4) IMSTT(4) NAME imstt - Integrated Micro Solutions Twin Turbo 128 driver SYNOPSIS Section "Device" Identifier "devname" Driver "imstt" ... EndSection DESCRIPTION imstt is an XFree86 driver for Integrated Micro Solutions Twin Turbo 128 video chips. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The imstt driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: ... MGA(4) MGA(4) NAME mga - Matrox video driver SYNOPSIS Section "Device" Identifier "devname" Driver "mga" ... EndSection DESCRIPTION mga is an XFree86 driver for Matrox video cards. The driver is fully accelerated, and provides support for the following framebuffer depths: 8, 15, 16, 24, and an 8+24 overlay mode. All visual types are sup- ported for depth 8, and both TrueColor and DirectColor visuals are sup- ported for the other depths except 8+24 mode which supports Pseudo- Color, GrayScale and TrueColor. Multi-card configurations are sup- ported. XVideo is supported on G200 and newer systems, with either TexturedVideo or video overlay. The second head of dual-head cards is supported for the G450 and G550. Support for the second head on G400 cards requires a binary-only "mga_hal" module that is available from Matrox , and may be on the CD supplied with the card. That module also provides various other enhancements, and may be necessary to use the DVI (digital) output on the G550 (and other cards). SUPPORTED HARDWARE The mga driver supports PCI and AGP video cards based on the following Matrox chips: MGA2064W Millennium (original) MGA1064SG Mystique MGA2164W Millennium II G100 G200 Millennium G200 and Mystique G200 G400 G450 G550 CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the chipset type, but the following ChipSet names may optionally be specified in the config file "Device" section, and will override the auto-detection: "mga2064w", "mga1064sg", "mga2164w", "mga2164w agp", "mgag100", "mgag200", "mgag200 pci", "mgag400", "mgag550". The G450 is Chipset "mgag400" with ChipRev 0x80. The driver will auto-detect the amount of video memory present for all chips except the Millennium II. In the Millennium II case it defaults to 4096 kBytes. When using a Millennium II, the actual amount of video memory should be specified with a VideoRam entry in the config file "Device" section. The following driver Options are supported: Option "ColorKey" "integer" Set the colormap index used for the transparency key for the depth 8 plane when operating in 8+24 overlay mode. The value must be in the range 2-255. Default: 255. Option "HWCursor" "boolean" Enable or disable the HW cursor. Default: on. Option "MGASDRAM" "boolean" Specify whether G100, G200 or G400 cards have SDRAM. The driver attempts to auto-detect this based on the card's PCI subsystem ID. This option may be used to override that auto-detection. The mga driver is not able to auto-detect the presence of of SDRAM on secondary heads in multihead configurations so this option will often need to be specified in multihead configura- tions. Default: auto-detected. Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "NoHal" "boolean" Disable or enable loading the "mga_hal" module. Default: the module is loaded when available and when using hardware that it supports. Option "OverclockMem" Set clocks to values used by some commercial X-Servers (G100, G200 and G400 only). Default: off. Option "Overlay" "value" Enable 8+24 overlay mode. Only appropriate for depth 24. Rec- ognized values are: "8,24", "24,8". Default: off. (Note: the G100 is unaccelerated in the 8+24 overlay mode due to a missing hardware feature.) Option "PciRetry" "boolean" Enable or disable PCI retries. Default: off. Option "Rotate" "CW" Option "Rotate" "CCW" Rotate the display clockwise or counterclockwise. This mode is unaccelerated. Default: no rotation. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: off. Option "SyncOnGreen" "boolean" Enable or disable combining the sync signals with the green sig- nal. Default: off. Option "UseFBDev" "boolean" Enable or disable use of on OS-specific fb interface (and is not supported on all OSs). See fbdevhw(4) for further information. Default: off. Option "VideoKey" "integer" This sets the default pixel value for the YUV video overlay key. Default: undefined. Option "TexturedVideo" "boolean" This has XvImage support use the texture engine rather than the video overlay. This option is only supported by the G200 and G400, and only in 16 and 32 bits per pixel. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Radoslaw Kapitan, Mark Vojkovich, and also David Dawes, Guy Desbief, Dirk Hohndel, Doug Merritt, Andrew E. Mileski, Andrew van der Stock, Leonard N. Zubkoff, Andrew C. Aitchison. NEOMAGIC(4) NEOMAGIC(4) NAME neomagic - Neomagic video driver SYNOPSIS Section "Device" Identifier "devname" Driver "neomagic" ... EndSection DESCRIPTION neomagic is an XFree86 driver for the Neomagic graphics chipsets found in many laptop computers. SUPPORTED HARDWARE neomagic supports the following chipsets: MagicGraph 128 (NM2070) MagicGraph 128V (NM2090) MagicGraph 128ZV (NM2093) MagicGraph 128ZV+ (NM2097) MagicGraph 128XD (NM2160) MagicGraph 256AV (NM2200) MagicGraph 256AV+ (NM2230) MagicGraph 256ZX (NM2360) MagicGraph 256XL+ (NM2380) The driver supports depths 8, 15, 16 and 24 for all chipsets except the NM2070 which does not support depth 24. All depths are accelerated except for depth 24 which is only accelerated on NM2200 and newer mod- els. All visuals are supported in depth 8. TrueColor and DirectColor visuals are supported in the other depths. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The following driver Options are supported: Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "SWCursor" "boolean" Disable or enable software cursor. Default: software cursor is disable and a hardware cursor is used. Option "PCIBurst" "boolean" Disable or enable PCI burst modes. Default: enabled. Option "Rotate" "CW" Option "Rotate" "CCW" Rotate the display clockwise or counterclockwise. This mode is unaccelerated. Default: no rotation. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: off. Option "OverlayMem" "integer" Reserve the given amount of memory (in bytes) for the XVideo overlay. On boards with limited memory, display of large XVideo buffers might fail due to insufficient available memory. Using this option solves the problem at the expense of reducing the memory available for other operations. For full-resolution DVDs, 829440 bytes (720x576x2) are necessary. Note On some laptops using the 2160 chipset (MagicGraph 128XD) the following options are needed to avoid a lock-up of the graphic engine: Option "XaaNoScanlineImageWriteRect" Option "XaaNoScanlineCPUToScreenColorExpandFill" SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Jens Owen, Kevin E. Martin, and also Egbert Eich, Mark Vojkovich, Alan Hourihane. NEWPORT(4) NEWPORT(4) NAME newport - Newport video driver SYNOPSIS Section "Device" Identifier "devname" Driver "newport" ... EndSection DESCRIPTION newport is an XFree86 driver for the SGI Indy's and Indigo2's newport video cards. SUPPORTED HARDWARE The newport driver supports the Newport (also called XL) cards found in SGI Indys and Indigo2s. It supports both the 8bit and 24bit versions of the Newport. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The following driver Options are supported: Option "bitplanes" "integer" number of bitplanes of the board (8 or 24) Default: auto- detected. Option "HWCursor" "boolean" Enable or disable the HW cursor. Default: on. Option "BusID" "integer" Set to 1 for the Indigo2 XL. Default: 0 SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors: Guido Gnther agx@sigxcpu.org NSC(4) NSC(4) NAME nsc - Nsc video driver SYNOPSIS Section "Device" Identifier "devname" Driver "nsc" ... EndSection DESCRIPTION nsc is an XFree86 driver for National Semiconductors GEODE processor family. It uses the DURANGO kit provided by National Semiconductor. The driver is accelerated, and provides support for the following framebuffer depths: 8, 16 and 24. SUPPORTED HARDWARE The nsc driver supports GXLV (5530 companion chip), SC1200, SC1400 and GX2 (5535 companion chip). CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver will auto-detect the amount of video memory present for all chips. If the amount of memory is detected incorrectly, the actual amount of video memory should be specified with a VideoRam entry in the config file "Device" section. The following driver Options are supported: Option "SWCursor" "boolean" Enable or disable the SW cursor. Default: off. Option "HWCursor" "boolean" Enable or disable the HW cursor. Default: on. Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "NoCompression" "boolean" Disable or enable compression. Default: compression is enabled. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: off. Option "Rotate" "CW" Rotate the display clockwise. This mode is unaccelerated, and uses the Shadow Frame Buffer layer. Default: no rotation. Option "Rotate" "CCW" Rotate the display counterclockwise. This mode is unaccelerated, and uses the Shadow Frame Buffer layer. Default: no rotation. Option "FlatPanel" "boolean" This enables the FlatPanel display unit. The FlatPanel depends on the BIOS to do the Panel h/w initialization. In GX2 based platforms with TFT part Flatpanel is enabled, and on CRT part is disabled. Default: off. Option "OSMImageBuffers" "integer" This sets the number of scanline buffers to be allocated in off- screen memory for acceleration. This can take any value 0 will disable the allocation. Disabled if cannot allocate requested scanline memory. Default: 20. Option "ColorKey" "integer" This sets the default pixel value for the YUV video overlay key. Default: 0. The following Options are supported only on SC1200 based platforms: Option "TV" "PAL-768x576" Selects the PAL TV display mode 768x576 and the depth is forced to 16 bpp. Default: no TV. Option "TV" "PAL-720x576" Selects the PAL TV display mode 720x576 and the depth is forced to 16 bpp. Default: no TV. Option "TV" "NTSC-720x480" Selects the NTSC TV display mode 720x480 and the depth is forced to 16 bpp. Default: no TV. Option "TV" "NTSC-640x480" Selects the NTSC TV display mode 640x480 and the depth is forced to 16 bpp. Default: no TV. Option "TV_Output" "COMPOSITE" The selected TV mode output is coded for Composite signal. Default: no TV. Option "TV_Output" "SVIDEO" The selected TV mode output is coded for SVIDEO signal. Default: no TV. Option "TV_Output" "YUV" The selected TV mode output is coded for YUV signal. Default: no TV. Option "TV_Output" "SCART" The selected TV mode output is coded for SCART signal. Default: no TV. Option "TVOverscan" x:yy:ww:hh" This option will let only the viewable display area smaller to be able to view on TV. The parameters xx: X-offset, yy: Y-off- set, ww: Viewable width, hh: Viewable height. Default: no TV. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHOR Author: Sarma V. Kolluru NV(4) NV(4) NAME nv - NVIDIA video driver SYNOPSIS Section "Device" Identifier "devname" Driver "nv" ... EndSection DESCRIPTION nv is an XFree86 driver for NVIDIA video cards. The driver supports 2D acceleration and provides support for the following framebuffer depths: 8, 15, 16 (except Riva128) and 24. All visual types are supported for depth 8, TrueColor and DirectColor visuals are supported for the other depths with the exception of the Riva128 which only supports TrueColor in the higher depths. SUPPORTED HARDWARE The nv driver supports PCI and AGP video cards based on the following NVIDIA chips: RIVA 128 NV3 RIVA TNT NV4 RIVA TNT2 NV5 GeForce 256, QUADRO NV10 GeForce2, QUADRO2 NV11 & NV15 GeForce3, QUADRO DCC NV20 nForce, nForce2 NV1A, NV1F GeForce4, QUADRO4 NV17, NV18, NV25, NV28 GeForce FX, QUADRO FX NV30, NV31, NV34, NV35, NV36, NV37, NV38 GeForce 6XXX NV40, NV41, NV43, NV44, NV45, C51 GeForce 7XXX G70, G71, G72, G73 CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the chipset type and the amount of video memory present for all chips. The following driver Options are supported: Option "HWCursor" "boolean" Enable or disable the HW cursor. Default: on. Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "UseFBDev" "boolean" Enable or disable use of on OS-specific fb interface (and is not supported on all OSs). See fbdevhw(4) for further information. Default: off. Option "CrtcNumber" "integer" GeForce2 MX, nForce2, Quadro4, GeForce4, Quadro FX and GeForce FX may have two video outputs. The driver attempts to autode- tect which one the monitor is connected to. In the case that autodetection picks the wrong one, this option may be used to force usage of a particular output. The options are "0" or "1". Default: autodetected. Option "FlatPanel" "boolean" The driver usually can autodetect the presence of a digital flat panel. In the case that this fails, this option can be used to force the driver to treat the attached device as a digital flat panel. With this driver, a digital flat panel will only work if it was POSTed by the BIOS, that is, the machine must have booted to the panel. If you have a dual head card you may also need to set the option CrtcNumber described above. Default: off. Option "FPDither" "boolean" Many digital flat panels (particularly ones on laptops) have only 6 bits per component color resolution. This option tells the driver to dither from 8 bits per component to 6 before the flat panel truncates it. This is only supported in depth 24 on GeForce2 MX, nForce2, GeForce4, Quadro4, Geforce FX and Quadro FX. Default: off. Option "FPScale" "boolean" Supported only on GeForce4, Quadro4, Geforce FX and Quadro FX. This option tells to the driver to scale lower resolutions up to the flat panel's native resolution. Default: on. Option "Rotate" "CW" Option "Rotate" "CCW" Rotate the display clockwise or counterclockwise. This mode is unaccelerated. Default: no rotation. Note: The Resize and Rotate extension will be disabled if the Rotate option is used. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: David McKay, Jarno Paananen, Chas Inman, Dave Schmenk, Mark Vojkovich RENDITION(4) RENDITION(4) NAME rendition - Rendition video driver SYNOPSIS Section "Device" Identifier "devname" Driver "rendition" ... EndSection DESCRIPTION rendition is an XFree86 driver for Rendition/Micron based video cards. The driver supports following framebuffer depths: 8, 15 (Verite V1000 only), 16 and 24. Acceleration and multi-head configurations are not supported yet, but are work in progress. SUPPORTED HARDWARE The rendition driver supports PCI and AGP video cards based on the fol- lowing Rendition/Micron chips: V1000 Verite V1000 based cards. V2100 Verite V2100 based cards. Diamond Stealth II S220 is the only known such card. V2200 Verite V2200 based cards. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the chipset type, but the following ChipSet names may optionally be specified in the config file "Device" section, and will override the auto-detection: "v1000", "v2x00". The driver will auto-detect the amount of video memory present for all chips. If the amount of memory is detected incorrectly, the actual amount of video memory should be specified with a VideoRam entry in the config file "Device" section. The following driver Options are supported: Option "SWCursor" "boolean" Disables use of the hardware cursor. Default: use HW-cursor. Option "OverclockMem" "boolean" Increases the Mem/Sys clock to 125MHz/60MHz from standard 110MHz/50MHz. Default: Not overclocked. Option "DacSpeed" "MHz" Run the memory at a higher clock. Useful on some cards with dis- play glitches at higher resolutions. But adds the risk to damage the hardware. Use with caution. Option "FramebufferWC" "boolean" If writecombine is disabled in BIOS, and you add this option in configuration file, then the driver will try to request write- combined access to the framebuffer. This can drastically increase the performance on unaccelerated server. Requires that "MTRR"-support is compiled into the OS-kernel. Default: Dis- abled for V1000, enabled for V2100/V2200. Option "NoDDC" "boolean" Disable probing of DDC-information from your monitor. This information is not used yet and is only there for informational purposes. This might change before final XFree86 4.0 release. Safe to disable if you experience problems during startup of X- server. Default: Probe DDC. Option "ShadowFB" "boolean" If this option is enabled, the driver will cause the CPU to do each drawing operation first into a shadow frame buffer in sys- tem virtual memory and then copy the result into video memory. If this option is not active, the CPU will draw directly into video memory. Enabling this option is beneficial for those sys- tems where reading from video memory is, on average, slower than the corresponding read/modify/write operation in system virtual memory. This is normally the case for PCI or AGP adapters, and, so, this option is enabled by default unless acceleration is enabled. Default: Enabled unless acceleration is used. Option "Rotate" "CW" Option "Rotate" "CCW" Rotate the display clockwise or counterclockwise. This mode is unaccelerated. Default: no rotation. Notes For the moment the driver defaults to not request write- combine for any chipset as there has been indications of prob- lems with it. Use Option "MTRR" to let the driver request write- combining of memory access on the video board. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Marc Langenbach, Dejan Ilic s3virge(4) s3virge(4) NAME s3virge - S3 ViRGE video driver SYNOPSIS Section "Device" Identifier "devname" Driver "s3virge" ... [ Option "optionname" ["optionvalue"]] EndSection DESCRIPTION s3virge is an XFree86 driver for S3 based video cards. The driver is fully accelerated, and provides support for the following framebuffer depths: 8, 15, 16, and 24. All visual types are supported for depth 8, and TrueColor visuals are supported for the other depths. XVideo hard- ware up scaling is supported in depth 16 and 24 on the DX, GX, GX2, MX, MX+, and Trio3D/2X. Doublescan modes are supported and tested in depth 8 and 16 on DX, but disable XVideo. Doublescan modes on other chipsets are untested. SUPPORTED HARDWARE The s3virge driver supports PCI and AGP video cards based on the fol- lowing S3 chips: ViRGE 86C325 ViRGE VX 86C988 ViRGE DX 86C375 ViRGE GX 86C385 ViRGE GX2 86C357 ViRGE MX 86C260 ViRGE MX+ 86C280 Trio 3D 86C365 Trio 3D/2X 86C362, 86C368 CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. All options names are case and white space insensitive when parsed by the server, for example, "virge vx" and "VIRGEvx" are equivalent. The driver auto-detects the chipset type, but the following ChipSet names may optionally be specified in the config file ""Device"" sec- tion, and will override the auto-detection: "virge", "86c325", "virge vx", "86c988", "virge dx", "86c375", "virge gx", "86c385", "virge gx2", "86c357", "virge mx", "86c260", "virge mx+", "86c280", "trio 3d", "86c365", "trio 3d/2x", "86c362", "86c368". The following Cursor Options are supported: Option "HWCursor" ["boolean"] Enable or disable the HW cursor. Default: on. Option "SWCursor" ["boolean"] Inverse of "HWCursor". Default: off. The following display Options are supported: Option "ShadowFB" ["boolean"] Use shadow framebuffer. Disables HW acceleration. Default: off. Option "Rotate" "cw | ccw" Rotate the screen CW - clockwise or CCW - counter clockwise. Disables HW Acceleration and HW Cursor, uses ShadowFB. Default: no rotation. Option "XVideo" ["boolean"] Disable XVideo support by using the off option. This changes FIFO settings which prevent screen noise for high-res modes. Default: on The following video memory Options are supported: Option "slow_edodram" Switch the standard ViRGE to 2-cycle edo mode. Try this if you encounter pixel corruption on the ViRGE. Using this option will cause a large decrease in performance. Default: off. Option "fpm_vram" Switch the ViRGE/VX to fast page mode vram mode. Default: off. Option "slow_dram | fast_dram" Change Trio 3D and 3D/2X memory options. Default: Use BIOS defaults. Option "early_ras_precharge | late_ras_precharge" adjust memory parameters. One of these will us the same set- tings as your video card defaults, and using neither in the con- fig file does the same. Default: none. Option "set_mclk" "integer" sets the memory clock, where integer is in kHz, and integer <= 100000. Default: probe the memory clock value, and use it at server start. Option "set_refclk" "integer" sets the ref clock for ViRGE MX, where integer is in kHz. Default: probe the memory clock value, and use it at server start. The following acceleration and graphics engine Options are supported: Option "NoAccel" Disable acceleration. Very useful for determining if the driver has problems with drawing and acceleration routines. This is the first option to try if your server runs but you see graphic corruption on the screen. Using it decreases performance, as it uses software emulation for drawing operations the video driver can accelerate with hardware. Default: acceleration is enabled. Option "fifo_aggressive | fifo_moderate | fifo_conservative" alter the settings for the threshold at which the pixel FIFO takes over the internal memory bus to refill itself. The smaller this threshold, the better the acceleration performance of the card. You may try the fastest setting (fifo_aggressive) and move down if you encounter pixel corruption. The optimal setting will probably depend on dot-clock and on color depth. Note that specifying any of these options will also alter other memory settings which may increase performance, so trying fifo_conser- vative will in most cases be a slight benefit (this uses the chip defaults). If pixel corruption or transient streaking is observed during drawing operations then removing any fifo options is recommended. Default: none. The following PCI bus Options are supported: Option "pci_burst" ["boolean"] will enable PCI burst mode. This should work on all but a few broken PCI chipsets, and will increase performance. Default: off. Option "pci_retry" ["boolean"] will allow the driver to rely on PCI Retry to program the ViRGE registers. pci_burst must be enabled for this to work. This will increase performance, especially for small fills/blits, because the driver does not have to poll the ViRGE before send- ing it commands to make sure it is ready. It should work on most recent PCI chipsets. Default: off. The following ViRGE MX LCD Options are supported: Option "lcd_center" Option "set_lcdclk" "integer" allows setting the clock for a ViRGE MX LCD display. integer is in Hz. Default: use probed value. The following additional Options are supported: Option "ShowCache" ["boolean"] Enable or disable viewing offscreen cache memory. A development debug option. Default: off. Option "mx_cr3a_fix" ["boolean"] Enable or disable a cr3a fix added for ViRGE MX. Default: on. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) KNOWN BUGS The VideoRam generic driver parameter is presently ignored by the s3virge driver. On PPC this is reported to cause problems for 2M cards, because they may autodetect as 4M. SUPPORT For assistance with this driver, or XFree86 in general, check the XFree86 web site at http://www.xfree86.org. A FAQ is available on the web site at http://www.xfree86.org/FAQ/. If you find a problem with XFree86 or have a question not answered in the FAQ please use our bug report form available on the web site or send mail to XFree86@XFree86.org. When reporting problems with the driver send as much detail as possible, including chipset type, a server output log, and operating system specifics. AUTHORS Kevin Brosius, Matt Grossman, Harald Koenig, Sebastien Marineau, Mark Vojkovich. SAVAGE(4) SAVAGE(4) NAME savage - S3 Savage video driver SYNOPSIS Section "Device" Identifier "devname" Driver "savage" ... EndSection DESCRIPTION savage is an XFree86 driver for the S3 Savage family video accelerator chips. The savage driver supports PCI and AGP boards with the follow- ing chips: Savage3D (8a20 and 8a21) Savage4 (8a22) Savage2000 (9102) Savage/MX (8c10 and 8c11) Savage/IX (8c12 and 8c13) ProSavage PM133 (8a25) ProSavage KM133 (8a26) Twister (ProSavage PN133) (8d01) TwisterK (ProSavage KN133) (8d02) ProSavage DDR (8d03) ProSavage DDR-K (8d04) CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The following driver Options are supported: Option "HWCursor" "boolean" Option "SWCursor" "boolean" These two options interact to specify hardware or software cur- sor. If the SWCursor option is specified, any HWCursor setting is ignored. Thus, either "HWCursor off" or "SWCursor on" will force the use of the software cursor. On Savage/MX and Sav- age/IX chips which are connected to LCDs, a software cursor will be forced, because the Savage hardware cursor does not correctly track the automatic panel expansion feature. Default: hardware cursor. Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "Rotate" "CW" Option "Rotate" "CCW" Rotate the desktop 90 degrees clockwise or counterclockwise. This option forces the ShadowFB option on, and disables acceler- ation. Default: no rotation. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. This option disables acceleration. Default: off. Option "LCDClock" "frequency" Override the maximum dot clock. Some LCD panels produce incor- rect results if they are driven at too fast of a frequency. If UseBIOS is on, the BIOS will usually restrict the clock to the correct range. If not, it might be necessary to override it here. The frequency parameter may be specified as an integer in Hz (135750000), or with standard suffixes like "k", "kHz", "M", or "MHz" (as in 135.75MHz). Option "UseBIOS" "boolean" Enable or disable use of the video BIOS to change modes. Ordi- narily, the savage driver tries to use the video BIOS to do mode switches. This generally produces the best results with the mobile chips (/MX and /IX), since the BIOS knows how to handle the critical but unusual timing requirements of the various LCD panels supported by the chip. To do this, the driver searches through the BIOS mode list, looking for the mode which most closely matches the XF86Config mode line. Some purists find this scheme objectionable. If you would rather have the savage driver use your mode line timing exactly, turn off the UseBios option. Default: on (use the BIOS). Option "ShadowStatus" "boolean" Enables the use of a shadow status register. There is a chip bug in the Savage graphics engine that can cause a bus lock when reading the engine status register under heavy load, such as when scrolling text or dragging windows. The bug affects about 4% of all Savage users. If your system hangs regularly while scrolling text or dragging windows, try turning this option on. This uses an alternate method of reading the engine status which is slightly more expensive, but avoids the problem. Default: off (use normal status register). FILES savage_drv.o SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include Tim Roberts (timr@probo.com) and Ani Joshi (ajoshi@unixbox.com) for the 4.0 version, and Tim Roberts and S. Marineau for the 3.3 driver from which this was derived. siliconmotion(4) siliconmotion(4) NAME siliconmotion - Silicon Motion video driver SYNOPSIS Section "Device" Identifier "devname" Driver "siliconmotion" ... [ Option "optionname" ["optionvalue"]] EndSection DESCRIPTION siliconmotion is an XFree86 driver for Silicon Motion based video cards. The driver is fully accelerated, and provides support for the following framebuffer depths: 8, 16, and 24. All visual types are sup- ported for depth 8, and TrueColor visuals are supported for the other depths. SUPPORTED HARDWARE The siliconmotion driver supports PCI and AGP video cards based on the following Silicon Motion chips: Lynx SM910 LynxE SM810 Lynx3D SM820 LynxEM SM710 LynxEM+ SM712 Lynx3DM SM720 Cougar3DR SM730 CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. All options names are case and white space insensitive when parsed by the server, for example, "lynxe" and "LynxE" are equivalent. The driver auto-detects the chipset type, but the following ChipSet names may optionally be specified in the config file "Device" section, and will override the auto-detection: "lynx", "lynxe", "lynx3d", "lynxem", "lynxem+", "lynx3dm", "cougar3dr". The following Cursor Options are supported: Option "HWCursor" "boolean" Enable or disable the HW cursor. Default: on. Option "SWCursor" "boolean" Inverse of "HWCursor". Default: off. The following display Options are supported: Option "ShadowFB" "boolean" Use shadow framebuffer. Default: off. Option "Rotate" "CW" Option "Rotate" "CCW" Rotate the screen CW - clockwise or CCW - counter clockwise. Uses ShadowFB. Default: no rotation. Option "VideoKey" "integer" Set the video color key. Default: a little off full blue. Option "ByteSwap" "boolean" Turn on byte swapping for capturing using SMI demo board. Default: off. Option "Interlaced" "boolean" Turn on interlaced video capturing. Default: off. Option "UseBIOS" "boolean" Use the BIOS to set the modes. This is used for custom panel timings. Default: on. Option "ZoomOnLCD" "boolean" Allow changing resolution on LCD (Ctrl-Alt-Plus and Ctrl-Alt- Minus). Default: off. The following video memory Options are supported: Option "set_mclk" "integer" sets the memory clock, where integer is in kHz, and integer <= 100000. Default: probe the memory clock value, and use it at server start. The following acceleration and graphics engine Options are supported: Option "NoAccel" Disable acceleration. Very useful for determining if the driver has problems with drawing and acceleration routines. This is the first option to try if your server runs but you see graphic corruption on the screen. Using it decreases performance, as it uses software emulation for drawing operations the video driver can accelerate with hardware. Default: acceleration is enabled. Option "fifo_aggressive" Option "fifo_moderate" Option "fifo_conservative" alter the settings for the threshold at which the pixel FIFO takes over the internal memory bus to refill itself. The smaller this threshold, the better the acceleration performance of the card. You may try the fastest setting (fifo_aggressive) and move down if you encounter pixel corruption. The optimal setting will probably depend on dot-clock and on color depth. Note that specifying any of these options will also alter other memory settings which may increase performance, so trying fifo_conser- vative will in most cases be a slight benefit (this uses the chip defaults). If pixel corruption or transient streaking is observed during drawing operations then removing any fifo options is recommended. Default: none. The following PCI bus Options are supported: Option "pci_burst" "boolean" will enable PCI burst mode. This should work on all but a few broken PCI chipsets, and will increase performance. Default: off. Option "pci_retry" "boolean" will allow the driver to rely on PCI Retry to program the ViRGE registers. pci_burst must be enabled for this to work. This will increase performance, especially for small fills/blits, because the driver does not have to poll the ViRGE before send- ing it commands to make sure it is ready. It should work on most recent PCI chipsets. Default: off. The following additional Options are supported: Option "ShowCache" "boolean" Enable or disable viewing offscreen cache memory. A development debug option. Default: off. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) SUPPORT For assistance with this driver, or XFree86 in general, check the XFree86 web site at http://www.xfree86.org. A FAQ is available on the web site at http://www.xfree86.org/FAQ/. If you find a problem with XFree86 or have a question not answered in the FAQ please use our bug report form available on the web site or send mail to XFree86@XFree86.org. When reporting problems with the driver send as much detail as possible, including chipset type, a server output log, and operating system specifics. AUTHORS Kevin Brosius, Matt Grossman, Harald Koenig, Sebastien Marineau, Mark Vojkovich, Frido Garritsen, Corvin Zahn. SIS(4) SIS(4) NAME sis - SiS video driver SYNOPSIS Section "Device" Identifier "devname" Driver "sis" ... EndSection DESCRIPTION sis is an XFree86 driver for SiS (Silicon Integrated Systems) video chips. The driver is accelerated, and provides support for colordepths of 8, 16 and 24 bpp. XVideo, Render and other extensions are supported as well. SUPPORTED HARDWARE The sis driver supports PCI and AGP video cards based on the following chipsets: SiS5597/5598 SiS530/620 SiS6326/AGP/DVD SiS300/305 SiS540 SiS630/730 SiS315/H/PRO SiS550/551/552 SiS650/651/M650/661FX/M661FX/M661MX/740/741/741GX SiS330 (Xabre) SiS760 In the following text, the following terms are used: old series for SiS5597/5598, 530/620 and 6326/AGP/DVD 300 series for SiS300/305, 540 and 630/730 315/330 series for SiS315, 55x and (M)65x/(M)661xX/74x(GX), 330, 760 CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. Detailed information on all supported options can be obtained at http://www.winischhofer.net/linuxsisvga.shtml This manpage only covers a subset of the supported options. 1. For all supported chipsets The following driver Options are supported on all chipsets: Option "NoAccel" "boolean" Disable or enable 2D acceleration. Default: acceleration is enabled. Option "HWCursor" "boolean" Enable or disable the HW cursor. Default: HWCursor is on. Option "SWCursor" "boolean" The opposite of HWCursor. Default: SWCursor is off. Option "Rotate" "CW" Rotate the display clockwise. This mode is unaccelerated, and uses the Shadow Frame Buffer layer. Using this option disables the Resize and Rotate extension (RandR). Default: no rotation. Option "Rotate" "CCW" Rotate the display counterclockwise. This mode is unaccelerated, and uses the Shadow Frame Buffer layer. Using this option dis- ables the Resize and Rotate extension (RandR). Default: no rotation. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: Shadow framebuffer is off. Option "CRT1Gamma" "boolean" Enable or disable gamma correction. Default: Gamma correction is on. 2. Old series specific information The driver will auto-detect the amount of video memory present for all these chips, but in the case of the 6326, it will limit the memory size to 4MB. This is because the 6326's 2D engine can only address 4MB. The remaining memory seems to be intended for 3D texture data, since only the 3D engine can address RAM above 4MB. However, you can override this limitation using the "VideoRAM" option in the Device section if your board has more than 4MB and you need to use it. However, 2D accelera- tion, Xvideo and the HWCursor will be disabled in this case. The driver will also auto-detect the maximum dotclock and DAC speed. If you have problems getting high resolutions because of dot clock lim- itations, try using the "DacSpeed" option, also in the Device section. However, this is not recommended for the 6326. For this chip, the driver has two built-in modes for high resolutions which you should use instead. These are named "SIS1280x1024-75" and "SIS1600x1200-60" and they will be added to the list of default modes. To use these modes, just place them in your Screen section. Example: Modes "SIS1600x1200-60" "SIS1280x1024x75" "1024x768" ... Of these modes, 1280x1024 is only available at 8, 15 and 16bpp. 1600x1200 is available at 8bpp only. TV support for the 6326 TV output is supported for the 6326. The driver will auto detect a TV connected and in this case add the following modes to the list of default modes: "PAL800x600", "PAL800x600U", "PAL720x540", "PAL640x480", "NTSC640x480", "NTSC640x480U" and "NTSC640x400". Use these modes like the hi-res modes described above. The following driver Options are supported on the old series: Option "TurboQueue" "boolean" Enable or disable TurboQueue mode. Default: off for SIS530/620, on for the others Option "FastVram" "boolean" Enable or disable FastVram mode. Enabling this sets the video RAM timing to one cycle per read operation instead of two cycles. Disabling this will set two cycles for read and write operations. Leaving this option out uses the default, which varies depending on the chipset. Option "NoHostBus" "boolean" (SiS5597/5598 only). Disable CPU-to-VGA host bus support. This speeds up CPU to video RAM transfers. Default: Host bus is enabled. Option "NoXVideo" "boolean" Disable XV (XVideo) extension support. Default: XVideo is on. Option "NoYV12" "boolean" Disable YV12 Xv support. This might me required due to hardware bugs in some chipsets. Disabling YV12 support forces Xv-aware applications to use YUV2 or XShm for video output. Default: YV12 support is on. Option "TVStandard" "string" (6326 only) Valid parameters are PAL or NTSC. The default is set by a jumper on the card. Option "TVXPosOffset" "integer" (6326 only) This option allows tuning the horizontal position of the image for TV output. The range is from -16 to 16. Default: 0 Option "TVYPosOffset" "integer" (6326 only) This option allows tuning the vertical position of the image for TV output. The range is from -16 to 16. Default: 0 Option "SIS6326TVEnableYFilter" "boolean" (6326 only) This option allows enabling/disabling the Y (chroma) filter for TV output. Option "SIS6326TVAntiFlicker" "string" (6326 only) This option allow enabling/disabling the anti flicker facility for TV output. Possible parameters are OFF, LOW, MED, HIGH or ADAPTIVE. By experience, ADAPTIVE yields the best results, hence it is the default. 2. 300 and 315/330 series specific information The 300 and 315/330 series feature two CRT controllers and very often come with a video bridge for controlling LCD and TV output. Here- inafter, the term CRT1 refers to the VGA output of the chip, and CRT2 refers to either LCD, TV or secondary VGA. Due to timing reasons, only one CRT2 output can be active at the same time. But this limitation does not apply to using CRT1 and CRT2 at the same time which makes it possible to run the driver in dual head mode. The driver supports the following video bridges: SiS301 SiS301B(-DH) SiS301C SiS301LV SiS302(E)LV Instead of a video bridge, some machines have a LVDS transmitter to control LCD panels, and a Chrontel 7005 or 7019 for TV output. All these are supported as well. About TV output On the SiS301 and the Chrontel 7005, only resolutions up to 800x600 are supported. On all others, resolutions up to 1024x768 are supported. However, due to a hardware bug, Xvideo might be distorted on SiS video bridges if running NTSC or PAL-M at 1024x768. About XVideo support XVideo is supported on all chipsets of both families. However, there are some differences in hardware features which cause limitations. The 300 series as well as the SiS55x, M650, 651, 661FX, M661FX, and 741 support two video overlays. The SiS315/H/PRO, 650/740 and 330 support only one such overlay. On chips with two overlays, one overlay is used for CRT1, the other for CRT2. On the other chipsets, the option "XvOn- CRT2" can be used to select the desired output channel. About Merged Framebuffer support This mode is strongly recommended over Xinerama. Please see http://www.winischhofer.net/linuxsisvga.shtml for detailed information. About dual-head support Dual head mode has some limitations as regards color depth and resolu- tion. Due to memory bandwidth limits, CRT1 might have a reduced maximum refresh rate if running on higher resolutions than 1280x1024. Colordepth 8 is not supported when running in dual head mode. The following driver Options are supported on the 300 and 315/330 series: Option "NoXVideo" "boolean" Disable XV (XVideo) extension support. Default: XVideo is on. Option "XvOnCRT2" "boolean" On chipsets with only one video overlay, this option can used to bind the overlay to CRT1 ( if a monitor is detected and if this option is either unset or set to false ) or CRT2 ( if a CRT2 device is detected or forced, and if this option is set to true ). If either only CRT1 or CRT2 is detected, the driver decides automatically. In Merged Framebuffer mode, this option is ignored. Default: overlay is used on CRT1 Option "ForceCRT1" "boolean" Force CRT1 to be on of off. If a monitor is connected, it will be detected during server start. However, some old monitors are not detected correctly. In such cases, you may set this option to on in order to make the driver initialize CRT1 anyway. If this option is set to off , the driver will switch off CRT1. Default: auto-detect Option "ForceCRT2Type" "string" Force display type to one of: NONE , TV , SVIDEO , COMPOSITE , SVIDEO+COMPOSITE , SCART , LCD , VGA ; NONE will disable CRT2. The SVIDEO, COMPOSITE, SVIDEO+COMPOSITE and SCART parameters are for SiS video bridges only and can be used to force the driver to use a specific TV output connector (if present). Default: auto detect. Option "CRT2Gamma" "boolean" Enable or disable gamma correction for CRT2. Only supported for SiS video bridges. Default: Gamma correction for CRT2 is on. Option "TVStandard" "string" Force the TV standard to either PAL or NTSC. On some machines with 630, 730 and the 315/330 series, PALM , PALN and NTSCJ are supported as well. Default: BIOS setting. Option "TVXPosOffset" "integer" This option allows tuning the horizontal position of the image for TV output. The range is from -32 to 32. Not supported on the Chrontel 7019. Default: 0 Option "TVYPosOffset" "integer" This option allows tuning the vertical position of the image for TV output. The range is from -32 to 32. Not supported on the Chrontel 7019. Default: 0 Option "SISTVXScale" "integer" This option selects the horizontal zooming level for TV output. The range is from -16 to 16. Only supported on SiS video bridges. Default: 0 Option "SISTVYScale" "integer" This option selects the vertical zooming level for TV output in the following modes: 640x480, 800x600. On the 315/330 series, also 720x480, 720x576 and 768x576. The range is from -4 to 3. Only supported on SiS video bridges. Default: 0 Option "CHTVOverscan" "boolean" On machines with a Chrontel TV encoder, this can be used to force the TV mode to overscan or underscan. on means overscan, off means underscan. Default: BIOS setting. Option "CHTVSuperOverscan" "boolean" On machines with a Chrontel 7005 TV encoder, this option enables a super-overscan mode. This is only supported if the TV standard is PAL. Super overscan will produce an image on the TV which is larger than the viewable area. The driver supports many more options. Please see http://www.winis- chhofer.net/linuxsisvga.shtml for more information. 3. 300 series specific information DRI is supported on the 300 series only. On Linux, DRI requires the kernel's SiS framebuffer driver ( sisfb ) and some other modules which come with either the kernel or the X server. Sisfb takes care of memory management for texture data. In order to prevent the X Server and sisfb from overwriting each other's data, sisfb reserves an amount of video memory for the X driver. This amount can either be selected using sisfb's mem parameter, or auto-selected depending on the amount of total video RAM available. Sisfb can be used for memory management only, or as a complete frame- buffer driver. If you start sisfb with a valid mode (ie you gain a graphical console), the X driver can communicate with sisfb and doesn't require any manual configuration for finding out about the video memory it is allowed to use. However, if you are running a 2.4 series Linux kernel and use sisfb for video memory management only, ie you started sisfb with mode=none and still have a text mode console, there is no communication between sisfb and the X driver. For this purpose, the Option "MaxXFBMem" "integer" exists. This option must be set to the same value as given to sisfb through its "mem" parameter, ie the amount of memory to use for X in kilobytes. If you started sisfb without the mem argument, sisfb will reserve 12288KB if more than 16MB of total video RAM is available, 8192KB if between 12 and 16MB of video RAM is available, 4096KB in all other cases. If you intend to use DRI, I recommend setting the total video memory in the BIOS to 64MB in order to at least overcome the lack of memory swap functions. Option "DRI" "boolean" This option allows enabling or disabling DRI. By default, DRI is on. Option "AGPSize" "integer" This option allows selecting the amount of AGP memory to be used for DRI. The amount is to be specified in megabyte, the default is 8. KNOWN BUGS none. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) http://www.winischhofer.net/linuxsisvga.shtml for more information and updates AUTHORS Authors include: Alan Hourihane, Mike Chapman, Juanjo Santamarta, Mitani Hiroshi, David Thomas, Sung-Ching Lin, Ademar Reis, Thomas Winischhofer SUNBW2(4) SUNBW2(4) NAME sunbw2 - BW2 video driver SYNOPSIS Section "Device" Identifier "devname" Driver "sunbw2" ... EndSection DESCRIPTION sunbw2 is an XFree86 driver for Sun BW2 video cards. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The sunbw2 driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Jakub Jelinek SUNCG14(4) SUNCG14(4) NAME suncg14 - CG14 video driver SYNOPSIS Section "Device" Identifier "devname" Driver "suncg14" ... EndSection DESCRIPTION suncg14 is an XFree86 driver for Sun CG14 video cards. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The suncg14 driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Jakub Jelinek SUNCG3(4) SUNCG3(4) NAME suncg3 - CG3 video driver SYNOPSIS Section "Device" Identifier "devname" Driver "suncg3" ... EndSection DESCRIPTION suncg3 is an XFree86 driver for Sun CG3 video cards. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The suncg3 driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Jakub Jelinek SUNCG6(4) SUNCG6(4) NAME suncg6 - GX/Turbo GX video driver SYNOPSIS Section "Device" Identifier "devname" Driver "suncg6" ... EndSection DESCRIPTION suncg6 is an XFree86 driver for Sun GX and Turbo GX (also known as cgsix) video cards. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The suncg6 driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Jakub Jelinek FFB(4) FFB(4) NAME ffb - SUNFFB video driver SYNOPSIS Section "Device" Identifier "devname" Driver "sunffb" ... EndSection DESCRIPTION ffb is an XFree86 driver for Sun Creator, Creator 3D and Elite 3D video cards. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The ffb driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Jakub Jelinek , David S. Miller , Michal Rehacek SUNLEO(4) SUNLEO(4) NAME sunleo - Leo video driver SYNOPSIS Section "Device" Identifier "devname" Driver "sunleo" ... EndSection Section "Screen" ... Device "devname" ... DefaultDepth 32 ... EndSection DESCRIPTION leo is an XFree86 driver for Sun Leo (ZX) video cards. Also known as the ZX or T(urbo)ZX, Leo is a 24 bit accelerated 3D graphics card. Both cards are double-width, but the TZX also requires extra cooling in the form of an additional double-width fan card, so effectively takes up 4 SBus slots. SUPPORTED HARDWARE The leo driver supports all Sun stations that include a Leo chipset: Workstations: Sun 4/15, 4/30, 4/75 SPARCstation 5, 10, 20 Ultra 1, 1E, 2 Servers: SPARCserver 1000, SPARCcenter 2000 CONFIGURATION DETAILS You must set "DefaultDepth" to "32" in the Screen Section. Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Driver authors include: Jakub Jelinek Man page: Arnaud Quette SUNTCX(4) SUNTCX(4) NAME suntcx - TCX video driver SYNOPSIS Section "Device" Identifier "devname" Driver "suntcx" ... EndSection DESCRIPTION suntcx is an XFree86 driver for Sun TCX video cards. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The suntcx driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Jakub Jelinek TDFX(4) TDFX(4) NAME tdfx - 3Dfx video driver SYNOPSIS Section "Device" Identifier "devname" Driver "tdfx" ... EndSection DESCRIPTION tdfx is an XFree86 driver for 3Dfx video cards. SUPPORTED HARDWARE The tdfx driver supports Voodoo Banshee, Voodoo3, Voodoo4 and Voodoo5 cards. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The following driver Options are supported: Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "SWCursor" "boolean" Disable or enable software cursor. Default: software cursor is disable and a hardware cursor is used for configurations where the hardware cursor is available. Option "DRI" "boolean" Disable or enable DRI support. By default, DRI is on. Option "TexturedVideo" "boolean" This has XvImage support use the texture engine rather than the video overlay. Option "VideoKey" "integer" This sets the default pixel value for the YUV video overlay key. Default: undefined. Option "UsePIO" "boolean" Force the use of Programmed IO instead of Memory Mapped IO. Default: off. The following additional Options are supported: Option "ShowCache" "boolean" Enable or disable viewing offscreen cache memory. A development debug option. Default: off. FILES tdfx_drv.o SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: ... TRIDENT(4) TRIDENT(4) NAME trident - Trident video driver SYNOPSIS Section "Device" Identifier "devname" Driver "trident" ... EndSection DESCRIPTION trident is an XFree86 driver for Trident video cards. The driver is accelerated, and provides support for the following framebuffer depths: 1, 4, 8, 15, 16, and 24. Multi-head configurations are supported. The XvImage extension is supported on TGUI96xx and greater cards. SUPPORTED HARDWARE The trident driver supports PCI, AGP and ISA video cards based on the following Trident chips: Blade Blade3D, CyberBlade series i1, i7 (DSTN), i1, i1 (DSTN), Ai1, Ai1 (DSTN), CyberBlade/e4, CyberBladeXP, CyberBladeAi1/XP, BladeXP Image 3DImage975, 3DImage985, Cyber9520, Cyber9525, Cyber9397, Cyber9397DVD ProVidia 9682, 9685, Cyber9382, Cyber9385, Cyber9388 TGUI 9440AGi, 9660, 9680 ISA/VLBus 8900C, 8900D, 9000, 9200CXr, Cyber9320, 9400CXi, 9440AGi These cards have been ported but need further testing and may not work. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The following driver Options are supported: Option "SWCursor" "boolean" Enable or disable the SW cursor. Default: off. Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. Option "PciRetry" "boolean" Enable or disable PCI retries. Default: off. Option "CyberShadow" "boolean" For Cyber chipsets only, turn off shadow registers. If you only see a partial display - this may be the option for you. Default: on. Option "CyberStretch" "boolean" For Cyber chipsets only, turn on stretching. When the resolution is lower than the LCD's screen, this option will stretch the graphics mode to fill the entire LCD. Default: off. Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: off. Option "VideoKey" "integer" This sets the default pixel value for the YUV video overlay key. Default: undefined. Option "TVChipset" "string" This sets the TV chipset. Options are CH7005 or VT1621. Default: off. Option "TVSignal" "integer" This sets the TV signalling. Options are 0 for NTSC or 1 for PAL. Default: undefined. Option "NoPciBurst" "boolean" Turn off PCI burst mode, PCI Bursting is on by default. Default: off. Option "XvHsync" "integer" Override the default Horizontal-sync value for the Xv extension. This is used to center the Xv image on the screen. By default the values are assigned based on the video card. Default: 0. Option "XvVsync" "integer" Override the default Vertical-sync value for the Xv extension. This is used to center the Xv image on the screen. By default the values are assigned based on the video card. Default: 0. Option "XvBskew" "integer" Override the default Bottom skew value for the Xv extension. This is used to extend the Xv image on the screen at the bottom. By default the values are assigned based on the video card. Default: 0. Option "XvRskew" "integer" Override the default Right skew value for the Xv extension. This is used to extend the Xv image on the screen at the right. By default the values are assigned based on the video card. Default: 0. Option "Display" "string" Override the display. Possible values are "CRT", "LCD" and "Dual". Please note that this option is only experimentally. Default: Use display active when X started. Option "Display1400" "boolean" Inform driver to expect 1400x1050 display instead of a 1280x1024. Default: off. Option "GammaBrightness" "string" Set display gamma value and brightness. "string" is "gamma, brightness", where gamma is a floating point value greater than 0 and less or equal to 10. brightness is an integer value greater or equal to 0 and less than 128. Default: gamma and brightness control is turned off. Note: This is not supported on all chipsets. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHOR Author: Alan Hourihane TSENG(4) TSENG(4) NAME tseng - Tseng Labs video driver SYNOPSIS Section "Device" Identifier "devname" Driver "tseng" ... EndSection DESCRIPTION tseng is an XFree86 driver for Tseng Labs video cards. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE The tseng driver supports... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: ... V4L(4) V4L(4) NAME v4l - video4linux driver SYNOPSIS Section "Module" ... Load "v4l" EndSection DESCRIPTION v4l is an XFree86 driver for video4linux cards. It provides a Xvideo extention port for video overlay. Just add the driver to the module list within the module section of your XF86Config file if you want to use it. There are no config options. Note that the the extmod module is also required for the Xvideo support (and lots of other extentions too). SUPPORTED HARDWARE The v4l driver works with every piece of hardware which is supported by a video4linux (kernel-) device driver and is able to handle video over- lay. bt848/bt878-based TV cards are the most popular hardware these days. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Gerd Knorr VESA(4) VESA(4) NAME vesa - Generic VESA video driver SYNOPSIS Section "Device" Identifier "devname" Driver "vesa" ... EndSection DESCRIPTION vesa is an XFree86 driver for generic VESA video cards. It can drive most VESA-compatible video cards, but only makes use of the basic stan- dard VESA core that is common to these cards. The driver supports depths 8, 15 16 and 24. SUPPORTED HARDWARE The vesa driver supports most VESA-compatible video cards. There are some known exceptions, and those should be listed here. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the presence of VESA-compatible hardware. The ChipSet name may optionally be specified in the config file "Device" section, and will override the auto-detection: "vesa" The following driver Options are supported: Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: on. This option is recommended for performance reasons. Option "VBEBigEndian" "boolean" This Option is only acted upon on big-endian systems. Normally, the driver will disallow colour depths and framebuffer bpp's that cannot be supported through simple byte-swapping of pixels. This option exists to override this behaviour should the adapter's BIOS be intelligent enough to detect host endianness. SEE ALSO XFree86(1), XF86Config(5), xf86cfg(1), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Paulo Csar Pereira de Andrade. VGA(4) VGA(4) NAME vga - Generic VGA video driver SYNOPSIS Section "Device" Identifier "devname" Driver "vga" ... EndSection DESCRIPTION vga is an XFree86 driver for generic VGA video cards. It can drive most VGA-compatible video cards, but only makes use of the basic stan- dard VGA core that is common to these cards. The driver supports depths 1, 4 and 8. All relevant visual types are supported at each depth. Multi-head configurations are supported in combination with some other drivers, but only when the vga driver is driving the primary head. SUPPORTED HARDWARE The vga driver supports most VGA-compatible video cards. There are some known exceptions, and those should be listed here. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the presence of VGA-compatible hardware. The ChipSet name may optionally be specified in the config file "Device" section, and will override the auto-detection: "generic" The driver will only use 64k of video memory for depth 1 and depth 8 operation, and 256k of video memory for depth 4 (this is the standard VGA limit). When operating at depth 8, only a single built-in 320x200 video mode is available. At other depths there is more flexibility regarding mode choice. The following driver Options are supported: Option "ShadowFB" "boolean" Enable or disable use of the shadow framebuffer layer. Default: off. This option is recommended for performance reasons when running at depths 1 and 4, especially when using modern PCI-based hard- ware. It is required when using those depths in a multi-head configuration where one or more of the other screens is operat- ing at a different depth. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Authors include: Marc La France, David Dawes, and Dirk Hohndel. VMWARE(4) VMWARE(4) NAME vmware - VMware SVGA video driver SYNOPSIS Section "Device" Identifier "devname" Driver "vmware" ... EndSection DESCRIPTION vmware is an XFree86 driver for VMware virtual video cards. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects the version of any virtual VMware SVGA adapter. The following driver Options are supported: Option "HWCursor" "boolean" Enable or disable the HW cursor. Default: off. Option "NoAccel" "boolean" Disable or enable acceleration. Default: acceleration is enabled. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7) AUTHORS Copyright (c) 1999-2001 VMware, Inc. GTF(1) GTF(1) NAME gtf - calculate VESA GTF mode lines SYNOPSIS gtf h-resolution v-resolution refresh [-v|--verbose] [-f|--fbmode] [-x|--xf86mode] DESCRIPTION Gtf is a utility for calculating VESA GTF modes. Given the desired horizontal and vertical resolutions and refresh rate (in Hz), the parameters for a matching VESA GTF mode are printed out. Two output formats are supported: mode lines suitable for the XFree86 XF86Con- fig(5) file, and mode parameters suitable for the Linux fbset(8) util- ity. OPTIONS -v|--verbose Enable verbose printouts This shows a trace for each step of the computation. -x|--xf86mode Print the mode parameters as XFree86-style mode lines. This is the default format. -f|--fbset Print the mode parameters in a format suitable for fbset(8). SEE ALSO XF86Config(5) AUTHOR Andy Ritger. This program is based on the Generalized Timing Formula (GTF(TM)) Stan- dard Version: 1.0, Revsion: 1.0. The GTF Excel(TM) spreadsheet, a sam- ple (and the definitive) implementation of the GTF Timing Standard is available at . KBD_MODE(1) KBD_MODE(1) NAME kbd_mode - recover the PC console keyboard SYNOPSIS kbd_mode [ -a -u ] DESCRIPTION Kbd_mode resets the PC console keyboard to a rational state. OPTIONS The following options are supported: -a Set the keyboard so that ASCII characters are read from the console. -u Set the keyboard so that undecoded keyboard values are read from the console. EXAMPLES If the server crashes or otherwise fails to put the keyboard back in ascii mode when it exits, it can leave your keyboard dead. If you are able to login remotely, you can reset it typing: kbd_mode -a Conversely, changing the keyboard to ascii mode while the server is running will make the keyboard appear to be dead while the the mouse continues to work. Again, if you are able to login remotely, you can reset it typing: kbd_mode -u PCITWEAK(1) PCITWEAK(1) NAME pcitweak - read/write PCI config space SYNOPSIS pcitweak -l pcitweak -r PCI-ID [-b|-h] offset pcitweak -w PCI-ID [-b|-h] offset value DESCRIPTION Pcitweak is a utility that can be used to examine or change registers in the PCI configuration space. On most platforms pcitweak can only be run by the root user. OPTIONS -l Probe the PCI buses and print a line for each detected device. Each line contains the bus location (bus:device:function), chip vendor/device, card (subsystem) vendor/card, revision, class and header type. All values printed are in hexadecimal. -r PCI-ID Read the PCI configuration space register at offset for the PCI device at bus location PCI-ID. PCI-ID should be given in the form bus:device:function, with each value in hexadecimal. By default, a 32-bit register is read. -w PCI-ID Write value to the PCI configuration space register at offset for the PCI device at bus location PCI-ID. PCI-ID should be given in the form bus:device:function, with each value in hexa- decimal. By default, a 32-bit register is written. -b Read or write an 8-bit value (byte). -h Read or write a 16-bit value (halfword). SEE ALSO scanpci(1) AUTHORS David Dawes (dawes@xfree86.org). SCANPCI(1) SCANPCI(1) NAME scanpci - scan/probe PCI buses SYNOPSIS scanpci [-v12OfV] DESCRIPTION Scanpci is a utility that can be used to scan PCI buses and report information about the configuration space settings for each PCI device. On most platforms, scanpci can only be run by the root user. OPTIONS -v Print the configuration space information for each device in a verbose format. Without this option, only a brief description is printed for each device. -1 Use PCI config type 1. -2 Use PCI config type 2. -f Used in conjunction with the above two options, this forces the specified configuration type to be used for config space access. -O Use the OS's PCI config space access mechanism to access the PCI config space (when available). -V n Set the verbosity level to n for the internal PCI scanner. This is primarily for debugging use. SEE ALSO pcitweak(1) AUTHORS FBDEVHW(4) FBDEVHW(4) NAME fbdevhw - os-specific submodule for framebuffer device access DESCRIPTION fbdevhw provides functions for talking to a framebuffer device. It is os-specific. It is a submodule used by other video drivers. A fbdevhw module is currently available for linux framebuffer devices. fbdev(4) is a non-accelerated driver which runs on top of the fbdevhw module. fbdevhw can be used by other drivers too, this is usually activated with `Option "UseFBDev"' in the device section. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7), fbdev(4) AUTHORS Authors include: Gerd Knorr, based on the XF68_FBDev Server code (Mar- tin Schaller, Geert Uytterhoeven). ACECAD(4) ACECAD(4) NAME acecad - Acecad Flair input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "acecad" Option "Device" "devpath" ... EndSection DESCRIPTION acecad is an XFree86 input driver for Acecad Flair devices... The acecad driver functions as a pointer input device, and may be used as the X server's core pointer. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE What is supported... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Config details... SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... Edouard TISSERANT CALCOMP(4) CALCOMP(4) NAME calcomp - Calcomp input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "calcomp" Option "Device" "devpath" ... EndSection DESCRIPTION calcomp is an XFree86 input driver for Calcomp devices. The calcomp driver functions as a pointer input device, and may be used as the X server's core pointer. SUPPORTED HARDWARE This driver supports the Calcomp binary format used by the Drawing Board II and III series. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Both the 3 button stylus and the 4- or 16 button lens cursors can be used without changing the configuration file. Support for pressure sen- sitivity has not been tested, so the solid-tip stylus will probably not work. This device supports the following entries: Option "Device" "path" sets the path to the special file which represents the serial line where the tablet is plugged. This option is mandatory. Option "Cursor" "Stylus"|"Puck" this option is supported for backward compatibility only, but it should not be necessary. Option "DeviceName" "name" sets the name of the X device. Some user-space programs may require a fixed name, e.g. TABLET, to recognize the digi- tizer. Option "Mode" "Relative"|"Absolute" sets the mode of the device. Currently only Absolute mode is supported. Option "Pressure" "on" enables pressure reporting if your tablet supports it. This option is untested and may not work. Option "AlwaysCore" "on" enables the sharing of the core pointer. When this feature is enabled, the device will take control of the core pointer (and thus will emit core events) and at the same time will be able, when asked so, to report extended events. Option "MinX" "number" X coordinate of the bottom left corner of the active zone. Option "MinY" "number" Y coordinate of the bottom left corner of the active zone. Option "MaxX" "Inumber" X coordinate of the top right corner of the active zone. Option "MaxY" "number" Y coordinate of the top right corner of the active zone. Option "DebugLevel" number sets the level of debugging info reported. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Martin Kroeker CITRON(4) CITRON(4) NAME citron - Citron Infrared Touch Driver (CiTouch) SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "citron" Option "Device" "devpath" ... EndSection DESCRIPTION citron is a XFree86 input driver for Citron Infrared Touch devices. The citron driver acts as a pointer input device, and may be used as the X server's core pointer. It is connected via a "RS232" with the host. SUPPORTED HARDWARE At the moment the following touches are supported. They are also avail- able as ZPress touches. IRT6I5-V2.x 6.5 inch Infrared Touch IRT10I4-V4.x 10.4 inch Infrared Touch IRT12I1-V2.x 12.1 inch Infrared Touch IRT15I1-V1.x 15.1 inch Infrared Touch CONFIGURATION DETAILS Please refer to XF86Config(5x) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. For better understanding please read also the CTS and various IRT manuals which are available in "pdf" format from Citron web page www.citron.de or directly from Citron. The following driver Options are supported: Option "Device" "devpath" Specify the device path for the citron touch. Valid devices are: /dev/ttyS0, /dev/ttyS1, .... This option is mandatory. It's important to specify the right device Note: com1 -> /dev/ttyS0, com2 -> /dev/ttyS1 .... Option "ScreenNumber" "screennumber" sets the screennumber for the citron InputDevice. Default: ScreenNumber: "0" Option "MinX, MinY" "value" These are the minimum X and Y values for the citron input device. Note: MinX, MinY must be less than MaxX, MaxY. Range: "0" - "65535" Default: MinX: "0" MinY: "0" Option "MaxX, MaxY" "value" These are the maximum X and Y values for the citron input device. Note: MaxX, MaxY must be greater than MinX, MinY. Range: "0" - "65535" Default: MaxX: "65535" MaxY: "65535" Option "ButtonNumber" "value" This value is responsible for the button number that is returned within the xf86PostButton event message Range: "0" - "255" Default: "1" Option "ButtonThreshold" "value" This value is responsible for the button threshold. It changes the pressure sensitivity of the touch. A higher number corre- sponds to a higher pressure. Note: This feature is only available with pressure sensitive hardware. Range: "0" - "255" Default: "20" Sleep-Mode If the IRT is in Doze-Mode and Touch Zone is not interrupted for another certain span of time, the so-called Sleep-Mode is acti- vated. The Sleep-Mode decreases the scan rate of the beams even further than the Doze-Mode does (see below). This way the life expectancy of the beams is prolonged and the power consumption of the IRT is reduced. As soon as an interruption of the Touch Zone is detected, the Sleep-Mode is deactivated and the Touch Zone will again be scanned with the maximum speed. With the Sleep-Mode activated, depending on the set scan rate the IRT's response time can be considerably longer as in normal operation. If, for example, a scan rate of 500 ms / scan is set, it may last up to a half of a second until the IRT detects the inter- ruption and deactivates the Sleep-Mode. Option "SleepMode" "mode" This value is responsible for the sleep-mode of the touch. Determines the behaviour of the Sleep-Mode. 0x00 No message at either activation or deactivation 0x01 Message at activation 0x02 Message at deactivation 0x03 Message at activation and deactivation 0x10 GP_OUT output set according to the Sleep-Mode status Values: "0" "1" "2" "3" "16" Default: "0" Option "SleepTime" "time" This value is responsible for the sleep-time of the touch. It is the activation time in seconds ("0" = immediately activated, "65535" = always deactivated). Range: "0" - "65535" [s] Default: "65535" => deactivated Option "SleepScan" "scan" This value is responsible for the scan-time of the touch. This is the time interval between two scan operations while in Sleep- Mode. The time interval is set in steps of milliseconds. Range: "0" - "65535" [ms] Default: "500" Option "PWMAdjSrc" "value" Option "PWMAdjDst" "value" These parameters are used to adjust the brightness of different backlight inverters. At the moment 2 backlight inverters are used: 0=TDK 1=AC. If you want a AC backlight inverter to behave like an AC type you have to set PWMAdjSrc to 0 (TDK) and PWMAd- jDst to 1 (AC). Range: "0" - "1" Default: "-1" (no adjustment) Option "PWMActive" "value" This value determines the mark-to-space ratio of the PWM output while in normal operation (sleep-mode not active). Higher val- ues result in longer pulse widths. This output signal can be used in conjunction with the Citron AWBI to do backlight-dimming via the touch. Range: "0" - "255" Default: "255" (max. brightness) Option "PWMSleep" "value" This value determines the mark-to-space ratio of the PWM output while in sleep-mode (-> SleepMode, SleepScan, SleepTime ) opera- tion (sleep-mode active). Higher values result in longer pulse widths. Range: "0" - "255" Default: "255" (max. brightness) Option "PWMFreq" "value" This value determines the PWM frequency in Hertz Range: "39" - "9803" Default: "9803" (max. frequency) Option "ClickMode" "mode" With mode one can select between 5 ClickModes "1" = ClickMode Enter With this mode every interruption of the infrared beams will activate a ButtonPress event and after the interruption a But- tonRelease event will be sent. "2" = ClickMode Dual With this mode every interruption will sent a Proximity event and every second interruption a ButtonPress event. With the release of the interruption (while one interruption is still active) a ButtonRelease event will be sent. "3" = ClickMode Dual Exit With this mode every interruption will sent a ProximityIn event and every second interruption a ButtonPress event. With the release of the interruption (while one interruption is still active) no ButtonRelease event will be sent. Only if all inter- ruptions are released a ButtonRelease followed by a ProximityOut event will be sent. "4" = ClickMode ZPress With this mode every interruption will sent a ProximityIn event. Only if a certain pressure is exceeded a ButtonPress event will occur. If the pressure falls below a certain limit a ButtonRe- lease event will be sent. After also the interruption is released a ProximityOut event is generated. "5" = ClickMode ZPress Exit This mode is similar to "Clickmode Dual Exit". The first inter- ruption of the beams will sent a ProximityIn event. Only if a certain pressure is exceeded a ButtonPress event will occur. If the pressure falls below a certain limit no ButtonRelease event will be sent. After the interruption is also released a Button- Release followed by a ProximityOut event is generated. Range: "1" - "5" Default: "1" (ClickMode Enter) Option "Origin" "value" This value sets the coordinates origin to one of the four cor- ners of the screen. The following values are accepted: "0" TOPLEFT: Origin set to the left-hand side top corner. "1" TOPRIGHT: Origin set to the right-hand side top corner. "2" BOTTOMRIGHT: Origin set to the right-hand side bottom corner. "3" BOTTOMLEFT: Origin set to the left-hand side bottom corner. Range: "0" - "3" Default: "0" (TOPLEFT) Doze-Mode If for a certain span of time the Touch Zone is not interrupted, the so-called Doze-Mode is automatically activated. The acti- vated Doze-Mode slightly decreases the scan rate of the beams. This way the power consumption of the IRT is reduced. As soon as an interruption of the Touch Zone is detected, the Doze-Mode is deactivated and the Touch Zone will again be scanned with the maximum speed. Option "DozeMode" "mode" This value is responsible for the doze-mode of the touch. Determines the behaviour of the Doze-Mode. 0x00 No message at either activation or deactivation 0x01 Message at activation 0x02 Message at deactivation 0x03 Message at activation and deactivation 0x10 GP_OUT output set according to the Doze-Mode status If the GP_OUT output is already controlled by the Sleep-Mode it is no longer available as an output port anymore. Values: "0" "1" "2" "3" "16" Default: "0" Option "DozeTime" "time" This value is responsible for the doze-time of the touch. It is the activation time in seconds ("0" = immediately activated, "65535" = always deactivated). Range: "0" - "65535" [s] Default: "65535" => deactivated Option "DozeScan" "scan" This value is responsible for the scan-time of the touch. This is the time interval between two scan operations while in Doze- Mode. The time interval is set in steps of milliseconds. Range: "0" - "65535" [ms] Default: "500" Option "DeltaX" "value" This value determines a virtual area at the left and right side of the current cursor position where the cursor didn't move. Within this area no "MotionNotify" event will be sent. Range: "0" - "255" Default: "0" (no deltaX) Option "DeltaY" "value" This value determines a virtual area at the top and bottom of the current cursor position where the cursor didn't move. Within this area no "MotionNotify" event will be sent. Range: "0" - "255" Default: "0" (no deltaY) Option "Beep" "value" This value determines if a "ButtonPress" and/or a "ButtonRe- lease" event should sound the buzzer. "0" deactivates the buzzer while every other value will activate it. Range: "0" - "1" Default: "0" (deactivated) Option "PressVol" "value" This value determines the volume of the buzzer (0-100%) when a "ButtonPress" event is sent. Range: "0" - "100" Default: "100" Option "PressPitch" "value" This value determines the pitch of the tone when a "ButtonPress" event is sent. Range: "0" - "3000" Default: "880" Option "PressDur" "value" This value determines the duration of the tone in ms when a "ButtonPress" event is sent. Range: "0" - "255" Default: "15" Option "ReleaseVol" "value" This value determines the volume of the buzzer (0-100%) when a "ButtonRelease" event is sent. Range: "0" - "100" Default: "100" Option "ReleasePitch" "value" This value determines the pitch of the tone when when a "Button- Release" event is sent. Range: "0" - "3000" Default: "1200" Option "ReleseDur" "value" This value determines the duration of the tone in ms when when a "ButtonRelease" event is sent. Range: "0" - "255" Default: "10" Option "BeamTimeout" "value" Determines the time span in seconds, that has to elapse before a beam is considered defective, blanked-out and excluded from the coordinates evaluation. Range: "0" - "65535" Default: "30" (30 seconds) Option "TouchTime" "value" Determines the minimum time span in steps of 10ms for a valid interruption. In order for an interruption to be reported to the host computer as valid, it needs to remain at the same spot for at least the time span declared here. Range: "0" - "255" Default: "0" (=6,5 ms) Option "EnterCount" "count" Number of skipped "enter reports". Reports are sent approx. every 20ms. Range: "0" - "31" Default: "3" (3 skipped messages = 60ms) Option "ZEnterCount" "count" Number of skipped "enter reports" while in pressure sensitive mode. Reports are sent approx. every 20ms. Range: "0" - "31" Default: "1" (1 skipped messages = 20ms) Option "LockZEnterTime" "count" Minimum duration of an AreaPressEnter state (Pressure > Area- Pressure) before a PressEnter event is issued. The time is given in 10ms steps. Range: "0" - "255" Default: "1" (10ms) Option "LockZExitTime" "count" Minimum duration of an AreaPressExit state (Pressure < AreaPres- sure/2) before a PressExit event is issued. The time is given in 10ms steps. Range: "0" - "255" Default: "1" (10ms) Option "LockZLockTime" "count" Minimum gap between a PressExit and a PressEnter event. The time is in 10ms steps. Range: "0" - "255" Default: "10" (100ms) Option "DualCount" "count" Number of skipped "dual touch error". Reports are sent approx. every 20ms. This option is only available for "ZPress" and "ZPress Exit" modes. Range: "0" - "31" Default: "2" (2 skipped messages = 40ms) SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS 2000-2003 - written by Citron GmbH (support@citron.de) DMC(4) DMC(4) NAME dmc - DMC input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "dmc" Option "Device" "devpath" ... EndSection DESCRIPTION dmc is an XFree86 input driver for DMC FIT10-controller... The dmc driver functions as a pointer input device, and may be used as the X server's core pointer. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE What is supported... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Config details... SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... DYNAPRO(4) DYNAPRO(4) NAME dynapro - Dynapro input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "dynapro" Option "Device" "devpath" ... EndSection DESCRIPTION dynapro is an XFree86 input driver for Dynapro devices... The dynapro driver functions as a pointer input device, and may be used as the X server's core pointer. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE What is supported... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Config details... SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... ELOGRAPHICS(4) ELOGRAPHICS(4) NAME elographics - Elographics input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "elographics" Option "Device" "devpath" ... EndSection DESCRIPTION elographics is an XFree86 input driver for Elographics devices... The elographics driver functions as a pointer input device, and may be used as the X server's core pointer. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE What is supported... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Config details... SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... Patrick Lecoanet ELOINPUT(4) ELOINPUT(4) NAME eloinput - Elographics USB input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "eloinput" Option "Device" "devpath" ... EndSection DESCRIPTION eloinput is an XFree86 input driver for Elographics Touchscreen moni- tors that utilize the ELO 2500U USB-based controller, using the Linux Input API. The eloinput driver functions as a pointer input device, and may be used as the X server's core pointer. SUPPORTED HARDWARE Touch screen monitor manufactured by Elo Graphics that utilize the 2500U USB touchscreen controller. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Config details... SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... Patrick Lecoanet FPIT(4) FPIT(4) NAME fpit - Fujitsu Stylistic input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "fpit" Option "Device" "devpath" ... EndSection DESCRIPTION fpit is an XFree86 input driver for Fujitsu Stylistic Tablet PCs. The fpit driver functions as a pointer input device, and may be used as the X server's core pointer. SUPPORTED HARDWARE This driver supports the touchscreen of the Stylistic LT and (with spe- cial options) of the Stylistic 500, 1000 and 2300. Under Linux the Fujitsus serial port is not, by default, detected. Therefore the following must be added to one of your start-up scripts. (Either one of the X scripts, or to rc.local or similar). setserial /dev/ttyS3 autoconfig setserial /dev/ttyS3 IRQ 15 baud_base 115200 port 0xfce8 This driver now supports Stylistic 3400 (and possibly other passive-pen systems) with a special "Passive" paramter. Try this serial configura- tion for the 3400: setserial /dev/ttyS3 autoconfig setserial /dev/ttyS3 uart 16450 irq 5 port 0xfd68 CONFIGURATION DETAILS Please refer to XF86Config(5x) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. The device supports the following options: Option "MaximumXPosition" "number" Sets the maximum X position, use this to callibrate your touchscreen's right hand edge. Option "MinimumXPosition" "number" Sets the minimum X position, use this to callibrate your touchscreen's left hand edge. Option "MaximumYPosition" "number" Option "MinimumYPosition" "number" Same as for X axis, but for Y axis. Option "InvertX" Option "InvertY" Invert the specified axis. Option "SwapXY" Swap the X and Y axis. Option "Rotate" "CW" Option "Rotate" "CWW" Manipulate the invert and swap options to match screen rotations. Option "DeviceName" "name" Option "DeviceName" "name" sets the name of the X device. Option "AlwaysCore" "on" enables the sharing of the core pointer. When this feature is enabled, the device will take control of the core pointer (and thus will emit core events) and at the same time will be able, when asked so, to report extended events. You can use the last available integer feedback to control this feature. When the value of the feedback is zero, the feature is disabled. The feature is enabled for any other value. Option "DebugLevel" number sets the level of debugging info reported. Option "BaudRate" "38400", "19200" or "9600" (default) changes the serial link speed. Option "Passive" decodes the passive pen. Example, for Stylistic LT setup is: Section "InputDevice" Identifier "mouse0" Driver "fpit" Option "Device" "/dev/ttyS3" EndSection And for other Stylistic devices try: Section "InputDevice" Identifier "mouse0" Driver "fpit" Option "Device" "/dev/ttyS3" Option "BaudRate" "19200" Option "MaximumXPosition" "6250" Option "MaximumYPosition" "4950" Option "MinimumXPosition" "130" Option "MinimumYPosition" "0" Option "InvertY" EndSection For Stylistic 3400: Section "InputDevice" Identifier "mouse0" Driver "fpit" Option "Device" "/dev/ttyS3" Option "BaudRate" "9600" Option "MaximumXPosition" "4070" Option "MaximumYPosition" "4020" Option "MinimumXPosition" "0" Option "MinimumYPosition" "0" Option "Passive" Option "SendCoreEvents" EndSection SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Original FPIT port: Rob Tsuk and John Apfelbaum X4 Port: Richard Miller-Smith , based on Elographics code from: Patrick Lecoanet X4.2 Cleanup: Alan Cox JS_X(4) JS_X(4) NAME js_x - JamStudio input driver SYNOPSIS Section "InputDevice" Identifier "devname" Driver "js_x" Option "Device" "devpath" Option "MaxX" "int" Option "MaxY" "int" Option "MinX" "int" Option "MinY" "int" Option "PressMax" "int" Option "PressMin" "int" Option "PressDiv" "int" EndSection DESCRIPTION js_x is an XFree86 input driver for JamStudio devices. The js_x driver functions as a pointer input device, and may be used as the X server's core pointer. SUPPORTED HARDWARE This driver supports the KB-Gear JamStudio pentablet. This X-Input driver should work on any OS supporting the hiddev raw USB HID driver. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Option "Device" "path" sets the path to the raw HID device to which the tablet was assigned. This option is mandatory. Option "MinX" "int" Option "MaxX" "int" Option "MinY" "int" Option "MaxY" "int" sets the minimum and maximum values returned for the abso- lute X,Y axis of the pen tablet. These values default to 0-8000 for X and 0-6000 for Y. It should generally be safe to leave these values untouched. Option "PressMin "int" Option "PressMax "int" sets the minimum and maximum values returned for the pres- sure sensitive tip. These values default to 0-127. It should generally be safe to leave these values untouched. Option "PressDiv" "int" sets the divider for the returned pressure value. This option will allow you to return a smaller set of values for the pressure sensitive tip allowing for finer control. The returned value is computed as follows: X / PressDiv = returned value where X equals the value read from the tablet. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Brian Goines KBD(4) KBD(4) NAME kbd - Keyboard input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "kbd" ... EndSection DESCRIPTION kbd is an XFree86 input driver for keyboards. The driver supports the standard OS-provided keyboard interface, but these are currently only available to this driver module for Linux and BSD. This driver is experimental, but will soon replace the built-in keyboard driver. The kbd driver functions as a keyboard input device, and may be used as the X server's core keyboard. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. The following driver Options are supported: Option "Device" "string" Specify the keyboard device. Default: the OS's default console keyboard input source. Option "Protocol" "string" Specify the keyboard protocol. Valid protocol types include: Standard, Xqueue. Not all protocols are supported on all platforms. Default: "Standard". Option "AutoRepeat" "delay rate" sets the auto repeat behaviour for the keyboard. This is not implemented on all platforms. delay is the time in milliseconds before a key starts repeating. rate is the number of times a key repeats per second. Default: "500 30". Option "XLeds" "ledlist" makes the keyboard LEDs specified in ledlist available for client use instead of their traditional function (Scroll Lock, Caps Lock and Num Lock). The numbers in the list are in the range 1 to 3. Default: empty list. Option "XkbRules" "rules" specifies which XKB rules file to use for interpreting the Xkb- Model, XkbLayout, XkbVariant, and XkbOptions settings. Default: "xfree86" for most platforms, but "xfree98" for the Japanese PC-98 platforms. Option "XkbModel" "modelname" specifies the XKB keyboard model name. Default: "pc101" for most platforms, but "pc98" for the Japanese PC-98 platforms, and "pc101_sol8x86" for Solaris 8 on x86. Option "XkbLayout" "layoutname" specifies the XKB keyboard layout name. This is usually the country or language type of the keyboard. Default: "us" for most platforms, but "nec/jp" for the Japanese PC-98 platforms. Option "XkbVariant" "variants" specifies the XKB keyboard variant components. These can be used to enhance the keyboard layout details. Default: not set. Option "XkbOptions" "options" specifies the XKB keyboard option components. These can be used to enhance the keyboard behaviour. Default: not set. Some other XKB-related options are available, but they are incompatible with the ones listed above and are not recommended, so they are not documented here. SEE ALSO keyboard(4), XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). KEYBOARD(4) KEYBOARD(4) NAME keyboard - Keyboard input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "keyboard" ... EndSection DESCRIPTION keyboard is an XFree86 input driver for keyboards. The driver supports the standard OS-provided keyboard interface. This driver is currently built-in to the core X server. The keyboard driver functions as a keyboard input device, and may be used as the X server's core keyboard. This driver is currently built- in to the core X server, and multiple instances are not yet supported. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. The following driver Options are supported: Option "Protocol" "string" Specify the keyboard protocol. Valid protocol types include: Standard, Xqueue. Not all protocols are supported on all platforms. Default: "Standard". Option "AutoRepeat" "delay rate" sets the auto repeat behaviour for the keyboard. This is not implemented on all platforms. delay is the time in milliseconds before a key starts repeating. rate is the number of times a key repeats per second. Default: "500 30". Option "XLeds" "ledlist" makes the keyboard LEDs specified in ledlist available for client use instead of their traditional function (Scroll Lock, Caps Lock and Num Lock). The numbers in the list are in the range 1 to 3. Default: empty list. Option "XkbDisable" "boolean" disable/enable the XKEYBOARD extension. The -kb command line option overrides this config file option. Default: XKB is enabled. NOTE: This option should be specified in the ServerFlags section rather than here. It's use here is deprecated. Option "XkbRules" "rules" specifies which XKB rules file to use for interpreting the Xkb- Model, XkbLayout, XkbVariant, and XkbOptions settings. Default: "xfree86" for most platforms, but "xfree98" for the Japanese PC-98 platforms. Option "XkbModel" "modelname" specifies the XKB keyboard model name. Default: "pc101" for most platforms, but "pc98" for the Japanese PC-98 platforms, and "pc101_sol8x86" for Solaris 8 on x86. Option "XkbLayout" "layoutname" specifies the XKB keyboard layout name. This is usually the country or language type of the keyboard. Default: "us" for most platforms, but "nec/jp" for the Japanese PC-98 platforms. Option "XkbVariant" "variants" specifies the XKB keyboard variant components. These can be used to enhance the keyboard layout details. Default: not set. Option "XkbOptions" "options" specifies the XKB keyboard option components. These can be used to enhance the keyboard behaviour. Default: not set. Some other XKB-related options are available, but they are incompatible with the ones listed above and are not recommended, so they are not documented here. SEE ALSO kbd(4), XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). MagicTouch(4) MagicTouch(4) NAME magictouch - MagicTouch input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "MagicTouch" Option "Device" "devpath" ... EndSection DESCRIPTION MagicTouch is an XFree86 input driver for MagicTouch ProE-X con- troller... The MagicTouch driver functions as a pointer input device, and may be used as the X server's core pointer. SUPPORTED HARDWARE It currently supports the ProE-X resistive touchscreen serial (rs232) interface and touchscreens made by Keytec, Inc (MagicTouch) CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. The following driver Options are supported: Option "Device" "devpath" Specify the device path for the magictouch. Valid devices are: /dev/ttyS0, /dev/ttyS1, .... This option is mandatory. It's important to specify the right device Note: com1 -> /dev/ttyS0, com2 -> /dev/ttyS1 .... Option "ScreenNumber" "screennumber" sets the screennumber for the magictouch InputDevice. Default: ScreenNumber: "0" Option "MinX, MinY" "value" These are the minimum X and Y values for the magictouch input device. Note: MinX, MinY must be less than MaxX, MaxY. Range: "0" - "32767" Default: MinX: "0" MinY: "0" Option "MaxX, MaxY" "value" These are the maximum X and Y values for the magictouch input device. Note: MaxX, MaxY must be greater than MinX, MinY. Range: "0" - "32767" Default: MaxX: "16384" MaxY: "16384" SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... MICROTOUCH(4) MICROTOUCH(4) NAME microtouch - MicroTouch input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "microtouch" Option "Device" "devpath" ... EndSection DESCRIPTION microtouch is an XFree86 input driver for MicroTouch devices... The microtouch driver functions as a pointer input device, and may be used as the X server's core pointer. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE What is supported... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Config details... SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... MOUSE(4) MOUSE(4) NAME mouse - Mouse input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "mouse" Option "Protocol" "protoname" Option "Device" "devpath" ... EndSection DESCRIPTION mouse is an XFree86 input driver for mice. The driver supports most available mouse types and interfaces. USB mice are only supported on some OSs, and the level of support for PS/2 mice depends on the OS. The mouse driver functions as a pointer input device, and may be used as the X server's core pointer. Multiple mice are supported by multi- ple instances of this driver. SUPPORTED HARDWARE There is a detailed list of hardware that the mouse driver supports in the README.mouse document. This can be found in /usr/X11R6/lib/X11/doc/, or online at http://www.xfree86.org/cur- rent/mouse.html. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. The driver can auto-detect the mouse type on some platforms On some platforms this is limited to plug and play serial mice, and on some the auto-detection works for any mouse that the OS's kernel driver sup- ports. On others, it is always necessary to specify the mouse protocol in the config file. The README.mouse document contains some detailed information about this. The following driver Options are supported: Option "Protocol" "string" Specify the mouse protocol. Valid protocol types include: Auto, Microsoft, MouseSystems, MMSeries, Logitech, Mouse- Man, MMHitTab, GlidePoint, IntelliMouse, ThinkingMouse, ValuMouseScroll, AceCad, PS/2, ImPS/2, ExplorerPS/2, Think- ingMousePS/2, MouseManPlusPS/2, GlidePointPS/2, Net- MousePS/2, NetScrollPS/2, BusMouse, SysMouse, WSMouse, USB, Xqueue. Not all protocols are supported on all platforms. The "Auto" platform specifies that protocol auto-detection should be attempted. There is no default protocol setting, and specifying this option is mandatory. Option "Device" "string" Specifies the device through which the mouse can be accessed. A common setting is "/dev/mouse", which is often a symbolic link to the real device. This option is mandatory, and there is no default setting. Option "Buttons" "integer" Specifies the number of mouse buttons. In cases where the num- ber of buttons cannot be auto-detected, the default value is 3. The maximum value is 24. Option "Emulate3Buttons" "boolean" Enable/disable the emulation of the third (middle) mouse button for mice which only have two physical buttons. The third button is emulated by pressing both buttons simultaneously. Default: off Option "Emulate3Timeout" "integer" Sets the timeout (in milliseconds) that the driver waits before deciding if two buttons where pressed "simultaneously" when 3 button emulation is enabled. Default: 50. Option "ChordMiddle" "boolean" Enable/disable handling of mice that send left+right events when the middle button is used. Default: off. Option "EmulateWheel" "boolean" Enable/disable "wheel" emulation. Wheel emulation means emulat- ing button press/release events when the mouse is moved while a specific real button is pressed. Wheel button events (typically buttons 4 and 5) are usually used for scrolling. Wheel emula- tion is useful for getting wheel-like behaviour with trackballs. It can also be useful for mice with 4 or more buttons but no wheel. See the description of the EmulateWheelButton, Emulate- WheelInertia, XAxisMapping, and YAxisMapping options below. Default: off. Option "EmulateWheelButton" "integer" Specifies which button must be held down to enable wheel emula- tion mode. While this button is down, X and/or Y pointer move- ment will generate button press/release events as specified for the XAxisMapping and YAxisMapping settings. Default: 4. Option "EmulateWheelInertia" "integer" Specifies how far (in pixels) the pointer must move to generate button press/release events in wheel emulation mode. Default: 50. Option "XAxisMapping" "N1 N2" Specifies which buttons are mapped to motion in the X direction in wheel emulation mode. Button number N1 is mapped to the neg- ative X axis motion and button number N2 is mapped to the posi- tive X axis motion. Default: no mapping. Option "YAxisMapping" "N1 N2" Specifies which buttons are mapped to motion in the Y direction in wheel emulation mode. Button number N1 is mapped to the neg- ative Y axis motion and button number N2 is mapped to the posi- tive Y axis motion. Default: "4 5". Option "ZAxisMapping" "X" Option "ZAxisMapping" "Y" Option "ZAxisMapping" "N1 N2" Option "ZAxisMapping" "N1 N2 N3 N4" Set the mapping for the Z axis (wheel) motion to buttons or another axis (X or Y). Button number N1 is mapped to the nega- tive Z axis motion and button number N2 is mapped to the posi- tive Z axis motion. For mice with two wheels, four button num- bers can be specified, with the negative and positive motion of the second wheel mapped respectively to buttons number N3 and N4. Default: no mapping. Option "FlipXY" "boolean" Enable/disable swapping the X and Y axes. This transformation is applied after the InvX, InvY and AngleOffset transformations. Default: off. Option "InvX" "boolean" Invert the X axis. Default: off. Option "InvY" "boolean" Invert the Y axis. Default: off. Option "AngleOffset" "integer" Specify a clockwise angular offset (in degrees) to apply to the pointer motion. This transformation is applied before the FlipXY, InvX and InvY transformations. Default: 0. Option "SampleRate" "integer" Sets the number of motion/button events the mouse sends per sec- ond. Setting this is only supported for some mice, including some Logitech mice and some PS/2 mice on some platforms. Default: whatever the mouse is already set to. Option "Resolution" "integer" Sets the resolution of the device in counts per inch. Setting this is only supported for some mice, including some PS/2 mice on some platforms. Default: whatever the mouse is already set to. Option "DragLockButtons" "L1 B2 L3 B4" Sets "drag lock buttons" that simulate holding a button down, so that low dexterity people do not have to hold a button down at the same time they move a mouse cursor. Button numbers occur in pairs, with the lock button number occurring first, followed by the button number that is the target of the lock button. Option "DragLockButtons" "M1" Sets a "master drag lock button" that acts as a "Meta Key" indi- cating that the next button pressed is to be "drag locked". Option "ClearDTR" "boolean" Enable/disable clearing the DTR line on the serial port used by the mouse. Some dual-protocol mice require the DTR line to be cleared to operate in the non-default protocol. This option is for serial mice only. Default: off. Option "ClearRTS" "boolean" Enable/disable clearing the RTS line on the serial port used by the mouse. Some dual-protocol mice require the RTS line to be cleared to operate in the non-default protocol. This option is for serial mice only. Default: off. Option "BaudRate" "integer" Set the baud rate to use for communicating with a serial mouse. This option should rarely be required because the default is correct for almost all situations. Valid values include: 300, 1200, 2400, 4800, 9600, 19200. Default: 1200. There are some other options that may be used to control various param- eters for serial port communication, but they are not documented here because the driver sets them correctly for each mouse protocol type. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7), README.mouse. MUTOUCH(4) MUTOUCH(4) NAME mutouch - Microtouch input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "mutouch" Option "Device" "devpath" ... EndSection DESCRIPTION mutouch is an XFree86 input driver for Microtouch devices... The mutouch driver functions as a pointer input device, and may be used as the X server's core pointer. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE What is supported... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Config details... SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... Patrick Lecoanet PALMAX(4) PALMAX(4) NAME palmax - Palmax (TR88L803) touchscreen driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "palmax" Option "Device" "devpath" ... EndSection DESCRIPTION palmax is an XFree86 input driver for the Palmax PD1000/PD1100 The palmax driver functions as a pointer input device, and is normally used as the X server's core pointer. It supports positioning and mouse buttons using the touchscreen display and lid buttons on the Palmax machines. SUPPORTED HARDWARE Palmax PD1000, Palmax PD1100. In theory also any other system using a TR88L803 wired to a serial port. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. The following driver options are supported Option "MinX" "integer" Set the left hand X value from the touchscreen, for calibration. Option "MaxX" "integer" Set the right hand X value from the touchscreen, for calibra- tion. Option "MinY" "integer" Set the top Y value from the touchscreen, for calibration. Option "MaxY" "integer" Set the bottom Y value from the touchscreen, for calibration. Option "Screen" "integer" The screen to attach to the touchscreen when running with multi- ple screens. The default is screen 0. Option "Device" "string" The serial port that is attached to the touchscreen interface. On the Palmax PD1000 and PD1100 this is ttyS0. Option "DeviceName" "string" Set the X11 device name for the touchscreen. This defaults to TOUCHSCREEN. Option "PortraitMode" "string" Set the display orientation. The default is "landscape" but you can rotate the screen clockwise ("portrait") or anticlockwise ("portraitCCW"). Option "SwapXY" "boolean" Swap the X and Y values on the display. The default is false. Option "TapButton" "boolean" Set the touchscreen tap to act as mouse button 1. This allows single handed operation except when using the menu buttons. The default is false. BUGS The driver has been tested on the Palmax systems, the defaults reflect the Palmax hardware and should work out of the box. No testing has been done on other systems using the same digitizer. Support for a double-tap menu button option would be nice. The smoothing algorithm would benefit from real mathematics. XFree86 needs a nice calibration tool. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... Alan Cox PENMOUNT(4) PENMOUNT(4) NAME penmount - PenMount input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "penmount" Option "Device" "devpath" ... EndSection DESCRIPTION penmount is an XFree86 input driver for PenMount devices... The penmount driver functions as a pointer input device, and may be used as the X server's core pointer. THIS MAN PAGE NEEDS TO BE FILLED IN. SUPPORTED HARDWARE What is supported... CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Config details... SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... TEK4957(4) TEK4957(4) NAME tek4957 - Tektronix 4957 input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "tek4957" Option "Device" "devpath" ... EndSection DESCRIPTION tek4957 is an XFree86 input driver for the Tektronix 4957 tablet. The tek4957 driver functions as a pointer input device, and may be used as the X server's core pointer. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Option "Device" "devpath" sets the path to the special file which represents serial line where the tablet is plugged, for example /dev/ttyS0. This option is mandatory. Option "DeviceName" "name" sets the name of the X device. Option "Speed" "number" sets the sampling rate, from 1 to 6. Default is 6, maximum speed. Option "Resolution" "number" sets the resolution. 0 : 2340 dots : 1/200 inch 1 : 2972 dots : 1/10 mm 2 : 11700 dots : 1/1000 inch 3 : 11887 dots : 1/40 mm 4 : 5850 dots : 1/500 inch 5 : 5944 dots : 1/20 mm : default 6 : 4680 dots : 1/400 inch 7 : 1170 dots : 1/100 inch 8 : 12 dots : 1 inch 9 : 24 dots : 1/2 inch Option "TopX" "number" X coordinate of the top corner of the active zone. ( Default = 0 ) Option "TopY" "number" Y coordinate of the top corner of the active zone. ( Default = 0 ) Option "BottomX" "Inumber" X coordinate of the bottom corner of the active zone. ( Default = full scale ) Option "BottomY" "number" Y coordinate of the bottom corner of the active zone. ( Default = full scale ) BUGS / LIMITATIONS Currently, only "Absolute" mode is supported ( Sorry ) SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Olivier DANET UR98(4) UR98(4) NAME UR-98 - UR98 (TR88L803) head tracker driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "UR-98" Option "Device" "devpath" ... EndSection DESCRIPTION UR-98 is an XFree86 input driver for the Union Reality UR-F98 head- tracker. The UR-98 driver functions as a pointer input device, and can be used either as an additional input device or as the X server's core pointer. The driver provides support for the three axes, throttle and four but- tons of the controller. If mapped as the core pointer the headtracker provides headtracking to try and place the mouse cursor where you look. As a secondary input device the unit can be used for gaming, for exam- ple to provide the look up/down and the turn in quake, and with the Z axis bound to ack/forward to provide movement control. The default mapping maps left-right movement to X, up-down movement to Y and near/far movement to the Z axis. The throttle is mapped as the fourth axis by default but can also be mapped as button 5. For use in "head only" mode the Z axis can be mapped as a button. This allows the user to select objects with head/neck movement alone but takes some practice to use well. SUPPORTED HARDWARE Union Reality UR-98. While this is a joystick driver the behaviour is absolute so this driver is not useful for true joystick interfaces. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. The following driver options are supported Option "MinX" "integer" Set the left hand X value from the headgear, for calibration. Option "MaxX" "integer" Set the right hand X value from the headgear, for calibration. Option "MinY" "integer" Set the top Y value from the headgear, for calibration. Option "MaxY" "integer" Set the bottom Y value from the headgear, for calibration. Option "MinZ" "integer" Set the nearest Z value from the headgear, for calibration. Option "MaxZ" "integer" Set the furthest Z value from the headgear, for calibration. Option "MinT" "integer" Set the low throttle value from the headgear, for calibration. Option "MaxT" "integer" Set the high throttle value from the headgear, for calibration. Option "Screen" "integer" The screen to attach to the headgear when running with multiple screens. The default is screen 0. Option "Device" "string" The joystick port that is attached to the headgear interface. This is usually /dev/input/js0. The digital port is not sup- ported due to lack of documentation. Option "DeviceName" "string" Set the X11 device name for the headgear. This defaults to HEAD. Option "PortraitMode" "string" Set the display orientation. The default is "landscape" but you can rotate the screen clockwise ("portrait") or anticlockwise ("portraitCCW"). Option "SwapXY" "boolean" Swap the X and Y values on the display. The default is false. Option "Button5" "boolean" Map the throttle as a button instead of axis 4. For some gaming applications this can be more useful. The default is to map the throttle as axis 4. Option "HeadButton" "boolean" Map the Z axis as button 1. This defaults to false. Option "HeadThresh" "boolean" Set the distance that is held to be mouse down. Option "HeadLock" "boolean" Set the range of depth around the mouse down point where mouse x and y movement is locked out. Set to zero to disable. BUGS The "HeadButton" option is currently not implemented. The hardware or kernel driver has some idiosyncracies. Notably on ker- nel initialization the interface occasionally gets into a state where the readings rapidly cycle left-right-left-right or top-bottom-top-bot- tom. In those cases it seems to be necessary to unload the driver, unplug, replug and reload the joystick drivers. Once it initializes sanely it remains sane. If the device refuses to work check the gray/black cables are plugged into the right ports on the unit. Be careful about this as crossing the cables can lead to the device failing with a nasty burning electronics smell. The author writes from direct experience. This driver is currently Linux specific. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... Alan Cox VOID(4) VOID(4) NAME void - null input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "void" ... EndSection DESCRIPTION void is an dummy/null XFree86 input driver. It doesn't connect to any physical device, and it never delivers any events. It functions as both a pointer and keyboard device, and may be used as X server's core pointer and/or core keyboard. It's purpose is to allow the X server to operate without a core pointer and/or core keyboard. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This driver doesn't have any configuration options in addition to those. SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Authors include... WACOM(4) WACOM(4) NAME wacom - Wacom input driver SYNOPSIS Section "InputDevice" Identifier "idevname" Driver "wacom" Option "Device" "devpath" ... EndSection DESCRIPTION wacom is an XFree86 input driver for Wacom devices. The wacom driver functions as a pointer input device, and may be used as the X server's core pointer. SUPPORTED HARDWARE This driver supports the Wacom IV and Wacom V protocols. Preliminary support is available for USB devices on some Linux platforms. CONFIGURATION DETAILS Please refer to XF86Config(5) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. Multiple instances of the Wacom devices can cohabit. It can be useful to define multiple devices with different active zones. Each device supports the following entries: Option "Type" "stylus"|"eraser"|"cursor" sets the type of tool the device represent. This option is mandatory. Option "Device" "path" sets the path to the special file which represents serial line where the tablet is plugged. You have to specify it for each subsection with the same value if you want to have multiple devices with the same tablet. This option is mandatory. Option "USB" "on" tells the driver to dialog with the tablet the USB way. This option is only available on some Linux platforms. Option "DeviceName" "name" sets the name of the X device. Option "Suppress" "Inumber" sets the position increment under which not to transmit coordinates. This entry must be specified only in the first Wacom subsection if you have multiple devices for one tablet. If you don't specify this entry, the default value is computed to Option "Mode" "Relative"|"Absolute" sets the mode of the device. Option "Tilt" "on" enables tilt report if your tablet supports it (ROM version 1.4 and above). If this is enabled, multiple devices at the same time will not be reported. Option "HistorySize" "number" sets the motion history size. By default the value is zero. Option "AlwaysCore" "on" enables the sharing of the core pointer. When this feature is enabled, the device will take control of the core pointer (and thus will emit core events) and at the same time will be able, when asked so, to report extended events. You can use the last available integer feedback to control this feature. When the value of the feedback is zero, the feature is disabled. The feature is enabled for any other value. Option "TopX" "number" X coordinate of the top corner of the active zone. Option "TopY" "number" Y coordinate of the top corner of the active zone. Option "BottomX" "Inumber" X coordinate of the bottom corner of the active zone. Option "BottomY" "number" Y coordinate of the bottom corner of the active zone. Option "KeepShape" "on" When this option is enabled, the active zone begins according to TopX and TopY. The bottom corner is adjusted to keep the ratio width/height of the active zone the same as the screen while maximizing the area described by TopX, TopY, BottomX, BottomY. Option "DebugLevel" number sets the level of debugging info reported. Option "BaudRate" "38400", "19200" or "9600" (default) changes the serial link speed. This option is only avail- able for wacom V models (Intuos). Option "Serial" "number" sets the serial number associated with the physical device. This allows to have multiple devices of the same type (i.e. multiple pens). This option is only available on wacom V devices (Intuos). To see which serial number belongs to a device, you have to set the DebugLevel to 6 and watch the output of the X server. Option "Threshold" "number" sets the pressure threshold used to generate a button 1 events of stylus devices for some models of tablets (Intuos and Graphire). SEE ALSO XFree86(1), XF86Config(5), xf86config(1), Xserver(1), X(7). AUTHORS Frederic Lepied XDARWIN(1) XDARWIN(1) NAME XDarwin - X window system server for Darwin operating system SYNOPSIS XDarwin [ options ] ... DESCRIPTION XDarwin is the X window server for Mac OS X and the Darwin operating system provided by the XFree86 Project. This version of XDarwin can only be started from the Darwin text console. The Mac OS X Aqua GUI, if present, must be shut down. XDarwin uses IOKit services to access the display framebuffer, mouse and keyboard and to provide a layer of hard- ware abstraction. XDarwin will normally be started by the xdm(1) dis- play manager or by a script that runs the program xinit(1). OPTIONS In addition to the normal server options described in the Xserver(1) manual page, XDarwin accepts the following command line switches: -fakebuttons Emulates a 3 button mouse using modifier keys. By default, the Command modifier is used to emulate button 2 and Option is used for button 3. Thus, clicking the first mouse button while hold- ing down Command will act like clicking button 2. Holding down Option will simulate button 3. -nofakebuttons Do not emulate a 3 button mouse. This is the default. -fakemouse2 modifiers Change the modifier keys used to emulate the second mouse but- ton. By default, Command is used to emulate the second button. Any combination of the following modifier names may be used: Shift, Option, Control, Command, Fn. For example, -fakemouse2 "Option,Shift" will set holding Option, Shift and clicking on button one as equivalent to clicking the second mouse button. -fakemouse3 modifiers Change the modifier keys used to emulate the third mouse but- ton. By default, Option is used to emulate the third button. Any combination of the following modifier names may be used: Shift, Option, Control, Command, Fn. For example, -fakemouse3 "Control,Shift" will set holding Control, Shift and clicking on button one as equivalent to clicking the third mouse button. -keymap file On startup XDarwin translates a Darwin keymapping into an X keymap. The default is to read this keymapping from USA.keymapping. With this option the keymapping will be read from file instead. If the file's path is not specified, it will be searched for in Library/Keyboards/ underneath the following directories (in order): ~, /, /Network, /System. -nokeymap On startup XDarwin translates a Darwin keymapping into an X keymap. With this option XDarwin queries the kernel for the current keymapping instead of reading it from a file. This will often fail on newer kernels. -size width height Sets the screen resolution for the X server to use. -depth depth Specifies the color bit depth to use. Currently only 8, 15, and 24 color bits per pixel are supported. -refresh rate Gives the refresh rate to use in Hz. For LCD displays this should be 0. -showconfig Print out the server version and patchlevel. -version Same as -showconfig. SEE ALSO X(7), XFree86(1), Xserver(1), xdm(1), xinit(1) BUGS XDarwin and this man page still have many limitations. Some of the more obvious ones are: - The display mode cannot be changed once the X server has started. - A screen saver is not supported. AUTHORS XFree86 was originally ported to Mac OS X Server by John Carmack. Dave Zarzycki used this as the basis of his port of XFree86 4.0 to Darwin 1.0. Torrey T. Lyons improved and integrated this code into the XFree86 Project's mainline for the 4.0.2 release. The following members of the XonX Team contributed to the following releases (in alphabetical order): XFree86 4.1.0: Rob Braun - Darwin x86 support Torrey T. Lyons - Project Lead Andreas Monitzer - Cocoa version of XDarwin front end Gregory Robert Parker - Original Quartz implementation Christoph Pfisterer - Dynamic shared X libraries Toshimitsu Tanaka - Japanese localization XFree86 4.2.0: Rob Braun - Darwin x86 support Pablo Di Noto - Spanish localization Paul Edens - Dutch localization Kyunghwan Kim - Korean localization Mario Klebsch - Non-US keyboard support Torrey T. Lyons - Project Lead Andreas Monitzer - German localization Patrik Montgomery - Swedish localization Greg Parker - Rootless support Toshimitsu Tanaka - Japanese localization Olivier Verdier - French localization DUMPKEYMAP(1) DUMPKEYMAP(1) NAME dumpkeymap - Dianostic dump of a .keymapping file SYNOPSIS dumpkeymap [options] [-] [file...] DESCRIPTION dumpkeymap prints a textual representation of each Apple/NeXT .keymap- ping file mentioned on the command-line. If no files are mentioned and if the local machine is an Apple or NeXT installation, then the key mapping currently in use by the WindowServer and the AppKit is printed instead. OPTIONS -h --help Display general program instructions and option summary. -k --help-keymapping Display a detailed description of the internal layout of a .keymapping file. This is the same information as that pre- sented in the Key Mapping Description section of this document. -o --help-output Display an explanation of the output generated by dumpkeymap when dissecting a .keymapping file. This is the same informa- tion as that presented in the Output Description section of this document. -f --help-files Display a summary of the various files and directories which are related to key mappings. This is the same information as that presented in the Files section of this document. -d --help-diagnostics Display a list of the various diagnostic messages which may be emitted by dumpkeymap. This is the same information as that presented in the Diagnostics section of this document. -v --version Display the dumpkeymap version number and warranty information. - -- Inhibit processing of options at this point in the argument list. An occurrence of `-' or `--' in the argument list causes all following arguments to be treated as file names even if an argument begins with a `-' character. KEY MAPPING DESCRIPTION The following sections describe, in complete detail, the format of a raw key mapping resource, as well as the format of the .keymapping file which encapsulates one or more raw mappings. Types and Data The following type definitions are employed throughout this discussion: typedef unsigned char byte; typedef unsigned short word; typedef unsigned long dword; Additionally, the type definition `number' is used generically to indi- cate a numeric value. The actual size of the `number' type may be one or two bytes depending upon how the data is stored in the key map. Although most key maps use byte-sized numeric values, word-sized values are also allowed. Multi-byte values in a key mapping file are stored in big-endian byte order. Key Mapping File and Device Mapping A key mapping file begins with a magic-number and continues with a variable number of device-specific key mappings. struct KeyMappingFile { char magic_number[4]; // `KYM1' DeviceMapping maps[...]; // Variable number of maps }; struct DeviceMapping { dword interface; // Interface type dword handler_id; // Interface subtype dword map_size; // Byte count of `map' (below) KeyMapping map; }; The value of `interface' represents a family of keyboard device types (such as Intel PC, ADB, NeXT, Sun Type5, etc.), and is generally speci- fied as one of the constant values NX_EVS_DEVICE_INTERFACE_ADB, NX_EVS_DEVICE_INTERFACE_ACE, etc., which are are defined in IOHID- Types.h on MacOS/X and Darwin, and in ev_types.h on MacOS/X Server, OpenStep, and NextStep. The value of `handler_id' represents a specific keyboard layout within the much broader `interface' family. For instance, for a 101-key Intel PC keyboard (of type NX_EVS_DEVICE_INTERFACE_ACE) the `handler_id' is '0', whereas for a 102-key keyboard it is `1'. Together, `interface' and `handler_id' identify the exact keyboard hardware to which this mapping applies. Programs which display a visual representation of a keyboard layout, match `interface' and `han- dler_id' from the .keymapping file against the `interface' and `han- dler_id' values found in each .keyboard file. Key Mapping A key mapping completely defines the relationship of all scan codes with their associated functionality. A KeyMapping structure is embed- ded within the DeviceMapping structure in a KeyMappingFile. The key mapping currently in use by the WindowServer and AppKit is also repre- sented by a KeyMapping structure, and can be referred to directly by calling NXGetKeyMapping() and accessing the `mapping' data member of the returned NXKeyMapping structure. struct KeyMapping { word number_size; // 0=1 byte, non-zero=2 bytes number num_modifier_groups; // Modifier groups ModifierGroup modifier_groups[...]; number num_scan_codes; // Scan groups ScanGroup scan_table[...]; number num_sequence_lists; // Sequence lists Sequence sequence_lists[...]; number num_special_keys; // Special keys SpecialKey special_key[...]; }; The `number_size' flag determines the size, in bytes, of all remaining numeric values (denoted by the type definition `number') within the key mapping. If its value is zero, then numbers are represented by a sin- gle byte. If it is non-zero, then numbers are represented by a word (two bytes). Modifier Group A modifier group defines all scan codes which map to a particular type of modifier, such as shift, control, etc. enum Modifier { ALPHALOCK = 0, SHIFT, CONTROL, ALTERNATE, COMMAND, KEYPAD, HELP }; struct ModifierGroup { number modifier; // A Modifier constant number num_scan_codes; number scan_codes[...]; // Variable number of scan codes }; The scan_codes[] array contains a list of all scan codes which map to the specified modifier. The shift, command, and alternate modifiers are frequently mapped to two different scan codes, apiece, since these modifiers often appear on both the left and right sides of the key- board. Scan Group There is one ScanGroup for each scan code generated by the given key- board. This number is given by KeyMapping::num_scan_codes. The first scan group represents hardware scan code 0, the second represents scan code 1, etc. enum ModifierMask { ALPHALOCK_MASK = 1 << 0, SHIFT_MASK = 1 << 1, CONTROL_MASK = 1 << 2, ALTERNATE_MASK = 1 << 3, CARRIAGE_RETURN_MASK = 1 << 4 }; #define NOT_BOUND 0xff struct ScanGroup { number mask; Character characters[...]; }; For each scan code, `mask' defines which modifier combinations generate characters. If `mask' is NOT_BOUND (0xff) then then this scan code does not generate any characters ever, and its characters[] array is zero length. Otherwise, the characters[] array contains one Character record for each modifier combination. The number of records in characters[] is determined by computing (1 << bits_set_in_mask). In other words, if mask is zero, then zero bits are set, so characters[] contains only one record. If `mask' is (SHIFT_MASK | CONTROL_MASK), then two bits are set, so characters[] contains four records. The first record always represents the character which is generated by that key when no modifiers are active. The remaining records represent characters generated by the various modifier combinations. Using the example with the shift and control masks set, record two would repre- sent the character with the shift modifier active; record three, the control modifier active; and record four, both the shift and control modifiers active. As a special case, ALPHALOCK_MASK implies SHIFT_MASK, though only ALPHALOCK_MASK appears in `mask'. In this case the same character is generated for both the shift and alpha-lock modifiers, but only needs to appear once in the characters[] array. CARRIAGE_RETURN_MASK does not actually refer to a modifier key. Instead, it is used to distinguish the scan code which is given the special pseudo-designation of carriage return key. Typically, this mask appears solo in a ScanGroup record and only the two Character records for control-M and control-C follow. This flag may be a throw- back to an earlier time or may be specially interpreted by the low- level keyboard driver, but its purpose is otherwise enigmatic. Character Each Character record indicates the character generated when this key is pressed, as well as the character set which contains the character. Well known character sets are `ASCII' and `Symbol'. The character set can also be one of the meta values FUNCTION_KEY or KEY_SEQUENCE. If it is FUNCTION_KEY then `char_code' represents a generally well-known function key such as those enumerated by FunctionKey. If the character set is KEY_SEQUENCE then `char_code' represents is a zero-base index into KeyMapping::sequence_lists[]. enum CharacterSet { ASCII = 0x00, SYMBOL = 0x01, ... FUNCTION_KEY = 0xfe, KEY_SEQUENCE = 0xff }; struct Character { number set; // CharacterSet of generated character number char_code; // Actual character generated }; enum FunctionKey { F1 = 0x20, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INSERT, DELETE, HOME, END, PAGE_UP, PAGE_DOWN, PRINT_SCREEN, SCROLL_LOCK, PAUSE, SYS_REQUEST, BREAK, RESET, STOP, MENU, USER, SYSTEM, PRINT, CLEAR_LINE, CLEAR_DISPLAY, INSERT_LINE, DELETE_LINE, INSERT_CHAR, DELETE_CHAR, PREV, NEXT, SELECT }; Sequence When Character::set contains the meta value KEY_SEQUENCE, the scan code is bound to a sequence of keys rather than a single character. A sequence is a series of modifiers and characters which are automati- cally generated when the associated key is depressed. #define MODIFIER_KEY 0xff struct Sequence { number num_chars; Character characters[...]; }; Each generated Character is represented as previously described, with the exception that MODIFIER_KEY may appear in place of KEY_SEQUENCE. When the value of Character::set is MODIFIER_KEY then Charac- ter::char_code represents a modifier key rather than an actual charac- ter. If the modifier represented by `char_code' is non-zero, then it indicates that the associated modifier key has been depressed. In this case, the value is one of the constants enumerated by Modifier (SHIFT, CONTROL, ALTERNATE, etc.). If the value is zero then it means that the modifier keys have been released. Special Key A special key is one which is scanned directly by the Mach kernel rather than by the WindowServer. In general, events are not generated for special keys. enum SpecialKeyType { VOLUME_UP = 0, VOLUME_DOWN, BRIGHTNESS_UP, BRIGHTNESS_DOWN, ALPHA_LOCK, HELP, POWER, SECONDARY_ARROW_UP, SECONDARY_ARROW_DOWN }; struct SpecialKey { number type; // A SpecialKeyType constant number scan_code; // Actual scan code }; OUTPUT What follows is an explanation and description of the various pieces of information emitted by dumpkeymap. For a more thorough discussion of any particular piece of information described here, refer to the detailed description of the internal lay- out of a key mapping provided by the Key Mapping Description section above. Conventions Depending upon context, some numeric values are displayed in decimal notation, whereas others are displayed in hexadecimal notation. Hexa- decimal numbers are denoted by a `0x' prefix (for instance, `0x7b'), except when explicitly noted otherwise. Key Mapping Source The first piece of information presented about a particular key mapping is the source from which the data was gleaned. For a .keymapping file, the title `KEYMAP FILE' is emitted along with the path and name of the file in question. For the key mapping currently in use by the Win- dowServer and AppKit, the title `ACTIVE KEYMAP' is emitted instead. Device Information Each .keymapping file may contain one or more raw key mappings. For example, a file which maps keys to a Dvorak-style layout might contain raw mappings for Intel PC, ADB, NeXT, and Sun Type5 keyboards. For each raw mapping, the following information is emitted: o The title `KEYMAP' along with the mapping's relative position in the .keymapping file. o The `interface' identifier. o The `handler_id' sub-identifier. o The size of the raw mapping resource counted in bytes. The `interface' and `handler_id' values, taken together, define a spe- cific keyboard device. A .keyboard file, which describes the visual layout of a keyboard, also contains `interface' and `handler_id' iden- tifiers. The .keyboard file corresponding to a particular key mapping can be found by matching the `interface' and `handler_id' values from each resource. Modifiers Each mapping may contain zero or more modifier records which associate hardware scan codes with modifier descriptions such as shift, control, alternate, etc. The title `MODIFIERS' is printed along with the count of modifier records which follow. For each modifier record, the modi- fier's name is printed along with a list of scan codes, in hexadecimal format, which generate that modifier value. For example: MODIFIERS [4] alternate: 0x1d 0x60 control: 0x3a keypad: 0x52 0x53 ... 0x63 0x62 shift: 0x2a 0x36 Characters Each mapping may contain zero or more character records which associate hardware scan codes with the actual characters generated by those scan codes in the presence or absence of various modifier combinations. The title `CHARACTERS' is printed along with the count of character records which follow. Here is a highly abbreviated example: CHARACTERS [9] scan 0x00: -AC-L "a" "A" "^A" "^A" ca c7 "^A" "^A" scan 0x07: -AC-L "x" "X" "^X" "^X" 01/b4 01/ce "^X" "^X" scan 0x0a: ---S- "<" ">" scan 0x13: -ACS- "2" "@" "^@" "^@" b2 b3 "^@" "^@" scan 0x24: R---- "^M" "^C" scan 0x3e: ----- [F4] scan 0x4a: ----- [page up] scan 0x60: ----- {seq#3} scan 0x68: not-bound For each record, the hexadecimal value of the hardware scan code is printed, followed by a list of modifier flag combinations and the actual characters generated by this scan code with and without modi- fiers applied. The modifier flags field is composed of a combination of single letter representations of the various modifier types. The letters stand for: L - alpha-lock S - shift C - control A - alternate R - carriage-return As a special case, the alpha-lock flag also implies the shift flag, so these two flags never appear together in the same record. The combination of modifier flags determines the meaning and number of fields which follow. The first field after the modifier flags always represents the character that will be generated if no modifier keys are depressed. The remaining fields represent characters generated by the various modifier combinations. The order of the fields follows this general pattern: o The character generated by this scan code when no modifiers are in effect is listed first. o If the `L' or `S' flag is active, then the shifted character generated by this scan code is listed next. o If the `C' flag is active, then the control-character gener- ated by this scan code is listed next. Furthermore, if the `L' or `S' flag is also active, then the shifted con- trol-character is listed after that. o If the `A' flag is active, then the alternate-character gener- ated by this scan code is listed next. Furthermore, if the `L' or `S' flag is active, then the shifted alter- nate-character is listed after that. If the `C' flag is also active, then the alternate-control-character is listed next. Finally, if the `C' and `L' or `C' and `S' flags are also active, then the shifted alternate-con- trol-character is listed. The `R' flag does not actually refer to a modifier key. Instead, it is used to distinguish the scan code which is given the special pseudo- designation of carriage return key. Typically, this mask appears solo and only the two fields for control-M and control-C follow. This flag may be a throwback to an earlier time or may be specially interpreted by the low-level keyboard driver, but its purpose is otherwise enig- matic. Recalling the example from above, the following fields can be identi- fied: scan 0x00: -AC-L "a" "A" "^A" "^A" ca c7 "^A" "^A" o Lower-case `a' is generated when no modifiers are active. o Upper-case `A' is generated when shift or alpha-lock are active. o Control-A is generated when control is active. o Control-A is generated when control and shift are active. o The character represented by the hexadecimal code 0xca is gen- erated when alternate is active. o The character represented by 0xc7 is generated when alternate and shift (or alpha-lock) are active. o Control-A is generated when alternate and control are active. o Control-A is generated when alternate, control and shift (or alpha-lock) are active. The notation used to represent a particular generated character varies. o Printable ASCII characters are quoted, as in "x" or "X". o Control-characters are quoted and prefixed with `^', as in "^X". o Characters with values greater than 127 (0x7f) are displayed as hexadecimal values without the `0x' prefix. o Characters in a non-ASCII character set (such as `Symbol') are displayed as two hexadecimal numbers separated by a slash, as in `01/4a'. The first number is the character set's identification code (such as `01' for the `Symbol' set), and the second number is the value of the generated character. o Non-printing special function characters are displayed with the function's common name enclosed in brackets, as in `[page up]' or `[F4]'. o If the binding represents a key sequence rather than a single character, then the sequence's identification number is enclosed in braces, as in `{seq#3}'. Recalling a few examples from above, the following interpretations can be made: scan 0x07: -AC-L "x" "X" "^X" "^X" 01/b4 01/ce "^X" "^X" scan 0x3e: ----- [F4] scan 0x4a: ----- [page up] scan 0x60: ----- {seq#3} o "x" and "X" are printable ASCII characters. o "^X" is a control-character. o `01/b4' and `01/ce' represent the character codes 0xb4 and 0xce in the `Symbol' character set. o Scan code 0x3e generates function-key `F4', and scan code 0x4a generates function-key `page up'. o Scan code 0x60 is bound to key sequence #3. Finally, if a scan code is not bound to any characters, then it is annotated with the label `not-bound', as with example scan code 0x68 from above. Sequences A scan code (modified and unmodified) can be bound to a key sequence rather than generating a single character or acting as a modifier. When it is bound to a key sequence, a series of character invocations and modifier actions are automatically generated rather than a single keystroke. Each mapping may contain zero or more key sequence records. The title `SEQUENCES' is printed along with the count of sequence records which follow. For example: SEQUENCES [3] sequence 0: "f" "o" "o" sequence 1: {alternate} "b" "a" "r" {unmodify} sequence 2: [home] "b" "a" "z" The notation used to represent the sequence of generated characters is identical to the notation already described in the Characters section above, with the exception that modifier actions may be interposed between generated characters. Such modifier actions are represented by the modifier's name enclosed in braces. The special name `{unmodify}' indicates the release of the modifier keys. Thus, the sequences in the above example can be interpreted as follows: o Sequence #0 generates `foo'. o Sequence #1 invokes the alternate modifier, generates `bar', and then releases alternate. o Sequence #2 invokes the home key and then generates `baz'. In a text editor, this would probably result in `baz' being prepended to the line of text on which the cursor resides. Special Keys Certain keyboards feature keys which perform some type of special pur- pose function rather than generating a character or acting as a modi- fier. For instance, Apple keyboards often contain a power key, and NeXT keyboards have historically featured screen brightness and volume control keys. Each mapping may contain zero or more special-key records which asso- ciate hardware scan codes with such special purpose functions. The title `SPECIALS' is printed along with the count of records which fol- low. For each record, the special function's name is printed along with a list of scan codes, in hexadecimal format, which are bound to that function. For example: SPECIALS [6] alpha-lock: 0x39 brightness-down: 0x79 brightness-up: 0x74 power: 0x7f sound-down: 0x77 sound-up: 0x73 FILES *.keymapping A key mapping file which precisely defines the relationship of all hardware-specific keyboard scan-codes with their associated functionality. *.keyboard A file describing the physical layout of keys on a particular type of keyboard. Each `key' token in this file defines the position and shape of the key on the keyboard, as well as the associated scan code which that key generates. A .keymapping file, on the other hand, defines the characters which are gener- ated by a particular scan code depending upon the state of the various modifier keys (such as shift, control, etc.). The `interface' and `handler_id' values from a .keymapping file are matched against those in each .keyboard file in order to asso- ciate a particular .keyboard file with a key mapping. Various GUI programs use the .keyboard file to display a visual repre- sentation of a keyboard for the user. Since these files are just plain text, they can be easily viewed and interpreted with- out the aid of a specialized program, thus dumpkeymap leaves these files alone. /System/Library/Keyboards /Network/Library/Keyboards /Local/Library/Keyboards /Library/Keyboards Repositories for .keymapping and .keyboard files for MacOS/X, Darwin, and MacOS/X Server. /NextLibrary/Keyboards /LocalLibrary/Keyboards Repositories for .keymapping and .keyboard files for OpenStep and NextStep. $(HOME)/Library/Keyboards Repository for personal .keymapping and .keyboard files. DIGANOSTICS The following diagnostic messages may be issued to the standard error stream. Unrecognized option. An unrecognized option was specified on the command-line. Invoke dumpkeymap with the --help option to view a list of valid options. Insufficient data in keymapping data stream. The key mapping file or data stream is corrupt. Either the file has been incorrectly truncated or a field, such as those which indicates the number of variable records which follow, contains a corrupt value. The following diagnostic messages have significance only when trying to print .keymapping files mentioned on the command-line. Bad magic number. The mentioned file is not a .keymapping file. The file's con- tent does not start with the string `KYM1'. Unable to open key mapping file. The call to fopen() failed; probably because the specified path is invalid or dumpkeymap does not have permission to read the file. Unable to determine key mapping file size. The call to fstat() failed, thus memory can not be allocated for loading the file. Unable to read key mapping file. The call to fread() failed. The following diagnostic messages have significance only when trying to print the currently active key mapping when no .keymapping files have been mentioned on the command-line. Unable to open event status driver. The call to NXOpenEventStatus() failed. Bad key mapping length. The call to NXKeyMappingLength() returned a bogus value. Unable to get current key mapping. The call to NXGetKeyMapping() failed. The following diagnostic messages have significance only when using dumpkeymap on a non-Apple/NeXT platform. Must specify at least one .keymapping file. No .keymapping files were mentioned on the command-line. On non-Apple/NeXT platforms, there is no concept of a currently active .keymapping file, so at least one file must be mentioned on the command-line. AUTHOR Eric Sunshine wrote dumpkeymap and this docu- ment, the dumpkeymap user's manual. Both dumpkeymap and this document are copyright (C)1999,2000 by Eric Sunshine . All rights reserved. The implementation of dumpkeymap is based upon information gathered on September 3, 1997 by Eric Sunshine and Paul S. McCarthy during an effort to reverse engineer the format of the NeXT .keymapping file. Version 4 -- 1 December 2000 TinyX(1) TinyX(1) NAME TinyX - tiny X server SYNOPSIS Xvesa [:display] [option...] Xchips [:display] [option...] Xfbdev [:display] [option...] Xi810 [:display] [option...] Xigs [:display] [option...] Xipaq [:display] [option...] Xmach64 [:display] [option...] Xsavage [:display] [option...] Xsis530 [:display] [option...] Xtrident [:display] [option...] Xtrio [:display] [option...] Xts300 [:display] [option...] DESCRIPTION TinyX is a family of X servers designed to be particularly small. This manual page describes the common functionality of the TinyX servers; for information on a specific X server, please refer to the relevant manual page. This incarnation of TinyX is colloquially known as kdrive. OPTIONS In addition to the standard options accepted by all X servers (see Xserver(1)), all the TinyX servers accept the following options: -card pcmcia use pcmcia card as additional screen. -dumb disable hardware acceleration. -origin X,Y Locates the next screen in the Xinerama virtual screen. -screen widthxheight[xdepth[xfreq]][@rotation] use a screen of the specified width, height, screen depth, fre- quency, and rotation (0, 90, 180 and 270 are legal values). -softCursor disable the hardware cursor. -videoTest start the server, pause momentarily, and exit. -zaphod disable switching screens by moving the pointer across a screen boundary. -2button enable emulation of a middle mouse button by chording. -3button disable emulation of a middle mouse button by chording. SEE ALSO X(7), Xserver(1), xdm(1), xinit(1), Xvesa(1), Xfbdev(1), XFree86(1). AUTHORS The TinyX common core was written by Keith Packard, based on XFree86 which. It was integrated into the XFree86 build process by David Dawes and X-Oz Technologies. Xvesa(1) Xvesa(1) NAME Xvesa - VESA Bios Extensions tiny X server SYNOPSIS Xvesa [:display] [option...] DESCRIPTION Xvesa is a generic X server for Linux on the x86 platform. Xvesa doesn't know about any particular hardware, and sets the video mode by running the video BIOS in VM86 mode. Xvesa can use both standard VGA BIOS modes and any modes advertised by a VESA BIOS if available. Xvesa runs untrusted code with full privileges, and is therefore a fairly insecure X server. The Xvesa server should only be used in trusted environments. OPTIONS Besides the normal TinyX server's options (see TinyX(1)), Xvesa accepts the following command line switches: -mode n specifies the VESA video mode to use. This option overrides any -screen options. -listmodes list all supported video modes. If -force was specified before -listmodes, lists all the modes that your BIOS claims to sup- port, even those that the Xvesa server won't be able to use. -force disable some sanity checks and use the specified mode even if the BIOS claims not to support it. -shadow use a shadow framebuffer even if it is not strictly necessary. This may dramatically improve performance on some hardware. -nolinear don't use a linear framebuffer even if one is available. You don't want to use this option. -swaprgb pass RGB values in the order that works on broken BIOSes. Use this if the colours are wrong in PseudoColor and 16 colour modes. -map-holes use a contiguous (hole-less) memory map. This fixes a segmen- tation violation with some rare BIOSes that violate the VESA specification, but may cause slightly higher memory usage on systems that over-commit memory. -verbose emit diagnostic messages during BIOS initialization and tear- down. KEYBOARD Multiple key presses recognized directly by Xvesa are: Ctrl+Alt+Backspace Immediately kill the server. Ctrl+Alt+F1...F12 Switch to virtual console 1 through 12. SEE ALSO X(7), Xserver(1), TinyX(1), xdm(1), xinit(1), XFree86(1). AUTHORS The VESA driver was written by Juliusz Chroboczek. Keith Packard added support for standard VGA BIOS modes and is especially proud of 320x200 16 colour mode. Xfbdev(1) Xfbdev(1) NAME Xfbdev - Linux framebuffer device tiny X server SYNOPSIS Xfbdev [:display] [option...] DESCRIPTION Xfbdev is a generic X server for Linux. Xfbdev doesn't know about any particular hardware, and uses the framebuffer provided by the Linux framebuffer device. OPTIONS Xfbdev accepts the common options of the TinyX family of servers. Please see TinyX(1). SEE ALSO X(7), Xserver(1), TinyX(1), xdm(1), xinit(1), XFree86(1). AUTHORS The Xfbdev server was written by Keith Packard. XDGA(3) XFree86 XDGA(3) NAME XDGA - XFree86 DGA extension client library SYNOPSIS #include Bool XDGAQueryExtension( Display *dpy, int *eventBase, int *errorBase) Bool XDGAQueryVersion( Display *dpy, int *majorVersion, int *minorVersion) XDGAMode *XDGAQueryModes( Display *dpy, int screen, int *num) XDGADevice *XDGASetMode( Display *dpy, int screen, int mode) Bool XDGAOpenFramebuffer( Display *dpy, int screen) void XDGACloseFramebuffer( Display *dpy, int screen) void XDGASetViewport( Display *dpy, int screen, int x, int y, int flags) void XDGAInstallColormap( Display *dpy, int screen, Colormap cmap) Colormap XDGACreateColormap( Display *dpy, int screen, XDGADevice *device, int alloc) void XDGASelectInput( Display *dpy, int screen, long event_mask) void XDGAFillRectangle( Display *dpy, int screen, int x, int y, unsigned int width, unsigned int height, unsigned long color) void XDGACopyArea( Display *dpy, int screen, int srcx, int srcy, unsigned int width, unsigned int height, int dstx, int dsty) void XDGACopyTransparentArea( Display *dpy, int screen, int srcx, int srcy, unsigned int width, unsigned int height, int dstx, int dsty, unsigned long key) int XDGAGetViewportStatus( Display *dpy, int screen) void XDGASync( Display *dpy, int screen) Bool XDGASetClientVersion( Display *dpy) void XDGAChangePixmapMode( Display *dpy, int screen, int *x, int *y, int mode) void XDGAKeyEventToXKeyEvent( XDGAKeyEvent *dk, XKeyEvent *xk) DESCRIPTION The XFree86-DGA extension is an X server extension for allowing client programs direct access to the video frame buffer. This is a brief description of the programming interface for version 2.0 of the XFree86-DGA extension. XFree86-DGA is not intended as a direct rendering API, but rather, as a mechanism to "get the X Server out of the way" so that some other direct rendering API can have full access to the hardware. With this in mind, DGA does provide clients some direct access to the hardware without requiring a separate rendering API, but this access is limited to direct linear framebuffer access. Most of the reasons for the XFree86-DGA extension's existence are now better served in other ways. Further development of this extension is not expected, and it may be deprecated in a future release. The fea- tures that continue to be useful will either be provided through other existing mechanisms, or through an extension that address those needs more specifically. Discussion of these issue is encouraged in the XFree86 developer forum . XFree86-DGA is initialized by passing a number corresponding to a valid XDGAMode to XDGASetMode(). Clients can get a list of valid modes from XDGAQueryModes(). Each XDGAMode corresponds to a different framebuffer layout. XDGAQueryModes() returns a pointer to an array of XDGAModes which are valid for the given screen. num is the number of elements in the array. The returned array can be freed with XFree(3). The XDGAMode structure is as follows: typedef struct { int num; char *name; float verticalRefresh; int flags; int imageWidth; int imageHeight; int pixmapWidth; int pixmapHeight; int bytesPerScanline; int byteOrder; int depth; int bitsPerPixel; unsigned long redMask; unsigned long greenMask; unsigned long blueMask; short visualClass; int viewportWidth; int viewportHeight; int xViewportStep; int yViewportStep; int maxViewportX; int maxViewportY; int viewportFlags; int reserved1; int reserved2; } XDGAMode; num A unique identifying number (num > 0) for the mode. This is the number referenced when initializing the mode. name The name of the corresponding modeline as given in the XF86Con- fig file. verticalRefresh The vertical refresh rate for the modeline (in Hz). flags Any of the following may be OR'd together: XDGAConcurrentAccess Indicates that concurrent client/server access to the framebuffer is possible. If this flag is not set it is very important to call XDGASync() before directly accessing the framebuffer if a call to XDGAFillRectangle(), XDGACopy- Area() or XDGACopyTransparentArea() or any Xlib rendering function has been made prior to such accesses. XDGASolidFillRect Indicates that XDGAFillRectangle() is supported. XDGABlitRect Indicates that XDGACopyArea() is supported. XDGABlitTransRect Indicates that XDGACopyTransparentArea() is supported. XDGAPixmap Indicates that a Pixmap will be returned when the mode is initialized. This means that rendering with Xlib is possi- ble for this mode. XDGAInterlaced XDGADoublescan Indicates that the mode is an interlaced or doublescan mode. imageWidth imageHeight The width and height of the framebuffer area accessible by the client. This rectangle is always justified to the upper left- hand corner. pixmapWidth pixmapHeight The width and height of the framebuffer area accessible by Xlib. This rectangle is always justified to the upper left- hand corner. These fields are only valid if the XDGAPixmap flag is set in the flags field. bytesPerScanline The pitch of the framebuffer in bytes. byteOrder MSBFirst or LSBFirst. depth The number of bits in each pixel which contain usable data. bitsPerPixel The number of bits taken up by each pixel. redMask greenMask blueMask The RGB masks. These do not apply to color-indexed modes. visualClass TrueColor, PseudoColor, DirectColor, etc. viewportWidth viewportHeight The dimensions of the portion of the framebuffer which will be displayed on the screen. xViewPortStep yViewPortStep The granularity of the x,y viewport positioning possible with the XDGASetViewport() function. maxViewportX maxViewportY The maximum x and y positions possible with the XDGASetView- port() function. viewportFlags Any of the following may be OR'd together XDGAFlipRetrace Indicates that the hardware can switch viewports during the vertical retrace. XDGAFlipImmediate Indicates that the hardware can switch viewports immedi- ately without waiting for the vertical retrace. XDGASetMode() initialises the XDGAMode corresponding to num. To exit DGA mode and return to normal server operation, call XDGASetMode() with num set to zero. XDGASetMode() returns a pointer to an XDGADevice if successful. The XDGADevice can be freed with XFree(3). The XDGADevice structure is as follows: typedef struct { XDGAMode mode; unsigned char *data; Pixmap pixmap; } XDGADevice; mode The XDGAMode structure, identical to the information returned by XDGAQueryModes(). data If direct framebuffer access is desired and possible, this field will contain a pointer to the mapped framebuffer memory. Generally, this field will be zero unless a call to XDGAOpen- Framebuffer() is made prior to initialization of the mode. pixmap If the mode supports Xlib rendering as indicated by XDGAPixmap in the flags field, this will contain a Pixmap handle suitable for passing as the drawable argument to Xlib functions. This field will be zero if Xlib rendering is not supported. XDGAQueryExtension() checks for the presence of the extension and returns the event and error bases. XDGAQueryVersion() returns the XFree86-DGA major and minor version num- bers. XDGAOpenFramebuffer() maps the framebuffer memory. The client needs sufficient privileges to be able to do this. XDGAOpenFramebuffer() should be called prior to initializing a DGA mode if direct framebuffer access is desired for that mode. XDGAOpenFramebuffer() does not need to be called if direct framebuffer access is not required. If the framebuffer is opened, XDGACloseFramebuffer() should be called prior to client exit to unmap the memory. XDGAChangePixmapMode() can be used to change between two pixmap sizes in cases where a Pixmap is available for Xlib rendering. The following values for the mode parameter are available: XDGAPixmapModeLarge The pixmap size is defined by the pixmapWidth and pixmapHeight fields in the XDGAMode structure. The x and y values are ignored in this case. XDGAPixmapModeSmall The pixmap size is defined by the viewportWidth and view- portHeight fields in the XDGAMode structure. In this mode, the x and y values specify where in the framebuffer this pixmap rectangle is located. It may be placed anywhere within the Xlib renderable region described by the pixmap- Width and pixmapHeight fields in the XDGAMode. The x and y values returned are the resultant location of the pixmap and may be different from the requested x,y location due to platform specific alignment constraints. All Xlib render- ing is clipped to this pixmap rectangle. XDGASetViewport() sets the upper left-hand corner of the rectangle of framebuffer that is to be displayed on the screen. Not all locations may be supported by the hardware and requested locations will be adjusted according to the xViewPortStep and yViewPortStep fields in the XDGAMode. flags can be XDGAFlipRetrace or XDGAFlipImmediate to adjust the view- port location at the next vertical retrace or immediately. Values other than the supported values advertised in the mode's viewportFlags field will result in hardware-specific default behavior. XDGAFlipImme- diate will block until the flip is completed. XDGAFlipRetrace will generally NOT block so it is necessary to monitor the viewport status with XDGAGetViewportStatus(). XDGAFlipImmediate requests during pend- ing XDGAFlipRetrace requests will be ignored. XDGAGetViewportStatus() keeps track of the XDGASetViewport() requests still pending. The return value of the function will have consecutive bits set (LSB justified), each bit representing a pending viewport change. For example: while(XDGAGetViewportStatus(dpy, screen)); waits for all pending viewport changes to finish. while(0x2 & XDGAGetViewportStatus(dpy, screen)); waits until all but the last viewport changes have completed. XDGACreateColormap() is similar to the Xlib function XCreateColormap(3) except that it takes an XDGADevice as an argument instead of a Window and Visual. Though XCreateColormap(3) may create usable colormaps in some cases, XDGACreateColormap() is the preferred method for creating colormaps in DGA since there may not be an advertised visual compatible with the DGA device. XDGAInstallColormap() must be used to install colormaps in DGA mode. XInstallColormap(3) will not work. XDGASelectInput() enables DGA's own event mechanism. This function is similar to XSelectInput(3), and all Xlib Key, Button and Motion masks are supported. The following DGA events are defined: typedef struct { int type; /* ButtonPress or ButtonRelease + the DGA event base*/ unsigned long serial; /* # or last request processed by the server */ Display *display; /* Display the event was read from */ int screen; /* The screen number the event came from */ Time time; /* milliseconds */ unsigned int state; /* key or button mask */ unsigned int button; /* detail */ } XDGAButtonEvent; typedef struct { int type; /* KeyPress or KeyRelease + the DGA event base*/ unsigned long serial; /* # or last request processed by the server */ Display *display; /* Display the event was read from */ int screen; /* The screen number the event came from */ Time time; /* milliseconds */ unsigned int state; /* key or button mask */ unsigned int keycode; /* detail */ } XDGAKeyEvent; typedef struct { int type; /* MotionNotify + the DGA event base*/ unsigned long serial; /* # or last request processed by the server */ Display *display; /* Display the event was read from */ int screen; /* The screen number the event came from */ Time time; /* milliseconds */ unsigned int state; /* key or button mask */ int dx; /* relative pointer motion */ int dy; /* relative pointer motion */ } XDGAMotionEvent; XDGAKeyEventToXKeyEvent() is a helper function to translate XDGAKeyEvents into XKeyEvents suitable for use with XLookupKeysym(3). XDGAFillRectangle(), XDGACopyArea(), and XDGACopyTransparentArea() are included with some reservation since DGA is not intended as a rendering API. These are merely convenience routines and are optionally sup- ported. The associated flags will be set in the XDGAMode's flags field if these functions are supported. These functions will be no-ops oth- erwise. they do not provide direct access to the hardware, but are sim- ply context-less operations performed by the server. XDGASync() blocks until all server rendering to the framebuffer com- pletes. If Xlib or the 3 rendering functions above are used, XDGASync() must be called before the client directly accesses the framebuffer as the server rendering is asynchronous with the client and may have not completed. This is especially important if the XDGACon- currentAccess flag is not set in the XDGAMode's flags field since con- current access by the server and client may result in a system lockup. SEE ALSO XFree86(1), XF86Config(5) AUTHORS XFree86-DGA version 2 was written by Mark Vojkovich. Version 1 was written by Jon Tombs, Harm Hanemaayer, Mark Vojkovich. XF86MISC(3X11) X FUNCTIONS XF86MISC(3X11) NAME XF86MiscQueryExtension, XF86MiscQueryVersion, XF86MiscGetMouseSettings, XF86MiscSetMouseSettings, XF86MiscGetKbdSettings, XF86MiscSetKbdSet- tings - XFree86-Misc extension interface functions SYNTAX #include Bool XF86MiscQueryExtension( Display *display, int *event_base_return, int *error_base_return); Bool XF86MiscQueryVersion( Display *display, int *major_version_return, int *minor_version_return); Status XF86MiscGetMouseSettings( Display *display, XF86MiscMouseSettings *mseinfo); Status XF86MiscSetMouseSettings( Display *display, XF86MiscMouseSettings *mseinfo); Status XF86MiscGetKbdSettings( Display *display, XF86MiscKbdSettings *kbdinfo); Status XF86MiscSetKbdSettings( Display *display, XF86MiscKbdSettings *kbdinfo); ARGUMENTS display Specifies the connection to the X server. screen Specifies which screen number the setting apply to. event_base_return Returns the base event number for the extension. error_base_return Returns the base error number for the extension. major_version_return Returns the major version number of the extension. minor_version_return Returns the minor version number of the extension. mseinfo Specifies a structure which contains the mouse parameters. kbdinfo Specifies a structure which contains the keyboard parameters. STRUCTURES Mouse: typedef struct { char *device; /* returned path to device */ int type; /* mouse protocol */ int baudrate; /* 1200, 2400, 4800, or 9600 */ int samplerate; /* samples per second */ int resolution; /* resolution, count per inch */ int buttons; /* number of buttons */ Bool emulate3buttons; /* Button1+Button3 -> Button2 ? */ int emulate3timeout; /* in milliseconds */ Bool chordmiddle; /* Button1+Button3 == Button2 ? */ int flags; /* Device open flags */ } XF86MiscMouseSettings; Keyboard: typedef struct { int type; /* of keyboard: 84-key, 101-key, Xqueue */ int rate; /* repeat rate */ int delay; /* delay until repeat starts */ Bool servnumlock; /* Server handles NumLock ? */ } XF86MiscKbdSettings; DESCRIPTION These functions provide an interface to the XFree86-Misc extension which allows various server settings to be queried and changed dynami- cally. Applications that use these functions must be linked with -lXxf86misc POWER-SAVER FUNCTIONS The XF86MiscGetSaver and XF86MiscSetSaver functions have been removed. This functionality is now provided by the DPMS extension. MOUSE FUNCTIONS Mouse parameters can be queried using the function XF86MiscGetMouseSet- tings. The structure pointed to by its second argument is filled in with the current mouse settings. Not all fields are valid in all cases. For example, when the protocol indicates a bus mouse (i.e. the type field has value MTYPE_BUSMOUSE as defined in xf86misc.h), then the value in the baudrate field should be ignored as it does not apply to bus mice. The samplerate field contains the resolution in lines per inch when using the Hitachi tablet protocol. The device field of the structure points to dynamically allocated stor- age which should be freed by the caller. Any of the fields of the structure can be altered and then passed to the XF86MiscSetMouseSettings function to change their value in the server, with the following restrictions: 1) The device can not be changed 2) The protocol can not be changed to or from Xqueue or OsMouse 3) The buttons field can not be changed 4) Invalid combinations of parameters are not allowed The server will generate an error if any of the above is attempted, except the first - the contents of the device field are simply ignored. A change of the protocol causes the device to be closed and reopened. Changes to the baud rate, sample rate, resolution or flags, when appli- cable to the selected protocol, also cause a reopen of the device. A reopen can be forced by using the MF_REOPEN flag, except in the case of the OsMouse and Xqueue protocols which ignore all attempts to reopen the device. KEYBOARD FUNCTIONS The XF86MiscGetKbdSettings function allows you to retrieve the current keyboard-related settings from the server. Using the XF86MiscSetKbdSettings function, the keyboard autorepeat delay and rate can be set. Requests to change the type and servnumlock fields are ignored (except for checking for an invalid keyboard type). This is expected to change in a future release. OTHER FUNCTIONS Two functions, XF86MiscQueryExtension and XF86MiscQueryVersion, are provided which allow the client to query some information regarding the extension itself. PREDEFINED VALUES The header file X11/extensions/xf86misc.h contains definitions for MTYPE_* Mouse protocols KTYPE_* Keyboard types MF_* Mouse flags SEE ALSO xset(1), XF86Config(5) AUTHORS Joe Moss and David Dawes, The XFree86 Project, Inc. XF86VIDMODE(3X11) X FUNCTIONS XF86VIDMODE(3X11) NAME XF86VidModeQueryExtension, XF86VidModeQueryVersion, XF86VidModeSet- ClientVersion, XF86VidModeGetModeLine, XF86VidModeGetAllModeLines, XF86VidModeDeleteModeLine, XF86VidModeModModeLine, XF86VidModeValidate- ModeLine, XF86VidModeSwitchMode, XF86VidModeSwitchToMode, XF86VidMode- LockModeSwitch, XF86VidModeGetMonitor, XF86VidModeGetViewPort, XF86Vid- ModeSetViewPort, XF86VidModeGetDotClocks, XF86VidModeGetGamma, XF86Vid- ModeSetGamma, XF86VidModeGetGammaRamp, XF86VidModeSetGammaRamp, XF86VidModeGetGammaRampSize, XF86VidModeGetPermissions - XFree86-Vid- Mode extension interface functions SYNTAX #include Bool XF86VidModeQueryExtension( Display *display, int *event_base_return, int *error_base_return); Bool XF86VidModeQueryVersion( Display *display, int *major_version_return, int *minor_version_return); Bool XF86VidModeSetClientVersion( Display *display); Bool XF86VidModeGetModeLine( Display *display, int screen, int *dotclock_return, XF86VidModeModeLine *modeline); Bool XF86VidModeGetAllModeLines( Display *display, int screen, int *modecount_return, XF86VidModeModeInfo ***modesinfo); Bool XF86VidModeDeleteModeLine( Display *display, int screen, XF86VidModeModeInfo *modeline); Bool XF86VidModeModModeLine( Display *display, int screen, XF86VidModeModeLine *modeline); Status XF86VidModeValidateModeLine( Display *display, int screen, XF86VidModeModeLine *modeline); Bool XF86VidModeSwitchMode( Display *display, int screen, int zoom); Bool XF86VidModeSwitchToMode( Display *display, int screen, XF86VidModeModeInfo *modeline); Bool XF86VidModeLockModeSwitch( Display *display, int screen, int lock); Bool XF86VidModeGetMonitor( Display *display, int screen, XF86VidModeMonitor *monitor); Bool XF86VidModeGetViewPort( Display *display, int screen, int *x_return, int *y_return); Bool XF86VidModeSetViewPort( Display *display, int screen, int x, int y); XF86VidModeGetDotClocks( Display *display, int screen, int *flags return, int *number of clocks return, int *max dot clock return, int **clocks return); XF86VidModeGetGamma( Display *display, int screen, XF86VidModeGamma *Gamma); XF86VidModeSetGamma( Display *display, int screen, XF86VidModeGamma *Gamma); XF86VidModeGetGammaRamp( Display *display, int screen, int size, unsigned short *red array, unsigned short *green array, unsigned short *blue array); XF86VidModeSetGammaRamp( Display *display, int screen, int size, unsigned short *red array, unsigned short *green array, unsigned short *blue array); XF86VidModeGetGammaRampSize( Display *display, int screen, int *size); ARGUMENTS display Specifies the connection to the X server. screen Specifies which screen number the setting apply to. event_base_return Returns the base event number for the extension. error_base_return Returns the base error number for the extension. major_version_return Returns the major version number of the extension. minor_version_return Returns the minor version number of the extension. dotclock_return Returns the clock for the mode line. modecount_return Returns the number of video modes available in the server. zoom If greater than zero, indicates that the server should switch to the next mode, otherwise switch to the previous mode. lock Indicates that mode switching should be locked, if non-zero. modeline Specifies or returns the timing values for a video mode. modesinfo Returns the timing values and dotclocks for all of the available video modes. monitor Returns information about the monitor. x Specifies the desired X location for the viewport. x_return Returns the current X location of the viewport. y Specifies the desired Y location for the viewport. y_return Returns the current Y location of the viewport. STRUCTURES Video Mode Settings: typedef struct { unsigned short hdisplay; /* Number of display pixels horizontally */ unsigned short hsyncstart; /* Horizontal sync start */ unsigned short hsyncend; /* Horizontal sync end */ unsigned short htotal; /* Total horizontal pixels */ unsigned short vdisplay; /* Number of display pixels vertically */ unsigned short vsyncstart; /* Vertical sync start */ unsigned short vsyncend; /* Vertical sync start */ unsigned short vtotal; /* Total vertical pixels */ unsigned int flags; /* Mode flags */ int privsize; /* Size of private */ INT32 *private; /* Server privates */ } XF86VidModeModeLine; typedef struct { unsigned int dotclock; /* Pixel clock */ unsigned short hdisplay; /* Number of display pixels horizontally */ unsigned short hsyncstart; /* Horizontal sync start */ unsigned short hsyncend; /* Horizontal sync end */ unsigned short htotal; /* Total horizontal pixels */ unsigned short vdisplay; /* Number of display pixels vertically */ unsigned short vsyncstart; /* Vertical sync start */ unsigned short vsyncend; /* Vertical sync start */ unsigned short vtotal; /* Total vertical pixels */ unsigned int flags; /* Mode flags */ int privsize; /* Size of private */ INT32 *private; /* Server privates */ } XF86VidModeModeInfo; Monitor information: typedef struct { char* vendor; /* Name of manufacturer */ char* model; /* Model name */ float EMPTY; /* unused, for backward compatibility */ unsigned char nhsync; /* Number of horiz sync ranges */ XF86VidModeSyncRange* hsync;/* Horizontal sync ranges */ unsigned char nvsync; /* Number of vert sync ranges */ XF86VidModeSyncRange* vsync;/* Vertical sync ranges */ } XF86VidModeMonitor; typedef struct { float hi; /* Top of range */ float lo; /* Bottom of range */ } XF86VidModeSyncRange; typedef struct { int type; /* of event */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent req */ Display *display; /* Display the event was read from */ Window root; /* root window of event screen */ int state; /* What happened */ int kind; /* What happened */ Bool forced; /* extents of new region */ Time time; /* event timestamp */ } XF86VidModeNotifyEvent; typedef struct { float red; /* Red Gamma value */ float green; /* Green Gamma value */ float blue; /* Blue Gamma value */ } XF86VidModeGamma; DESCRIPTION These functions provide an interface to the server extension XFree86-VidModeExtension which allows the video modes to be queried and adjusted dynamically and mode switching to be controlled. Applications that use these functions must be linked with -lXxf86vm MODELINE FUNCTIONS The XF86VidModeGetModeLine function is used to query the settings for the currently selected video mode. The calling program should pass a pointer to a XF86VidModeModeLine structure that it has already allo- cated. The function fills in the fields of the structure. If there are any server private values (currently only applicable to the S3 server) the function will allocate storage for them. Therefore, if the privsize field is non-zero, the calling program should call Xfree(private) to free the storage. XF86VidModeGetAllModeLines returns the settings for all video modes. The calling program supplies the address of a pointer which will be set by the function to point to an array of XF86VidModeModeInfo structures. The memory occupied by the array is dynamically allocated by the XF86VidModeGetAllModeLines function and should be freed by the caller. The first element of the array corresponds to the current video mode. The XF86VidModeModModeLine function can be used to change the settings of the current video mode provided the requested settings are valid (e.g. they don't exceed the capabilities of the monitor). Modes can be deleted with the XF86VidModeDeleteModeLine function. The specified mode must match an existing mode. To be considered a match, all of the fields of the given XF86VidModeModeInfo structure must match, except the privsize and private fields. If the mode to be deleted is the current mode, a mode switch to the next mode will occur first. The last remaining mode can not be deleted. The validity of a mode can be checked with the XF86VidModeValidateMode- Line function. If the specified mode can be used by the server (i.e. meets all the constraints placed upon a mode by the combination of the server, card, and monitor) the function returns MODE_OK, otherwise it returns a value indicating the reason why the mode is invalid (as defined in xf86.h) MODE SWITCH FUNCTIONS When the function XF86VidModeSwitchMode is called, the server will change the video mode to next (or previous) video mode. The XF86VidMod- eSwitchToMode function can be used to switch directly to the specified mode. Matching is as specified in the description of the XF86VidMod- eAddModeLine function above. The XF86VidModeLockModeSwitch function can be used to allow or disallow mode switching whether the request to switch modes comes from a call to the XF86VidModeSwitchMode or XF86Vid- ModeSwitchToMode functions or from one of the mode switch key sequences. Note: Because of the asynchronous nature of the X protocol, a call to XFlush is needed if the application wants to see the mode change imme- diately. To be informed of the execution status of the request, a cus- tom error handler should be installed using XSetErrorHandler before calling the mode switching function. MONITOR FUNCTIONS Information known to the server about the monitor is returned by the XF86VidModeGetMonitor function. The hsync and vsync fields each point to an array of XF86VidModeSyncRange structures. The arrays contain nhsync and nvsync elements, respectively. The hi and low values will be equal if a discreate value was given in the XF86Config file. The vendor, model, hsync, and vsync fields point to dynamically allo- cated storage that should be freed by the caller. VIEWPORT FUNCTIONS The XF86VidModeGetViewPort and XF86VidModeSetViewPort functions can be used to, respectively, query and change the location of the upper left corner of the viewport into the virtual screen. OTHER FUNCTIONS The XF86VidModeQueryVersion function can be used to determine the ver- sion of the extension built into the server. The function XF86VidModeQueryExtension returns the lowest numbered error and event values assigned to the extension. BUGS The XF86VidModeSetClientVersion, XF86VidModeGetDotClocks, XF86VidMod- eGetGamma, XF86VidModeSetGamma, XF86VidModeSetGammaRamp, XF86VidMod- eGetGammaRamp, XF86VidModeGetGammaRampSize, and XF86VidModeGetPermis- sions functions need to be documented. In the meantime, check the source code for information about how to use them. SEE ALSO XFree86(1), XF86Config(5), XFlush(3), XSetErrorHandler(3), xvidtune(1) AUTHORS Kaleb Keithley, Jon Tombs, David Dawes, and Joe Moss X(7) X(7) NAME X - a portable, network-transparent window system SYNOPSIS The X Window System is a network transparent window system which runs on a wide range of computing and graphics machines. It should be rela- tively straightforward to build the X Consortium software distribution on most ANSI C and POSIX compliant systems. Commercial implementations are also available for a wide range of platforms. The X Consortium requests that the following names be used when refer- ring to this software: X X Window System X Version 11 X Window System, Version 11 X11 X Window System is a trademark of X Consortium, Inc. DESCRIPTION X Window System servers run on computers with bitmap displays. The server distributes user input to and accepts output requests from vari- ous client programs through a variety of different interprocess commu- nication channels. Although the most common case is for the client programs to be running on the same machine as the server, clients can be run transparently from other machines (including machines with dif- ferent architectures and operating systems) as well. X supports overlapping hierarchical subwindows and text and graphics operations, on both monochrome and color displays. For a full explana- tion of the functions that are available, see the Xlib - C Language X Interface manual, the X Window System Protocol specification, the X Toolkit Intrinsics - C Language Interface manual, and various toolkit documents. The number of programs that use X is quite large. Programs provided in the core X Consortium distribution include: a terminal emulator, xterm; a window manager, twm; a display manager, xdm; a console redirect pro- gram, xconsole; a mail interface, xmh; a bitmap editor, bitmap; resource listing/manipulation tools, appres, editres; access control programs, xauth, xhost, and iceauth; user preference setting programs, xrdb, xcmsdb, xset, xsetroot, xstdcmap, and xmodmap; clocks, xclock and oclock; a font displayer, (xfd; utilities for listing information about fonts, windows, and displays, xlsfonts, xwininfo, xlsclients, xdpyinfo, xlsatoms, and xprop; screen image manipulation utilities, xwd, xwud, and xmag; a performance measurement utility, x11perf; a font compiler, bdftopcf; a font server and related utilities, xfs, fsinfo, fslsfonts, fstobdf; a display server and related utilities, Xserver, rgb, mkfont- dir; remote execution utilities, rstart and xon; a clipboard manager, xclipboard; keyboard description compiler and related utilities, xkb- comp, xkbprint, xkbbell, xkbevd, xkbvleds, and xkbwatch; a utility to terminate clients, xkill; an optimized X protocol proxy, lbxproxy; a firewall security proxy, xfwp; a proxy manager to control them, proxym- ngr; a utility to find proxies, xfindproxy; Netscape Navigator Plug- ins, libxrx.so and libxrxnest.so; an RX MIME-type helper program, xrx; and a utility to cause part or all of the screen to be redrawn, xre- fresh. Many other utilities, window managers, games, toolkits, etc. are included as user-contributed software in the X Consortium distribution, or are available using anonymous ftp on the Internet. See your site administrator for details. STARTING UP There are two main ways of getting the X server and an initial set of client applications started. The particular method used depends on what operating system you are running and whether or not you use other window systems in addition to X. xdm (the X Display Manager) If you want to always have X running on your display, your site administrator can set your machine up to use the X Display Man- ager xdm. This program is typically started by the system at boot time and takes care of keeping the server running and get- ting users logged in. If you are running xdm, you will see a window on the screen welcoming you to the system and asking for your username and password. Simply type them in as you would at a normal terminal, pressing the Return key after each. If you make a mistake, xdm will display an error message and ask you to try again. After you have successfully logged in, xdm will start up your X environment. By default, if you have an executable file named .xsession in your home directory, xdm will treat it as a program (or shell script) to run to start up your initial clients (such as terminal emulators, clocks, a window manager, user settings for things like the background, the speed of the pointer, etc.). Your site administrator can provide details. xinit (run manually from the shell) Sites that support more than one window system might choose to use the xinit program for starting X manually. If this is true for your machine, your site administrator will probably have provided a program named "x11", "startx", or "xstart" that will do site-specific initialization (such as loading convenient default resources, running a window manager, displaying a clock, and starting several terminal emulators) in a nice way. If not, you can build such a script using the xinit program. This utility simply runs one user-specified program to start the server, runs another to start up any desired clients, and then waits for either to finish. Since either or both of the user-specified programs may be a shell script, this gives sub- stantial flexibility at the expense of a nice interface. For this reason, xinit is not intended for end users. DISPLAY NAMES From the user's perspective, every X server has a display name of the form: hostname:displaynumber.screennumber This information is used by the application to determine how it should connect to the server and which screen it should use by default (on displays with multiple monitors): hostname The hostname specifies the name of the machine to which the display is physically connected. If the hostname is not given, the most efficient way of communicating to a server on the same machine will be used. displaynumber The phrase "display" is usually used to refer to collection of monitors that share a common keyboard and pointer (mouse, tablet, etc.). Most workstations tend to only have one key- board, and therefore, only one display. Larger, multi-user systems, however, frequently have several displays so that more than one person can be doing graphics work at once. To avoid confusion, each display on a machine is assigned a display num- ber (beginning at 0) when the X server for that display is started. The display number must always be given in a display name. screennumber Some displays share a single keyboard and pointer among two or more monitors. Since each monitor has its own set of windows, each screen is assigned a screen number (beginning at 0) when the X server for that display is started. If the screen number is not given, screen 0 will be used. On POSIX systems, the default display name is stored in your DISPLAY environment variable. This variable is set automatically by the xterm terminal emulator. However, when you log into another machine on a network, you will need to set DISPLAY by hand to point to your display. For example, % setenv DISPLAY myws:0 $ DISPLAY=myws:0; export DISPLAY The xon script can be used to start an X program on a remote machine; it automatically sets the DISPLAY variable correctly. Finally, most X programs accept a command line option of -display dis- playname to temporarily override the contents of DISPLAY. This is most commonly used to pop windows on another person's screen or as part of a "remote shell" command to start an xterm pointing back to your display. For example, % xeyes -display joesws:0 -geometry 1000x1000+0+0 % rsh big xterm -display myws:0 -ls :/.../ An RGB Device specification is identified by the prefix "rgb:" and has the following syntax: rgb:// , , := h | hh | hhh | hhhh h := single hexadecimal digits Note that h indicates the value scaled in 4 bits, hh the value scaled in 8 bits, hhh the value scaled in 12 bits, and hhhh the value scaled in 16 bits, respectively. These values are passed directly to the X server, and are assumed to be gamma corrected. The eight primary colors can be represented as: black rgb:0/0/0 red rgb:ffff/0/0 green rgb:0/ffff/0 blue rgb:0/0/ffff yellow rgb:ffff/ffff/0 magenta rgb:ffff/0/ffff cyan rgb:0/ffff/ffff white rgb:ffff/ffff/ffff For backward compatibility, an older syntax for RGB Device is sup- ported, but its continued use is not encouraged. The syntax is an ini- tial sharp sign character followed by a numeric specification, in one of the following formats: #RGB (4 bits each) #RRGGBB (8 bits each) #RRRGGGBBB (12 bits each) #RRRRGGGGBBBB (16 bits each) The R, G, and B represent single hexadecimal digits. When fewer than 16 bits each are specified, they represent the most-significant bits of the value (unlike the "rgb:" syntax, in which values are scaled). For example, #3a7 is the same as #3000a0007000. An RGB intensity specification is identified by the prefix "rgbi:" and has the following syntax: rgbi:// The red, green, and blue are floating point values between 0.0 and 1.0, inclusive. They represent linear intensity values, with 1.0 indicating full intensity, 0.5 half intensity, and so on. These values will be gamma corrected by Xlib before being sent to the X server. The input format for these values is an optional sign, a string of numbers possi- bly containing a decimal point, and an optional exponent field contain- ing an E or e followed by a possibly signed integer string. The standard device-independent string specifications have the follow- ing syntax: CIEXYZ:// (none, 1, none) CIEuvY:// (~.6, ~.6, 1) CIExyY:// (~.75, ~.85, 1) CIELab:// (100, none, none) CIELuv:// (100, none, none) TekHVC:// (360, 100, 100) All of the values (C, H, V, X, Y, Z, a, b, u, v, y, x) are floating point values. Some of the values are constrained to be between zero and some upper bound; the upper bounds are given in parentheses above. The syntax for these values is an optional '+' or '-' sign, a string of digits possibly containing a decimal point, and an optional exponent field consisting of an 'E' or 'e' followed by an optional '+' or '-' followed by a string of digits. For more information on device independent color, see the Xlib refer- ence manual. KEYBOARDS The X keyboard model is broken into two layers: server-specific codes (called keycodes) which represent the physical keys, and server-inde- pendent symbols (called keysyms) which represent the letters or words that appear on the keys. Two tables are kept in the server for con- verting keycodes to keysyms: modifier list Some keys (such as Shift, Control, and Caps Lock) are known as modifier and are used to select different symbols that are attached to a single key (such as Shift-a generates a capital A, and Control-l generates a control character ^L). The server keeps a list of keycodes corresponding to the various modifier keys. Whenever a key is pressed or released, the server gener- ates an event that contains the keycode of the indicated key as well as a mask that specifies which of the modifier keys are currently pressed. Most servers set up this list to initially contain the various shift, control, and shift lock keys on the keyboard. keymap table Applications translate event keycodes and modifier masks into keysyms using a keysym table which contains one row for each keycode and one column for various modifier states. This table is initialized by the server to correspond to normal typewriter conventions. The exact semantics of how the table is inter- preted to produce keysyms depends on the particular program, libraries, and language input method used, but the following conventions for the first four keysyms in each row are gener- ally adhered to: The first four elements of the list are split into two groups of keysyms. Group 1 contains the first and second keysyms; Group 2 con- tains the third and fourth keysyms. Within each group, if the first element is alphabetic and the the second element is the special keysym NoSymbol, then the group is treated as equivalent to a group in which the first element is the lowercase letter and the second element is the uppercase letter. Switching between groups is controlled by the keysym named MODE SWITCH, by attaching that keysym to some key and attaching that key to any one of the modifiers Mod1 through Mod5. This modifier is called the ``group modifier.'' Group 1 is used when the group modifier is off, and Group 2 is used when the group modifier is on. Within a group, the modifier state determines which keysym to use. The first keysym is used when the Shift and Lock modifiers are off. The second keysym is used when the Shift modifier is on, when the Lock mod- ifier is on and the second keysym is uppercase alphabetic, or when the Lock modifier is on and is interpreted as ShiftLock. Otherwise, when the Lock modifier is on and is interpreted as CapsLock, the state of the Shift modifier is applied first to select a keysym; but if that keysym is lowercase alphabetic, then the corresponding uppercase keysym is used instead. OPTIONS Most X programs attempt to use the same names for command line options and arguments. All applications written with the X Toolkit Intrinsics automatically accept the following options: -display display This option specifies the name of the X server to use. -geometry geometry This option specifies the initial size and location of the win- dow. -bg color, -background color Either option specifies the color to use for the window back- ground. -bd color, -bordercolor color Either option specifies the color to use for the window border. -bw number, -borderwidth number Either option specifies the width in pixels of the window bor- der. -fg color, -foreground color Either option specifies the color to use for text or graphics. -fn font, -font font Either option specifies the font to use for displaying text. -iconic This option indicates that the user would prefer that the application's windows initially not be visible as if the win- dows had be immediately iconified by the user. Window managers may choose not to honor the application's request. -name This option specifies the name under which resources for the application should be found. This option is useful in shell aliases to distinguish between invocations of an application, without resorting to creating links to alter the executable file name. -rv, -reverse Either option indicates that the program should simulate reverse video if possible, often by swapping the foreground and background colors. Not all programs honor this or implement it correctly. It is usually only used on monochrome displays. +rv This option indicates that the program should not simulate reverse video. This is used to override any defaults since reverse video doesn't always work properly. -selectionTimeout This option specifies the timeout in milliseconds within which two communicating applications must respond to one another for a selection request. -synchronous This option indicates that requests to the X server should be sent synchronously, instead of asynchronously. Since Xlib nor- mally buffers requests to the server, errors do not necessarily get reported immediately after they occur. This option turns off the buffering so that the application can be debugged. It should never be used with a working program. -title string This option specifies the title to be used for this window. This information is sometimes used by a window manager to pro- vide some sort of header identifying the window. -xnllanguage language[_territory][.codeset] This option specifies the language, territory, and codeset for use in resolving resource and other filenames. -xrm resourcestring This option specifies a resource name and value to override any defaults. It is also very useful for setting resources that don't have explicit command line arguments. RESOURCES To make the tailoring of applications to personal preferences easier, X provides a mechanism for storing default values for program resources (e.g. background color, window title, etc.) Resources are specified as strings that are read in from various places when an application is run. Program components are named in a hierarchical fashion, with each node in the hierarchy identified by a class and an instance name. At the top level is the class and instance name of the application itself. By convention, the class name of the application is the same as the program name, but with the first letter capitalized (e.g. Bitmap or Emacs) although some programs that begin with the letter ``x'' also capitalize the second letter for historical reasons. The precise syntax for resources is: ResourceLine = Comment | IncludeFile | ResourceSpec | Comment = "!" {} IncludeFile = "#" WhiteSpace "include" WhiteSpace FileName WhiteSpace FileName = ResourceSpec = WhiteSpace ResourceName WhiteSpace ":" WhiteSpace Value ResourceName = [Binding] {Component Binding} ComponentName Binding = "." | "*" WhiteSpace = { | } Component = "?" | ComponentName ComponentName = NameChar {NameChar} NameChar = "a"-"z" | "A"-"Z" | "0"-"9" | "_" | "-" Value = {} Elements separated by vertical bar (|) are alternatives. Curly braces ({...}) indicate zero or more repetitions of the enclosed elements. Square brackets ([...]) indicate that the enclosed element is optional. Quotes ("...") are used around literal characters. IncludeFile lines are interpreted by replacing the line with the con- tents of the specified file. The word "include" must be in lowercase. The filename is interpreted relative to the directory of the file in which the line occurs (for example, if the filename contains no direc- tory or contains a relative directory specification). If a ResourceName contains a contiguous sequence of two or more Binding characters, the sequence will be replaced with single "." character if the sequence contains only "." characters, otherwise the sequence will be replaced with a single "*" character. A resource database never contains more than one entry for a given ResourceName. If a resource file contains multiple lines with the same ResourceName, the last line in the file is used. Any whitespace character before or after the name or colon in a ResourceSpec are ignored. To allow a Value to begin with whitespace, the two-character sequence ``\space'' (backslash followed by space) is recognized and replaced by a space character, and the two-character sequence ``\tab'' (backslash followed by horizontal tab) is recognized and replaced by a horizontal tab character. To allow a Value to con- tain embedded newline characters, the two-character sequence ``\n'' is recognized and replaced by a newline character. To allow a Value to be broken across multiple lines in a text file, the two-character sequence ``\newline'' (backslash followed by newline) is recognized and removed from the value. To allow a Value to contain arbitrary character codes, the four-character sequence ``\nnn'', where each n is a digit character in the range of ``0''-``7'', is recognized and replaced with a single byte that contains the octal value specified by the sequence. Finally, the two-character sequence ``\\'' is recognized and replaced with a single backslash. When an application looks for the value of a resource, it specifies a complete path in the hierarchy, with both class and instance names. However, resource values are usually given with only partially speci- fied names and classes, using pattern matching constructs. An asterisk (*) is a loose binding and is used to represent any number of interven- ing components, including none. A period (.) is a tight binding and is used to separate immediately adjacent components. A question mark (?) is used to match any single component name or class. A database entry cannot end in a loose binding; the final component (which cannot be "?") must be specified. The lookup algorithm searches the resource database for the entry that most closely matches (is most specific for) the full name and class being queried. When more than one database entry matches the full name and class, precedence rules are used to select just one. The full name and class are scanned from left to right (from highest level in the hierarchy to lowest), one component at a time. At each level, the corresponding component and/or binding of each matching entry is determined, and these matching components and bindings are compared according to precedence rules. Each of the rules is applied at each level, before moving to the next level, until a rule selects a single entry over all others. The rules (in order of precedence) are: 1. An entry that contains a matching component (whether name, class, or "?") takes precedence over entries that elide the level (that is, entries that match the level in a loose binding). 2. An entry with a matching name takes precedence over both entries with a matching class and entries that match using "?". An entry with a matching class takes precedence over entries that match using "?". 3. An entry preceded by a tight binding takes precedence over entries preceded by a loose binding. Programs based on the X Tookit Intrinsics obtain resources from the following sources (other programs usually support some subset of these sources): RESOURCE_MANAGER root window property Any global resources that should be available to clients on all machines should be stored in the RESOURCE_MANAGER property on the root window of the first screen using the xrdb program. This is frequently taken care of when the user starts up X through the display manager or xinit. SCREEN_RESOURCES root window property Any resources specific to a given screen (e.g. colors) that should be available to clients on all machines should be stored in the SCREEN_RESOURCES property on the root window of that screen. The xrdb program will sort resources automatically and place them in RESOURCE_MANAGER or SCREEN_RESOURCES, as appro- priate. application-specific files Directories named by the environment variable XUSERFILESEARCH- PATH or the environment variable XAPPLRESDIR (which names a single directory and should end with a '/' on POSIX systems), plus directories in a standard place (usually under /usr/X11R6/lib/X11/, but this can be overridden with the XFILE- SEARCHPATH environment variable) are searched for for applica- tion-specific resources. For example, application default resources are usually kept in /usr/X11R6/lib/X11/app-defaults/. See the X Toolkit Intrinsics - C Language Interface manual for details. XENVIRONMENT Any user- and machine-specific resources may be specified by setting the XENVIRONMENT environment variable to the name of a resource file to be loaded by all applications. If this vari- able is not defined, a file named $HOME/.Xdefaults-hostname is looked for instead, where hostname is the name of the host where the application is executing. -xrm resourcestring Resources can also be specified from the command line. The resourcestring is a single resource name and value as shown above. Note that if the string contains characters interpreted by the shell (e.g., asterisk), they must be quoted. Any number of -xrm arguments may be given on the command line. Program resources are organized into groups called classes, so that collections of individual resources (each of which are called instances) can be set all at once. By convention, the instance name of a resource begins with a lowercase letter and class name with an upper case letter. Multiple word resources are concatenated with the first letter of the succeeding words capitalized. Applications written with the X Toolkit Intrinsics will have at least the following resources: background (class Background) This resource specifies the color to use for the window back- ground. borderWidth (class BorderWidth) This resource specifies the width in pixels of the window bor- der. borderColor (class BorderColor) This resource specifies the color to use for the window border. Most applications using the X Toolkit Intrinsics also have the resource foreground (class Foreground), specifying the color to use for text and graphics within the window. By combining class and instance specifications, application preferences can be set quickly and easily. Users of color displays will frequently want to set Background and Foreground classes to particular defaults. Specific color instances such as text cursors can then be overridden without having to define all of the related resources. For example, bitmap*Dashed: off XTerm*cursorColor: gold XTerm*multiScroll: on XTerm*jumpScroll: on XTerm*reverseWrap: on XTerm*curses: on XTerm*Font: 6x10 XTerm*scrollBar: on XTerm*scrollbar*thickness: 5 XTerm*multiClickTime: 500 XTerm*charClass: 33:48,37:48,45-47:48,64:48 XTerm*cutNewline: off XTerm*cutToBeginningOfLine: off XTerm*titeInhibit: on XTerm*ttyModes: intr ^c erase ^? kill ^u XLoad*Background: gold XLoad*Foreground: red XLoad*highlight: black XLoad*borderWidth: 0 emacs*Geometry: 80x65-0-0 emacs*Background: rgb:5b/76/86 emacs*Foreground: white emacs*Cursor: white emacs*BorderColor: white emacs*Font: 6x10 xmag*geometry: -0-0 xmag*borderColor: white If these resources were stored in a file called .Xresources in your home directory, they could be added to any existing resources in the server with the following command: % xrdb -merge $HOME/.Xresources This is frequently how user-friendly startup scripts merge user-spe- cific defaults into any site-wide defaults. All sites are encouraged to set up convenient ways of automatically loading resources. See the Xlib manual section Resource Manager Functions for more information. ENVIRONMENT DISPLAY This is the only mandatory environment variable. It must point to an X server. See section "Display Names" above. XAUTHORITY This must point to a file that contains authorization data. The default is $HOME/.Xauthority. See Xsecurity(7), xauth(1), xdm(1), Xau(3). ICEAUTHORITY This must point to a file that contains authorization data. The default is $HOME/.ICEauthority. LC_ALL, LC_CTYPE, LANG The first non-empty value among these three determines the cur- rent locale's facet for character handling, and in particular the default text encoding. See locale(7), setlocale(3), locale(1). XMODIFIERS This variable can be set to contain additional information important for the current locale setting. Typically set to @im= to enable a particular input method. See XSetLocaleModifiers(3). XLOCALEDIR This must point to a directory containing the locale.alias file and Compose and XLC_LOCALE file hierarchies for all locales. The default value is __projectroot__/lib/X11/locale. XENVIRONMENT This must point to a file containing X resources. The default is $HOME/.Xdefaults-. Unlike __projectroot__/lib/X11/Xre- sources, it is consulted each time an X application starts. XFILESEARCHPATH This must contain a colon separated list of path templates, where libXt will search for resource files. The default value consists of /usr/X11R6/lib/X11/%L/%T/%N%C%S:\ /usr/X11R6/lib/X11/%l/%T/%N%C%S:\ /usr/X11R6/lib/X11/%T/%N%C%S:\ /usr/X11R6/lib/X11/%L/%T/%N%S:\ /usr/X11R6/lib/X11/%l/%T/%N%S:\ /usr/X11R6/lib/X11/%T/%N%S A path template is transformed to a pathname by substituting: %N => name (basename) being searched for %T => type (dirname) being searched for %S => suffix being searched for %C => value of the resource "customization" (class "Customization") %L => the locale name %l => the locale's language (part before '_') %t => the locale's territory (part after '_` but before '.') %c => the locale's encoding (part after '.') XUSERFILESEARCHPATH This must contain a colon separated list of path templates, where libXt will search for user dependent resource files. The default value is: $XAPPLRESDIR/%L/%N%C:\ $XAPPLRESDIR/%l/%N%C:\ $XAPPLRESDIR/%N%C:\ $HOME/%N%C:\ $XAPPLRESDIR/%L/%N:\ $XAPPLRESDIR/%l/%N:\ $XAPPLRESDIR/%N:\ $HOME/%N $XAPPLRESDIR defaults to $HOME, see below. A path template is transformed to a pathname by substituting: %N => name (basename) being searched for %T => type (dirname) being searched for %S => suffix being searched for %C => value of the resource "customization" (class "Customization") %L => the locale name %l => the locale's language (part before '_') %t => the locale's territory (part after '_` but before '.') %c => the locale's encoding (part after '.') XAPPLRESDIR This must point to a base directory where the user stores his application dependent resource files. The default value is $HOME. Only used if XUSERFILESEARCHPATH is not set. XKEYSYMDB This must point to a file containing nonstandard keysym defini- tions. The default value is __projectroot__/lib/X11/XKeysymDB. XCMSDB This must point to a color name database file. The default value is __projectroot__/lib/X11/Xcms.txt. XFT_CONFIG This must point to a configuration file for the Xft library. The default value is __projectroot__/lib/X11/XftConfig. RESOURCE_NAME This serves as main identifier for resources belonging to the program being executed. It defaults to the basename of pathname of the program. SESSION_MANAGER Denotes the session manager the application should connect. See xsm(1), rstart(1). XF86BIGFONT_DISABLE Setting this variable to a non-empty value disables the XFree86-Bigfont extension. This extension is a mechanism to reduce the memory consumption of big fonts by use of shared mem- ory. XKB_FORCE XKB_DISABLE XKB_DEBUG _XKB_CHARSET _XKB_LOCALE_CHARSETS _XKB_OPTIONS_ENABLE _XKB_LATIN1_LOOKUP _XKB_CONSUME_LOOKUP_MODS _XKB_CONSUME_SHIFT_AND_LOCK _XKB_IGNORE_NEW_KEYBOARDS _XKB_CONTROL_FALLBACK _XKB_COMP_LED _XKB_COMP_FAIL_BEEP These variables influence the X Keyboard Extension. EXAMPLES The following is a collection of sample command lines for some of the more frequently used commands. For more information on a particular command, please refer to that command's manual page. % xrdb $HOME/.Xresources % xmodmap -e "keysym BackSpace = Delete" % mkfontdir /usr/local/lib/X11/otherfonts % xset fp+ /usr/local/lib/X11/otherfonts % xmodmap $HOME/.keymap.km % xsetroot -solid 'rgbi:.8/.8/.8' % xset b 100 400 c 50 s 1800 r on % xset q % twm % xmag % xclock -geometry 48x48-0+0 -bg blue -fg white % xeyes -geometry 48x48-48+0 % xbiff -update 20 % xlsfonts '*helvetica*' % xwininfo -root % xdpyinfo -display joesworkstation:0 % xhost -joesworkstation % xrefresh % xwd | xwud % bitmap companylogo.bm 32x32 % xcalc -bg blue -fg magenta % xterm -geometry 80x66-0-0 -name myxterm $* % xon filesysmachine xload DIAGNOSTICS A wide variety of error messages are generated from various programs. The default error handler in Xlib (also used by many toolkits) uses standard resources to construct diagnostic messages when errors occur. The defaults for these messages are usually stored in __project- root__/lib/X11/XErrorDB. If this file is not present, error messages will be rather terse and cryptic. When the X Toolkit Intrinsics encounter errors converting resource strings to the appropriate internal format, no error messages are usu- ally printed. This is convenient when it is desirable to have one set of resources across a variety of displays (e.g. color vs. monochrome, lots of fonts vs. very few, etc.), although it can pose problems for trying to determine why an application might be failing. This behavior can be overridden by the setting the StringConversionsWarning resource. To force the X Toolkit Intrinsics to always print string conversion error messages, the following resource should be placed in the file that gets loaded onto the RESOURCE_MANAGER property using the xrdb pro- gram (frequently called .Xresources or .Xres in the user's home direc- tory): *StringConversionWarnings: on To have conversion messages printed for just a particular application, the appropriate instance name can be placed before the asterisk: xterm*StringConversionWarnings: on SEE ALSO XStandards(7), Xsecurity(7), appres(1), bdftopcf(1), bitmap(1), editres(1), fsinfo(1), fslsfonts(1), fstobdf(1), iceauth(1), imake(1), lbxproxy(1), makedepend(1), mkfontdir(1), oclock(1), proxymngr(1), rgb(1), resize(1), rstart(1), smproxy(1), twm(1), x11perf(1), x11perf- comp(1), xauth(1), xclipboard(1), xclock(1), xcmsdb(1), xconsole(1), xdm(1), xdpyinfo(1), xfd(1), xfindproxy(1), xfs(1), xfwp(1), xhost(1), xinit(1), xkbbell(1), xkbcomp(1), xkbevd(1), xkbprint(1), xkbvleds(1), xkbwatch(1), xkill(1), xlogo(1), xlsatoms(1), xlsclients(1), xls- fonts(1), xmag(1), xmh(1), xmodmap(1), xon(1), xprop(1), xrdb(1), xre- fresh(1), xrx(1), xset(1), xsetroot(1), xsm(1), xstdcmap(1), xterm(1), xwd(1), xwininfo(1), xwud(1). Xserver(1), Xdec(1), XmacII(1), Xsun(1), Xnest(1), Xvfb(1), XFree86(1), XDarwin(1), kbd_mode(1), Xlib - C Lan- guage X Interface, and X Toolkit Intrinsics - C Language Interface TRADEMARKS X Window System is a trademark of X Consortium, Inc. AUTHORS A cast of thousands, literally. The Release 6.3 distribution is brought to you by X Consortium, Inc. The names of all people who made it a reality will be found in the individual documents and source files. The staff members at the X Consortium responsible for this release are: Donna Converse (emeritus), Stephen Gildea (emeritus), Kaleb Keithley, Matt Landau (emeritus), Ralph Mor (emeritus), Janet O'Halloran, Bob Scheifler, Ralph Swick, Dave Wiggins (emeritus), and Reed Augliere. The X Window System standard was originally developed at the Laboratory for Computer Science at the Massachusetts Institute of Technology, and all rights thereto were assigned to the X Consortium on January 1, 1994. X Consortium, Inc. closed its doors on December 31, 1996. All rights to the X Window System have been assigned to the Open Software Foundation. XSTANDARDS(7) XSTANDARDS(7) NAME XStandards - X Consortium Standards and X Project Team Specifications SYNOPSIS The major goal of the X Consortium was to promote cooperation within the computer industry in the creation of standard software interfaces at all layers in the X Window System environment. The X Consortium produced standards - documents which defined network protocols, pro- gramming interfaces, and other aspects of the X environment. These standards continue to exist in The Open Group's X Project Team releases. The X Project Team produces specifications. Like X Consor- tium Standards, these are documents which define network protocols, programming interfaces, and other aspects of the X environment. Under the aegis of The Open Group, X Consortium standards, X Project Team specifications, and other specifications are the basis for portions of The Open Group's various CAE specifications. The status of various standards, specifications, and the software in the X11R6.4 distribution, is explained below. STANDARDS The following documents are X Consortium standards: X Window System Protocol X Version 11, Release 6.4 Robert W. Scheifler Xlib - C Language X Interface X Version 11, Release 6.4 James Gettys, Robert W. Scheifler, Ron Newman X Toolkit Intrinsics - C Language Interface X Version 11, Release 6.4 Joel McCormack, Paul Asente, Ralph R. Swick, Donna Converse Bitmap Distribution Format Version 2.1 X Version 11, Release 6.4 Inter-Client Communication Conventions Manual Version 2.0 X Version 11, Release 6.4 David Rosenthal, Stuart W. Marks Compound Text Encoding Version 1.1 X Version 11, Release 6.4 Robert W. Scheifler X Logical Font Description Conventions Version 1.5 X Version 11, Release 6.4 Jim Flowers, Stephen Gildea X Display Manager Control Protocol Version 1.0 X Version 11, Release 6.4 Keith Packard X11 Nonrectangular Window Shape Extension Version 1.0 X Version 11, Release 6.4 Keith Packard X11 Input Extension Protocol Specification Version 1.0 X Version 11, Release 6.4 George Sachs, Mark Patrick X11 Input Extension Library Specification X Version 11, Release 6.4 Mark Patrick, George Sachs The X Font Service Protocol Version 2.0 X Version 11, Release 6.4 Jim Fulton Inter-Client Exchange (ICE) Protocol Version 1.0 X Version 11, Release 6.4 Robert Scheifler, Jordan Brown Inter-Client Exchange (ICE) Library Version 1.0 X Version 11, Release 6.4 Ralph Mor X Session Management Protocol Version 1.0 X Version 11, Release 6.4 Mike Wexler X Session Management Library Version 1.0 X Version 11, Release 6.4 Ralph Mor The Input Method Protocol Version 1.0 X Version 11, Release 6.4 Masahiko Narita, Hideki Hiura X Synchronization Extension Version 3.0 X Version 11, Release 6.4 Tim Glauert, Dave Carver, Jim Gettys, David P. Wiggins XTEST Extension Version 2.2 Kieron Drake Big Requests Extension Version 2.0 X Version 11, Release 6.4 Bob Scheifler XC-MISC Extension Version 1.1 X Version 11, Release 6.4 Bob Scheifler, Dave Wiggins Double Buffer Extension Version 1.0 Ian Elliott, David P. Wiggins Record Extension Protocol Version 1.13 Martha Zimet, Stephen Gildea Record Extension Library Version 1.13 Martha Zimet, Stephen Gildea X Keyboard Extension Protocol X Version 11, Release 6.4 Erik Fortune X Keyboard Extension Library X Version 11, Release 6.4 Amber J. Benson, Gary Aitken, Erik Fortune, Donna Converse, George Sachs, and Will Walker X Print Extension Protocol X Version 11, Release 6.4 X Print Extension Library X Version 11, Release 6.4 X Application Group Extension Protocol and Library Version 1.0 X Version 11, Release 6.4 Kaleb Keithley X Security Extension Protocol and Library Version 4.0 X Version 11, Release 6.4 Dave Wiggins X Proxy Manager Protocol X Version 11, Release 6.4 Ralph Swick LBX Extension Protocol and Library X Version 11, Release 6.4 Keith Packard, Dave Lemke, Donna Converse, Ralph Mor, Ray Tice Remote Execution MIME Type Version 1.0 X Version 11, Release 6.4 Arnaud Le Hors SPECIFICATIONS The following documents are X Project Team specifications: Colormap Utilization Policy and Extension Version 1.0 Kaleb Keithley Extended Visual Information Extension Version 1.0 Peter Daifuku X Display Power Management (DPMS) Extension Protocol and Library Version 1.0 Rob Lembree INCLUDE FILES The following include files are part of the Xlib standard. The following include files are part of the X Toolkit Intrinsics stan- dard. The following include file is part of the Nonrectangular Window Shape Extension standard. The following include files are part of the X Input Extension standard. The following include files are part of the ICElib standard. The following include files are part of the SMlib standard. The following include file is part of the Synchronization standard. The following include file is part of the XTEST standard. The following include file is part of the Double Buffer Extension stan- dard. The following include file is part of the Record Library standard. The following include files are part of the X Keyboard Extension Library standard. The following include files are part of the X Print Extension Library standard. The following include files are part of the X Application Group Exten- sion Library standard. The following include files are part of the X Security Extension Library standard. The following include files are part of the LBX Extension library stan- dard. The following include files are part of the Colormap Utilization Policy and Extention specification. The following include files are part of the Extended Visual Information specification. The following include files are part of the X Display Management Sig- naling Extension specification. NON STANDARDS The X11R6.4 distribution contains sample implementations, not reference implementations. Although much of the code is believed to be correct, the code should be assumed to be in error wherever it conflicts with the specification. The only X Consortium standards are the ones listed above. No other documents, include files, or software in X11R6.4 carry special status within the X Consortium. For example, none of the following are stan- dards: internal interfaces of the sample server; the MIT-SHM extension; the Athena Widget Set; the Xmu library; the Xau library; the RGB data- base; the X Locale database; the fonts distributed with X11R6.4; the applications distributed with X11R6.4; the include files , , , , , , , and ; the bitmap files in . The Multi-Buffering extension was a draft standard of the X Consortium but has been superseded by DBE as a standard. X REGISTRY The X Consortium maintained a registry of certain X-related items, to aid in avoiding conflicts and to aid in sharing of such items. The registry is published as part of the X Consortium software release. The latest version may also be available by sending a message to xstuff@x.org. The message can have a subject line and no body, or a single-line body and no subject, in either case the line looking like: send docs registry The X Registry and the names in it are not X Consortium standards. XSECURITY(7) XSECURITY(7) NAME Xsecurity - X display access control SYNOPSIS X provides mechanism for implementing many access control systems. The sample implementation includes five mechanisms: Host Access Simple host-based access control. MIT-MAGIC-COOKIE-1 Shared plain-text "cookies". XDM-AUTHORIZATION-1 Secure DES based private-keys. SUN-DES-1 Based on Sun's secure rpc system. MIT-KERBEROS-5 Kerberos Version 5 user-to-user. ACCESS SYSTEM DESCRIPTIONS Host Access Any client on a host in the host access control list is allowed access to the X server. This system can work reasonably well in an environment where everyone trusts everyone, or when only a single person can log in to a given machine, and is easy to use when the list of hosts used is small. This system does not work well when multiple people can log in to a single machine and mutual trust does not exist. The list of allowed hosts is stored in the X server and can be changed with the xhost com- mand. When using the more secure mechanisms listed below, the host list is normally configured to be the empty list, so that only authorized programs can connect to the display. MIT-MAGIC-COOKIE-1 When using MIT-MAGIC-COOKIE-1, the client sends a 128 bit "cookie" along with the connection setup information. If the cookie presented by the client matches one that the X server has, the connection is allowed access. The cookie is chosen so that it is hard to guess; xdm generates such cookies automati- cally when this form of access control is used. The user's copy of the cookie is usually stored in the .Xauthority file in the home directory, although the environment variable XAUTHORITY can be used to specify an alternate location. Xdm automatically passes a cookie to the server for each new login session, and stores the cookie in the user file at login. The cookie is transmitted on the network without encryption, so there is nothing to prevent a network snooper from obtaining the data and using it to gain access to the X server. This system is useful in an environment where many users are running appli- cations on the same machine and want to avoid interference from each other, with the caveat that this control is only as good as the access control to the physical network. In environments where network-level snooping is difficult, this system can work reasonably well. XDM-AUTHORIZATION-1 Sites who compile with DES support can use a DES-based access control mechanism called XDM-AUTHORIZATION-1. It is similar in usage to MIT-MAGIC-COOKIE-1 in that a key is stored in the .Xau- thority file and is shared with the X server. However, this key consists of two parts - a 56 bit DES encryption key and 64 bits of random data used as the authenticator. When connecting to the X server, the application generates 192 bits of data by combining the current time in seconds (since 00:00 1/1/1970 GMT) along with 48 bits of "identifier". For TCP/IPv4 connections, the identifier is the address plus port number; for local connections it is the process ID and 32 bits to form a unique id (in case multiple connections to the same server are made from a single process). This 192 bit packet is then encrypted using the DES key and sent to the X server, which is able to verify if the requestor is authorized to connect by decrypting with the same DES key and validating the authentica- tor and additional data. This system is useful in many environ- ments where host-based access control is inappropriate and where network security cannot be ensured. SUN-DES-1 Recent versions of SunOS (and some other systems) have included a secure public key remote procedure call system. This system is based on the notion of a network principal; a user name and NIS domain pair. Using this system, the X server can securely discover the actual user name of the requesting process. It involves encrypting data with the X server's public key, and so the identity of the user who started the X server is needed for this; this identity is stored in the .Xauthority file. By extending the semantics of "host address" to include this notion of network principal, this form of access control is very easy to use. To allow access by a new user, use xhost. For example, xhost keith@ ruth@mit.edu adds "keith" from the NIS domain of the local machine, and "ruth" in the "mit.edu" NIS domain. For keith or ruth to suc- cessfully connect to the display, they must add the principal who started the server to their .Xauthority file. For example: xauth add expo.lcs.mit.edu:0 SUN-DES-1 unix.expo.lcs.mit.edu@our.domain.edu This system only works on machines which support Secure RPC, and only for users which have set up the appropriate public/private key pairs on their system. See the Secure RPC documentation for details. To access the display from a remote host, you may have to do a keylogin on the remote host first. MIT-KERBEROS-5 Kerberos is a network-based authentication scheme developed by MIT for Project Athena. It allows mutually suspicious princi- pals to authenticate each other as long as each trusts a third party, Kerberos. Each principal has a secret key known only to it and Kerberos. Principals includes servers, such as an FTP server or X server, and human users, whose key is their pass- word. Users gain access to services by getting Kerberos tickets for those services from a Kerberos server. Since the X server has no place to store a secret key, it shares keys with the user who logs in. X authentication thus uses the user-to-user scheme of Kerberos version 5. When you log in via xdm, xdm will use your password to obtain the initial Kerberos tickets. xdm stores the tickets in a cre- dentials cache file and sets the environment variable KRB5CCNAME to point to the file. The credentials cache is destroyed when the session ends to reduce the chance of the tickets being stolen before they expire. Since Kerberos is a user-based authorization protocol, like the SUN-DES-1 protocol, the owner of a display can enable and dis- able specific users, or Kerberos principals. The xhost client is used to enable or disable authorization. For example, xhost krb5:judy krb5:gildea@x.org adds "judy" from the Kerberos realm of the local machine, and "gildea" from the "x.org" realm. THE AUTHORIZATION FILE Except for Host Access control, each of these systems uses data stored in the .Xauthority file to generate the correct authorization informa- tion to pass along to the X server at connection setup. MIT-MAGIC- COOKIE-1 and XDM-AUTHORIZATION-1 store secret data in the file; so any- one who can read the file can gain access to the X server. SUN-DES-1 stores only the identity of the principal who started the server (unix.hostname@domain when the server is started by xdm), and so it is not useful to anyone not authorized to connect to the server. Each entry in the .Xauthority file matches a certain connection family (TCP/IP, DECnet or local connections) and X display name (hostname plus display number). This allows multiple authorization entries for dif- ferent displays to share the same data file. A special connection fam- ily (FamilyWild, value 65535) causes an entry to match every display, allowing the entry to be used for all connections. Each entry addi- tionally contains the authorization name and whatever private autho- rization data is needed by that authorization type to generate the cor- rect information at connection setup time. The xauth program manipulates the .Xauthority file format. It under- stands the semantics of the connection families and address formats, displaying them in an easy to understand format. It also understands that SUN-DES-1 and MIT-KERBEROS-5 use string values for the authoriza- tion data, and displays them appropriately. The X server (when running on a workstation) reads authorization infor- mation from a file name passed on the command line with the -auth option (see the Xserver manual page). The authorization entries in the file are used to control access to the server. In each of the autho- rization schemes listed above, the data needed by the server to ini- tialize an authorization scheme is identical to the data needed by the client to generate the appropriate authorization information, so the same file can be used by both processes. This is especially useful when xinit is used. MIT-MAGIC-COOKIE-1 This system uses 128 bits of data shared between the user and the X server. Any collection of bits can be used. Xdm gener- ates these keys using a cryptographically secure pseudo random number generator, and so the key to the next session cannot be computed from the current session key. XDM-AUTHORIZATION-1 This system uses two pieces of information. First, 64 bits of random data, second a 56 bit DES encryption key (again, random data) stored in 8 bytes, the last byte of which is ignored. Xdm generates these keys using the same random number generator as is used for MIT-MAGIC-COOKIE-1. SUN-DES-1 This system needs a string representation of the principal which identifies the associated X server. This information is used to encrypt the client's authority information when it is sent to the X server. When xdm starts the X server, it uses the root principal for the machine on which it is running (unix.host- name@domain, e.g., "unix.expire.lcs.mit.edu@our.domain.edu"). Putting the correct principal name in the .Xauthority file causes Xlib to generate the appropriate authorization informa- tion using the secure RPC library. MIT-KERBEROS-5 Kerberos reads tickets from the cache pointed to by the KRB5CCNAME environment variable, so does not use any data from the .Xauthority file. An entry with no data must still exist to tell clients that MIT-KERBEROS-5 is available. Unlike the .Xauthority file for clients, the authority file passed by xdm to a local X server (with ``-auth filename'', see xdm(1)) does contain the name of the credentials cache, since the X server will not have the KRB5CCNAME environment variable set. The data of the MIT-KERBEROS-5 entry is the credentials cache name and has the form ``UU:FILE:filename'', where filename is the name of the credentials cache file created by xdm. Note again that this form is not used by clients. FILES .Xauthority SEE ALSO X(7), xdm(1), xauth(1), xhost(1), xinit(1), Xserver(1) APPRES(1) APPRES(1) NAME appres - list X application resource database SYNOPSIS appres [[class [instance]] [-1] [toolkitoptions] DESCRIPTION The appres program prints the resources seen by an application (or sub- hierarchy of an application) with the specified class and instance names. It can be used to determine which resources a particular pro- gram will load. For example, % appres XTerm will list the resources that any xterm program will load. If no appli- cation class is specified, the class -AppResTest- is used. To match a particular instance name, specify an instance name explic- itly after the class name, or use the normal Xt toolkit option. For example, % appres XTerm myxterm or % appres XTerm -name myxterm To list resources that match a subhierarchy of an application, specify hierarchical class and instance names. The number of class and instance components must be equal, and the instance name should not be specified with a toolkit option. For example, % appres Xman.TopLevelShell.Form xman.topBox.form will list the resources of widgets of xman topBox hierarchy. To list just the resources matching a specific level in the hierarchy, use the -1 option. For example, % appres XTerm.VT100 xterm.vt100 -1 will list the resources matching the xterm vt100 widget. SEE ALSO X(7), xrdb(1), listres(1) AUTHOR Jim Fulton, MIT X Consortium BDFTOPCF(1) BDFTOPCF(1) NAME bdftopcf - convert X font from Bitmap Distribution Format to Portable Compiled Format SYNOPSIS bdftopcf [ -pn ] [ -un ] [ -m ] [ -l ] [ -M ] [ -L ] [ -t ] [ -i ] [ -o outputfile ] fontfile.bdf DESCRIPTION Bdftopcf is a font compiler for the X server and font server. Fonts in Portable Compiled Format can be read by any architecture, although the file is structured to allow one particular architecture to read them directly without reformatting. This allows fast reading on the appro- priate machine, but the files are still portable (but read more slowly) on other machines. OPTIONS -pn Sets the font glyph padding. Each glyph in the font will have each scanline padded in to a multiple of n bytes, where n is 1, 2, 4 or 8. -un Sets the font scanline unit. When the font bit order is dif- ferent from the font byte order, the scanline unit n describes what unit of data (in bytes) are to be swapped; the unit i can be 1, 2 or 4 bytes. -m Sets the font bit order to MSB (most significant bit) first. Bits for each glyph will be placed in this order; i.e., the left most bit on the screen will be in the highest valued bit in each unit. -l Sets the font bit order to LSB (least significant bit) first. The left most bit on the screen will be in the lowest valued bit in each unit. -M Sets the font byte order to MSB first. All multi-byte data in the file (metrics, bitmaps and everything else) will be written most significant byte first. -L Sets the font byte order to LSB first. All multi-byte data in the file (metrics, bitmaps and everything else) will be written least significant byte first. -t When this option is specified, bdftopcf will convert fonts into "terminal" fonts when possible. A terminal font has each glyph image padded to the same size; the X server can usually render these types of fonts more quickly. -i This option inhibits the normal computation of ink metrics. When a font has glyph images which do not fill the bitmap image (i.e., the "on" pixels don't extend to the edges of the met- rics) bdftopcf computes the actual ink metrics and places them in the .pcf file; the -t option inhibits this behaviour. -o output-file-name By default bdftopcf writes the pcf file to standard output; this option gives the name of a file to be used instead. SEE ALSO X(7) AUTHOR Keith Packard, MIT X Consortium bdftruncate(1) XFree86 bdftruncate(1) NAME bdftruncate - generate truncated BDF font from ISO 10646-1-encoded BDF font SYNOPSIS bdftruncate threshold < source.bdf > destination.bdf DESCRIPTION bdftruncate allows one to generate from an ISO10646-1 encoded BDF font other ISO10646-1 BDF fonts in which all characters above a threshold code value are stored unencoded. This is often desirable because the Xlib API and X11 protocol data structures used for representing font metric information are extremely inefficient when handling sparsely populated fonts. EXAMPLE The command bdftruncate 0x3200 < 6x13.bdf > 6x13t.bdf will generate the file 6x13t.bdf in which all glyphs with codes >= 0x3200 will only be stored unencoded (i.e., they are encoded at code- point -1). SEE ALSO ucs2any(1) AUTHOR bdftruncate was written by Markus Kuhn. Branden Robinson wrote this manual page, originally for the Debian Project. beforelight(1) beforelight(1) NAME beforelight - screen saver SYNOPSIS beforelight [ -toolkitoption ... ] DESCRIPTION The beforelight program is a sample implementation of a screen saver for X servers supporting the MIT-SCREEN-SAVER extension. AUTHORS Keith Packard, MIT X Consortium. BITMAP(1) BITMAP(1) NAME bitmap, bmtoa, atobm - bitmap editor and converter utilities for the X Window System SYNOPSIS bitmap [ -options ... ] [ filename ] [ basename ] bmtoa [ -chars ... ] [ filename ] atobm [ -chars cc ] [ -name variable ] [ -xhot number ] [ -yhot number ] [ filename ] DESCRIPTION The bitmap program is a rudimentary tool for creating or editing rect- angular images made up of 1's and 0's. Bitmaps are used in X for defining clipping regions, cursor shapes, icon shapes, and tile and stipple patterns. The bmtoa and atobm filters convert bitmap files (FILE FORMAT) to and from ASCII strings. They are most commonly used to quickly print out bitmaps and to generate versions for including in text. COMMAND LINE OPTIONS Bitmap supports the standard X Toolkit command line arguments (see X(1)). The following additional arguments are supported as well. -size WIDTHxHEIGHT Specifies size of the grid in squares. -sw dimension Specifies the width of squares in pixels. -sh dimension Specifies the height of squares in pixels. -gt dimension Grid tolerance. If the square dimensions fall below the specified value, grid will be automatically turned off. -grid, +grid Turns on or off the grid lines. -axes, +axes Turns on or off the major axes. -dashed, +dashed Turns on or off dashing for the frame and grid lines. -stippled, +stippled Turns on or off stippling of highlighted squares. -proportional, +proportional Turns proportional mode on or off. If proportional mode is on, square width is equal to square height. If proportional mode is off, bitmap will use the smaller square dimension, if they were initially different. -dashes filename Specifies the bitmap to be used as a stipple for dashing. -stipple filename Specifies the bitmap to be used as a stipple for highlighting. -hl color Specifies the color used for highlighting. -fr color Specifies the color used for the frame and grid lines. filename Specifies the bitmap to be initially loaded into the program. If the file does not exist, bitmap will assume it is a new file. basename Specifies the basename to be used in the C code output file. If it is different than the basename in the working file, bitmap will change it when saving the file. Bmtoa accepts the following option: -chars cc This option specifies the pair of characters to use in the string version of the bitmap. The first character is used for 0 bits and the second character is used for 1 bits. The default is to use dashes (-) for 0's and sharp signs (#) for 1's. Atobm accepts the following options: -chars cc This option specifies the pair of characters to use when converting string bitmaps into arrays of numbers. The first character repre- sents a 0 bit and the second character represents a 1 bit. The default is to use dashes (-) for 0's and sharp signs (#) for 1's. -name variable This option specifies the variable name to be used when writing out the bitmap file. The default is to use the basename of the file- name command line argument or leave it blank if the standard input is read. -xhot number This option specifies the X coordinate of the hotspot. Only posi- tive values are allowed. By default, no hotspot information is included. -yhot number This option specifies the Y coordinate of the hotspot. Only posi- tive values are allowed. By default, no hotspot information is included. USAGE Bitmap displays grid in which each square represents a single bit in the picture being edited. Actual size of the bitmap image, as it would appear normaly and inverted, can be obtained by pressing Meta-I key. You are free to move the image popup out of the way to continue edit- ing. Pressing the left mouse button in the popup window or Meta-I again will remove the real size bitmap image. If the bitmap is to be used for defining a cursor, one of the squares in the images may be designated as the hot spot. This determines where the cursor is actually pointing. For cursors with sharp tips (such as arrows or fingers), this is usually at the end of the tip; for symmet- ric cursors (such as crosses or bullseyes), this is usually at the cen- ter. Bitmaps are stored as small C code fragments suitable for including in applications. They provide an array of bits as well as symbolic con- stants giving the width, height, and hot spot (if specified) that may be used in creating cursors, icons, and tiles. EDITING To edit a bitmap image simply click on one of the buttons with drawing commands (Point, Curve, Line, Rectangle, etc.) and move the pointer into the bitmap grid window. Press one of the buttons on your mouse and the appropriate action will take place. You can either set, clear or invert the gird squares. Setting a grid square corresponds to set- ting a bit in the bitmap image to 1. Clearing a grid square corre- sponds to setting a bit in the bitmap image to 0. Inverting a grid square corresponds to changing a bit in the bitmap image from 0 to 1 or 1 to 0, depending what its previous state was. The default behavior of mouse buttons is as specified below. MouseButton1 Set MouseButton2 Invert MouseButton3 Clear MouseButton4 Clear MouseButton5 Clear This default behavior can be changed by setting the button function resources. An example is provided below. bitmap*button1Function: Set bitmap*button2Function: Clear bitmap*button3Function: Invert etc. The button function applies to all drawing commands, including copying, moving and pasting, flood filling and setting the hot spot. DRAWING COMMANDS Here is the list of drawing commands accessible through the buttons at the left side of the application's window. Some commands can be aborted by pressing A inside the bitmap window, allowing the user to select different guiding points where applicable. Clear This command clears all bits in the bitmap image. The grid squares will be set to the background color. Pressing C inside the bitmap window has the same effect. Set This command sets all bits in the bitmap image. The grid squares will be set to the foreground color. Pressing S inside the bitmap window has the same effect. Invert This command inverts all bits in the bitmap image. The grid squares will be inverted appropriately. Pressing I inside the bit- map window has the same effect. Mark This command is used to mark an area of the grid by dragging out a rectangular shape in the highlighting color. Once the area is marked, it can be operated on by a number of commands (see Up, Down, Left, Right, Rotate, Flip, Cut, etc.) Only one marked area can be present at any time. If you attempt to mark another area, the old mark will vanish. The same effect can be achieved by pressing Shift-MouseButton1 and dragging out a rectangle in the grid window. Pressing Shift-MouseButton2 will mark the entire grid area. Unmark This command will cause the marked area to vanish. The same effect can be achieved by pressing Shift-MouseButton3. Copy This command is used to copy an area of the grid from one location to another. If there is no marked grid area displayed, Copy behaves just like Mark described above. Once there is a marked grid area displayed in the highlighting color, this command has two alternative behaviors. If you click a mouse button inside the marked area, you will be able to drag the rectangle that represents the marked area to the desired location. After you release the mouse button, the area will be copied. If you click outside the marked area, Copy will assume that you wish to mark a different region of the bitmap image, thus it will behave like Mark again. Move This command is used to move an area of the grid from one location to another. Its behavior resembles the behavior of Copy command, except that the marked area will be moved instead of copied. Flip Horizontally This command will flip the bitmap image with respect to the hori- zontal axes. If a marked area of the grid is highlighted, it will operate only inside the marked area. Pressing H inside the bitmap window has the same effect. Up This command moves the bitmap image one pixel up. If a marked area of the grid is highlighted, it will operate only inside the marked area. Pressing UpArrow inside the bitmap window has the same effect. Flip Vertically This command will flip the bitmap image with respect to the verti- cal axes. If a marked area of the grid is highlighted, it will operate only inside the marked area. Pressing V inside the bitmap window has the same effect. Left This command moves the bitmap image one pixel to the left. If a marked area of the grid is highlighted, it will operate only inside the marked area. Pressing LeftArrow inside the bitmap window has the same effect. Fold This command will fold the bitmap image so that the opposite cor- ners become adjacent. This is useful when creating bitmap images for tiling. Pressing F inside the bitmap window has the same effect. Right This command moves the bitmap image one pixel to the right. If a marked area of the grid is highlighted, it will operate only inside the marked area. Pressing RightArrow inside the bitmap window has the same effect. Rotate Left This command rotates the bitmap image 90 degrees to the left (counter clockwise.) If a marked area of the grid is highlighted, it will operate only inside the marked area. Pressing L inside the bitmap window has the same effect. Down This command moves the bitmap image one pixel down. If a marked area of the grid is highlighted, it will operate only inside the marked area. Pressing DownArrow inside the bitmap window has the same effect. Rotate Right This command rotates the bitmap image 90 degrees to the right (clockwise.) If a marked area of the grid is highlighted, it will operate only inside the marked area. Pressing R inside the bitmap window has the same effect. Point This command will change the grid squares underneath the mouse pointer if a mouse button is being pressed down. If you drag the mouse button continuously, the line may not be continuous, depend- ing on the speed of your system and frequency of mouse motion events. Curve This command will change the grid squares underneath the mouse pointer if a mouse button is being pressed down. If you drag the mouse button continuously, it will make sure that the line is con- tinuous. If your system is slow or bitmap receives very few mouse motion events, it might behave quite strangely. Line This command will change the gird squares in a line between two squares. Once you press a mouse button in the grid window, bitmap will highlight the line from the square where the mouse button was initially pressed to the square where the mouse pointer is located. By releasing the mouse button you will cause the change to take effect, and the highlighted line will disappear. Rectangle This command will change the gird squares in a rectangle between two squares. Once you press a mouse button in the grid window, bitmap will highlight the rectangle from the square where the mouse button was initially pressed to the square where the mouse pointer is located. By releasing the mouse button you will cause the change to take effect, and the highlighted rectangle will disap- pear. Filled Rectangle This command is identical to Rectangle, except at the end the rec- tangle will be filled rather than outlined. Circle This command will change the gird squares in a circle between two squares. Once you press a mouse button in the grid window, bitmap will highlight the circle from the square where the mouse button was initially pressed to the square where the mouse pointer is located. By releasing the mouse button you will cause the change to take effect, and the highlighted circle will disappear. Filled Circle This command is identical to Circle, except at the end the circle will be filled rather than outlined. Flood Fill This command will flood fill the connected area underneath the mouse pointer when you click on the desired square. Diagonally adjacent squares are not considered to be connected. Set Hot Spot This command designates one square in the grid as the hot spot if this bitmap image is to be used for defining a cursor. Pressing a mouse button in the desired square will cause a diamond shape to be displayed. Clear Hot Spot This command removes any designated hot spot from the bitmap image. Undo This command will undo the last executed command. It has depth one, that is, pressing Undo after Undo will undo itself. FILE MENU The File menu commands can be accessed by pressing the File button and selecting the appropriate menu entry, or by pressing Ctrl key with another key. These commands deal with files and global bitmap parame- ters, such as size, basename, filename etc. New This command will clear the editing area and prompt for the name of the new file to be edited. It will not load in the new file. Load This command is used to load a new bitmap file into the bitmap edi- tor. If the current image has not been saved, user will be asked whether to save or ignore the changes. The editor can edit only one file at a time. If you need interactive editing, run a number of editors and use cut and paste mechanism as described below. Insert This command is used to insert a bitmap file into the image being currently edited. After being prompted for the filename, click inside the grid window and drag the outlined rectangle to the loca- tion where you want to insert the new file. Save This command will save the bitmap image. It will not prompt for the filename unless it is said to be . If you leave the filename undesignated or -, the output will be piped to stdout. Save As This command will save the bitmap image after prompting for a new filename. It should be used if you want to change the filename. Resize This command is used to resize the editing area to the new number of pixels. The size should be entered in the WIDTHxHEIGHT format. The information in the image being edited will not be lost unless the new size is smaller that the current image size. The editor was not designed to edit huge files. Rescale This command is used to rescale the editing area to the new width and height. The size should be entered in the WIDTHxHEIGHT format. It will not do antialiasing and information will be lost if you rescale to the smaller sizes. Feel free to add you own algorithms for better rescaling. Filename This command is used to change the filename without changing the basename nor saving the file. If you specify - for a filename, the output will be piped to stdout. Basename This command is used to change the basename, if a different one from the specified filename is desired. Quit This command will terminate the bitmap application. If the file was not saved, user will be prompted and asked whether to save the image or not. This command is preferred over killing the process. EDIT MENU The Edit menu commands can be accessed by pressing the Edit button and selecting the appropriate menu entry, or by pressing Meta key with another key. These commands deal with editing facilities such as grid, axes, zooming, cut and paste, etc. Image This command will display the image being edited and its inverse in its actual size in a separate window. The window can be moved away to continue with editing. Pressing the left mouse button in the image window will cause it to disappear from the screen. Grid This command controls the grid in the editing area. If the grid spacing is below the value specified by gridTolerance resource (8 by default), the grid will be automatically turned off. It can be enforced by explicitly activating this command. Dashed This command controls the stipple for drawing the grid lines. The stipple specified by dashes resource can be turned on or off by activating this command. Axes This command controls the highlighting of the main axes of the image being edited. The actual lines are not part of the image. They are provided to aid user when constructing symmetrical images, or whenever having the main axes highlighted helps your editing. Stippled This command controls the stippling of the highlighted areas of the bitmap image. The stipple specified by stipple resource can be turned on or off by activating this command. Proportional This command controls the proportional mode. If the proportional mode is on, width and height of all image squares are forced to be equal, regardless of the proportions of the bitmap window. Zoom This command controls the zoom mode. If there is a marked area of the image already displayed, bitmap will automatically zoom into it. Otherwise, user will have to highlight an area to be edited in the zoom mode and bitmap will automatically switch into it. One can use all the editing commands and other utilities in the zoom mode. When you zoom out, undo command will undo the whole zoom session. Cut This commands cuts the contents of the highlighted image area into the internal cut and paste buffer. Copy This command copies the contents of the highlighted image area into the internal cut and paste buffer. Paste This command will check if there are any other bitmap applications with a highlighted image area, or if there is something in the internal cut and paste buffer and copy it to the image. To place the copied image, click in the editing window and drag the outlined image to the position where you want to place i, and then release the button. CUT AND PASTE Bitmap supports two cut and paste mechanisms; the internal cut and paste and the global X selection cut and paste. The internal cut and paste is used when executing copy and move drawing commands and also cut and copy commands from the edit menu. The global X selection cut and paste is used whenever there is a highlighted area of a bitmap image displayed anywhere on the screen. To copy a part of image from another bitmap editor simply highlight the desired area by using the Mark command or pressing the shift key and dragging the area with the left mouse button. When the selected area becomes highlighted, any other applications (such as xterm, etc.) that use primary selection will discard their selection values and unhighlight the appropriate information. Now, use the Paste command for the Edit menu or control mouse button to copy the selected part of image into another (or the same) bitmap application. If you attempt to do this without a visible highlighted image area, the bitmap will fall back to the internal cut and paste buffer and paste whatever was there stored at the moment. WIDGETS Below is the widget structure of the bitmap application. Indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. All widgets except the bitmap widget are from the standard Athena widget set. Bitmap bitmap TransientShell image Box box Label normalImage Label invertedImage TransientShell input Dialog dialog Command okay Command cancel TransientShell error Dialog dialog Command abort Command retry TransientShell qsave Dialog dialog Command yes Command no Command cancel Paned parent Form formy MenuButton fileButton SimpleMenu fileMenu SmeBSB new SmeBSB load SmeBSB insert SmeBSB save SmeBSB saveAs SmeBSB resize SmeBSB rescale SmeBSB filename SmeBSB basename SmeLine line SmeBSB quit MenuButton editButton SimpleMenu editMenu SmeBSB image SmeBSB grid SmeBSB dashed SmeBSB axes SmeBSB stippled SmeBSB proportional SmeBSB zoom SmeLine line SmeBSB cut SmeBSB copy SmeBSB paste Label status Pane pane Bitmap bitmap Form form Command clear Command set Command invert Toggle mark Command unmark Toggle copy Toggle move Command flipHoriz Command up Command flipVert Command left Command fold Command right Command rotateLeft Command down Command rotateRight Toggle point Toggle curve Toggle line Toggle rectangle Toggle filledRectangle Toggle circle Toggle filledCircle Toggle floodFill Toggle setHotSpot Command clearHotSpot Command undo COLORS If you would like bitmap to be viewable in color, include the following in the #ifdef COLOR section of the file you read with xrdb: *customization: -color This will cause bitmap to pick up the colors in the app-defaults color customization file: /usr/X11R6/lib/X11/app-defaults/Bitmap-color BITMAP WIDGET Bitmap widget is a stand-alone widget for editing raster images. It is not designed to edit large images, although it may be used in that pur- pose as well. It can be freely incorporated with other applications and used as a standard editing tool. The following are the resources provided by the bitmap widget. Bitmap Widget Header file Bitmap.h Class bitmapWidgetClass Class Name Bitmap Superclass Bitmap All the Simple Widget resources plus ... Name Class Type Default Value foreground Foreground Pixel XtDefaultForeground highlight Highlight Pixel XtDefaultForeground framing Framing Pixel XtDefaultForeground gridTolerance GridTolerance Dimension 8 size Size String 32x32 dashed Dashed Boolean True grid Grid Boolean True stippled Stippled Boolean True proportional Proportional Boolean True axes Axes Boolean False squareWidth SquareWidth Dimension 16 squareHeight SquareHeight Dimension 16 margin Margin Dimension 16 xHot XHot Position NotSet (-1) yHot YHot Position NotSet (-1) button1Function Button1Function DrawingFunction Set button2Function Button2Function DrawingFunction Invert button3Function Button3Function DrawingFunction Clear button4Function Button4Function DrawingFunction Invert button5Function Button5Function DrawingFunction Invert filename Filename String None ("") basename Basename String None ("") AUTHOR Davor Matic, MIT X Consortium ccmakedep(1) ccmakedep(1) NAME ccmakedep - create dependencies in makefiles using a C compiler SYNOPSIS ccmakedep [ cpp-flags ] [ -wwidth ] [ -smagic-string ] [ -fmakefile ] [ -oobject-suffix ] [ -v ] [ -a ] [ -cccompiler ] [ -- options -- ] sourcefile ... DESCRIPTION The ccmakedep program calls a C compiler to preprocess each sourcefile, and uses the output to construct makefile rules describing their depen- dencies. These rules instruct make(1) on which object files must be recompiled when a dependency has changed. By default, ccmakedep places its output in the file named makefile if it exists, otherwise Makefile. An alternate makefile may be specified with the -f option. It first searches the makefile for a line begin- ning with # DO NOT DELETE or one provided with the -s option, as a delimiter for the dependency output. If it finds it, it will delete everything following this up to the end of the makefile and put the output after this line. If it doesn't find it, the program will append the string to the makefile and place the output after that. EXAMPLE Normally, ccmakedep will be used in a makefile target so that typing 'make depend' will bring the dependencies up to date for the makefile. For example, SRCS = file1.c file2.c ... CFLAGS = -O -DHACK -I../foobar -xyz depend: ccmakedep -- $(CFLAGS) -- $(SRCS) OPTIONS The program will ignore any option that it does not understand, so you may use the same arguments that you would for cc(1), including -D and -U options to define and undefine symbols and -I to set the include path. -a Append the dependencies to the file instead of replacing exist- ing dependencies. -cccompiler Use this compiler to generate dependencies. -fmakefile Filename. This allows you to specify an alternate makefile in which ccmakedep can place its output. Specifying "-" as the file name (that is, -f-) sends the output to standard output instead of modifying an existing file. -sstring Starting string delimiter. This option permits you to specify a different string for ccmakedep to look for in the makefile. The default is "# DO NOT DELETE". -v Be verbose: display the C compiler command before running it. -- options -- If ccmakedep encounters a double hyphen (--) in the argument list, then any unrecognized arguments following it will be silently ignored. A second double hyphen terminates this spe- cial treatment. In this way, ccmakedep can be made to safely ignore esoteric compiler arguments that might normally be found in a CFLAGS make macro (see the EXAMPLE section above). -D, -I, and -U options appearing between the pair of double hyphens are still processed normally. SEE ALSO cc(1), make(1), makedepend(1), ccmakedep(1). AUTHOR ccmakedep was written by the X Consortium. Colin Watson wrote this manual page, originally for the Debian Project, based partly on the manual page for makedepend(1). cleanlinks(1) cleanlinks(1) NAME cleanlinks - remove dangling symbolic links and empty directories SYNOPSIS cleanlinks DESCRIPTION The cleanlinks program searches the directory tree descended from the current directory for symbolic links whose targets do not exist, and removes them. It then removes all empty directories in that directory tree. cleanlinks is useful for cleaning up a shadow link tree created with lndir(1) after files have been removed from the real directory. DIAGNOSTICS A message will be printed upon encountering each dangling symlink and empty directory. SEE ALSO lndir(1). AUTHOR David Dawes wrote the cleanlinks program for XFree86. Colin Watson wrote this manual page, originally for the Debian Project. CONSTYPE(1) CONSTYPE(1) NAME constype - print type of Sun console SYNOPSIS constype [ device_name ] [ -num ] DESCRIPTION The constype program writes on the standard output the Sun code for the type of display that the console is. The types output include these: bw? Black and White, where ? is 1-4. (eg) 3-50s are bw2 cg? Colour Graphics display, where ? is 1-4 gp? Optional Graphics Processor board, where ? is 1-2 ns? Not Sun display -- where ? is A-J This is useful in determining startup values and defaults for window systems. The device_name argument, if given, is the device to examine. If not given, /dev/fb is used. The -num option causes constype to follow the type keyword with the numeric value of that type, as returned by the FBIOGATTR or FBIOGTYPE ioctl and defined in fbio.h. This is useful if the type is not recog- nized by the program. EXIT STATUS The program exits with status 0 if it identified a known console type, 1 if the type was unknown, and 2 if the device could not be opened or another error occurred. BUGS Not tested on all monitor types COPYRIGHT Copyright 1988, SRI AUTHOR Doug Moran CXPM(1) CXPM(1) NAME cxpm - Check an XPM (X PixMap) file - XPM 1, 2, or 3. SYNOPSIS cxpm [filename] DESCRIPTION The cxpm program can be used to check the format of any XPM (version 1, 2, or 3) file. On error, unlike sxpm, cxpm prints out an error message indicating where the parser choked. This should help finding out what's wrong with an XPM file but do not expect too much from it though. This is not even close from being some kind of lint program for XPM. First, it stops at the first error it encounters - so several fix and retry cycles may be necessary to get your file to parse successfully. Second, cxpm only cares about the format. If, for instance, your pixmap uses too many colors for your system you still may experience difficulties displaying it. Be warned. When no filename is given cxpm reads from the standard input. AUTHOR Arnaud Le Hors (lehors@sophia.inria.fr) Copyright (C) 1998 by Arnaud LE HORS. dga(1) dga(1) NAME dga - test program for the XFree86-DGA extension SYNOPSIS dga DESCRIPTION Dga is a simple test client for the XFree86-DGA extension. It fills the screen with a different colour for each key pressed. It prints some basic framebuffer parameters, and also keyboard and pointer events to stdout. To exit, hit the `q' key. Hitting the `b' key runs a sim- ple benchmark, measuring raw framebuffer write and read speed (this takes one second each). AUTHOR Jon Tombs DPSEXEC(1) DPSEXEC(1) NAME dpsexec - Display PostScript Executive SYNOPSIS dpsexec [ -display name ][ -sync ][ -backup ][ -noexec ][ -root ][ -drawable windowId ][ -height n ][ -width n ] DESCRIPTION dpsexec is a Display PostScript program that allows the user to inter- act directly with the PostScript interpreter through a command inter- face. dpsexec reads lines of text from standard input and passes each line to the PostScript interpreter for execution. It creates a window that displays the results of graphics operations as they are executed. dpsexec exits when end of file is reached on standard input, or when the user types "quit", which executes the PostScript quit oper- ator. By default, dpsexec executes the PostScript executive operator before it accepts any user input. This operator puts the PostScript inter- preter in "interactive executive" mode so that the user can control the interpreter directly. In this mode, the PostScript interpreter sup- ports certain line-editing functions and prompts the user when it is ready to execute more input. See section 2.4.4, "Using the Interpreter Interactively," of the PostScript Language Reference Manual, Second Edition, for detailed information on this mode of operation. OPTIONS -display name specifies the display on which to open a connection to the Dis- play PostScript system. If no display is specified, the DISPLAY environment variable is used. -sync establishes a synchronous connection with the specified X dis- play. -backup uses backing store for the window in which graphics are dis- played, if possible. This is generally only effective with the DPS NX system. -noexec prevents dpsexec from entering "interactive executive" mode. The primary effect of this option is to inhibit printing the PS> prompt before each line of input is accepted. This option is useful when dpsexec is run with standard input redirected from a file or a pipe. -root tells dpsexec to draw into the root window instead of into a window that it creates. -drawable windowId tells dpsexec to draw into the specified window instead of into a window that it creates. -height n sets the height of the created window. -width n sets the width of the created window. DIAGNOSTICS PostScript language error messages are printed to standard output. AUTHOR Adobe Systems Incorporated NOTES PostScript and Display PostScript are trademarks of Adobe Systems Incorporated which may be registered in certain jurisdictions. Copyright (c) 1990-1994 Adobe Systems Incorporated. All rights reserved. DPSINFO(1) DPSINFO(1) NAME dpsinfo - Display PostScript Information SYNOPSIS dpsinfo [ -display name ] [ -debug ] DESCRIPTION Dpsinfo is a utility for displaying information about the DPS extension present in an X server or provided by a client-side DPS agent. Dpsinfo will print out the version of the DPS protocol used, the language level and version of the underlying PS interpreter, as well as the set of font formats supported. If -debug is specified, dpsinfo will print out all the PS code sent to the server. SEE ALSO X(1), xdpyinfo(1), dpsexec(1) AUTHOR Juliusz Chroboczek NOTES PostScript and Display PostScript are trademarks of Adobe Systems Incorporated which may be registered in certain jurisdictions. EDITRES(1) EDITRES(1) NAME editres - a dynamic resource editor for X Toolkit applications SYNTAX editres [ -toolkitoption ... ] OPTIONS Editres accepts all of the standard X Toolkit command line options (see X(7)). The order of the command line options is not important. DESCRIPTION Editres is a tool that allows users and application developers to view the full widget hierarchy of any X Toolkit application that speaks the Editres protocol. In addition, editres will help the user construct resource specifications, allow the user to apply the resource to the application and view the results dynamically. Once the user is happy with a resource specification editres will append the resource string to the user's X Resources file. USING EDITRES Editres provides a window consisting of the following four areas: Menu Bar A set of popup menus that allow you full access to editres's features. Panner The panner allows a more intuitive way to scroll the application tree display. Message Area Displays information to the user about the action that editres expects of her. Application Widget Tree This area will be used to display the selected application's widget tree. To begin an editres session select the Get Widget Tree menu item from the command menu. This will change the pointer cursor to cross hair. You should now select the application you wish look at by clicking on any of its windows. If this application understands the editres proto- col then editres will display the application's widget tree in its tree window. If the application does not understand the editres protocol editres will inform you of this fact in the message area after a few seconds delay. Once you have a widget tree you may now select any of the other menu options. The effect of each of these is described below. COMMANDS Get Widget Tree Allows the user to click on any application that speaks the editres protocol and receive its widget tree. Refresh Current Widget Tree Editres only knows about the widgets that exist at the present time. Many applications create and destroy widgets on the fly. Selecting this menu item will cause editres to ask the applica- tion to resend its widget tree, thus updating its information to the new state of the application. For example, xman only creates the widgets for its topbox when it starts up. None of the widgets for the manual page window are created until the user actually clicks on the Manual Page button. If you retrieved xman's widget tree before the the manual page is active, you may wish to refresh the widget tree after the manual page has been displayed. This will allow you to also edit the manual page's resources. Dump Widget Tree to a File For documenting applications it is often useful to be able to dump the entire application widget tree to an ASCII file. This file can then be included in the manual page. When this menu item is selected a popup dialog is activated. Type the name of the file in this dialog, and either select okay, or type a car- riage-return. Editres will now dump the widget tree to this file. To cancel the file dialog, select the cancel button. Show Resource Box This command will popup a resource box for the current applica- tion. This resource box (described in detail below) will allow the user to see exactly which resources can be set for the wid- get that is currently selected in the widget tree display. Only one widget may be currently selected; if greater or fewer are selected editres will refuse to pop up the resource box and put an error message in the Message Area. Set Resource This command will popup a simple dialog box for setting an arbitrary resource on all selected widgets. You must type in the resource name, as well as the value. You can use the Tab key to switch between the resource name field the resource value field. Quit Exits editres. TREE COMMANDS The Tree menu contains several commands that allow operations to be performed on the widget tree. Select Widget in Client This menu item allows you to select any widget in the applica- tion; editres will then highlight the corresponding element the widget tree display. Once this menu item is selected the pointer cursor will again turn to a crosshair, and you must click any pointer button in the widget you wish to have dis- played. Since some widgets are fully obscured by their chil- dren, it is not possible to get to every widget this way, but this mechanism does give very useful feedback between the ele- ments in the widget tree and those in the actual application. Select All Unselect All Invert All These functions allow the user to select, unselect, or invert all widgets in the widget tree. Select Children Select Parents These functions select the immediate parent or children of each of the currently selected widgets. Select Descendants Select Ancestors These functions select all parents or children of each of the currently selected widgets. This is a recursive search. Show Widget Names Show Class Names Show Widget Windows When the tree widget is initially displayed the labels of each widget in the tree correspond to the widget names. These func- tions will cause the label of all widgets in the tree to be changed to show the class name, IDs, or window associated with each widget in the application. The widget IDs, and windows are shown as hex numbers. In addition there are keyboard accelerators for each of the Tree opera- tions. If the input focus is over an individual widget in the tree, then that operation will only effect that widget. If the input focus is in the Tree background it will have exactly the same effect as the corresponding menu item. The translation entries shown may be applied to any widget in the application. If that widget is a child of the Tree widget, then it will only affect that widget, otherwise it will have the same effect as the commands in the tree menu. Flash Active Widgets This command is the inverse of the Select Widget in Client com- mand, it will show the user each widget that is currently selected in the widget tree, by flashing the corresponding wid- get in the application numFlashes (three by default) times in the flashColor. Key Option Translation Entry space Unselect Select(nothing) w Select Select(widget) s Select Select(all) i Invert Select(invert) c Select Children Select(children) d Select Descendants Select(descendants) p Select Parent Select(parent) a Select Ancestors Select(ancestors) N Show Widget Names Relabel(name) C Show Class Names Relabel(class) I Show Widget IDs Relabel(id) W Show Widget Windows Relabel(window) T Toggle Widget/Class Name Relabel(toggle) Clicking button 1 on a widget adds it to the set of selected widgets. Clicking button 2 on a widget deselects all other wid- gets and then selects just that widget. Clicking button 3 on a widget toggles its label between the widget's instance name the widget's class name. USING THE RESOURCE BOX The resource box contains five different areas. Each of the areas, as they appear on the screen, from top to bottom will be discussed. The Resource Line This area at the top of the resource box shows the current resource name exactly as it would appear if you were to save it to a file or apply it. The Widget Names and Classes This area allows you to select exactly which widgets this resource will apply to. The area contains four lines, the first contains the name of the selected widget and all its ancestors, and the more restrictive dot (.) separator. The second line contains less specific the Class names of each widget, and well as the less restrictive star (*) separator. The third line con- tains a set of special buttons called Any Widget which will gen- eralize this level to match any widget. The last line contains a set of special buttons called Any Widget Chain which will turn the single level into something that matches zero or more lev- els. The initial state of this area is the most restrictive, using the resource names and the dot separator. By selecting the other buttons in this area you can ease the restrictions to allow more and more widgets to match the specification. The extreme case is to select all the Any Widget Chain buttons, which will match every widget in the application. As you select different buttons the tree display will update to show you exactly which widgets will be effected by the current resource specification. Normal and Constraint Resources The next area allows you to select the name of the normal or constraint resources you wish to set. Some widgets may not have constraint resources, so that area will not appear. Resource Value This next area allows you to enter the resource value. This value should be entered exactly as you would type a line into your resource file. Thus it should contain no unescaped new- lines. There are a few special character sequences for this file: \n - This will be replaced with a newline. \### - Where # is any octal digit. This will be replaced with a single byte that contains this sequence interpreted as an octal number. For example, a value containing a NULL byte can be stored by specifying \000. \ - This will compress to nothing. \\ - This will compress to a single backslash. Command Area This area contains several command buttons, described in this section. Set Save File This button allows the user to modify file that the resources will be saved to. This button will bring up a dialog box that will ask you for a filename; once the filename has been entered, either hit carriage-return or click on the okay button. To pop down the dialog box without changing the save file, click the cancel button. Save This button will append the resource line described above to the end of the current save file. If no save file has been set the Set Save File dialog box will be popped up to prompt the user for a filename. Apply This button attempts to perform a XtSetValues call on all wid- gets that match the resource line described above. The value specified is applied directly to all matching widgets. This behavior is an attempt to give a dynamic feel to the resource editor. Since this feature allows users to put an application in states it may not be willing to handle, a hook has been pro- vided to allow specific applications to block these SetValues requests (see Blocking Editres Requests below). Unfortunately due to design constraints imposed on the widgets by the X Toolkit and the Resource Manager, trying to coerce an inherently static system into dynamic behavior can cause strange results. There is no guarantee that the results of an apply will be the same as what will happen when you save the value and restart the application. This functionality is provided to try to give you a rough feel for what your changes will accomplish, and the results obtained should be considered suspect at best. Having said that, this is one of the neatest features of editres, and I strongly suggest that you play with it, and see what it can do. Save and Apply This button combines the Save and Apply actions described above into one button. Popdown Resource Box This button will remove the resource box from the display. BLOCKING EDITRES REQUESTS The editres protocol has been built into the Athena Widget set. This allows all applications that are linked against Xaw to be able to speak to the resource editor. While this provides great flexibility, and is a useful tool, it can quite easily be abused. It is therefore possible for any Xaw application to specify a value for the editresBlock resource described below, to keep editres from divulging information about its internals, or to disable the SetValues part of the protocol. editresBlock (Class EditresBlock) Specifies which type of blocking this application wishes to impose on the editres protocol. The accepted values are: all Block all requests. setValues Block all SetValues requests. As this is the only editres request that actually modifies the application, this is in effect stating that the application is read- only. none Allow all editres requests. Remember that these resources are set on any Xaw application, not editres. They allow individual applications to keep all or some of the requests editres makes from ever succeeding. Of course, editres is also an Xaw application, so it may also be viewed and modified by editres (rather recursive, I know), these commands can be blocked by setting the editresBlock resource on editres itself. RESOURCES For editres the available application resources are: numFlashes (Class NumFlashes) Specifies the number of times the widgets in the application will be flashed when the Show Active Widgets command in invoked. flashTime (Class FlashTime) Amount of time between the flashes described above. flashColor (Class flashColor) Specifies the color used to flash application widgets. A bright color should be used that will immediately draw your attention to the area being flashed, such as red or yellow. saveResourcesFile (Class SaveResourcesFile) This is the file the resource line will be append to when the Save button activated in the resource box. WIDGETS In order to specify resources, it is useful to know the hierarchy of the widgets which compose editres. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. Editres editres Paned paned Box box MenuButton commands SimpleMenu menu SmeBSB sendTree SmeBSB refreshTree SmeBSB dumpTreeToFile SmeLine line SmeBSB getResourceList SmeLine line SmeBSB quit MenuButton treeCommands SimpleMenu menu SmeBSB showClientWidget SmeBSB selectAll SmeBSB unselectAll SmeBSB invertAll SmeLine line SmeBSB selectChildren SmeBSB selectParent SmeBSB selectDescendants SmeBSB selectAncestors SmeLine line SmeBSB showWidgetNames SmeBSB showClassNames SmeBSB showWidgetIDs SmeBSB showWidgetWindows SmeLine line SmeBSB flashActiveWidgets Paned hPane Panner panner Label userMessage Grip grip Porthole porthole Tree tree Toggle . . . TransientShell resourceBox Paned pane Label resourceLabel Form namesAndClasses Toggle dot Toggle star Toggle any Toggle name Toggle class . . . Label namesLabel List namesList Label constraintLabel List constraintList Form valueForm Label valueLabel Text valueText Box commandBox Command setFile Command save Command apply Command saveAndApply Command cancel Grip grip Grip grip ENVIRONMENT DISPLAY to get the default host and display number. XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. FILES /usr/X11R6/lib/X11/app-defaults/Editres specifies required resources SEE ALSO X(7), xrdb(1), Athena Widget Set RESTRICTIONS This is a prototype, there are lots of nifty features I would love to add, but I hope this will give you some ideas about what a resource editor can do. AUTHOR Chris D. Peterson, formerly MIT X Consortium FC-CACHE(1) FC-CACHE(1) NAME fc-cache, fonts.cache - create an index of FreeType font files in a directory SYNOPSIS fc-cache [directory-name ... ] DESCRIPTION If directory arguments are not given, fc-cache uses each directory in the current font configuration. Each directory is scanned for font files readable by FreeType. A cache is created which contains proper- ties of each font and the associated filename. This cache is used to speed application startup when using the fontconfig library. FILES fonts.cache Maps file names to font properties. Read by the font- config library at application startup to locate appro- priate fonts. SEE ALSO fontconfig(3) FC-LANG(1) FC-LANG(1) NAME fc-lang, fclang.h - create an database of language orthographies SYNOPSIS fc-lang [language-coverage ... ] DESCRIPTION Fc-lang builds the fclang.h file used in the fontconfig library to automatically determine language coverage for fonts which don't contain this information. FILES fclang.tmpl.h The template file in which the tables are inserted SEE ALSO fontconfig(3) FC-LIST(1) FC-LIST(1) NAME fc-list - list available fonts SYNOPSIS fc-list [font-pattern] DESCRIPTION If font pattern is not given, fc-list lists all available faces and styles in the current font configuration. SEE ALSO fontconfig(3) FONTCONFIG(3) FONTCONFIG(3) NAME fontconfig - Font configuration and customization library SYNOPSIS #include #include DESCRIPTION Fontconfig is a library designed to provide system-wide font configura- tion, customization and application access. FUNCTIONAL OVERVIEW Fontconfig contains two essential modules, the configuration module which builds an internal configuration from XML files and the matching module which accepts font patterns and returns the nearest matching font. FONT CONFIGURATION The configuration module consists of the FcConfig datatype, libexpat and FcConfigParse which walks over an XML tree and ammends a configura- tion with data found within. From an external perspective, configura- tion of the library consists of generating a valid XML tree and feeding that to FcConfigParse. The only other mechanism provided to applica- tions for changing the running configuration is to add fonts and direc- tories to the list of application-provided font files. The intent is to make font configurations relatively static, and shared by as many applications as possible. It is hoped that this will lead to more stable font selection when passing names from one application to another. XML was chosen as a configuration file format because it provides a format which is easy for external agents to edit while retaining the correct structure and syntax. Font configuration is separate from font matching; applications needing to do their own matching can access the available fonts from the library and perform private matching. The intent is to permit applica- tions to pick and choose appropriate functionality from the library instead of forcing them to choose between this library and a private configuration mechanism. The hope is that this will ensure that con- figuration of fonts for all applications can be centralized in one place. Centralizing font configuration will make simplify and regular- ize font installation and customization. FONT PROPERTIES While font patterns may contain essentially any properties, there are some well known properties with associated types. Fontconfig uses some of these properties for font matching and font completion. Others are provided as a convenience for the applications rendering mechanism. Property CPP symbol Type Description ---------- -------------------------------------------- family FC_FAMILY String Font family name style FC_STYLE String Font style. Overrides weight and slant slant FC_SLANT Int Italic, oblique or roman weight FC_WEIGHT Int Light, medium, demibold, bold or black size FC_SIZE Double Point size aspect FC_ASPECT Double Stretches glyphs horizontally before hinting pixelsize FC_PIXEL_SIZE Double Pixel size spacing FC_SPACING Int Proportional, monospace or charcell foundry FC_FOUNDRY String Font foundry name antialias FC_ANTIALIAS Bool Whether glyphs can be antialiased hinting FC_HINTING Bool Whether the rasterizer should use hinting verticallayout FC_VERTICAL_LAYOUT BoolUse vertical layout autohint FC_AUTOHINT Bool Use autohinter instead of normal hinter globaladvance FC_GLOBAL_ADVANCE BoolUse font global advance data file FC_FILE String The filename holding the font index FC_INDEX Int The index of the font within the file ftface FC_FT_FACE FT_Face Use the specified FreeType face object rasterizer FC_RASTERIZER StringWhich rasterizer is in use outline FC_OUTLINE Bool Whether the glyphs are outlines scalable FC_SCALABLE Bool Whether glyphs can be scaled scale FC_SCALE Double Scale factor for point->pixel conversions dpi FC_DPI Double Target dots per inch rgba FC_RGBA Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry minspace FC_MINSPACE Bool Eliminate leading from line spacing charset FC_CHARSET CharSet Unicode chars encoded by the font lang FC_LANG String List of RFC-3066-style languages this font supports FONT MATCHING Fontconfig performs matching by measuring the distance from a provided pattern to all of the available fonts in the system. The closest matching font is selected. This ensures that a font will always be returned, but doesn't ensure that it is anything like the requested pattern. Font matching starts with an application constructed pattern. The desired attributes of the resulting font are collected together in an FcPattern object. Each property of the pattern can contain one or more values; these are listed in priority order; matches earlier in the list are considered "closer" than matches later in the list. The initial pattern is modified by applying the list of editing instructions specific to patterns found in the configuration; each con- sists of a match predicate and a set of editing operations. They are executed in the order they appeared in the configuration. Each match causes the associated sequence of editing operations to be applied. After the pattern has been edited, a sequence of default substitutions are performed to canonicalize the set of available properties; this avoids the need for the lower layers to constantly provide default val- ues for various font properties during rendering. The canonical font pattern is finally matched against all available fonts. The distance from the pattern to the font is measured for each of several properties: foundry, charset, family, lang, spacing, pixel- size, style, slant, weight, antialias, rasterizer and outline. This list is in priority order -- results of comparing earlier elements of this list weigh more heavily than later elements. There is one special case to this rule; family names are split into two bindings; strong and weak. Strong family names are given greater precedence in the match than lang elements while weak family names are given lower precedence than lang elements. This permits the document language to drive font selection when any document specified font is unavailable. The pattern representing that font is augmented to include any proper- ties found in the pattern but not found in the font itself; this per- mits the application to pass rendering instructions or any other data through the matching system. Finally, the list of editing instructions specific to fonts found in the configuration are applied to the pat- tern. This modified pattern is returned to the application. The return value contains sufficient information to locate and raster- ize the font, including the file name, pixel size and other rendering data. As none of the information involved pertains to the FreeType library, applications are free to use any rasterization engine or even to take the identified font file and access it directly. The match/edit sequences in the configuration are performed in two passes because there are essentially two different operations necessary -- the first is to modify how fonts are selected; aliasing families and adding suitable defaults. The second is to modify how the selected fonts are rasterized. Those must apply to the selected font, not the original pattern as false matches will often occur. FONT LIST MATCHING While many applications want to locate a single font best matching their search criteria, other applications need to build a set of fonts which can be used to present any Unicode data. Fontconfig provides an API to generate a list sorted by the nearness of each font to the pat- tern. Every font in the system is considered, the best matching fonts are placed first. The application then can select whether the remain- ing fonts are unconditionally included in the list, or whether they are included only if they cover portions of Unicode not covered by any of the preceeding fonts. The list resulting from this match is represented by references to the original font patterns and so consumes very little memory. Using a list entry involves creating a pattern which combines the information from the font with the information from the original pattern and exe- cuting the font substitutions. FONT NAMES Fontconfig provides a textual representation for patterns that the library can both accept and generate. The representation is in three parts, first a list of family names, second a list of point sizes and finally a list of additional properties: -:=:=... Values in a list are separated with commas. The name needn't include either families or point sizes; they can be elided. In addition, there are symbolic constants that simultaneously indicate both a name and a value. Here are some examples: Times-12 12 point Times Roman Times-12:bold 12 point Times Bold Courier:italic Courier Italic in the default size Monospace:matrix=1 .1 0 1The users preferred monospace font with artificial obliquing LANG TAGS Each font in the database contains a list of languages it supports. This is computed by comparing the Unicode coverage of the font with the orthography of each language. Languages are tagged using an RFC-3066 compatible naming and occur in two parts -- the ISO639 language tag followed a hyphen and then by the ISO 3166 country code. The hyphen and country code may be elided. Fontconfig has orthographies for several languages built into the library. No provision has been made for adding new ones aside from rebuilding the library. It currently supports 122 of the 139 languages named in ISO 639-1, 141 of the languages with two-letter codes from ISO 639-2 and another 30 languages with only three-letter codes. DATATYPES FcChar8 FcChar16 FcChar32 FcBool These are primitive datatypes; the FcChar* types hold precisely the number of bits stated (if supported by the C implementation). FcBool holds one of two CPP symbols: FcFalse or FcTrue. FcMatrix An FcMatrix holds an affine transformation, usually used to reshape glyphs. A small set of matrix operations are provided to manipulate these. typedef struct _FcMatrix { double xx, xy, yx, yy; } FcMatrix; FcCharSet An FcCharSet is an abstract type that holds the set of encoded unicode chars in a font. Operations to build and compare these sets are provided. FcType Tags the kind of data stored in an FcValue. FcValue An FcValue object holds a single value with one of a number of different types. The 'type' tag indicates which member is valid. typedef struct _FcValue { FcType type; union { const FcChar8 *s; int i; FcBool b; double d; const FcMatrix *m; const FcCharSet *c; } u; } FcValue; type Union member Datatype ------------------------------ FcTypeVoid (none) (none) FcTypeInteger i int FcTypeDouble d double FcTypeString s char * FcTypeBool b b FcTypeMatrix m FcMatrix * FcTypeCharSet c FcCharSet * FcPattern holds a set of names with associated value lists; each name refers to a property of a font. FcPatterns are used as inputs to the matching code as well as holding information about spe- cific fonts. Each property can hold one or more values; conven- tionally all of the same type, although the interface doesn't demand that. FcFontSet typedef struct _FcFontSet { int nfont; int sfont; FcPattern **fonts; } FcFontSet; An FcFontSet contains a list of FcPatterns. Internally fontcon- fig uses this data structure to hold sets of fonts. Externally, fontconfig returns the results of listing fonts in this format. 'nfont' holds the number of patterns in the 'fonts' array; 'sfont' is used to indicate the size of that array. FcStrSet FcStrList FcStrSet holds a list of strings that can be appended to and enumerated. Its unique characteristic is that the enu- meration works even while strings are appended during enumera- tion. FcStrList is used during enumeration to safely and cor- rectly walk the list of strings even while that list is edited in the middle of enumeration. FcObjectSet typedef struct _FcObjectSet { int nobject; int sobject; const char **objects; } FcObjectSet; holds a set of names and is used to specify which fields from fonts are placed in the the list of returned patterns when list- ing fonts. FcObjectType typedef struct _FcObjectType { const char *object; FcType type; } FcObjectType; marks the type of a pattern element generated when parsing font names. Applications can add new object types so that font names may contain the new elements. FcConstant typedef struct _FcConstant { const FcChar8 *name; const char *object; int value; } FcConstant; Provides for symbolic constants for new pattern elements. When 'name' is seen in a font name, an 'object' element is created with value 'value'. FcBlanks holds a list of Unicode chars which are expected to be blank; unexpectedly blank chars are assumed to be invalid and are elided from the charset associated with the font. FcFileCache holds the per-user cache information for use while loading the font database. This is built automatically for the current con- figuration when that is loaded. Applications must always pass '0' when one is requested. FcConfig holds a complete configuration of the library; there is one default configuration, other can be constructed from XML data structures. All public entry points that need global data can take an optional FcConfig* argument; passing 0 uses the default configuration. FcConfig objects hold two sets of fonts, the first contains those specified by the configuration, the second set holds those added by the application at run-time. Inter- faces that need to reference a particulat set use one of the FcSetName enumerated values. FcSetName Specifies one of the two sets of fonts available in a configura- tion; FcSetSystem for those fonts specified in the configuration and FcSetApplication which holds fonts provided by the applica- tion. FcResult Used as a return type for functions manipulating FcPattern objects. Result code Meaning ------------------------------ FcResultMatch Object exists with the specified ID FcResultNoMatch Object doesn't exist at all FcResultTypeMismatch Object exists, but the type doesn't match FcResultNoId Object exists, but has fewer values than specified FcAtomic Used for locking access to config files. Provides a safe way to update configuration files. FUNCTIONS FcMatrix FcMatrix structures hold an affine transformation in matrix form. Initializes a matrix to the identify transformation. FcMatrix *FcMatrixCopy (const FcMatrix *mat) Allocates a new FcMatrix and copies 'mat' into it. FcBool FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2) Returns FcTrue if 'mat1' and 'mat2' are equal, else FcFalse. void FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMa- trix *b) Multiplies 'a' and 'b' together, placing the result in 'result'. 'result' may refer to the sam matrix as either 'a' or 'b'. void FcMatrixRotate (FcMatrix *m, double c, double s) If 'c' is cos(angle) and 's' is sin(angle), FcMatrixRotate rotates the matrix by 'angle'. void FcMatrixScale (FcMatrix *m, double sx, double sy) Scales 'm' by 'sx' in the horizontal dimension and 'sy' in the vertical dimension. void FcMatrixShear (FcMatrix *m, double sh, double sv) Shears 'm' by 'sh' in the horizontal direction and 'sv' in the vertical direction. FcCharSet An FcCharSet is a boolean array indicating a set of unicode chars. Those associated with a font are marked constant and cannot be edited. FcCharSets may be reference counted internally to reduce memory con- sumption; this may be visible to applications as the result of FcCha- rSetCopy may return it's argument, and that CharSet may remain unmodi- fiable. FcCharSet *FcCharSetCreate (void) Creates an empty FcCharSet object. void FcCharSetDestroy (FcCharSet *fcs) Frees an FcCharSet object. FcBool FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4) Adds a single unicode char to the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. FcCharSet *FcCharSetCopy (FcCharSet *src) Makes a copy of 'src'; note that this may not actually do any- thing more than increment the reference count on 'src'. FcBool FcCharSetEqual (const FcCharSet *a, const FcCharSet *b) Returns whether 'a' and 'b' contain the same set of unicode chars. FcCharSet *FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b) Returns a set including only those chars found in both 'a' and 'b'. FcCharSet *FcCharSetUnion (const FcCharSet *a, const FcCharSet *b); Returns a set including only those chars found in either 'a' or 'b'. FcCharSet *FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b) Returns a set including only those chars found in 'a' but not 'b'. FcBool FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4) Returns whether 'fcs' contains the char 'ucs4'. FcChar32 FcCharSetCount (const FcCharSet *a) Returns the total number of unicode chars in 'a'. FcChar32 FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b) Returns the number of chars that are in both 'a' and 'b'. FcChar32 FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b) Returns the number of chars that are in 'a' but not in 'b'. FcBool FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b) Returns whether 'a' is a subset of 'b'. FcChar32 FcCharSetFirstPage (const FcCharSet *a, FcChar32 [FC_CHARSET_MAP_SIZE], FcChar32 *next) Builds an array of bits marking the first page of Unicode cover- age of 'a'. Returns the base of the array. 'next' contains the next page in the font. FcChar32 FcCharSetNextPage (const FcCharSet *a, FcChar32 [FC_CHARSET_MAP_SIZE], FcChar32 *next) Builds an array of bits marking the Unicode coverage of 'a' for page '*next'. Returns the base of the array. 'next' contains the next page in the font. FcValue FcValue is a structure containing a type tag and a union of all possi- ble datatypes. The tag is an enum of type FcType and is intended to provide a measure of run-time typechecking, although that depends on careful programming. void FcValueDestroy (FcValue v) Frees any memory referenced by `v'. Values of type FcType- String, FcTypeMatrix and FcTypeCharSet reference memory, the other types do not. FcValue FcValueSave (FcValue v) Returns a copy of `v' duplicating any object referenced by it so that `v' may be safely destroyed without harming the new value. FcPattern An FcPattern is an opaque type that holds both patterns to match against the available fonts, as well as the information about each font. FcPattern *FcPatternCreate (void) Creates a pattern with no properties; used to build patterns from scratch. void FcPatternDestroy (FcPattern *p) Destroys a pattern, in the process destroying all related val- ues. FcBool FcPatternEqual (const FcPattern *pa, const FcPattern *pb); Returns whether 'pa' and 'pb' are exactly alike. FcBool FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os) Returns whether 'pa' and 'pb' have exactly the same values for all of the objects in 'os'. FcChar32 FcPatternHash (const FcPattern *p) Returns a 32-bit number which is the same for any two patterns which are exactly alike. FcBool FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append) Adds a single value to the list of values associated with the property named `object'. If `append' is FcTrue, the value is added at the end of any existing list, otherwise it is inserted at the begining. `value' is saved (with FcValueSave) when inserted into the pattern so that the library retains no refer- ence to any application-supplied data structure. FcBool FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append) FcPatternAddWeak is essentially the same as FcPatternAdd except that any values added to the list have binding 'weak' instead of 'strong'. FcBool FcPatternAddInteger (FcPattern *p, const char *object, int i) FcBool FcPatternAddDouble (FcPattern *p, const char *object, double d) FcBool FcPatternAddString (FcPattern *p, const char *object, const char *s) FcBool FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s) FcBool FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c) FcBool FcPatternAddBool (FcPattern *p, const char *object, FcBool b) These are all convenience functions that insert objects of the specified type into the pattern. Use these in preference to FcPatternAdd as they will provide compile-time typechecking. These all append values to any existing list of values. FcResult FcPatternGet (FcPattern *p, const char *object, int id, FcValue *v) Returns in `v' the `id'th value associated with the property `object'. The value returned is not a copy, but rather refers to the data stored within the pattern directly. Applications must not free this value. FcResult FcPatternGetInteger (FcPattern *p, const char *object, int n, int *i); FcResult FcPatternGetDouble (FcPattern *p, const char *object, int n, double *d); FcResult FcPatternGetString (FcPattern *p, const char *object, int n, char **const s); FcResult FcPatternGetMatrix (FcPattern *p, const char *object, int n, FcMatrix **s); FcResult FcPatternGetCharSet (FcPattern *p, const char *object, int n, FcCharSet **c); FcResult FcPatternGetBool (FcPattern *p, const char *object, int n, FcBool *b); These are convenience functions that call FcPatternGet and ver- ify that the returned data is of the expected type. They return FcResultTypeMismatch if this is not the case. Note that these (like FcPatternGet) do not make a copy of any data structure referenced by the return value. Use these in preference to FcPatternGet to provide compile-time typechecking. FcPattern *FcPatternBuild (FcPattern *orig, ...); FcPattern *FcPatternVaBuild (FcPattern *orig, va_list va) Builds a pattern using a list of objects, types and values. Each value to be entered in the pattern is specified with three arguments: 1. Object name, a string describing the property to be added. 2. Object type, one of the FcType enumerated values 3. Value, not an FcValue, but the raw type as passed to any of the FcPatternAdd functions. Must match the type of the second argument. The argument list is terminated by a null object name, no object type nor value need be passed for this. The values are added to `pattern', if `pattern' is null, a new pattern is created. In either case, the pattern is returned. Example: pattern = FcPatternBuild (0, FC_FAMILY, FtTypeString, "Times", (char *) 0); FcPatternVaBuild is used when the arguments are already in the form of a varargs value. FcBool FcPatternDel (FcPattern *p, const char *object) Deletes all values associated with the property `object', returning whether the property existed or not. void FcPatternPrint (const FcPattern *p) Prints an easily readable version of the pattern to stdout. There is no provision for reparsing data in this format, it's just for diagnostics and debugging. void FcDefaultSubstitute (FcPattern *pattern) Supplies default values for underspecified font patterns: o Patterns without a specified style or weight are set to Medium o Patterns without a specified style or slant are set to Roman o Patterns without a specified pixel size are given one computed from any specified point size (default 12), dpi (default 75) and scale (default 1). FcPattern *FcNameParse (const char *name) Converts 'name' from the standard text format described above into a pattern. FcChar8 *FcNameUnparse (FcPattern *pat) Converts the given pattern into the standard text format described above. The return value is not static, but instead refers to newly allocated memory which should be freed by the caller. FcFontSet An FcFontSet simply holds a list of patterns; these are used to return the results of listing available fonts. FcFontSet *FcFontSetCreate (void) Creates an empty font set. void FcFontSetDestroy (FcFontSet *s); Destroys a font set. Note that this destroys any referenced patterns as well. FcBool FcFontSetAdd (FcFontSet *s, FcPattern *font) Adds a pattern to a font set. Note that the pattern is not copied before being inserted into the set. FcObjectSet An FcObjectSet holds a list of pattern property names; it is used to indiciate which properties are to be returned in the patterns from FcFontList. FcObjectSet *FcObjectSetCreate (void) Creates an empty set. FcBool FcObjectSetAdd (FcObjectSet *os, const char *object) Adds a proprety name to the set. void FcObjectSetDestroy (FcObjectSet *os) Destroys an object set. FcObjectSet *FcObjectSetBuild (const char *first, ...) FcObjectSet *FcObjectSetVaBuild (const char *first, va_list va) These build an object set from a null-terminated list of prop- erty names. FcObjectType Provides for applcation-specified font name object types so that new pattern elements can be generated from font names. FcBool FcNameRegisterObjectTypes (const FcObjectType *types, int ntype) Register 'ntype' new object types. FcBool FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype) Unregister 'ntype' object types. const FcObjectType *FcNameGetObjectType (const char *object) Return the object type for the pattern element named 'object'. FcConstant Provides for application-specified symbolic constants for font names. FcBool FcNameRegisterConstants (const FcConstant *consts, int nconsts) Register 'nconsts' new symbolic constants. FcBool FcNameUnregisterConstants (const FcConstant *consts, int ncon- sts) Unregister 'nconsts' symbolic constants. const FcConstant *FcNameGetConstant (FcChar8 *string) Return the FcConstant structure related to symbolic constant 'string'. FcBool FcNameConstant (FcChar8 *string, int *result); Returns whether a symbolic constant with name 'string' is regis- tered, placing the value of the constant in 'result' if present. FcBlanks An FcBlanks object holds a list of Unicode chars which are expected to be blank when drawn. When scanning new fonts, any glyphs which are empty and not in this list will be assumed to be broken and not placed in the FcCharSet associated with the font. This provides a signifi- cantly more accurate CharSet for applications. FcBlanks *FcBlanksCreate (void) Creates an empty FcBlanks object. void FcBlanksDestroy (FcBlanks *b) Destroys an FcBlanks object, freeing any associated memory. FcBool FcBlanksAdd (FcBlanks *b, FcChar32 ucs4) Adds a single character to an FcBlanks object, returning FcFalse if this process ran out of memory. FcBool FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4) Returns whether the specified FcBlanks object contains the indi- cated Unicode value. FcConfig An FcConfig object holds the internal representation of a configura- tion. There is a default configuration which applications may use by passing 0 to any function using the data within an FcConfig. FcConfig *FcConfigCreate (void) Creates an empty configuration. void FcConfigDestroy (FcConfig *config) Destroys a configuration and any data associated with it. Note that calling this function with the return from FcConfigGetCur- rent will place the library in an indeterminate state. FcBool FcConfigSetCurrent (FcConfig *config) Sets the current default configuration to 'config'. Implicitly calls FcConfigBuildFonts if necessary, returning FcFalse if that call fails. FcConfig *FcConfigGetCurrent (void) Returns the current default configuration. FcBool FcConfigUptoDate (FcConfig *config) Checks all of the files related to 'config' and returns whether the in-memory version is in sync with the disk version. FcBool FcConfigBuildFonts (FcConfig *config) Builds the set of available fonts for the given configuration. Note that any changes to the configuration after this call have indeterminate effects. Returns FcFalse if this operation runs out of memory. FcStrList *FcConfigGetConfigDirs (FcConfig *config) Returns the list of font directories specified in the configura- tion files for 'config'. Does not include any subdirectories. FcStrList *FcConfigGetFontDirs (FcConfig *config) Returns the list of font directories in 'config'. This includes the configured font directories along with any directories below those in the filesystem. FcStrList *FcConfigGetConfigFiles (FcConfig *config) Returns the list of known configuration files used to generate 'config'. Note that this will not include any configuration done with FcConfigParse. char *FcConfigGetCache (FcConfig *config) Returns the name of the file used to store per-user font infor- mation. FcFontSet *FcConfigGetFonts (FcConfig *config, FcSetName set) Returns one of the two sets of fonts from the configuration as specified by 'set'. FcBlanks *FcConfigGetBlanks (FcConfig *config) Returns the FcBlanks object associated with the given configura- tion, if no blanks were present in the configuration, this func- tion will return 0. int FcConfigGetRescanInverval (FcConfig *config) Returns the interval between automatic checks of the configura- tion (in seconds) specified in 'config'. The configuration is checked during a call to FcFontList when this interval has passed since the last check. FcBool FcConfigSetRescanInverval (FcConfig *config, int rescanInterval) Sets the rescan interval; returns FcFalse if an error occurred. FcBool FcConfigAppFontAddFile (FcConfig *config, const char *file) Adds an application-specific font to the configuration. FcBool FcConfigAppFontAddDir (FcConfig *config, const char *dir) Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. void FcConfigAppFontClear (FcConfig *config) Clears the set of application-specific fonts. FcBool FcConfigSubstituteWithPat (FcConfig *config, FcPattern *p, FcPattern *p_pat FcMatchKind kind) Performs the sequence of pattern modification operations, if 'kind' is FcMatchPattern, then those tagged as pattern opera- tions are applied, else if 'kind' is FcMatchFont, those tagged as font operations are applied and p_pat is used for ele- ments with target=pattern. FcBool FcConfigSubstitute (FcConfig *config, FcPattern *p, FcMatchKind kind) Calls FcConfigSubstituteWithPat setting p_pat to NULL. FcPattern *FcFontMatch (FcConfig *config, FcPattern *p, FcResult *result) Returns the font in 'config' most close matching 'p'. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for 'p'; otherwise the results will not be correct. FcFontSet *FcFontSort (FcConfig *config, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result) Returns the list of fonts sorted by closeness to 'p'. If 'trim' is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in 'csp', if 'csp' is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for 'p'; otherwise the results will not be correct. The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications must not modify these patterns. Instead, they should be passed, along with 'p' to FcFontRenderPrepare which combines them into a complete pattern. The FcFontSet returned by FcFontSort is destroyed by caling FcFontSet- Destroy. FcPattern *FcFontRenderPrepare (FcConfig *config, FcPattern *pat, FcPattern *font) Creates a new pattern consisting of elements of 'font' not appearing in 'pat', elements of 'pat' not appearing in 'font' and the best matching value from 'pat' for elements appearing in both. The result is passed to FcConfigSubstitute with 'kind' FcMatchFont and then returned. FcFontSet *FcFontList (FcConfig *config, FcPattern *p, FcObjectSet *os) Selects fonts matching 'p', creates patterns from those fonts containing only the objects in 'os' and returns the set of unique such patterns. char *FcConfigFilename (const char *name) Given the specified external entity name, return the associated filename. This provides applications a way to convert various configuration file references into filename form. A null or empty 'name' indicates that the default configuration file should be used; which file this references can be overridden with the FC_CONFIG_FILE environment variable. Next, if the name starts with '~', it refers to a file in the current users home directory. Other- wise if the name doesn't start with '/', it refers to a file in the default configuration directory; the built-in default directory can be overridden with the FC_CONFIG_DIR environment variable. Initialization These functions provide some control over how the library is initial- ized. FcConfig *FcInitLoadConfig (void) Loads the default configuration file and returns the resulting configuration. Does not load any font information. FcConfig *FcInitLoadConfigAndFonts (void) Loads the default configuration file and builds information about the available fonts. Returns the resulting configuration. FcBool FcInit (void) Loads the default configuration file and the fonts referenced therein and sets the default configuration to that result. Returns whether this process succeeded or not. If the default configuration has already been loaded, this routine does nothing and returns FcTrue. int FcGetVersion (void) Returns the version number of the library. FcBool FcInitReinitialize (void) Forces the default configuration file to be reloaded and resets the default configuration. FcBool FcInitBringUptoDate (void) Checks the rescan interval in the default configuration, check- ing the configuration if the interval has passed and reloading the configuration if when any changes are detected. FcAtomic These functions provide a safe way to update config files, allowing ongoing reading of the old config file while locked for writing and ensuring that a consistent and complete version of the config file is always available. FcAtomic * FcAtomicCreate (const FcChar8 *file) Creates a data structure containing data needed to control access to 'file'. Writing is done to a separate file. Once that file is complete, the original configuration file is atomi- cally replaced so that reading process always see a consistent and complete file without the need to lock for reading. FcBool FcAtomicLock (FcAtomic *atomic) Attempts to lock the file referenced by 'atomic'. Returns FcFalse if the file is locked by another process, else returns FcTrue and leaves the file locked. FcChar8 *FcAtomicNewFile (FcAtomic *atomic) Returns the filename for writing a new version of the file ref- erenced by 'atomic'. FcChar8 *FcAtomicOrigFile (FcAtomic *atomic) Returns the file refernced by 'atomic'. FcBool FcAtomicReplaceOrig (FcAtomic *atomic) Replaces the original file referenced by 'atomic' with the new file. void FcAtomicDeleteNew (FcAtomic *atomic) Deletes the new file. void FcAtomicUnlock (FcAtomic *atomic) Unlocks the file. void FcAtomicDestroy (FcAtomic *atomic) Destroys 'atomic'. FreeType specific functions #include While the fontconfig library doesn't insist that FreeType be used as the rasterization mechanism for fonts, it does provide some convenience functions. FT_UInt FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4) Maps a Unicode char to a glyph index. This function uses infor- mation from several possible underlying encoding tables to work around broken fonts. As a result, this function isn't designed to be used in performance sensitive areas; results from this function are intended to be cached by higher level functions. FcCharSet *FcFreeTypeCharSet (FT_Face face, FcBlanks *blanks) Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. FcPattern *FcFreeTypeQuery (const char *file, int id, FcBlanks *blanks, int *count) Constructs a pattern representing the 'id'th font in 'file'. The number of fonts in 'file' is returned in 'count'. XML specific functions FcBool FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain) Walks the configuration in 'file' and constructs the internal representation in 'config'. Any include files referenced from within 'file' will be loaded with FcConfigLoad and also parsed. If 'complain' is FcFalse, no warning will be displayed if 'file' does not exist. File and Directory routines FcBool FcFileScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const char *file, FcBool force) Scans a single file and adds all fonts found to 'set'. If 'force' is FcTrue, then the file is scanned even if associated information is found in 'cache'. If 'file' is a directory, it is added to 'dirs'. FcBool FcDirScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const char *dir, FcBool force) Scans an entire directory and adds all fonts found to 'set'. If 'force' is FcTrue, then the directory and all files within it are scanned even if information is present in the per-directory cache file or 'cache'. Any subdirectories found are added to 'dirs'. FcBool FcDirSave (FcFontSet *set, FcStrSet *dirs, const char *dir) Creates the per-directory cache file for 'dir' and populates it with the fonts in 'set' and subdirectories in 'dirs'. FcBool FcDirCacheValid (const FcChar8 *cache_file) Returns FcTrue if 'cache_file' is no older than the directory containing it, else FcFalse. FcStrSet and FcStrList A data structure for enumerating strings, used to list directories while scanning the configuration as directories are added while scan- ning. FcStrSet *FcStrSetCreate (void) Create an empty set. FcBool FcStrSetMember (FcStrSet *set, const FcChar8 *s) Returns whether 's' is a member of 'set'. FcBool FcStrSetAdd (FcStrSet *set, const FcChar8 *s) Adds a copy of 's' to 'set'. FcBool FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s) Adds a copy 's' to 'set', The copy is created with FcStrCopy- Filename so that leading '~' values are replaced with the value of the HOME environment variable. FcBool FcStrSetDel (FcStrSet *set, const FcChar8 *s) Removes 's' from 'set', returning FcTrue if 's' was a member else FcFalse. void FcStrSetDestroy (FcStrSet *set) Destroys 'set'. FcStrList *FcStrListCreate (FcStrSet *set) Creates an enumerator to list the strings in 'set'. FcChar8 *FcStrListNext (FcStrList *list) Returns the next string in 'set'. void FcStrListDone (FcStrList *list) Destroys the enumerator 'list'. String utilities int FcUtf8ToUcs4 (FcChar8 *src, FcChar32 *dst, int len) Converts the next Unicode char from 'src' into 'dst' and returns the number of bytes containing the char. 'src' nust be at least 'len' bytes long. int FcUcs4ToUtf8 (FcChar32 src, FcChar8 dst[FC_UTF8_MAX_LEN]) Converts the Unicode char from 'src' into 'dst' and returns the number of bytes needed to encode the char. FcBool FcUtf8Len (FcChar8 *src, int len, int *nchar, int *wchar) Counts the number of Unicode chars in 'len' bytes of 'src'. Places that count in 'nchar'. 'wchar' contains 1, 2 or 4 depending on the number of bytes needed to hold the largest uni- code char counted. The return value indicates whether 'src' is a well-formed UTF8 string. int FcUtf16ToUcs4 (FcChar8 *src, FcEndian endian, FcChar32 *dst, int len) Converts the next Unicode char from 'src' into 'dst' and returns the number of bytes containing the char. 'src' must be at least 'len' bytes long. Bytes of 'src' are combined into 16-bit units according to 'endian'. FcBool FcUtf16Len (FcChar8 *src, FcEndian endian, int len, int *nchar, int *wchar) Counts the number of Unicode chars in 'len' bytes of 'src'. Bytes of 'src' are combined into 16-bit units according to 'endian'. Places that count in 'nchar'. 'wchar' contains 1, 2 or 4 depending on the number of bytes needed to hold the largest unicode char counted. The return value indicates whether 'string' is a well-formed UTF16 string. FcChar8 *FcStrCopy (const FcChar8 *s) Allocates memory, copies 's' and returns the resulting buffer. Yes, this is 'strdup', but that function isn't available on every platform. FcChar8 *FcStrCopyFilename (const FcChar8 *s) Just like FcStrCopy except that it converts any leading '~' characters in 's' to the value of the HOME environment variable. int FcStrCmpIgnoreCase (const char *s1, const char *s2) Returns the usual <0, 0, >0 result of comparing 's1' and 's2'. This test is case-insensitive in the ASCII range and will oper- ate properly with UTF8 encoded strings, although it does not check for well formed strings. FcChar8 *FcStrDirname (const FcChar8 *file) Returns the directory containing 'file'. FcChar8 *FcStrBasename (const FcChar8 *file) Returns the filename of 'file' stripped of any leading directory names. CONFIGURATION FILE FORMAT Configuration files for fontconfig are stored in XML format; this for- mat makes external configuration tools easier to write and ensures that they will generate syntactically correct configuration files. As XML files are plain text, they can also be manipulated by the expert user using a text editor. The fontconfig document type definition resides in the external entity "fonts.dtd"; this is normally stored in the default font configuration directory (/etc/fonts). Each configuration file should contain the following structure: ... This is the top level element for a font configuration and can contain , , , and elements in any order. This element contains a directory name which will be scanned for font files to include in the set of available fonts. This element contains a file name for the per-user cache of font infor- mation. If it starts with '~', it refers to a file in the users home directory. This file is used to hold information about fonts that isn't present in the per-directory cache files. It is automatically maintained by the fontconfig library. The default for this file is ``~/.fonts.cache-'', where is the font configuration file version number (currently 1). This element contains the name of an additional configuration file. When the XML datatype is traversed by FcConfigParse, the contents of the file will also be incorporated into the configuration by passing the filename to FcConfigLoadAndParse. If 'ignore_missing' is set to "yes" instead of the default "no", a missing file will elicit no warn- ing message from the library. This element provides a place to consolodate additional configuration information. can contain and elements in any order. Fonts often include "broken" glyphs which appear in the encoding but are drawn as blanks on the screen. Within the element, place each Unicode characters which is supposed to be blank in an ele- ment. Characters outside of this set which are drawn as blank will be elided from the set of characters supported by the font. The element holds an element which indicates the default interval between automatic checks for font configuration changes. Fontconfig will validate all of the configuration files and directories and automatically rebuild the internal datastructures when this inter- val passes. This element holds first a (possibly empty) list of elements and then a (possibly empty) list of elements. Patterns which match all of the tests are subjected to all the edits. If 'target' is set to "font" instead of the default "pattern", then this element applies to the font name resulting from a match rather than a font pattern to be matched. This element contains a single value which is compared with the pattern property "property" (substitute any of the property names seen above). 'compare' can be one of "eq", "not_eq", "less", "less_eq", "more", or "more_eq". 'qual' may either be the default, "any", in which case the match succeeds if any value associated with the property matches the test value, or "all", in which case all of the values associated with the property must match the test value. This element contains a list of expression elements (any of the value or operator elements). The expression elements are evaluated at run- time and modify the property "property". The modification depends on whether "property" was matched by one of the associated ele- ments, if so, the modification may affect the first matched value. Any values inserted into the property are given the indicated binding. 'mode' is one of: Mode Operation with match Operation without match -------------------------------------------------- "assign" Replace matching value Replace all values "assign_replace" Replace all values Replace all values "prepend" Insert before matching value Insert at head of list "prepend_first" Insert at head of listInsert at head of list "append" Append after matching value Append at end of list "append_last" Append at end of listAppend at end of list These elements hold a single value of the indicated type. ele- ments hold either true or false. This element holds the four elements of an affine transforma- tion. Holds a property name. Evaluates to the first value from the property of the font, not the pattern. Holds the name of a constant; these are always integers and serve as symbolic names for common font values: Constant Property CPP symbol ------------------------------ light weight FC_WEIGHT_LIGHT medium weight FC_WEIGHT_MEDIUM demibold weight FC_WEIGHT_DEMIBOLD bold weight FC_WEIGHT_BOLD black weight FC_WEIGHT_BLACK roman slant FC_SLANT_ROMAN italic slant FC_SLANT_ITALIC oblique slant FC_SLANT_OBLIQUE proportional spacing FC_PROPORTIONAL mono spacing FC_MONO charcell spacing FC_CHARCELL unknown rgba FC_RGBA_UNKNOWN rgb rgba FC_RGBA_RGB bgr rgba FC_RGBA_BGR vrgb rgba FC_RGBA_VRGB vbgr rgba FC_RGBA_VBGR none rgba FC_RGBA_NONE These elements perform the specified operation on a list of expression elements. and are boolean, not bitwise. These elements compare two values, producing a boolean result. Inverts the boolean sense of its one expression element This element takes three expression elements; if the value of the first is true, it produces the value of the second, otherwise it produces the value of the third. Alias elements provide a shorthand notation for the set of common match operations needed to substitute one font family for another. They con- tain a element followed by optional , and elements. Fonts matching the element are edited to prepend the list of ed families before the matching , append the able familys after the matching and append the families to the end of the family list. Holds a single font family name These hold a list of elements to be used by the ele- ment. EXAMPLE CONFIGURATION FILE System configuration file This is an example of a system-wide configuration file /usr/X11R6/lib/X11/fonts/truetype /usr/X11R6/lib/X11/fonts/Type1 mono monospace sans serif monospace sans ~/.fonts.conf Times Times New Roman serif Helvetica Verdana sans Courier Courier New monospace serif Times New Roman sans Verdana monospace Andale Mono User configuration file This is an example of a per-user configuration file that lives in ~/.fonts.conf ~/misc/fonts rgb FILES fonts.conf contains configuration information for the fontconfig library consisting of directories to look at for font information as well as instructions on editing program specified font patterns before attempting to match the available fonts. It is in xml format. fonts.dtd is a DTD that describes the format of the configuration files. local.conf is sourced by the default system-wide fonts.conf file. Note that the normal 'make install' procedure for XFree86 is to replace any existing fonts.conf file with the new version. Place any local cus- tomizations in local.conf which this file references. ~/.fonts.conf is the conventional location for per-user font configura- tion, although the actual location is specified in the global fonts.conf file. ~/.fonts.cache-* is the conventional repository of font information that isn't found in the per-directory caches. This file is automati- cally maintained by fontconfig. AUTHOR Keith Packard, member of the XFree86 Project, Inc. FSLSFONTS(1) FSLSFONTS(1) NAME fslsfonts - list fonts served by X font server SYNOPSIS fslsfonts [-options ...] [-fn pattern] DESCRIPTION Fslsfonts lists the fonts that match the given pattern. The wildcard character "*" may be used to match any sequence of characters (includ- ing none), and "?" to match any single character. If no pattern is given, "*" is assumed. The "*" and "?" characters must be quoted to prevent them from being expanded by the shell. OPTIONS -server host:port This option specifies the X font server to contact. -l Lists some attributes of the font on one line in addition to its name. -ll Lists font properties in addition to -l output. -lll Supported for compatibility with xlsfonts, but output is the same as for -ll. -m This option indicates that long listings should also print the minimum and maximum bounds of each font. -C This option indicates that listings should use multiple col- umns. This is the same as -n 0. -1 This option indicates that listings should use a single column. This is the same as -n 1. -w width This option specifies the width in characters that should be used in figuring out how many columns to print. The default is 79. -n columns This option specifies the number of columns to use in display- ing the output. The default is 0, which will attempt to fit as many columns of font names into the number of character speci- fied by -w width. -u This option indicates that the output should be left unsorted. SEE ALSO xfs(1), showfont(1), xlsfonts(1) ENVIRONMENT FONTSERVER to get the default host and port to use. BUGS Doing ``fslsfonts -l'' can tie up your server for a very long time. This is really a bug with single-threaded non-preemptable servers, not with this program. AUTHOR Dave Lemke, Network Computing Devices, Inc FSTOBDF(1) FSTOBDF(1) NAME fstobdf - generate BDF font from X font server SYNOPSIS fstobdf [ -server server ] -fn fontname DESCRIPTION The fstobdf program reads a font from a font server and prints a BDF file on the standard output that may be used to recreate the font. This is useful in testing servers, debugging font metrics, and repro- ducing lost BDF files. OPTIONS -server servername This option specifies the server from which the font should be read. -fn fontname This option specifies the font for which a BDF file should be generated. ENVIRONMENT FONTSERVER default server to use SEE ALSO xfs(1), bdftopcf(1), fslsfonts(1) AUTHOR Olaf Brandt, Network Computing Devices Dave Lemke, Network Computing Devices Jim Fulton, MIT X Consortium gccmakedep(1) gccmakedep(1) NAME gccmakedep - create dependencies in makefiles using 'gcc -M' SYNOPSIS gccmakedep [ -sseparator ] [ -fmakefile ] [ -a ] [ -- options -- ] sourcefile ... DESCRIPTION The gccmakedep program calls 'gcc -M' to output makefile rules describ- ing the dependencies of each sourcefile, so that make(1) knows which object files must be recompiled when a dependency has changed. By default, gccmakedep places its output in the file named makefile if it exists, otherwise Makefile. An alternate makefile may be specified with the -f option. It first searches the makefile for a line begin- ning with # DO NOT DELETE or one provided with the -s option, as a delimiter for the dependency output. If it finds it, it will delete everything following this up to the end of the makefile and put the output after this line. If it doesn't find it, the program will append the string to the makefile and place the output after that. EXAMPLE Normally, gccmakedep will be used in a makefile target so that typing 'make depend' will bring the dependencies up to date for the makefile. For example, SRCS = file1.c file2.c ... CFLAGS = -O -DHACK -I../foobar -xyz depend: gccmakedep -- $(CFLAGS) -- $(SRCS) OPTIONS The program will ignore any option that it does not understand, so you may use the same arguments that you would for gcc(1), including -D and -U options to define and undefine symbols and -I to set the include path. -a Append the dependencies to the file instead of replacing exist- ing dependencies. -fmakefile Filename. This allows you to specify an alternate makefile in which gccmakedep can place its output. Specifying "-" as the file name (that is, -f-) sends the output to standard output instead of modifying an existing file. -sstring Starting string delimiter. This option permits you to specify a different string for gccmakedep to look for in the makefile. The default is "# DO NOT DELETE". -- options -- If gccmakedep encounters a double hyphen (--) in the argument list, then any unrecognized arguments following it will be silently ignored. A second double hyphen terminates this spe- cial treatment. In this way, gccmakedep can be made to safely ignore esoteric compiler arguments that might normally be found in a CFLAGS make macro (see the EXAMPLE section above). -D, -I, and -U options appearing between the pair of double hyphens are still processed normally. SEE ALSO gcc(1), make(1), makedepend(1). AUTHOR gccmakedep was written by the XFree86 Project based on code supplied by Hongjiu Lu. Colin Watson wrote this manual page, originally for the Debian Project, based partly on the manual page for makedepend(1). GLXGEARS(1) GLXGEARS(1) NAME glxgears - GLX version of the infamous "gears" GL demo. SYNOPSIS glxgears [-info] [-display displayname] DESCRIPTION glxgears is a GLX demo that draws three rotating gears, and prints out framerate information to stdout. Command line options include: -info Print out GL implementation information before running the demo. -display displayname Specify the display to query. ENVIRONMENT DISPLAY To get the default host, display number, and screen. SEE ALSO glxinfo(1) AUTHOR Ported to straight GLX by Brian Paul. GLXINFO(1) GLXINFO(1) NAME glxinfo - display info about a GLX extension and OpenGL renderer. SYNOPSIS glxinfo [-t] [-v] [-b] [-display displayname] DESCRIPTION glxinfo lists information about the GLX extension, OpenGL capable visu- als, and the OpenGL renderer on an X server. The GLX and renderer info includes the version and extension attributes. The visual info lists the GLX visual attributes available for each OpenGL capable visual (e.g. whether the visual is double buffered, the component sizes, Z- buffering depth, etc). Command line options include: -t By default the visual info is presented in a concise 80 charac- ter wide tabular format. The -t option directs glxinfo to pro- duce a wider, more readable tabular format. -v Directs glxinfo to generate a verbose format output style for the visual list similar to the info of xdpyinfo. -b Print the ID of the "best" visual on screen 0. -l Print interesting OpenGL limits. -i Use indirect rendering connection only. -display displayname Specify the display to query. ENVIRONMENT DISPLAY To get the default host, display number, and screen. SEE ALSO xdpyinfo(1) AUTHOR Brian Paul Modifications for XFree86 added by Mark Paton ICEAUTH(1) ICEAUTH(1) NAME iceauth - ICE authority file utility SYNOPSIS iceauth [ -f authfile ] [ -vqib ] [ command arg ... ] DESCRIPTION The iceauth program is used to edit and display the authorization information used in connecting with ICE. This program is usually used to extract authorization records from one machine and merge them in on another (as is the case when using remote logins or granting access to other users). Commands (described below) may be entered interactively, on the iceauth command line, or in scripts. AUTHOR Ralph Mor, X Consortium ICO(1) ICO(1) NAME ico - animate an icosahedron or other polyhedron SYNOPSIS ico [-display display] [-geometry geometry] [-r] [-d pattern] [-i] [-dbl] [-faces] [-noedges] [-sleep n] [-obj object] [-objhelp] [-colors color-list] DESCRIPTION Ico displays a wire-frame rotating polyhedron, with hidden lines removed, or a solid-fill polyhedron with hidden faces removed. There are a number of different polyhedra available; adding a new polyhedron to the program is quite simple. OPTIONS -r Display on the root window instead of creating a new window. -d pattern Specify a bit pattern for drawing dashed lines for wire frames. -i Use inverted colors for wire frames. -dbl Use double buffering on the display. This works for either wire frame or solid fill drawings. For solid fill drawings, using this switch results in substantially smoother movement. Note that this requires twice as many bit planes as without double buffering. Since some colors are typically allocated by other programs, most eight-bit-plane displays will probably be limited to eight colors when using double buffering. -faces Draw filled faces instead of wire frames. -noedges Don't draw the wire frames. Typically used only when -faces is used. -sleep n Sleep n seconds between each move of the object. -obj object Specify what object to draw. If no object is specified, an icosahedron is drawn. -objhelp Print out a list of the available objects, along with informa- tion about each object. -colors color color ... Specify what colors should be used to draw the filled faces of the object. If less colors than faces are given, the colors are reused. PROGRAM TREMINATION Pressing "q" will close a window. If compiled with threads support, the program will stop only when all threads terminate. You can also close an animation window using the ICCCM delete message (depending on your window manager, you will have a decoration button or menu to send such message). ADDING POLYHEDRA If you have the source to ico, it is very easy to add more polyhedra. Each polyhedron is defined in an include file by the name of objXXX.h, where XXX is something related to the name of the polyhedron. The for- mat of the include file is defined in the file polyinfo.h. Look at the file objcube.h to see what the exact format of an objXXX.h file should be, then create your objXXX.h file in that format. After making the new objXXX.h file (or copying in a new one from else- where), simply do a 'make depend'. This will recreate the file allobjs.h, which lists all of the objXXX.h files. Doing a 'make' after this will rebuild ico with the new object information. SEE ALSO X(7) BUGS Pyramids and tetrahedrons with filled faces do not display correctly. A separate color cell is allocated for each name in the -colors list, even when the same name may be specified twice. Color allocation fails in TrueColor displays and option -faces does not work well. COPYRIGHT Copyright 1994 X Consortium See X(7) for a full statement of rights and permissions. IMAKE(1) IMAKE(1) NAME imake - C preprocessor interface to the make utility SYNOPSIS imake [ -Ddefine ] [ -Idir ] [ -Udefine ] [ -Ttemplate ] [ -f filename ] [ -C filename ] [ -s filename ] [ -e ] [ -v ] DESCRIPTION Imake is used to generate Makefiles from a template, a set of cpp macro functions, and a per-directory input file called an Imakefile. This allows machine dependencies (such as compiler options, alternate com- mand names, and special make rules) to be kept separate from the descriptions of the various items to be built. OPTIONS The following command line options may be passed to imake: -Ddefine This option is passed directly to cpp. It is typically used to set directory-specific variables. For example, the X Window System uses this flag to set TOPDIR to the name of the direc- tory containing the top of the core distribution and CURDIR to the name of the current directory, relative to the top. -Idirectory This option is passed directly to cpp. It is typically used to indicate the directory in which the imake template and configu- ration files may be found. -Udefine This option is passed directly to cpp. It is typically used to unset variables when debugging imake configuration files. -Ttemplate This option specifies the name of the master template file (which is usually located in the directory specified with -I) used by cpp. The default is Imake.tmpl. -f filename This option specifies the name of the per-directory input file. The default is Imakefile. -C filename This option specifies the name of the .c file that is con- structed in the current directory. The default is Imakefile.c. -s filename This option specifies the name of the make description file to be generated but make should not be invoked. If the filename is a dash (-), the output is written to stdout. The default is to generate, but not execute, a Makefile. -e This option indicates the imake should execute the generated Makefile. The default is to leave this to the user. -v This option indicates that imake should print the cpp command line that it is using to generate the Makefile. HOW IT WORKS Imake invokes cpp with any -I or -D flags passed on the command line and passes the name of a file containing the following 3 lines: #define IMAKE_TEMPLATE "Imake.tmpl" #define INCLUDE_IMAKEFILE #include IMAKE_TEMPLATE where Imake.tmpl and Imakefile may be overridden by the -T and -f com- mand options, respectively. The IMAKE_TEMPLATE typically reads in a file containing machine-depen- dent parameters (specified as cpp symbols), a site-specific parameters file, a file defining variables, a file containing cpp macro functions for generating make rules, and finally the Imakefile (specified by INCLUDE_IMAKEFILE) in the current directory. The Imakefile uses the macro functions to indicate what targets should be built; imake takes care of generating the appropriate rules. Imake configuration files contain two types of variables, imake vari- ables and make variables. The imake variables are interpreted by cpp when imake is run. By convention they are mixed case. The make vari- ables are written into the Makefile for later interpretation by make. By convention make variables are upper case. The rules file (usually named Imake.rules in the configuration direc- tory) contains a variety of cpp macro functions that are configured according to the current platform. Imake replaces any occurrences of the string ``@@'' with a newline to allow macros that generate more than one line of make rules. For example, the macro #define program_target(program, objlist) @@\ program: objlist @@\ $(CC) -o $@ objlist $(LDFLAGS) when called with program_target(foo, foo1.o foo2.o) will expand to foo: foo1.o foo2.o $(CC) -o $@ foo1.o foo2.o $(LDFLAGS) Imake also replaces any occurrences of the word ``XCOMM'' with the character ``#'' to permit placing comments in the Makefile without causing ``invalid directive'' errors from the preprocessor. Some complex imake macros require generated make variables local to each invocation of the macro, often because their value depends on parameters passed to the macro. Such variables can be created by using an imake variable of the form XVARdefn, where n is a single digit. A unique make variable will be substituted. Later occurrences of the variable XVARusen will be replaced by the variable created by the cor- responding XVARdefn. On systems whose cpp reduces multiple tabs and spaces to a single space, imake attempts to put back any necessary tabs (make is very picky about the difference between tabs and spaces). For this reason, colons (:) in command lines must be preceded by a backslash (\). USE WITH THE X WINDOW SYSTEM The X Window System uses imake extensively, for both full builds within the source tree and external software. As mentioned above, two special variables, TOPDIR and CURDIR, are set to make referencing files using relative path names easier. For example, the following command is gen- erated automatically to build the Makefile in the directory lib/X/ (relative to the top of the sources): % ../.././config/imake -I../.././config \ -DTOPDIR=../../. -DCURDIR=./lib/X When building X programs outside the source tree, a special symbol Use- Installed is defined and TOPDIR and CURDIR are omitted. If the config- uration files have been properly installed, the script xmkmf(1) may be used. INPUT FILES Here is a summary of the files read by imake as used by X. The inden- tation shows what files include what other files. Imake.tmpl generic variables site.def site-specific, BeforeVendorCF defined *.cf machine-specific *Lib.rules shared library rules site.def site-specific, AfterVendorCF defined Imake.rules rules Project.tmpl X-specific variables *Lib.tmpl shared library variables Imakefile Library.tmpl library rules Server.tmpl server rules Threads.tmpl multi-threaded rules Note that site.def gets included twice, once before the *.cf file and once after. Although most site customizations should be specified after the *.cf file, some, such as the choice of compiler, need to be specified before, because other variable settings may depend on them. The first time site.def is included, the variable BeforeVendorCF is defined, and the second time, the variable AfterVendorCF is defined. All code in site.def should be inside an #ifdef for one of these sym- bols. FILES Imakefile.c temporary input file for cpp /tmp/Imf.XXXXXX temporary Makefile for -s /tmp/IIf.XXXXXX temporary Imakefile if specified Imake- file uses # comments __cpp__ default C preprocessor SEE ALSO make(1), xmkmf(1) S. I. Feldman, Make -- A Program for Maintaining Computer Programs ENVIRONMENT VARIABLES The following environment variables may be set, however their use is not recommended as they introduce dependencies that are not readily apparent when imake is run: IMAKEINCLUDE If defined, this specifies a ``-I'' include argument to pass to the C preprocessor. E.g., ``-I/usr/X11/config''. IMAKECPP If defined, this should be a valid path to a preprocessor program. E.g., ``/usr/local/cpp''. By default, imake will use cc -E or __cpp__, depending on the OS specific configuration. IMAKEMAKE If defined, this should be a valid path to a make program, such as ``/usr/local/make''. By default, imake will use whatever make program is found using execvp(3). This variable is only used if the ``-e'' option is specified. AUTHOR Todd Brunhoff, Tektronix and MIT Project Athena; Jim Fulton, MIT X Con- sortium KBD_MODE(1) KBD_MODE(1) NAME kbd_mode - recover the Sun console keyboard SYNOPSIS kbd_mode [ -a -e -n -u ] DESCRIPTION Kbd_mode resets the Sun console keyboard to a rational state. OPTIONS The following options are supported, see kb(4S) for details: -a Causes ASCII to be reported. -e Causes Firm_events to be reported. -n Causes up/down key codes to be reported. -u Causes undecoded keyboard values to be reported. SEE ALSO kb(4S) LBXPROXY(1) LBXPROXY(1) NAME lbxproxy - Low BandWidth X proxy SYNOPSIS lbxproxy [:] [option] DESCRIPTION Applications that would like to take advantage of the Low Bandwidth extension to X (LBX) must make their connections to an lbxproxy. These applications need to know nothing about LBX, they simply connect to the lbxproxy as if were a regular server. The lbxproxy accepts client con- nections, multiplexes them over a single connection to the X server, and performs various optimizations on the X protocol to make it faster over low bandwidth and/or high latency connections. With regard to authentication/authorization, lbxproxy simply passes along to the server the credentials presented by the client. Since X clients will connect to lbxproxy, it is important that the user's .Xau- thority file contain entries with valid keys associated with the net- work ID of the proxy. lbxproxy does not get involved with how these entries are added to the .Xauthority file. The user is responsible for setting it up. The lbxproxy program has various options, all of which are optional. If : is specified, the proxy will use the given display port when listening for connections. The display port is an offset from port 6000, identical to the way in which regular X display connections are specified. If no port is specified on the command line option, lbxproxy will default to port 63. If the port number that the proxy tries to listen on is in use, the proxy will attempt to use another port number. If the proxy is not using the Proxy Manager and the default port number cannot be used, the port number that is used will be written to stderr. The other command line options that can be specified are: -help Prints a brief help message about the command line options. -display dpy Specifies the address of the X server supporting the LBX exten- sion. If this option is not specified, the display is obtained by the DISPLAY environment variable. -motion count A limited number of pointer motion events are allowed to be in flight between the server and the proxy at any given time. The maximum number of motion events that can be in flight is set with this option; the default is 8. -maxservers number The default behavior of lbxproxy is to manage a single server. However, lbxproxy can manage more than one server. The default maximum number of servers is 20. The number of servers can be overridden by setting the environment variable LBX- PROXY_MAXSERVERS to the desired number. The order of prece- dence from highest to lowest: command line, environment vari- able, default number. -[terminate|reset] The default behavior of lbxproxy is to continue running as usual when it's last client exits. The -terminate option will cause lbxproxy to exit when the last client exits. The -reset option will cause lbxproxy to reset itself when the last client exits. Resetting causes lbxproxy to clean up it's state and reconnect to the server. -reconnect The default behavior of lbxproxy is to exit when its connection to the server is broken. The -reconnect option will cause lbx- proxy to just reset instead (see -reset above) and attempt to reconnect to the server. -I Causes all remaining arguments to be ignored. -nolbx Disables all LBX optimizations. -nocomp Disables stream compression. -nodelta Disables delta request substitutions. -notags Disables usage of tags. -nogfx Disables reencoding of graphics requests (not including image related requests). -noimage Disables image compression. -nosquish Disables squishing of X events. -nointernsc Disables short circuiting of InternAtom requests. -noatomsfile Disables reading of the atoms control file. See the section on "Atom Control" for more details. -atomsfile file Overrides the default AtomControl file. See the section on "Atom Control" for more details. -nowinattr Disables GetWindowAttributes/GetGeometry grouping into one round trip. -nograbcmap Disables colormap grabbing. -norgbfile Disables color name to RGB resolution in proxy. -rgbfile path Specifies an alternate RGB database for color name to RGB reso- lution. -tagcachesize Set the size of the proxy's tag cache (in bytes). -zlevel level Set the Zlib compression level (used for stream compression). default is 6 1 = worst compression, fastest 9 = best compression, slowest -compstats Report stream compression statistics every time the proxy resets or receives a SIGHUP signal. -nozeropad Don't zero out unused pad bytes in X requests, replies, and events. -cheaterrors Allows cheating on X protocol for the sake of improved perfor- mance. The X protocol guarantees that any replies, events or errors generated by a previous request will be sent before those of a later request. This puts substantial restrictions on when lbxproxy can short circuit a request. The -cheaterrors option allows lbxproxy to violate X protocol rules with respect to errors. Use at your own risk. -cheatevents The -cheatevents option allows lbxproxy to violate X protocol rules with respect to events as well as errors. Use at your own risk. ATOM CONTROL At startup, lbxproxy "pre-interns" a configurable list of atoms. This allows lbxproxy to intern a group of atoms in a single round trip and immediately store the results in its cache. While running, lbxproxy uses heuristics to decide when to delay sending window property data to the server. The heuristics depend on the size of the data, the name of the property, and whether a window manager is running through the same lbxproxy. Atom control is specified in the "AtomControl" file, set up during installation of lbxproxy, with command line overrides. The file is a simple text file. There are three forms of lines: com- ments, length control, and name control. Lines starting with a '!' are treated as comments. A line of the form z length specifies the minimum length in bytes before property data will be delayed. A line of the form options atomname controls the given atom, where options is any combination of the fol- lowing characters: 'i' means the atom should be pre-interned; and 'w' means data for properties with this name should be delayed only if a window manager is also running through the same lbxproxy. BUGS When the authorization protocol XDM-AUTHORIZATION-1 is used: A client must be on the same host as lbxproxy for the client to be authorized to connect to the server. If a client is not on the same host as lbxproxy, the client will not be authorized to connect to the server. LIBXRX(1) LIBXRX(1) NAME libxrx - RX Netscape Navigator Plug-in DESCRIPTION The RX Plug-in may be used with Netscape Navigator (3.0 or later) to interpret documents in the RX MIME type format and start remote appli- cations. The RX Plug-in reads an RX document, from which it gets the list of services the application wants to use. Based on this information, the RX Plug-in sets the various requested services, including creating authorization keys if your X server supports the SECURITY extension. It then passes the relevant data, such as the X display name, to the application through an HTTP GET request of the associated CGI script. The Web server then executes the CGI script to start the application. The client runs on the web server host connected to your X server. In addition when the RX document is used within the EMBED tag (a Netscape extension to HTML), the RX Plug-in uses the XC-APPGROUP extension, if it is supported by your X server, to cause the remote application to be embedded within the browser page from which it was launched. INSTALLATION To install the RX Plug-in so that Netscape Navigator can use it, find the file named libxrx.so.6.3 or libxrx.sl.6.3 (or similar, depending on your platform) in /lib (e.g. /usr/X11R6.4/lib) and copy it to either /usr/local/lib/netscape/plugins or $HOME/.netscape/plugins. Do not install the symlinks libxrx.so or libxrx.sl; they would confuse Netscape. If you have configured Netscape Navigator to use the RX helper program (xrx), you must reconfigure it. Generally you simply need to remove or comment out the line you may have previously added in your mailcap file to use the RX helper program. Otherwise the plug-in will not be enabled. (The usual comment character for mailcap is ``#''.) If you are already running Netscape Navigator, you need to exit and restart it after copying the plug-in library so the new plug-in will be found. Once this is done you can check that Navigator has successfully loaded the plug-in by checking the ``About Plug-ins'' page from the Help menu. This should show something like: RX Plug-in File name: /usr/local/lib/netscape/plugins/libxrx.sl.6.3 X Remote Activation Plug-in Mime Type Description Suffixes Enabled application/x-rx X Remote Activation Plug-in xrx Yes Once correctly configured, Netscape Navigator will activate the RX Plug-in whenever you retrieve any document of the MIME type applica- tion/x-rx. RESOURCES The RX Plug-in looks for resources associated with the widget netscape.Navigator (class Netscape.TopLevelShell) and understands the following resource names and classes: xrxHasFirewallProxy (class XrxHasFirewallProxy) Specifies whether an X server firewall proxy (see xfwp) is run- ning and should be used. Default is ``False.'' The X firewall proxy uses the X Security Extension and this extension will only allow clients to connect to the X server if host-based authentication is turned on. See xfwp(1) for more information. xrxInternalWebServers (class XrxInternalWebServers) The web servers for which the X server firewall proxy should not be used (only relevant when xrxHasFirewallProxy is ``True''). Its value is a comma separated list of mask/value pairs to be used to filter internal web servers, based on their address. The mask part specifies which segments of the address are to be considered and the value part specifies what the result should match. For instance the following list: 255.255.255.0/198.112.45.0, 255.255.255.0/198.112.46.0 matches the address sets: 198.112.45.* and 198.112.46.*. More precisely, the test is (address & mask) == value. xrxFastWebServers (class XrxFastWebServers) The web servers for which LBX should not be used. The resource value is a list of address mask/value pairs, as previously described. xrxTrustedWebServers (class XrxTrustedWebServers) The web servers from which remote applications should be run as trusted clients. The default is to run remote applications as untrusted clients. The resource value is a list of address mask/value pairs, as previously described. ENVIRONMENT If the RX document requests X-UI-LBX service and the default X server does not advertise the LBX extension, the RX Plug-in will look for the environment variable ``XREALDISPLAY'' to get a second address for your X server and look for the LBX extension there. When running your browser through lbxproxy you will need to set XREALDISPLAY to the actual address of your server if you wish remote applications to be able to use LBX across the Internet. If the RX document requests XPRINT service, RX Plug-in looks for the variable ``XPRINTER'' to get the printer name and X Print server address to use. If the server address is not specified as part of XPRINTER, RX Plug-in uses the first one specified through the variable ``XPSERVERLIST'' when it is set. When it is not RX Plug-in then tries to use the video server as the print server. If the printer name is not specified via XPRINTER, RX Plug-in looks for it in the variables ``PDPRINTER'', then ``LPDEST'', and finally ``PRINTER'', Finally, if you are using a firewall proxy, RX Plug-in will look for ``PROXY_MANAGER'' to get the address of your proxy manager (see proxym- ngr). When not specified it will use ":6500" as the default. KNOWN BUG When an authorization key is created for a remote application to use the X Print service, the RX Plug-in has to create the key with an infi- nite timeout since nobody knows when the application will actually con- nect to the X Print server. It then revokes the key when its instance is destroyed (that is when you go to another page). However, if the Plug-in does not get destroyed properly, which happens when Netscape Navigator dies unexpectedly, the print authorization key will never get revoked. SEE ALSO xrx (1), xfwp (1), lbxproxy (1), proxymngr (1), The RX Document speci- fication AUTHORS Arnaud Le Hors and Kaleb Keithley, X Consortium LISTRES(1) LISTRES(1) NAME listres - list resources in widgets SYNOPSIS listres [-option ...] DESCRIPTION The listres program generates a list of a widget's resource database. The class in which each resource is first defined, the instance and class name, and the type of each resource is listed. If no specific widgets or the -all switch are given, a two-column list of widget names and their class hierarchies is printed. OPTIONS Listres accepts all of the standard toolkit command line options along with those listed below: -all This option indicates that listres should print information for all known widgets and objects. -nosuper This option indicates that resources that are inherited from a superclass should not be listed. This is useful for determin- ing which resources are new to a subclass. -variable This option indicates that widgets should be identified by the names of the class record variables rather than the class name given in the variable. This is useful for distinguishing sub- classes that have the same class name as their superclasses. -top name This option specifies the name of the widget to be treated as the top of the hierarchy. Case is not significant, and the name may match either the class variable name or the class name. The default is ``core''. -format printf-string This option specifies the printf-style format string to be used to print out the name, instance, class, and type of each resource. X DEFAULTS To be written. SEE ALSO X(7), xrdb(1), appropriate widget documents BUGS On operating systems that do not support dynamic linking of run-time routines, this program must have all of its known widgets compiled in. The sources provide several tools for automating this process for vari- ous widget sets. COPYRIGHT Copyright 1994 X Consortium See X(7) for a full statement of rights and permissions. AUTHOR Jim Fulton, MIT X Consortium LNDIR(1) LNDIR(1) NAME lndir - create a shadow directory of symbolic links to another direc- tory tree SYNOPSIS lndir [ -silent ] [ -ignorelinks ] [ -withrevinfo ] fromdir [ todir ] DESCRIPTION The lndir program makes a shadow copy todir of a directory tree fromdir, except that the shadow is not populated with real files but instead with symbolic links pointing at the real files in the fromdir directory tree. This is usually useful for maintaining source code for different machine architectures. You create a shadow directory con- taining links to the real source, which you will have usually mounted from a remote machine. You can build in the shadow tree, and the object files will be in the shadow directory, while the source files in the shadow directory are just symlinks to the real files. This scheme has the advantage that if you update the source, you need not propagate the change to the other architectures by hand, since all source in all shadow directories are symlinks to the real thing: just cd to the shadow directory and recompile away. The todir argument is optional and defaults to the current directory. The fromdir argument may be relative (e.g., ../src) and is relative to todir (not the current directory). Note that BitKeeper, RCS, SCCS, CVS and CVS.adm directories are shad- owed only if the -withrevinfo flag is specified. If you add files, simply run lndir again. New files will be silently added. Old files will be checked that they have the correct link. Deleting files is a more painful problem; the symlinks will just point into never never land. If a file in fromdir is a symbolic link, lndir will make the same link in todir rather than making a link back to the (symbolic link) entry in fromdir. The -ignorelinks flag changes this behavior. OPTIONS -silent Normally lndir outputs the name of each subdirectory as it descends into it. The -silent option suppresses these status messages. -ignorelinks Causes the program to not treat symbolic links in fromdir spe- cially. The link created in todir will point back to the corre- sponding (symbolic link) file in fromdir. If the link is to a directory, this is almost certainly the wrong thing. This option exists mostly to emulate the behavior the C version of lndir had in X11R6. Its use is not recommended. -withrevinfo Causes any BitKeeper, RCS, SCCS, CVS and CVS.adm subdirectories to be treated as any other directory, rather than ignored. DIAGNOSTICS The program displays the name of each subdirectory it enters, followed by a colon. The -silent option suppresses these messages. A warning message is displayed if the symbolic link cannot be created. The usual problem is that a regular file of the same name already exists. If the link already exists but doesn't point to the correct file, the program prints the link name and the location where it does point. LUIT(1) LUIT(1) NAME luit - Locale and ISO 2022 support for Unicode terminals SYNOPSIS luit [ options ] [ -- ] [ program [ args ] ] DESCRIPTION Luit is a filter that can be run between an arbitrary application and a UTF-8 terminal emulator. It will convert application output from the locale's encoding into UTF-8, and convert terminal input from UTF-8 into the locale's encoding. An application may also request switching to a different output encod- ing using ISO 2022 and ISO 6429 escape sequences. Use of this feature is discouraged: multilingual applications should be modified to directly generate UTF-8 instead. Luit is usually invoked transparently by the terminal emulator. For information about running luit from the command line, see EXAMPLES below. OPTIONS -h Display some summary help and quit. -list List the supported charsets and encodings, then quit. -v Be verbose. -c Function as a simple converter from standard input to standard output. -x Exit as soon as the child dies. This may cause luit to loose data at the end of the child's output. -argv0 name Set the child's name (as passed in argv[0]). -encoding encoding Set up luit to use encoding rather than the current locale's encoding. +oss Disable interpretation of single shifts in application output. +ols Disable interpretation of locking shifts in application output. +osl Disable interpretation of character set selection sequences in application output. +ot Disable interpretation of all sequences and pass all sequences in application output to the terminal unchanged. This may lead to interesting results. -k7 Generate seven-bit characters for keyboard input. +kss Disable generation of single-shifts for keyboard input. +kssgr Use GL codes after a single shift for keyboard input. By default, GR codes are generated after a single shift when gener- ating eight-bit keyboard input. -kls Generate locking shifts (SO/SI) for keyboard input. -gl gn Set the initial assignment of GL. The argument should be one of g0, g1, g2 or g3. The default depends on the locale, but is usually g0. -gr gk Set the initial assignment of GR. The default depends on the locale, and is usually g2 except for EUC locales, where it is g1. -g0 charset Set the charset initially selected in G0. The default depends on the locale, but is usually ASCII. -g1 charset Set the charset initially selected in G1. The default depends on the locale. -g2 charset Set the charset initially selected in G2. The default depends on the locale. -g3 charset Set the charset initially selected in G3. The default depends on the locale. -ilog filename Log into filename all the bytes received from the child. -olog filename Log into filename all the bytes sent to the terminal emulator. -- End of options. EXAMPLES The most typical use of luit is to adapt an instance of XTerm to the locale's encoding. Current versions of XTerm invoke luit automatically when it is needed. If you are using an older release of XTerm, or a different terminal emulator, you may invoke luit manually: $ xterm -u8 -e luit If you are running in a UTF-8 locale but need to access a remote machine that doesn't support UTF-8, luit can adapt the remote output to your terminal: $ LC_ALL=fr_FR luit ssh legacy-machine Luit is also useful with applications that hard-wire an encoding that is different from the one normally used on the system or want to use legacy escape sequences for multilingual output. In particular, ver- sions of Emacs that do not speak UTF-8 well can use luit for multilin- gual output: $ luit -encoding 'ISO 8859-1' emacs -nw And then, in Emacs, M-x set-terminal-coding-system RET iso-2022-8bit-ss2 RET FILES /usr/X11R6/lib/X11/fonts/encodings/encodings.dir The system-wide encodings directory. /usr/X11R6/lib/X11/locale/locale.alias The file mapping locales to locale encodings. SECURITY On systems with SVR4 (``Unix-98'') ptys (Linux version 2.2 and later, SVR4), luit should be run as the invoking user. On systems without SVR4 (``Unix-98'') ptys (notably BSD variants), run- ning luit as an ordinary user will leave the tty world-writable; this is a security hole, and luit will generate a warning (but still accept to run). A possible solution is to make luit suid root; luit should drop privileges sufficiently early to make this safe. However, the startup code has not been exhaustively audited, and the author takes no responsibility for any resulting security issues. Luit will refuse to run if it is installed setuid and cannot safely drop privileges. BUGS None of this complexity should be necessary. Stateless UTF-8 through- out the system is the way to go. Charsets with a non-trivial intermediary byte are not yet supported. Selecting alternate sets of control characters is not supported and will never be. SEE ALSO xterm(1), unicode(7), utf-8(7), charsets(7). Character Code Structure and Extension Techniques (ISO 2022, ECMA-35). Control Functions for Coded Character Sets (ISO 6429, ECMA-48). AUTHOR Luit was written by Juliusz Chroboczek for the XFree86 project. MAKEG(1) MAKEG(1) NAME makeg - make a debuggable executable SYNOPSIS makeg [ make-options ... ] [ targets ... ] DESCRIPTION The makeg script runs make, passing it variable settings to create a debuggable target when used with a Makefile generated by imake. For example, it arranges for the C compiler to be called with the -g option. ENVIRONMENT MAKE The make program to use. Default ``make''. GDB Set to a non-null value if using the gdb debugger on Solaris 2, which requires additional debugging options to be passed to the compiler. SEE ALSO make (1), imake (1) MAKEPSRES(1) MAKEPSRES(1) NAME makepsres - Build PostScript resource database file. SYNOPSIS makepsres [ options ] directory ... DESCRIPTION makepsres creates PostScript language resource database files. Resource database files can be used to specify the location of resources that are used by the font selection panel and other Adobe software. For a complete description of the resource location facili- ties in the Display PostScript system, see Appendix A and Appendix B of "Display PostScript Toolkit for X" in Programming the Display Post- Script System with X. makepsres creates a resource database file named PSres.upr that con- tains all the resources in all the directory path names specified on the command line. If the list of directories contains - , makepsres reads from stdin and expects a list of directories separated by space, tab, or new- line. If the list of directories is empty, it is taken to be the current directory. If all specified directories have a common initial prefix, makepsres extracts it as a directory prefix in the new resource database file. makepsres normally acts recursively; it looks for resource files in subdirectories of any specified directory. This behavior can be over- ridden with the command line option -nr. makepsres uses existing resource database files to assist in identify- ing files. By default, makepsres creates a new resource database file containing all of the following that apply: Resource files found in the directories on the command line. Resource files pointed to by the resource database files in the directories on the command line. Resource entries found in the input resource database files. These entries are copied if the files they specify still exist and are located in directories not specified on the command line. If you run makepsres in discard mode (with the -d option), it does not copy resource entries from the input resource database files. In that case, the output file consists only of entries from the directories on the command line. The input resource database files are only used to assist in identifying files. If you run makepsres in keep mode (with the -k option), it includes in the output file all resource entries in the input resource database files, even entries for files that no longer exist or are located in directories specified on the command line. makepsres uses various heuristics to identify files. A file that is of a private resource type or that does not conform to the standard format for a resource file must be specified in one of the following ways: By running makepsres in interactive mode By preloading the file into a resource database file used for input By beginning the file with the following line: %!PS-Adobe-3.0 Resource- OPTIONS -o filename Writes the output to the specified filename. The construction "-o -" writes to stdout. If the -o option is not specified, makepsres creates a PSres.upr file in the current directory and writes the output to that file. -f filename Uses information from the specified file to assist in resource typing. The file must be in resource database file format. Multiple -f options may be specified. The construction "-f -" uses stdin as an input file and may not be used if "-" is speci- fied as a directory on the command line. -dir dirname Specifies that dirname is a directory. Needed only in rare cases when dirname is the same as a command-line option such as -nb. -d Specifies discard mode. The resulting output file consists solely of entries from the directories on the command line. -e Marks the resulting PSres.upr file as exclusive. This option makes the resource location library run more quickly since it does not have to look for other resource database files. It becomes necessary, however, to run makepsres whenever new resources are added to the directory, even if the resources come with their own resource database file. -i Specifies interactive mode. In interactive mode, you will be queried for the resource type of any encountered file that makepsres cannot identify. If -i is not specified, makepsres assumes an unidentifiable file is not a resource file. -k Specifies keep mode. -nb If the output file already exists, do not back it up. -nr Specifies nonrecursive mode. makepsres normally acts recur- sively: it looks for resource files in subdirectories of any specified directory. If -nr is used, makepsres does not look in subdirectories for resource files. -p Specifies no directory prefix. If -p is used, makepsres does not try to find a common directory prefix among the specified directories. -q Quiet mode: ignores unidentifiable files instead of warning about them. -s Specifies strict mode. If -s is used, makepsres terminates with an error if it encounters a file it cannot identify. EXAMPLES makepsres . Creates a resource database file that contains all the resources in the current directory. makepsres -i -o local.upr /usr/local/lib/ps/fonts Runs makepsres in interactive mode and creates a resource data- base file named local.upr, which contains all the resources in the directory /usr/local/lib/ps/fonts. SEE ALSO Programming the Display PostScript System with X (Addison-Wesley Pub- lishing Company, Inc., 1993). AUTHOR Adobe Systems Incorporated NOTES PostScript and Display PostScript are trademarks of Adobe Systems Incorporated which may be registered in certain jurisdictions. Copyright (c) 1989-1994 Adobe Systems Incorporated. All rights reserved. MAKESTRS(1) MAKESTRS(1) NAME makestrs - makes string table C source and header(s) SYNOPSIS makestrs [-f source] [-abioptions ...] DESCRIPTION The makestrs command creates string table C source files and headers. If -f source is not specified makestrs will read from stdin. The C source file is always written to stdout. makestrs creates one or more C header files as specified in the source file. The following options may be specified: -sparcabi, -intelabi, -functionabi, -arrayperabi, and -defaultabi. -sparcabi is used on SPARC platforms conforming to the SPARC Compliance Definition, i.e. SVR4/Solaris. -intelabi is used on Intel platforms conforming to the System V Appli- cation Binary Interface, i.e. SVR4. -earlyR6abi may be used in addition to -intelabi for situations where the vendor wishes to maintain binary compatibility between X11R6 pub- lic-patch 11 (and earlier) and X11R6 public-patch 12 (and later). -functionabi generates a functional abi to the string table. This mech- anism imposes a severe performance penalty and it's recommended that you not use it. -arrayperabi results in a separate array for each string. This is the default behavior if makestrs was compiled with -DARRAYPERSTR (it almost never is). -defaultabi forces the generation of the "normal" string table even if makestrs was compiled with -DARRAYPERSTR. Since makestrs is almost never compiled with -DARRAYPERSTR this is the default behavior if no abioptions are specified. SYNTAX The syntax for string-list file is (items in square brackets are optional): #prefix #feature #externref #externdef [] [#ctempl ] #file #table [#htempl] [#table ... #table ...] [#file ...] In words you may have one or more #file directives. Each #file may have one or more #table directives. The #prefix directive determines the string that makestr will prefix to each definition. The #feature directive determines the string that makestr will use for the feature-test macro, e.g. X[TM]STRINGDEFINES. The #externref directive determines the string that makestr will use for the extern clause, typically this will be "extern" but Motif wants it to be "externalref" The #externdef directive determines the string that makestr will use for the declaration, typically this will be the null string (note that makestrs requires a trailing space in this case, i.e. "#externdef "), and Motif will use "externaldef(_xmstrings). The #ctmpl directive determines the name of the file used as a template for the C source file that is generated Each #file directive will result in a corresponding header file by that name containing the appropriate definitions as specified by command line options. A single C source file containing the declara- tions for the definitions in all the headers will be printed to stdout. The #htmpl directive determines the name of the file used as a template for the C header file that is generated. Each #table directive will be processed in accordance with the ABI. On most platforms all tables will be catenated into a single table with the name of the first table for that file. To conform to the Intel ABI separate tables will be generated with the names indicated. The template files specified by the #ctmpl and #htmpl directives are processed by copying line for line from the template file to the appro- priate output file. The line containing the string <<>> is not copied to the output file. The appropriate data is then copied to the output file and then the remainder of the tem- plate file is copied to the output file. BUGS makestrs is not very forgiving of syntax errors. Sometimes you need a trailing space after # directives, other times they will mess you up. No warning messages are emitted. SEE ALSO SPARC Compliance Definition 2.2., SPARC International Inc., 535 Middle- field Road, Suite 210, Menlo Park, CA 94025 System V Application Binary Interface, Third Edition, ISBN 0-13-100439-5 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Engle- wood Cliffs, NJ 07632 System V Application Binary Interface, Third Edition, Intel386 Archi- tecture Processor Supplement ISBN 0-13-104670-5 UNIX Press, PTR Pren- tice Hall, 113 Sylvan Avenue, Englewood Cliffs, NJ 07632 System V Application Binary Interface, Third Edition, SPARC Architec- ture Processor Supplement ISBN 0-13-104696-9 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs, NJ 07632 MERGELIB(1) MERGELIB(1) NAME mergelib - merge one library into another SYNOPSIS mergelib to-library from-library [object-filename-prefix] DESCRIPTION The mergelib program merges objects from one library into another. The names of object files in from-library will be prefixed by object-file- name-prefix ("_" by default) to avoid name clashes. The merged library will be left in to-library. AUTHOR Jim Fulton wrote the mergelib program for the X Consortium. Colin Watson wrote this manual page, originally for the Debian Project. MAKEDEPEND(1) MAKEDEPEND(1) NAME makedepend - create dependencies in makefiles SYNOPSIS makedepend [ -Dname=def ] [ -Dname ] [ -Iincludedir ] [ -Yincludedir ] [ -a ] [ -fmakefile ] [ -include file ] [ -oobjsuffix ] [ -pobjprefix ] [ -sstring ] [ -wwidth ] [ -v ] [ -m ] [ -- otheroptions -- ] source- file ... DESCRIPTION The makedepend program reads each sourcefile in sequence and parses it like a C-preprocessor, processing all #include, #define, #undef, #ifdef, #ifndef, #endif, #if, #elif and #else directives so that it can correctly tell which #include, directives would be used in a compila- tion. Any #include, directives can reference files having other #include directives, and parsing will occur in these files as well. Every file that a sourcefile includes, directly or indirectly, is what makedepend calls a dependency. These dependencies are then written to a makefile in such a way that make(1) will know which object files must be recompiled when a dependency has changed. By default, makedepend places its output in the file named makefile if it exists, otherwise Makefile. An alternate makefile may be specified with the -f option. It first searches the makefile for the line # DO NOT DELETE THIS LINE -- make depend depends on it. or one provided with the -s option, as a delimiter for the dependency output. If it finds it, it will delete everything following this to the end of the makefile and put the output after this line. If it doesn't find it, the program will append the string to the end of the makefile and place the output following that. For each sourcefile appearing on the command line, makedepend puts lines in the makefile of the form sourcefile.o: dfile ... Where sourcefile.o is the name from the command line with its suffix replaced with ``.o'', and dfile is a dependency discovered in a #include directive while parsing sourcefile or one of the files it included. EXAMPLE Normally, makedepend will be used in a makefile target so that typing ``make depend'' will bring the dependencies up to date for the make- file. For example, SRCS = file1.c file2.c ... CFLAGS = -O -DHACK -I../foobar -xyz depend: makedepend -- $(CFLAGS) -- $(SRCS) OPTIONS The program will ignore any option that it does not understand so that you may use the same arguments that you would for cc(1). -Dname=def or -Dname Define. This places a definition for name in makedepend's symbol table. Without =def the symbol becomes defined as ``1''. -Iincludedir Include directory. This option tells makedepend to prepend includedir to its list of directories to search when it encounters a #include directive. By default, makedepend only searches the standard include directories (usually /usr/include and possibly a compiler-dependent directory). -Yincludedir Replace all of the standard include directories with the single specified include directory; you can omit the includedir to simply prevent searching the standard include directories. -a Append the dependencies to the end of the file instead of replac- ing them. -fmakefile Filename. This allows you to specify an alternate makefile in which makedepend can place its output. Specifying ``-'' as the file name (i.e., -f-) sends the output to standard output instead of modifying an existing file. -include file Process file as input, and include all the resulting output before processing the regular input file. This has the same affect as if the specified file is an include statement that appears before the very first line of the regular input file. -oobjsuffix Object file suffix. Some systems may have object files whose suf- fix is something other than ``.o''. This option allows you to specify another suffix, such as ``.b'' with -o.b or ``:obj'' with -o:obj and so forth. -pobjprefix Object file prefix. The prefix is prepended to the name of the object file. This is usually used to designate a different direc- tory for the object file. The default is the empty string. -sstring Starting string delimiter. This option permits you to specify a different string for makedepend to look for in the makefile. -wwidth Line width. Normally, makedepend will ensure that every output line that it writes will be no wider than 78 characters for the sake of readability. This option enables you to change this width. -v Verbose operation. This option causes makedepend to emit the list of files included by each input file. -m Warn about multiple inclusion. This option causes makedepend to produce a warning if any input file includes another file more than once. In previous versions of makedepend this was the default behavior; the default has been changed to better match the behavior of the C compiler, which does not consider multiple inclusion to be an error. This option is provided for backward compatibility, and to aid in debugging problems related to multi- ple inclusion. -- options -- If makedepend encounters a double hyphen (--) in the argument list, then any unrecognized argument following it will be silently ignored; a second double hyphen terminates this special treatment. In this way, makedepend can be made to safely ignore esoteric com- piler arguments that might normally be found in a CFLAGS make macro (see the EXAMPLE section above). All options that makede- pend recognizes and appear between the pair of double hyphens are processed normally. ALGORITHM The approach used in this program enables it to run an order of magni- tude faster than any other ``dependency generator'' I have ever seen. Central to this performance are two assumptions: that all files com- piled by a single makefile will be compiled with roughly the same -I and -D options; and that most files in a single directory will include largely the same files. Given these assumptions, makedepend expects to be called once for each makefile, with all source files that are maintained by the makefile appearing on the command line. It parses each source and include file exactly once, maintaining an internal symbol table for each. Thus, the first file on the command line will take an amount of time proportional to the amount of time that a normal C preprocessor takes. But on sub- sequent files, if it encounters an include file that it has already parsed, it does not parse it again. For example, imagine you are compiling two files, file1.c and file2.c, they each include the header file header.h, and the file header.h in turn includes the files def1.h and def2.h. When you run the command makedepend file1.c file2.c makedepend will parse file1.c and consequently, header.h and then def1.h and def2.h. It then decides that the dependencies for this file are file1.o: header.h def1.h def2.h But when the program parses file2.c and discovers that it, too, includes header.h, it does not parse the file, but simply adds header.h, def1.h and def2.h to the list of dependencies for file2.o. SEE ALSO cc(1), make(1) BUGS makedepend parses, but does not currently evaluate, the SVR4 #predi- cate(token-list) preprocessor expression; such expressions are simply assumed to be true. This may cause the wrong #include directives to be evaluated. Imagine you are parsing two files, say file1.c and file2.c, each includes the file def.h. The list of files that def.h includes might truly be different when def.h is included by file1.c than when it is included by file2.c. But once makedepend arrives at a list of depen- dencies for a file, it is cast in concrete. AUTHOR Todd Brunhoff, Tektronix, Inc. and MIT Project Athena MKCFM(1) MKCFM(1) NAME mkcfm - create summaries of font metric files in CID font directories SYNOPSIS mkcfm [CID-font-directory-name] DESCRIPTION There is usually only one CID font directory on the X font path. It is usually called /usr/X11R6/lib/X11/fonts/CID. If you do not specify an argument, mkcfm will try to go through the subdirectories of that directory, and create one summary of font metric files for each CIDFont (character descriptions) file and each CMap (Character Maps) file it finds. The summaries of font metric files are put in the existing CFM subdirectory. The CFM subdirectories are created when CID-keyed fonts are installed. If you specify a CID font directory as an argument, mkcfm will try to go through the subdirectories of that directory, and create one summary of font metric files for each CIDFont file and each CMap file it finds. mkcfm will calculate the summaries of the font metric files stored in AFM subdirectories of the CID font directory. Those summaries are needed by the rasterizer of CID-keyed fonts to speed up the response to X font calls. If those files do not exist, CID rasterizer will have to go through usually large font metric files, and calculate the summaries itself each time the font is called. You will notice a substantial wait on a call to a large CID-keyed font. FILES .afm files Each CID-keyed font file is supposed to have a font met- ric file (.afm file). mkcfm creates summary files (.cfm files) of those font metric files. mkcfm should be run whenever a change is made to the files stored in the subdirectories of the CID font directory. For example, it should be run when new CID fonts are installed. .cfm files Summaries of font metric (.afm) files created by mkcfm. SEE ALSO The rasterizer for CID-keyed fonts in the directory xc/lib/font/Type1. MKDIRHIER(1) MKDIRHIER(1) NAME mkdirhier - makes a directory hierarchy SYNOPSIS mkdirhier directory ... DESCRIPTION The mkdirhier command creates the specified directories. Unlike mkdir if any of the parent directories of the specified directory do not exist, it creates them as well. SEE ALSO mkdir(1) MKFONTDIR(1) MKFONTDIR(1) NAME mkfontdir - create an index of X font files in a directory SYNOPSIS mkfontdir [-n] [-x suffix] [-r] [-p prefix] [-e encoding-directory- name] ... [--] [directory-name ... ] DESCRIPTION For each directory argument, mkfontdir reads all of the font files in the directory searching for properties named "FONT", or (failing that) the name of the file stripped of its suffix. These are converted to lower case and used as font names, and, along with the name of the font file, are written out to the file "fonts.dir" in the directory. The X server and font server use "fonts.dir" to find font files. The kinds of font files read by mkfontdir depend on configuration parameters, but typically include PCF (suffix ".pcf"), SNF (suffix ".snf") and BDF (suffix ".bdf"). If a font exists in multiple formats, mkfontdir will first choose PCF, then SNF and finally BDF. The first line of fonts.dir gives the number of fonts in the file. The remaining lines list the fonts themselves, one per line, in two fields. First is the name of the font file, followed by a space and the name of the font. SCALABLE FONTS Because scalable font files do not usually include the X font name, the file "fonts.scale" can be used to name the scalable fonts in the direc- tory. The fonts listed in it are copied to fonts.dir by mkfontdir. "fonts.scale" has the same format as the "fonts.dir" file. FONT NAME ALIASES The file "fonts.alias", which can be put in any directory of the font- path, is used to map new names to existing fonts, and should be edited by hand. The format is two white-space separated columns, the first containing aliases and the second containing font-name patterns. Lines beginning with "!" are comment lines and are ignored. If neither the alias nor the value specifies the size fields of the font name, this is a scalable alias. A font name of any size that matches this alias will be mapped to the same size of the font that the alias resolves to. When a font alias is used, the name it references is searched for in the normal manner, looking through each font directory in turn. This means that the aliases need not mention fonts in the same directory as the alias file. To embed white space in either name, simply enclose it in double-quote marks; to embed double-quote marks (or any other character), precede them with back-slash: "magic-alias with spaces" "\"font name\" with quotes" regular-alias fixed If the string "FILE_NAMES_ALIASES" stands alone on a line, each file- name in the directory (stripped of its suffix) will be used as an alias for that font. ENCODING FILES The option -e can be used to specify a directory with encoding files. Every such directory is scanned for encoding files, the list of which is then written to an "encodings.dir" file in every font directory. The "encodings.dir" file is used by the server to find encoding infor- mation. The "encodings.dir" file has the same format as "fonts.dir". It maps encoding names (strings of the form CHARSET_REGISTRY-CHARSET_ENCODING ) to encoding file names. OPTIONS The following options are supported: -e Specify a directory containing encoding files. The -e option may be specified multiple times, and all the specified directo- ries will be read. The order of the entries is significant, as encodings found in earlier directories override those in later ones; encoding files in the same directory are discriminated by preferring compressed versions. -n do not scan for fonts, do not write font directory files. This option is useful when generating encoding directories only. -p Specify a prefix that is prepended to the encoding file path names when they are written to the "encodings.dir" file. The prefix is prepended as-is. If a `/' is required between the prefix and the path names, it must be supplied explicitly as part of the prefix. -r Keep non-absolute encoding directories in their relative form when writing the "encodings.dir" file. The default is to con- vert relative encoding directories to absolute directories by prepending the current directory. The positioning of this options is significant, as this option only applies to subse- quent -e options. -x suffix Ignore fonts files of type suffix. -- End options. FILES fonts.dir List of fonts in the directory and the files they are stored in. Created by mkfontdir. Read by the X server and font server each time the font path is set (see xset(1)). fonts.scale List of scalable fonts in the directory. Contents are copied to fonts.dir by mkfontdir. fonts.alias List of font name aliases. Read by the X server and font server each time the font path is set (see xset(1)). encodings.dir List of known encodings and the files they are stored in. Created by mkfontdir. Read by the X server and font server each time a font with an unknown charset is opened. SEE ALSO X(7), Xserver(1), xfs(1), xset(1) MKFONTSCALE(1) MKFONTSCALE(1) NAME mkfontscale - create an index of scalable font files for X SYNOPSIS mkfontscale [ -b ] [ -s ] [ -o filename ] [ -x suffix ] [ -a encoding ] ... [ -f fuzz ] [ -l ] [ -e directory ] [ -p prefix ] [ -r prefix ] [ -n prefix ] [ -- ] [ directory ] ... DESCRIPTION For each directory argument, mkfontscale reads all of the scalable font files in the directory. For every font file found, an X11 font name (XLFD) is generated, and is written together with the file name to a file fonts.scale in the directory. The resulting fonts.scale file should be checked and possibly manually edited before being used as input for the mkfontdir(1) program. OPTIONS -b read bitmap fonts. By default, bitmap fonts are ignored. -s ignore scalable fonts. By default, scalable fonts are read. If -b is set, this flag has the side effect of enabling the reading of fonts.scale files. -o filename send program output to file- name; default is fonts.scale if bitmap fonts are not being read, and fonts.dir if they are. If filename is relative, it is cre- ated in the directory being processed. If it is the special value -, output is written to standard output. -x suffix exclude all files with the specified suffix -a encoding add encoding to the list of encodings searched for. -f fuzz set the fraction of characters that may be missing in large encodings to fuzz percent. Defaults to 2%. -l Write fonts.dir files suitable for implementations that cannot reencode legacy fonts (BDF and PCF). By default, it is assumed that the implementation can reencode Unicode-encoded legacy fonts. -e specifies a directory with encoding files. Every such directory is scanned for encoding files, the list of which is then written to an "encodings.dir" file in every font directory. -p Specifies a prefix that is prepended to the encoding file path names when they are written to the "encodings.dir" file. The prefix is prepended litterally: if a `/' is required between the prefix and the path names, it must be supplied explicitly as part of the prefix. -r Keep non-absolute encoding directories in their relative form when writing the "encodings.dir" file. The default is to con- vert relative encoding directories to absolute directories by prepending the current directory. The positioning of this options is significant, as this option only applies to subse- quent -n do not scan for fonts, do not write font directory files. This option is useful when generating encoding directories only. -- end of options. SEE ALSO X(7), Xserver(1), mkfontdir(1), ttmkfdir(1), xfs(1), xset(1) NOTES The format of the fonts.scale, fonts.dir and encodings.dir files is documented in the mkfontdir(1) manual page. Mkfontscale will overwrite any fonts.scale file even if it has been hand-edited. mkfontscale -b -s -l is equivalent to mkfontdir. AUTHOR Mkfontscale was written by Juliusz Chroboczek for the XFree86 project. The functionality of this program was inspired by the ttmkfdir utility by Joerg Pommnitz. mkhtmlindex(1) mkhtmlindex(1) NAME mkhtmlindex - generate index files for HTML man pages SYNOPSIS mkhtmlindex htmlmandir DESCRIPTION The mkhtmlindex program generates index files for a directory of HTML- formatted manual pages. It searches for files whose names are of the form "name.1.html", and outputs index files "manindex1.html", "manin- dex.2.html", and so on, one for each manual volume. Empty index files will be removed. Names and descriptions are found by scanning the first

section of each page. OPTIONS mkhtmlindex takes only one argument: the directory to process. NOTES This utility is currently rather specific to XFree86. In particular, the format of the index files it outputs is not configurable, nor is the HTML formatting it expects of manual pages. AUTHOR David Dawes wrote the mkhtmlindex program for XFree86. Colin Watson wrote this manual page, originally for the Debian Project. OCLOCK(1) OCLOCK(1) NAME oclock - round X clock SYNOPSIS oclock [-option ... ] DESCRIPTION Oclock simply displays the current time on an analog display. OPTIONS -fg color choose a different color for the both hands and the jewel of the clock -bg color choose a different color for the background. -jewel color choose a different color for the jewel on the clock. -minute color choose a different color for the minute hand of the clock. -hour color choose a different color for the hour hand of the clock. -backing { WhenMapped Always NotUseful } selects an appropriate level of backing store. -geometry geometry define the initial window geometry; see X(7). -display display specify the display to use; see X(7). -bd color choose a different color for the window border. -bw width choose a different width for the window border. As the Clock widget changes its border around quite a bit, this is most use- fully set to zero. -shape causes the clock to use the Shape extension to create an oval window. This is the default unless the shapeWindow resource is set to false. -noshape causes the clock to not reshape itself and ancestors to exactly fit the outline of the clock. -transparent causes the clock to consist only of the jewel, the hands, and the border. COLORS If you would like your clock to be viewable in color, include the fol- lowing in the #ifdef COLOR section you read with xrdb: *customization: -color This will cause oclock to pick up the colors in the app-defaults color customization file: /usr/X11R6/lib/X11/app-defaults/Clock-color. Below are the default colors: Clock*Background: grey Clock*BorderColor: light blue Clock*hour: yellow Clock*jewel: yellow Clock*minute: yellow SEE ALSO X(7), X Toolkit documentation AUTHOR Keith Packard, MIT X Consortium PROXYMNGR(1) PROXYMNGR(1) NAME proxymngr - proxy manager service SYNOPSIS proxymngr [-config filename] [-timeout seconds] [-retries #] [-verbose] DESCRIPTION The proxy manager (proxymngr) is responsible for resolving requests from xfindproxy (and other similar clients), starting new proxies when appropriate, and keeping track of all of the available proxy services. The proxy manager strives to reuse existing proxies whenever possible. There are two types of proxies that the proxy manager deals with, man- aged and unmanaged proxies. A managed proxy is a proxy that is started ``on demand'' by the proxy manager. An unmanaged proxy, on the other hand, is started either at system boot time, or manually by a system administrator. The proxy manager is made aware of its existence, but no attempt is made by the proxy manager to start unmanaged proxies. The command line options that can be specified to proxymngr are: -config Used to override the default proxymngr config file. See below for more details about the config file. -timeout Sets the number of seconds between attempts made by the proxy manager to find an unmanaged proxy. The default is 10. -retries Sets the maximum number of retries made by the proxy manager to find an an unmanaged proxy. The default is 3. -verbose Causes various debugging and tracing records to be displayed as requests are received and proxies are started. Proxy Manager Config File The proxy manager maintains a local configuration file describing the proxy services available. This configuration file is installed in /usr/X11R6/lib/X11/proxymngr/pmconfig during the installation of prox- ymngr. The location of the configuration file can be overwritten using the -config command line option. Aside from lines starting with an exclamation point for comments, each line of the configuration file describes either an unmanaged or managed proxy service. For unmanaged proxies, the format is: unmanaged service-name is the name of the unmanaged proxy service, and must not contain any spaces, for example ``XFWP''. service-name is case insen- sitive. proxy-address is the network address of the unmanaged proxy. The for- mat of the address is specific to the service-name. For example, for the ``XFWP'' service, the proxy-address might be ``fire- wall.x.org:100''. If there is more than one entry in the config file with the same unman- aged service-name, the proxy manager will try to use the proxies in the order presented in the config file. For managed proxies, the format is: managed service-name is the name of the managed proxy service, and must not contain any spaces, for example ``LBX''. service-name is case insensi- tive. command-to-start-proxy is the command executed by the proxy manager to start a new instance of the proxy. If command-to-start-proxy contains spaces, the complete command should be surrounded by single quotes. If desired, command-to-start-proxy can be used to start a proxy on a remote machine. The specifics of the remote execution method used to do this is not specified here. EXAMPLE Here is a sample configuration file: ! proxy manager config file ! ! Each line has the format: ! managed ! or ! unmanaged ! lbx managed /usr/X11R6/bin/lbxproxy ! ! substitute site-specific info xfwp unmanaged firewall:4444 PROXY MANAGER DETAILS When the proxy manager gets a request from xfindproxy (or another simi- lar client), its course of action will depend on the service-name in question. For a managed proxy service, the proxy manager will find out if any of the already running proxies for this service can handle a new request. If not, the proxy manager will attempt to start up a new instance of the proxy (using the command-to-start-proxy found in the config file). If that fails, an error will be returned to the caller. For an unmanaged proxy service, the proxy manager will look in the con- fig file to find all unmanaged proxies for this service. If there is more than one entry in the config file with the same unmanaged service- name, the proxy manager will try to use the proxies in the order pre- sented in the config file. If none of the unmanaged proxies can sat- isfy the request, the proxy manager will timeout for a configurable amount of time (specified by -timeout or default of 10) and reattempt to find an unmanaged proxy willing to satisfy the request. The number of retries can be specified by the -retries argument, or a default of 3 will be used. If the retries fail, the proxy manager has no choice but to return an error to the caller (since the proxy manager can not start unmanaged proxy services). BUGS proxy manager listen port should be configurable. -timeout and -retries is not implemented in proxymngr. proxymngr does not utilize the ``options'' and ``host'' fields in the proxy management protocol GetProxyAddr request. SEE ALSO xfindproxy (1), xfwp (1), Proxy Management Protocol spec V1.0 AUTHOR Ralph Mor, X Consortium PSWRAP(1) PSWRAP(1) NAME pswrap - creates C procedures from segments of PostScript language code SYNOPSIS pswrap [ -apr ] [ -o outputCfile ] [ -h outputHfile ] [ -s maxstring ] inputfile DESCRIPTION pswrap reads input from inputfile and creates C-callable procedures, known as wraps, that send PostScript language code to the PostScript interpreter. inputfile contains segments of PostScript language code wrapped with a C-like procedure syntax. Wraps are the most efficient way for an application to communicate with the PostScript interpreter. For complete documentation of pswrap and the language it accepts, see "pswrap Reference Manual" in Programming the Display PostScript System with X. OPTIONS inputfile A file that contains one or more wrap definitions. pswrap transforms the definitions in inputfile into C procedures. If no input file is specified, the standard input (which can be redirected from a file or pipe) is used. The input file can include text other than wrap definitions. pswrap converts wrap definitions to C procedures and passes the other text through unchanged. Therefore, it is possible to intersperse C-language source code with wrap definitions in the input file. Note: Although C code is allowed in a pswrap input file, it is not allowed within a wrap body. In particular, no CPP macros (for example, #define) are allowed inside a wrap. -a Generates ANSI C procedure prototypes for procedure definitions in outputCfile and, optionally, outputHfile. The -a option allows compilers that recognize the ANSI C standard to do more complete type checking of parameters. The -a option also causes pswrap to generate const declarations. Note: ANSI C procedure prototype syntax is not recognized by most non-ANSI C compilers, including many compilers based on the Portable C Compiler. Use the -a option only in conjunction with a compiler that conforms to the ANSI C Standard. -f specialHFile Adds a #include to the generated source file for a special header file. -h outputHFile Generates a header file that contains extern declarations for non-static wraps. This file can be used in #include statements in modules that use wraps. If the -a option is specified, the declarations in the header file are ANSI C procedure prototypes. If the -h option is omitted, a header file is not produced. -o outputCFile Specifies the file to which the generated wraps and passed- through text are written. If omitted, the standard output is used. If the -a option is also specified, the procedure definitions generated by pswrap are in ANSI C procedure prototype syntax. -p Specifies that strings passed by wraps are padded so that each data object begins on a long-word (4-byte) boundary. This option allows wraps to run on architectures that restrict data alignment to 4-byte boundaries and improves performance on some other architectures. -r Generates reentrant code for wraps shared by more than one process (as in shared libraries). Reentrant code can be called recursively or by more than one thread. The -r option causes pswrap to generate extra code, so use it only when necessary. -s maxstring Sets the maximum allowable length of a PostScript string object or hexadecimal string object in the wrap body input. A syntax error is reported if a string is not terminated with ) or > within maxstring characters. maxstring cannot be set lower than 80; the default is 200. SEE ALSO Programming the Display PostScript System with X (Addison-Wesley Publishing Company, Inc., 1993). AUTHOR Adobe Systems Incorporated NOTES PostScript and Display PostScript are trademarks of Adobe Systems Incorporated which may be registered in certain jurisdictions. Copyright (c) 1988-1994 Adobe Systems Incorporated. All rights reserved. RESIZE(1) RESIZE(1) NAME resize - set TERMCAP and terminal settings to current xterm window size SYNOPSIS resize [ -u | -c ] [ -s [ row col ] ] DESCRIPTION Resize prints a shell command for setting the TERM and TERMCAP environment variables to indicate the current size of xterm window from which the command is run. For this output to take effect, resize must either be evaluated as part of the command line (usually done with a shell alias or function) or else redirected to a file which can then be read in. From the C shell (usually known as /bin/csh), the following alias could be defined in the user's .cshrc: % alias rs 'set noglob; eval `resize`' After resizing the window, the user would type: % rs Users of versions of the Bourne shell (usually known as /bin/sh) that don't have command functions will need to send the output to a temporary file and the read it back in with the ``.'' command: $ resize > /tmp/out $ . /tmp/out OPTIONS The following options may be used with resize: -u This option indicates that Bourne shell commands should be generated even if the user's current shell isn't /bin/sh. -c This option indicates that C shell commands should be generated even if the user's current shell isn't /bin/csh. -s [rows columns] This option indicates that Sun console escape sequences will be used instead of the VT100-style xterm escape codes. If rows and columns are given, resize will ask the xterm to resize itself. However, the window manager may choose to disallow the change. Note that the Sun console escape sequences are recognized by XFree86 xterm and by dtterm. The resize program may be installed as sunsize, which causes makes it assume the -s option. The rows and columns arguments must appear last; though they are normally associated with the -s option, they are parsed separately. FILES /etc/termcap for the base termcap entry to modify. ~/.cshrc user's alias for the command. SEE ALSO csh(1), tset(1), xterm(1) AUTHORS Mark Vandevoorde (MIT-Athena), Edward Moy (Berkeley) Copyright (c) 1984, 1985 by X Consortium See X(7) for a complete copyright notice. REVPATH(1) REVPATH(1) NAME revpath - generate a relative path that can be used to undo a change- directory SYNOPSIS revpath path DESCRIPTION The revpath program prints out a relative path that is the ``reverse'' or ``inverse'' of path. Start with two directories top and bottom, with the latter below the former, and path is the location of bottom relative to top. The output of revpath is the location of top relative to bottom. The resulting path contains a trailing `/' character when the result is non-trivial. If path is equivalent to `.', the resulting output is empty. If path is invalid in some way (e.g., doesn't represent the path to a subdirectory) the output is also empty and no error messages are ever generated. DIAGNOSTICS There are no diagnostics. Error conditions are silently ignored, and the exit status is always 0. BUGS It isn't possible to reverse arbitrary relative paths. If any path element between the two end points of path is a symbolic link, the results will probably be incorrect. RSTART(1) RSTART(1) NAME rstart - a sample implementation of a Remote Start client SYNOPSIS rstart [-c context] [-g] [-l username] [-v] hostname command args ... DESCRIPTION Rstart is a simple implementation of a Remote Start client as defined in "A Flexible Remote Execution Protocol Based on rsh". It uses rsh as its underlying remote execution mechanism. OPTIONS -c context This option specifies the context in which the command is to be run. A context specifies a general environment the program is to be run in. The details of this environment are host- specific; the intent is that the client need not know how the environment must be configured. If omitted, the context defaults to X. This should be suitable for running X programs from the host's "usual" X installation. -g Interprets command as a generic command, as discussed in the protocol document. This is intended to allow common applications to be invoked without knowing what they are called on the remote system. Currently, the only generic commands defined are Terminal, LoadMonitor, ListContexts, and ListGenericCommands. -l username This option is passed to the underlying rsh; it requests that the command be run as the specified user. -v This option requests that rstart be verbose in its operation. Without this option, rstart discards output from the remote's rstart helper, and directs the rstart helper to detach the program from the rsh connection used to start it. With this option, responses from the helper are displayed and the resulting program is not detached from the connection. NOTES This is a trivial implementation. Far more sophisticated implementations are possible and should be developed. Error handling is nonexistent. Without -v, error reports from the remote are discarded silently. With -v, error reports are displayed. The $DISPLAY environment variable is passed. If it starts with a colon, the local hostname is prepended. The local domain name should be appended to unqualified host names, but isn't. The $SESSION_MANAGER environment variable should be passed, but isn't. X11 authority information is passed for the current display. ICE authority information should be passed, but isn't. It isn't completely clear how rstart should select what ICE authority information to pass. Even without -v, the sample rstart helper will leave a shell waiting for the program to complete. This causes no real harm and consumes relatively few resources, but if it is undesirable it can be avoided by explicitly specifying the "exec" command to the shell, eg rstart somehost exec xterm This is obviously dependent on the command interpreter being used on the remote system; the example given will work for the Bourne and C shells. SEE ALSO rstartd(1), rsh(1), A Flexible Remote Execution Protocol Based on rsh AUTHOR Jordan Brown, Quarterdeck Office Systems RSTARTD(1) RSTARTD(1) NAME rstartd - a sample implementation of a Remote Start rsh helper SYNOPSIS rstartd rstartd.real [-c configfilename] DESCRIPTION Rstartd is an implementation of a Remote Start "helper" as defined in "A Flexible Remote Execution Protocol Based on rsh". This document describes the peculiarities of rstartd and how it is configured. OPTIONS -c configfilename This option specifies the "global" configuration file that rstartd is to read. Normally, rstartd is a shell script that invokes rstartd.real with the -c switch, allowing local configuration of the location of the configuration file. If rstartd.real is started without the -c option, it reads /usr/X11R6/lib/X11/rstart/config. INSTALLATION It is critical to successful interoperation of the Remote Start protocol that rstartd be installed in a directory which is in the "default" search path, so that default rsh requests and the ilk will be able to find it. CONFIGURATION AND OPERATION Rstartd is by design highly configurable. One would like things like configuration file locations to be fixed, so that users and administrators can find them without searching, but reality is that no two vendors will agree on where things should go, and nobody thinks the original location is "right". Thus, rstartd allows one to relocate all of its files and directories. Rstartd has a hierarchy of configuration files which are executed in order when a request is made. They are: global config per-user ("local") config global per-context config per-user ("local") per-context config config from request As you might guess from the presence of "config from request", all of the config files are in the format of an rstart request. Rstartd defines a few additional keywords with the INTERNAL- prefix for specifying its configuration. Rstartd starts by reading and executing the global config file. This file will normally specify the locations of the other configuration files and any systemwide defaults. Rstartd will then read the user's local config file, default name $HOME/.rstart. Rstartd will then start interpreting the request. Presumably one of the first lines in the request will be a CONTEXT line. The context name is converted to lower case. Rstartd will read the global config file for that context, default name /usr/X11R6/lib/X11/rstart/contexts/, if any. It will then read the user's config file for that context, default name $HOME/.rstart.contexts/, if any. (If neither of these exists, rstartd aborts with a Failure message.) Rstartd will finish interpreting the request, and execute the program specified. This allows the system administrator and the user a large degree of control over the operation of rstartd. The administrator has final say, because the global config file doesn't need to specify a per-user config file. If it does, however, the user can override anything from the global file, and can even completely replace the global context config files. The config files have a somewhat more flexible format than requests do; they are allowed to contain blank lines and lines beginning with "#" are comments and ignored. (#s in the middle of lines are data, not comment markers.) Any commands run are provided a few useful pieces of information in environment variables. The exact names are configurable, but the supplied defaults are: $RSTART_CONTEXT the name of the context $RSTART_GLOBAL_CONTEXTS the global contexts directory $RSTART_LOCAL_CONTEXTS the local contexts directory $RSTART_GLOBAL_COMMANDS the global generic commands directory $RSTART_LOCAL_COMMANDS the local generic commands directory $RSTART_{GLOBAL,LOCAL}_CONTEXTS should contain one special file, @List, which contains a list of the contexts in that directory in the format specified for ListContexts. The supplied version of ListContexts will cat both the global and local copies of @List. Generic commands are searched for in several places: (defaults) per-user per-context directory ($HOME/.rstart.commands/) global per-context directory (/usr/X11R6/lib/X11/rstart/commands/) per-user all-contexts directory ($HOME/.rstart.commands) global all-contexts directory (/usr/X11R6/lib/X11/rstart/commands) (Yes, this means you can't have an all-contexts generic command with the same name as a context. It didn't seem like a big deal.) Each of these directories should have a file called @List that gives the names and descriptions of the commands in that directory in the format specified for ListGenericCommands. CONFIGURATION KEYWORDS There are several "special" rstart keywords defined for rstartd configuration. Unless otherwise specified, there are no defaults; related features are disabled in this case. INTERNAL-REGISTRIES name ... Gives a space-separated list of "MISC" registries that this system understands. (Registries other than this are accepted but generate a Warning.) INTERNAL-LOCAL-DEFAULT relative_filename Gives the name ($HOME relative) of the per-user config file. INTERNAL-GLOBAL-CONTEXTS absolute_directory_name Gives the name of the system-wide contexts directory. INTERNAL-LOCAL-CONTEXTS relative_directory_name Gives the name ($HOME relative) of the per-user contexts directory. INTERNAL-GLOBAL-COMMANDS absolute_directory_name Gives the name of the system-wide generic commands directory. INTERNAL-LOCAL-COMMANDS relative_directory_name Gives the name ($HOME relative) of the per-user generic commands directory. INTERNAL-VARIABLE-PREFIX prefix Gives the prefix for the configuration environment variables rstartd passes to its kids. INTERNAL-AUTH-PROGRAM authscheme program argv[0] argv[1] ... Specifies the program to run to set up authentication for the specified authentication scheme. "program argv[0] ..." gives the program to run and its arguments, in the same form as the EXEC keyword. INTERNAL-AUTH-INPUT authscheme Specifies the data to be given to the authorization program as its standard input. Each argument is passed as a single line. $n, where n is a number, is replaced by the n'th argument to the "AUTH authscheme arg1 arg2 ..." line. INTERNAL-PRINT arbitrary text Prints its arguments as a Debug message. Mostly for rstartd debugging, but could be used to debug config files. NOTES When using the C shell, or any other shell which runs a script every time the shell is started, the script may get run several times. In the worst case, the script may get run three times: By rsh, to run rstartd By rstartd, to run the specified command By the command, eg xterm rstartd currently limits lines, both from config files and requests, to BUFSIZ bytes. DETACH is implemented by redirecting file descriptors 0,1, and 2 to /dev/null and forking before executing the program. CMD is implemented by invoking $SHELL (default /bin/sh) with "-c" and the specified command as arguments. POSIX-UMASK is implemented in the obvious way. The authorization programs are run in the same context as the target program - same environment variables, path, etc. Long term this might be a problem. In the X context, GENERIC-CMD Terminal runs xterm. In the OpenWindows context, GENERIC-CMD Terminal runs cmdtool. In the X context, GENERIC-CMD LoadMonitor runs xload. In the OpenWindows context, GENERIC-CMD LoadMonitor runs perfmeter. GENERIC-CMD ListContexts lists the contents of @List in both the system-wide and per-user contexts directories. It is available in all contexts. GENERIC-CMD ListGenericCommands lists the contents of @List in the system-wide and per-user commands directories, including the per- context subdirectories for the current context. It is available in all contexts. CONTEXT None is not implemented. CONTEXT Default is really dull. For installation ease, the "contexts" directory in the distribution contains a file "@Aliases" which lists a context name and aliases for that context. This file is used to make symlinks in the contexts and commands directories. All MISC values are passed unmodified as environment variables. One can mistreat rstartd in any number of ways, resulting in anything from stupid behavior to core dumps. Other than by explicitly running programs I don't think it can write or delete any files, but there's no guarantee of that. The important thing is that (a) it probably won't do anything REALLY stupid and (b) it runs with the user's permissions, so it can't do anything catastrophic. @List files need not be complete; contexts or commands which are dull or which need not or should not be advertised need not be listed. In particular, per-user @List files should not list things which are in the system-wide @List files. In the future, perhaps ListContexts and ListGenericCommands will automatically suppress lines from the system- wide files when there are per-user replacements for those lines. Error handling is OK to weak. In particular, no attempt is made to properly report errors on the exec itself. (Perversely, exec errors could be reliably reported when detaching, but not when passing the stdin/out socket to the app.) If compiled with -DODT1_DISPLAY_HACK, rstartd will work around a bug in SCO ODT version 1. (1.1?) (The bug is that the X clients are all compiled with a bad library that doesn't know how to look host names up using DNS. The fix is to look up a host name in $DISPLAY and substitute an IP address.) This is a trivial example of an incompatibility that rstart can hide. SEE ALSO rstart(1), rsh(1), A Flexible Remote Execution Protocol Based on rsh AUTHOR Jordan Brown, Quarterdeck Office Systems SESSREG(1) SESSREG(1) NAME sessreg - manage utmp/wtmp entries for non-init clients SYNOPSIS sessreg [-w wtmp-file] [-u utmp-file] [-l line-name] [-h host-name] [-s slot-number] [-x Xservers-file] [-t ttys-file] [-a] [-d] user-name DESCRIPTION Sessreg is a simple program for managing utmp/wtmp entries for xdm sessions. System V has a better interface to /etc/utmp than BSD; it dynamically allocates entries in the file, instead of writing them at fixed positions indexed by position in /etc/ttys. To manage BSD-style utmp files, sessreg has two strategies. In conjunction with xdm, the -x option counts the number of lines in /etc/ttys and then adds to that the number of the line in the Xservers file which specifies the display. The display name must be specified as the "line-name" using the -l option. This sum is used as the "slot- number" in /etc/utmp that this entry will be written at. In the more general case, the -s option specifies the slot-number directly. If for some strange reason your system uses a file other that /etc/ttys to manage init, the -t option can direct sessreg to look elsewhere for a count of terminal sessions. Conversely, System V managers will not ever need to use these options (-x, -s and -t). To make the program easier to document and explain, sessreg accepts the BSD-specific flags in the System V environment and ignores them. BSD and Linux also have a host-name field in the utmp file which doesn't exist in System V. This option is also ignored by the System V version of sessreg. USAGE In Xstartup, place a call like: sessreg -a -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $USER and in Xreset: sessreg -d -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $USER OPTIONS -w wtmp-file This specifies an alternate wtmp file, instead of /usr/adm/wtmp for BSD or /etc/wtmp for sysV. The special name "none" disables writing records to /usr/adm/wtmp. -u utmp-file This specifies an alternate utmp file, instead of "/etc/utmp". The special name "none" disables writing records to /etc/utmp. -l line-name This describes the "line" name of the entry. For terminal sessions, this is the final pathname segment of the terminal device filename (e.g. ttyd0). For X sessions, it should probably be the local display name given to the users session (e.g. :0). If none is specified, the terminal name will be determined with ttyname(3) and stripped of leading components. -h host-name This is set for BSD hosts to indicate that the session was initiated from a remote host. In typical xdm usage, this options is not used. -s slot-number Each potential session has a unique slot number in BSD systems, most are identified by the position of the line-name in the /etc/ttys file. This option overrides the default position determined with ttyslot(3). This option is inappropriate for use with xdm, the -x option is more useful. -x Xservers-file As X sessions are one-per-display, and each display is entered in this file, this options sets the slot-number to be the number of lines in the ttys-file plus the index into this file that the line-name is found. -t ttys-file This specifies an alternate file which the -x option will use to count the number of terminal sessions on a host. -a This session should be added to utmp/wtmp. -d This session should be deleted from utmp/wtmp. One of -a/-d must be specified. SEE ALSO xdm(1) AUTHOR Keith Packard, MIT X Consortium SETXKBMAP(1) SETXKBMAP(1) NAME setxkbmap - set the keyboard using the X Keyboard Extension SYNOPSIS setxkbmap [ args ] [ layout [ variant [ option ... ] ] ] DESCRIPTION The setxkbmap command maps the keyboard to use the layout determined by the options specified on the command line. An XKB keymap is constructed from a number of components which are compiled only as needed. The source for all of the components can be found in /usr/X11R6/lib/X11/xkb. OPTIONS -help Prints a message describing the valid input to setxkbmap. -compat name Specifies the name of the compatibility map component used to construct a keyboard layout. -config file Specifies the name of an XKB configuration file which describes the keyboard to be used. -display display Specifies the display to be updated with the new keyboard layout. -geometry name Specifies the name of the geometry component used to construct a keyboard layout. -keymap name Specifies the name of the keymap description used to construct a keyboard layout. -layout name Specifies the name of the layout used to determine the components which make up the keyboard description. Only one layout may be specified on the command line. -model name Specifies the name of the keyboard model used to determine the components which make up the keyboard description. Only one model may be specified on the command line. -option name Specifies the name of an option to determine the components which make up the keyboard description; multiple options may be specified, one per -option flag. Note that setxkbmap summarize options specified in the command line with options was set before (saved in root window properties). If you want only specified options will be set use the -option flag with an empty argument first. -print With this option the setxkbmap just prints component names in a format acceptable by an xkbcomp (an XKB keymap compiler) and exits. The option can be used for tests instead of a verbose option and in case when one need to run both the setxkbmap and the xkbcomp in chain (see below). -rules file Specifies the name of the rules file used to resolve the request layout and model to a set of component names. -symbols name Specifies the name of the symbols component used to construct a keyboard layout. -synch Force synchronization for X requests. -types name Specifies the name of the types component used to construct a keyboard layout. -variant name Specifies which variant of the keyboard layout should be used to determine the components which make up the keyboard description. Only one variant may be specified on the command line. USING WITH xkbcomp If you have an Xserver and a client shell running on different computers and XKB configuration files sets on those machines are different you can get problems specifying a keyboard map by model, layout, options names. The thing is the setxkbcomp converts these names to names of XKB configuration files according to files that are on the client side computer. Then it sends the file names to the server where the xkbcomp has to compose a complete keyboard map using files which the server has. Thus if the sets of files differ significantly the names that the setxkbmap generates can be unacceptable on the server side. You can solve this problem running the xkbcomp on the client side too. With the -print option setxkbmap just prints the files names in an appropriate format to its stdout and this output can be piped directly to the xkbcomp input. For example, a command setxkbmap us -print | xkbcomp - $DISPLAY makes both step on the same (client) machine and loads a keyboard map into the server. FILES /usr/X11R6/lib/X11/xkb SHOWFONT(1) SHOWFONT(1) NAME showfont - font dumper for X font server SYNOPSIS showfont [ -options ... ] -fn pattern DESCRIPTION Showfont displays data about a font that matches the given pattern. The information shown includes font information, font properties, character metrics, and character bitmaps. The wildcard character "*" can be used to match any sequence of characters (including none) in the font name, and "?" can be used to match any single character. The "*" and "?" characters must be quoted to prevent them from being expanded by the shell. If no pattern is given, "*" is assumed. OPTIONS -server host:port The X font server to contact. -fn name The font to display. -lsb The bit order of the font should be requested as LSBFirst (least significant bit first). -msb The bit order of the font should be requested as MSBFirst (most significant bit first). -LSB The byte order of the font should be requested as LSBFirst (least significant byte first). -MSB The byte order of the font should be requested as MSBFirst (most significant byte first). -ext[ents_only] Only the character extents should be displayed, but not the bitmaps. -start char The start of the range of the characters to display (char is a number). -end char The end of the range of the characters to display (char is a number). -unit n The scanline unit of the font (8, 16, 32, or 64). -pad n The scanpad unit of the font (8, 16, 32, or 64). -b[itmap_pad] n The bitmap padding unit of the font (0, 1, or 2, where 0 is ImageRectMin, 1 is ImageRectMaxWidth and 2 is ImageRectMax). -noprops Do not show the font properties. SEE ALSO xfs(1), fslsfonts(1), xlsfonts(1) ENVIRONMENT FONTSERVER the default X font server to contact. COPYRIGHT Copyright 1991, Network Computing Devices, Inc. See X(1) for a full statement of rights and permissions. AUTHOR Dave Lemke, Network Computing Devices, Inc. SHOWRGB(1) SHOWRGB(1) NAME showrgb - uncompile an rgb color-name database SYNOPSIS showrgb [ database ] DESCRIPTION The showrgb program reads an rgb color-name database compiled for use with the dbm database routines and converts it back to source form, printing the result to standard output. The default database is the one that X was built with, and may be overridden on the command line. Specify the database name without the .pag or .dir suffix. FILES /usr/X11R6/lib/X11/rgb default database. XSM(1) XSM(1) NAME smproxy - Session Manager Proxy SYNOPSIS smproxy [-clientId id] [-restore saveFile] OPTIONS -clientId id Specifies the session ID used by smproxy in the previous session. -restore saveFile Specifies the file used by smproxy to save state in the previous session. DESCRIPTION smproxy allows X applications that do not support X11R6 session management to participate in an X11R6 session. In order for smproxy to act as a proxy for an X application, one of the following must be true: - The application maps a top level window containing the WM_CLIENT_LEADER property. This property provides a pointer to the client leader window which contains the WM_CLASS, WM_NAME, WM_COMMAND, and WM_CLIENT_MACHINE properties. or ... - The application maps a top level window which does not contain the WM_CLIENT_LEADER property. However, this top level window contains the WM_CLASS, WM_NAME, WM_COMMAND, and WM_CLIENT_MACHINE properties. An application that support the WM_SAVE_YOURSELF protocol will receive a WM_SAVE_YOURSELF client message each time the session manager issues a checkpoint or shutdown. This allows the application to save state. If an application does not support the WM_SAVE_YOURSELF protocol, then the proxy will provide enough information to the session manager to restart the application (using WM_COMMAND), but no state will be restored. SEE ALSO xsm(1) AUTHOR Ralph Mor, X Consortium STARTX(1) STARTX(1) NAME startx - initialize an X session SYNOPSIS startx [ [ client ] options ... ] [ -- [ server ] options ... ] DESCRIPTION The startx script is a front end to xinit that provides a somewhat nicer user interface for running a single session of the X Window System. It is often run with no arguments. Arguments immediately following the startx command are used to start a client in the same manner as xinit(1). The special argument '--' marks the end of client arguments and the beginning of server options. It may be convenient to specify server options with startx to change on a per-session basis the default color depth, the server's notion of the number of dots-per-inch the display device presents, or take advantage of a different server layout, as permitted by the XFree86(1) server and specified in the XF86Config(5) file. Some examples of specifying server arguments follow; consult the manual page for your X server to determine which arguments are legal. startx -- -depth 16 startx -- -dpi 100 startx -- -layout Multihead To determine the client to run, startx first looks for a file called .xinitrc in the user's home directory. If that is not found, it uses the file xinitrc in the xinit library directory. If command line client options are given, they override this behavior and revert to the xinit(1) behavior. To determine the server to run, startx first looks for a file called .xserverrc in the user's home directory. If that is not found, it uses the file xserverrc in the xinit library directory. If command line server options are given, they override this behavior and revert to the xinit(1) behavior. Users rarely need to provide a .xserverrc file. See the xinit(1) manual page for more details on the arguments. The system-wide xinitrc and xserverrc files are found in the /usr/X11R6/lib/X11/xinit directory. The .xinitrc is typically a shell script which starts many clients according to the user's preference. When this shell script exits, startx kills the server and performs any other session shutdown needed. Most of the clients started by .xinitrc should be run in the background. The last client should run in the foreground; when it exits, the session will exit. People often choose a session manager, window manager, or xterm as the ''magic'' client. EXAMPLE Below is a sample .xinitrc that starts several applications and leaves the window manager running as the ''last'' application. Assuming that the window manager has been configured properly, the user then chooses the ''Exit'' menu item to shut down X. xrdb -load $HOME/.Xresources xsetroot -solid gray & xbiff -geometry -430+5 & oclock -geometry 75x75-0-0 & xload -geometry -80-0 & xterm -geometry +0+60 -ls & xterm -geometry +0-100 & xconsole -geometry -0+0 -fn 5x7 & exec twm ENVIRONMENT VARIABLES DISPLAY This variable gets set to the name of the display to which clients should connect. Note that this gets set, not read. XAUTHORITY This variable, if not already defined, gets set to $(HOME)/.Xauthority. This is to prevent the X server, if not given the -auth argument, from automatically setting up insecure host-based authentication for the local host. See the Xserver(1) and Xsecurity(7) manual pages for more information on X client/server authentication. FILES $(HOME)/.xinitrc Client to run. Typically a shell script which runs many programs in the background. $(HOME)/.xserverrc Server to run. The default is X. /usr/X11R6/lib/X11/xinit/xinitrc Client to run if the user has no .xinitrc file. /usr/X11R6/lib/X11/xinit/xserverrc Server to run if the user has no .xserverrc file. SEE ALSO xinit(1), Xserver(1), XFree86(1) SXPM(1) SXPM(1) NAME sxpm - Show an XPM (X PixMap) file and/or convert XPM 1 or 2 files to XPM 3. SYNOPSIS sxpm [-d displayname] [-g geometry] [-hints] [-icon filename] [-plaid | filename | -] [-o filename | -o -] [-pcmap] [-closecolors] [-nod] [-nom] [-mono | -grey4 | -grey | -color] [-sc symbol color] [-sp symbol pixel] [-cp color pixel] [-rgb filename] [-v] DESCRIPTION The sxpm program can be used to view any XPM (version 1, 2, or 3) file and/or to convert a file from XPM1 or XPM2 to XPM version 3. If sxpm is run with any dummy option specified, the usage is displayed. If no geometry is specified, the show window will have the size of the read pixmap. Pressing the key Q in the window will quit the program. OPTIONS -d display Specifies the display to connect to. -g geom Window geometry (default is pixmap's size). -hints Set ResizeInc for window. -icon filename Set icon to pixmap created from the file filename. -plaid Show the plaid pixmap which is stored as data. filename Read from the file filename and from standard input if filename is '-'. If no input is specified sxpm reads from standard input. -o filename Write to the file filename (overwrite if it already exists) and to standard output if filename is '-'. -mono Use the colors specified for a monochrome visual. -grey4 Use the colors specified for a 4 color greyscale visual. -grey Use the colors specified for a greyscale visual. -color Use the colors specified for a color visual. -pcmap Use a private colormap. -closecolors Try to use "close colors" before reverting to other visuals. -nod Do not display the pixmap in a window. (Useful when using as converter) -nom Do not use the clipmask if there is any. -sc symbol colorname Override default color to symbol to colorname. -sp symbol pixelvalue Override default color to symbol to pixelvalue. -cp colorname pixelvalue Override default color to colorname to pixelvalue. -rgb filename Search color names in the file filename and write them out instead of the rgb values. -v Verbose - to print out extensions (stderr). KNOWN BUGS Some window managers may not accept a pixmap which is not a bitmap as icon because this does not respect ICCCM, many of the well known ones will accept it though. AUTHOR Arnaud Le Hors (lehors@sophia.inria.fr) Bull Research France Copyright (C) 1989-95 by Groupe Bull. TESTPLUGIN(1) TESTPLUGIN(1) NAME testplugin - a Netscape Plug-in test bed utility SYNOPSIS testplugin src=url [width=width] [height=height] [name=value] ... DESCRIPTION This program is designed to provide a means for testing Netscape Navigator UNIX plug-ins. It exercises the plug-in in a way close (I hope) to how Navigator does, and because it is a standalone program it allows you to run it through debugger and to use various program analysis tools. The line-mode browser www, must be in your PATH to be able to use testplugin successfully. ARGUMENTS src=url This argument specifies the source document to use. It should be of the MIME type your plug-in is expecting since unlike within Netscape, no type checking is done and the document is simply streamed to the plug-in. [width=width] [height=height] These options allow to specify the plug-in window size. [name=value]... In addition to the arguments described above, any other argument can be specified and will be passed uninterpreted to the plug-in (through the NPP_New method). CURRENT LIMITATIONS I've not implemented all of the "Netscape Methods", but only the ones I've needed so far. Also the "Plug-in Methods" are not called in every possible manner so it does not provide a 100% testing coverage. SEE ALSO www(1), Netscape Navigator Documentation AUTHOR Arnaud Le Hors, X Consortium TEXTEROIDS(1) TEXTEROIDS(1) NAME texteroids - test your mousing skills on spinning text SYNOPSIS texteroids [ -display name ][ -fn font ][ -size size ][ text_string ] DESCRIPTION texteroids spins the specified text string in a window. If you click on the text with the mouse, the string splits up into individual letters, each of which you may then click on. OPTIONS -display name specifies the display on which to open a connection to the Display PostScript System. If no display is specified, the DISPLAY environment variable is used. -fn font specifies the name of the PostScript language font software to use. The default is Times-Italic. -size size specifies the size, in points, of the text. The default is 36. -debug specifies debugging mode. In debugging mode, all PostScript code sent to the server is printed out. text_string specifies the text to display. If the text has spaces it must be enclosed in quotation marks. The default text string is "Adobe". AUTHOR Adobe Systems Incorporated NOTES PostScript and Display PostScript are trademarks of Adobe Systems Incorporated which may be registered in certain jurisdictions. Copyright (c) 1990-1994 Adobe Systems Incorporated. All rights reserved. TWM(1) TWM(1) NAME twm - Tab Window Manager for the X Window System SYNTAX twm [ -display dpy ] [ -s ] [ -f initfile ] [ -v ] DESCRIPTION Twm is a window manager for the X Window System. It provides titlebars, shaped windows, several forms of icon management, user- defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings. This program is usually started by the user's session manager or startup script. When used from xdm(1) or xinit(1) without a session manager, twm is frequently executed in the foreground as the last client. When run this way, exiting twm causes the session to be terminated (i.e., logged out). By default, application windows are surrounded by a ``frame'' with a titlebar at the top and a special border around the window. The titlebar contains the window's name, a rectangle that is lit when the window is receiving keyboard input, and function boxes known as ``titlebuttons'' at the left and right edges of the titlebar. Pressing pointer Button1 (usually the left-most button unless it has been changed with xmodmap) on a titlebutton will invoke the function associated with the button. In the default interface, windows are iconified by clicking (pressing and then immediately releasing) the left titlebutton (which looks like a Dot). Conversely, windows are deiconified by clicking in the associated icon or entry in the icon manager (see description of the variable ShowIconManager and of the function f.showiconmgr). Windows are resized by pressing the right titlebutton (which resembles a group of nested squares), dragging the pointer over edge that is to be moved, and releasing the pointer when the outline of the window is the desired size. Similarly, windows are moved by pressing in the title or highlight region, dragging a window outline to the new location, and then releasing when the outline is in the desired position. Just clicking in the title or highlight region raises the window without moving it. When new windows are created, twm will honor any size and location information requested by the user (usually through -geometry command line argument or resources for the individual applications). Otherwise, an outline of the window's default size, its titlebar, and lines dividing the window into a 3x3 grid that track the pointer are displayed. Clicking pointer Button1 will position the window at the current position and give it the default size. Pressing pointer Button2 (usually the middle pointer button) and dragging the outline will give the window its current position but allow the sides to be resized as described above. Clicking pointer Button3 (usually the right pointer button) will give the window its current position but attempt to make it long enough to touch the bottom the screen. OPTIONS Twm accepts the following command line options: -display dpy This option specifies the X server to use. -s This option indicates that only the default screen (as specified by -display or by the DISPLAY environment variable) should be managed. By default, twm will attempt to manage all screens on the display. -f filename This option specifies the name of the startup file to use. By default, twm will look in the user's home directory for files named .twmrc.num (where num is a screen number) or .twmrc. -v This option indicates that twm should print error messages whenever an unexpected X Error event is received. This can be useful when debugging applications but can be distracting in regular use. CUSTOMIZATION Much of twm's appearance and behavior can be controlled by providing a startup file in one of the following locations (searched in order for each screen being managed when twm begins): $HOME/.twmrc.screennumber The screennumber is a small positive number (e.g. 0, 1, etc.) representing the screen number (e.g. the last number in the DISPLAY environment variable host:displaynum.screennum) that would be used to contact that screen of the display. This is intended for displays with multiple screens of differing visual types. $HOME/.twmrc This is the usual name for an individual user's startup file. /usr/X11R6/lib/X11/twm/system.twmrc If neither of the preceding files are found, twm will look in this file for a default configuration. This is often tailored by the site administrator to provide convenient menus or familiar bindings for novice users. If no startup files are found, twm will use the built-in defaults described above. The only resource used by twm is bitmapFilePath for a colon-separated list of directories to search when looking for bitmap files (for more information, see the Athena Widgets manual and xrdb(1)). Twm startup files are logically broken up into three types of specifications: Variables, Bindings, Menus. The Variables section must come first and is used to describe the fonts, colors, cursors, border widths, icon and window placement, highlighting, autoraising, layout of titles, warping, use of the icon manager. The Bindings section usually comes second and is used to specify the functions that should be to be invoked when keyboard and pointer buttons are pressed in windows, icons, titles, and frames. The Menus section gives any user-defined menus (containing functions to be invoked or commands to be executed). Variable names and keywords are case-insensitive. Strings must be surrounded by double quote characters (e.g. "blue") and are case- sensitive. A pound sign (#) outside of a string causes the remainder of the line in which the character appears to be treated as a comment. VARIABLES Many of the aspects of twm's user interface are controlled by variables that may be set in the user's startup file. Some of the options are enabled or disabled simply by the presence of a particular keyword. Other options require keywords, numbers, strings, or lists of all of these. Lists are surrounded by braces and are usually separated by whitespace or a newline. For example: AutoRaise { "emacs" "XTerm" "Xmh" } or AutoRaise { "emacs" "XTerm" "Xmh" } When a variable containing a list of strings representing windows is searched (e.g. to determine whether or not to enable autoraise as shown above), a string must be an exact, case-sensitive match to the window's name (given by the WM_NAME window property), resource name or class name (both given by the WM_CLASS window property). The preceding example would enable autoraise on windows named ``emacs'' as well as any xterm (since they are of class ``XTerm'') or xmh windows (which are of class ``Xmh''). String arguments that are interpreted as filenames (see the Pixmaps, Cursors, and IconDirectory below) will prepend the user's directory (specified by the HOME environment variable) if the first character is a tilde (~). If, instead, the first character is a colon (:), the name is assumed to refer to one of the internal bitmaps that are used to create the default titlebars symbols: :xlogo or :delete (both refer to the X logo), :dot or :iconify (both refer to the dot), :resize (the nested squares used by the resize button), :menu (a page with lines), and :question (the question mark used for non-existent bitmap files). The following variables may be specified at the top of a twm startup file. Lists of Window name prefix strings are indicated by win-list. Optional arguments are shown in square brackets: AutoRaise { win-list } This variable specifies a list of windows that should automatically be raised whenever the pointer enters the window. This action can be interactively enabled or disabled on individual windows using the function f.autoraise. AutoRelativeResize This variable indicates that dragging out a window size (either when initially sizing the window with pointer Button2 or when resizing it) should not wait until the pointer has crossed the window edges. Instead, moving the pointer automatically causes the nearest edge or edges to move by the same amount. This allows the resizing of windows that extend off the edge of the screen. If the pointer is in the center of the window, or if the resize is begun by pressing a titlebutton, twm will still wait for the pointer to cross a window edge (to prevent accidents). This option is particularly useful for people who like the press-drag-release method of sweeping out window sizes. BorderColor string [{ wincolorlist }] This variable specifies the default color of the border to be placed around all non-iconified windows, and may only be given within a Color, Grayscale or Monochrome list. The optional wincolorlist specifies a list of window and color name pairs for specifying particular border colors for different types of windows. For example: BorderColor "gray50" { "XTerm" "red" "xmh" "green" } The default is "black". BorderTileBackground string [{ wincolorlist }] This variable specifies the default background color in the gray pattern used in unhighlighted borders (only if NoHighlight hasn't been set), and may only be given within a Color, Grayscale or Monochrome list. The optional wincolorlist allows per-window colors to be specified. The default is "white". BorderTileForeground string [{ wincolorlist }] This variable specifies the default foreground color in the gray pattern used in unhighlighted borders (only if NoHighlight hasn't been set), and may only be given within a Color, Grayscale or Monochrome list. The optional wincolorlist allows per-window colors to be specified. The default is "black". BorderWidth pixels This variable specifies the width in pixels of the border surrounding all client window frames if ClientBorderWidth has not been specified. This value is also used to set the border size of windows created by twm (such as the icon manager). The default is 2. ButtonIndent pixels This variable specifies the amount by which titlebuttons should be indented on all sides. Positive values cause the buttons to be smaller than the window text and highlight area so that they stand out. Setting this and the TitleButtonBorderWidth variables to 0 makes titlebuttons be as tall and wide as possible. The default is 1. ClientBorderWidth This variable indicates that border width of a window's frame should be set to the initial border width of the window, rather than to the value of BorderWidth. Color { colors-list } This variable specifies a list of color assignments to be made if the default display is capable of displaying more than simple black and white. The colors-list is made up of the following color variables and their values: DefaultBackground, DefaultForeground, MenuBackground, MenuForeground, MenuTitleBackground, MenuTitleForeground, MenuShadowColor, MenuBorderColor, PointerForeground, and PointerBackground. The following color variables may also be given a list of window and color name pairs to allow per-window colors to be specified (see BorderColor for details): BorderColor, IconManagerHighlight, BorderTitleBackground, BorderTitleForeground, TitleBackground, TitleForeground, IconBackground, IconForeground, IconBorderColor, IconManagerBackground, and IconManagerForeground. For example: Color { MenuBackground "gray50" MenuForeground "blue" BorderColor "red" { "XTerm" "yellow" } TitleForeground "yellow" TitleBackground "blue" } All of these color variables may also be specified for the Monochrome variable, allowing the same initialization file to be used on both color and monochrome displays. ConstrainedMoveTime milliseconds This variable specifies the length of time between button clicks needed to begin a constrained move operation. Double clicking within this amount of time when invoking f.move will cause the window to be moved only in a horizontal or vertical direction. Setting this value to 0 will disable constrained moves. The default is 400 milliseconds. Cursors { cursor-list } This variable specifies the glyphs that twm should use for various pointer cursors. Each cursor may be defined either from the cursor font or from two bitmap files. Shapes from the cursor font may be specified directly as: cursorname "string" where cursorname is one of the cursor names listed below, and string is the name of a glyph as found in the file /usr/X11R6/include/X11/cursorfont.h (without the ``XC_'' prefix). If the cursor is to be defined from bitmap files, the following syntax is used instead: cursorname "image" "mask" The image and mask strings specify the names of files containing the glyph image and mask in bitmap(1) form. The bitmap files are located in the same manner as icon bitmap files. The following example shows the default cursor definitions: Cursors { Frame "top_left_arrow" Title "top_left_arrow" Icon "top_left_arrow" IconMgr "top_left_arrow" Move "fleur" Resize "fleur" Menu "sb_left_arrow" Button "hand2" Wait "watch" Select "dot" Destroy "pirate" } DecorateTransients This variable indicates that transient windows (those containing a WM_TRANSIENT_FOR property) should have titlebars. By default, transients are not reparented. DefaultBackground string This variable specifies the background color to be used for sizing and information windows. The default is "white". DefaultForeground string This variable specifies the foreground color to be used for sizing and information windows. The default is "black". DontIconifyByUnmapping { win-list } This variable specifies a list of windows that should not be iconified by simply unmapping the window (as would be the case if IconifyByUnmapping had been set). This is frequently used to force some windows to be treated as icons while other windows are handled by the icon manager. DontMoveOff This variable indicates that windows should not be allowed to be moved off the screen. It can be overridden by the f.forcemove function. DontSqueezeTitle [{ win-list }] This variable indicates that titlebars should not be squeezed to their minimum size as described under SqueezeTitle below. If the optional window list is supplied, only those windows will be prevented from being squeezed. ForceIcons This variable indicates that icon pixmaps specified in the Icons variable should override any client-supplied pixmaps. FramePadding pixels This variable specifies the distance between the titlebar decorations (the button and text) and the window frame. The default is 2 pixels. Grayscale { colors } This variable specifies a list of color assignments that should be made if the screen has a GrayScale default visual. See the description of Colors. IconBackground string [{ win-list }] This variable specifies the background color of icons, and may only be specified inside of a Color, Grayscale or Monochrome list. The optional win-list is a list of window names and colors so that per-window colors may be specified. See the BorderColor variable for a complete description of the win- list. The default is "white". IconBorderColor string [{ win-list }] This variable specifies the color of the border used for icon windows, and may only be specified inside of a Color, Grayscale or Monochrome list. The optional win-list is a list of window names and colors so that per-window colors may be specified. See the BorderColor variable for a complete description of the win-list. The default is "black". IconBorderWidth pixels This variable specifies the width in pixels of the border surrounding icon windows. The default is 2. IconMaxWidth pixels This variable specifies the maximum width in pixels of the icon window. The default is 1024. IconDirectory string This variable specifies the directory that should be searched if if a bitmap file cannot be found in any of the directories in the bitmapFilePath resource. IconFont string This variable specifies the font to be used to display icon names within icons. The default is "variable". IconForeground string [{ win-list }] This variable specifies the foreground color to be used when displaying icons, and may only be specified inside of a Color, Grayscale or Monochrome list. The optional win-list is a list of window names and colors so that per-window colors may be specified. See the BorderColor variable for a complete description of the win-list. The default is "black". IconifyByUnmapping [{ win-list }] This variable indicates that windows should be iconified by being unmapped without trying to map any icons. This assumes that the user will remap the window through the icon manager, the f.warpto function, or the TwmWindows menu. If the optional win-list is provided, only those windows will be iconified by simply unmapping. Windows that have both this and the IconManagerDontShow options set may not be accessible if no binding to the TwmWindows menu is set in the user's startup file. IconManagerBackground string [{ win-list }] This variable specifies the background color to use for icon manager entries, and may only be specified inside of a Color, Grayscale or Monochrome list. The optional win-list is a list of window names and colors so that per-window colors may be specified. See the BorderColor variable for a complete description of the win-list. The default is "white". IconManagerDontShow [{ win-list }] This variable indicates that the icon manager should not display any windows. If the optional win-list is given, only those windows will not be displayed. This variable is used to prevent windows that are rarely iconified (such as xclock or xload) from taking up space in the icon manager. IconManagerFont string This variable specifies the font to be used when displaying icon manager entries. The default is "variable". IconManagerForeground string [{ win-list }] This variable specifies the foreground color to be used when displaying icon manager entries, and may only be specified inside of a Color, Grayscale or Monochrome list. The optional win-list is a list of window names and colors so that per- window colors may be specified. See the BorderColor variable for a complete description of the win-list. The default is "black". IconManagerGeometry string [ columns ] This variable specifies the geometry of the icon manager window. The string argument is standard geometry specification that indicates the initial full size of the icon manager. The icon manager window is then broken into columns pieces and scaled according to the number of entries in the icon manager. Extra entries are wrapped to form additional rows. The default number of columns is 1. IconManagerHighlight string [{ win-list }] This variable specifies the border color to be used when highlighting the icon manager entry that currently has the focus, and can only be specified inside of a Color, Grayscale or Monochrome list. The optional win-list is a list of window names and colors so that per-window colors may be specified. See the BorderColor variable for a complete description of the win-list. The default is "black". IconManagers { iconmgr-list } This variable specifies a list of icon managers to create. Each item in the iconmgr-list has the following format: "winname" ["iconname"] "geometry" columns where winname is the name of the windows that should be put into this icon manager, iconname is the name of that icon manager window's icon, geometry is a standard geometry specification, and columns is the number of columns in this icon manager as described in IconManagerGeometry. For example: IconManagers { "XTerm" "=300x5+800+5" 5 "myhost" "=400x5+100+5" 2 } Clients whose name or class is ``XTerm'' will have an entry created in the ``XTerm'' icon manager. Clients whose name was ``myhost'' would be put into the ``myhost'' icon manager. IconManagerShow { win-list } This variable specifies a list of windows that should appear in the icon manager. When used in conjunction with the IconManagerDontShow variable, only the windows in this list will be shown in the icon manager. IconRegion geomstring vgrav hgrav gridwidth gridheight This variable specifies an area on the root window in which icons are placed if no specific icon location is provided by the client. The geomstring is a quoted string containing a standard geometry specification. If more than one IconRegion lines are given, icons will be put into the succeeding icon regions when the first is full. The vgrav argument should be either North or South and control and is used to control whether icons are first filled in from the top or bottom of the icon region. Similarly, the hgrav argument should be either East or West and is used to control whether icons should be filled in from left from the right. Icons are laid out within the region in a grid with cells gridwidth pixels wide and gridheight pixels high. Icons { win-list } This variable specifies a list of window names and the bitmap filenames that should be used as their icons. For example: Icons { "XTerm" "xterm.icon" "xfd" "xfd_icon" } Windows that match ``XTerm'' and would not be iconified by unmapping, and would try to use the icon bitmap in the file ``xterm.icon''. If ForceIcons is specified, this bitmap will be used even if the client has requested its own icon pixmap. InterpolateMenuColors This variable indicates that menu entry colors should be interpolated between entry specified colors. In the example below: Menu "mymenu" { "Title" ("black":"red") f.title "entry1" f.nop "entry2" f.nop "entry3" ("white":"green") f.nop "entry4" f.nop "entry5" ("red":"white") f.nop } the foreground colors for ``entry1'' and ``entry2'' will be interpolated between black and white, and the background colors between red and green. Similarly, the foreground for ``entry4'' will be half-way between white and red, and the background will be half-way between green and white. MakeTitle { win-list } This variable specifies a list of windows on which a titlebar should be placed and is used to request titles on specific windows when NoTitle has been set. MaxWindowSize string This variable specifies a geometry in which the width and height give the maximum size for a given window. This is typically used to restrict windows to the size of the screen. The default width is 32767 - screen width. The default height is 32767 - screen height. MenuBackground string This variable specifies the background color used for menus, and can only be specified inside of a Color or Monochrome list. The default is "white". MenuBorderColor string This variable specifies the color of the menu border and can only be specified inside of a Color, Grayscale or Monochrome list. The default is "black". MenuBorderWidth pixels This variable specifies the width in pixels of the border surrounding menu windows. The default is 2. MenuFont string This variable specifies the font to use when displaying menus. The default is "variable". MenuForeground string This variable specifies the foreground color used for menus, and can only be specified inside of a Color, Grayscale or Monochrome list. The default is "black". MenuShadowColor string This variable specifies the color of the shadow behind pull- down menus and can only be specified inside of a Color, Grayscale or Monochrome list. The default is "black". MenuTitleBackground string This variable specifies the background color for f.title entries in menus, and can only be specified inside of a Color, Grayscale or Monochrome list. The default is "white". MenuTitleForeground string This variable specifies the foreground color for f.title entries in menus and can only be specified inside of a Color or Monochrome list. The default is "black". Monochrome { colors } This variable specifies a list of color assignments that should be made if the screen has a depth of 1. See the description of Colors. MoveDelta pixels This variable specifies the number of pixels the pointer must move before the f.move function starts working. Also see the f.deltastop function. The default is zero pixels. NoBackingStore This variable indicates that twm's menus should not request backing store to minimize repainting of menus. This is typically used with servers that can repaint faster than they can handle backing store. NoCaseSensitive This variable indicates that case should be ignored when sorting icon names in an icon manager. This option is typically used with applications that capitalize the first letter of their icon name. NoDefaults This variable indicates that twm should not supply the default titlebuttons and bindings. This option should only be used if the startup file contains a completely new set of bindings and definitions. NoGrabServer This variable indicates that twm should not grab the server when popping up menus and moving opaque windows. NoHighlight [{ win-list }] This variable indicates that borders should not be highlighted to track the location of the pointer. If the optional win-list is given, highlighting will only be disabled for those windows. When the border is highlighted, it will be drawn in the current BorderColor. When the border is not highlighted, it will be stippled with a gray pattern using the current BorderTileForeground and BorderTileBackground colors. NoIconManagers This variable indicates that no icon manager should be created. NoMenuShadows This variable indicates that menus should not have drop shadows drawn behind them. This is typically used with slower servers since it speeds up menu drawing at the expense of making the menu slightly harder to read. NoRaiseOnDeiconify This variable indicates that windows that are deiconified should not be raised. NoRaiseOnMove This variable indicates that windows should not be raised when moved. This is typically used to allow windows to slide underneath each other. NoRaiseOnResize This variable indicates that windows should not be raised when resized. This is typically used to allow windows to be resized underneath each other. NoRaiseOnWarp This variable indicates that windows should not be raised when the pointer is warped into them with the f.warpto function. If this option is set, warping to an occluded window may result in the pointer ending up in the occluding window instead the desired window (which causes unexpected behavior with f.warpring). NoSaveUnders This variable indicates that menus should not request save- unders to minimize window repainting following menu selection. It is typically used with displays that can repaint faster than they can handle save-unders. NoStackMode [{ win-list }] This variable indicates that client window requests to change stacking order should be ignored. If the optional win-list is given, only requests on those windows will be ignored. This is typically used to prevent applications from relentlessly popping themselves to the front of the window stack. NoTitle [{ win-list }] This variable indicates that windows should not have titlebars. If the optional win-list is given, only those windows will not have titlebars. MakeTitle may be used with this option to force titlebars to be put on specific windows. NoTitleFocus This variable indicates that twm should not set keyboard input focus to each window as it is entered. Normally, twm sets the focus so that focus and key events from the titlebar and icon managers are delivered to the application. If the pointer is moved quickly and twm is slow to respond, input can be directed to the old window instead of the new. This option is typically used to prevent this ``input lag'' and to work around bugs in older applications that have problems with focus events. NoTitleHighlight [{ win-list }] This variable indicates that the highlight area of the titlebar, which is used to indicate the window that currently has the input focus, should not be displayed. If the optional win-list is given, only those windows will not have highlight areas. This and the SqueezeTitle options can be set to substantially reduce the amount of screen space required by titlebars. OpaqueMove This variable indicates that the f.move function should actually move the window instead of just an outline so that the user can immediately see what the window will look like in the new position. This option is typically used on fast displays (particularly if NoGrabServer is set). Pixmaps { pixmaps } This variable specifies a list of pixmaps that define the appearance of various images. Each entry is a keyword indicating the pixmap to set, followed by a string giving the name of the bitmap file. The following pixmaps may be specified: Pixmaps { TitleHighlight "gray1" } The default for TitleHighlight is to use an even stipple pattern. Priority priority This variable sets twm's priority. priority should be an unquoted, signed number (e.g. 999). This variable has an effect only if the server supports the SYNC extension. RandomPlacement This variable indicates that windows with no specified geometry should be placed in a pseudo-random location instead of having the user drag out an outline. ResizeFont string This variable specifies the font to be used for in the dimensions window when resizing windows. The default is "fixed". RestartPreviousState This variable indicates that twm should attempt to use the WM_STATE property on client windows to tell which windows should be iconified and which should be left visible. This is typically used to try to regenerate the state that the screen was in before the previous window manager was shutdown. SaveColor { colors-list } This variable indicates a list of color assignments to be stored as pixel values in the root window property _MIT_PRIORITY_COLORS. Clients may elect to preserve these values when installing their own colormap. Note that use of this mechanism is a way an for application to avoid the "technicolor" problem, whereby useful screen objects such as window borders and titlebars disappear when a programs custom colors are installed by the window manager. For example: SaveColor { BorderColor TitleBackground TitleForeground "red" "green" "blue" } This would place on the root window 3 pixel values for borders and titlebars, as well as the three color strings, all taken from the default colormap. ShowIconManager This variable indicates that the icon manager window should be displayed when twm is started. It can always be brought up using the f.showiconmgr function. SortIconManager This variable indicates that entries in the icon manager should be sorted alphabetically rather than by simply appending new windows to the end. SqueezeTitle [{ squeeze-list }] This variable indicates that twm should attempt to use the SHAPE extension to make titlebars occupy only as much screen space as they need, rather than extending all the way across the top of the window. The optional squeeze-list may be used to control the location of the squeezed titlebar along the top of the window. It contains entries of the form: "name" justification num denom where name is a window name, justification is either left, center, or right, and num and denom are numbers specifying a ratio giving the relative position about which the titlebar is justified. The ratio is measured from left to right if the numerator is positive, and right to left if negative. A denominator of 0 indicates that the numerator should be measured in pixels. For convenience, the ratio 0/0 is the same as 1/2 for center and -1/1 for right. For example: SqueezeTitle { "XTerm" left 0 0 "xterm1" left 1 3 "xterm2" left 2 3 "oclock" center 0 0 "emacs" right 0 0 } The DontSqueezeTitle list can be used to turn off squeezing on certain titles. StartIconified [{ win-list }] This variable indicates that client windows should initially be left as icons until explicitly deiconified by the user. If the optional win-list is given, only those windows will be started iconic. This is useful for programs that do not support an -iconic command line option or resource. TitleBackground string [{ win-list }] This variable specifies the background color used in titlebars, and may only be specified inside of a Color, Grayscale or Monochrome list. The optional win-list is a list of window names and colors so that per-window colors may be specified. The default is "white". TitleButtonBorderWidth pixels This variable specifies the width in pixels of the border surrounding titlebuttons. This is typically set to 0 to allow titlebuttons to take up as much space as possible and to not have a border. The default is 1. TitleFont string This variable specifies the font to be used for displaying window names in titlebars. The default is "variable". TitleForeground string [{ win-list }] This variable specifies the foreground color used in titlebars, and may only be specified inside of a Color, Grayscale or Monochrome list. The optional win-list is a list of window names and colors so that per-window colors may be specified. The default is "black". TitleIndent pixels This variable specifies the amount by which window name should be indented on the left. The default is 0. TitlePadding pixels This variable specifies the distance between the various buttons, text, and highlight areas in the titlebar. The default is 8 pixels. UnknownIcon string This variable specifies the filename of a bitmap file to be used as the default icon. This bitmap will be used as the icon of all clients which do not provide an icon bitmap and are not listed in the Icons list. UsePPosition string This variable specifies whether or not twm should honor program-requested locations (given by the PPosition flag in the WM_NORMAL_HINTS property) in the absence of a user-specified position. The argument string may have one of three values: "off" (the default) indicating that twm should ignore the program-supplied position, "on" indicating that the position should be used, and "non-zero" indicating that the position should used if it is other than (0,0). The latter option is for working around a bug in older toolkits. WarpCursor [{ win-list }] This variable indicates that the pointer should be warped into windows when they are deiconified. If the optional win-list is given, the pointer will only be warped when those windows are deiconified. WindowRing { win-list } This variable specifies a list of windows along which the f.warpring function cycles. WarpUnmapped This variable indicates that the f.warpto function should deiconify any iconified windows it encounters. This is typically used to make a key binding that will pop a particular window (such as xmh), no matter where it is. The default is for f.warpto to ignore iconified windows. XorValue number This variable specifies the value to use when drawing window outlines for moving and resizing. This should be set to a value that will result in a variety of of distinguishable colors when exclusive-or'ed with the contents of the user's typical screen. Setting this variable to 1 often gives nice results if adjacent colors in the default colormap are distinct. By default, twm will attempt to cause temporary lines to appear at the opposite end of the colormap from the graphics. Zoom [ count ] This variable indicates that outlines suggesting movement of a window to and from its iconified state should be displayed whenever a window is iconified or deiconified. The optional count argument specifies the number of outlines to be drawn. The default count is 8. The following variables must be set after the fonts have been assigned, so it is usually best to put them at the end of the variables or beginning of the bindings sections: DefaultFunction function This variable specifies the function to be executed when a key or button event is received for which no binding is provided. This is typically bound to f.nop, f.beep, or a menu containing window operations. WindowFunction function This variable specifies the function to execute when a window is selected from the TwmWindows menu. If this variable is not set, the window will be deiconified and raised. BINDINGS After the desired variables have been set, functions may be attached titlebuttons and key and pointer buttons. Titlebuttons may be added from the left or right side and appear in the titlebar from left-to- right according to the order in which they are specified. Key and pointer button bindings may be given in any order. Titlebuttons specifications must include the name of the pixmap to use in the button box and the function to be invoked when a pointer button is pressed within them: LeftTitleButton "bitmapname" = function or RightTitleButton "bitmapname" = function The bitmapname may refer to one of the built-in bitmaps (which are scaled to match TitleFont) by using the appropriate colon-prefixed name described above. Key and pointer button specifications must give the modifiers that must be pressed, over which parts of the screen the pointer must be, and what function is to be invoked. Keys are given as strings containing the appropriate keysym name; buttons are given as the keywords Button1-Button5: "FP1" = modlist : context : function Button1 = modlist : context : function The modlist is any combination of the modifier names shift, control, lock, meta, mod1, mod2, mod3, mod4, or mod5 (which may be abbreviated as s, c, l, m, m1, m2, m3, m4, m5, respectively) separated by a vertical bar (|). Similarly, the context is any combination of window, title, icon, root, frame, iconmgr, their first letters (iconmgr abbreviation is m), or all, separated by a vertical bar. The function is any of the f. keywords described below. For example, the default startup file contains the following bindings: Button1 = : root : f.menu "TwmWindows" Button1 = m : window | icon : f.function "move-or-lower" Button2 = m : window | icon : f.iconify Button3 = m : window | icon : f.function "move-or-raise" Button1 = : title : f.function "move-or-raise" Button2 = : title : f.raiselower Button1 = : icon : f.function "move-or-iconify" Button2 = : icon : f.iconify Button1 = : iconmgr : f.iconify Button2 = : iconmgr : f.iconify A user who wanted to be able to manipulate windows from the keyboard could use the following bindings: "F1" = : all : f.iconify "F2" = : all : f.raiselower "F3" = : all : f.warpring "next" "F4" = : all : f.warpto "xmh" "F5" = : all : f.warpto "emacs" "F6" = : all : f.colormap "next" "F7" = : all : f.colormap "default" "F20" = : all : f.warptoscreen "next" "Left" = m : all : f.backiconmgr "Right" = m | s : all : f.forwiconmgr "Up" = m : all : f.upiconmgr "Down" = m | s : all : f.downiconmgr Twm provides many more window manipulation primitives than can be conveniently stored in a titlebar, menu, or set of key bindings. Although a small set of defaults are supplied (unless the NoDefaults is specified), most users will want to have their most common operations bound to key and button strokes. To do this, twm associates names with each of the primitives and provides user-defined functions for building higher level primitives and menus for interactively selecting among groups of functions. User-defined functions contain the name by which they are referenced in calls to f.function and a list of other functions to execute. For example: Function "move-or-lower" { f.move f.deltastop f.lower } Function "move-or-raise" { f.move f.deltastop f.raise } Function "move-or-iconify" { f.move f.deltastop f.iconify } Function "restore-colormap" { f.colormap "default" f.lower } The function name must be used in f.function exactly as it appears in the function specification. In the descriptions below, if the function is said to operate on the selected window, but is invoked from a root menu, the cursor will be changed to the Select cursor and the next window to receive a button press will be chosen: ! string This is an abbreviation for f.exec string. f.autoraise This function toggles whether or not the selected window is raised whenever entered by the pointer. See the description of the variable AutoRaise. f.backiconmgr This function warps the pointer to the previous column in the current icon manager, wrapping back to the previous row if necessary. f.beep This function sounds the keyboard bell. f.bottomzoom This function is similar to the f.fullzoom function, but resizes the window to fill only the bottom half of the screen. f.changelabel This function enters a mode where the user is able to change a window or an icon title. It grabs the keyboard and ignores all other events, so the only way to exit from this mode is to press Enter (confirm a new title) or Escape (restore the original title) keys. f.circledown This function lowers the top-most window that occludes another window. f.circleup This function raises the bottom-most window that is occluded by another window. f.colormap string This function rotates the colormaps (obtained from the WM_COLORMAP_WINDOWS property on the window) that twm will display when the pointer is in this window. The argument string may have one of the following values: "next", "prev", and "default". It should be noted here that in general, the installed colormap is determined by keyboard focus. A pointer driven keyboard focus will install a private colormap upon entry of the window owning the colormap. Using the click to type model, private colormaps will not be installed until the user presses a mouse button on the target window. f.deiconify This function deiconifies the selected window. If the window is not an icon, this function does nothing. f.delete This function sends the WM_DELETE_WINDOW message to the selected window if the client application has requested it through the WM_PROTOCOLS window property. The application is supposed to respond to the message by removing the indicated window. If the window has not requested WM_DELETE_WINDOW messages, the keyboard bell will be rung indicating that the user should choose an alternative method. Note this is very different from f.destroy. The intent here is to delete a single window, not necessarily the entire application. f.deltastop This function allows a user-defined function to be aborted if the pointer has been moved more than MoveDelta pixels. See the example definition given for Function "move-or-raise" at the beginning of the section. f.destroy This function instructs the X server to close the display connection of the client that created the selected window. This should only be used as a last resort for shutting down runaway clients. See also f.delete. f.downiconmgr This function warps the pointer to the next row in the current icon manger, wrapping to the beginning of the next column if necessary. f.exec string This function passes the argument string to /bin/sh for execution. In multiscreen mode, if string starts a new X client without giving a display argument, the client will appear on the screen from which this function was invoked. f.focus This function toggles the keyboard focus of the server to the selected window, changing the focus rule from pointer-driven if necessary. If the selected window already was focused, this function executes an f.unfocus. f.forcemove This function is like f.move except that it ignores the DontMoveOff variable. f.forwiconmgr This function warps the pointer to the next column in the current icon manager, wrapping to the beginning of the next row if necessary. f.fullzoom This function resizes the selected window to the full size of the display or else restores the original size if the window was already zoomed. f.function string This function executes the user-defined function whose name is specified by the argument string. f.hbzoom This function is a synonym for f.bottomzoom. f.hideiconmgr This function unmaps the current icon manager. f.horizoom This variable is similar to the f.zoom function except that the selected window is resized to the full width of the display. f.htzoom This function is a synonym for f.topzoom. f.hzoom This function is a synonym for f.horizoom. f.iconify This function iconifies or deiconifies the selected window or icon, respectively. f.identify This function displays a summary of the name and geometry of the selected window. If the server supports the SYNC extension, the priority of the client owning the window is also displayed. Clicking the pointer or pressing a key in the window will dismiss it. f.lefticonmgr This function similar to f.backiconmgr except that wrapping does not change rows. f.leftzoom This variable is similar to the f.bottomzoom function but causes the selected window is only resized to the left half of the display. f.lower This function lowers the selected window. f.menu string This function invokes the menu specified by the argument astring. If a string starts with a $-symbols, it will be expanded as an environment variable. Cascaded menus may be built by nesting calls to f.menu. f.move This function drags an outline of the selected window (or the window itself if the OpaqueMove variable is set) until the invoking pointer button is released. Double clicking within the number of milliseconds given by ConstrainedMoveTime warps the pointer to the center of the window and constrains the move to be either horizontal or vertical depending on which grid line is crossed. To abort a move, press another button before releasing the first button. f.nexticonmgr This function warps the pointer to the next icon manager containing any windows on the current or any succeeding screen. f.nop This function does nothing and is typically used with the DefaultFunction or WindowFunction variables or to introduce blank lines in menus. f.previconmgr This function warps the pointer to the previous icon manager containing any windows on the current or preceding screens. f.priority string This function sets the priority of the client owning the selected window to the numeric value of the argument string, which should be a signed integer in double quotes (e.g. "999" ). This function has an effect only if the server supports the SYNC extension. f.quit This function causes twm to restore the window's borders and exit. If twm is the first client invoked from xdm, this will result in a server reset. f.raise This function raises the selected window. f.raiselower This function raises the selected window to the top of the stacking order if it is occluded by any windows, otherwise the window will be lowered. f.refresh This function causes all windows to be refreshed. f.resize This function displays an outline of the selected window. Crossing a border (or setting AutoRelativeResize) will cause the outline to begin to rubber band until the invoking button is released. To abort a resize, press another button before releasing the first button. f.restart This function kills and restarts twm. f.startwm string This function kills twm and starts another window manager, as specified by string. f.righticonmgr This function is similar to f.nexticonmgr except that wrapping does not change rows. f.rightzoom This variable is similar to the f.bottomzoom function except that the selected window is only resized to the right half of the display. f.saveyourself This function sends a WM_SAVEYOURSELF message to the selected window if it has requested the message in its WM_PROTOCOLS window property. Clients that accept this message are supposed to checkpoint all state associated with the window and update the WM_COMMAND property as specified in the ICCCM. If the selected window has not selected for this message, the keyboard bell will be rung. f.showiconmgr This function maps the current icon manager. f.sorticonmgr This function sorts the entries in the current icon manager alphabetically. See the variable SortIconManager. f.title This function provides a centered, unselectable item in a menu definition. It should not be used in any other context. f.topzoom This variable is similar to the f.bottomzoom function except that the selected window is only resized to the top half of the display. f.unfocus This function resets the focus back to pointer-driven. This should be used when a focused window is no longer desired. f.upiconmgr This function warps the pointer to the previous row in the current icon manager, wrapping to the last row in the same column if necessary. f.vlzoom This function is a synonym for f.leftzoom. f.vrzoom This function is a synonym for f.rightzoom. f.totalzoom This function resizes the selected window to the full size of the display or else restores the original size if the window was already zoomed. Zoomed window covers the whole area of a screen, without even window manager decoration. f.warpring string This function warps the pointer to the next or previous window (as indicated by the argument string, which may be "next" or "prev") specified in the WindowRing variable. f.warpto string This function warps the pointer to the window which has a name or class that matches string. If the window is iconified, it will be deiconified if the variable WarpUnmapped is set or else ignored. f.warptoiconmgr string This function warps the pointer to the icon manager entry associated with the window containing the pointer in the icon manager specified by the argument string. If string is empty (i.e. ""), the current icon manager is chosen. f.warptoscreen string This function warps the pointer to the screen specified by the argument string. String may be a number (e.g. "0" or "1"), the word "next" (indicating the current screen plus 1, skipping over any unmanaged screens), the word "back" (indicating the current screen minus 1, skipping over any unmanaged screens), or the word "prev" (indicating the last screen visited. f.winrefresh This function is similar to the f.refresh function except that only the selected window is refreshed. f.zoom This function is similar to the f.fullzoom function, except that the only the height of the selected window is changed. MENUS Functions may be grouped and interactively selected using pop-up (when bound to a pointer button) or pull-down (when associated with a titlebutton) menus. Each menu specification contains the name of the menu as it will be referred to by f.menu, optional default foreground and background colors, the list of item names and the functions they should invoke, and optional foreground and background colors for individual items: Menu "menuname" [ ("deffore":"defback") ] { string1 [ ("fore1":"backn")] function1 string2 [ ("fore2":"backn")] function2 . . . stringN [ ("foreN":"backN")] functionN } The menuname is case-sensitive. The optional deffore and defback arguments specify the foreground and background colors used on a color display to highlight menu entries. The string portion of each menu entry will be the text which will appear in the menu. The optional fore and back arguments specify the foreground and background colors of the menu entry when the pointer is not in the entry. These colors will only be used on a color display. The default is to use the colors specified by the MenuForeground and MenuBackground variables. The function portion of the menu entry is one of the functions, including any user-defined functions, or additional menus. There is a special menu named TwmWindows which contains the names of all of the client and twm-supplied windows. Selecting an entry will cause the WindowFunction to be executed on that window. If WindowFunction hasn't been set, the window will be deiconified and raised. ICONS Twm supports several different ways of manipulating iconified windows. The common pixmap-and-text style may be laid out by hand or automatically arranged as described by the IconRegion variable. In addition, a terse grid of icon names, called an icon manager, provides a more efficient use of screen space as well as the ability to navigate among windows from the keyboard. An icon manager is a window that contains names of selected or all windows currently on the display. In addition to the window name, a small button using the default iconify symbol will be displayed to the left of the name when the window is iconified. By default, clicking on an entry in the icon manager performs f.iconify. To change the actions taken in the icon manager, use the the iconmgr context when specifying button and keyboard bindings. Moving the pointer into the icon manager also directs keyboard focus to the indicated window (setting the focus explicitly or else sending synthetic events NoTitleFocus is set). Using the f.upiconmgr, f.downiconmgr f.lefticonmgr, and f.righticonmgr functions, the input focus can be changed between windows directly from the keyboard. BUGS The resource manager should have been used instead of all of the window lists. The IconRegion variable should take a list. Double clicking very fast to get the constrained move function will sometimes cause the window to move, even though the pointer is not moved. If IconifyByUnmapping is on and windows are listed in IconManagerDontShow but not in DontIconifyByUnmapping, they may be lost if they are iconified and no bindings to f.menu "TwmWindows" or f.warpto are setup. FILES $HOME/.twmrc. $HOME/.twmrc /usr/X11R6/lib/X11/twm/system.twmrc ENVIRONMENT VARIABLES DISPLAY This variable is used to determine which X server to use. It is also set during f.exec so that programs come up on the proper screen. HOME This variable is used as the prefix for files that begin with a tilde and for locating the twm startup file. SEE ALSO X(7), Xserver(1), xdm(1), xrdb(1) AUTHORS Tom LaStrange, Solbourne Computer; Jim Fulton, MIT X Consortium; Steve Pitschke, Stardent Computer; Keith Packard, MIT X Consortium; Dave Sternlicht, MIT X Consortium; Dave Payne, Apple Computer. ucs2any(1) XFree86 ucs2any(1) NAME ucs2any - generate BDF fonts containing subsets of ISO 10646-1 codepoints SYNOPSIS ucs2any [ +d | -d ] source-name { mapping-file registry-encoding } ... DESCRIPTION ucs2any allows one to generate from an ISO 10646-1 encoded BDF font other BDF fonts in any possible encoding. This way, one can derive from a single ISO 10646-1 master font a whole set of 8-bit fonts in all ISO 8859 and various other encodings. OPTIONS +d puts DEC VT100 graphics characters in the C0 range (default for upright, character-cell fonts). -d omits DEC VT100 graphics characters from the C0 range (default for all font types except upright, character-cell fonts). OPERANDS source-name is the name of an ISO 10646-1 encoded BDF file. mapping-file is the name of a character set table like those at . These files can also typically be found installed in the /usr/X11R6/lib/X11/fonts/util/ directory. registry-encoding are the CHARSET_REGISTRY and CHARSET_ENCODING field values for the font name (XLFD) of the target font, separated by a hyphen. Any number of mapping-file and registry-encoding operand pairs may be specified. EXAMPLE The command ucs2any 6x13.bdf 8859-1.TXT iso8859-1 8859-2.TXT iso8859-2 will generate the files 6x13-iso8859-1.bdf and 6x13-iso8859-2.bdf. FUTURE DIRECTIONS Hopefully a future XFree86 release will have a facility similar to ucs2any built into the server, and reencode ISO 10646-1 on the fly, because storing the same fonts in many different encodings is clearly a waste of storage capacity. SEE ALSO bdftruncate(1) AUTHOR ucs2any was written by Markus Kuhn. Branden Robinson wrote this manual page, originally for the Debian Project. VIEWRES(1) VIEWRES(1) NAME viewres - graphical class browser for Xt SYNOPSIS viewres [-option ...] DESCRIPTION The viewres program displays a tree showing the widget class hierarchy of the Athena Widget Set. Each node in the tree can be expanded to show the resources that the corresponding class adds (i.e. does not inherit from its parent) when a widget is created. This application allows the user to visually examine the structure and inherited resources for the Athena Widget Set. OPTIONS Viewres accepts all of the standard toolkit command line options as well as the following: -top name This option specifies the name of the highest widget in the hierarchy to display. This is typically used to limit the display to a subset of the tree. The default is Object. -variable This option indicates that the widget variable names (as declared in header files) should be displayed in the nodes rather than the widget class name. This is sometimes useful to distinguish widget classes that share the same name (such as Text). -vertical This option indicates that the tree should be displayed top to bottom rather left to right. VIEW MENU The way in which the tree is displayed may be changed through the entries in the View menu: Show Variable Names This entry causes the node labels to be set to the variable names used to declare the corresponding widget class. This operation may also be performed with the SetLabelType(variable) translation. Show Class Names This entry causes the node labels to be set to the class names used when specifying resources. This operation may also be performed with the SetLabelType(class) translation. Layout Horizontal This entry causes the tree to be laid out from left to right. This operation may also be performed with the SetOrientation(West) translation. Layout Vertical This entry causes the tree to be laid out from top to bottom. This operation may also be performed with the SetOrientation(North) translation. Show Resource Boxes This entry expands the selected nodes (see next section) to show the new widget and constraint resources. This operation may also be performed with the Resources(on) translation. Hide Resource Boxes This entry removes the resource displays from the selected nodes (usually to conserve space). This operation may also be performed with the Resources(off) translation. SELECT MENU Resources for a single widget class can be displayed by clicking Button2 on the corresponding node, or by adding the node to the selection list with Button1 and using the Show Resource Boxes entry in the View menu. Since Button1 actually toggles the selection state of a node, clicking on a selected node will cause it to be removed from the selected list. Collections of nodes may also be selected through the various entries in the Select menu: Unselect All This entry removes all nodes from the selection list. This operation may also be performed with the Select(nothing) translation. Select All This entry adds all nodes to the selection list. This operation may also be performed with the Select(all) translation. Invert All This entry adds unselected nodes to, and removes selected nodes from, the selection list. This operation may also be performed with the Select(invert) translation. Select Parent This entry selects the immediate parents of all selected nodes. This operation may also be performed with the Select(parent) translation. Select Ancestors This entry recursively selects all parents of all selected nodes. This operation may also be performed with the Select(ancestors) translation. Select Children This entry selects the immediate children of all selected nodes. This operation may also be performed with the Select(children) translation. Select Descendants This entry recursively selects all children of all selected nodes. This operation may also be performed with the Select(descendants) translation. Select Has Resources This entry selects all nodes that add new resources (regular or constraint) to their corresponding widget classes. This operation may also be performed with the Select(resources) translation. Select Shown Resource Boxes This entry selects all nodes whose resource boxes are currently expanded (usually so that they can be closed with Hide Resource Boxes). This operation may also be performed with the Select(shown) translation. ACTIONS The following application actions are provided: Quit() This action causes viewres to exit. SetLabelType(type) This action sets the node labels to display the widget variable or class names, according to the argument type. SetOrientation(direction) This action sets the root of the tree to be one of the following areas of the window: West, North, East, or South. Select(what) This action selects the indicated nodes, as described in the VIEW MENU section: nothing (unselects all nodes), invert, parent, ancestors, children, descendants, resources, shown. Resources(op) This action turns on, off, or toggles the resource boxes for the selected nodes. If invoked from within one of the nodes (through the keyboard or pointer), only that node is used. WIDGET HIERARCHY Resources may be specified for the following widgets: Viewres viewres Paned pane Box buttonbox Command quit MenuButton view SimpleMenu viewMenu SmeBSB layoutHorizontal SmeBSB layoutVertical SmeLine line1 SmeBSB namesVariable SmeBSB namesClass SmeLine line2 SmeBSB viewResources SmeBSB viewNoResources MenuButton select SimpleMenu selectMenu SmeBSB unselect SmeBSB selectAll SmeBSB selectInvert SmeLine line1 SmeBSB selectParent SmeBSB selectAncestors SmeBSB selectChildren SmeBSB selectDescendants SmeLine line2 SmeBSB selectHasResources SmeBSB selectShownResources Form treeform Porthole porthole Tree tree Box variable-name Toggle variable-name List variable-name Panner panner where variable-name is the widget variable name of each node. SEE ALSO X(7), xrdb(1), listres(1), editres(1), appres(1), appropriate widget documents COPYRIGHT Copyright 1994 X Consortium See X(7) for a full statement of rights and permissions. AUTHOR Jim Fulton, MIT X Consortium X11PERF(1) X11PERF(1) NAME x11perf - X11 server performance test program SYNTAX x11perf [ -option ... ] DESCRIPTION The x11perf program runs one or more performance tests and reports how fast an X server can execute the tests. Many graphics benchmarks assume that the graphics device is used to display the output of a single fancy graphics application, and that the user gets his work done on some other device, like a terminal. Such benchmarks usually measure drawing speed for lines, polygons, text, etc. Since workstations are not used as standalone graphics engines, but as super-terminals, x11perf measures window management performance as well as traditional graphics performance. x11perf includes benchmarks for the time it takes to create and map windows (as when you start up an application); to map a pre-existing set of windows onto the screen (as when you deiconify an application or pop up a menu); and to rearrange windows (as when you slosh windows to and fro trying to find the one you want). x11perf also measures graphics performance for operations not normally used in standalone graphics displays, but are nonetheless used frequently by X applications. Such operations include CopyPlane (used to map bitmaps into pixels), scrolling (used in text windows), and various stipples and tiles (used for CAD and color half-toning, respectively). x11perf should be used to analyze particular strengths and weaknesses of servers, and is most useful to a server writer who wants to analyze and improve a server. x11perf is meant to comprehensively exercise just about every X11 operation you can perform; it does not purport to be a representative sample of the operations that X11 applications actually use. While it can be used as a benchmark, it was written and is intended as a performance testing tool. As such, x11perf DOES NOT whittle down measurements to a single ``HeXStones'' or ``MeXops'' number. We consider such numbers to be uninformative at best and misleading at worst. Some servers which are very fast for certain applications can be very slow for others. No single number or small set of numbers are sufficient to characterize how an X implementation will perform on all applications. However, by knowledge of your favorite application, you may be able to use the numbers x11perf reports to predict its performance on a given X implementation. That said, you might also want to look at x11perfcomp(1), a program to compare the outputs of different x11perf runs. You provide a list of files containing results from x11perf, and it lays them out in a nice tabular format. For repeatable results, x11perf should be run using a local connection on a freshly-started server. The default configuration runs each test 5 times, in order to see if each trial takes approximately the same amount of time. Strange glitches should be examined; if non-repeatable one might chalk them up to daemons and network traffic. Each trial is run for 5 seconds, in order to reduce random time differences. The number of objects processed per second is displayed to 3 significant digits, but you'll be lucky on most UNIX system if the numbers are actually consistent to 2 digits. x11perf moves the cursor out of the test window; you should be careful not to bump the mouse and move it back into the window. (A prize to people who correctly explain why!!). Before running a test, x11perf determines what the round trip time to the server is, and factors this out of the final timing reported. It ensures that the server has actually performed the work requested by fetching a pixel back from the test window, which means that servers talking to graphics accelerators can't claim that they are done, while in the meantime the accelerator is painting madly. By default x11perf automatically calibrates the number of repetitions of each test, so that each should take approximately the same length of time to run across servers of widely differing speeds. However, since each test must be run to completion at least once, some slow servers may take a very long time, particularly on the window moving and resizing tests, and on the arc drawing tests. All timing reports are for the smallest object involved. For example, the line tests use a PolyLine request to paint several lines at once, but report how many lines per second the server can paint, not how many PolyLine requests per second. Text tests paint a line of characters, but report on the number of characters per second. Some window tests map, unmap, or move a single parent window, but report on how many children windows per second the server can map, unmap, or move. The current program is mostly the responsibility of Joel McCormack. It is based upon the x11perf developed by Phil Karlton, Susan Angebranndt, Chris Kent, Mary Walker, and Todd Newman, who wanted to assess performance differences between various servers. Several tests were added in order to write and tune the PMAX (DECStation 3100) servers. For a general release to the world, x11perf was rewritten to ease making comparisons between widely varying machines, to cover most important (and unimportant) X functionality, and to exercise graphics operations in as many different orientations and alignments as possible. OPTIONS x11perf is solely Xlib based, and accepts the options listed below: -display host:dpy Specifies which display to use. -sync Runs the tests in synchronous mode. Normally only useful for debugging x11perf . -pack Runs rectangle tests so that they pack rectangles right next to each other. This makes it easy to debug server code for stipples and tiles...if the pattern looks ugly, you've got alignment problems. -repeat Repeats each test n times (by default each test is run 5 times). -time Specifies how long in seconds each test should be run (default 5 seconds). -all Runs all tests. This may take a while. -range [,] Runs all the tests starting from the specified name test1 until the name test2, including both the specified tests. The testnames should be one of the options starting from -dot. (eg) -range line100 will peform the tests from the 100 pixel line test, and go on till the last test, -range line100,dline10 will do the tests from line100 to dline10. -labels Generates just the descriptive labels for each test specified. See x11perfcomp for more details. -fg color-or-pixel Specifies the foreground color or pixel value to use. -bg color-or-pixel Specifies the background color or pixel value to use. -clips default Default number of clip windows. -ddbg color-or-pixel Specifies the color or pixel value to use for drawing the odd segments of a DoubleDashed line or arc. This will default to the bg color. -rop Use specified raster ops (default is GXcopy). This option only affects graphics benchmarks in which the graphics function is actually used. -pm Use specified planemasks (default is ~0). This option only affects graphics benchmarks in which the planemask is actually used. -depth Use a visual with planes per pixel (default is the default visual). -vclass Use a visual with of class . can be StaticGray, GrayScale, StaticColor, PseudoColor, TrueColor, or DirectColor. (default is the default visual). -reps Specify the repetition count (Default is number that takes aprox. 5 seconds) -subs Specify the number of sub windows to use in the Window tests. Default is 4, 16, 25, 50, 75, 100 and 200. -v1.2 Perform only x11perf Version 1.2 tests using Version 1.2 semantics. -v1.3 Perform only x11perf Version 1.3 tests using Version 1.3 semantics. -su Set the save_under window attribute to True on all windows created by x11perf. Default is False. -bs Set the backing_store window attribute to the given value on all windows created by x11perf. can be WhenMapped or Always. Default is NotUseful. -dot Dot. -rect1 1x1 solid-filled rectangle. -rect10 10x10 solid-filled rectangle. -rect100 100x100 solid-filled rectangle. -rect500 500x500 solid-filled rectangle. -srect1 1x1 transparent stippled rectangle, 8x8 stipple pattern. -srect10 10x10 transparent stippled rectangle, 8x8 stipple pattern. -srect100 100x100 transparent stippled rectangle, 8x8 stipple pattern. -srect500 500x500 transparent stippled rectangle, 8x8 stipple pattern. -osrect1 1x1 opaque stippled rectangle, 8x8 stipple pattern. -osrect10 10x10 opaque stippled rectangle, 8x8 stipple pattern. -osrect100 100x100 opaque stippled rectangle, 8x8 stipple pattern. -osrect500 500x500 opaque stippled rectangle, 8x8 stipple pattern. -tilerect1 1x1 tiled rectangle, 4x4 tile pattern. -tilerect10 10x10 tiled rectangle, 4x4 tile pattern. -tilerect100 100x100 tiled rectangle, 4x4 tile pattern. -tilerect500 500x500 tiled rectangle, 4x4 tile pattern. -oddsrect1 1x1 transparent stippled rectangle, 17x15 stipple pattern. -oddsrect10 10x10 transparent stippled rectangle, 17x15 stipple pattern. -oddsrect100 100x100 transparent stippled rectangle, 17x15 stipple pattern. -oddsrect500 500x500 transparent stippled rectangle, 17x15 stipple pattern. -oddosrect1 1x1 opaque stippled rectangle, 17x15 stipple pattern. -oddosrect10 10x10 opaque stippled rectangle, 17x15 stipple pattern. -oddosrect100 100x100 opaque stippled rectangle, 17x15 stipple pattern. -oddosrect500 500x500 opaque stippled rectangle, 17x15 stipple pattern. -oddtilerect1 1x1 tiled rectangle, 17x15 tile pattern. -oddtilerect10 10x10 tiled rectangle, 17x15 tile pattern. -oddtilerect100 100x100 tiled rectangle, 17x15 tile pattern. -oddtilerect500 500x500 tiled rectangle, 17x15 tile pattern. -bigsrect1 1x1 stippled rectangle, 161x145 stipple pattern. -bigsrect10 10x10 stippled rectangle, 161x145 stipple pattern. -bigsrect100 100x100 stippled rectangle, 161x145 stipple pattern. -bigsrect500 500x500 stippled rectangle, 161x145 stipple pattern. -bigosrect1 1x1 opaque stippled rectangle, 161x145 stipple pattern. -bigosrect10 10x10 opaque stippled rectangle, 161x145 stipple pattern. -bigosrect100 100x100 opaque stippled rectangle, 161x145 stipple pattern. -bigosrect500 500x500 opaque stippled rectangle, 161x145 stipple pattern. -bigtilerect1 1x1 tiled rectangle, 161x145 tile pattern. -bigtilerect10 10x10 tiled rectangle, 161x145 tile pattern. -bigtilerect100 100x100 tiled rectangle, 161x145 tile pattern. -bigtilerect500 500x500 tiled rectangle, 161x145 tile pattern. -eschertilerect1 1x1 tiled rectangle, 215x208 tile pattern. -eschertilerect10 10x10 tiled rectangle, 215x208 tile pattern. -eschertilerect100 100x100 tiled rectangle, 215x208 tile pattern. -eschertilerect500 500x500 tiled rectangle, 215x208 tile pattern. -seg1 1-pixel thin line segment. -seg10 10-pixel thin line segment. -seg100 100-pixel thin line segment. -seg500 500-pixel thin line segment. -seg100c1 100-pixel thin line segment (1 obscuring rectangle). -seg100c2 100-pixel thin line segment (2 obscuring rectangles). -seg100c3 100-pixel thin line segment (3 obscuring rectangles). -dseg10 10-pixel thin dashed segment (3 on, 2 off). -dseg100 100-pixel thin dashed segment (3 on, 2 off). -ddseg100 100-pixel thin double-dashed segment (3 fg, 2 bg). -hseg10 10-pixel thin horizontal line segment. -hseg100 100-pixel thin horizontal line segment. -hseg500 500-pixel thin horizontal line segment. -vseg10 10-pixel thin vertical line segment. -vseg100 100-pixel thin vertical line segment. -vseg500 500-pixel thin vertical line segment. -whseg10 10-pixel wide horizontal line segment. -whseg100 100-pixel wide horizontal line segment. -whseg500 500-pixel wide horizontal line segment. -wvseg10 10-pixel wide vertical line segment. -wvseg100 100-pixel wide vertical line segment. -wvseg500 500-pixel wide vertical line segment. -line1 1-pixel thin (width 0) line. -line10 10-pixel thin line. -line100 100-pixel thin line. -line500 500-pixel thin line. -dline10 10-pixel thin dashed line (3 on, 2 off). -dline100 100-pixel thin dashed line (3 on, 2 off). -ddline100 100-pixel thin double-dashed line (3 fg, 2 bg). -wline10 10-pixel line, line width 1. -wline100 100-pixel line, line width 10. -wline500 500-pixel line, line width 50. -wdline100 100-pixel dashed line, line width 10 (30 on, 20 off). -wddline100 100-pixel double-dashed line, line width 10 (30 fg, 20 bg). -orect10 10x10 thin rectangle outline. -orect100 100-pixel thin vertical line segment. -orect500 500-pixel thin vertical line segment. -worect10 10x10 wide rectangle outline. -worect100 100-pixel wide vertical line segment. -worect500 500-pixel wide vertical line segment. -circle1 1-pixel diameter thin (line width 0) circle. -circle10 10-pixel diameter thin circle. -circle100 100-pixel diameter thin circle. -circle500 500-pixel diameter thin circle. -dcircle100 100-pixel diameter thin dashed circle (3 on, 2 off). -ddcircle100 100-pixel diameter thin double-dashed circle (3 fg, 2 bg). -wcircle10 10-pixel diameter circle, line width 1. -wcircle100 100-pixel diameter circle, line width 10. -wcircle500 500-pixel diameter circle, line width 50. -wdcircle100 100-pixel diameter dashed circle, line width 10 (30 on, 20 off). -wddcircle100 100-pixel diameter double-dashed circle, line width 10 (30 fg, 20 bg). -pcircle10 10-pixel diameter thin partial circle, orientation and arc angle evenly distributed. -pcircle100 100-pixel diameter thin partial circle. -wpcircle10 10-pixel diameter wide partial circle. -wpcircle100 100-pixel diameter wide partial circle. -fcircle1 1-pixel diameter filled circle. -fcircle10 10-pixel diameter filled circle. -fcircle100 100-pixel diameter filled circle. -fcircle500 500-pixel diameter filled circle. -fcpcircle10 10-pixel diameter partial filled circle, chord fill, orientation and arc angle evenly distributed. -fcpcircle100 100-pixel diameter partial filled circle, chord fill. -fspcircle10 10-pixel diameter partial filled circle, pie slice fill, orientation and arc angle evenly distributed. -fspcircle100 100-pixel diameter partial filled circle, pie slice fill. -ellipse10 10-pixel diameter thin (line width 0) ellipse, major and minor axis sizes evenly distributed. -ellipse100 100-pixel diameter thin ellipse. -ellipse500 500-pixel diameter thin ellipse. -dellipse100 100-pixel diameter thin dashed ellipse (3 on, 2 off). -ddellipse100 100-pixel diameter thin double-dashed ellipse (3 fg, 2 bg). -wellipse10 10-pixel diameter ellipse, line width 1. -wellipse100 100-pixel diameter ellipse, line width 10. -wellipse500 500-pixel diameter ellipse, line width 50. -wdellipse100 100-pixel diameter dashed ellipse, line width 10 (30 on, 20 off). -wddellipse100 100-pixel diameter double-dashed ellipse, line width 10 (30 fg, 20 bg). -pellipse10 10-pixel diameter thin partial ellipse. -pellipse100 100-pixel diameter thin partial ellipse. -wpellipse10 10-pixel diameter wide partial ellipse. -wpellipse100 100-pixel diameter wide partial ellipse. -fellipse10 10-pixel diameter filled ellipse. -fellipse100 100-pixel diameter filled ellipse. -fellipse500 500-pixel diameter filled ellipse. -fcpellipse10 10-pixel diameter partial filled ellipse, chord fill. -fcpellipse100 100-pixel diameter partial filled ellipse, chord fill. -fspellipse10 10-pixel diameter partial filled ellipse, pie slice fill. -fspellipse100 100-pixel diameter partial filled ellipse, pie slice fill. -triangle1 Fill 1-pixel/side triangle. -triangle10 Fill 10-pixel/side triangle. -triangle100 Fill 100-pixel/side triangle. -trap1 Fill 1x1 trapezoid. -trap10 Fill 10x10 trapezoid. -trap100 Fill 100x100 trapezoid. -trap300 Fill 300x300 trapezoid. -strap1 Fill 1x1 transparent stippled trapezoid, 8x8 stipple pattern. -strap10 Fill 10x10 transparent stippled trapezoid, 8x8 stipple pattern. -strap100 Fill 100x100 transparent stippled trapezoid, 8x8 stipple pattern. -strap300 Fill 300x300 transparent stippled trapezoid, 8x8 stipple pattern. -ostrap1 Fill 10x10 opaque stippled trapezoid, 8x8 stipple pattern. -ostrap10 Fill 10x10 opaque stippled trapezoid, 8x8 stipple pattern. -ostrap100 Fill 100x100 opaque stippled trapezoid, 8x8 stipple pattern. -ostrap300 Fill 300x300 opaque stippled trapezoid, 8x8 stipple pattern. -tiletrap1 Fill 10x10 tiled trapezoid, 4x4 tile pattern. -tiletrap10 Fill 10x10 tiled trapezoid, 4x4 tile pattern. -tiletrap100 Fill 100x100 tiled trapezoid, 4x4 tile pattern. -tiletrap300 Fill 300x300 tiled trapezoid, 4x4 tile pattern. -oddstrap1 Fill 1x1 transparent stippled trapezoid, 17x15 stipple pattern. -oddstrap10 Fill 10x10 transparent stippled trapezoid, 17x15 stipple pattern. -oddstrap100 Fill 100x100 transparent stippled trapezoid, 17x15 stipple pattern. -oddstrap300 Fill 300x300 transparent stippled trapezoid, 17x15 stipple pattern. -oddostrap1 Fill 10x10 opaque stippled trapezoid, 17x15 stipple pattern. -oddostrap10 Fill 10x10 opaque stippled trapezoid, 17x15 stipple pattern. -oddostrap100 Fill 100x100 opaque stippled trapezoid, 17x15 stipple pattern. -oddostrap300 Fill 300x300 opaque stippled trapezoid, 17x15 stipple pattern. -oddtiletrap1 Fill 10x10 tiled trapezoid, 17x15 tile pattern. -oddtiletrap10 Fill 10x10 tiled trapezoid, 17x15 tile pattern. -oddtiletrap100 Fill 100x100 tiled trapezoid, 17x15 tile pattern. -oddtiletrap300 Fill 300x300 tiled trapezoid, 17x15 tile pattern. -bigstrap1 Fill 1x1 transparent stippled trapezoid, 161x145 stipple pattern. -bigstrap10 Fill 10x10 transparent stippled trapezoid, 161x145 stipple pattern. -bigstrap100 Fill 100x100 transparent stippled trapezoid, 161x145 stipple pattern. -bigstrap300 Fill 300x300 transparent stippled trapezoid, 161x145 stipple pattern. -bigostrap1 Fill 10x10 opaque stippled trapezoid, 161x145 stipple pattern. -bigostrap10 Fill 10x10 opaque stippled trapezoid, 161x145 stipple pattern. -bigostrap100 Fill 100x100 opaque stippled trapezoid, 161x145 stipple pattern. -bigostrap300 Fill 300x300 opaque stippled trapezoid, 161x145 stipple pattern. -bigtiletrap1 Fill 10x10 tiled trapezoid, 161x145 tile pattern. -bigtiletrap10 Fill 10x10 tiled trapezoid, 161x145 tile pattern. -bigtiletrap100 Fill 100x100 tiled trapezoid, 161x145 tile pattern. -bigtiletrap300 Fill 300x300 tiled trapezoid, 161x145 tile pattern. -eschertiletrap1 Fill 1x1 tiled trapezoid, 216x208 tile pattern. -eschertiletrap10 Fill 10x10 tiled trapezoid, 216x208 tile pattern. -eschertiletrap100 Fill 100x100 tiled trapezoid, 216x208 tile pattern. -eschertiletrap300 Fill 300x300 tiled trapezoid, 216x208 tile pattern. -complex10 Fill 10-pixel/side complex polygon. -complex100 Fill 100-pixel/side complex polygon. -64poly10convex Fill 10x10 convex 64-gon. -64poly100convex Fill 100x100 convex 64-gon. -64poly10complex Fill 10x10 complex 64-gon. -64poly100complex Fill 100x100 complex 64-gon. -ftext Character in 80-char line (6x13). -f8text Character in 70-char line (8x13). -f9text Character in 60-char line (9x15). -f14text16 2-byte character in 40-char line (k14). -tr10text Character in 80-char line (Times-Roman 10). -tr24text Character in 30-char line (Times-Roman 24). -polytext Character in 20/40/20 line (6x13, Times-Roman 10, 6x13). -polytext16 2-byte character in 7/14/7 line (k14, k24). -fitext Character in 80-char image line (6x13). -f8itext Character in 70-char image line (8x13). -f9itext Character in 60-char image line (9x15). -f14itext16 2-byte character in 40-char image line (k14). -f24itext16 2-byte character in 23-char image line (k24). -tr10itext Character in 80-char image line (Times-Roman 10). -tr24itext Character in 30-char image line (Times-Roman 24). -scroll10 Scroll 10x10 pixels vertically. -scroll100 Scroll 100x100 pixels vertically. -scroll500 Scroll 500x500 pixels vertically. -copywinwin10 Copy 10x10 square from window to window. -copywinwin100 Copy 100x100 square from window to window. -copywinwin500 Copy 500x500 square from window to window. -copypixwin10 Copy 10x10 square from pixmap to window. -copypixwin100 Copy 100x100 square from pixmap to window. -copypixwin500 Copy 500x500 square from pixmap to window. -copywinpix10 Copy 10x10 square from window to pixmap. -copywinpix100 Copy 100x100 square from window to pixmap. -copywinpix500 Copy 500x500 square from window to pixmap. -copypixpix10 Copy 10x10 square from pixmap to pixmap. -copypixpix100 Copy 100x100 square from pixmap to pixmap. -copypixpix500 Copy 500x500 square from pixmap to pixmap. -copyplane10 Copy 10x10 1-bit deep plane. -copyplane100 Copy 100x100 1-bit deep plane. -copyplane500 Copy 500x500 1-bit deep plane. -putimage10 PutImage 10x10 square. -putimage100 PutImage 100x100 square. -putimage500 PutImage 500x500 square. -putimagexy10 PutImage XY format 10x10 square. -putimagexy100 PutImage XY format 100x100 square. -putimagexy500 PutImage XY format 500x500 square. -shmput10 PutImage 10x10 square, MIT shared memory extension. -shmput100 PutImage 100x100 square, MIT shared memory extension. -shmput500 PutImage 500x500 square, MIT shared memory extension. -shmputxy10 PutImage XY format 10x10 square, MIT shared memory extension. -shmputxy100 PutImage XY format 100x100 square, MIT shared memory extension. -shmputxy500 PutImage XY format 500x500 square, MIT shared memory extension. -getimage10 GetImage 10x10 square. -getimage100 GetImage 100x100 square. -getimage500 GetImage 500x500 square. -getimagexy10 GetImage XY format 10x10 square. -getimagexy100 GetImage XY format 100x100 square. -getimagexy500 GetImage XY format 500x500 square. -noop X protocol NoOperation. -atom GetAtomName. -pointer QueryPointer. -prop GetProperty. -gc Change graphics context. -create Create child window and map using MapSubwindows. -ucreate Create unmapped window. -map Map child window via MapWindow on parent. -unmap Unmap child window via UnmapWindow on parent. -destroy Destroy child window via DestroyWindow parent. -popup Hide/expose window via Map/Unmap popup window. -move Move window. -umove Moved unmapped window. -movetree Move window via MoveWindow on parent. -resize Resize window. -uresize Resize unmapped window. -circulate Circulate lowest window to top. -ucirculate Circulate unmapped window to top. X DEFAULTS There are no X defaults used by this program. SEE ALSO X(7), xbench(1), x11perfcomp(1) AUTHORS Joel McCormack Phil Karlton Susan Angebranndt Chris Kent Keith Packard Graeme Gill X11PERFCOMP(1) X11PERFCOMP(1) NAME x11perfcomp - X11 server performance comparison program SYNTAX x11perfcomp [ -r | -ro ] [ -l label_file ] files DESCRIPTION The x11perfcomp program merges the output of several x11perf(1) runs into a nice tabular format. It takes the results in each file, fills in any missing test results if necessary, and for each test shows the objects/second rate of each server. If invoked with the -r or -ro options, it shows the relative performance of each server to the first server. Normally, x11perfcomp uses the first file specified to determine which specific tests it should report on. Some (non-DEC :) servers may fail to perform all tests. In this case, x11perfcomp automatically substitutes in a rate of 0.0 objects/second. Since the first file determines which tests to report on, this file must contain a superset of the tests reported in the other files, else x11perfcomp will fail. You can provide an explicit list of tests to report on by using the -l switch to specify a file of labels. You can create a label file by using the -label option in x11perf. OPTIONS x11perfcomp accepts the options listed below: -r Specifies that the output should also include relative server performance. -ro Specifies that the output should include only relative server performance. -l label_file Specifies a label file to use. X DEFAULTS There are no X defaults used by this program. SEE ALSO X(7), x11perf(1) AUTHORS Mark Moraes wrote the original scripts to compare servers. Joel McCormack just munged them together a bit. XAUTH(1) XAUTH(1) NAME xauth - X authority file utility SYNOPSIS xauth [ -f authfile ] [ -vqibn ] [ command arg ... ] DESCRIPTION The xauth program is used to edit and display the authorization information used in connecting to the X server. This program is usually used to extract authorization records from one machine and merge them in on another (as is the case when using remote logins or granting access to other users). Commands (described below) may be entered interactively, on the xauth command line, or in scripts. Note that this program does not contact the X server except when the generate command is used. Normally xauth is not used to create the authority file entry in the first place; xdm does that. OPTIONS The following options may be used with xauth. They may be given individually (e.g., -q -i) or may combined (e.g., -qi). -f authfile This option specifies the name of the authority file to use. By default, xauth will use the file specified by the XAUTHORITY environment variable or .Xauthority in the user's home directory. -q This option indicates that xauth should operate quietly and not print unsolicited status messages. This is the default if an xauth command is given on the command line or if the standard output is not directed to a terminal. -v This option indicates that xauth should operate verbosely and print status messages indicating the results of various operations (e.g., how many records have been read in or written out). This is the default if xauth is reading commands from its standard input and its standard output is directed to a terminal. -i This option indicates that xauth should ignore any authority file locks. Normally, xauth will refuse to read or edit any authority files that have been locked by other programs (usually xdm or another xauth). -b This option indicates that xauth should attempt to break any authority file locks before proceeding. Use this option only to clean up stale locks. -n This option indicates that xauth should not attempt to resolve any hostnames, but should simply always print the host address as stored in the authority file. COMMANDS The following commands may be used to manipulate authority files: add displayname protocolname hexkey An authorization entry for the indicated display using the given protocol and key data is added to the authorization file. The data is specified as an even-lengthed string of hexadecimal digits, each pair representing one octet. The first digit of each pair gives the most significant 4 bits of the octet, and the second digit of the pair gives the least significant 4 bits. For example, a 32 character hexkey would represent a 128-bit value. A protocol name consisting of just a single period is treated as an abbreviation for MIT-MAGIC-COOKIE-1. generate displayname protocolname [trusted|untrusted] [timeout seconds] [group group-id] [data hexdata] This command is similar to add. The main difference is that instead of requiring the user to supply the key data, it connects to the server specified in displayname and uses the SECURITY extension in order to get the key data to store in the authorization file. If the server cannot be contacted or if it does not support the SECURITY extension, the command fails. Otherwise, an authorization entry for the indicated display using the given protocol is added to the authorization file. A protocol name consisting of just a single period is treated as an abbreviation for MIT-MAGIC-COOKIE-1. If the trusted option is used, clients that connect using this authorization will have full run of the display, as usual. If untrusted is used, clients that connect using this authorization will be considered untrusted and prevented from stealing or tampering with data belonging to trusted clients. See the SECURITY extension specification for full details on the restrictions imposed on untrusted clients. The default is untrusted. The timeout option specifies how long in seconds this authorization will be valid. If the authorization remains unused (no clients are connected with it) for longer than this time period, the server purges the authorization, and future attempts to connect using it will fail. Note that the purging done by the server does not delete the authorization entry from the authorization file. The default timeout is 60 seconds. The group option specifies the application group that clients connecting with this authorization should belong to. See the application group extension specification for more details. The default is to not belong to an application group. The data option specifies data that the server should use to generate the authorization. Note that this is not the same data that gets written to the authorization file. The interpretation of this data depends on the authorization protocol. The hexdata is in the same format as the hexkey described in the add command. The default is to send no data. [n]extract filename displayname... Authorization entries for each of the specified displays are written to the indicated file. If the nextract command is used, the entries are written in a numeric format suitable for non-binary transmission (such as secure electronic mail). The extracted entries can be read back in using the merge and nmerge commands. If the filename consists of just a single dash, the entries will be written to the standard output. [n]list [displayname...] Authorization entries for each of the specified displays (or all if no displays are named) are printed on the standard output. If the nlist command is used, entries will be shown in the numeric format used by the nextract command; otherwise, they are shown in a textual format. Key data is always displayed in the hexadecimal format given in the description of the add command. [n]merge [filename...] Authorization entries are read from the specified files and are merged into the authorization database, superceding any matching existing entries. If the nmerge command is used, the numeric format given in the description of the extract command is used. If a filename consists of just a single dash, the standard input will be read if it hasn't been read before. remove displayname... Authorization entries matching the specified displays are removed from the authority file. source filename The specified file is treated as a script containing xauth commands to execute. Blank lines and lines beginning with a sharp sign (#) are ignored. A single dash may be used to indicate the standard input, if it hasn't already been read. info Information describing the authorization file, whether or not any changes have been made, and from where xauth commands are being read is printed on the standard output. exit If any modifications have been made, the authority file is written out (if allowed), and the program exits. An end of file is treated as an implicit exit command. quit The program exits, ignoring any modifications. This may also be accomplished by pressing the interrupt character. help [string] A description of all commands that begin with the given string (or all commands if no string is given) is printed on the standard output. ? A short list of the valid commands is printed on the standard output. DISPLAY NAMES Display names for the add, [n]extract, [n]list, [n]merge, and remove commands use the same format as the DISPLAY environment variable and the common -display command line argument. Display-specific information (such as the screen number) is unnecessary and will be ignored. Same-machine connections (such as local-host sockets, shared memory, and the Internet Protocol hostname localhost) are referred to as hostname/unix:displaynumber so that local entries for different machines may be stored in one authority file. EXAMPLE The most common use for xauth is to extract the entry for the current display, copy it to another machine, and merge it into the user's authority file on the remote machine: % xauth extract - $DISPLAY | rsh otherhost xauth merge - The following command contacts the server :0 to create an authorization using the MIT-MAGIC-COOKIE-1 protocol. Clients that connect with this authorization will be untrusted. % xauth generate :0 . ENVIRONMENT This xauth program uses the following environment variables: XAUTHORITY to get the name of the authority file to use if the -f option isn't used. HOME to get the user's home directory if XAUTHORITY isn't defined. FILES $HOME/.Xauthority default authority file if XAUTHORITY isn't defined. BUGS Users that have unsecure networks should take care to use encrypted file transfer mechanisms to copy authorization entries between machines. Similarly, the MIT-MAGIC-COOKIE-1 protocol is not very useful in unsecure environments. Sites that are interested in additional security may need to use encrypted authorization mechanisms such as Kerberos. Spaces are currently not allowed in the protocol name. Quoting could be added for the truly perverse. AUTHOR Jim Fulton, MIT X Consortium XBIFF(1) XBIFF(1) NAME xbiff - mailbox flag for X SYNOPSIS xbiff [ -toolkitoption ... ] [ -option ... ] DESCRIPTION The xbiff program displays a little image of a mailbox. When there is no mail, the flag on the mailbox is down. When mail arrives, the flag goes up and the mailbox beeps. By default, pressing any mouse button in the image forces xbiff to remember the current size of the mail file as being the ``empty'' size and to lower the flag. OPTIONS Xbiff accepts all of the standard X Toolkit command line options along with the additional options listed below: -help This option indicates that a brief summary of the allowed options should be printed on the standard error. -update seconds This option specifies the frequency in seconds at which xbiff should update its display. If the mailbox is obscured and then exposed, it will be updated immediately. The default is 30 seconds. -file filename This option specifies the name of the file which should be monitored. By default it watches your inbox in the default location for your system (some examples are /var/mail/username, /usr/spool/mail/username, /var/spool/mail/username (where username is your login name). If the MAIL environment variable is set, the file specified by it will be monitored. -volume percentage This option specifies how loud the bell should be rung when new mail comes in. -shape This option indicates that the mailbox window should be shaped if masks for the empty or full images are given. The following standard X Toolkit command line arguments are commonly used with xbiff: -display display This option specifies the X server to contact. -geometry geometry This option specifies the preferred size and position of the mailbox window. The mailbox is 48 pixels wide and 48 pixels high and will be centered in the window. -bg color This option specifies the color to use for the background of the window. -bd color This option specifies the color to use for the border of the window. -bw number This option specifies the width in pixels of the border surrounding the window. -fg color This option specifies the color to use for the foreground of the window. -rv This option indicates that reverse video should be simulated by swapping the foreground and background colors. -xrm resourcestring This option specifies a resource string to be used. This is especially useful for setting resources that do not have separate command line options. X DEFAULTS The application class name is XBiff. This program uses the Mailbox widget. It understands all of the core resource names and classes as well as: checkCommand (class CheckCommand) Specifies a shell command to be executed to check for new mail rather than examining the size of file. The specified string value is used as the argument to a system(3) call and may therefore contain i/o redirection. An exit status of 0 indicates that new mail is waiting, 1 indicates that there has been no change in size, and 2 indicates that the mail has been cleared. By default, no shell command is provided. file (class File) Specifies the name of the file to monitor. The default is as described above for the -file command line option. onceOnly (class Boolean) Specifies that the bell is only rung the first time new mail is found and is not rung again until at least one interval has passed with no mail waiting. The window will continue to indicate the presence of new mail until it has been retrieved. The default is false. width (class Width) Specifies the width of the mailbox. height (class Height) Specifies the height of the mailbox. update (class Interval) Specifies the frequency in seconds at which the mail should be checked. The default is 30. volume (class Volume) Specifies how loud the bell should be rung. The default is 33 percent. foreground (class Foreground) Specifies the color for the foreground. reverseVideo (class ReverseVideo) Specifies that the foreground and background should be reversed. flip (class Flip) Specifies whether or not the image that is shown when mail has arrived should be inverted. The default is ``true.'' fullPixmap (class Pixmap) Specifies a bitmap to be shown when new mail has arrived. The default is flagup. emptyPixmap (class Pixmap) Specifies a bitmap to be shown when no new mail is present. The default is flagdown. shapeWindow (class ShapeWindow) Specifies whether or not the mailbox window should be shaped to the given fullPixmapMask and emptyPixmapMask. The default is false. fullPixmapMask (class PixmapMask) Specifies a mask for the bitmap to be shown when new mail has arrived. The default is none. emptyPixmapMask (class PixmapMask) Specifies a mask for the bitmap to be shown when no new mail is present. The default is none. ACTIONS The Mailbox widget provides the following actions for use in event translations: check() This action causes the widget to check for new mail and display the flag appropriately. unset() This action causes the widget to lower the flag until new mail comes in. set() This action causes the widget to raise the flag until the user resets it. The default translation is : unset() ENVIRONMENT DISPLAY to get the default host and display number. XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. SEE ALSO X(7), xrdb(1), stat(2) BUGS The mailbox bitmaps are ugly. AUTHOR Jim Fulton, MIT X Consortium Additional hacks by Ralph Swick, DEC/MIT Project Athena XCALC(1) XCALC(1) NAME xcalc - scientific calculator for X SYNOPSIS xcalc [-stipple] [-rpn] [-toolkitoption...] DESCRIPTION xcalc is a scientific calculator desktop accessory that can emulate a TI-30 or an HP-10C. OPTIONS xcalc accepts all of the standard toolkit command line options along with two additional options: -stipple This option indicates that the background of the calculator should be drawn using a stipple of the foreground and background colors. On monochrome displays improves the appearance. -rpn This option indicates that Reverse Polish Notation should be used. In this mode the calculator will look and behave like an HP-10C. Without this flag, it will emulate a TI-30. OPERATION Pointer Usage: Operations may be performed with pointer button 1, or in some cases, with the keyboard. Many common calculator operations have keyboard accelerators. To quit, press pointer button 3 on the AC key of the TI calculator, or the ON key of the HP calculator. Calculator Key Usage (TI mode): The numbered keys, the +/- key, and the +, -, *, /, and = keys all do exactly what you would expect them to. It should be noted that the operators obey the standard rules of precedence. Thus, entering "3+4*5=" results in "23", not "35". The parentheses can be used to override this. For example, "(1+2+3)*(4+5+6)=" results in "6*15=90". The entire number in the calculator display can be selected, in order to paste the result of a calculation into text. The action procedures associated with each function are given below. These are useful if you are interested in defining a custom calculator. The action used for all digit keys is digit(n), where n is the corresponding digit, 0..9. 1/x Replaces the number in the display with its reciprocal. The corresponding action procedure is reciprocal(). x^2 Squares the number in the display. The corresponding action procedure is square(). SQRT Takes the square root of the number in the display. The corresponding action procedure is squareRoot(). CE/C When pressed once, clears the number in the display without clearing the state of the machine. Allows you to re-enter a number if you make a mistake. Pressing it twice clears the state, also. The corresponding action procedure for TI mode is clear(). AC Clears the display, the state, and the memory. Pressing it with the third pointer button turns off the calculator, in that it exits the program. The action procedure to clear the state is off(); to quit, quit(). INV Invert function. See the individual function keys for details. The corresponding action procedure is inverse(). sin Computes the sine of the number in the display, as interpreted by the current DRG mode (see DRG, below). If inverted, it computes the arcsine. The corresponding action procedure is sine(). cos Computes the cosine, or arccosine when inverted. The corresponding action procedure is cosine(). tan Computes the tangent, or arctangent when inverted. The corresponding action procedure is tangent(). DRG Changes the DRG mode, as indicated by 'DEG', 'RAD', or 'GRAD' at the bottom of of the calculator ``liquid crystal'' display. When in 'DEG' mode, numbers in the display are taken as being degrees. In 'RAD' mode, numbers are in radians, and in 'GRAD' mode, numbers are in grads. When inverted, the DRG key has a feature of converting degrees to radians to grads and vice-versa. Example: put the calculator into 'DEG' mode, and enter "45 INV DRG". The display should now show something along the lines of ".785398", which is 45 degrees converted to radians. The corresponding action procedure is degree(). e The constant 'e'. (2.7182818...). The corresponding action procedure is e(). EE Used for entering exponential numbers. For example, to get "-2.3E-4" you'd enter "2 . 3 +/- EE 4 +/-". The corresponding action procedure is scientific(). log Calculates the log (base 10) of the number in the display. When inverted, it raises "10.0" to the number in the display. For example, entering "3 INV log" should result in "1000". The corresponding action procedure is logarithm(). ln Calculates the log (base e) of the number in the display. When inverted, it raises "e" to the number in the display. For example, entering "e ln" should result in "1". The corresponding action procedure is naturalLog(). y^x Raises the number on the left to the power of the number on the right. For example "2 y^x 3 =" results in "8", which is 2^3. For a further example, "(1+2+3) y^x (1+2) =" equals "6 y^x 3" which equals "216". The corresponding action procedure is power(). PI The constant 'pi'. (3.1415927....) The corresponding action procedure is pi(). x! Computes the factorial of the number in the display. The number in the display must be an integer in the range 0-500, though, depending on your math library, it might overflow long before that. The corresponding action procedure is factorial(). ( Left parenthesis. The corresponding action procedure for TI calculators is leftParen(). ) Right parenthesis. The corresponding action procedure for TI calculators is rightParen(). / Division. The corresponding action procedure is divide(). * Multiplication. The corresponding action procedure is multiply(). - Subtraction. The corresponding action procedure is subtract(). + Addition. The corresponding action procedure is add(). = Perform calculation. The TI-specific action procedure is equal(). STO Copies the number in the display to the memory location. The corresponding action procedure is store(). RCL Copies the number from the memory location to the display. The corresponding action procedure is recall(). SUM Adds the number in the display to the number in the memory location. The corresponding action procedure is sum(). EXC Swaps the number in the display with the number in the memory location. The corresponding action procedure for the TI calculator is exchange(). +/- Negate; change sign. The corresponding action procedure is negate(). . Decimal point. The action procedure is decimal(). Calculator Key Usage (RPN mode): The number keys, CHS (change sign), +, -, *, /, and ENTR keys all do exactly what you would expect them to do. Many of the remaining keys are the same as in TI mode. The differences are detailed below. The action procedure for the ENTR key is enter(). <- This is a backspace key that can be used if you make a mistake while entering a number. It will erase digits from the display. (See BUGS). Inverse backspace will clear the X register. The corresponding action procedure is back(). ON Clears the display, the state, and the memory. Pressing it with the third pointer button turns off the calculator, in that it exits the program. To clear state, the action procedure is off; to quit, quit(). INV Inverts the meaning of the function keys. This would be the f key on an HP calculator, but xcalc does not display multiple legends on each key. See the individual function keys for details. 10^x Raises "10.0" to the number in the top of the stack. When inverted, it calculates the log (base 10) of the number in the display. The corresponding action procedure is tenpower(). e^x Raises "e" to the number in the top of the stack. When inverted, it calculates the log (base e) of the number in the display. The action procedure is epower(). STO Copies the number in the top of the stack to a memory location. There are 10 memory locations. The desired memory is specified by following this key with a digit key. RCL Pushes the number from the specified memory location onto the stack. SUM Adds the number on top of the stack to the number in the specified memory location. x:y Exchanges the numbers in the top two stack positions, the X and Y registers. The corresponding action procedure is XexchangeY(). R v Rolls the stack downward. When inverted, it rolls the stack upward. The corresponding action procedure is roll(). blank These keys were used for programming functions on the HP-10C. Their functionality has not been duplicated in xcalc. Finally, there are two additional action procedures: bell(), which rings the bell; and selection(), which performs a cut on the entire number in the calculator's ``liquid crystal'' display. ACCELERATORS Accelerators are shortcuts for entering commands. xcalc provides some sample keyboard accelerators; also users can customize accelerators. The numeric keypad accelerators provided by xcalc should be intuitively correct. The accelerators defined by xcalc on the main keyboard are given below: TI Key HP Key Keyboard Accelerator TI Function HP Function SQRT SQRT r squareRoot() squareRoot() AC ON space clear() clear() AC <- Delete clear() back() AC <- Backspace clear() back() AC <- Control-H clear() back() AC Clear clear() AC ON q quit() quit() AC ON Control-C quit() quit() INV i i inverse() inverse() sin s s sine() sine() cos c c cosine() cosine() tan t t tangent() tangent() DRG DRG d degree() degree() e e e() ln ln l naturalLog() naturalLog() y^x y^x ^ power() power() PI PI p pi() pi() x! x! ! factorial() factorial() ( ( leftParen() ) ) rightParen() / / / divide() divide() * * * multiply() multiply() - - - subtract() subtract() + + + add() add() = = equal() 0..9 0..9 0..9 digit() digit() . . . decimal() decimal() +/- CHS n negate() negate() x:y x XexchangeY() ENTR Return enter() ENTR Linefeed enter() CUSTOMIZATION The application class name is XCalc. xcalc has an enormous application defaults file which specifies the position, label, and function of each key on the calculator. It also gives translations to serve as keyboard accelerators. Because these resources are not specified in the source code, you can create a customized calculator by writing a private application defaults file, using the Athena Command and Form widget resources to specify the size and position of buttons, the label for each button, and the function of each button. The foreground and background colors of each calculator key can be individually specified. For the TI calculator, a classical color resource specification might be: XCalc.ti.Command.background: gray50 XCalc.ti.Command.foreground: white For each of buttons 20, 25, 30, 35, and 40, specify: XCalc.ti.button20.background: black XCalc.ti.button20.foreground: white For each of buttons 22, 23, 24, 27, 28, 29, 32, 33, 34, 37, 38, and 39: XCalc.ti.button22.background: white XCalc.ti.button22.foreground: black WIDGET HIERARCHY In order to specify resources, it is useful to know the hierarchy of the widgets which compose xcalc. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. XCalc xcalc Form ti or hp (the name depends on the mode) Form bevel Form screen Label M Toggle LCD Label INV Label DEG Label RAD Label GRAD Label P Command button1 Command button2 Command button3 and so on, ... Command button38 Command button39 Command button40 APPLICATION RESOURCES rpn (Class Rpn) Specifies that the rpn mode should be used. The default is TI mode. stipple (Class Stipple) Indicates that the background should be stippled. The default is ``on'' for monochrome displays, and ``off'' for color displays. cursor (Class Cursor) The name of the symbol used to represent the pointer. The default is ``hand2''. COLORS If you would like xcalc to use its ti colors, include the following in the #ifdef COLOR section of the file you read with xrdb: *customization: -color This will cause xcalc to pick up the colors in the app-defaults color customization file: /usr/X11R6/lib/X11/app-defaults/XCalc-color. SEE ALSO X(7), xrdb(1), the Athena Widget Set BUGS HP mode: A bug report claims that the sequence of keys 5, ENTER, <- should clear the display, but it doesn't. COPYRIGHT Copyright 1994 X Consortium See X(7) for a full statement of rights and permissions. AUTHORS John Bradley, University of Pennsylvania Mark Rosenstein, MIT Project Athena Donna Converse, MIT X Consortium XCLIPBOARD(1) XCLIPBOARD(1) NAME xclipboard - X clipboard client SYNOPSIS xclipboard [ -toolkitoption ... ] [ -w ] [ -nw ] DESCRIPTION The xclipboard program is used to collect and display text selections that are sent to the CLIPBOARD by other clients. It is typically used to save CLIPBOARD selections for later use. It stores each CLIPBOARD selection as a separate string, each of which can be selected. Each time CLIPBOARD is asserted by another application, xclipboard transfers the contents of that selection to a new buffer and displays it in the text window. Buffers are never automatically deleted, so you'll want to use the delete button to get rid of useless items. Since xclipboard uses a Text Widget to display the contents of the clipboard, text sent to the CLIPBOARD may be re-selected for use in other applications. xclipboard also responds to requests for the CLIPBOARD selection from other clients by sending the entire contents of the currently displayed buffer. An xclipboard window has the following buttons across the top: quit When this button is pressed, xclipboard exits. delete When this button is pressed, the current buffer is deleted and the next one displayed. new Creates a new buffer with no contents. Useful in constructing a new CLIPBOARD selection by hand. save Displays a File Save dialog box. Pressing the Accept button saves the currently displayed buffer to the file specified in the text field. next Displays the next buffer in the list. previous Displays the previous buffer. OPTIONS The xclipboard program accepts all of the standard X Toolkit command line options as well as the following: -w This option indicates that lines of text that are too long to be displayed on one line in the clipboard should wrap around to the following lines. -nw This option indicates that long lines of text should not wrap around. This is the default behavior. WIDGETS In order to specify resources, it is useful to know the hierarchy of the widgets which compose xclipboard. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. XClipboard xclipboard Form form Command Quit Command delete Command new Command Save Command next Command prev Label index Text text TransientShell fileDialogShell Dialog fileDialog Label label Command accept Command cancel Text value TransientShell failDialogShell Dialog failDialog Label label Command continue SENDING/RETRIEVING CLIPBOARD CONTENTS Text is copied to the clipboard whenever a client asserts ownership of the CLIPBOARD selection. Text is copied from the clipboard whenever a client requests the contents of the CLIPBOARD selection. Examples of event bindings that a user may wish to include in a resource configuration file to use the clipboard are: *VT100.Translations: #override \ : select-end(CLIPBOARD) \n\ : insert-selection(PRIMARY,CLIPBOARD) \n\ : ignore () SEE ALSO X(7), xcutsel(1), xterm(1), individual client documentation for how to make a selection and send it to the CLIPBOARD. ENVIRONMENT DISPLAY to get the default host and display number. XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. FILES /usr/X11R6/lib/X11/app-defaults/XClipboard specifies required resources AUTHOR Ralph R. Swick, DEC/MIT Project Athena Chris D. Peterson, MIT X Consortium Keith Packard, MIT X Consortium XCLOCK(1) XCLOCK(1) NAME xclock - analog / digital clock for X SYNOPSIS xclock [ -help ] [ -analog ] [ -digital ] [ -brief ] [ -chime ] [ -hd color ] [ -hl color ] [ -update seconds ] [ -strftime format ] [ -padding number ] [ -norender ] [ -render ] [ -sharp ] [ -face pattern ] DESCRIPTION The xclock program displays the time in analog or digital form. The time is continuously updated at a frequency which may be specified by the user. OPTIONS Xclock accepts all of the standard X Toolkit command line options along with the additional options listed below: -help This option indicates that a brief summary of the allowed options should be printed on the standard error. -analog This option indicates that a conventional 12 hour clock face with tick marks and hands should be used. This is the default. -digital or -d This option indicates that a 24 hour digital clock should be used. -brief This option indicates that the digital clock should only display the hours and minutes fields. The default is to show the full time and date information. -utime or -d This option indicates that a digital clock should display seconds since the Epoch (in format '970012340 seconds since Epoch' instead of a standard 24-hour time. -strftime format This option allows an strftime(3) format string to be specified for the digital clock's display. -twelve This option indicates that a digital clock should display the time in twelve hour format. -twentyfour This option indicates that a digital clock should display the time in twenty-four hour format. This is the default when a digital clock is used. -chime This option indicates that the clock should chime once on the half hour and twice on the hour. -hands color (or -hd color) This option specifies the color of the hands on an analog clock. The default is black. This option is effectively ignored when Xrender is in use. -highlight color (or -hl color) This option specifies the color of the edges of the hands on an analog clock, and is only useful on color displays. The default is black. This option is effectively ignored when Xrender is in use. -update seconds This option specifies the frequency in seconds at which xclock should update its display. If the clock is obscured and then exposed, it will be updated immediately. A value of 30 seconds or less will enable a second hand on an analog clock. The default is 60 seconds. -padding number This option specifies the width in pixels of the padding between the window border and clock text or picture. The default is 10 on a digital clock and 8 on an analog clock. -render This option tells xclock to use the Xrender extension to draw an anti-aliased face. This is the default if xclock has been compiled with Xrender support. Note that the color selection options and resources used when Xrender is in effect differ from the standard options. -norender This option turns off the use of Xrender to draw the clock. -sharp This option tells xclock to use sharper edges when drawn using the Xrender extension. -face pattern This option specifies the font to use in digital mode when the Xrender extension is used. X DEFAULTS This program uses the Clock widget. It understands all of the core resource names and classes as well as: width (class Width) Specifies the width of the clock. The default for analog clocks is 164 pixels; the default for digital clocks is whatever is needed to hold the clock when displayed in the chosen font. height (class Height) Specifies the height of the clock. The default for analog clocks is 164 pixels; the default for digital clocks is whatever is needed to hold the clock when displayed in the chosen font. update (class Interval) Specifies the frequency in seconds at which the time should be redisplayed. foreground (class Foreground) Specifies the color for the tick marks. The default depends on whether reverseVideo is specified. If reverseVideo is specified the default is lwhite, otherwise the default is black. hands (class Foreground) Specifies the color of the insides of the clock's hands. The default depends on whether reverseVideo is specified. If reverseVideo is specified the default is lwhite, otherwise the default is black. Note that this resource is not used when Xrender is in effect. highlight (class Foreground) Specifies the color used to highlight the clock's hands. The default is depends on whether reverseVideo is specified. If reverseVideo is specified the default is lwhite, otherwise the default is black. Note that this resource is not used when Xrender is in effect. analog (class Boolean) Specifies whether or not an analog clock should be used instead of a digital one. The default is True. twentyfour (class Boolean) Specifies whether or not a digital clock should display the time in twenty-four hour format. The default is True. chime (class Boolean) Specifies whether or not a bell should be rung on the hour and half hour. padding (class Margin) Specifies the amount of internal padding in pixels to be used. The default is 8. font (class Font) Specifies the font to be used for the digital clock. Note that variable width fonts currently will not always display correctly. This font is only used when Xrender is not in effect. render (class Boolean) Specifies whether or not the Xrender extension should be used for the display. The default is True if xclock has been compiled with Xrender support. When Xrender is in effect, the following additional resources are understood: face (class FaceName) Specify the pattern for the font to be used for the digital clock when Xrender is used. sharp (class Boolean) Specifies if sharp edges should be used when rendering the clock. The default is False. buffer (class Boolean) Specifies that the updates of the image are drawn to a pixmap before copied into the window instead drawing them into the window directly. The defaults of the following color resources depend on whether reverseVideo is specified. If reverseVideo is specified the default is lwhite, otherwise the default is black. hourColor (class Foreground) The color of the hour hand. minuteColor (class Foreground) The color of the minute hand. secondColor (class Foreground) The color of the second hand. majorColor (class Foreground) The color of the major scale ticks (i. e. each five minutes). minorColor (class Foreground) The color of the minor scale ticks (between major ticks). WIDGETS In order to specify resources, it is useful to know the hierarchy of the widgets which compose xclock. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. XClock xclock Clock clock ENVIRONMENT DISPLAY to get the default host and display number. XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. FILES /usr/X11R6/lib/X11/app-defaults/XClock specifies required resources SEE ALSO X(7), xrdb(1), time(3C) BUGS Xclock believes the system clock. When in digital mode, the string should be centered automatically. AUTHORS Tony Della Fera (MIT-Athena, DEC) Dave Mankins (MIT-Athena, BBN) Ed Moy (UC Berkeley) XCMSDB(1) XCMSDB(1) NAME xcmsdb - Device Color Characterization utility for X Color Management System SYNOPSIS xcmsdb [ -query ] [ -remove ] [ -format 32|16|8 ] [ filename ] DESCRIPTION xcmsdb is used to load, query, or remove Device Color Characterization data stored in properties on the root window of the screen as specified in section 7, Device Color Characterization, of the ICCCM. Device Color Characterization data (also called the Device Profile) is an integral part of Xlib's X Color Management System (Xcms), necessary for proper conversion of color specification between device-independent and device-dependent forms. Xcms uses 3x3 matrices stored in the XDCCC_LINEAR_RGB_MATRICES property to convert color specifications between CIEXYZ and RGB Intensity (XcmsRGBi, also referred to as linear RGB). Xcms then uses display gamma information stored in the XDCCC_LINEAR_RGB_CORRECTION property to convert color specifications between RGBi and RGB device (XcmsRGB, also referred to as device RGB). Note that Xcms allows clients to register function sets in addition to its built-in function set for CRT color monitors. Additional function sets may store their device profile information in other properties in function set specific format. This utility is unaware of these non- standard properties. The ASCII readable contents of filename (or the standard input if no input file is given) are appropriately transformed for storage in properties, provided the -query or -remove options are not specified. OPTIONS xcmsdb program accepts the following options: -query This option attempts to read the XDCCC properties off the screen's root window. If successful, it transforms the data into a more readable format, then sends the data to standard out. -remove This option attempts to remove the XDCCC properties on the screen's root window. -format 32|16|8 Specifies the property format (32, 16, or 8 bits per entry) for the XDCCC_LINEAR_RGB_CORRECTION property. Precision of encoded floating point values increases with the increase in bits per entry. The default is 32 bits per entry. SEE ALSO xprop(1), Xlib documentation ENVIRONMENT DISPLAY to figure out which display and screen to use. AUTHOR Chuck Adams, Tektronix Inc. Al Tabayoyon, SynChromatics Inc. (added multi-visual support) XCONSOLE(1) XCONSOLE(1) NAME xconsole - monitor system console messages with X SYNOPSIS xconsole [-toolkitoption ...] [-file file-name] [-notify] [-stripNonprint] [-daemon] [-verbose] [-exitOnFail] DESCRIPTION The xconsole program displays messages which are usually sent to /dev/console. OPTIONS Xconsole accepts all of the standard X Toolkit command line options along with the additional options listed below: -file file-name To monitor some other device, use this option to specify the device name. This does not work on regular files as they are always ready to be read from. -notify -nonotify When new data are received from the console and the notify option is set, the icon name of the application has " *" appended, so that it is evident even when the application is iconified. -notify is the default. -daemon This option causes xconsole to place itself in the background, using fork/exit. -verbose When set, this option directs xconsole to display an informative message in the first line of the text buffer. -exitOnFail When set, this option directs xconsole to exit when it is unable to redirect the console output. -saveLines count When set, xconsole only preserves count lines of message history instead of growing the text buffer without bound (a count of zero - the default - is treated as placing no limit on the history). X DEFAULTS This program uses the Athena Text widget, look in the Athena Widget Set documentation for controlling it. Xconsole otherwise accepts resources of the same names as the command- line options (without the leading dash). "file" is a string type, "saveLines" an integer, and the remaining options are booleans. WIDGETS In order to specify resources, it is useful to know the hierarchy of the widgets which compose xconsole. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. XConsole xconsole XConsole text ENVIRONMENT DISPLAY to get the default host and display number. XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. FILES /usr/X11R6/lib/X11/app-defaults/XConsole specifies required resources SEE ALSO X(7), xrdb(1), Athena Text widget AUTHOR Keith Packard (MIT X Consortium) XCURSORGEN(1) XCURSORGEN(1) NAME xcursorgen - create an X cursor file from a collection of PNG images SYNOPSIS xcursorgen [config-file] [output-file] DESCRIPTION Xcursorgen reads the config-file to find the list of cursor images along with their hotspot and nominal size information. Xcursorgen converts all of the images to Xcursor format and writes them to the output-file. Each line in the config file is of the form: Multiple images with the same are used to create animated cursors, the value on each line indicates how long each image should be displayed before switching to the next. can be elided for static cursors. SEE ALSO Xcursor(3x) XCUTSEL(1) XCUTSEL(1) NAME xcutsel - interchange between cut buffer and selection SYNOPSIS xcutsel [ -toolkitoption ...] [-selection selection] [-cutbuffer number] DESCRIPTION The xcutsel program is used to copy the current selection into a cut buffer and to make a selection that contains the current contents of the cut buffer. It acts as a bridge between applications that don't support selections and those that do. By default, xcutsel will use the selection named PRIMARY and the cut buffer CUT_BUFFER0. Either or both of these can be overridden by command line arguments or by resources. An xcutsel window has the following buttons: quit When this button is pressed, xcutsel exits. Any selections held by xcutsel are automatically released. copy PRIMARY to 0 When this button is pressed, xcutsel copies the current selection into the cut buffer. copy 0 to PRIMARY When this button is pressed, xcutsel converts the current contents of the cut buffer into the selection. The button labels reflect the selection and cutbuffer selected by command line options or through the resource database. When the ``copy 0 to PRIMARY'' button is activated, the button will remain inverted as long as xcutsel remains the owner of the selection. This serves to remind you which client owns the current selection. Note that the value of the selection remains constant; if the cutbuffer is changed, you must again activate the copy button to retrieve the new value when desired. OPTIONS Xcutsel accepts all of the standard X Toolkit command line options as well as the following: -selection name This option specifies the name of the selection to use. The default is PRIMARY. The only supported abbreviations for this option are ``-select'', ``-sel'' and ``-s'', as the standard toolkit option ``-selectionTimeout'' has a similar name. -cutbuffer number This option specifies the cut buffer to use. The default is cut buffer 0. X DEFAULTS This program accepts all of the standard X Toolkit resource names and classes as well as: selection (class Selection) This resource specifies the name of the selection to use. The default is PRIMARY. cutBuffer (class CutBuffer) This resource specifies the number of the cut buffer to use. The default is 0. WIDGET NAMES The following instance names may be used when user configuration of the labels in them is desired: sel-cut (class Command) This is the ``copy SELECTION to BUFFER'' button. cut-sel (class Command) This is the ``copy BUFFER to SELECTION'' button. quit (class Command) This is the ``quit'' button. SEE ALSO X(7), xclipboard(1), xterm(1), text widget documentation, individual client documentation for how to make a selection. BUGS There is no way to change the name of the selection or the number of the cut buffer while the program is running. AUTHOR Ralph R. Swick, DEC/MIT Project Athena XDITVIEW(1) XDITVIEW(1) NAME xditview - display ditroff output SYNOPSIS xditview [ -toolkitoption ... ] [ -option ... ] [ filename ] DESCRIPTION The xditview program displays ditroff output on an X display. It uses no special metrics and automatically converts the printer coordinates into screen coordinates; using the user-specified screen resolution, rather than the actual resolution so that the appropriate fonts can be found. If ``-'' is given as the filename, xditview reads from standard input. If ``|'' is the first character of filename, xditview forks sh to run the rest of the ``file name'' and uses the standard output of that command. OPTIONS Xditview accepts all of the standard X Toolkit command line options along with the additional options listed below: -page page-number This option specifies the page number of the document to be displayed at start up time. -resolution screen-resolution This specifies the desired screen resolution to use; fonts will be opened by requesting this resolution field in the XLFD names. -noPolyText Some X servers incorrectly implement PolyText with multiple strings per request. This option suppresses the use of this feature in xditview. -backingStore backing-store-type Redisplay can take up to a second or so; this option causes the server to save the window contents so that when it is scrolled around the viewport, the window is painted from contents saved in backing store. backing-store-type can be one of Always, WhenMapped or NotUseful. The following standard X Toolkit command line arguments are commonly used with xditview: -bg color This option specifies the color to use for the background of the window. The default is white. -bd color This option specifies the color to use for the border of the window. The default is black. -bw number This option specifies the width in pixels of the border surrounding the window. -fg color This option specifies the color to use for displaying text. The default is black. -fn font This option specifies the font to be used for displaying widget text. The default is fixed. -rv This option indicates that reverse video should be simulated by swapping the foreground and background colors. -geometry geometry This option specifies the preferred size and position of the window. -display host:display This option specifies the X server to contact. -xrm resourcestring This option specifies a resource string to be used. X DEFAULTS This program uses a Dvi widget. It understands all of the core resource names and classes as well as: width (class Width) Specifies the width of the window. height (class Height) Specifies the height of the window. foreground (class Foreground) Specifies the default foreground color. font (class Font) Specifies the font to be used for error messages. FontMap (class FontMap) To associate the ditroff fonts with appropriate X fonts, this string resource contains a set of new-line separated specifications, each of which consists of a ditroff name, some white space and an XLFD pattern with * characters in appropriate places to allow all sizes to be listed. The default fontMap is: R -*-times-medium-r-normal--*-*-*-*-*-*-iso8859-1\n\ I -*-times-medium-i-normal--*-*-*-*-*-*-iso8859-1\n\ B -*-times-bold-r-normal--*-*-*-*-*-*-iso8859-1\n\ F -*-times-bold-i-normal--*-*-*-*-*-*-iso8859-1\n\ BI -*-times-bold-i-normal--*-*-*-*-*-*-iso8859-1\n\ C -*-courier-medium-r-normal--*-*-*-*-*-*-iso8859-1\n\ CO -*-courier-medium-o-normal--*-*-*-*-*-*-iso8859-1\n\ CB -*-courier-bold-r-normal--*-*-*-*-*-*-iso8859-1\n\ CF -*-courier-bold-o-normal--*-*-*-*-*-*-iso8859-1\n\ H -*-helvetica-medium-r-normal--*-*-*-*-*-*-iso8859-1\n\ HO -*-helvetica-medium-o-normal--*-*-*-*-*-*-iso8859-1\n\ HB -*-helvetica-bold-r-normal--*-*-*-*-*-*-iso8859-1\n\ HF -*-helvetica-bold-o-normal--*-*-*-*-*-*-iso8859-1\n\ N -*-new century schoolbook-medium-r-normal--*-*-*-*-*-*-iso8859-1\n\ NI -*-new century schoolbook-medium-i-normal--*-*-*-*-*-*-iso8859-1\n\ NB -*-new century schoolbook-bold-r-normal--*-*-*-*-*-*-iso8859-1\n\ NF -*-new century schoolbook-bold-i-normal--*-*-*-*-*-*-iso8859-1\n\ A -*-charter-medium-r-normal--*-*-*-*-*-*-iso8859-1\n\ AI -*-charter-medium-i-normal--*-*-*-*-*-*-iso8859-1\n\ AB -*-charter-bold-r-normal--*-*-*-*-*-*-iso8859-1\n\ AF -*-charter-bold-i-normal--*-*-*-*-*-*-iso8859-1\n\ S -*-symbol-medium-r-normal--*-*-*-*-*-*-adobe-fontspecific\n\ S2 -*-symbol-medium-r-normal--*-*-*-*-*-*-adobe-fontspecific\n USING XDITVIEW WITH DITROFF You can use any ditroff output file with xditview, although files which use the fonts appropriate to the fontMap will look more accurate on the screen. On servers which support scaled fonts, all requested font sizes will be accurately reflected on the screen; for servers which do not support scaled xditview will use the closest font from the same family. SEE ALSO X(7), xrdb(1), ditroff(1), X Logical Font Description Conventions ORIGIN Portions of this program originated in xtroff which was derived from suntroff. COPYRIGHT Copyright 1994 X Consortium See X(1) for a full statement of rights and permissions. AUTHORS Keith Packard (MIT X Consortium) Richard L. Hyde (Purdue) David Slattengren (Berkeley) Malcom Slaney (Schlumberger Palo Alto Research) Mark Moraes (University of Toronto) XDM(1) XDM(1) NAME xdm - X Display Manager with support for XDMCP, host chooser SYNOPSIS xdm [ -config configuration_file ] [ -nodaemon ] [ -debug debug_level ] [ -error error_log_file ] [ -resources resource_file ] [ -server server_entry ] [ -session session_program ] DESCRIPTION Xdm manages a collection of X displays, which may be on the local host or remote servers. The design of xdm was guided by the needs of X terminals as well as The Open Group standard XDMCP, the X Display Manager Control Protocol. Xdm provides services similar to those provided by init, getty and login on character terminals: prompting for login name and password, authenticating the user, and running a ``session.'' A ``session'' is defined by the lifetime of a particular process; in the traditional character-based terminal world, it is the user's login shell. In the xdm context, it is an arbitrary session manager. This is because in a windowing environment, a user's login shell process does not necessarily have any terminal-like interface with which to connect. When a real session manager is not available, a window manager or terminal emulator is typically used as the ``session manager,'' meaning that termination of this process terminates the user's session. When the session is terminated, xdm resets the X server and (optionally) restarts the whole process. When xdm receives an Indirect query via XDMCP, it can run a chooser process to perform an XDMCP BroadcastQuery (or an XDMCP Query to specified hosts) on behalf of the display and offer a menu of possible hosts that offer XDMCP display management. This feature is useful with X terminals that do not offer a host menu themselves. Xdm can be configured to ignore BroadcastQuery messages from selected hosts. This is useful when you don't want the host to appear in menus produced by chooser or X terminals themselves. Because xdm provides the first interface that users will see, it is designed to be simple to use and easy to customize to the needs of a particular site. Xdm has many options, most of which have reasonable defaults. Browse through the various sections of this manual, picking and choosing the things you want to change. Pay particular attention to the Session Program section, which will describe how to set up the style of session desired. OVERVIEW xdm is highly configurable, and most of its behavior can be controlled by resource files and shell scripts. The names of these files themselves are resources read from the file xdm-config or the file named by the -config option. xdm offers display management two different ways. It can manage X servers running on the local machine and specified in Xservers, and it can manage remote X servers (typically X terminals) using XDMCP (the XDM Control Protocol) as specified in the Xaccess file. The resources of the X clients run by xdm outside the user's session, including xdm's own login window, can be affected by setting resources in the Xresources file. For X terminals that do not offer a menu of hosts to get display management from, xdm can collect willing hosts and run the chooser program to offer the user a menu. For X displays attached to a host, this step is typically not used, as the local host does the display management. After resetting the X server, xdm runs the Xsetup script to assist in setting up the screen the user sees along with the xlogin widget. The xlogin widget, which xdm presents, offers the familiar login and password prompts. After the user logs in, xdm runs the Xstartup script as root. Then xdm runs the Xsession script as the user. This system session file may do some additional startup and typically runs the .xsession script in the user's home directory. When the Xsession script exits, the session is over. At the end of the session, the Xreset script is run to clean up, the X server is reset, and the cycle starts over. The file XDMLOGDIR/xdm.log will contain error messages from xdm and anything output to stderr by Xsetup, Xstartup, Xsession or Xreset. When you have trouble getting xdm working, check this file to see if xdm has any clues to the trouble. OPTIONS All of these options, except -config itself, specify values that can also be specified in the configuration file as resources. -config configuration_file Names the configuration file, which specifies resources to control the behavior of xdm. /usr/X11R6/lib/X11/xdm/xdm-config is the default. See the section Configuration File. -nodaemon Specifies ``false'' as the value for the DisplayManager.daemonMode resource. This suppresses the normal daemon behavior, which is for xdm to close all file descriptors, disassociate itself from the controlling terminal, and put itself in the background when it first starts up. -debug debug_level Specifies the numeric value for the DisplayManager.debugLevel resource. A non-zero value causes xdm to print lots of debugging statements to the terminal; it also disables the DisplayManager.daemonMode resource, forcing xdm to run synchronously. To interpret these debugging messages, a copy of the source code for xdm is almost a necessity. No attempt has been made to rationalize or standardize the output. -error error_log_file Specifies the value for the DisplayManager.errorLogFile resource. This file contains errors from xdm as well as anything written to stderr by the various scripts and programs run during the progress of the session. -resources resource_file Specifies the value for the DisplayManager*resources resource. This file is loaded using xrdb to specify configuration parameters for the authentication widget. -server server_entry Specifies the value for the DisplayManager.servers resource. See the section Local Server Specification for a description of this resource. -udpPort port_number Specifies the value for the DisplayManager.requestPort resource. This sets the port-number which xdm will monitor for XDMCP requests. As XDMCP uses the registered well-known UDP port 177, this resource should not be changed except for debugging. If set to 0 xdm will not listen for XDMCP or Chooser requests. -session session_program Specifies the value for the DisplayManager*session resource. This indicates the program to run as the session after the user has logged in. -xrm resource_specification Allows an arbitrary resource to be specified, as in most X Toolkit applications. RESOURCES At many stages the actions of xdm can be controlled through the use of its configuration file, which is in the X resource format. Some resources modify the behavior of xdm on all displays, while others modify its behavior on a single display. Where actions relate to a specific display, the display name is inserted into the resource name between ``DisplayManager'' and the final resource name segment. For local displays, the resource name and class are as read from the Xservers file. For remote displays, the resource name is what the network address of the display resolves to. See the removeDomain resource. The name must match exactly; xdm is not aware of all the network aliases that might reach a given display. If the name resolve fails, the address is used. The resource class is as sent by the display in the XDMCP Manage request. Because the resource manager uses colons to separate the name of the resource from its value and dots to separate resource name parts, xdm substitutes underscores for both dots and colons when generating the resource name. For example, DisplayManager.expo_x_org_0.startup is the name of the resource which defines the startup shell file for the ``expo.x.org:0'' display. DisplayManager.servers This resource either specifies a file name full of server entries, one per line (if the value starts with a slash), or a single server entry. See the section Local Server Specification for the details. DisplayManager.requestPort This indicates the UDP port number which xdm uses to listen for incoming XDMCP requests. Unless you need to debug the system, leave this with its default value of 177. DisplayManager.errorLogFile Error output is normally directed at the system console. To redirect it, set this resource to a file name. A method to send these messages to syslog should be developed for systems which support it; however, the wide variety of interfaces precludes any system-independent implementation. This file also contains any output directed to stderr by the Xsetup, Xstartup, Xsession and Xreset files, so it will contain descriptions of problems in those scripts as well. DisplayManager.debugLevel If the integer value of this resource is greater than zero, reams of debugging information will be printed. It also disables daemon mode, which would redirect the information into the bit-bucket, and allows non-root users to run xdm, which would normally not be useful. DisplayManager.daemonMode Normally, xdm attempts to make itself into a daemon process unassociated with any terminal. This is accomplished by forking and leaving the parent process to exit, then closing file descriptors and releasing the controlling terminal. In some environments this is not desired (in particular, when debugging). Setting this resource to ``false'' will disable this feature. DisplayManager.pidFile The filename specified will be created to contain an ASCII representation of the process-id of the main xdm process. Xdm also uses file locking on this file to attempt to eliminate multiple daemons running on the same machine, which would cause quite a bit of havoc. DisplayManager.lockPidFile This is the resource which controls whether xdm uses file locking to keep multiple display managers from running amok. On System V, this uses the lockf library call, while on BSD it uses flock. DisplayManager.authDir This names a directory under which xdm stores authorization files while initializing the session. The default value is XDMAUTHDIR. Can be overridden for specific displays by DisplayManager.DISPLAY.authFile. DisplayManager.autoRescan This boolean controls whether xdm rescans the configuration, servers, access control and authentication keys files after a session terminates and the files have changed. By default it is ``true.'' You can force xdm to reread these files by sending a SIGHUP to the main process. DisplayManager.removeDomainname When computing the display name for XDMCP clients, the name resolver will typically create a fully qualified host name for the terminal. As this is sometimes confusing, xdm will remove the domain name portion of the host name if it is the same as the domain name of the local host when this variable is set. By default the value is ``true.'' DisplayManager.keyFile XDM-AUTHENTICATION-1 style XDMCP authentication requires that a private key be shared between xdm and the terminal. This resource specifies the file containing those values. Each entry in the file consists of a display name and the shared key. By default, xdm does not include support for XDM-AUTHENTICATION-1, as it requires DES which is not generally distributable because of United States export restrictions. DisplayManager.accessFile To prevent unauthorized XDMCP service and to allow forwarding of XDMCP IndirectQuery requests, this file contains a database of hostnames which are either allowed direct access to this machine, or have a list of hosts to which queries should be forwarded to. The format of this file is described in the section XDMCP Access Control. DisplayManager.exportList A list of additional environment variables, separated by white space, to pass on to the Xsetup, Xstartup, Xsession, and Xreset programs. DisplayManager.randomFile A file to checksum to generate the seed of authorization keys. This should be a file that changes frequently. The default is /dev/mem. DisplayManager.prngdSocket DisplayManager.prngPort A UNIX domain socket name or a TCP socket port number on local host on which a Pseudo-Random Number Generator Daemon, like EGD (http://egd.sourceforge.net) is listening, in order to generate the autorization keys. Either a non null port or a valid socket name must be specified. The default is to use the Unix-domain socket /tmp/entropy. On systems that don't have such a daemon, a fall-back entropy gathering system, based on various log file contents hashed by the MD5 algorithm is used instead. DisplayManager.greeterLib On systems that support a dynamically-loadable greeter library, the name of the library. The default is /usr/X11R6/lib/X11/xdm/libXdmGreet.so. DisplayManager.choiceTimeout Number of seconds to wait for display to respond after user has selected a host from the chooser. If the display sends an XDMCP IndirectQuery within this time, the request is forwarded to the chosen host. Otherwise, it is assumed to be from a new session and the chooser is offered again. Default is 15. DisplayManager.sourceAddress Use the numeric IP address of the incoming connection on multihomed hosts instead of the host name. This is to avoid trying to connect on the wrong interface which might be down at this time. DisplayManager.willing This specifies a program which is run (as) root when an an XDMCP BroadcastQuery is received and this host is configured to offer XDMCP display management. The output of this program may be displayed on a chooser window. If no program is specified, the string Willing to manage is sent. DisplayManager.DISPLAY.resources This resource specifies the name of the file to be loaded by xrdb as the resource database onto the root window of screen 0 of the display. The Xsetup program, the Login widget, and chooser will use the resources set in this file. This resource data base is loaded just before the authentication procedure is started, so it can control the appearance of the login window. See the section Authentication Widget, which describes the various resources that are appropriate to place in this file. There is no default value for this resource, but /usr/X11R6/lib/X11/xdm/Xresources is the conventional name. DisplayManager.DISPLAY.chooser Specifies the program run to offer a host menu for Indirect queries redirected to the special host name CHOOSER. CHOOSERPATH is the default. See the sections XDMCP Access Control and Chooser. DisplayManager.DISPLAY.xrdb Specifies the program used to load the resources. By default, xdm uses /usr/X11R6/bin/xrdb. DisplayManager.DISPLAY.cpp This specifies the name of the C preprocessor which is used by xrdb. DisplayManager.DISPLAY.setup This specifies a program which is run (as root) before offering the Login window. This may be used to change the appearance of the screen around the Login window or to put up other windows (e.g., you may want to run xconsole here). By default, no program is run. The conventional name for a file used here is Xsetup. See the section Setup Program. DisplayManager.DISPLAY.startup This specifies a program which is run (as root) after the authentication process succeeds. By default, no program is run. The conventional name for a file used here is Xstartup. See the section Startup Program. DisplayManager.DISPLAY.session This specifies the session to be executed (not running as root). By default, /usr/X11R6/bin/xterm is run. The conventional name is Xsession. See the section Session Program. DisplayManager.DISPLAY.reset This specifies a program which is run (as root) after the session terminates. By default, no program is run. The conventional name is Xreset. See the section Reset Program. DisplayManager.DISPLAY.openDelay DisplayManager.DISPLAY.openRepeat DisplayManager.DISPLAY.openTimeout DisplayManager.DISPLAY.startAttempts These numeric resources control the behavior of xdm when attempting to open intransigent servers. openDelay is the length of the pause (in seconds) between successive attempts, openRepeat is the number of attempts to make, openTimeout is the amount of time to wait while actually attempting the open (i.e., the maximum time spent in the connect(2) system call) and startAttempts is the number of times this entire process is done before giving up on the server. After openRepeat attempts have been made, or if openTimeout seconds elapse in any particular attempt, xdm terminates and restarts the server, attempting to connect again. This process is repeated startAttempts times, at which point the display is declared dead and disabled. Although this behavior may seem arbitrary, it has been empirically developed and works quite well on most systems. The default values are 5 for openDelay, 5 for openRepeat, 30 for openTimeout and 4 for startAttempts. DisplayManager.DISPLAY.pingInterval DisplayManager.DISPLAY.pingTimeout To discover when remote displays disappear, xdm occasionally pings them, using an X connection and XSync calls. pingInterval specifies the time (in minutes) between each ping attempt, pingTimeout specifies the maximum amount of time (in minutes) to wait for the terminal to respond to the request. If the terminal does not respond, the session is declared dead and terminated. By default, both are set to 5 minutes. If you frequently use X terminals which can become isolated from the managing host, you may wish to increase this value. The only worry is that sessions will continue to exist after the terminal has been accidentally disabled. xdm will not ping local displays. Although it would seem harmless, it is unpleasant when the workstation session is terminated as a result of the server hanging for NFS service and not responding to the ping. DisplayManager.DISPLAY.terminateServer This boolean resource specifies whether the X server should be terminated when a session terminates (instead of resetting it). This option can be used when the server tends to grow without bound over time, in order to limit the amount of time the server is run. The default value is ``false.'' DisplayManager.DISPLAY.userPath Xdm sets the PATH environment variable for the session to this value. It should be a colon separated list of directories; see sh(1) for a full description. ``:/bin:/usr/bin:/usr/X11R6/bin:/usr/ucb'' is a common setting. The default value can be specified at build time in the X system configuration file with DefaultUserPath. DisplayManager.DISPLAY.systemPath Xdm sets the PATH environment variable for the startup and reset scripts to the value of this resource. The default for this resource is specified at build time by the DefaultSystemPath entry in the system configuration file; ``/etc:/bin:/usr/bin:/usr/X11R6/bin:/usr/ucb'' is a common choice. Note the absence of ``.'' from this entry. This is a good practice to follow for root; it avoids many common Trojan Horse system penetration schemes. DisplayManager.DISPLAY.systemShell Xdm sets the SHELL environment variable for the startup and reset scripts to the value of this resource. It is /bin/sh by default. DisplayManager.DISPLAY.failsafeClient If the default session fails to execute, xdm will fall back to this program. This program is executed with no arguments, but executes using the same environment variables as the session would have had (see the section Session Program). By default, /usr/X11R6/bin/xterm is used. DisplayManager.DISPLAY.grabServer DisplayManager.DISPLAY.grabTimeout To improve security, xdm grabs the server and keyboard while reading the login name and password. The grabServer resource specifies if the server should be held for the duration of the name/password reading. When ``false,'' the server is ungrabbed after the keyboard grab succeeds, otherwise the server is grabbed until just before the session begins. The default is ``false.'' The grabTimeout resource specifies the maximum time xdm will wait for the grab to succeed. The grab may fail if some other client has the server grabbed, or possibly if the network latencies are very high. This resource has a default value of 3 seconds; you should be cautious when raising it, as a user can be spoofed by a look-alike window on the display. If the grab fails, xdm kills and restarts the server (if possible) and the session. DisplayManager.DISPLAY.authorize DisplayManager.DISPLAY.authName authorize is a boolean resource which controls whether xdm generates and uses authorization for the local server connections. If authorization is used, authName is a list of authorization mechanisms to use, separated by white space. XDMCP connections dynamically specify which authorization mechanisms are supported, so authName is ignored in this case. When authorize is set for a display and authorization is not available, the user is informed by having a different message displayed in the login widget. By default, authorize is ``true.'' authName is ``MIT-MAGIC-COOKIE-1,'' or, if XDM- AUTHORIZATION-1 is available, ``XDM-AUTHORIZATION-1 MIT-MAGIC- COOKIE-1.'' DisplayManager.DISPLAY.authFile This file is used to communicate the authorization data from xdm to the server, using the -auth server command line option. It should be kept in a directory which is not world-writable as it could easily be removed, disabling the authorization mechanism in the server. If not specified, a name is generated from DisplayManager.authDir and the name of the display. DisplayManager.DISPLAY.authComplain If set to ``false,'' disables the use of the unsecureGreeting in the login window. See the section Authentication Widget. The default is ``true.'' DisplayManager.DISPLAY.resetSignal The number of the signal xdm sends to reset the server. See the section Controlling the Server. The default is 1 (SIGHUP). DisplayManager.DISPLAY.termSignal The number of the signal xdm sends to terminate the server. See the section Controlling the Server. The default is 15 (SIGTERM). DisplayManager.DISPLAY.resetForAuth The original implementation of authorization in the sample server reread the authorization file at server reset time, instead of when checking the initial connection. As xdm generates the authorization information just before connecting to the display, an old server would not get up-to-date authorization information. This resource causes xdm to send SIGHUP to the server after setting up the file, causing an additional server reset to occur, during which time the new authorization information will be read. The default is ``false,'' which will work for all MIT servers. DisplayManager.DISPLAY.userAuthDir When xdm is unable to write to the usual user authorization file ($HOME/.Xauthority), it creates a unique file name in this directory and points the environment variable XAUTHORITY at the created file. It uses /tmp by default. CONFIGURATION FILE First, the xdm configuration file should be set up. Make a directory (usually /usr/X11R6/lib/X11/xdm) to contain all of the relevant files. Here is a reasonable configuration file, which could be named xdm- config: DisplayManager.servers: /usr/X11R6/lib/X11/xdm/Xservers DisplayManager.errorLogFile: XDMLOGDIR/xdm.log DisplayManager*resources: /usr/X11R6/lib/X11/xdm/Xresources DisplayManager*startup: /usr/X11R6/lib/X11/xdm/Xstartup DisplayManager*session: /usr/X11R6/lib/X11/xdm/Xsession DisplayManager.pidFile: /usr/X11R6/lib/X11/xdm/xdm-pid DisplayManager._0.authorize: true DisplayManager*authorize: false Note that this file mostly contains references to other files. Note also that some of the resources are specified with ``*'' separating the components. These resources can be made unique for each different display, by replacing the ``*'' with the display-name, but normally this is not very useful. See the Resources section for a complete discussion. XDMCP ACCESS CONTROL The database file specified by the DisplayManager.accessFile provides information which xdm uses to control access from displays requesting XDMCP service. This file contains three types of entries: entries which control the response to Direct and Broadcast queries, entries which control the response to Indirect queries, and macro definitions. The format of the Direct entries is simple, either a host name or a pattern, which is distinguished from a host name by the inclusion of one or more meta characters (`*' matches any sequence of 0 or more characters, and `?' matches any single character) which are compared against the host name of the display device. If the entry is a host name, all comparisons are done using network addresses, so any name which converts to the correct network address may be used. For patterns, only canonical host names are used in the comparison, so ensure that you do not attempt to match aliases. Preceding either a host name or a pattern with a `!' character causes hosts which match that entry to be excluded. To only respond to Direct queries for a host or pattern, it can be followed by the optional ``NOBROADCAST'' keyword. This can be used to prevent an xdm server from appearing on menus based on Broadcast queries. An Indirect entry also contains a host name or pattern, but follows it with a list of host names or macros to which indirect queries should be sent. A macro definition contains a macro name and a list of host names and other macros that the macro expands to. To distinguish macros from hostnames, macro names start with a `%' character. Macros may be nested. Indirect entries may also specify to have xdm run chooser to offer a menu of hosts to connect to. See the section Chooser. When checking access for a particular display host, each entry is scanned in turn and the first matching entry determines the response. Direct and Broadcast entries are ignored when scanning for an Indirect entry and vice-versa. Blank lines are ignored, `#' is treated as a comment delimiter causing the rest of that line to be ignored, and `\newline' causes the newline to be ignored, allowing indirect host lists to span multiple lines. Here is an example Xaccess file: # # Xaccess - XDMCP access control file # # # Direct/Broadcast query entries # !xtra.lcs.mit.edu # disallow direct/broadcast service for xtra bambi.ogi.edu # allow access from this particular display *.lcs.mit.edu # allow access from any display in LCS *.deshaw.com NOBROADCAST # allow only direct access *.gw.com # allow direct and broadcast # # Indirect query entries # %HOSTS expo.lcs.mit.edu xenon.lcs.mit.edu \ excess.lcs.mit.edu kanga.lcs.mit.edu extract.lcs.mit.edu xenon.lcs.mit.edu #force extract to contact xenon !xtra.lcs.mit.edu dummy #disallow indirect access *.lcs.mit.edu %HOSTS #all others get to choose If compiled with IPv6 support, multicast address groups may also be included in the list of addresses indirect queries are set to. Multicast addresses may be followed by an optional / character and hop count. If no hop count is specified, the multicast hop count defaults to 1, keeping the packet on the local network. For IPv4 multicasting, the hop count is used as the TTL. Examples: rincewind.sample.net ff02::1 #IPv6 Multicast to ff02::1 #with a hop count of 1 ponder.sample.net CHOOSER 239.192.1.1/16 #Offer a menu of hosts #who respond to IPv4 Multicast # to 239.192.1.1 with a TTL of 16 CHOOSER For X terminals that do not offer a host menu for use with Broadcast or Indirect queries, the chooser program can do this for them. In the Xaccess file, specify ``CHOOSER'' as the first entry in the Indirect host list. Chooser will send a Query request to each of the remaining host names in the list and offer a menu of all the hosts that respond. The list may consist of the word ``BROADCAST,'' in which case chooser will send a Broadcast instead, again offering a menu of all hosts that respond. Note that on some operating systems, UDP packets cannot be broadcast, so this feature will not work. Example Xaccess file using chooser: extract.lcs.mit.edu CHOOSER %HOSTS #offer a menu of these hosts xtra.lcs.mit.edu CHOOSER BROADCAST #offer a menu of all hosts The program to use for chooser is specified by the DisplayManager.DISPLAY.chooser resource. For more flexibility at this step, the chooser could be a shell script. Chooser is the session manager here; it is run instead of a child xdm to manage the display. Resources for this program can be put into the file named by DisplayManager.DISPLAY.resources. When the user selects a host, chooser prints the host chosen, which is read by the parent xdm, and exits. xdm closes its connection to the X server, and the server resets and sends another Indirect XDMCP request. xdm remembers the user's choice (for DisplayManager.choiceTimeout seconds) and forwards the request to the chosen host, which starts a session on that display. LISTEN The following configuration directive is also defined for the Xaccess configuration file: LISTEN interface [list of multicast group addresses] interface may be a hostname or IP addresss representing a network interface on this machine, or the wildcard * to represent all available network interfaces. If one or more LISTEN lines are specified, xdm only listens for XDMCP connections on the specified interfaces. If multicast group addresses are listed on a listen line, xdm joins the multicast groups on the given interface. If no LISTEN lines are given, the original behavior of listening on all interfaces is preserved for backwards compatibility. Additionally, if no LISTEN is specified, xdm joins the default XDMCP IPv6 multicast group, when compiled with IPv6 support. To disable listening for XDMCP connections altogther, a line of LISTEN with no addresses may be specified, or the previously supported method of setting DisplayManager.requestPort to 0 may be used. Examples: LISTEN * ff02::1 # Listen on all interfaces and to the # ff02::1 IPv6 multicast group. LISTEN 10.11.12.13 # Listen only on this interface, as long # as no other listen directives appear in # file. IPv6 MULTICAST ADDRESS SPECIFICATION The Internet Assigned Numbers Authority has has assigned ff0X:0:0:0:0:0:0:12b as the permanently assigned range of multicast addresses for XDMCP. The X in the prefix may be replaced by any valid scope identifier, such as 1 for Node-Local, 2 for Link-Local, 5 for Site-Local, and so on. (See IETF RFC 2373 or its replacement for further details and scope definitions.) xdm defaults to listening on the Link-Local scope address ff02:0:0:0:0:0:0:12b to most closely match the old IPv4 subnet broadcast behavior. LOCAL SERVER SPECIFICATION The resource DisplayManager.servers gives a server specification or, if the values starts with a slash (/), the name of a file containing server specifications, one per line. Each specification indicates a display which should constantly be managed and which is not using XDMCP. This method is used typically for local servers only. If the resource or the file named by the resource is empty, xdm will offer XDMCP service only. Each specification consists of at least three parts: a display name, a display class, a display type, and (for local servers) a command line to start the server. A typical entry for local display number 0 would be: :0 Digital-QV local /usr/X11R6/bin/X :0 The display types are: local local display: xdm must run the server foreign remote display: xdm opens an X connection to a running server The display name must be something that can be passed in the -display option to an X program. This string is used to generate the display- specific resource names, so be careful to match the names (e.g., use ``:0 Sun-CG3 local /usr/X11R6/bin/X :0'' instead of ``localhost:0 Sun- CG3 local /usr/X11R6/bin/X :0'' if your other resources are specified as ``DisplayManager._0.session''). The display class portion is also used in the display-specific resources, as the class of the resource. This is useful if you have a large collection of similar displays (such as a corral of X terminals) and would like to set resources for groups of them. When using XDMCP, the display is required to specify the display class, so the manual for your particular X terminal should document the display class string for your device. If it doesn't, you can run xdm in debug mode and look at the resource strings which it generates for that device, which will include the class string. When xdm starts a session, it sets up authorization data for the server. For local servers, xdm passes ``-auth filename'' on the server's command line to point it at its authorization data. For XDMCP servers, xdm passes the authorization data to the server via the Accept XDMCP request. RESOURCES FILE The Xresources file is loaded onto the display as a resource database using xrdb. As the authentication widget reads this database before starting up, it usually contains parameters for that widget: xlogin*login.translations: #override\ CtrlR: abort-display()\n\/& F1: set-session-argument(failsafe) finish-field()\n\ Return: set-session-argument() finish-field() xlogin*borderWidth: 3 xlogin*greeting: CLIENTHOST #ifdef COLOR xlogin*greetColor: CadetBlue xlogin*failColor: red #endif Please note the translations entry; it specifies a few new translations for the widget which allow users to escape from the default session (and avoid troubles that may occur in it). Note that if #override is not specified, the default translations are removed and replaced by the new value, not a very useful result as some of the default translations are quite useful (such as ``: insert-char ()'' which responds to normal typing). This file may also contain resources for the setup program and chooser. SETUP PROGRAM The Xsetup file is run after the server is reset, but before the Login window is offered. The file is typically a shell script. It is run as root, so should be careful about security. This is the place to change the root background or bring up other windows that should appear on the screen along with the Login widget. In addition to any specified by DisplayManager.exportList, the following environment variables are passed: DISPLAY the associated display name PATH the value of DisplayManager.DISPLAY.systemPath SHELL the value of DisplayManager.DISPLAY.systemShell XAUTHORITY may be set to an authority file Note that since xdm grabs the keyboard, any other windows will not be able to receive keyboard input. They will be able to interact with the mouse, however; beware of potential security holes here. If DisplayManager.DISPLAY.grabServer is set, Xsetup will not be able to connect to the display at all. Resources for this program can be put into the file named by DisplayManager.DISPLAY.resources. Here is a sample Xsetup script: #!/bin/sh # Xsetup_0 - setup script for one workstation xcmsdb < /usr/X11R6/lib/monitors/alex.0 xconsole -geometry 480x130-0-0 -notify -verbose -exitOnFail & AUTHENTICATION WIDGET The authentication widget reads a name/password pair from the keyboard. Nearly every imaginable parameter can be controlled with a resource. Resources for this widget should be put into the file named by DisplayManager.DISPLAY.resources. All of these have reasonable default values, so it is not necessary to specify any of them. xlogin.Login.width, xlogin.Login.height, xlogin.Login.x, xlogin.Login.y The geometry of the Login widget is normally computed automatically. If you wish to position it elsewhere, specify each of these resources. xlogin.Login.foreground The color used to display the typed-in user name. xlogin.Login.font The font used to display the typed-in user name. xlogin.Login.greeting A string which identifies this window. The default is ``X Window System.'' xlogin.Login.unsecureGreeting When X authorization is requested in the configuration file for this display and none is in use, this greeting replaces the standard greeting. The default is ``This is an unsecure session'' xlogin.Login.greetFont The font used to display the greeting. xlogin.Login.greetColor The color used to display the greeting. xlogin.Login.namePrompt The string displayed to prompt for a user name. Xrdb strips trailing white space from resource values, so to add spaces at the end of the prompt (usually a nice thing), add spaces escaped with backslashes. The default is ``Login: '' xlogin.Login.passwdPrompt The string displayed to prompt for a password. The default is ``Password: '' xlogin.Login.promptFont The font used to display both prompts. xlogin.Login.promptColor The color used to display both prompts. xlogin.Login.fail A message which is displayed when the authentication fails. The default is ``Login incorrect'' xlogin.Login.failFont The font used to display the failure message. xlogin.Login.failColor The color used to display the failure message. xlogin.Login.failTimeout The number of seconds that the failure message is displayed. The default is 30. xlogin.Login.allowRootLogin If set to ``false'', don't allow root (and any other user with uid = 0) to log in directly. The default is ``true''. xlogin.Login.allowNullPasswd If set to ``true'', allow an otherwise failing password match to succeed if the account does not require a password at all. The default is ``false'', so only users that have passwords assigned can log in. xlogin.Login.translations This specifies the translations used for the login widget. Refer to the X Toolkit documentation for a complete discussion on translations. The default translation table is: CtrlH: delete-previous-character() \n\ CtrlD: delete-character() \n\ CtrlB: move-backward-character() \n\ CtrlF: move-forward-character() \n\ CtrlA: move-to-begining() \n\ CtrlE: move-to-end() \n\ CtrlK: erase-to-end-of-line() \n\ CtrlU: erase-line() \n\ CtrlX: erase-line() \n\ CtrlC: restart-session() \n\ Ctrl\\: abort-session() \n\ BackSpace:delete-previous-character() \n\ Delete: delete-previous-character() \n\ Return: finish-field() \n\ : insert-char() \ The actions which are supported by the widget are: delete-previous-character Erases the character before the cursor. delete-character Erases the character after the cursor. move-backward-character Moves the cursor backward. move-forward-character Moves the cursor forward. move-to-begining (Apologies about the spelling error.) Moves the cursor to the beginning of the editable text. move-to-end Moves the cursor to the end of the editable text. erase-to-end-of-line Erases all text after the cursor. erase-line Erases the entire text. finish-field If the cursor is in the name field, proceeds to the password field; if the cursor is in the password field, checks the current name/password pair. If the name/password pair is valid, xdm starts the session. Otherwise the failure message is displayed and the user is prompted again. abort-session Terminates and restarts the server. abort-display Terminates the server, disabling it. This action is not accessible in the default configuration. There are various reasons to stop xdm on a system console, such as when shutting the system down, when using xdmshell, to start another type of server, or to generally access the console. Sending xdm a SIGHUP will restart the display. See the section Controlling XDM. restart-session Resets the X server and starts a new session. This can be used when the resources have been changed and you want to test them or when the screen has been overwritten with system messages. insert-char Inserts the character typed. set-session-argument Specifies a single word argument which is passed to the session at startup. See the section Session Program. allow-all-access Disables access control in the server. This can be used when the .Xauthority file cannot be created by xdm. Be very careful using this; it might be better to disconnect the machine from the network before doing this. On some systems (OpenBSD) the user's shell must be listed in /etc/shells to allow login through xdm. The normal password and account expiration dates are enforced too. STARTUP PROGRAM The Xstartup program is run as root when the user logs in. It is typically a shell script. Since it is run as root, Xstartup should be very careful about security. This is the place to put commands which add entries to /etc/utmp (the sessreg program may be useful here), mount users' home directories from file servers, or abort the session if logins are not allowed. In addition to any specified by DisplayManager.exportList, the following environment variables are passed: DISPLAY the associated display name HOME the initial working directory of the user LOGNAME the user name USER the user name PATH the value of DisplayManager.DISPLAY.systemPath SHELL the value of DisplayManager.DISPLAY.systemShell XAUTHORITY may be set to an authority file No arguments are passed to the script. Xdm waits until this script exits before starting the user session. If the exit value of this script is non-zero, xdm discontinues the session and starts another authentication cycle. The sample Xstartup file shown here prevents login while the file /etc/nologin exists. Thus this is not a complete example, but simply a demonstration of the available functionality. Here is a sample Xstartup script: #!/bin/sh # # Xstartup # # This program is run as root after the user is verified # if [ -f /etc/nologin ]; then xmessage -file /etc/nologin -timeout 30 -center exit 1 fi sessreg -a -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $LOGNAME /usr/X11R6/lib/xdm/GiveConsole exit 0 SESSION PROGRAM The Xsession program is the command which is run as the user's session. It is run with the permissions of the authorized user. In addition to any specified by DisplayManager.exportList, the following environment variables are passed: DISPLAY the associated display name HOME the initial working directory of the user LOGNAME the user name USER the user name PATH the value of DisplayManager.DISPLAY.userPath SHELL the user's default shell (from getpwnam) XAUTHORITY may be set to a non-standard authority file KRB5CCNAME may be set to a Kerberos credentials cache name At most installations, Xsession should look in $HOME for a file .xsession, which contains commands that each user would like to use as a session. Xsession should also implement a system default session if no user-specified session exists. See the section Typical Usage. An argument may be passed to this program from the authentication widget using the `set-session-argument' action. This can be used to select different styles of session. One good use of this feature is to allow the user to escape from the ordinary session when it fails. This allows users to repair their own .xsession if it fails, without requiring administrative intervention. The example following demonstrates this feature. This example recognizes the special ``failsafe'' mode, specified in the translations in the Xresources file, to provide an escape from the ordinary session. It also requires that the .xsession file be executable so we don't have to guess what shell it wants to use. #!/bin/sh # # Xsession # # This is the program that is run as the client # for the display manager. case $# in 1) case $1 in failsafe) exec xterm -geometry 80x24-0-0 ;; esac esac startup=$HOME/.xsession resources=$HOME/.Xresources if [ -f "$startup" ]; then exec "$startup" else if [ -f "$resources" ]; then xrdb -load "$resources" fi twm & xman -geometry +10-10 & exec xterm -geometry 80x24+10+10 -ls fi The user's .xsession file might look something like this example. Don't forget that the file must have execute permission. #! /bin/csh # no -f in the previous line so .cshrc gets run to set $PATH twm & xrdb -merge "$HOME/.Xresources" emacs -geometry +0+50 & xbiff -geometry -430+5 & xterm -geometry -0+50 -ls RESET PROGRAM Symmetrical with Xstartup, the Xreset script is run after the user session has terminated. Run as root, it should contain commands that undo the effects of commands in Xstartup, removing entries from /etc/utmp or unmounting directories from file servers. The environment variables that were passed to Xstartup are also passed to Xreset. A sample Xreset script: #!/bin/sh # # Xreset # # This program is run as root after the session ends # sessreg -d -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $LOGNAME /usr/X11R6/lib/xdm/TakeConsole exit 0 CONTROLLING THE SERVER Xdm controls local servers using POSIX signals. SIGHUP is expected to reset the server, closing all client connections and performing other cleanup duties. SIGTERM is expected to terminate the server. If these signals do not perform the expected actions, the resources DisplayManager.DISPLAY.resetSignal and DisplayManager.DISPLAY.termSignal can specify alternate signals. To control remote terminals not using XDMCP, xdm searches the window hierarchy on the display and uses the protocol request KillClient in an attempt to clean up the terminal for the next session. This may not actually kill all of the clients, as only those which have created windows will be noticed. XDMCP provides a more sure mechanism; when xdm closes its initial connection, the session is over and the terminal is required to close all other connections. CONTROLLING XDM Xdm responds to two signals: SIGHUP and SIGTERM. When sent a SIGHUP, xdm rereads the configuration file, the access control file, and the servers file. For the servers file, it notices if entries have been added or removed. If a new entry has been added, xdm starts a session on the associated display. Entries which have been removed are disabled immediately, meaning that any session in progress will be terminated without notice and no new session will be started. When sent a SIGTERM, xdm terminates all sessions in progress and exits. This can be used when shutting down the system. Xdm attempts to mark its various sub-processes for ps(1) by editing the command line argument list in place. Because xdm can't allocate additional space for this task, it is useful to start xdm with a reasonably long command line (using the full path name should be enough). Each process which is servicing a display is marked -display. ADDITIONAL LOCAL DISPLAYS To add an additional local display, add a line for it to the Xservers file. (See the section Local Server Specification.) Examine the display-specific resources in xdm-config (e.g., DisplayManager._0.authorize) and consider which of them should be copied for the new display. The default xdm-config has all the appropriate lines for displays :0 and :1. OTHER POSSIBILITIES You can use xdm to run a single session at a time, using the 4.3 init options or other suitable daemon by specifying the server on the command line: xdm -server ":0 SUN-3/60CG4 local /usr/X11R6/bin/X :0" Or, you might have a file server and a collection of X terminals. The configuration for this is identical to the sample above, except the Xservers file would look like extol:0 VISUAL-19 foreign exalt:0 NCD-19 foreign explode:0 NCR-TOWERVIEW3000 foreign This directs xdm to manage sessions on all three of these terminals. See the section Controlling Xdm for a description of using signals to enable and disable these terminals in a manner reminiscent of init(8). LIMITATIONS One thing that xdm isn't very good at doing is coexisting with other window systems. To use multiple window systems on the same hardware, you'll probably be more interested in xinit. FILES /usr/X11R6/lib/X11/xdm/xdm-config the default configuration file $HOME/.Xauthority user authorization file where xdm stores keys for clients to read CHOOSERPATH the default chooser /usr/X11R6/bin/xrdb the default resource database loader /usr/X11R6/bin/X the default server /usr/X11R6/bin/xterm the default session program and failsafe client XDMAUTHDIR/authdir/authfiles/A- the default place for authorization files /tmp/K5C Kerberos credentials cache SEE ALSO X(7), xinit(1), xauth(1), Xsecurity(7), sessreg(1), Xserver(1), X Display Manager Control Protocol AUTHOR Keith Packard, MIT X Consortium XDPYINFO(1) XDPYINFO(1) NAME xdpyinfo - display information utility for X SYNOPSIS xdpyinfo [-display displayname] [-queryExtensions] [-ext extension- name] DESCRIPTION Xdpyinfo is a utility for displaying information about an X server. It is used to examine the capabilities of a server, the predefined values for various parameters used in communicating between clients and the server, and the different types of screens and visuals that are available. By default, numeric information (opcode, base event, base error) about protocol extensions is not displayed. This information can be obtained with the -queryExtensions option. Use of this option on servers that dynamically load extensions will likely cause all possible extensions to be loaded, which can be slow and can consume significant server resources. Detailed information about a particular extension is displayed with the -ext extensionName option. If extensionName is all, information about all extensions supported by both xdpyinfo and the server is displayed. ENVIRONMENT DISPLAY To get the default host, display number, and screen. SEE ALSO X(7), xwininfo(1), xprop(1), xrdb(1) AUTHOR Jim Fulton, MIT X Consortium Support for the XFree86-VidModeExtension, XFree86-DGA, XFree86-Misc, and XKB extensions added by Joe Moss XEDIT(1) XEDIT(1) NAME xedit - simple text editor for X SYNTAX xedit [ -toolkitoption ... ] [ filename ... ] DESCRIPTION Xedit provides a window consisting of the following four areas: Commands Section A set of commands that allow you to exit xedit, save the file, or load a new file into the edit window. Message Window Displays xedit messages. In addition, this window can be also used as a scratch pad. Filename Display Displays the name of the file currently being edited, and whether this file is Read-Write or Read Only. Edit Window Displays the text of the file that you are editing or creating. OPTIONS Xedit accepts all of the standard X Toolkit command line options (see X(7)). The order of the command line options is not important. filename Specifies the file(s) that are to be loaded during start-up. This is the file which will be edited. If a file is not specified, xedit lets you load files or create new files after it has started up. EDITING The Athena Text widget is used for the three sections of this application that allow text input. The characters typed will go to the Text widget that has the input focus, or the Text widget that the pointer cursor is currently over. The following keystroke combinations are defined: Ctrl-a Beginning Of Line Meta-b Backward Word Ctrl-b Backward Character Meta-f Forward Word Ctrl-d Delete Next Character Meta-iInsert File Ctrl-e End Of Line Meta-k Kill To End Of Paragraph Ctrl-f Forward Character Meta-q Form Paragraph Ctrl-g Keyboard Reset Meta-v Previous Page Ctrl-h Delete Previous Character Meta-yInsert Current Selection Ctrl-j Newline And Indent Meta-z Scroll One Line Down Ctrl-k Kill To End Of Line Meta-d Delete Next Word Ctrl-l Redraw Display Meta-D Kill Word Ctrl-m Newline Meta-h Delete Previous Word Ctrl-n Next Line Meta-H Backward Kill Word Ctrl-o Newline And Backup Meta-< Beginning Of File Ctrl-p Previous Line Meta-> End Of File Ctrl-r Search/Replace Backward Meta-]Forward Paragraph Ctrl-s Search/Replace Forward Meta-[Backward Paragraph Ctrl-t Transpose Characters Ctrl-u [number] Multiply by 4 or numberMeta-DeleteDelete Previous Word Ctrl-v Next Page Meta-Shift DeleteKill Previous Word Ctrl-w Kill Selection Meta-Backspace Delete Previous Word Ctrl-y Unkill Meta-Shift BackspaceKill Previous Word Ctrl-z Scroll One Line Up Meta-z Scroll One Line Down Ctrl-_ Undo Escape Line Edit Mode In addition, the pointer may be used to cut and paste text: Button 1 Down Start Selection Button 1 MotionAdjust Selection Button 1 Up End Selection (cut) Button 2 Down Insert Current Selection (paste) Button 3 Down Extend Current Selection Button 3 MotionAdjust Selection Button 3 Up End Selection (cut) LINE EDIT MODE Line edit mode enables several shortcut commands for searching and replacing text in a xedit buffer. Line edit mode commands have the format: [line-number[,line-number]]command[parameters] Line number may be specified as: . The current text line. $ The last line of the file. number The literal line number. - or ^ The previous line. Equivalent to -1. -number or ^number The current line minus number. + The next line. Equivalent to +1. +number The current line plus number. , or % From the first to the last line. Equivalent to 1,$. ; From the current to the last line. Equivalent to .,$. Command may be specified as: s Substitute text in the specified lines. /re/ Search forward for the regular expression pattern re. ?re? Search backward for the regular expression pattern re. Parameters may be specified as: /re/ Works as a parameter to i or as a command. /re/text/ Search forward for re and substitute by text. Options may follow or be parameters, known values are: i Case insensitive search. g Global match when replacing text. Unless specified, only the nth, that defaults to 1, match will be replaced. c Confirm before replacing text. number Replace only the occurrence referenced by number. Commands accept some variations, examples: /pattern/i i/pattern/ i/pattern Search forward for pattern. ,sc/pattern/text ,sc/pattern/text/ ,s/pattern/text/c Search the entire buffer and ask confirmation to replace pattern with text. ,s/pattern/text/number Replace the match number in the text line. If not specified, defaults to the first occurrence. When searching for text, type to go to the next match. When interactively replacing text, type y or Y to accept the change, and n or N to ignore it and go to the next match. COMMANDS Quit Quits the current editing session. If any changes have not been saved, xedit displays a warning message, allowing the user to save them. Save If file backups are enabled (see RESOURCES, below) xedit stores a copy of the original, unedited file in file, then overwrites the file with the contents of the edit window. The filename is retrieved from the Text widget directly to the right of the Load button. Load Loads the file named in the text widget immediately to the right of the this button and displays it in the Edit window. RESOURCES For xedit the available resources are: enableBackups (Class EnableBackups) Specifies that, when edits made to an existing file are saved, xedit is to copy the original version of that file to file before it saves the changes. The default value for this resource is ``on,'' stating that backups should be created. backupNamePrefix (Class BackupNamePrefix) Specifies a string that is to be prepended to the backup filename. The default is that no string shall be prepended. backupNameSuffix (Class BackupNameSuffix) Specifies a string that is to be appended to the backup filename. The default is to use ``~'' as the suffix. positionFormat (Class Format) Specifies a format string used to display the cursor position. This string uses printf(3) like notation, where %l prints the line number, %c prints the column number, %p prints the insert position offset, and %s prints the current file size. It is also allowed to specify field sizes, with the notation %-?[0-9]+ . The default format string is ``L%l'', which shows the character ``L'' followed by the line number. hints (Class Hints) Specifies a list of strings, separated by new lines, that will be displayed in the bc_label window. hintsInterval (Class Interval) Specifies the interval in seconds, which the hint string in the bc_label window will be changed. changedBitmap (Class Bitmap) Specifies the name of the Bitmap that will be displayed in the fileMenu, when the file being edited is changed. autoReplace (Class Replace) This resource is useful to automatically correct common misspelling errors, but can also be used to create simple macros. The format is {non-blanks}{blanks}[{string}]. Fields are separeted by newlines. Example of use: nto not\n\ /macro some long string with \\\n newlines \\\n Will automatically replace the word nto by not, and /macro by some long string with newlines when you type that words. ispell.dictionaries (Class ispell.Dictionary) Specifies a list of dictionary names, separeted by spaces, available to the ispell program. The default value is "american americamed+ english". ispell.dictionary (Class ispell.Dictionary) Specifies the default dictionary to use. ispell*.wordChars (Class ispell*Chars) Specifies a set of characters that can be part of a legal word. The field is one of the dictionaries specified in the dictionaries resource. ispell.ispellCommand (Class ispell.CommandLine) The path to the ispell program, and possibly, additional arguments. You don't need to specify the ``-w'' option, neither the ``-a'' option. Refer to the ispell(1) manpage for more information on ispell options. ispell.formatting (Class ispell.TextFormat) Specifies which text formatting to use while spell checking the file. The available formats are text and html. ispell*text.skipLines (Class ispell*text.Skip) Lines starting with one of the characters in this string will not be spell checked. This resource is only used in text mode. ispell.terseMode (Class ispell.Terse) When enabled, runs ispell in terse mode, not asking user interaction for words generated through compound formation (when using the ispell ``-C'' option), or words generated through affix removal. The default value is False. ispell.lookCommand (Class ispell.CommandLine) The path to the program to search for alternate words, and possibly, additional arguments. The default program used is /usr/bin/egrep. ispell.wordsFile (Class ispell.Words) The path to the file[s] to search for alternate words. The default file is /usr/share/dict/words. ispell.guessLabel (Class ispell.Status) String displayed in the ispell status bar when ispell returns a guess list of one or more words. The default value is Guess. ispell.missLabel (Class ispell.Status) String displayed in the ispell status bar when ispell returns a list of one or more words to match a misspelled one. The default value is Miss. ispell.rootLabel (Class ispell.Status) String displayed in the ispell status bar when the word is not in the dictionary, but it can be formed through a root one. The default value is Root:, and is followed by a space and the root word. ispell.noneLabel (Class ispell.Status) String displayed in the ispell status bar when there is no near misses. The default value is None. ispell.compoundLabel (Class ispell.Status) String displayed in the ispell status bar when the word being checked is formed by concatenation of two words. The default value is Compound. ispell.okLabel (Class ispell.Status) String displayed in the ispell status bar when the checked word is in the dictionary. This string is only displayed when using the check button in the xedit ispell interface. The default value is Ok. ispell.eofLabel (Class ispell.Status) The string displayed in the ispell status bar when the end of the file is reached. The default value is End Of File. ispell.repeatLabel (Class ispell.Status) The string displayed in the ispell status bar when two identical words are found together in the file. The default value is Repeat. ispell.lookLabel (Class ispell.Status) The string displayed in the ispell status bar after displaying the results of the Look command. If no results are found, the value of the ispell.noneLabel resource is shown. ispell.workingLabel (Class ispell.Status) The string displayed in the ispell status bar while xedit is communicating with ispell. The default value is .... WIDGETS In order to specify resources, it is useful to know the hierarchy of the widgets which compose xedit. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. Xedit xedit Paned paned Paned buttons Command quit Command save Command load Text filename Label bc_label Text messageWindow Label labelWindow Text editWindow ENVIRONMENT DISPLAY to get the default host and display number. XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. FILES /usr/X11R6/lib/X11/app-defaults/Xedit specifies required resources SEE ALSO X(7), xrdb(1), Athena Widget Set RESTRICTIONS Xedit is not a replacement to Emacs. COPYRIGHT Copyright 1988, Digital Equipment Corporation. Copyright 1989, X Consortium Copyright 1998, The XFree86 Project See X(7) for a full statement of rights and permissions. AUTHORS Chris D. Peterson, MIT X Consortium Paulo Csar Pereira de Andrade, The XFree86 Project XEV(1) XEV(1) NAME xev - print contents of X events SYNOPSIS xev [-display displayname] [-geometry geom] [-bw pixels] [-bs {NotUseful,WhenMapped,Always}] [-id windowid] [-s] [-name string] [-rv] DESCRIPTION Xev creates a window and then asks the X server to send it events whenever anything happens to the window (such as it being moved, resized, typed in, clicked in, etc.). You can also attach it to an existing window. It is useful for seeing what causes events to occur and to display the information that they contain; it is essentially a debugging and development tool, and should not be needed in normal usage. OPTIONS -display display This option specifies the X server to contact. -geometry geom This option specifies the size and/or location of the window, if a window is to be created. -bw pixels This option specifies the border width for the window. -bs {NotUseful,WhenMapped,Always} This option specifies what kind of backing store to give the window. The default is NotUseful. Backing store refers to the the pixels saved off-screen when the X server maintains the contents of a window; NotUseful means that the xev process will redraw its contents itself, as necessary. -id windowid This option specifies that the window with the given id should be monitored, instead of creating a new window. -s This option specifies that save-unders should be enabled on the window. Save unders are similar to backing store, but they refer rather to the saving of pixels off-screen when the current window obscures other windows. Save unders are only advisory, and are normally set for popup dialogs and other transient windows. -name string This option specifies the name to assign to the created window. -rv This option specifies that the window should be in reverse video. SEE ALSO X(7), xwininfo(1), xdpyinfo(1), Xlib Programmers Manual, X Protocol Specification See X(7) for a full statement of rights and permissions. AUTHOR Jim Fulton, MIT X Consortium XEYES(1) XEYES(1) NAME xeyes - a follow the mouse X demo SYNOPSIS xeyes [-option ...] DESCRIPTION Xeyes watches what you do and reports to the Boss. OPTIONS -fg foreground color choose a different color for the pupil of the eyes. -bg background color choose a different color for the background. -outline outline color choose a different color for the outline of the eyes. -center center color choose a different color for the center of the eyes. -backing { WhenMapped Always NotUseful } selects an appropriate level of backing store. -geometry geometry define the initial window geometry; see X(7). -display display specify the display to use; see X(7). -bd border color choose a different color for the window border. -bw border width choose a different width for the window border. -shape uses the SHAPE extension to shape the window. This is the default. +shape Disables uses the SHAPE extension to shape the window. SEE ALSO X(7), X Toolkit documentation See X(7) for a full statement of rights and permissions. AUTHOR Keith Packard, MIT X Consortium Copied from the NeWS version written (apparently) by Jeremy Huxtable as seen at SIGGRAPH '88 XFD(1) XFD(1) NAME xfd - display all the characters in an X font SYNOPSIS xfd [-options ...] -fn fontname xfd [-options ...] -fa fontname DESCRIPTION The xfd utility creates a window containing the name of the font being displayed, a row of command buttons, several lines of text for displaying character metrics, and a grid containing one glyph per cell. The characters are shown in increasing order from left to right, top to bottom. The first character displayed at the top left will be character number 0 unless the -start option has been supplied in which case the character with the number given in the -start option will be used. The characters are displayed in a grid of boxes, each large enough to hold any single character in the font. Each character glyph is drawn using the PolyText16 request (used by the Xlib routine XDrawString16). If the -box option is given, a rectangle will be drawn around each character, showing where an ImageText16 request (used by the Xlib routine XDrawImageString16) would cause background color to be displayed. The origin of each glyph is normally set so that the character is drawn in the upper left hand corner of the grid cell. However, if a glyph has a negative left bearing or an unusually large ascent, descent, or right bearing (as is the case with cursor font), some character may not appear in their own grid cells. The -center option may be used to force all glyphs to be centered in their respective cells. All the characters in the font may not fit in the window at once. To see the next page of glyphs, press the Next button at the top of the window. To see the previous page, press Prev. To exit xfd, press Quit. Individual character metrics (index, width, bearings, ascent and descent) can be displayed at the top of the window by clicking on the desired character. The font name displayed at the top of the window is the full name of the font, as determined by the server. See xlsfonts for ways to generate lists of fonts, as well as more detailed summaries of their metrics and properties. OPTIONS xfd accepts all of the standard toolkit command line options along with the additional options listed below: -fn font This option specifies the core X server side font to be displayed. This can also be set with the FontGrid font resource. A font must be specified. -fa font This option specifies a Xft font to be displayed. This can also be set with the FontGrid face resource. A font pattern must be specified. -box This option indicates that a box should be displayed outlining the area that would be filled with background color by an ImageText request. This can also be set with the FontGrid boxChars resource. The default is False. -center This option indicates that each glyph should be centered in its grid. This can also be set with the FontGrid centerChars resource. The default is False. -start number This option specifies the glyph index of the upper left hand corner of the grid. This is used to view characters at arbitrary locations in the font. This can also be set with the FontGrid startChar resource. The default is 0. -bc color This option specifies the color to be used if ImageText boxes are drawn. This can also be set with the FontGrid boxColor resource. -rows numrows This option specifies the number of rows in the grid. This can also be set with the FontGrid cellRows resource. -columns numcols This option specifies the number of columns in the grid. This can also be set with the FontGrid cellColumns resource. WIDGETS In order to specify resources, it is useful to know the widgets which compose xfd. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. The application class name is Xfd. Xfd xfd Paned pane Label fontname Box box Command quit Command prev Command next Label select Label metrics Label range Label start Form form FontGrid grid FONTGRID RESOURCES The FontGrid widget is an application-specific widget, and a subclass of the Simple widget in the Athena widget set. The effects and instance names of this widget's resources are given in the OPTIONS section. Capitalize the first letter of the resource instance name to get the corresponding class name. APPLICATION SPECIFIC RESOURCES The instance names of the application specific resources are given below. Capitalize the first letter of the resource instance name to get the corresponding class name. These resources are unlikely to be interesting unless you are localizing xfd for a different language. selectFormat Specifies a printf-style format string used to display information about the selected character. The default is "character 0x%02x%02x (%u,%u) (%#o,%#o)". The arguments that will come after the format string are char.byte1, char.byte2, char.byte1, char.byte2, char.byte1, char.byte2. char.byte1 is byte 1 of the selected character. char.byte2 is byte 2 of the selected character. metricsFormat Specifies a printf-style format string used to display character metrics. The default is "width %d; left %d, right %d; ascent %d, descent %d (font %d, %d)". The arguments that will come after the format string are the character metrics width, lbearing, rbearing, character ascent, character descent, font ascent, and font descent. rangeFormat Specifies a printf-style format string used to display the range of characters currently being displayed. The default is "range: 0x%02x%02x (%u,%u) thru 0x%02x%02x (%u,%u)". The arguments that will come after the format string are the following fields from the XFontStruct that is returned from opening the font: min_byte1, min_char_or_byte2, min_byte1, min_char_or_byte2, max_byte1, max_char_or_byte2, max_byte1, max_char_or_byte2. startFormat Specifies a printf-style format string used to display information about the character at the upper left corner of the font grid. The default is "upper left: 0x%04x (%d,%d)". The arguments that will come after the format string are the new character, the high byte of the new character, and the low byte of the new character. nocharFormat Specifies a printf-style format string to display when the selected character does not exist. The default is "no such character 0x%02x%02x (%u,%u) (%#o,%#o)". The arguments that will come after the format string are the same as for the selectFormat resource. SEE ALSO X(7), xlsfonts(1), xrdb(1), xfontsel(1), fontconfig(3), X Logical Font Description Conventions BUGS The program should skip over pages full of non-existent characters. AUTHOR Jim Fulton, MIT X Consortium; previous program of the same name by Mark Lillibridge, MIT Project Athena. XFINDPROXY(1) XFINDPROXY(1) NAME xfindproxy - locate proxy services SYNOPSIS xfindproxy -manager managerAddr -name serviceName -server serverAddr [-auth] [-host hostAddr] [-options opts] DESCRIPTION xfindproxy is a program used to locate available proxy services. It utilizes the Proxy Management Protocol to communicate with a proxy manager. The proxy manager keeps track of all available proxy services, starts new proxies when necessary, and makes sure that proxies are shared whenever possible. The -manager argument is required, and it specifies the network address of the proxy manager. The format of the address is a standard ICE network id (for example, "tcp/blah.x.org:6500"). The -name argument is required, and it specifies the name of the desired proxy service (for example, "LBX"). The name is case insensitive. The -server argument is also required, and it specifies the address of the target server. The format of the address is specific to the proxy service specified with the -name argument. For example, for a proxy service of "LBX", the address would be an X display address (e.g, "blah.x.org:0"). The -auth argument is optional. If specified, xfindproxy will read 2 lines from standard input. The first line is an authorization/authentication name. The second line is the authorization/authentication data in hex format (the same format used by xauth). xfindproxy will pass this auth data to the proxy, and in most cases, will be used by the proxy to authorize/authenticate itself to the target server. The -host argument is optional. If xfindproxy starts a new proxy service, it will pass the host specified. The proxy may choose to restrict all connections to this host. In the event that xfindproxy locates an already existing proxy, the host will be passed, but the semantics of how the proxy uses this host are undefined. The -options argument is optional. If xfindproxy starts a new proxy service, it will pass any options specified. The semantics of the options are specific to each proxy server and are not defined here. In the event that xfindproxy locates an already existing proxy, the options will be passed, but the semantics of how the proxy uses these options are undefined. If xfindproxy is successful in obtaining a proxy address, it will print it to stdout. The format of the proxy address is specific to the proxy service being used. For example, for a proxy service of "LBX", the proxy address would be the X display address of the proxy (e.g, "blah.x.org:63"). If xfindproxy is unsuccessful in obtaining a proxy address, it will print an error to stderr. SEE ALSO proxymngr (1), Proxy Management Protocol spec V1.0 AUTHOR Ralph Mor, X Consortium XFONTSEL(1) XFONTSEL(1) NAME xfontsel - point and click selection of X11 font names SYNTAX xfontsel [-toolkitoption ...] [-pattern fontname] [-print] [-sample text] [-sample16 text16] [-sampleUCS textUCS] [-scaled] DESCRIPTION The xfontsel application provides a simple way to display the fonts known to your X server, examine samples of each, and retrieve the X Logical Font Description ("XLFD") full name for a font. If -pattern is not specified, all fonts with XLFD 14-part names will be selectable. To work with only a subset of the fonts, specify -pattern followed by a partially or fully qualified font name; e.g., ``-pattern *medium*'' will select that subset of fonts which contain the string ``medium'' somewhere in their font name. Be careful about escaping wildcard characters in your shell. If -print is specified on the command line the selected font specifier will be written to standard output when the quit button is activated. Regardless of whether or not -print was specified, the font specifier may be made the PRIMARY (text) selection by activating the select button. The -sample option specifies the sample text to be used to display the selected font if the font is linearly indexed, overriding the default. The -sample16 option specifies the sample text to be used to display the selected font if the font is matrix encoded, overriding the default. The -sampleUCS option specifies the sample text encoded in the UTF-8 form to be used to display the selected font if the font has a CHARSET_REGISTRY of ISO10646, overriding the default. The -scaled option enables the ability to select scaled fonts at arbitrary pixel or point sizes. INTERACTIONS Clicking any pointer button in one of the XLFD field names will pop up a menu of the currently-known possibilities for that field. If previous choices of other fields were made, only values for fonts which matched the previously selected fields will be selectable; to make other values selectable, you must deselect some other field(s) by choosing the ``*'' entry in that field. Unselectable values may be omitted from the menu entirely as a configuration option; see the ShowUnselectable resource, below. Whenever any change is made to a field value, xfontsel will assert ownership of the PRIMARY_FONT selection. Other applications (see, e.g., xterm) may then retrieve the selected font specification. Scalable fonts come back from the server with zero for the pixel size, point size, and average width fields. Selecting a font name with a zero in these positions results in an implementation-dependent size. Any pixel or point size can be selected to scale the font to a particular size. Any average width can be selected to anamorphically scale the font (although you may find this challenging given the size of the average width menu). Clicking the left pointer button in the select widget will cause the currently selected font name to become the PRIMARY text selection as well as the PRIMARY_FONT selection. This then allows you to paste the string into other applications. The select button remains highlighted to remind you of this fact, and de-highlights when some other application takes the PRIMARY selection away. The select widget is a toggle; pressing it when it is highlighted will cause xfontsel to release the selection ownership and de-highlight the widget. Activating the select widget twice is the only way to cause xfontsel to release the PRIMARY_FONT selection. RESOURCES The application class is XFontSel. Most of the user-interface is configured in the app-defaults file; if this file is missing a warning message will be printed to standard output and the resulting window will be nearly incomprehensible. Most of the significant parts of the widget hierarchy are documented in /usr/X11R6/lib/X11/app-defaults/XFontSel, Application specific resources: cursor (class Cursor) Specifies the cursor for the application window. pattern (class Pattern) Specifies the font name pattern for selecting a subset of available fonts. Equivalent to the -pattern option. Most useful patterns will contain at least one field delimiter; e.g. ``*-m-*'' for monospaced fonts. pixelSizeList (class PixelSizeList) Specifies a list of pixel sizes to add to the pixel size menu, so that scalable fonts can be selected at those pixel sizes. The default pixelSizeList contains 7, 30, 40, 50, and 60. pointSizeList (class PointSizeList) Specifies a list of point sizes (in units of tenths of points) to add to the point size menu, so that scalable fonts can be selected at those point sizes. The default pointSizeList contains 250, 300, 350, and 400. printOnQuit (class PrintOnQuit) If True the currently selected font name is printed to standard output when the quit button is activated. Equivalent to the -print option. sampleText (class Text) The sample 1-byte text to use for linearly indexed fonts. Each glyph index is a single byte, with newline separating lines. sampleText16 (class Text16) The sample 2-byte text to use for matrix-encoded fonts. Each glyph index is two bytes, with a 1-byte newline separating lines. scaledFonts (class ScaledFonts) If True then selection of arbitrary pixel and point sizes for scalable fonts is enabled. Widget specific resources: showUnselectable (class ShowUnselectable) Specifies, for each field menu, whether or not to show values that are not currently selectable, based upon previous field selections. If shown, the unselectable values are clearly identified as such and do not highlight when the pointer is moved down the menu. The full name of this resource is fieldN.menu.options.showUnselectable, class MenuButton.SimpleMenu.Options.ShowUnselectable; where N is replaced with the field number (starting with the left-most field numbered 0). The default is True for all but field 11 (average width of characters in font) and False for field 11. If you never want to see unselectable entries, '*menu.options.showUnselectable:False' is a reasonable thing to specify in a resource file. FILES $XFILESEARCHPATH/XFontSel SEE ALSO xrdb(1), xfd(1) BUGS Sufficiently ambiguous patterns can be misinterpreted and lead to an initial selection string which may not correspond to what the user intended and which may cause the initial sample text output to fail to match the proffered string. Selecting any new field value will correct the sample output, though possibly resulting in no matching font. Should be able to return a FONT for the PRIMARY selection, not just a STRING. Any change in a field value will cause xfontsel to assert ownership of the PRIMARY_FONT selection. Perhaps this should be parameterized. When running on a slow machine, it is possible for the user to request a field menu before the font names have been completely parsed. An error message indicating a missing menu is printed to stderr but otherwise nothing bad (or good) happens. The average-width menu is too large to be useful. COPYRIGHT Copyright 1989, 1991, X Consortium See X(7) for a full statement of rights and permissions. AUTHOR Ralph R. Swick, Digital Equipment Corporation/MIT Project Athena Mark Leisher added the support for the UTF-8 sample text. XFS(1) XFS(1) NAME xfs - X font server SYNOPSIS xfs [-config configuration_file] [-daemon] [-droppriv] [-ls listen_socket] [-nodaemon] [-port tcp_port] [-user username] DESCRIPTION Xfs is the X Window System font server. It supplies fonts to X Window System display servers. STARTING THE SERVER The server is usually run by a system administrator, and started via boot files like /etc/rc.local. Users may also wish to start private font servers for specific sets of fonts. OPTIONS -config configuration_file Specifies the configuration file the font server will use. If this parameter is not specified, the default file, /usr/X11R6/lib/X11/fs/config will be used. -ls listen_socket Specifies a file descriptor which is already set up to be used as the listen socket. This option is only intended to be used by the font server itself when automatically spawning another copy of itself to handle additional connections. -port tcp_port Specifies the TCP port number on which the server will listen for connections. The default port number is 7100. -daemon Instructs xfs to fork and go into the background automatically at startup If this option is not specified, xfs will run as a regular process (unless xfs was built to daemonize by default). -droppriv If specified, xfs will attempt to run as user and group xfs (unless the -user option is used). This has been implemented for security reasons, as xfs may have undiscovered buffer overflows or other paths for possible exploit, both local and remote. With this option, you may also wish to specify "no- listen = tcp" in the config file, which ensures that xfs will not to use a TCP port at all. -nodaemon When xfs is built to daemonize (run in the background) by default, this prevents that and starts xfs up as a regular process. -user username This is equivalent to -droppriv except that xfs will run as user username. SIGNALS SIGTERM This causes the font server to exit cleanly. SIGUSR1 This signal is used to cause the server to re-read its configuration file. SIGUSR2 This signal is used to cause the server to flush any cached data it may have. SIGHUP This signal is used to cause the server to reset, closing all active connections and re-reading the configuration file. CONFIGURATION The configuration language is a list of keyword and value pairs. Each keyword is followed by an '=' and then the desired value. Recognized keywords include: catalogue (list of string) Ordered list of font path element names. Use of the keyword "catalogue" is very misleading at present, the current implementation only supports a single catalogue ("all"), containing all of the specified fonts. alternate-servers (list of string) List of alternate servers for this font server. client-limit (cardinal) Number of clients this font server will support before refusing service. This is useful for tuning the load on each individual font server. clone-self (boolean) Whether this font server should attempt to clone itself when it reachs the client-limit. default-point-size (cardinal) The default pointsize (in decipoints) for fonts that don't specify. The default is 120. default-resolutions (list of resolutions) Resolutions the server supports by default. This information may be used as a hint for pre-rendering, and substituted for scaled fonts which do not specify a resolution. A resolution is a comma-separated pair of x and y resolutions in pixels per inch. Multiple resolutions are separated by commas. error-file (string) Filename of the error file. All warnings and errors will be logged here. no-listen (trans-type) Disable a transport type. For example, TCP/IP connections can be disabled with no-listen tcp port (cardinal) TCP port on which the server will listen for connections. use-syslog (boolean) Whether syslog(3) (on supported systems) is to be used for errors. deferglyphs (string) Set the mode for delayed fetching and caching of glyphs. Value is "none", meaning deferred glyphs is disabled, "all", meaning it is enabled for all fonts, and "16", meaning it is enabled only for 16-bits fonts. EXAMPLE # # sample font server configuration file # # allow a max of 10 clients to connect to this font server client-limit = 10 # when a font server reaches its limit, start up a new one clone-self = on # alternate font servers for clients to use alternate-servers = hansen:7101,hansen:7102 # where to look for fonts # the first is a set of Speedo outlines, the second is a set of # misc bitmaps and the last is a set of 100dpi bitmaps # catalogue = /usr/X11R6/lib/X11/fonts/speedo, /usr/X11R6/lib/X11/fonts/misc, /usr/X11R6/lib/X11/fonts/100dpi/ # in 12 points, decipoints default-point-size = 120 # 100 x 100 and 75 x 75 default-resolutions = 100,100,75,75 use-syslog = off FONT SERVER NAMES One of the following forms can be used to name a font server that accepts TCP connections: tcp/hostname:port tcp/hostname:port/cataloguelist The hostname specifies the name (or decimal numeric address) of the machine on which the font server is running. The port is the decimal TCP port on which the font server is listening for connections. The cataloguelist specifies a list of catalogue names, with '+' as a separator. Examples: tcp/fs.x.org:7100, tcp/18.30.0.212:7101/all. One of the following forms can be used to name a font server that accepts DECnet connections: decnet/nodename::font$objname decnet/nodename::font$objname/cataloguelist The nodename specifies the name (or decimal numeric address) of the machine on which the font server is running. The objname is a normal, case-insensitive DECnet object name. The cataloguelist specifies a list of catalogue names, with '+' as a separator. Examples: DECnet/SRVNOD::FONT$DEFAULT, decnet/44.70::font$special/symbols. SEE ALSO X(7), The X Font Service Protocol, Font server implementation overview BUGS Multiple catalogues should be supported. AUTHORS Dave Lemke, Network Computing Devices, Inc Keith Packard, Massachusetts Institute of Technology XFSINFO(1) XFSINFO(1) NAME xfsinfo - X font server information utility SYNOPSIS xfsinfo [-server servername] DESCRIPTION Xfsinfo is a utility for displaying information about an X font server. It is used to examine the capabilities of a server, the predefined values for various parameters used in communicating between clients and the server, and the font catalogues and alternate servers that are available. OPTIONS -server host:port This option specifies the X font server to contact. HISTORY Xfsinfo was originally called fsinfo. It was renamed to avoid a clash with the fsinfo utility from the Berkeley automounter amd. EXAMPLE The following shows a sample produced by xfsinfo. name of server: hansen:7100 version number: 1 vendor string: Font Server Prototype vendor release number: 17 maximum request size: 16384 longwords (65536 bytes) number of catalogues: 1 all Number of alternate servers: 2 #0 hansen:7101 #1 hansen:7102 number of extensions: 0 ENVIRONMENT FONTSERVER To get the default fontserver. SEE ALSO xfs(1), fslsfonts(1) AUTHOR Dave Lemke, Network Computing Devices, Inc XFWP(1) XFWP(1) NAME xfwp - X firewall proxy SYNOPSIS xfwp [option ...] COMMAND LINE OPTIONS The command line options that can be specified are: -cdt num_secs Used to override the default time-to-close (604800 seconds) for xfwp client data connections on which there is no activity (connections over which X protocol is already being relayed by xfwp) -clt num_secs Used to override the default time-to-close (86400 seconds) for xfwp client listen ports (ports on xfwp to which X clients first connect when trying to reach an X server) -pdt num_secs Used to override the default time-to-close (3600 seconds) for Proxy Manager connections on which there is no activity -config file_name Used to specify the configuration the name of the configuration file -pmport port_number Used to override the default port address (4444) for proxy manager connections -verify Used to display the configuration file rule that was actually matched for each service request -logfile file_name Used to specify the name of a file where audit information should be logged. The format of a logged entry is: time of day; event code; source IP address; destination IP address; and configuration rule number. The event codes are: "0" for a successful connection; "1" if a connection is denied because of a configuration rule; and "2" if a connection is denied because of an authorization failure. If the event code is "1", and a configuration file is used, the configuration rule number is the line number of the configuration file where the match was made (see the section CONFIGURATION FILE for more information). If the event code is not "1", or if no configuration file is used, the configuration rule number is "-1". -loglevel {0,1} Used to specify the amount of audit detail that should be logged. If "0", all connections are logged. If "1", only unsuccessful connections are logged. -max_pm_conns num_connections Used to specify the maximum number of Proxy Manager connections. The default is 10. -max_pm_conns num_connections Used to specify the maximum number of X server connections. The default is 100. DESCRIPTION The X firewall proxy (xfwp) is an application layer gateway proxy that may be run on a network firewall host to forward X traffic across the firewall. Used in conjunction with the X server Security extension and authorization checking, xfwp constitutes a safe, simple, and reliable mechanism both to hide the addresses of X servers located on the Intranet and to enforce a server connection policy. Xfwp cannot protect against mischief originating on the Intranet; however, when properly configured it can guarantee that only trusted clients originating on authorized external Internet hosts will be allowed inbound access to local X servers. To use xfwp there must be an X proxy manager running in the local environment which has been configured at start-up to know the location of the xfwp. [NOTE: There may be more than one xfwp running in a local environment; see notes below on load balancing for further discussion.] Using the xfindproxy utility (which relays its requests through the proxy manager) a user asks xfwp to allocate a client listen port for a particular X server, which is internally associated with all future connection requests for that server. This client listen port address is returned by the proxy manager through xfindproxy. The xfwp hostname and port number is then passed out-of-band (i.e., via a Web browser) to some remote X client, which will subsequently connect to xfwp instead of to the target X server. When an X client connection request appears on one of xfwp's listen ports, xfwp connects to the X server associated with this listen port and performs authorization checks against the server as well as against its own configurable access control list for requesting clients. If these checks fail, or if the requested server does not support the X Security Extension, the client connection is refused. Otherwise, the connection is accepted and all ensuing data between client and server is relayed by xfwp until the client terminates the connection or, in the case of an inactive client, until a configured timeout period is exceeded. Xfwp is designed to block while waiting for activity on its connections, thereby minimizing demand for system cycles. If xfwp is run without a configuration file and thus no sitepolicy is defined, if xfwp is using an X server where xhost + has been run to turn off host-based authorization checks, when a client tries to connect to this X server via xfwp, the X server will deny the connection. If xfwp does not define a sitepolicy, host-based authorization must be turned on for clients to connect to an X server via the xfwp. INTEROPERATION WITH IP PACKET-FILTERING ROUTERS The whole purpose of the xfwp is to provide reliable control over access to Intranet X servers by clients originating outside the firewall. At the present time, such access control is typically achieved by firewall configurations incorporating IP packet-filtering routers. Frequently, the rules for such filters deny access to X server ports (range 6000 - 6xxx) for all Intranet host machines. In order for xfwp to do its job, restrictions on access for ports 6001 - 6xxx must be removed from the rule-base of the IP packet-filtering router. [NOTE: xfwp only assigns ports in the range beginning with 6001; access to port 6000 on all Intranet hosts may continue to be denied.] This does not mean the Intranet firewall will be opened for indiscriminate entry by X clients. Instead, xfwp supports a fully configurable rule-based access control system, similar to that of the IP packet-filter router itself. Xfwp in effect adds another level of packet-filtering control which is fully configurable and applies specifically to X traffic. See section entitled CONFIGURATION FILE, below, for further details. INSTALLATION, SETUP AND TROUBLESHOOTING Xfwp is typically run as a background process on the Intranet firewall host. It can be launched using any of the command-line options described above. As noted above, xfwp works only in conjunction with proxy manager and the xfindproxy utility. It can also be configured to support a user-defined X server site security policy, in which the X server is required to indicate to xfwp whether or not it supports the particular policy. Consult the X server man pages for further information on these components. Xfwp diagnostics can be turned on by compiling with the -DDEBUG switch. Connection status can be recorded by using the -logfile and -loglevel command line options. PERFORMANCE, LOAD BALANCING AND RESOURCE MANAGEMENT Xfwp manages four different kinds of connections: proxy manager (PM) data, X client listen, X client data, and X server. The sysadmin employing xfwp must understand how the resources for each of these connection types are allocated and reclaimed by xfwp in order to optimize the availability of xfwp service. Each connection-type has a default number of allocation slots and a default timeout. The number of allocation slots for PM connections and X server connections is configurable via command line options. Connection timeouts are also configurable via command line options. Each connection timeout represents the period the connection will be allowed to remain open in the absence of any activity on that connection. Whenever there is activity on a connection, the time-to- close is automatically reset. The default distribution of total process connection slots across the four connection types, as well as the choice of default timeouts for the connection types, is governed by a number of assumptions embedded in the xfwp use model. The default number of PM connections is 10 and the default duration for PM connections is 3,600 seconds (1 hour) for each connection after time of last activity. At start-up, xfwp listens for PM connection requests on any non-reserved port (default of 4444 if not specified on the xfwp command-line). The PM normally connects to xfwp only when a call is made to the PM with xfindproxy. Thereafter, the PM remains connected to xfwp, even after the messaging between them has been completed, for the default connection duration period. In some cases this may result in depletion of available PM connection slots. If the sysadmin expects connections to a single xfwp from many PM's, xfwp should be started using the -pdt command line option, with a timeout value reflecting the desired duration that inactive connections will be permitted to remain open. Xfwp client listeners are set up by a call to xfindproxy and continue to listen for X client connection requests for a default duration of 86,400 seconds (24 hours) from the point of last activity. After this time they are automatically closed and their fd's recovered for future allocation. In addressing the question of how to choose some alternative timeout value which will guarantee the availability of client listen ports, sysadmins should take into consideration the expected delay between the time when the listener was allocated (using xfindproxy) and the time when a client actually attempts to connect to xfwp, as well the likelihood that client listeners will be re-used after the initial client data connection is closed. Each client connection is allocated a default lifetime of 604,800 seconds (7 * 24 hours) from the point when it last saw activity. After this time it is automatically closed and its fd's recovered for future allocation. Because server connections are not actually established until a connection request from a remote X client arrives at one of the xfwp's client listen ports, the client data timeout applies both to client-xfwp connections as well as to xfwp-server connections. If the system administrator expects many client data connections through xfwp, an overriding of the default timeout should be considered. CONFIGURATION FILE The xfwp configuration file resides on the xfwp host machine and is used to determine whether X client data connection requests will be permitted or denied. The path to the file is specified at start-up time. If no configuration file is specified, all X client data connection requests routed through xfwp will be by default permitted, assuming that other X server authorization checks are successful. If a configuration file is supplied but none of its entries matches the connection request then the connection is by default denied. If a line in the configuration file begins with the '#' character or a new-line character, the line is ignored and the evaluator will skip the line. The configuration file supports two entirely independent authorization checks: one which is performed by xfwp itself, and a second which is the result of xfwp's querying the target X server. For the first of these, the configuration file employs a syntax and semantic similar to that of IP packet-filtering routers. It contains zero or more source- destination rules of the following form: {permit | deny} [ [ ]] permit/deny the keywords ``permit'' or ``deny'' indicate whether the rule will enable or disable access, respectively src the IP address against the host who originated the connection request will be matched, expressed in IP format (x.x.x.x) src mask a subnet mask, also in IP format, for further qualifying the source mask. Bits set in the mask indicate bits of the incoming address to be ignored when comparing to the specified src dest the IP address against which the destination of the incoming connection request (i.e. the host IP of the X server to which the incoming client is attempting to connect) will be matched dest mask a subnet mask, also in IP format, for further qualifying the destination mask. Bits set in the mask indicate bits of the destination address to be ignored when comparing to the specified dest operator always ``eq'' (if the service field is not NULL) service one of the following three strings: ``pm'', ``fp'', or ``cd'', corresponding to proxy manager, xfindproxy, or client data, respectively For the second type of authorization check, the configuration file contains zero or more site policy rules of the following form: {require | disallow} sitepolicy require specifies that the X server must be configured with at least one of the corresponding site policies, else it must refuse the connection. disallow specifies that the X server must not be configured with any of the corresponding site policies, else it must refuse the connection. sitepolicy a required keyword specifies the policy string. The string may contain any combination of alphanumeric characters subject only to interpretation by the target X server RULES FOR EVALUATING THE XFWP CONFIGURATION FILE ENTRIES For the first type of configurable authorization checking, access can be permitted or denied for each connection type based upon source and, optionally, destination and service. Each file entry must at a minimum specify the keyword ``permit'' or ``deny'' and the two source fields. The destination and service fields can be used to provide finer-grained access control if desired. The algorithm for rule-matching is as follows: while (more entries to check) { if (( AND (NOT )) == src) [if (( AND (NOT )) == dest)] [if (service fields present and matching)] do either permit or deny connection depending on keyword else continue } if (no rule matches) deny connection If a permit or deny rule does not specify a service and operation, then the rule applies to all services. If a configuration file is specified and it contains at least one valid deny or permit rule, then a host that is not explicitly permitted will be denied a connection. Site policy configuration checking constitutes a separate (and X server only) authorization check on incoming connection requests. Any number of require or disallow rules may be specified, but all rules must be of the same type; that is, a single rule file cannot have both ``require'' and ``disallow'' keywords. The algorithm for this check is as follows: if (X server recognizes any of the site policy strings) if (keyword == require) permit connection else deny connection else if (keyword == require) deny connection else permit connection The site policy check is performed by xfwp only if the source- destination rules permit the connection. EXAMPLES # if and only if server supports one of these policies then authorize # connections, but still subject to applicable rule matches # require sitepolicy policy1 require sitepolicy policy2 # # deny pm connections originating on 8.7.6.5 [NOTE: If pm service # is explicitly qualified, line must include destination fields as # shown.] # deny 8.7.6.5 0.0.0.0 0.0.0.0 255.255.255.255 eq pm # # permit xfindproxy X server connects to anywhere [NOTE: If # fp service is explicitly qualified, line must include source fields # as shown.] # permit 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq fp # # permit all connection types originating from the 192.0.0.0 # IP domain only # permit 192.0.0.0 0.255.255.255 Care should be taken that source-destination rules are written in the correct order, as the first matching rule will be applied. In addition to parser syntax checking, a special command-line switch (-verify) has been provided to assist the sysadmin in determining which rule was actually matched. BUGS Xfwp should check server site policy and security extension before allocating a listen port. SEE ALSO xfindproxy (1), Proxy Management Protocol spec V1.0, proxymngr(1), Xserver(1) AUTHOR Reed Augliere, consulting to X Consortium, Inc. xgamma(1) xgamma(1) NAME xgamma - Alter a monitor's gamma correction for XFree86 SYNOPSIS xgamma [-display display] [-screen screen] [-quiet] [-gamma f.f | [[-rgamma f.f] [-ggamma f.f] [-bgamma f.f]]] DESCRIPTION xgamma allows X users to query and alter the gamma correction of a monitor via the XFree86 X server video mode extension (XFree86-VidModeExtension). OPTIONS -display display This argument allows you to specify the server to connect to; see X(7). -screen screen When multiple displays are configured as a single logical display, this option allows you to select the screen you wish to change. -quiet Silence the normal output of xgamma -help Print out the `Usage:' command syntax summary. -gamma f.f The gamma correction can either be defined as a single value, or separately for the red, green and blue components. This argument specifies the gamma correction as a single value. If no value for the gamma correction is given xgamma returns the current gamma correction of the display. -rgamma f.f This argument specifies the red component of the gamma correction. -ggamma f.f This argument specifies the green component of the gamma correction. -bgamma f.f This argument specifies the blue component of the gamma correction. ENVIRONMENT DISPLAY To get default host and display number. BUGS This client changes the internal values of the gamma correction for the Xserver. Whether or not these values are respected depends on the video drivers. The gamma values are passed to the Xserver with 3 decimal places of accuracy. SEE ALSO xvidtune(1) AUTHORS Kaleb S. Keithley, X Consortium. David Dawes, David Bateman XGC(1) XGC(1) NAME xgc - X graphics demo SYNOPSIS xgc [-toolkitoption ...] DESCRIPTION The xgc program demonstrates various features of the X graphics primitives. Try the buttons, see what they do; we haven't the time to document them, perhaps you do? OPTIONS Xgc accepts all of the standard X Toolkit command line options. X DEFAULTS This program accepts the usual defaults for toolkit applications. ENVIRONMENT DISPLAY to get the default host and display number. XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. SEE ALSO X(7) BUGS This program isn't really finished yet. See X(7) for a full statement of rights and permissions. AUTHORS Dan Schmidt, MIT XHOST(1) XHOST(1) NAME xhost - server access control program for X SYNOPSIS xhost [[+-]name ...] DESCRIPTION The xhost program is used to add and delete host names or user names to the list allowed to make connections to the X server. In the case of hosts, this provides a rudimentary form of privacy control and security. It is only sufficient for a workstation (single user) environment, although it does limit the worst abuses. Environments which require more sophisticated measures should implement the user- based mechanism or use the hooks in the protocol for passing other authentication data to the server. OPTIONS Xhost accepts the following command line options described below. For security, the options that effect access control may only be run from the "controlling host". For workstations, this is the same machine as the server. For X terminals, it is the login host. -help Prints a usage message. [+]name The given name (the plus sign is optional) is added to the list allowed to connect to the X server. The name can be a host name or a user name. -name The given name is removed from the list of allowed to connect to the server. The name can be a host name or a user name. Existing connections are not broken, but new connection attempts will be denied. Note that the current machine is allowed to be removed; however, further connections (including attempts to add it back) will not be permitted. Resetting the server (thereby breaking all connections) is the only way to allow local connections again. + Access is granted to everyone, even if they aren't on the list (i.e., access control is turned off). - Access is restricted to only those on the list (i.e., access control is turned on). nothing If no command line arguments are given, a message indicating whether or not access control is currently enabled is printed, followed by the list of those allowed to connect. This is the only option that may be used from machines other than the controlling host. NAMES A complete name has the syntax ``family:name'' where the families are as follows: inet Internet host (IPv4) inet6 Internet host (IPv6) dnet DECnet host nis Secure RPC network name krb Kerberos V5 principal local contains only one name, the empty string The family is case insensitive. The format of the name varies with the family. When Secure RPC is being used, the network independent netname (e.g., "nis:unix.uid@domainname") can be specified, or a local user can be specified with just the username and a trailing at-sign (e.g., "nis:pat@"). For backward compatibility with pre-R6 xhost, names that contain an at- sign (@) are assumed to be in the nis family. Otherwise they are assumed to be Internet addresses. If compiled to support IPv6, then all IPv4 and IPv6 addresses returned by getaddrinfo(3) are added to the access list in the appropriate inet or inet6 family. DIAGNOSTICS For each name added to the access control list, a line of the form "name being added to access control list" is printed. For each name removed from the access control list, a line of the form "name being removed from access control list" is printed. FILES /etc/X*.hosts SEE ALSO X(7), Xsecurity(7), Xserver(1), xdm(1), getaddrinfo(3) ENVIRONMENT DISPLAY to get the default host and display to use. BUGS You can't specify a display on the command line because -display is a valid command line argument (indicating that you want to remove the machine named ``display'' from the access list). The X server stores network addresses, not host names. This is not really a bug. If somehow you change a host's network address while the server is still running, xhost must be used to add the new address and/or remove the old address. AUTHORS Bob Scheifler, MIT Laboratory for Computer Science, Jim Gettys, MIT Project Athena (DEC). XINIT(1) XINIT(1) NAME xinit - X Window System initializer SYNOPSIS xinit [ [ client ] options ] [ -- [ server ] [ display ] options ] DESCRIPTION The xinit program is used to start the X Window System server and a first client program on systems that cannot start X directly from /etc/init or in environments that use multiple window systems. When this first client exits, xinit will kill the X server and then terminate. If no specific client program is given on the command line, xinit will look for a file in the user's home directory called .xinitrc to run as a shell script to start up client programs. If no such file exists, xinit will use the following as a default: xterm -geometry +1+1 -n login -display :0 If no specific server program is given on the command line, xinit will look for a file in the user's home directory called .xserverrc to run as a shell script to start up the server. If no such file exists, xinit will use the following as a default: X :0 Note that this assumes that there is a program named X in the current search path. However, servers are usually named Xdisplaytype where displaytype is the type of graphics display which is driven by this server. The site administrator should, therefore, make a link to the appropriate type of server on the machine, or create a shell script that runs xinit with the appropriate server. Note, when using a .xserverrc script be sure to ``exec'' the real X server. Failing to do this can make the X server slow to start and exit. For example: exec Xdisplaytype An important point is that programs which are run by .xinitrc should be run in the background if they do not exit right away, so that they don't prevent other programs from starting up. However, the last long- lived program started (usually a window manager or terminal emulator) should be left in the foreground so that the script won't exit (which indicates that the user is done and that xinit should exit). An alternate client and/or server may be specified on the command line. The desired client program and its arguments should be given as the first command line arguments to xinit. To specify a particular server command line, append a double dash (--) to the xinit command line (after any client and arguments) followed by the desired server command. Both the client program name and the server program name must begin with a slash (/) or a period (.). Otherwise, they are treated as an arguments to be appended to their respective startup lines. This makes it possible to add arguments (for example, foreground and background colors) without having to retype the whole command line. If an explicit server name is not given and the first argument following the double dash (--) is a colon followed by a digit, xinit will use that number as the display number instead of zero. All remaining arguments are appended to the server command line. EXAMPLES Below are several examples of how command line arguments in xinit are used. xinit This will start up a server named X and run the user's .xinitrc, if it exists, or else start an xterm. xinit -- /usr/X11R6/bin/Xqdss :1 This is how one could start a specific type of server on an alternate display. xinit -geometry =80x65+10+10 -fn 8x13 -j -fg white -bg navy This will start up a server named X, and will append the given arguments to the default xterm command. It will ignore .xinitrc. xinit -e widgets -- ./Xsun -l -c This will use the command .Xsun -l -c to start the server and will append the arguments -e widgets to the default xterm command. xinit /usr/ucb/rsh fasthost cpupig -display ws:1 -- :1 -a 2 -t 5 This will start a server named X on display 1 with the arguments -a 2 -t 5. It will then start a remote shell on the machine fasthost in which it will run the command cpupig, telling it to display back on the local workstation. Below is a sample .xinitrc that starts a clock, several terminals, and leaves the window manager running as the ``last'' application. Assuming that the window manager has been configured properly, the user then chooses the ``Exit'' menu item to shut down X. xrdb -load $HOME/.Xresources xsetroot -solid gray & xclock -g 50x50-0+0 -bw 0 & xload -g 50x50-50+0 -bw 0 & xterm -g 80x24+0+0 & xterm -g 80x24+0-0 & twm Sites that want to create a common startup environment could simply create a default .xinitrc that references a site-wide startup file: #!/bin/sh . /usr/local/lib/site.xinitrc Another approach is to write a script that starts xinit with a specific shell script. Such scripts are usually named x11, xstart, or startx and are a convenient way to provide a simple interface for novice users: #!/bin/sh xinit /usr/local/lib/site.xinitrc -- /usr/X11R6/bin/X bc ENVIRONMENT VARIABLES DISPLAY This variable gets set to the name of the display to which clients should connect. XINITRC This variable specifies an init file containing shell commands to start up the initial windows. By default, .xinitrc in the home directory will be used. FILES .xinitrc default client script xterm client to run if .xinitrc does not exist .xserverrc default server script X server to run if .xserverrc does not exist SEE ALSO X(7), startx(1), Xserver(1), xterm(1) AUTHOR Bob Scheifler, MIT Laboratory for Computer Science XKBCOMP(1) XKBCOMP(1) NAME xkbcomp - compile XKB keyboard description SYNOPSIS xkbcomp [option] source [ destination ] DESCRIPTION The xkbcomp keymap compiler converts a description of an XKB keymap into one of several output formats. The most common use for xkbcomp is to create a compiled keymap file (.xkm extension) which can be read directly by XKB-capable X servers or utilities. The keymap compiler can also produce C header files or XKB source files. The C header files produced by xkbcomp can be included by X servers or utilities that need a built-in default keymap. The XKB source files produced by xkbcomp are fully resolved and can be used to verify that the files which typically make up an XKB keymap are merged correctly or to create a single file which contains a complete description of the keymap. The source may specify an X display, or an .xkb or .xkm file; unless explicitly specified, the format of destination depends on the format of the source. Compiling a .xkb (keymap source) file generates a .xkm (compiled keymap file) by default. If the source is a .xkm file or an X display, xkbcomp generates a keymap source file by default. If the destination is an X display, the keymap for the display is updated with the compiled keymap. The name of the destination is usually computed from the name of the source, with the extension replaced as appropriate. When compiling a single map from a file which contains several maps, xkbcomp constructs the destination file name by appending an appropriate extension to the name of the map to be used. OPTIONS -a Show all keyboard information, reporting implicit or derived information as a comment. Only affects .xkb format output. -C Produce a C header file as output (.h extension). -dflts Compute defaults for any missing components, such as key names. -Idir Specifies top-level directories to be searched for files included by the keymap description. After all directories specified by -I options have been searched, the current directory and finally, the default xkb directory (usually /usr/X11R6/lib/X11/xkb) will be searched. To prevent the current and default directories from being searched, use the -I option alone (i.e. without a directory), before any -I options that specify the directories you do want searched. -l List maps that specify the map pattern in any files listed on the command line (not implemented yet). -m name Specifies a map to be compiled from an file with multiple entries. -merge Merge the compiled information with the map from the server (not implemented yet). -o name Specifies a name for the generated output file. The default is the name of the source file with an appropriate extension for the output format. -opt parts Specifies a list of optional parts. Compilation errors in any optional parts are not fatal. Parts may consist of any combination of the letters c, g,k,s,t which specify the compatibility map, geometry, keycodes, symbols and types, respectively. -Rdir Specifies the root directory for relative path names. -synch Force synchronization for X requests. -w lvl Controls the reporting of warnings during compilation. A warning level of 0 disables all warnings; a warning level of 10 enables them all. -xkb Generate a source description of the keyboard as output (.xkb extension). -xkm Generate a compiled keymap file as output (.xkm extension). SEE ALSO X(7) COPYRIGHT Copyright 1994, Silicon Graphics Computer Systems and X Consortium, Inc. See X(7) for a full statement of rights and permissions. AUTHOR Erik Fortune, Silicon Graphics XKBCOMP(1) XKBCOMP(1) NAME xkbevd - XKB event daemon SYNOPSIS xkbevd [ options ] DESCRIPTION This command is very raw and is therefore only partially implemented; we present it here as a rough prototype for developers, not as a general purpose tool for end users. Something like this might make a suitable replacement for xev; I'm not signing up, mind you, but it's an interesting idea. The xkbevd event daemon listens for specified XKB events and executes requested commands if they occur. The configuration file consists of a list of event specification/action pairs and/or variable definitions. An event specification consists of a short XKB event name followed by a string or identifier which serves as a qualifier in parentheses; empty parenthesis indicate no qualification and serve to specify the default command which is applied to events which do not match any of the other specifications. The interpretation of the qualifier depends on the type of the event: Bell events match using the name of the bell, message events match on the contents of the message string and slow key events accept any of press, release, accept, or reject. No other events are currently recognized. An action consists of an optional keyword followed by an optional string argument. Currently, xkbev recognizes the actions: none, ignore, echo, printEvent, sound, and shell. If the action is not specified, the string is taken as the name of a sound file to be played unless it begins with an exclamation point, in which case it is taken as a shell command. Variable definitions in the argument string are expanded with fields from the event in question before the argument string is passed to the action processor. The general syntax for a variable is either $cP or $(str), where c is a single character and str is a string of arbitrary length. All parameters have both single-character and long names. The list of recognized parameters varies from event to event and is too long to list here right now. This is a developer release anyway, so you can be expected to look at the source code (evargs.c is of particular interest). The ignore, echo, printEvent, sound,and shell actions do what you would expect commands named ignore, echo, printEvent, sound, and shell to do, except that the sound command has only been implemented and tested for SGI machines. It launches an external program right now, so it should be pretty easy to adapt, especially if you like audio cues that arrive about a half-second after you expect them. The only currently recognized variables are soundDirectory and soundCmd. I'm sure you can figure out what they do. OPTIONS -help Prints a usage message that is far more up-to-date than anything in this man page. -cfg file Specifies the configuration file to read. If no configuration file is specified, xkbevd looks for ~/.xkb/xkbevd.cf and $(LIBDIR)/xkb/xkbevd.cf in that order. -sc cmd Specifies the command used to play sounds. -sd directory Specifies a top-level directory for sound files. -display display Specifies the display to use. If not present, xkbevd uses $DISPLAY. -bg Tells xkbevd to fork itself (and run in the background). -synch Forces synchronization of all X requests. Slow. -v Print more information, including debugging messages. Multiple specifications of -v cause more output, to a point. SEE ALSO X(7) COPYRIGHT Copyright 1995, Silicon Graphics Computer Systems Copyright 1995, 1998 The Open Group See X(7) for a full statement of rights and permissions. AUTHOR Erik Fortune, Silicon Graphics XKBPRINT(1) XKBPRINT(1) NAME xkbprint - print an XKB keyboard description SYNOPSIS xkbprint [options] source [ output_file ] DESCRIPTION The xkbprint comman generates a printable or encapsulated PostScript description of the XKB keyboard description specified by source. The source can be any compiled keymap (.xkm) file that includes a geometry description or an X display specification. If an output_file is specified, xkbprint writes to it. If no output file is specified, xkbprint creates replaces the extension of the source file with .ps or .eps depending on the requested format. If the source is a non-local X display (e.g.:0), xkbprint appends the appropriate prefix to the display specification, replacing the colon with a dash. For a local display, xkprint uses server-n where n is the number of the display. OPTIONS -?, -help Prints a usage message. -color Print using the colors specified in the geometry file; by default, xkbprint prints a black-and-white image of the keyboard. -dflts Attempt to compute default names for any missing components, such as keys. -diffs Show symbols only where they are explicitly bound. -eps Generate an encapsulated PostScript file. -fit Fit the keyboard image on the page (default). -full Print the keyboard at full size. -grid res Print a grid with resmm resolution over the keyboard. -if fontName Specifies an internal PostScript type 1 font to dump to the specified output file or to fontName.pfa, if no output file is specified. No keyboard description is printed if an internal font is dumped. -label type Specifies the labels to be printed on keys; legal types are: none, name,code,symbols. -lc Specifies a locale in which KeySyms should be resolved. -level1 Generate level 1 PostScript. -level2 Generate level 2 PostScript. -lg group Print symbols in keyboard groups starting from group. -ll level Print symbols starting from shift level level. -mono Generate black-and-white image of keyboard (default). -n num Print num copies. -nkg num Print the symbols in num keyboard groups. -npk num Number of keyboard images to print on each page; for EPS files, this specifies the total number of keyboard images to print. -o file Write output to file. -Rdirectory Use directory as the root directory; all path names are interpreted relative to directory. -pict which Controls use of pictographs instead of keysym names where available. which can be any of all, none, or common(default). -synch Forces synchronization for X requests. -w level Sets warning level (0 for no warning, 10 for all warnings). SEE ALSO X(7),xkbcomp(1) COPYRIGHT Copyright 1995, Silicon Graphics Computer Systems Copyright 1995, 1998 The Open Group See X(7) for a full statement of rights and permissions. AUTHOR Erik Fortune, Silicon Graphics XKILL(1) XKILL(1) NAME xkill - kill a client by its X resource SYNOPSIS xkill [-display displayname] [-id resource] [-button number] [-frame] [-all] DESCRIPTION Xkill is a utility for forcing the X server to close connections to clients. This program is very dangerous, but is useful for aborting programs that have displayed undesired windows on a user's screen. If no resource identifier is given with -id, xkill will display a special cursor as a prompt for the user to select a window to be killed. If a pointer button is pressed over a non-root window, the server will close its connection to the client that created the window. OPTIONS -display displayname This option specifies the name of the X server to contact. -id resource This option specifies the X identifier for the resource whose creator is to be aborted. If no resource is specified, xkill will display a special cursor with which you should select a window to be kill. -button number This option specifies the number of pointer button that should be used in selecting a window to kill. If the word "any" is specified, any button on the pointer may be used. By default, the first button in the pointer map (which is usually the leftmost button) is used. -all This option indicates that all clients with top-level windows on the screen should be killed. Xkill will ask you to select the root window with each of the currently defined buttons to give you several chances to abort. Use of this option is highly discouraged. -frame This option indicates that xkill should ignore the standard conventions for finding top-level client windows (which are typically nested inside a window manager window), and simply believe that you want to kill direct children of the root. CAVEATS This command does not provide any warranty that the application whose connection to the X server is closed will abort nicely, or even abort at all. All this command does is to close the connection to the X server. Many existing applications do indeed abort when their connection to the X server is closed, but some can choose to continue. XDEFAULTS Button Specifies a specific pointer button number or the word "any" to use when selecting windows. SEE ALSO X(7), xwininfo(1), XKillClient and XGetPointerMapping in the Xlib Programmers Manual, KillClient in the X Protocol Specification AUTHOR Jim Fulton, MIT X Consortium Dana Chee, Bellcore XLOAD(1) XLOAD(1) NAME xload - system load average display for X SYNOPSIS xload [-toolkitoption ...] [-scale integer] [-update seconds] [-hl color] [-highlight color] [-remote host] [-jumpscroll pixels] [-label string] [-nolabel] [-lights] DESCRIPTION The xload program displays a periodically updating histogram of the system load average. OPTIONS Xload accepts all of the standard X Toolkit command line options (see X(7)). The order of the options in unimportant. xload also accepts the following additional options: -hl color or -highlight color This option specifies the color of the scale lines. -jumpscroll number of pixels The number of pixels to shift the graph to the left when the graph reaches the right edge of the window. The default value is 1/2 the width of the current window. Smooth scrolling can be achieved by setting it to 1. -label string The string to put into the label above the load average. -nolabel If this command line option is specified then no label will be displayed above the load graph. -lights When specified, this option causes xload to display the current load average by using the keyboard leds; for a load average of n, xload lights the first n keyboard leds. This option turns off the usual screen display. -scale integer This option specifies the minimum number of tick marks in the histogram, where one division represents one load average point. If the load goes above this number, xload will create more divisions, but it will never use fewer than this number. The default is 1. -update seconds This option specifies the interval in seconds at which xload updates its display. The minimum amount of time allowed between updates is 1 second. The default is 10. -remote host This option tells xload to display the load of host instead of localhost. Xload gets the information from the rwhod database and consequently requires rwhod to be executing both on localhost and host. RESOURCES In addition to the resources available to each of the widgets used by xload there is one resource defined by the application itself. showLabel (class Boolean) If False then no label will be displayed. WIDGETS In order to specify resources, it is useful to know the hierarchy of the widgets which compose xload. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. XLoad xload Paned paned Label label StripChart load ENVIRONMENT DISPLAY to get the default host and display number. XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. FILES /usr/X11R6/lib/X11/app-defaults/XLoad specifies required resources SEE ALSO X(7), xrdb(1), mem(4), Athena StripChart Widget. BUGS This program requires the ability to open and read the special system file /dev/kmem. Sites that do not allow general access to this file should make xload belong to the same group as /dev/kmem and turn on the set group id permission flag. Reading /dev/kmem is inherently non-portable. Therefore, the routine used to read it (get_load.c) must be ported to each new operating system. COPYRIGHT Copyright (C) X Consortium See X(7) for a full statement of rights and permissions. AUTHORS K. Shane Hartman (MIT-LCS) and Stuart A. Malone (MIT-LCS); with features added by Jim Gettys (MIT-Athena), Bob Scheifler (MIT- LCS), Tony Della Fera (MIT-Athena), and Chris Peterson (MIT-LCS). DG/UX support by Takis Psarogiannakopoulos (XFree86 Project). XLOGO(1) XLOGO(1) NAME xlogo - X Window System logo SYNOPSIS xlogo [-toolkitoption ...] DESCRIPTION The xlogo program displays the X Window System logo. OPTIONS Xlogo accepts all of the standard X Toolkit command line options, as well as the following: -render This option indicates that the logo should be drawn with anti- aliased edges using the RENDER extension. -sharp If -render is also specified, this forces the edges to be rendered in sharp mode, (ie. 1-bit alpha channel). -shape This option indicates that the logo window should be shaped rather than rectangular. RESOURCES The default width and the default height are each 100 pixels. This program uses the Logo widget in the Athena widget set. It understands all of the Simple widget resource names and classes as well as: foreground (class Foreground) Specifies the color for the logo. The default is depends on whether reverseVideo is specified. If reverseVideo is specified the default is XtDefaultForeground, otherwise the default is XtDefaultBackground. shapeWindow (class ShapeWindow) Specifies that the window is shaped to the X logo. The default is False. WIDGETS In order to specify resources, it is useful to know the hierarchy of the widgets which compose xlogo. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. XLogo xlogo Logo xlogo ENVIRONMENT DISPLAY to get the default host and display number. XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. FILES /usr/X11R6/lib/X11/app-defaults/XLogo specifies required resources SEE ALSO X(7), xrdb(1) AUTHORS Ollie Jones of Apollo Computer and Jim Fulton of the MIT X Consortium wrote the logo graphics routine, based on a graphic design by Danny Chong and Ross Chapman of Apollo Computer. XLSATOMS(1) XLSATOMS(1) NAME xlsatoms - list interned atoms defined on server SYNOPSIS xlsatoms [-options ...] DESCRIPTION Xlsatoms lists the interned atoms. By default, all atoms starting from 1 (the lowest atom value defined by the protocol) are listed until unknown atom is found. If an explicit range is given, xlsatoms will try all atoms in the range, regardless of whether or not any are undefined. OPTIONS -display dpy This option specifies the X server to which to connect. -format string This option specifies a printf-style string used to list each atom pair, printed in that order (value is an unsigned long and name is a char *). Xlsatoms will supply a newline at the end of each line. The default is %ld\t%s. -range [low]-[high] This option specifies the range of atom values to check. If low is not given, a value of 1 assumed. If high is not given, xlsatoms will stop at the first undefined atom at or above low. -name string This option specifies the name of an atom to list. If the atom does not exist, a message will be printed on the standard error. SEE ALSO X(7), Xserver(1), xprop(1) ENVIRONMENT DISPLAY to get the default host and display to use. AUTHOR Jim Fulton, MIT X Consortium XLSCLIENTS(1) XLSCLIENTS(1) NAME xlsclients - list client applications running on a display SYNOPSIS xlsclients [-display displayname] [-a] [-l] [-m maxcmdlen] DESCRIPTION Xlsclients is a utility for listing information about the client applications running on a display. It may be used to generate scripts representing a snapshot of the user's current session. OPTIONS -display displayname This option specifies the X server to contact. -a This option indicates that clients on all screens should be listed. By default, only those clients on the default screen are listed. -l List in long format, giving the window name, icon name, and class hints in addition to the machine name and command string shown in the default format. -m maxcmdlen This option specifies the maximum number of characters in a command to print out. The default is 10000. ENVIRONMENT DISPLAY To get the default host, display number, and screen. SEE ALSO X(7), xwininfo(1), xprop(1) AUTHOR Jim Fulton, MIT X Consortium XLSFONTS(1) XLSFONTS(1) NAME xlsfonts - server font list displayer for X SYNOPSIS xlsfonts [-options ...] [-fn pattern] DESCRIPTION Xlsfonts lists the fonts that match the given pattern. The wildcard character "*" may be used to match any sequence of characters (including none), and "?" to match any single character. If no pattern is given, "*" is assumed. The "*" and "?" characters must be quoted to prevent them from being expanded by the shell. OPTIONS -display host:dpy This option specifies the X server to contact. -l Lists some attributes of the font on one line in addition to its name. -ll Lists font properties in addition to -l output. -lll Lists character metrics in addition to -ll output. -m This option indicates that long listings should also print the minimum and maximum bounds of each font. -C This option indicates that listings should use multiple columns. This is the same as -n 0. -1 This option indicates that listings should use a single column. This is the same as -n 1. -w width This option specifies the width in characters that should be used in figuring out how many columns to print. The default is 79. -n columns This option specifies the number of columns to use in displaying the output. By default, it will attempt to fit as many columns of font names into the number of character specified by -w width. -u This option indicates that the output should be left unsorted. -o This option indicates that xlsfonts should do an OpenFont (and QueryFont, if appropriate) rather than a ListFonts. This is useful if ListFonts or ListFontsWithInfo fail to list a known font (as is the case with some scaled font systems). -fn pattern This option specifies the font name pattern to match. SEE ALSO X(7), Xserver(1), xset(1), xfd(1), X Logical Font Description Conventions ENVIRONMENT DISPLAY to get the default host and display to use. BUGS Doing ``xlsfonts -l'' can tie up your server for a very long time. This is really a bug with single-threaded non-preemptable servers, not with this program. AUTHOR Mark Lillibridge, MIT Project Athena; Jim Fulton, MIT X Consortium; Phil Karlton, SGI XMAG(1) XMAG(1) NAME xmag - magnify parts of the screen SYNOPSIS xmag [ -mag magfactor ] [ -source geom ] [ -toolkitoption ... ] DESCRIPTION The xmag program allows you to magnify portions of an X screen. If no explicit region is specified, a square with the pointer in the upper left corner is displayed indicating the area to be enlarged. The area can be dragged out to the desired size by pressing Button 2. Once a region has been selected, a window is popped up showing a blown up version of the region in which each pixel in the source image is represented by a small square of the same color. Pressing Button1 in the enlargement window shows the position and RGB value of the pixel under the pointer until the button is released. Typing ``Q'' or ``^C'' in the enlargement window exits the program. The application has 5 buttons across its top. Close deletes this particular magnification instance. Replace brings up the rubber band selector again to select another region for this magnification instance. New brings up the rubber band selector to create a new magnification instance. Cut puts the magnification image into the primary selection. Paste copies the primary selection buffer into xmag. Note that you can cut and paste between xmag and the bitmap program. Resizing xmag resizes the magnification area. xmag preserves the colormap, visual, and window depth of the source. WIDGETS xmag uses the X Toolkit and the Athena Widget Set. The magnified image is displayed in the Scale widget. For more information, see the Athena Widget Set documentation. Below is the widget structure of the xmag application. Indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. Xmag xmag RootWindow root TopLevelShell xmag Paned pane1 Paned pane2 Command close Command replace Command new Command select Command paste Label xmag label Paned pane2 Scale scale OverrideShell pixShell Label pixLabel OPTIONS -source geom This option specifies the size and/or location of the source region on the screen. By default, a 64x64 square is provided for the user to select an area of the screen. -mag integer This option indicates the magnification to be used. 5 is the default. AUTHORS Dave Sternlicht and Davor Matic, MIT X Consortium. XMAN(1) XMAN(1) NAME xman - Manual page display program for the X Window System SYNOPSIS xman [ -options ... ] DESCRIPTION Xman is a manual page browser. The default size of the initial xman window is small so that you can leave it running throughout your entire login session. In the initial window there are three options: Help will pop up a window with on-line help, Quit will exit, and Manual Page will pop up a window with a manual page browser in it. Typing Control- S will pop up a window prompting for a specific manual page to display. You may display more than one manual page browser window at a time from a single execution of xman. For further information on using xman, please read the on-line help information. Most of this manual will discuss customization of xman. OPTIONS Xman supports all standard Toolkit command line arguments (see X(1)). The following additional arguments are supported. -helpfile filename Specifies a helpfile to use other than the default. -bothshown Allows both the manual page and manual directory to be on the screen at the same time. -notopbox Starts without the Top Menu with the three buttons in it. -geometry WxH+X+Y Sets the size and location of the Top Menu with the three buttons in it. -pagesize WxH+X+Y Sets the size and location of all the Manual Pages. CUSTOMIZING XMAN Xman allows customization of both the directories to be searched for manual pages, and the name that each directory will map to in the Sections menu. Xman determines which directories it will search by reading the MANPATH environment variable. If no MANPATH is found then the directory is /usr/man is searched on POSIX systems. This environment is expected to be a colon-separated list of directories for xman to search. setenv MANPATH /mit/kit/man:/usr/man By default, xman will search each of the following directories (in each of the directories specified in the users MANPATH) for manual pages. If manual pages exist in that directory then they are added to list of manual pages for the corresponding menu item. A menu item is only displayed for those sections that actually contain manual pages. Directory Section Name --------- ------------ man1 (1) User Commands man2 (2) System Calls man3 (3) Subroutines man4 (4) Devices man5 (5) File Formats man6 (6) Games man7 (7) Miscellaneous man8 (8) Sys. Administration manl (l) Local mann (n) New mano (o) Old For instance, a user has three directories in her manual path and each contain a directory called man3. All these manual pages will appear alphabetically sorted when the user selects the menu item called (3) Subroutines. If there is no directory called mano in any of the directories in her MANPATH, or there are no manual pages in any of the directories called mano then no menu item will be displayed for the section called (o) Old. BSD AND LINUX SYSTEMS In some BSD and Linux systems, Xman will search for a file named /etc/man.conf which will contain the list of directories containing manual pages. See man.conf(5) for a complete description of the file format. THE MANDESC FILE By using the mandesc file a user or system manager is able to more closely control which manual pages will appear in each of the sections represented by menu items in the Sections menu. This functionality is only available on a section by section basis, and individual manual pages may not be handled in this manner. (Although generous use of symbolic links -- see ln(1) -- will allow almost any configuration you can imagine.) The format of the mandesc file is a character followed by a label. The character determines which of the sections will be added under this label. For instance suppose that you would like to create an extra menu item that contains all programmer subroutines. This label should contain all manual pages in both sections two and three. The mandesc file would look like this: 2Programmer Subroutines 3Programmer Subroutines This will add a menu item to the Sections menu that would bring up a listing of all manual pages in sections two and three of the Programmers Manual. Since the label names are exactly the same they will be added to the same section. Note, however, that the original sections still exist. If you want to completely ignore the default sections in a manual directory then add the line: no default sections anywhere in your mandesc file. This keeps xman from searching the default manual sections In that directory only. As an example, suppose you want to do the same thing as above, but you don't think that it is useful to have the System Calls or Subroutines sections any longer. You would need to duplicate the default entries, as well as adding your new one. no default sections 1(1) User Commands 2Programmer Subroutines 3Programmer Subroutines 4(4) Devices 5(5) File Formats 6(6) Games 7(7) Miscellaneous 8(8) Sys. Administration l(l) Local n(n) New o(o) Old Xman will read any section that is of the from man, where is an upper or lower case letter (they are treated distinctly) or a numeral (0-9). Be warned, however, that man(1) and catman(8) will not search directories that are non-standard. WIDGETS In order to specify resources, it is useful to know the hierarchy of the widgets which compose xman. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. Xman xman (This widget is never used) TopLevelShell topBox Form form Label topLabel Command helpButton Command quitButton Command manpageButton TransientShell search DialogWidgetClass dialog Label label Text value Command manualPage Command apropos Command cancel TransientShell pleaseStandBy Label label TopLevelShell manualBrowser Paned Manpage_Vpane Paned horizPane MenuButton options MenuButton sections Label manualBrowser Viewport directory List directory List directory . . (one for each section, . created on the fly) . ScrollByLine manualPage SimpleMenu optionMenu SmeBSB displayDirectory SmeBSB displayManualPage SmeBSB help SmeBSB search SmeBSB showBothScreens SmeBSB removeThisManpage SmeBSB openNewManpage SmeBSB showVersion SmeBSB quit SimpleMenu sectionMenu SmeBSB . . (one for each section) . TransientShell search DialogWidgetClass dialog Label label Text value Command manualPage Command apropos Command cancel TransientShell pleaseStandBy Label label TransientShell likeToSave Dialog dialog Label label Text value Command yes Command no TopLevelShell help Paned Manpage_Vpane Paned horizPane MenuButton options MenuButton sections Label manualBrowser ScrollByLine manualPage SimpleMenu optionMenu SmeBSB displayDirectory SmeBSB displayManualPage SmeBSB help SmeBSB search SmeBSB showBothScreens SmeBSB removeThisManpage SmeBSB openNewManpage SmeBSB showVersion SmeBSB quit APPLICATION RESOURCES xman has the following application-specific resources which allow customizations unique to xman. bothShown (Class Boolean) Either `true' or `false,' specifies whether or not you want both the directory and the manual page shown at start up. clearSearchString (Class ClearSearchString) Clear the value shown in the search widget, rather than inheriting a value from other resource settings. The default is ``true''. directoryFontNormal (Class Font) The font to use for the directory text. directoryHeight (Class DirectoryHeight) The height in pixels of the directory, when the directory and the manual page are shown simultaneously. formatCommand (Class String) The formatting command to use to generate man pages (e.g., "|nroff -man"). helpCursor (Class Cursor) The cursor to use in the help window. helpFile (Class File) Use this rather than the system default help file. manpageCursor (Class Cursor) The cursor to use in the manual page window. pointerColor (Class Foreground) This is the foreground color of all the cursors (pointers) specified above. The name was chosen to be compatible with xterm. pointerColorBackground (Class Background) This is the foreground color of all the cursors (pointers) specified above. The name was chosen to be compatible with xterm. searchEntryCursor (Class Cursor) The cursor to use in the search entry text widget. topBox (Class Boolean) Either `true' or `false,' determines whether the top box (containing the help, quit and manual page buttons) or a manual page is put on the screen at start-up. The default is true. topCursor (Class Cursor) The cursor to use in the top box. These resources apply to the Viewport widget: verticalList (Class Boolean) Either `true' or `false,' determines whether the directory listing is vertically or horizontally organized. The default is horizontal (false). You can alter this at runtime by typing control-d while within the directory listing. These resources apply to the ScrollByLine widget: halfLines (Class Boolean) If true, assume that the manpage formatter may rely on half-line spacing. In that case, some pages are not the same number of lines. The default is ``false''. indent (Class Boolean) Specify the size of the left margin, i.e., the distance by which the text is shifted right when displaying a manual page. The default is 15. manualFontBold (Class Font) The font to use for bold text in the manual pages. manualFontItalic (Class Font) The font to use for italic text in the manual pages. manualFontNormal (Class Font) The font to use for normal text in the manual pages. manualFontSymbol (Class Font) The font to use for symbols in the manual pages, e.g., bullets. useRight (Class Boolean) Allows the scrollbar to be placed on the right. The default is ``false''. GLOBAL ACTIONS Xman defines all user interaction through global actions. This allows the user to modify the translation table of any widget, and bind any event to the new user action. The list of actions supported by xman are: GotoPage(page) When used in a manual page display window this will allow the user to move between a directory and manual page display. The page argument can be either Directory or ManualPage. Quit() This action may be used anywhere, and will exit xman. Search(type, action) Only useful when used in a search popup, this action will cause the search widget to perform the named search type on the string in the search popup's value widget. This action will also pop down the search widget. The type argument can be either Apropos, Manpage or Cancel. If an action of Open is specified then xman will open a new manual page to display the results of the search, otherwise xman will attempt to display the results in the parent of the search popup. PopupHelp() This action may be used anywhere, and will pop up the help widget. PopupSearch() This action may be used anywhere except in a help window. It will cause the search popup to become active and visible on the screen, allowing the user search for a manual page. CreateNewManpage() This action may be used anywhere, and will create a new manual page display window. RemoveThisManpage() This action may be used in any manual page or help display window. When called it will remove the window, and clean up all resources associated with it. SaveFormattedPage(action) This action can only be used in the likeToSave popup widget, and tells xman whether to Save or Cancel a save of the manual page that has just been formatted. ShowVersion() This action may be called from any manual page or help display window, and will cause the informational display line to show the current version of xman. FILES /man /cat /mandesc /usr/X11R6/lib/X11/app-defaults/Xman specifies required resources. /tmp Xman creates temporary files in /tmp for all unformatted man pages and all apropos searches. SEE ALSO X(7), man(1), apropos(1), catman(8), Athena Widget Set ENVIRONMENT DISPLAY the default host and display to use. MANPATH the search path for manual pages. Directories are separated by colons (e.g. /usr/man:/mit/kit/man:/foo/bar/man). XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. XAPPLRESDIR A string that will have ``Xman'' appended to it. This string will be the full path name of a user app-defaults file to be merged into the resource database after the system app-defaults file, and before the resources that are attached to the display. See X(7) for a full statement of rights and permissions. AUTHORS Chris Peterson, MIT X Consortium from the V10 version written by Barry Shein formerly of Boston University. Bug fixes and Linux support by Carlos A M dos Santos, The XFree86 Project. Other improvements by Thomas Dickey, The XFree86 Project. XMESSAGE(1) XMESSAGE(1) NAME xmessage - display a message or query in a window (X-based /bin/echo) SYNOPSIS xmessage [ -buttons label1[:value1],label2[:value2], ... ] [ options ] -file filename xmessage [ -buttons label1[:value1],label2[:value2], ... ] [ options ] message ... DESCRIPTION The xmessage program displays a window containing a message from the command line, a file, or standard input. Along the lower edge of the message is row of buttons; clicking the left mouse button on any of these buttons will cause xmessage to exit. Which button was pressed is returned in the exit status and, optionally, by writing the label of the button to standard output. The program is typically used by shell scripts to display information to the user or to ask the user to make a choice. Unless a size is specified, xmessage sizes itself to fit the message, up to a maximum size. If the message is too big for the window, xmessage will display scroll bars. OPTIONS These are the command line options that xmessage understands. -buttons button,button,... This option will cause xmessage to create one button for each comma-separated button argument. The corresponding resource is buttons. Each button consists of a label optionally followed by a colon and an exit value. The label is the name of the Command button widget created and will be the default text displayed to the user. Since this is the name of the widget it may be used to change any of the resources associated with that button. The exit value will be returned by xmessage if that button is selected. The default exit value is 100 plus the button number. Buttons are numbered from the left starting with one. The default string if no -buttons option is given is okay:0. -default label Defines the button with a matching label to be the default. If not specified there is no default. The corresponding resource is defaultButton. Pressing Return anywhere in the xmessage window will activate the default button. The default button has a wider border than the others. -file filename File to display. The corresponding resource is file. A filename of `-' reads from standard input. If this option is not supplied, xmessage will display all non-option arguments in the style of echo. Either -file or a message on the command line should be provided, but not both. -print This will cause the program to write the label of the button pressed to standard output. Equivalent to setting the printValue resource to TRUE. This is one way to get feedback as to which button was pressed. -center Pop up the window at the center of the screen. Equivalent to setting the center resource to TRUE. -nearmouse Pop up the window near the mouse cursor. Equivalent to setting the nearMouse resource to TRUE. -timeout secs Exit with status 0 after secs seconds if the user has not clicked on a button yet. The corresponding resource is timeout. WIDGET HIERARCHY Knowing the name and position in the hierarchy of each widget is useful when specifying resources for them. In the following chart, the class and name of each widget is given. Xmessage (xmessage) Form form Text message Command (label1) Command (label2) . . . RESOURCES The program has a few top-level application resources that allow customizations that are specific to xmessage. file A String specifying the file to display. buttons A String specifying the buttons to display. See the -buttons command-line option. defaultButton A String specifying a default button by label. printValue A Boolean value specifying whether the label of the button pressed to exit the program is written to standard output. The default is FALSE. center A Boolean value specifying whether to pop up the window at the center of the screen. The default is FALSE. nearMouse A Boolean value specifying whether to pop up the window near the mouse cursor. The default is FALSE. timeout The number of seconds after which to exit with status 0. The default is 0, which means never time out. maxHeight (class Maximum) The maximum height of the text part of the window in pixels, used if no size was specified in the geometry. The default is 0, which means use 70% of the height of the screen. maxWidth (class Maximum) The maximum width of the text part of the window in pixels, used if no size was specified in the geometry. The default is 0, which means use 70% of the width of the screen. ACTIONS exit(value) exit immediately with an exit status of value (default 0). This action can be used with translations to provide alternate ways of exiting xmessage. default-exit() exit immediately with the exit status specified by the default button. If there is no default button, this action has no effect. EXIT STATUS If it detects an error, xmessage returns 1, so this value should not be used with a button. SEE ALSO X(7), echo(1), cat(1) AUTHORS Chris Peterson, MIT Project Athena Stephen Gildea, X Consortium XMH(1) XMH(1) NAME xmh - send and read mail with an X interface to MH SYNOPSIS xmh [-path mailpath] [-initial foldername] [-flag] [-toolkitoption ...] DESCRIPTION The xmh program provides a graphical user interface to the MH Message Handling System. To actually do things with your mail, it makes calls to the MH package. Electronic mail messages may be composed, sent, received, replied to, forwarded, sorted, and stored in folders. xmh provides extensive mechanism for customization of the user interface. This document introduces many aspects of the Athena Widget Set. OPTIONS -path directory This option specifies an alternate collection of mail folders in which to process mail. The directory is specified as an absolute pathname. The default mail path is the value of the Path component in the MH profile, which is determined by the MH environment variable and defaults to $HOME/.mh_profile. $HOME/Mail will be used as the path if the MH Path is not given in the profile. -initial folder This option specifies an alternate folder which may receive new mail and is initially opened by xmh. The default initial folder is ``inbox''. -flag This option will cause xmh to change the appearance of appropriate folder buttons and to request the window manager to change the appearance of the xmh icon when new mail has arrived. By default, xmh will change the appearance of the ``inbox'' folder button when new mail is waiting. The application-specific resource checkNewMail can be used to turn off this notification, and the -flag option will still override it. These three options have corresponding application-specific resources, MailPath, InitialFolder, and MailWaitingFlag, which can be specified in a resource file. The standard toolkit command line options are given in X(7). INSTALLATION xmh requires that the user is already set up to use MH, version 6. To do so, see if there is a file called .mh_profile in your home directory. If it exists, check to see if it contains a line that starts with ``Current-Folder''. If it does, you've been using version 4 or earlier of MH; to convert to version 6, you must remove that line. (Failure to do so causes spurious output to stderr, which can hang xmh depending on your setup.) If you do not already have a .mh_profile, you can create one (and everything else you need) by typing ``inc'' to the shell. You should do this before using xmh to incorporate new mail. For more information, refer to the mh(1) documentation. Much of the user interface of xmh is configured in the Xmh application class defaults file; if this file was not installed properly a warning message will appear when xmh is used. xmh is backwards compatible with the R4 application class defaults file. The default value of the SendBreakWidth resource has changed since R4. BASIC SCREEN LAYOUT xmh starts out with a single window, divided into four major areas: - Six buttons with pull-down command menus. - A collection of buttons, one for each top level folder. New users of MH will have two folders, ``drafts'' and ``inbox''. - A listing, or Table of Contents, of the messages in the open folder. Initially, this will show the messages in ``inbox''. - A view of one of your messages. Initially this is blank. XMH AND THE ATHENA WIDGET SET xmh uses the X Toolkit Intrinsics and the Athena Widget Set. Many of the features described below (scrollbars, buttonboxes, etc.) are actually part of the Athena Widget Set, and are described here only for completeness. For more information, see the Athena Widget Set documentation. SCROLLBARS Some parts of the main window will have a vertical area on the left containing a grey bar. This area is a scrollbar. They are used whenever the data in a window takes up more space than can be displayed. The grey bar indicates what portion of your data is visible. Thus, if the entire length of the area is grey, then you are looking at all your data. If only the first half is grey, then you are looking at the top half of your data. The message viewing area will have a horizontal scrollbar if the text of the message is wider than the viewing area. You can use the pointer in the scrollbar to change what part of the data is visible. If you click with pointer button 2, the top of the grey area will move to where the pointer is, and the corresponding portion of data will be displayed. If you hold down pointer button 2, you can drag around the grey area. This makes it easy to get to the top of the data: just press with button 2, drag off the top of the scrollbar, and release. If you click with button 1, then the data to the right of the pointer will scroll to the top of the window. If you click with pointer button 3, then the data at the top of the window will scroll down to where the pointer is. BUTTONBOXES, BUTTONS, AND MENUS Any area containing many words or short phrases, each enclosed in a rectangular or rounded boundary, is called a buttonbox. Each rectangle or rounded area is actually a button that you can press by moving the pointer onto it and pressing pointer button 1. If a given buttonbox has more buttons in it than can fit, it will be displayed with a scrollbar, so you can always scroll to the button you want. Some buttons have pull-down menus. Pressing the pointer button while the pointer is over one of these buttons will pull down a menu. Continuing to hold the button down while moving the pointer over the menu, called dragging the pointer, will highlight each selectable item on the menu as the pointer passes over it. To select an item in the menu, release the pointer button while the item is highlighted. ADJUSTING THE RELATIVE SIZES OF AREAS If you're not satisfied with the sizes of the various areas of the main window, they can easily be changed. Near the right edge of the border between each region is a black box, called a grip. Simply point to that grip with the pointer, press a pointer button, drag up or down, and release. Exactly what happens depends on which pointer button you press. If you drag with the pointer button 2, then only that border will move. This mode is simplest to understand, but is the least useful. If you drag with pointer button 1, then you are adjusting the size of the window above. xmh will attempt to compensate by adjusting some window below it. If you drag with pointer button 3, then you are adjusting the size of the window below. xmh will attempt to compensate by adjusting some window above it. All windows have a minimum and maximum size; you will never be allowed to move a border past the point where it would make a window have an invalid size. PROCESSING YOUR MAIL This section will define the concepts of the selected folder, current folder, selected message(s), current message, selected sequence, and current sequence. Each xmh command is introduced. For use in customization, action procedures corresponding to each command are given; these action procedures can be used to customize the user interface, particularly the keyboard accelerators and the functionality of the buttons in the optional button box created by the application resource CommandButtonCount. FOLDERS AND SEQUENCES A folder contains a collection of mail messages, or is empty. xmh supports folders with one level of subfolders. The selected folder is whichever foldername appears in the bar above the folder buttons. Note that this is not necessarily the same folder that is currently being viewed. To change the selected folder, just press on the desired folder button with pointer button 1; if that folder has subfolders, select a folder from the pull-down menu. The Table of Contents, or toc, lists the messages in the viewed folder. The title bar above the Table of Contents displays the name of the viewed folder. The toc title bar also displays the name of the viewed sequence of messages within the viewed folder. Every folder has an implicit ``all'' sequence, which contains all the messages in the folder, and initially the toc title bar will show ``inbox:all''. FOLDER COMMANDS The Folder command menu contains commands of a global nature: Open Folder Display the data in the selected folder. Thus, the selected folder also becomes the viewed folder. The action procedure corresponding to this command is XmhOpenFolder([foldername]). It takes an optional argument as the name of a folder to select and open; if no folder is specified, the selected folder is opened. It may be specified as part of an event translation from a folder menu button or from a folder menu, or as a binding of a keyboard accelerator to any widget other than the folder menu buttons or the folder menus. Open Folder in New Window Displays the selected folder in an additional main window. Note, however, that you cannot reliably display the same folder in more than one window at a time, although xmh will not prevent you from trying. The corresponding action is XmhOpenFolderInNewWindow(). Create Folder Create a new folder. You will be prompted for a name for the new folder; to enter the name, move the pointer to the blank box provided and type. Subfolders are created by specifying the parent folder, a slash, and the subfolder name. For example, to create a folder named ``xmh'' which is a subfolder of an existing folder named ``clients'', type ``clients/xmh''. Click on the Okay button when finished, or just type Return; click on Cancel to cancel this operation. The action corresponding to Create Folder is XmhCreateFolder(). Delete Folder Destroy the selected folder. You will be asked to confirm this action (see CONFIRMATION WINDOWS). Destroying a folder will also destroy any subfolders of that folder. The corresponding action is XmhDeleteFolder(). Close Window Exits xmh, after first confirming that you won't lose any changes; or, if selected from any additional xmh window, simply closes that window. The corresponding action is XmhClose(). HIGHLIGHTED MESSAGES, SELECTED MESSAGES AND THE CURRENT MESSAGE It is possible to highlight a set of adjacent messages in the area of the Table of Contents. To highlight a message, click on it with pointer button 1. To highlight a range of messages, click on the first one with pointer button 1 and on the last one with pointer button 3; or press pointer button 1, drag, and release. To extend a range of selected messages, use pointer button 3. To highlight all messages in the table of contents, click rapidly three times with pointer button 1. To cancel any selection in the table of contents, click rapidly twice. The selected messages are the same as the highlighted messages, if any. If no messages are highlighted, then the selected messages are considered the same as the current message. The current message is indicated by a `+' next to the message number. It usually corresponds to the message currently being viewed. Upon opening a new folder, for example, the current message will be different from the viewed message. When a message is viewed, the title bar above the view will identify the message. TABLE OF CONTENTS COMMANDS The Table of Contents command menu contains commands which operate on the open, or viewed, folder. Incorporate New Mail Add any new mail received to viewed folder, and set the current message to be the first new message. This command is selectable in the menu and will execute only if the viewed folder is allowed to receive new mail. By default, only ``inbox'' is allowed to incorporate new mail. The corresponding action is XmhIncorporateNewMail(). Commit Changes Execute all deletions, moves, and copies that have been marked in this folder. The corresponding action is XmhCommitChanges(). Pack Folder Renumber the messages in this folder so they start with 1 and increment by 1. The corresponding action is XmhPackFolder(). Sort Folder Sort the messages in this folder in chronological order. (As a side effect, this may also pack the folder.) The corresponding action is XmhSortFolder(). Rescan Folder Rebuild the list of messages. This can be used whenever you suspect that xmh's idea of what messages you have is wrong. (In particular, this is necessary if you change things using straight MH commands without using xmh.) The corresponding action is XmhForceRescan(). MESSAGE COMMANDS The Message command menu contains commands which operate on the selected message(s), or if there are no selected messages, the current message. Compose Message Composes a new message. A new window will be brought up for composition; a description of it is given in the COMPOSITION WINDOWS section below. This command does not affect the current message. The corresponding action is XmhComposeMessage(). View Next Message View the first selected message. If no messages are highlighted, view the current message. If current message is already being viewed, view the first unmarked message after the current message. The corresponding action is XmhViewNextMessage(). View Previous View the last selected message. If no messages are highlighted, view the current message. If current message is already being viewed, view the first unmarked message before the current message. The corresponding action is XmhViewPrevious(). Delete Mark the selected messages for deletion. If no messages are highlighted, mark the current message for deletion and automatically display the next unmarked message. The corresponding action is XmhMarkDelete(). Move Mark the selected messages to be moved into the currently selected folder. (If the selected folder is the same as the viewed folder, this command will just beep.) If no messages are highlighted, mark the current message to be moved and display the next unmarked message. The corresponding action is XmhMarkMove(). Copy as Link Mark the selected messages to be copied into the selected folder. (If the selected folder is the same as the viewed folder, this command will just beep.) If no messages are highlighted, mark the current message to be copied. Note that messages are actually linked, not copied; editing a message copied by xmh will affect all copies of the message. The corresponding action is XmhMarkCopy(). Unmark Remove any of the above three marks from the selected messages, or the current message, if none are highlighted. The corresponding action is XmhUnmark(). View in New Create a new window containing only a view of the first selected message, or the current message, if none are highlighted. The corresponding action is XmhViewInNewWindow(). Reply Create a composition window in reply to the first selected message, or the current message, if none are highlighted. The corresponding action is XmhReply(). Forward Create a composition window whose body is initialized to contain an encapsulation of of the selected messages, or the current message if none are highlighted. The corresponding action is XmhForward(). Use as Composition Create a composition window whose body is initialized to be the contents of the first selected message, or the current message if none are selected. Any changes you make in the composition will be saved in a new message in the ``drafts'' folder, and will not change the original message. However, there is an exception to this rule. If the message to be used as composition was selected from the ``drafts'' folder, (see BUGS), the changes will be reflected in the original message (see COMPOSITION WINDOWS). The action procedure corresponding to this command is XmhUseAsComposition(). Print Print the selected messages, or the current message if none are selected. xmh normally prints by invoking the enscript(1) command, but this can be customized with the xmh application-specific resource PrintCommand. The corresponding action is XmhPrint(). SEQUENCE COMMANDS The Sequence command menu contains commands pertaining to message sequences (See MESSAGE-SEQUENCES), and a list of the message-sequences defined for the currently viewed folder. The selected message-sequence is indicated by a check mark in its entry in the margin of the menu. To change the selected message-sequence, select a new message-sequence from the sequence menu. Pick Messages Define a new message-sequence. The corresponding action is XmhPickMessages(). The following menu entries will be sensitive only if the current folder has any message-sequences other than the ``all'' message-sequence. Open Sequence Change the viewed sequence to be the same as the selected sequence. The corresponding action is XmhOpenSequence(). Add to Sequence Add the selected messages to the selected sequence. The corresponding action is XmhAddToSequence(). Remove from Sequence Remove the selected messages from the selected sequence. The corresponding action is XmhRemoveFromSequence(). Delete Sequence Remove the selected sequence entirely. The messages themselves are not affected; they simply are no longer grouped together to define a message-sequence. The corresponding action is XmhDeleteSequence(). VIEW COMMANDS Commands in the View menu and in the buttonboxes of view windows (which result from the Message menu command View In New) correspond in functionality to commands of the same name in the Message menu, but they operate on the viewed message rather than the selected messages or current message. Close Window When the viewed message is in a separate view window, this command will close the view, after confirming the status of any unsaved edits. The corresponding action procedure is XmhCloseView(). Reply Create a composition window in reply to the viewed message. The related action procedure is XmhViewReply(). Forward Create a composition window whose body is initialized contain an encapsulation of the viewed message. The corresponding action is XmhViewForward(). Use As Composition Create a composition window whose body is initialized to be the contents of the viewed message. Any changes made in the composition window will be saved in a new message in the ``drafts'' folder, and will not change the original message. An exception: if the viewed message was selected from the ``drafts'' folder, (see BUGS) the original message is edited. The action procedure corresponding to this command is XmhViewUseAsComposition(). Edit Message This command enables the direct editing of the viewed message. The action procedure is XmhEditView(). Save Message This command is insensitive until the message has been edited; when activated, edits will be saved to the original message in the view. The corresponding action is XmhSaveView(). Print Print the viewed message. xmh prints by invoking the enscript(1) command, but this can be customized with the application-specific resource PrintCommand. The corresponding action procedure is XmhPrintView(). Delete Marks the viewed message for deletion. The corresponding action procedure is XmhViewMarkDelete(). OPTIONS The Options menu contains one entry. Read in Reverse When selected, a check mark appears in the margin of this menu entry. Read in Reverse will switch the meaning of the next and previous messages, and will increment to the current message marker in the opposite direction. This is useful if you want to read your messages in the order of most recent first. The option acts as a toggle; select it from the menu a second time to undo the effect. The check mark appears when the option is selected. COMPOSITION WINDOWS Composition windows are created by selecting Compose Message from the Message command menu, or by selecting Reply or Forward or Use as Composition from the Message or View command menu. These are used to compose mail messages. Aside from the normal text editing functions, there are six command buttons associated with composition windows: Close Window Close this composition window. If changes have been made since the most recent Save or Send, you will be asked to confirm losing them. The corresponding action is XmhCloseView(). Send Send this composition. The corresponding action is XmhSend(). New Headers Replace the current composition with an empty message. If changes have been made since the most recent Send or Save, you will be asked to confirm losing them. The corresponding action is XmhResetCompose(). Compose Message Bring up another new composition window. The corresponding action is XmhComposeMessage(). Save Message Save this composition in your drafts folder. Then you can safely close the composition. At some future date, you can continue working on the composition by opening the drafts folder, selecting the message, and using the ``Use as Composition'' command. The corresponding action is XmhSave(). Insert Insert a related message into the composition. If the composition window was created with a ``Reply'' command, the related message is the message being replied to, otherwise no related message is defined and this button is insensitive. The message may be filtered before being inserted; see ReplyInsertFilter under APPLICATION RESOURCES for more information. The corresponding action is XmhInsert(). ACCELERATORS Accelerators are shortcuts. They allow you to invoke commands without using the menus, either from the keyboard or by using the pointer. xmh defines pointer accelerators for common actions: To select and view a message with a single click, use pointer button 2 on the message's entry in the table of contents. To select and open a folder or a sequence in a single action, make the folder or sequence selection with pointer button 2. To mark the highlighted messages, or current message if none have been highlighted, to be moved to a folder in a single action, use pointer button 3 to select the target folder and simultaneously mark the messages. Similarly, selecting a sequence with pointer button 3 will add the highlighted or current message(s) to that sequence. In both of these operations, the selected folder or sequence and the viewed folder or sequence are not changed. xmh defines the following keyboard accelerators over the surface of the main window, except in the view area while editing a message: Meta-I Incorporate New Mail Meta-C Commit Changes Meta-R Rescan Folder Meta-P Pack Folder Meta-S Sort Folder Meta-space View Next Message Meta-c Mark Copy Meta-d Mark Deleted Meta-f Forward the selected or current message Meta-m Mark Move Meta-n View Next Message Meta-p View Previous Message Meta-r Reply to the selected or current message Meta-u Unmark Ctrl-V Scroll the table of contents forward Meta-V Scroll the table of contents backward Ctrl-v Scroll the view forward Meta-v Scroll the view backward TEXT EDITING COMMANDS All of the text editing commands are actually defined by the Text widget in the Athena Widget Set. The commands may be bound to different keys than the defaults described below through the X Toolkit Intrinsics key re-binding mechanisms. See the X Toolkit Intrinsics and the Athena Widget Set documentation for more details. Whenever you are asked to enter any text, you will be using a standard text editing interface. Various control and meta keystroke combinations are bound to a somewhat Emacs-like set of commands. In addition, the pointer buttons may be used to select a portion of text or to move the insertion point in the text. Pressing pointer button 1 causes the insertion point to move to the pointer. Double-clicking button 1 selects a word, triple-clicking selects a line, quadruple- clicking selects a paragraph, and clicking rapidly five times selects everything. Any selection may be extended in either direction by using pointer button 3. In the following, a line refers to one displayed row of characters in the window. A paragraph refers to the text between carriage returns. Text within a paragraph is broken into lines for display based on the current width of the window. When a message is sent, text is broken into lines based upon the values of the SendBreakWidth and SendWidth application-specific resources. The following keystroke combinations are defined: Ctrl-a Beginning Of Line Meta-b Backward Word Ctrl-b Backward Character Meta-f Forward Word Ctrl-d Delete Next Character Meta-iInsert File Ctrl-e End Of Line Meta-k Kill To End Of Paragraph Ctrl-f Forward Character Meta-q Form Paragraph Ctrl-g Multiply Reset Meta-v Previous Page Ctrl-h Delete Previous Character Meta-yInsert Current Selection Ctrl-j Newline And Indent Meta-z Scroll One Line Down Ctrl-k Kill To End Of Line Meta-d Delete Next Word Ctrl-l Redraw Display Meta-D Kill Word Ctrl-m Newline Meta-h Delete Previous Word Ctrl-n Next Line Meta-H Backward Kill Word Ctrl-o Newline And Backup Meta-< Beginning Of File Ctrl-p Previous Line Meta-> End Of File Ctrl-r Search/Replace Backward Meta-]Forward Paragraph Ctrl-s Search/Replace Forward Meta-[Backward Paragraph Ctrl-t Transpose Characters Ctrl-u Multiply by 4 Meta-Delete Delete Previous Word Ctrl-v Next Page Meta-Shift DeleteKill Previous Word Ctrl-w Kill Selection Meta-Backspace Delete Previous Word Ctrl-y Unkill Meta-Shift BackspaceKill Previous Word Ctrl-z Scroll One Line Up In addition, the pointer may be used to copy and paste text: Button 1 Down Start Selection Button 1 MotionAdjust Selection Button 1 Up End Selection (copy) Button 2 Down Insert Current Selection (paste) Button 3 Down Extend Current Selection Button 3 MotionAdjust Selection Button 3 Up End Selection (copy) CONFIRMATION DIALOG BOXES Whenever you press a button that may cause you to lose some work or is otherwise dangerous, a popup dialog box will appear asking you to confirm the action. This window will contain an ``Abort'' or ``No'' button and a ``Confirm'' or ``Yes'' button. Pressing the ``No'' button cancels the operation, and pressing the ``Yes'' will proceed with the operation. When xmh is run under a Release 6 session manager it will prompt the user for confirmation during a checkpoint operation. The dialog box asks whether any current changes should be committed (saved) during the checkpoint. Responding ``Yes'' will have the same effect as pressing the ``Commit Changes'' or ``Save Message'' buttons in the respective folder and view windows. Responding ``No'' will cause the checkpoint to continue successfully to completion without actually saving any pending changes. If the session manager disallows user interaction during the checkpoint a ``Yes'' response is assumed; i.e. all changes will be committed during the checkpoint. Some dialog boxes contain messages from MH. Occasionally when the message is more than one line long, not all of the text will be visible. Clicking on the message field will cause the dialog box to resize so that you can read the entire message. MESSAGE-SEQUENCES An MH message sequence is just a set of messages associated with some name. They are local to a particular folder; two different folders can have sequences with the same name. The sequence named ``all'' is predefined in every folder; it consists of the set of all messages in that folder. As many as nine sequences may be defined for each folder, including the predefined ``all'' sequence. (The sequence ``cur'' is also usually defined for every folder; it consists of only the current message. xmh hides ``cur'' from the user, instead placing a ``+'' by the current message. Also, xmh does not support MH's``unseen'' sequence, so that one is also hidden from the user.) The message sequences for a folder (including one for ``all'') are displayed in the ``Sequence'' menu, below the sequence commands. The table of contents (also known as the ``toc'') is at any one time displaying one message sequence. This is called the ``viewed sequence'', and its name will be displayed in the toc title bar after the folder name. Also, at any time one of the sequences in the menu will have a check mark next to it. This is called the ``selected sequence''. Note that the viewed sequence and the selected sequence are not necessarily the same. (This all pretty much corresponds to the way folders work.) The Open Sequence, Add to Sequence, Remove from Sequence, and Delete Sequence commands are active only if the viewed folder contains message-sequences other than ``all'' sequence. Note that none of the above actually affect whether a message is in the folder. Remember that a sequence is a set of messages within the folder; the above operations just affect what messages are in that set. To create a new sequence, select the ``Pick'' menu entry. A new window will appear, with lots of places to enter text. Basically, you can describe the sequence's initial set of messages based on characteristics of the message. Thus, you can define a sequence to be all the messages that were from a particular person, or with a particular subject, and so on. You can also connect things up with boolean operators, so you can select all things from ``weissman'' with a subject containing ``xmh''. The layout should be fairly obvious. The simplest cases are the easiest: just point to the proper field and type. If you enter in more than one field, it will only select messages which match all non-empty fields. The more complicated cases arise when you want things that match one field or another one, but not necessarily both. That's what all the ``or'' buttons are for. If you want all things with subjects that include ``xmh'' or ``xterm'', just press the ``or'' button next to the ``Subject:'' field. Another box will appear where you can enter another subject. If you want all things either from ``weissman'' or with subject ``xmh'', but not necessarily both, select the ``-Or-'' button. This will essentially double the size of the form. You can then enter ``weissman'' in a from: box on the top half, and ``xmh'' in a subject: box on the lower part. If you select the ``Skip'' button, then only those messages that don't match the fields on that row are included. Finally, in the bottom part of the window will appear several more boxes. One is the name of the sequence you're defining. (It defaults to the name of the selected sequence when ``Pick'' was pressed, or to ``temp'' if ``all'' was the selected sequence.) Another box defines which sequence to look through for potential members of this sequence; it defaults to the viewed sequence when ``Pick'' was pressed. Two more boxes define a date range; only messages within that date range will be considered. These dates must be entered in RFC 822-style format: each date is of the form ``dd mmm yy hh:mm:ss zzz'', where dd is a one or two digit day of the month, mmm is the three-letter abbreviation for a month, and yy is a year. The remaining fields are optional: hh, mm, and ss specify a time of day, and zzz selects a time zone. Note that if the time is left out, it defaults to midnight; thus if you select a range of ``7 nov 86'' - ``8 nov 86'', you will only get messages from the 7th, as all messages on the 8th will have arrived after midnight. ``Date field'' specifies which field in the header to look at for this date range; it defaults to ``Date''. If the sequence you're defining already exists, you can optionally merge the old set with the new; that's what the ``Yes'' and ``No'' buttons are all about. Finally, you can ``OK'' the whole thing, or ``Cancel'' it. In general, most people will rarely use these features. However, it's nice to occasionally use ``Pick'' to find some messages, look through them, and then hit ``Delete Sequence'' to put things back in their original state. WIDGET HIERARCHY In order to specify resources, it is useful to know the hierarchy of widgets which compose xmh. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the widget instance name. The application class name is Xmh. The hierarchy of the main toc and view window is identical for additional toc and view windows, except that a TopLevelShell widget is inserted in the hierarchy between the application shell and the Paned widget. Xmh xmh Paned xmh SimpleMenu folderMenu SmeBSB open SmeBSB openInNew SmeBSB create SmeBSB delete SmeLine line SmeBSB close SimpleMenu tocMenu SmeBSB inc SmeBSB commit SmeBSB pack SmeBSB sort SmeBSB rescan SimpleMenu messageMenu SmeBSB compose SmeBSB next SmeBSB prev SmeBSB delete SmeBSB move SmeBSB copy SmeBSB unmark SmeBSB viewNew SmeBSB reply SmeBSB forward SmeBSB useAsComp SmeBSB print SimpleMenu sequenceMenu SmeBSB pick SmeBSB openSeq SmeBSB addToSeq SmeBSB removeFromSeq SmeBSB deleteSeq SmeLine line SmeBSB all SimpleMenu viewMenu SmeBSB reply SmeBSB forward SmeBSB useAsComp SmeBSB edit SmeBSB save SmeBSB print SimpleMenu optionMenu SmeBSB reverse Viewport.Core menuBox.clip Box menuBox MenuButton folderButton MenuButton tocButton MenuButton messageButton MenuButton sequenceButton MenuButton viewButton MenuButton optionButton Grip grip Label folderTitlebar Grip grip Viewport.Core folders.clip Box folders MenuButton inbox MenuButton drafts SimpleMenu menu SmeBSB . . . Grip grip Label tocTitlebar Grip grip Text toc Scrollbar vScrollbar Grip grip Label viewTitlebar Grip grip Text view Scrollbar vScrollbar Scrollbar hScrollbar The hierarchy of the Create Folder popup dialog box: TransientShell prompt Dialog dialog Label label Text value Command okay Command cancel The hierarchy of the Notice dialog box, which reports messages from MH: TransientShell notice Dialog dialog Label label Text value Command confirm The hierarchy of the Confirmation dialog box: TransientShell confirm Dialog dialog Label label Command yes Command no The hierarchy of the dialog box which reports errors: TransientShell error Dialog dialog Label label Command OK The hierarchy of the composition window: TopLevelShell xmh Paned xmh Label composeTitlebar Text comp Viewport.Core compButtons.clip Box compButtons Command close Command send Command reset Command compose Command save Command insert The hierarchy of the view window: TopLevelShell xmh Paned xmh Label viewTitlebar Text view Viewport.Core viewButtons.clip Box viewButtons Command close Command reply Command forward Command useAsComp Command edit Command save Command print Command delete The hierarchy of the pick window: (Unnamed widgets have no name.) TopLevelShell xmh Paned xmh Label pickTitlebar Viewport.Core pick.clip Form form Form groupform The first 6 rows of the pick window have identical structure: Form rowform Toggle Toggle Label Text Command Form rowform Toggle Toggle Text Text Command Form rowform Command Viewport.core pick.clip Form form From groupform Form rowform Label Text Label Text Form rowform Label Text Label Text Label Text Form rowform Label Toggle Toggle Form rowform Command Command APPLICATION-SPECIFIC RESOURCES The application class name is Xmh. Application-specific resources are listed below by name. Application-specific resource class names always begin with an upper case character, but unless noted, are otherwise identical to the instance names given below. Any of these options may also be specified on the command line by using the X Toolkit Intrinsics resource specification mechanism. Thus, to run xmh showing all message headers, % xmh -xrm '*HideBoringHeaders:off' If TocGeometry, ViewGeometry, CompGeometry, or PickGeometry are not specified, then the value of Geometry is used instead. If the resulting height is not specified (e.g., "", "=500", "+0-0"), then the default height of windows is calculated from fonts and line counts. If the width is not specified (e.g., "", "=x300", "-0+0"), then half of the display width is used. If unspecified, the height of a pick window defaults to half the height of the display. The following resources are defined: banner A short string that is the default label of the folder, Table of Contents, and view. The default shows the program name, vendor, and release. blockEventsOnBusy Whether to disallow user input and show a busy cursor while xmh is busy processing a command. If false, the user can `mouse ahead' and type ahead; if true, user input is discarded when processing lengthy mh commands. The default is true. busyCursor The name of the symbol used to represent the position of the pointer, displayed if blockEventsOnBusy is true, when xmh is processing a time-consuming command. The default is "watch". busyPointerColor The foreground color of the busy cursor. Default is XtDefaultForeground. checkFrequency How often to check for new mail, make checkpoints, and rescan the Table of Contents, in minutes. If checkNewMail is true, xmh checks to see if you have new mail each interval. If makeCheckpoints is true, checkpoints are made every fifth interval. Also every fifth interval, the Table of Contents is checked for inconsistencies with the file system, and rescanned if out of date. To prevent all of these checks from occurring, set CheckFrequency to 0. The default is 1. This resource is retained for backward compatibility with user resource files; see also checkpointInterval, mailInterval, and rescanInterval. checkNewMail If true, xmh will check at regular intervals to see if new mail has arrived for any of the top level folders and any opened subfolders. A visual indication will be given if new mail is waiting to be incorporated into a top level folder. Default is true. The interval can be adjusted with mailInterval. checkpointInterval (class Interval) Specifies in minutes how often to make checkpoints of volatile state, if makeCheckpoints is true. The default is 5 times the value of checkFrequency. checkpointNameFormat Specifies how checkpointed files are to be named. The value of this resource will be used to compose a file name by inserting the message number as a string in place of the required single occurrence of `%d'. If the value of the resource is the empty string, or if no `%d' occurs in the string, or if "%d" is the value of the resource, the default will be used instead. The default is "%d.CKP". Checkpointing is done in the folder of origin unless an absolute pathname is given. xmh does not assist the user in recovering checkpoints, nor does it provide for removal of the checkpoint files. commandButtonCount The number of command buttons to create in a button box in between the toc and the view areas of the main window. xmh will create these buttons with the names button1, button2 and so on, in a box with the name commandBox. The default is 0. xmh users can specify labels and actions for the buttons in a private resource file; see the section ACTIONS AND INTERFACE CUSTOMIZATION. compGeometry Initial geometry for windows containing compositions. cursor The name of the symbol used to represent the pointer. Default is ``left_ptr''. debug Whether or not to print information to stderr as xmh runs. Default is false. draftsFolder The folder used for message drafts. Default is ``drafts''. geometry Default geometry to use. Default is none. hideBoringHeaders If ``on'', then xmh will attempt to skip uninteresting header lines within messages by scrolling them off the top of the view. Default is ``on''. initialFolder Which folder to display on startup. May also be set with the command-line option -initial. Default is ``inbox''. initialIncFile The absolute path name of your incoming mail drop file. In some installations, for example those using the Post Office Protocol, no file is appropriate. In this case, initialIncFile should not be specified, or may be specified as the empty string, and inc will be invoked without a -file argument. By default, this resource has no value. This resource is ignored if xmh finds an .xmhcheck file; see the section on multiple mail drops. mailInterval (class Interval) Specifies the interval in minutes at which the mail should be checked, if mailWaitingFlag or checkNewMail is true. The default is the value of checkFrequency. mailPath The full path prefix for locating your mail folders. May also be set with the command line option, -path. The default is the Path component in the MH profile, or ``$HOME/Mail'' if none. mailWaitingFlag If true, xmh will attempt to set an indication in its icon when new mail is waiting to be retrieved. If mailWaitingFlag is true, then checkNewMail is assumed to be true as well. The -flag command line option is a quick way to turn on this resource. makeCheckpoints If true, xmh will attempt to save checkpoints of volatile edits. The default is false. The frequency of checkpointing is controlled by the resource checkpointInterval. For the location of checkpointing, see checkpointNameFormat. mhPath What directory in which to find the MH commands. If a command isn't found in the user's path, then the path specified here is used. Default is ``/usr/local/mh6''. newMailBitmap (class NewMailBitmap) The bitmap to show in the folder button when a folder has new mail. The default is ``black6''. newMailIconBitmap (class NewMailBitmap) The bitmap suggested to the window manager for the icon when any folder has new mail. The default is ``flagup''. noMailBitmap (class NoMailBitmap) The bitmap to show in the folder button when a folder has no new mail. The default is ``box6''. noMailIconBitmap (class NoMailBitmap) The bitmap suggested to the window manager for the icon when no folders have new mail. The default is ``flagdown''. pickGeometry Initial geometry for pick windows. pointerColor The foreground color of the pointer. Default is XtDefaultForeground. prefixWmAndIconName Whether to prefix the window and icon name with "xmh: ". Default is true. printCommand An sh command to execute to print a message. Note that stdout and stderr must be specifically redirected. If a message or range of messages is selected for printing, the full file paths of each message file are appended to the specified print command. The default is ``enscript >/dev/null 2>/dev/null''. replyInsertFilter An sh command to be executed when the Insert button is activated in a composition window. The full path and filename of the source message is appended to the command before being passed to sh(1). The default filter is cat; i.e. it inserts the entire message into the composition. Interesting filters are: sed 's/^/> /' or awk -e '{print " " $0}' or /lib/mhl -form mhl.body. rescanInterval (class Interval) How often to check the Table of Contents of currently viewed folders and of folders with messages currently being viewed, and to update the Table of Contents if xmh sees inconsistencies with the file system in these folders. The default is 5 times the value of checkFrequency. reverseReadOrder When true, the next message will be the message prior to the current message in the table of contents, and the previous message will be the message after the current message in the table of contents. The default is false. sendBreakWidth When a message is sent from xmh, lines longer than this value will be split into multiple lines, each of which is no longer than SendWidth. This value may be overridden for a single message by inserting an additional line in the message header of the form SendBreakWidth: value. This line will be removed from the header before the message is sent. The default is 2000 (to allow for sending mail containing source patches). sendWidth When a message is sent from xmh, lines longer than SendBreakWidth characters will be split into multiple lines, each of which is no longer than this value. This value may be overridden for a single message by inserting an additional line in the message header of the form SendWidth: value. This line will be removed from the header before the message is sent. The default is 72. showOnInc Whether to automatically show the current message after incorporating new mail. Default is true. skipCopied Whether to skip over messages marked for copying when using ``View Next Message'' and ``View Previous Message''. Default is true. skipDeleted Whether to skip over messages marked for deletion when using ``View Next Message'' and ``View Previous Message''. Default is true. skipMoved Whether to skip over messages marked for moving to other folders when using ``View Next Message'' and ``View Previous Message''. Default is true. stickyMenu If true, when popup command menus are used, the most recently selected entry will be under the cursor when the menu pops up. Default is false. See the file clients/xmh/Xmh.sample for an example of how to specify resources for popup command menus. tempDir Directory for xmh to store temporary files. For privacy, a user might want to change this to a private directory. Default is ``/tmp''. tocGeometry Initial geometry for main xmh toc and view windows. tocPercentage The percentage of the main window that is used to display the Table of Contents. Default is 33. tocWidth How many characters to generate for each message in a folder's table of contents. Default is 100. Use less if the geometry of the main xmh window results in the listing being clipped at the right hand boundary, or if you plan to use mhl a lot, because it will be faster, and the extra characters may not be useful. viewGeometry Initial geometry for windows showing a view of a message. MULTIPLE MAIL DROPS Users may need to incorporate mail from multiple spool files or mail drops. If incoming mail is forwarded to the MH slocal program, it can be sorted as specified by the user into multiple incoming mail drops. Refer to the MH man page for slocal to learn how to specify forwarding and the automatic sorting of incoming mail in a .maildelivery file. To inform xmh about the various mail drops, create a file in your home directory called .xmhcheck. In this file, a mapping between existing folder names and mail drops is created by giving a folder name followed by the absolute pathname of the mail drop site, with some white space separating them, one mapping per line. xmh will read this file whether or not resources are set for notification of new mail arrival, and will allow incorporation of new mail into any folder with a mail drop. xmh will invoke inc with the -file argument, and if xmh has been requested to check for new mail, it will check directly, instead of using msgchk. An example of .xmhcheck file format, for the folders ``inbox'' and ``xpert'': inbox /usr/spool/mail/converse xpert /users/converse/maildrops/xpert ACTIONS AND INTERFACE CUSTOMIZATION Because xmh provides action procedures which correspond to command functionality and installs accelerators, users can customize accelerators and new button functionality in a private resource file. For examples of specifying customized resources, see the file mit/clients/xmh/Xmh.sample. To understand the syntax, see the Appendix of the X Toolkit Intrinsics specification on Translation Table Syntax, and any general explanation of using and specifying X resources. Unpredictable results can occur if actions are bound to events or widgets for which they were not designed. Here's an example of how to bind actions to your own xmh buttons, and how to redefine the default accelerators so that the Meta key is not required, in case you don't have access to the sample file mentioned above. ! To create buttons in the middle of the main window and give them semantics: Xmh*CommandButtonCount: 5 Xmh*commandBox.button1.label: Inc Xmh*commandBox.button1.translations: #override\ ,: XmhIncorporateNewMail() unset() Xmh*commandBox.button2.label: Compose Xmh*commandBox.button2.translations: #override\ ,: XmhComposeMessage() unset() Xmh*commandBox.button3.label: Next Xmh*commandBox.button3.translations: #override\ ,: XmhViewNextMessage() unset() Xmh*commandBox.button4.label: Delete Xmh*commandBox.button4.translations: #override\ ,: XmhMarkDelete() unset() Xmh*commandBox.button5.label: Commit Xmh*commandBox.button5.translations: #override\ ,: XmhCommitChanges() unset() ! To redefine the accelerator bindings to exclude modifier keys, ! and add your own keyboard accelerator for Compose Message: Xmh*tocMenu.accelerators: #override\n\ !:I: XmhIncorporateNewMail()\n\ !:C: XmhCommitChanges()\n\ !:R: XmhForceRescan()\n\ !:P: XmhPackFolder()\n\ !:S: XmhSortFolder()\n Xmh*messageMenu.accelerators: #override\n\ !:E: XmhComposeMessage()\n\ !space: XmhViewNextMessage()\n\ !:c: XmhMarkCopy()\n\ !:d: XmhMarkDelete()\n\ !:f: XmhForward()\n\ !:m: XmhMarkMove()\n\ !:n: XmhViewNextMessage()\n\ !:p: XmhViewPreviousMessage()\n\ !:r: XmhReply()\n\ !:u: XmhUnmark()\n xmh provides action procedures which correspond to entries in the command menus; these are given in the sections describing menu commands, not here. In addition to the actions corresponding to commands in the menus, these action routines are defined: XmhPushFolder([foldername, ...]) This action pushes each of its argument(s) onto a stack of foldernames. If no arguments are given, the selected folder is pushed onto the stack. XmhPopFolder() This action pops one foldername from the stack and sets the selected folder. XmhPopupFolderMenu() This action should always be taken when the user selects a folder button. A folder button represents a folder and zero or more subfolders. The menu of subfolders is built upon the first reference, by this routine. If there are no subfolders, this routine will mark the folder as having no subfolders, and no menu will be built. In that case the menu button emulates a toggle button. When subfolders exist, the menu will popup, using the menu button action PopupMenu(). XmhSetCurrentFolder() This action allows menu buttons to emulate toggle buttons in the function of selecting a folder. This action is for menu button widgets only, and sets the selected folder. XmhLeaveFolderButton() This action ensures that the menu button behaves properly when the user moves the pointer out of the menu button window. XmhPushSequence([sequencename, ...]) This action pushes each of its arguments onto the stack of sequence names. If no arguments are given, the selected sequence is pushed onto the stack. XmhPopSequence() This action pops one sequence name from the stack of sequence names, which then becomes the selected sequence. XmhPromptOkayAction() This action is equivalent to pressing the okay button in the Create Folder popup. XmhReloadSeqLists() This action rescans the contents of the public MH sequences for the currently opened folder and updates the sequence menu if necessary. XmhShellCommand( parameter [, parameter]) At least one parameter must be specified. The parameters will be concatenated with a space character separator, into a single string, and the list of selected messages, or if no messages are selected, the current message, will be appended to the string of parameters. The string will be executed as a shell command. The messages are always given as absolute pathnames. It is an error to cause this action to execute when there are no selected messages and no current message. XmhCheckForNewMail() This action will check all mail drops known to xmh. If no mail drops have been specified by the user either through the .xmhcheck file or by the initialIncFile resource, the MH command msgchk is used to check for new mail, otherwise, xmh checks directly. XmhWMProtocols([wm_delete_window] [wm_save_yourself]) This action is responsible for participation in window manager communication protocols. It responds to delete window and save yourself messages. The user can cause xmh to respond to one or both of these protocols, exactly as if the window manager had made the request, by invoking the action with the appropriate parameters. The action is insensitive to the case of the string parameters. If the event received is a ClientMessage event and parameters are present, at least one of the parameters must correspond to the protocol requested by the event for the request to be honored by xmh. CUSTOMIZATION USING MH The initial text displayed in a composition window is generated by executing the corresponding MH command; i.e. comp, repl, or forw, and therefore message components may be customized as specified for those commands. comp is executed only once per invocation of xmh and the message template is re-used for every successive new composition. xmh uses MH commands, including inc, msgchk, comp, send, repl, forw, refile, rmm, pick, pack, sort, and scan. Some flags for these commands can be specified in the MH profile; xmh may override them. The application resource debug can be set to true to see how xmh uses MH commands. ENVIRONMENT HOME - users's home directory MH - to get the location of the MH profile file FILES ~/.mh_profile - MH profile, used if the MH environment variable is not set ~/Mail - directory of folders, used if the MH profile cannot be found ~/.xmhcheck - optional, for multiple mail drops in cooperation with slocal. /usr/local/mh6 - MH commands, as a last resort, see mhPath. ~/Mail//.xmhcache - scan output in each folder ~/Mail//.mh_sequences - sequence definitions, in each folder /tmp - temporary files, see tempDir. SEE ALSO X(7), xrdb(1), X Toolkit Intrinsics, Athena Widget Set, mh(1), enscript(1) At least one book has been published about MH and xmh. BUGS - When the user closes a window, all windows which are transient for that window should also be closed by xmh. - When XmhUseAsComposition and XmhViewUseAsComposition operate on messages in the DraftsFolder, xmh disallows editing of the composition if the same message is also being viewed in another window. - Occasionally after committing changes, the table of contents will appear to be completely blank when there are actually messages present. When this happens, refreshing the display, or typing Control-L in the table of contents, will often cause the correct listing to appear. If this doesn't work, force a rescan of the folder. - Should recognize and use the ``unseen'' message-sequence. - Should determine by itself if the user hasn't used MH before, and offer to create the .mh_profile, instead of hanging on inc. - A few commands are missing (rename folder, resend message). - WM_DELETE_WINDOW protocol doesn't work right when requesting deletion of the first toc and view, while trying to keep other xmh windows around. - Doesn't support annotations when replying to messages. - Doesn't allow folders to be shared without write permission. - Doesn't recognize private sequences. - MH will report that the .mh_sequences file is poorly formatted if any sequence definition in a particular folder contains more than BUFSIZ characters. xmh tries to capture these messages and display them when they occur, but it cannot correct the problem. - Should save a temporary checkpoint file rather than requiring changes to be committed in the non-shutdown case. AUTHOR Terry Weissman, formerly of Digital Western Research Laboratory Donna Converse, MIT X Consortium XMKMF(1) XMKMF(1) NAME xmkmf - create a Makefile from an Imakefile SYNOPSIS xmkmf [ -a ] [ topdir [ curdir ] ] DESCRIPTION The xmkmf command is the normal way to create a Makefile from an Imakefile shipped with third-party software. When invoked with no arguments in a directory containing an Imakefile, the imake program is run with arguments appropriate for your system (configured into xmkmf when X was built) and generates a Makefile. When invoked with the -a option, xmkmf builds the Makefile in the current directory, and then automatically executes ``make Makefiles'' (in case there are subdirectories), ``make includes'', and ``make depend'' for you. This is the normal way to configure software that is outside the X Consortium build tree. If working inside the X Consortium build tree (unlikely unless you are an X developer, and even then this option is never really used), the topdir argument should be specified as the relative pathname from the current directory to the top of the build tree. Optionally, curdir may be specified as a relative pathname from the top of the build tree to the current directory. It is necessary to supply curdir if the current directory has subdirectories, or the Makefile will not be able to build the subdirectories. If a topdir is given, xmkmf assumes nothing is installed on your system and looks for files in the build tree instead of using the installed versions. SEE ALSO imake(1) XMODMAP(1) XMODMAP(1) NAME xmodmap - utility for modifying keymaps and pointer button mappings in X SYNOPSIS xmodmap [-options ...] [filename] DESCRIPTION The xmodmap program is used to edit and display the keyboard modifier map and keymap table that are used by client applications to convert event keycodes into keysyms. It is usually run from the user's session startup script to configure the keyboard according to personal tastes. OPTIONS The following options may be used with xmodmap: -display display This option specifies the host and display to use. -help This option indicates that a brief description of the command line arguments should be printed on the standard error channel. This will be done whenever an unhandled argument is given to xmodmap. -grammar This option indicates that a help message describing the expression grammar used in files and with -e expressions should be printed on the standard error. -verbose This option indicates that xmodmap should print logging information as it parses its input. -quiet This option turns off the verbose logging. This is the default. -n This option indicates that xmodmap should not change the mappings, but should display what it would do, like make(1) does when given this option. -e expression This option specifies an expression to be executed. Any number of expressions may be specified from the command line. -pm This option indicates that the current modifier map should be printed on the standard output. -pk This option indicates that the current keymap table should be printed on the standard output. -pke This option indicates that the current keymap table should be printed on the standard output in the form of expressions that can be fed back to xmodmap. -pp This option indicates that the current pointer map should be printed on the standard output. - A lone dash means that the standard input should be used as the input file. The filename specifies a file containing xmodmap expressions to be executed. This file is usually kept in the user's home directory with a name like .xmodmaprc. EXPRESSION GRAMMAR The xmodmap program reads a list of expressions and parses them all before attempting to execute any of them. This makes it possible to refer to keysyms that are being redefined in a natural way without having to worry as much about name conflicts. keycode NUMBER = KEYSYMNAME ... The list of keysyms is assigned to the indicated keycode (which may be specified in decimal, hex or octal and can be determined by running the xev program). Up to eight keysyms may be attached to a key, however the last four are not used in any major X server implementation. The first keysym is used when no modifier key is pressed in conjunction with this key, the second with Shift, the third when the Mode_switch key is used with this key and the fourth when both the Mode_switch and Shift keys are used. keycode any = KEYSYMNAME ... If no existing key has the specified list of keysyms assigned to it, a spare key on the keyboard is selected and the keysyms are assigned to it. The list of keysyms may be specified in decimal, hex or octal. keysym KEYSYMNAME = KEYSYMNAME ... The KEYSYMNAME on the left hand side is translated into matching keycodes used to perform the corresponding set of keycode expressions. The list of keysym names may be found in the header file (without the XK_ prefix) or the keysym database __projectroot__/lib/X11/XKeysymDB. Note that if the same keysym is bound to multiple keys, the expression is executed for each matching keycode. clear MODIFIERNAME This removes all entries in the modifier map for the given modifier, where valid name are: Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4, and Mod5 (case does not matter in modifier names, although it does matter for all other names). For example, ``clear Lock'' will remove all any keys that were bound to the shift lock modifier. add MODIFIERNAME = KEYSYMNAME ... This adds all keys containing the given keysyms to the indicated modifier map. The keysym names are evaluated after all input expressions are read to make it easy to write expressions to swap keys (see the EXAMPLES section). remove MODIFIERNAME = KEYSYMNAME ... This removes all keys containing the given keysyms from the indicated modifier map. Unlike add, the keysym names are evaluated as the line is read in. This allows you to remove keys from a modifier without having to worry about whether or not they have been reassigned. pointer = default This sets the pointer map back to its default settings (button 1 generates a code of 1, button 2 generates a 2, etc.). pointer = NUMBER ... This sets the pointer map to contain the indicated button codes. The list always starts with the first physical button. Lines that begin with an exclamation point (!) are taken as comments. If you want to change the binding of a modifier key, you must also remove it from the appropriate modifier map. EXAMPLES Many pointers are designed such that the first button is pressed using the index finger of the right hand. People who are left-handed frequently find that it is more comfortable to reverse the button codes that get generated so that the primary button is pressed using the index finger of the left hand. This could be done on a 3 button pointer as follows: % xmodmap -e "pointer = 3 2 1" Many applications support the notion of Meta keys (similar to Control keys except that Meta is held down instead of Control). However, some servers do not have a Meta keysym in the default keymap table, so one needs to be added by hand. The following command will attach Meta to the Multi-language key (sometimes labeled Compose Character). It also takes advantage of the fact that applications that need a Meta key simply need to get the keycode and don't require the keysym to be in the first column of the keymap table. This means that applications that are looking for a Multi_key (including the default modifier map) won't notice any change. % xmodmap -e "keysym Multi_key = Multi_key Meta_L" Similarly, some keyboards have an Alt key but no Meta key. In that case the following may be useful: % xmodmap -e "keysym Alt_L = Meta_L Alt_L" One of the more simple, yet convenient, uses of xmodmap is to set the keyboard's "rubout" key to generate an alternate keysym. This frequently involves exchanging Backspace with Delete to be more comfortable to the user. If the ttyModes resource in xterm is set as well, all terminal emulator windows will use the same key for erasing characters: % xmodmap -e "keysym BackSpace = Delete" % echo "XTerm*ttyModes: erase ^?" | xrdb -merge Some keyboards do not automatically generate less than and greater than characters when the comma and period keys are shifted. This can be remedied with xmodmap by resetting the bindings for the comma and period with the following scripts: ! ! make shift-, be < and shift-. be > ! keysym comma = comma less keysym period = period greater One of the more irritating differences between keyboards is the location of the Control and Shift Lock keys. A common use of xmodmap is to swap these two keys as follows: ! ! Swap Caps_Lock and Control_L ! remove Lock = Caps_Lock remove Control = Control_L keysym Control_L = Caps_Lock keysym Caps_Lock = Control_L add Lock = Caps_Lock add Control = Control_L The keycode command is useful for assigning the same keysym to multiple keycodes. Although unportable, it also makes it possible to write scripts that can reset the keyboard to a known state. The following script sets the backspace key to generate Delete (as shown above), flushes all existing caps lock bindings, makes the CapsLock key be a control key, make F5 generate Escape, and makes Break/Reset be a shift lock. ! ! On the HP, the following keycodes have key caps as listed: ! ! 101 Backspace ! 55 Caps ! 14 Ctrl ! 15 Break/Reset ! 86 Stop ! 89 F5 ! keycode 101 = Delete keycode 55 = Control_R clear Lock add Control = Control_R keycode 89 = Escape keycode 15 = Caps_Lock add Lock = Caps_Lock ENVIRONMENT DISPLAY to get default host and display number. SEE ALSO X(7), xev(1), Xlib documentation on key and pointer events BUGS Every time a keycode expression is evaluated, the server generates a MappingNotify event on every client. This can cause some thrashing. All of the changes should be batched together and done at once. Clients that receive keyboard input and ignore MappingNotify events will not notice any changes made to keyboard mappings. Xmodmap should generate "add" and "remove" expressions automatically whenever a keycode that is already bound to a modifier is changed. There should be a way to have the remove expression accept keycodes as well as keysyms for those times when you really mess up your mappings. AUTHOR Jim Fulton, MIT X Consortium, rewritten from an earlier version by David Rosenthal of Sun Microsystems. XNEST(1) XNEST(1) NAME Xnest - a nested X server SYNOPSIS Xnest [-options] DESCRIPTION Xnest is a client and a server. Xnest is a client of the real server which manages windows and graphics requests on its behalf. Xnest is a server to its own clients. Xnest manages windows and graphics requests on their behalf. To these clients Xnest appears to be a conventional server. OPTIONS Xnest supports all standard options of the sample server implementation. For more details, please see the manual page on your system for Xserver. The following additional arguments are supported as well. -display string This option specifies the display name of the real server that Xnest should try to connect with. If it is not provided on the command line Xnest will read the DISPLAY environment variable in order to find out the same information. -sync This option tells Xnest to synchronize its window and graphics operations with the real server. This is a useful option for debugging, but it will slow down the performance considerably. It should not be used unless absolutely necessary. -full This option tells Xnest to utilize full regeneration of real server objects and reopen a new connection to the real server each time the nested server regenerates. The sample server implementation regenerates all objects in the server when the last client of this server terminates. When this happens, Xnest by default maintains the same top level window and the same real server connection in each new generation. If the user selects full regeneration, even the top level window and the connection to the real server will be regenerated for each server generation. -class string This option specifies the default visual class of the nested server. It is similar to the -cc option from the set of standard options except that it will accept a string rather than a number for the visual class specification. The string must be one of the following six values: StaticGray, GrayScale, StaticColor, PseudoColor, TrueColor, or DirectColor. If both, -class and -cc options are specified, the last instance of either option assumes precedence. The class of the default visual of the nested server need not be the same as the class of the default visual of the real server; although, it has to be supported by the real server. See xdpyinfo for a list of supported visual classes on the real server before starting Xnest. If the user chooses a static class, all the colors in the default colormap will be preallocated. If the user chooses a dynamic class, colors in the default colormap will be available to individual clients for allocation. -depth int This option specifies the default visual depth of the nested server. The depth of the default visual of the nested server need not be the same as the depth of the default visual of the real server; although, it has to be supported by the real server. See xdpyinfo for a list of supported visual depths on the real server before starting Xnest. -sss This option tells Xnest to use the software screen saver. By default Xnest will use the screen saver that corresponds to the hardware screen saver in the real server. Of course, even this screen saver is software generated since Xnest does not control any actual hardware. However, it is treated as a hardware screen saver within the sample server code. -geometry WxH+X+Y This option specifies geometry parameters for the top level Xnest windows. These windows corresponds to the root windows of the nested server. The width and height specified with this option will be the maximum width and height of each top level Xnest window. Xnest will allow the user to make any top level window smaller, but it will not actually change the size of the nested server root window. As of yet, there is no mechanism within the sample server implementation to change the size of the root window after screen initialization. In order to do so, one would probably need to extend the X protocol. Therefore, it is not likely that this will be available any time soon. If this option is not specified Xnest will choose width and height to be 3/4 of the dimensions of the root window of the real server. -bw int This option specifies the border width of the top level Xnest window. The integer parameter must be a positive number. The default border width is 1. -name string This option specifies the name of the top level Xnest window. The default value is the program name. -scrns int This option specifies the number of screens to create in the nested server. For each screen, Xnest will create a separate top level window. Each screen is referenced by the number after the dot in the client display name specification. For example, xterm -display :1.1 will open an xterm client in the nested server with the display number :1 on the second screen. The number of screens is limited by the hard coded constant in the server sample code which is usually 3. -install This option tells Xnest to do its own colormap installation by bypassing the real window manager. For it to work properly the user will probably have to temporarily quit the real window manager. By default Xnest will keep the nested client window whose colormap should be installed in the real server in the WM_COLORMAP_WINDOWS property of the top level Xnest window. If this colormap is of the same visual type as the root window of the nested server, Xnest will associate this colormap with the top level Xnest window as well. Since this does not have to be the case, window managers should look primarily at the WM_COLORMAP_WINDOWS property rather than the colormap associated with the top level Xnest window. Unfortunately, window managers are not very good at doing that yet so this option might come in handy. -parent window_id This option tells Xnest to use the window_id as the root window instead of creating a window. This option is used by the xrx xnestplugin. -noinput This option disables input for Xnest, running it in a view-only mode. USAGE Starting up Xnest is as simple as starting up xclock from a terminal emulator. If a user wishes to run Xnest on the same workstation as the real server, it is important that the nested server is given its own listening socket address. Therefore, if there is a server already running on the user's workstation, Xnest will have to be started up with a new display number. Since there is usually no more than one server running on a workstation, specifying Xnest :1 on the command line will be sufficient for most users. For each server running on the workstation the display number needs to be incremented by one. Thus, if you wish to start another Xnest, you will need to type Xnest :2 on the command line. To run clients in the nested server each client needs to be given the same display number as the nested server. For example, xterm -display :1 will start up an xterm in the first nested server and xterm -display :2 will start an xterm in the second nested server from the example above. Additional clients can be started from these xterms in each nested server. XNEST AS A CLIENT Xnest behaves and looks to the real server and other real clients as another real client. It is a rather demanding client, however, since almost any window or graphics request from a nested client will result in a window or graphics request from Xnest to the real server. Therefore, it is desirable that Xnest and the real server are on a local network, or even better, on the same machine. As of now, Xnest assumes that the real server supports the shape extension. There is no way to turn off this assumption dynamically. Xnest can be compiled without the shape extension built in, and in that case the real server need not support it. The dynamic shape extension selection support should be considered in further development of Xnest. Since Xnest need not use the same default visual as the the real server, the top level window of the Xnest client always has its own colormap. This implies that other windows' colors will not be displayed properly while the keyboard or pointer focus is in the Xnest window, unless the real server has support for more than one installed colormap at any time. The colormap associated with the top window of the Xnest client need not be the appropriate colormap that the nested server wants installed in the real server. In the case that a nested client attempts to install a colormap of a different visual from the default visual of the nested server, Xnest will put the top window of this nested client and all other top windows of the nested clients that use the same colormap into the WM_COLORMAP_WINDOWS property of the top level Xnest window on the real server. Thus, it is important that the real window manager that manages the Xnest top level window looks at the WM_COLORMAP_WINDOWS property rather than the colormap associated with the top level Xnest window. Since most window managers appear to not implement this convention properly as of yet, Xnest can optionally do direct installation of colormaps into the real server bypassing the real window manager. If the user chooses this option, it is usually necessary to temporarily disable the real window manager since it will interfere with the Xnest scheme of colormap installation. Keyboard and pointer control procedures of the nested server change the keyboard and pointer control parameters of the real server. Therefore, after Xnest is started up, it will change the keyboard and pointer controls of the real server to its own internal defaults. Perhaps there should be a command line option to tell Xnest to inherit the keyboard and pointer control parameters from the real server rather than imposing its own. This is a future consideration. XNEST AS A SERVER Xnest as a server looks exactly like a real server to its own clients. For the clients there is no way of telling if they are running on a real or a nested server. As already mentioned, Xnest is a very user friendly server when it comes to customization. Xnest will pick up a number of command line arguments that can configure its default visual class and depth, number of screens, etc. In the future, Xnest should read a customization input file to provide even greater freedom and simplicity in selecting the desired layout. Unfortunately, there is no support for backing store and save under as of yet, but this should also be considered in the future development of Xnest. The only apparent intricacy from the users' perspective about using Xnest as a server is the selection of fonts. Xnest manages fonts by loading them locally and then passing the font name to the real server and asking it to load that font remotely. This approach avoids the overload of sending the glyph bits across the network for every text operation, although it is really a bug. The proper implementation of fonts should be moved into the os layer. The consequence of this approach is that the user will have to worry about two different font paths - a local one for the nested server and a remote one for the real server - since Xnest does not propagate its font path to the real server. The reason for this is because real and nested servers need not run on the same file system which makes the two font paths mutually incompatible. Thus, if there is a font in the local font path of the nested server, there is no guarantee that this font exists in the remote font path of the real server. Xlsfonts client, if run on the nested server will list fonts in the local font path and if run on the real server will list fonts in the remote font path. Before a font can be successfully opened by the nested server it has to exist in local and remote font paths. It is the users' responsibility to make sure that this is the case. BUGS Won't run well on servers supporting different visual depths. Still crashes randomly. Probably has some memory leaks. AUTHOR Davor Matic, MIT X Consortium XON(1) XON(1) NAME xon - start an X program on a remote machine SYNOPSIS xon remote-host [-access] [-debug] [-name window-name] [-nols] [-screen screen-no] [-user user-name] [command ...] DESCRIPTION Xon runs the specified command (default xterm -ls) on the remote machine using rsh, remsh, or rcmd. Xon passes the DISPLAY, XAUTHORITY and XUSERFILESEARCHPATH environment variables to the remote command. When no command is specified, xon runs 'xterm -ls'. It additionally specifies the application name to be 'xterm-remote-host' and the window title to be '-fIremote-host'. Xon can only work when the remote host will allow you to log in without a password, by having an entry in the .rhosts file permitting access. OPTIONS Note that the options follow the remote host name (as they do with rlogin). -access Runs xhost locally to add the remote host to the host access list in the X server. This won't work unless xhost is given permission to modify the access list. -debug Normally, xon disconnects the remote process from stdin, stdout and stderr to eliminate the daemon processes which usually connect them across the network. Specifying the -debug option leaves them connected so that error messages from the remote execution are sent back to the originating host. -name window-name This specifies a different application name and window title for the default command (xterm). -nols Normally xon passes the -ls option to the remote xterm; this option suspends that behaviour. -screen screen-no This changes the screen number of the DISPLAY variable passed to the remote command. -user user-name By default, xon simply uses rsh/remsh/rcmd to connect to the remote machine using the same user name as on the local machine. This option cause xon to specify an alternative user name. This will not work unless you have authorization to access the remote account, by placing an appropriate entry in the remote users .rhosts file. BUGS Xon can get easily confused when the remote-host, user-name or various environment variable values contain white space. Xon has no way to send the appropriate X authorization information to the remote host. XPROP(1) XPROP(1) NAME xprop - property displayer for X SYNOPSIS xprop [-help] [-grammar] [-id id] [-root] [-name name] [-frame] [-font font] [-display display] [-len n] [-notype] [-fs file] [-remove property-name] [-set property-name value] [-spy] [-f atom format [dformat]]* [format [dformat] atom]* SUMMARY The xprop utility is for displaying window and font properties in an X server. One window or font is selected using the command line arguments or possibly in the case of a window, by clicking on the desired window. A list of properties is then given, possibly with formatting information. OPTIONS -help Print out a summary of command line options. -grammar Print out a detailed grammar for all command line options. -id id This argument allows the user to select window id on the command line rather than using the pointer to select the target window. This is very useful in debugging X applications where the target window is not mapped to the screen or where the use of the pointer might be impossible or interfere with the application. -name name This argument allows the user to specify that the window named name is the target window on the command line rather than using the pointer to select the target window. -font font This argument allows the user to specify that the properties of font font should be displayed. -root This argument specifies that X's root window is the target window. This is useful in situations where the root window is completely obscured. -display display This argument allows you to specify the server to connect to; see X(7). -len n Specifies that at most n bytes of any property should be read or displayed. -notype Specifies that the type of each property should not be displayed. -fs file Specifies that file file should be used as a source of more formats for properties. -frame Specifies that when selecting a window by hand (i.e. if none of -name, -root, or -id are given), look at the window manager frame (if any) instead of looking for the client window. -remove property-name Specifies the name of a property to be removed from the indicated window. -set property-name value Specifies the name of a property and a property value, to be set on the indicated window. -spy Examine window properties forever, looking for property change events. -f name format [dformat] Specifies that the format for name should be format and that the dformat for name should be dformat. If dformat is missing, " = $0+\n" is assumed. DESCRIPTION For each of these properties, its value on the selected window or font is printed using the supplied formatting information if any. If no formatting information is supplied, internal defaults are used. If a property is not defined on the selected window or font, "not defined" is printed as the value for that property. If no property list is given, all the properties possessed by the selected window or font are printed. A window may be selected in one of four ways. First, if the desired window is the root window, the -root argument may be used. If the desired window is not the root window, it may be selected in two ways on the command line, either by id number such as might be obtained from xwininfo, or by name if the window possesses a name. The -id argument selects a window by id number in either decimal or hex (must start with 0x) while the -name argument selects a window by name. The last way to select a window does not involve the command line at all. If none of -font, -id, -name, and -root are specified, a crosshairs cursor is displayed and the user is allowed to choose any visible window by pressing any pointer button in the desired window. If it is desired to display properties of a font as opposed to a window, the -font argument must be used. Other than the above four arguments and the -help argument for obtaining help, and the -grammar argument for listing the full grammar for the command line, all the other command line arguments are used in specifying both the format of the properties to be displayed and how to display them. The -len n argument specifies that at most n bytes of any given property will be read and displayed. This is useful for example when displaying the cut buffer on the root window which could run to several pages if displayed in full. Normally each property name is displayed by printing first the property name then its type (if it has one) in parentheses followed by its value. The -notype argument specifies that property types should not be displayed. The -fs argument is used to specify a file containing a list of formats for properties while the -f argument is used to specify the format for one property. The formatting information for a property actually consists of two parts, a format and a dformat. The format specifies the actual formatting of the property (i.e., is it made up of words, bytes, or longs?, etc.) while the dformat specifies how the property should be displayed. The following paragraphs describe how to construct formats and dformats. However, for the vast majority of users and uses, this should not be necessary as the built in defaults contain the formats and dformats necessary to display all the standard properties. It should only be necessary to specify formats and dformats if a new property is being dealt with or the user dislikes the standard display format. New users especially are encouraged to skip this part. A format consists of one of 0, 8, 16, or 32 followed by a sequence of one or more format characters. The 0, 8, 16, or 32 specifies how many bits per field there are in the property. Zero is a special case meaning use the field size information associated with the property itself. (This is only needed for special cases like type INTEGER which is actually three different types depending on the size of the fields of the property.) A value of 8 means that the property is a sequence of bytes while a value of 16 would mean that the property is a sequence of words. The difference between these two lies in the fact that the sequence of words will be byte swapped while the sequence of bytes will not be when read by a machine of the opposite byte order of the machine that originally wrote the property. For more information on how properties are formatted and stored, consult the Xlib manual. Once the size of the fields has been specified, it is necessary to specify the type of each field (i.e., is it an integer, a string, an atom, or what?) This is done using one format character per field. If there are more fields in the property than format characters supplied, the last character will be repeated as many times as necessary for the extra fields. The format characters and their meaning are as follows: a The field holds an atom number. A field of this type should be of size 32. b The field is an boolean. A 0 means false while anything else means true. c The field is an unsigned number, a cardinal. i The field is a signed integer. m The field is a set of bit flags, 1 meaning on. s This field and the next ones until either a 0 or the end of the property represent a sequence of bytes. This format character is only usable with a field size of 8 and is most often used to represent a string. t This field and the next ones until either a 0 or the end of the property represent an internationalized text string. This format character is only usable with a field size of 8. The string is assumed to be in an ICCCM compliant encoding and is converted to the current locale encoding before being output. x The field is a hex number (like 'c' but displayed in hex - most useful for displaying window ids and the like) An example format is 32ica which is the format for a property of three fields of 32 bits each, the first holding a signed integer, the second an unsigned integer, and the third an atom. The format of a dformat unlike that of a format is not so rigid. The only limitations on a dformat is that one may not start with a letter or a dash. This is so that it can be distinguished from a property name or an argument. A dformat is a text string containing special characters instructing that various fields be printed at various points in a manner similar to the formatting string used by printf. For example, the dformat " is ( $0, $1 \)\n" would render the POINT 3, -4 which has a format of 32ii as " is ( 3, -4 )\n". Any character other than a $, ?, \, or a ( in a dformat prints as itself. To print out one of $, ?, \, or ( precede it by a \. For example, to print out a $, use \$. Several special backslash sequences are provided as shortcuts. \n will cause a newline to be displayed while \t will cause a tab to be displayed. \o where o is an octal number will display character number o. A $ followed by a number n causes field number n to be displayed. The format of the displayed field depends on the formatting character used to describe it in the corresponding format. I.e., if a cardinal is described by 'c' it will print in decimal while if it is described by a 'x' it is displayed in hex. If the field is not present in the property (this is possible with some properties), is displayed instead. $n+ will display field number n then a comma then field number n+1 then another comma then ... until the last field defined. If field n is not defined, nothing is displayed. This is useful for a property that is a list of values. A ? is used to start a conditional expression, a kind of if-then statement. ?exp(text) will display text if and only if exp evaluates to non-zero. This is useful for two things. First, it allows fields to be displayed if and only if a flag is set. And second, it allows a value such as a state number to be displayed as a name rather than as just a number. The syntax of exp is as follows: exp ::= term | term=exp | !exp term ::= n | $n | mn The ! operator is a logical ``not'', changing 0 to 1 and any non-zero value to 0. = is an equality operator. Note that internally all expressions are evaluated as 32 bit numbers so -1 is not equal to 65535. = returns 1 if the two values are equal and 0 if not. n represents the constant value n while $n represents the value of field number n. mn is 1 if flag number n in the first field having format character 'm' in the corresponding format is 1, 0 otherwise. Examples: ?m3(count: $3\n) displays field 3 with a label of count if and only if flag number 3 (count starts at 0!) is on. ?$2=0(True)?!$2=0(False) displays the inverted value of field 2 as a boolean. In order to display a property, xprop needs both a format and a dformat. Before xprop uses its default values of a format of 32x and a dformat of " = { $0+ }\n", it searches several places in an attempt to find more specific formats. First, a search is made using the name of the property. If this fails, a search is made using the type of the property. This allows type STRING to be defined with one set of formats while allowing property WM_NAME which is of type STRING to be defined with a different format. In this way, the display formats for a given type can be overridden for specific properties. The locations searched are in order: the format if any specified with the property name (as in 8x WM_NAME), the formats defined by -f options in last to first order, the contents of the file specified by the -fs option if any, the contents of the file specified by the environmental variable XPROPFORMATS if any, and finally xprop's built in file of formats. The format of the files referred to by the -fs argument and the XPROPFORMATS variable is one or more lines of the following form: name format [dformat] Where name is either the name of a property or the name of a type, format is the format to be used with name and dformat is the dformat to be used with name. If dformat is not present, " = $0+\n" is assumed. EXAMPLES To display the name of the root window: xprop -root WM_NAME To display the window manager hints for the clock: xprop -name xclock WM_HINTS To display the start of the cut buffer: xprop -root -len 100 CUT_BUFFER0 To display the point size of the fixed font: xprop -font fixed POINT_SIZE To display all the properties of window # 0x200007: xprop -id 0x200007 ENVIRONMENT DISPLAY To get default display. XPROPFORMATS Specifies the name of a file from which additional formats are to be obtained. SEE ALSO X(7), xwininfo(1) AUTHOR Mark Lillibridge, MIT Project Athena XRANDR(1) XRANDR(1) NAME xrandr - primitive command line interface to RandR extension SYNOPSIS xrandr [-help] [-display display] [-o orientation] [-q] [-v] [-s size] [-x] [-y] [--screen snum] [--verbose] DESCRIPTION Xrandr is used to set the screen size, orientation and/or reflection. The -s option is a small integer index used to specify which size the screen should be set to. To find out what sizes are available, use the -q option, which reports the sizes available, the current rotation, and the possible rotations and reflections. The default size is the first size specified in the list. The -o option is used to specify the orientation of the screen, and can be one of "normal inverted left right 0 1 2 3". The -x option instructs the server to reflect the screen on the X axis. The -y option instructs the server to reflect the screen on the Y axis. Reflection is applied after rotation. The -help option prints out a usage summary. The --verbose option tells you what xrandr is doing, selects for events, and tells you when events are received to enable debugging. SEE ALSO Xrandr(3) AUTHORS Keith Packard, XFree86 Core Team and Cambridge Research Laboratory, HP Labs, HP. and Jim Gettys, Cambridge Research Laboratory, HP Labs, HP. XRDB(1) XRDB(1) NAME xrdb - X server resource database utility SYNOPSIS xrdb [-option ...] [filename] DESCRIPTION Xrdb is used to get or set the contents of the RESOURCE_MANAGER property on the root window of screen 0, or the SCREEN_RESOURCES property on the root window of any or all screens, or everything combined. You would normally run this program from your X startup file. Most X clients use the RESOURCE_MANAGER and SCREEN_RESOURCES properties to get user preferences about color, fonts, and so on for applications. Having this information in the server (where it is available to all clients) instead of on disk, solves the problem in previous versions of X that required you to maintain defaults files on every machine that you might use. It also allows for dynamic changing of defaults without editing files. The RESOURCE_MANAGER property is used for resources that apply to all screens of the display. The SCREEN_RESOURCES property on each screen specifies additional (or overriding) resources to be used for that screen. (When there is only one screen, SCREEN_RESOURCES is normally not used, all resources are just placed in the RESOURCE_MANAGER property.) The file specified by filename (or the contents from standard input if - or no filename is given) is optionally passed through the C preprocessor with the following symbols defined, based on the capabilities of the server being used: SERVERHOST=hostname the hostname portion of the display to which you are connected. SRVR_name the SERVERHOST hostname string turned into a legal identifier. For example, "my-dpy.lcs.mit.edu" becomes SRVR_my_dpy_lcs_mit_edu. HOST=hostname the same as SERVERHOST. DISPLAY_NUM=num the number of the display on the server host. CLIENTHOST=hostname the name of the host on which xrdb is running. CLNT_name the CLIENTHOST hostname string turned into a legal identifier. For example, "expo.lcs.mit.edu" becomes CLNT_expo_lcs_mit_edu. RELEASE=num the vendor release number for the server. The interpretation of this number will vary depending on VENDOR. REVISION=num the X protocol minor version supported by this server (currently 0). VERSION=num the X protocol major version supported by this server (should always be 11). VENDOR="vendor" a string literal specifying the vendor of the server. VNDR_name the VENDOR name string turned into a legal identifier. For example, "MIT X Consortium" becomes VNDR_MIT_X_Consortium. EXT_name A symbol is defined for each protocol extension supported by the server. Each extension string name is turned into a legal identifier. For example, "X3D-PEX" becomes EXT_X3D_PEX. NUM_SCREENS=num the total number of screens. SCREEN_NUM=num the number of the current screen (from zero). BITS_PER_RGB=num the number of significant bits in an RGB color specification. This is the log base 2 of the number of distinct shades of each primary that the hardware can generate. Note that it usually is not related to PLANES. CLASS=visualclass one of StaticGray, GrayScale, StaticColor, PseudoColor, TrueColor, DirectColor. This is the visual class of the root window. CLASS_visualclass=visualid the visual class of the root window in a form you can #ifdef on. The value is the numeric id of the visual. COLOR defined only if CLASS is one of StaticColor, PseudoColor, TrueColor, or DirectColor. CLASS_visualclass_depth=num A symbol is defined for each visual supported for the screen. The symbol includes the class of the visual and its depth; the value is the numeric id of the visual. (If more than one visual has the same class and depth, the numeric id of the first one reported by the server is used.) HEIGHT=num the height of the root window in pixels. WIDTH=num the width of the root window in pixels. PLANES=num the number of bit planes (the depth) of the root window. X_RESOLUTION=num the x resolution of the screen in pixels per meter. Y_RESOLUTION=num the y resolution of the screen in pixels per meter. SRVR_name, CLNT_name, VNDR_name, and EXT_name identifiers are formed by changing all characters other than letters and digits into underscores (_). Lines that begin with an exclamation mark (!) are ignored and may be used as comments. Note that since xrdb can read from standard input, it can be used to the change the contents of properties directly from a terminal or from a shell script. OPTIONS xrdb program accepts the following options: -help This option (or any unsupported option) will cause a brief description of the allowable options and parameters to be printed. -display display This option specifies the X server to be used; see X(7). It also specifies the screen to use for the -screen option, and it specifies the screen from which preprocessor symbols are derived for the -global option. -all This option indicates that operation should be performed on the screen-independent resource property (RESOURCE_MANAGER), as well as the screen-specific property (SCREEN_RESOURCES) on every screen of the display. For example, when used in conjunction with -query, the contents of all properties are output. For -load, -override and -merge, the input file is processed once for each screen. The resources which occur in common in the output for every screen are collected, and these are applied as the screen-independent resources. The remaining resources are applied for each individual per-screen property. This the default mode of operation. -global This option indicates that the operation should only be performed on the screen-independent RESOURCE_MANAGER property. -screen This option indicates that the operation should only be performed on the SCREEN_RESOURCES property of the default screen of the display. -screens This option indicates that the operation should be performed on the SCREEN_RESOURCES property of each screen of the display. For -load, -override and -merge, the input file is processed for each screen. -n This option indicates that changes to the specified properties (when used with -load, -override or -merge) or to the resource file (when used with -edit) should be shown on the standard output, but should not be performed. -quiet This option indicates that warning about duplicate entries should not be displayed. -cpp filename This option specifies the pathname of the C preprocessor program to be used. Although xrdb was designed to use CPP, any program that acts as a filter and accepts the -D, -I, and -U options may be used. -nocpp This option indicates that xrdb should not run the input file through a preprocessor before loading it into properties. -symbols This option indicates that the symbols that are defined for the preprocessor should be printed onto the standard output. -query This option indicates that the current contents of the specified properties should be printed onto the standard output. Note that since preprocessor commands in the input resource file are part of the input file, not part of the property, they won't appear in the output from this option. The -edit option can be used to merge the contents of properties back into the input resource file without damaging preprocessor commands. -load This option indicates that the input should be loaded as the new value of the specified properties, replacing whatever was there (i.e. the old contents are removed). This is the default action. -override This option indicates that the input should be added to, instead of replacing, the current contents of the specified properties. New entries override previous entries. -merge This option indicates that the input should be merged and lexicographically sorted with, instead of replacing, the current contents of the specified properties. -remove This option indicates that the specified properties should be removed from the server. -retain This option indicates that the server should be instructed not to reset if xrdb is the first client. This never be necessary under normal conditions, since xdm and xinit always act as the first client. -edit filename This option indicates that the contents of the specified properties should be edited into the given file, replacing any values already listed there. This allows you to put changes that you have made to your defaults back into your resource file, preserving any comments or preprocessor lines. -backup string This option specifies a suffix to be appended to the filename used with -edit to generate a backup file. -Dname[=value] This option is passed through to the preprocessor and is used to define symbols for use with conditionals such as -Uname This option is passed through to the preprocessor and is used to remove any definitions of this symbol. -Idirectory This option is passed through to the preprocessor and is used to specify a directory to search for files that are referenced with #include. FILES Generalizes ~/.Xdefaults files. SEE ALSO X(7), Xlib Resource Manager documentation, Xt resource documentation ENVIRONMENT DISPLAY to figure out which display to use. BUGS The default for no arguments should be to query, not to overwrite, so that it is consistent with other programs. AUTHORS Bob Scheifler, Phil Karlton, rewritten from the original by Jim Gettys XREFRESH(1) XREFRESH(1) NAME xrefresh - refresh all or part of an X screen SYNOPSIS xrefresh [-option ...] DESCRIPTION Xrefresh is a simple X program that causes all or part of your screen to be repainted. This is useful when system messages have messed up your screen. Xrefresh maps a window on top of the desired area of the screen and then immediately unmaps it, causing refresh events to be sent to all applications. By default, a window with no background is used, causing all applications to repaint ``smoothly.'' However, the various options can be used to indicate that a solid background (of any color) or the root window background should be used instead. ARGUMENTS -white Use a white background. The screen just appears to flash quickly, and then repaint. -black Use a black background (in effect, turning off all of the electron guns to the tube). This can be somewhat disorienting as everything goes black for a moment. -solid color Use a solid background of the specified color. Try green. -root Use the root window background. -none This is the default. All of the windows simply repaint. -geometry WxH+X+Y Specifies the portion of the screen to be repainted; see X(7). -display display This argument allows you to specify the server and screen to refresh; see X(7). X DEFAULTS The xrefresh program uses the routine XGetDefault(3X) to read defaults, so its resource names are all capitalized. Black, White, Solid, None, Root Determines what sort of window background to use. Geometry Determines the area to refresh. Not very useful. ENVIRONMENT DISPLAY - To get default host and display number. SEE ALSO X(7) BUGS It should have just one default type for the background. AUTHORS Jim Gettys, Digital Equipment Corp., MIT Project Athena XRX(1) XRX(1) NAME xrx - RX helper program SYNOPSIS xrx [-toolkitoption ...] filename DESCRIPTION The helper program may be used with any Web browser to interpret documents in the RX MIME type format and start remote applications. xrx reads in the RX document specified by its filename, from which it gets the list of services the application wants to use. Based on this information, xrx sets the various requested services, including creating authorization keys if your X server supports the SECURITY extension. It then passes the relevant data, such as the X display name, to the application through an HTTP GET request of the associated CGI script. The Web server then executes the CGI script to start the application. The client runs on the web server host connected to your X server. INSTALLATION You need to configure your web browser to use xrx for RX documents. Generally the following line in your $HOME/.mailcap is enough: application/x-rx; xrx %s However, you may need to refer to your web browser's documentation for exact instructions on configuring helper applications. Once correctly configured, your browser will activate the helper program whenever you retrieve any document of the MIME type application/x-rx. OPTIONS The xrx helper program accepts all of the standard X Toolkit command line options such as: -xrm resourcestring This option specifies a resource string to be used. There may be several instances of this option on the command line. RESOURCES The application class name of the xrx program is Xrx and it understands the following application resource names and classes: xrxHasFirewallProxy (class XrxHasFirewallProxy) Specifies whether an X server firewall proxy (see xfwp) is running and should be used. Default is ``False.'' xrxInternalWebServers (class XrxInternalWebServers) The web servers for which the X server firewall proxy should not be used (only relevant when xrxHasFirewallProxy is ``True''). Its value is a comma separated list of mask/value pairs to be used to filter internal web servers, based on their address. The mask part specifies which segments of the address are to be considered and the value part specifies what the result should match. For instance the following list: 255.255.255.0/198.112.45.0, 255.255.255.0/198.112.46.0 matches the address sets: 198.112.45.* and 198.112.46.*. More precisely, the test is (address & mask) == value. xrxFastWebServers (class XrxFastWebServers) The web servers for which LBX should not be used. The resource value is a list of address mask/value pairs, as previously described. xrxTrustedWebServers (class XrxTrustedWebServers) The web servers from which remote applications should be run as trusted clients. The default is to run remote applications as untrusted clients. The resource value is a list of address mask/value pairs, as previously described. ENVIRONMENT The xrx helper program uses the standard X environment variables such as ``DISPLAY'' to get the default X server host and display number. If the RX document requests X-UI-LBX service and the default X server does not advertise the LBX extension, xrx will look for the environment variable ``XREALDISPLAY'' to get a second address for your X server and look for the LBX extension there. When running your browser through lbxproxy you will need to set XREALDISPLAY to the actual address of your server if you wish remote applications to be able to use LBX across the Internet. If the RX document requests XPRINT service, xrx looks for the variable ``XPRINTER'' to get the printer name and X Print server address to use. If the server address is not specified as part of XPRINTER, xrx uses the first one specified through the variable ``XPSERVERLIST'' when it is set. When it is not xrx then tries to use the video server as the print server. If the printer name is not specified via XPRINTER, xrx looks for it in the variables ``PDPRINTER'', then ``LPDEST'', and finally ``PRINTER'', Finally, if you are using a firewall proxy, xrx will look for ``PROXY_MANAGER'' to get the address of your proxy manager (see proxymngr). When not specified it will use ":6500" as the default. KNOWN BUG When an authorization key is created for a remote application to use the X Print service, the helper program has to create the key with an infinite timeout since nobody knows when the application will actually connect to the X Print server. Therefore, in this case, the helper program stays around to revoke the key when the application goes away (that is when its video key expires). However, if the helper program dies unexpectedly the print authorization key will never get revoked. SEE ALSO libxrx (1), xfwp (1), lbxproxy (1), proxymngr (1), The RX Document specification AUTHOR Arnaud Le Hors, X Consortium XSERVER(1) XSERVER(1) NAME Xserver - X Window System display server SYNOPSIS X [option ...] DESCRIPTION X is the generic name for the X Window System display server. It is frequently a link or a copy of the appropriate server binary for driving the most frequently used server on a given machine. STARTING THE SERVER The X server is usually started from the X Display Manager program xdm(1) or a similar display manager program. This utility is run from the system boot files and takes care of keeping the server running, prompting for usernames and passwords, and starting up the user sessions. Installations that run more than one window system may need to use the xinit(1) utility instead of a display manager. However, xinit is to be considered a tool for building startup scripts and is not intended for use by end users. Site administrators are strongly urged to use a display manager, or build other interfaces for novice users. The X server may also be started directly by the user, though this method is usually reserved for testing and is not recommended for normal operation. On some platforms, the user must have special permission to start the X server, often because access to certain devices (e.g. /dev/mouse) is restricted. When the X server starts up, it typically takes over the display. If you are running on a workstation whose console is the display, you may not be able to log into the console while the server is running. OPTIONS Many X servers have device-specific command line options. See the manual pages for the individual servers for more details; a list of server-specific manual pages is provided in the SEE ALSO section below. All of the X servers accept the command line options described below. Some X servers may have alternative ways of providing the parameters described here, but the values provided via the command line options should override values specified via other mechanisms. :displaynumber The X server runs as the given displaynumber, which by default is 0. If multiple X servers are to run simultaneously on a host, each must have a unique display number. See the DISPLAY NAMES section of the X(7) manual page to learn how to specify which display number clients should try to use. -a number sets pointer acceleration (i.e. the ratio of how much is reported to how much the user actually moved the pointer). -ac disables host-based access control mechanisms. Enables access by any host, and permits any host to modify the access control list. Use with extreme caution. This option exists primarily for running test suites remotely. -audit level sets the audit trail level. The default level is 1, meaning only connection rejections are reported. Level 2 additionally reports all successful connections and disconnects. Level 4 enables messages from the SECURITY extension, if present, including generation and revocation of authorizations and violations of the security policy. Level 0 turns off the audit trail. Audit lines are sent as standard error output. -auth authorization-file specifies a file which contains a collection of authorization records used to authenticate access. See also the xdm(1) and Xsecurity(7) manual pages. bc disables certain kinds of error checking, for bug compatibility with previous releases (e.g., to work around bugs in R2 and R3 xterms and toolkits). Deprecated. -bs disables backing store support on all screens. -br sets the default root window to solid black instead of the standard root weave pattern. -c turns off key-click. c volume sets key-click volume (allowable range: 0-100). -cc class sets the visual class for the root window of color screens. The class numbers are as specified in the X protocol. Not obeyed by all servers. -co filename sets name of RGB color database. The default is /usr/X11R6/lib/X11/rgb. -core causes the server to generate a core dump on fatal errors. -deferglyphs whichfonts specifies the types of fonts for which the server should attempt to use deferred glyph loading. whichfonts can be all (all fonts), none (no fonts), or 16 (16 bit fonts only). -dpi resolution sets the resolution for all screens, in dots per inch. To be used when the server cannot determine the screen size(s) from the hardware. dpms enables DPMS (display power management services), where supported. The default state is platform and configuration specific. -dpms disables DPMS (display power management services). The default state is platform and configuration specific. -f volume sets feep (bell) volume (allowable range: 0-100). -fc cursorFont sets default cursor font. -fn font sets the default font. -fp fontPath sets the search path for fonts. This path is a comma separated list of directories which the X server searches for font databases. See the FONTS section of this manual page for more information and the default list. -help prints a usage message. -I causes all remaining command line arguments to be ignored. -maxbigreqsize size sets the maxmium big request to size MB. -nolisten trans-type disables a transport type. For example, TCP/IP connections can be disabled with -nolisten tcp. This option may be issued multiple times to disable listening to different transport types. -noreset prevents a server reset when the last client connection is closed. This overrides a previous -terminate command line option. -p minutes sets screen-saver pattern cycle time in minutes. -pn permits the server to continue running if it fails to establish all of its well-known sockets (connection points for clients), but establishes at least one. This option is set by default. -nopn causes the server to exit if it fails to establish all of its well-known sockets (connection points for clients). -r turns off auto-repeat. r turns on auto-repeat. -s minutes sets screen-saver timeout time in minutes. -su disables save under support on all screens. -t number sets pointer acceleration threshold in pixels (i.e. after how many pixels pointer acceleration should take effect). -terminate causes the server to terminate at server reset, instead of continuing to run. This overrides a previous -noreset command line option. -to seconds sets default connection timeout in seconds. -tst disables all testing extensions (e.g., XTEST, XTrap, XTestExtension1, RECORD). ttyxx ignored, for servers started the ancient way (from init). v sets video-off screen-saver preference. -v sets video-on screen-saver preference. -wm forces the default backing-store of all windows to be WhenMapped. This is a backdoor way of getting backing-store to apply to all windows. Although all mapped windows will have backing store, the backing store attribute value reported by the server for a window will be the last value established by a client. If it has never been set by a client, the server will report the default value, NotUseful. This behavior is required by the X protocol, which allows the server to exceed the client's backing store expectations but does not provide a way to tell the client that it is doing so. -x extension loads the specified extension at init. This is a no-op for most implementations. [+-]xinerama enables(+) or disables(-) the XINERAMA extension. The default state is platform and configuration specific. SERVER DEPENDENT OPTIONS Some X servers accept the following options: -ld kilobytes sets the data space limit of the server to the specified number of kilobytes. A value of zero makes the data size as large as possible. The default value of -1 leaves the data space limit unchanged. -lf files sets the number-of-open-files limit of the server to the specified number. A value of zero makes the limit as large as possible. The default value of -1 leaves the limit unchanged. -ls kilobytes sets the stack space limit of the server to the specified number of kilobytes. A value of zero makes the stack size as large as possible. The default value of -1 leaves the stack space limit unchanged. -logo turns on the X Window System logo display in the screen-saver. There is currently no way to change this from a client. nologo turns off the X Window System logo display in the screen-saver. There is currently no way to change this from a client. -render default|mono|gray|color sets the color allocation policy that will be used by the render extension. default selects the default policy defined for the display depth of the X server. mono don't use any color cell. gray use a gray map of 13 color cells for the X render extension. color use a color cube of at most 4*4*4 colors (that is 64 color cells). -dumbSched disables smart scheduling on platforms that support the smart scheduler. -schedInterval interval sets the smart scheduler's scheduling interval to interval milliseconds. XDMCP OPTIONS X servers that support XDMCP have the following options. See the X Display Manager Control Protocol specification for more information. -query hostname enables XDMCP and sends Query packets to the specified hostname. -broadcast enable XDMCP and broadcasts BroadcastQuery packets to the network. The first responding display manager will be chosen for the session. -multicast [address [hop count]] Enable XDMCP and multicast BroadcastQuery packets to the network. The first responding display manager is chosen for the session. If an address is specified, the multicast is sent to that address. If no address is specified, the multicast is sent to the default XDMCP IPv6 multicast group. If a hop count is specified, it is used as the maximum hop count for the multicast. If no hop count is specified, the multicast is set to a maximum of 1 hop, to prevent the multicast from being routed beyond the local network. -indirect hostname enables XDMCP and send IndirectQuery packets to the specified hostname. -port port-number uses the specified port-number for XDMCP packets, instead of the default. This option must be specified before any -query, -broadcast, -multicast, or -indirect options. -from local-address specifies the local address to connect from (useful if the connecting host has multiple network interfaces). The local- address may be expressed in any form acceptable to the host platform's gethostbyname(3) implementation. -once causes the server to terminate (rather than reset) when the XDMCP session ends. -class display-class XDMCP has an additional display qualifier used in resource lookup for display-specific options. This option sets that value, by default it is "MIT-Unspecified" (not a very useful value). -cookie xdm-auth-bits When testing XDM-AUTHENTICATION-1, a private key is shared between the server and the manager. This option sets the value of that private data (not that it is very private, being on the command line!). -displayID display-id Yet another XDMCP specific value, this one allows the display manager to identify each display so that it can locate the shared key. XKEYBOARD OPTIONS X servers that support the XKEYBOARD (a.k.a. "XKB") extension accept the following options. All layout files specified on the command line must be located in the XKB base directory or a subdirectory, and specified as the relative path from the XKB base directory. The default XKB base directory is /usr/X11R6/lib/X11/xkb. [+-]kb enables(+) or disables(-) the XKEYBOARD extension. [+-]accessx [ timeout [ timeout_mask [ feedback [ options_mask ] ] ] ] enables(+) or disables(-) AccessX key sequences. -xkbdir directory base directory for keyboard layout files. This option is not available for setuid X servers (i.e., when the X server's real and effective uids are different). -ar1 milliseconds sets the autorepeat delay (length of time in milliseconds that a key must be depressed before autorepeat starts). -ar2 milliseconds sets the autorepeat interval (length of time in milliseconds that should elapse between autorepeat-generated keystrokes). -noloadxkb disables loading of an XKB keymap description on server startup. -xkbdb filename uses filename for default keyboard keymaps. -xkbmap filename loads keyboard description in filename on server startup. SECURITY EXTENSION OPTIONS X servers that support the SECURITY extension accept the following option: -sp filename causes the server to attempt to read and interpret filename as a security policy file with the format described below. The file is read at server startup and reread at each server reset. The syntax of the security policy file is as follows. Notation: "*" means zero or more occurrences of the preceding element, and "+" means one or more occurrences. To interpret , ignore the text after the /; it is used to distinguish between instances of in the next section. ::= * ::= '\n' ::= | | | ::= # * '\n' ::= '\n' ::= sitepolicy '\n' ::= property '\n' ::= ::= any | root | ::= | ::= = ::= [ | | ]* ::= r | w | d ::= a | i | e ::= | | ::= " * " ::= ' * ' ::= + ::= [ ' ' | '\t' ]* Character sets: ::= any character except '\n' ::= any character except " ::= any character except ' ::= any character except those in The semantics associated with the above syntax are as follows. , the first line in the file, specifies the file format version. If the server does not recognize the version , it ignores the rest of the file. The version string for the file format described here is "version-1" . Once past the , lines that do not match the above syntax are ignored. lines are ignored. lines are currently ignored. They are intended to specify the site policies used by the XC-QUERY-SECURITY-1 authorization method. lines specify how the server should react to untrusted client requests that affect the X Window property named . The rest of this section describes the interpretation of an . For an to apply to a given instance of , must be on a window that is in the set of windows specified by . If is any, the rule applies to on any window. If is root, the rule applies to only on root windows. If is , the following apply. If is a , the rule applies when the window also has that , regardless of its value. If is a , must also have the value specified by . In this case, the property must have type STRING and format 8, and should contain one or more null-terminated strings. If any of the strings match , the rule applies. The definition of string matching is simple case-sensitive string comparison with one elaboration: the occurrence of the character '*' in is a wildcard meaning "any string." A can contain multiple wildcards anywhere in the string. For example, "x*" matches strings that begin with x, "*x" matches strings that end with x, "*x*" matches strings containing x, and "x*y*" matches strings that start with x and subsequently contain y. There may be multiple lines for a given . The rules are tested in the order that they appear in the file. The first rule that applies is used. specify operations that untrusted clients may attempt, and the actions that the server should take in response to those operations. can be r (read), w (write), or d (delete). The following table shows how X Protocol property requests map to these operations in The Open Group server implementation. GetProperty r, or r and d if delete = True ChangeProperty w RotateProperties r and w DeleteProperty d ListProperties none, untrusted clients can always list all properties can be a (allow), i (ignore), or e (error). Allow means execute the request as if it had been issued by a trusted client. Ignore means treat the request as a no-op. In the case of GetProperty, ignore means return an empty property value if the property exists, regardless of its actual value. Error means do not execute the request and return a BadAtom error with the atom set to the property name. Error is the default action for all properties, including those not listed in the security policy file. An applies to all s that follow it, until the next is encountered. Thus, irwad means ignore read and write, allow delete. GetProperty and RotateProperties may do multiple operations (r and d, or r and w). If different actions apply to the operations, the most severe action is applied to the whole request; there is no partial request execution. The severity ordering is: allow < ignore < error. Thus, if the for a property are ired (ignore read, error delete), and an untrusted client attempts GetProperty on that property with delete = True, an error is returned, but the property value is not. Similarly, if any of the properties in a RotateProperties do not allow both read and write, an error is returned without changing any property values. Here is an example security policy file. version-1 # Allow reading of application resources, but not writing. property RESOURCE_MANAGER root ar iw property SCREEN_RESOURCES root ar iw # Ignore attempts to use cut buffers. Giving errors causes apps to crash, # and allowing access may give away too much information. property CUT_BUFFER0 root irw property CUT_BUFFER1 root irw property CUT_BUFFER2 root irw property CUT_BUFFER3 root irw property CUT_BUFFER4 root irw property CUT_BUFFER5 root irw property CUT_BUFFER6 root irw property CUT_BUFFER7 root irw # If you are using Motif, you probably want these. property _MOTIF_DEFAULT_BINDINGS rootar iw property _MOTIF_DRAG_WINDOW root ar iw property _MOTIF_DRAG_TARGETS any ar iw property _MOTIF_DRAG_ATOMS any ar iw property _MOTIF_DRAG_ATOM_PAIRS any ar iw # The next two rules let xwininfo -tree work when untrusted. property WM_NAME any ar # Allow read of WM_CLASS, but only for windows with WM_NAME. # This might be more restrictive than necessary, but demonstrates # the facility, and is also an attempt to # say "top level windows only." property WM_CLASS WM_NAME ar # These next three let xlsclients work untrusted. Think carefully # before including these; giving away the client machine name and command # may be exposing too much. property WM_STATE WM_NAME ar property WM_CLIENT_MACHINE WM_NAME ar property WM_COMMAND WM_NAME ar # To let untrusted clients use the standard colormaps created by # xstdcmap, include these lines. property RGB_DEFAULT_MAP root ar property RGB_BEST_MAP root ar property RGB_RED_MAP root ar property RGB_GREEN_MAP root ar property RGB_BLUE_MAP root ar property RGB_GRAY_MAP root ar # To let untrusted clients use the color management database created # by xcmsdb, include these lines. property XDCCC_LINEAR_RGB_CORRECTION rootar property XDCCC_LINEAR_RGB_MATRICES rootar property XDCCC_GRAY_SCREENWHITEPOINT rootar property XDCCC_GRAY_CORRECTION rootar # To let untrusted clients use the overlay visuals that many vendors # support, include this line. property SERVER_OVERLAY_VISUALS rootar # Dumb examples to show other capabilities. # oddball property names and explicit specification of error conditions property "property with spaces" 'property with "'aw er ed # Allow deletion of Woo-Hoo if window also has property OhBoy with value # ending in "son". Reads and writes will cause an error. property Woo-Hoo OhBoy = "*son"ad NETWORK CONNECTIONS The X server supports client connections via a platform-dependent subset of the following transport types: TCPIP, Unix Domain sockets, DECnet, and several varieties of SVR4 local connections. See the DISPLAY NAMES section of the X(7) manual page to learn how to specify which transport type clients should try to use. GRANTING ACCESS The X server implements a platform-dependent subset of the following authorization protocols: MIT-MAGIC-COOKIE-1, XDM-AUTHORIZATION-1, XDM- AUTHORIZATION-2, SUN-DES-1, and MIT-KERBEROS-5. See the Xsecurity(7) manual page for information on the operation of these protocols. Authorization data required by the above protocols is passed to the server in a private file named with the -auth command line option. Each time the server is about to accept the first connection after a reset (or when the server is starting), it reads this file. If this file contains any authorization records, the local host is not automatically allowed access to the server, and only clients which send one of the authorization records contained in the file in the connection setup information will be allowed access. See the Xau manual page for a description of the binary format of this file. See xauth(1) for maintenance of this file, and distribution of its contents to remote hosts. The X server also uses a host-based access control list for deciding whether or not to accept connections from clients on a particular machine. If no other authorization mechanism is being used, this list initially consists of the host on which the server is running as well as any machines listed in the file /etc/Xn.hosts, where n is the display number of the server. Each line of the file should contain either an Internet hostname (e.g. expo.lcs.mit.edu) or a DECnet hostname in double colon format (e.g. hydra::) or a complete name in the format family:name as described in the xhost(1) manual page. There should be no leading or trailing spaces on any lines. For example: joesworkstation corporate.company.com star:: inet:bigcpu local: Users can add or remove hosts from this list and enable or disable access control using the xhost command from the same machine as the server. If the X FireWall Proxy (xfwp) is being used without a sitepolicy, host-based authorization must be turned on for clients to be able to connect to the X server via the xfwp. If xfwp is run without a configuration file and thus no sitepolicy is defined, if xfwp is using an X server where xhost + has been run to turn off host-based authorization checks, when a client tries to connect to this X server via xfwp, the X server will deny the connection. See xfwp(1) for more information about this proxy. The X protocol intrinsically does not have any notion of window operation 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. X servers that support the SECURITY extension fare better because clients can be designated untrusted via the authorization they use to connect; see the xauth(1) manual page for details. Restrictions are imposed on untrusted clients that curtail the mischief they can do. See the SECURITY extension specification for a complete list of these restrictions. Sites that have better authentication and authorization systems might wish to make use of the hooks in the libraries and the server to provide additional security models. SIGNALS The X server attaches special meaning to the following signals: SIGHUP This signal causes the server to close all existing connections, free all resources, and restore all defaults. It is sent by the display manager whenever the main user's main application (usually an xterm or window manager) exits to force the server to clean up and prepare for the next user. SIGTERM This signal causes the server to exit cleanly. SIGINT This signal causes the server to exit after cleaning up the DDX/hardware state. This type of exit is not as clean as a SIGTERM, but is faster, and far better than a SIGKILL. SIGUSR1 This signal is used quite differently from either of the above. When the server starts, it checks to see if it has inherited SIGUSR1 as SIG_IGN instead of the usual SIG_DFL. In this case, the server sends a SIGUSR1 to its parent process after it has set up the various connection schemes. Xdm uses this feature to recognize when connecting to the server is possible. FONTS The X server can obtain fonts from directories and/or from font servers. The list of directories and font servers the X server uses when trying to open a font is controlled by the font path. The default font path is __default_font_path__ . The font path can be set with the -fp option or by xset(1) after the server has started. FILES /etc/Xn.hosts Initial access control list for display number n /usr/X11R6/lib/X11/fonts/misc,/usr/X11R6/lib/X11/fonts/75dpi,/usr/X11R6/lib/X11/fonts/100dpi Bitmap font directories /usr/X11R6/lib/X11/fonts/TTF,/usr/X11R6/lib/X11/fonts/Speedo,/usr/X11R6/lib/X11/fonts/Type1 Outline font directories /usr/X11R6/lib/X11/rgb.txt Color database /tmp/.X11-unix/Xn Unix domain socket for display number n /tmp/rcXn Kerberos 5 replay cache for display number n /usr/adm/Xnmsgs Error log file for display number n if run from init(8) /usr/X11R6/lib/X11/xdm/xdm-errors Default error log file if the server is run from xdm(1) SEE ALSO General information: X(7) Protocols: X Window System Protocol, The X Font Service Protocol, X Display Manager Control Protocol Fonts: bdftopcf(1), mkfontdir(1), mkfontscale(1), xfs(1), xlsfonts(1), xfontsel(1), xfd(1), X Logical Font Description Conventions Security: Xsecurity(7), xauth(1), Xau(1), xdm(1), xhost(1), xfwp(1), Security Extension Specification Starting the server: xdm(1), xinit(1) Controlling the server once started: xset(1), xsetroot(1), xhost(1) Server-specific man pages: Xdec(1), XmacII(1), Xsun(1), Xnest(1), Xvfb(1), XFree86(1), XDarwin(1). Server internal documentation: Definition of the Porting Layer for the X v11 Sample Server AUTHORS The sample server was originally written by Susan Angebranndt, Raymond Drewry, Philip Karlton, and Todd Newman, from Digital Equipment Corporation, with support from a large cast. It has since been extensively rewritten by Keith Packard and Bob Scheifler, from MIT. Dave Wiggins took over post-R5 and made substantial improvements. XSET(1) XSET(1) NAME xset - user preference utility for X SYNOPSIS xset [-display display] [-b] [b on/off] [b [volume [pitch [duration]]] [[-]bc] [-c] [c on/off] [c [volume]] [[+-]dpms] [dpms standby [ suspend [ off]]] [dpms force standby/suspend/off/on] [[-+]fp[-+=] path[,path[,...]]] [fp default] [fp rehash] [[-]led [integer]] [led on/off] [m[ouse] [accel_mult[/accel_div] [threshold]]] [m[ouse] default] [p pixel color] [[-]r [keycode]] [r on/off] [r rate delay [rate]] [s [length [period]]] [s blank/noblank] [s expose/noexpose] [s on/off] [s default] [s activate] [s reset] [q] DESCRIPTION This program is used to set various user preference options of the display. OPTIONS -display display This option specifies the server to use; see X(7). b The b option controls bell volume, pitch and duration. This option accepts up to three numerical parameters, a preceding dash(-), or a 'on/off' flag. If no parameters are given, or the 'on' flag is used, the system defaults will be used. If the dash or 'off' are given, the bell will be turned off. If only one numerical parameter is given, the bell volume will be set to that value, as a percentage of its maximum. Likewise, the second numerical parameter specifies the bell pitch, in hertz, and the third numerical parameter specifies the duration in milliseconds. Note that not all hardware can vary the bell characteristics. The X server will set the characteristics of the bell as closely as it can to the user's specifications. bc The bc option controls bug compatibility mode in the server, if possible; a preceding dash(-) disables the mode, otherwise the mode is enabled. Various pre-R4 clients pass illegal values in some protocol requests, and pre-R4 servers did not correctly generate errors in these cases. Such clients, when run against an R4 server, will terminate abnormally or otherwise fail to operate correctly. Bug compatibility mode explicitly reintroduces certain bugs into the X server, so that many such clients can still be run. This mode should be used with care; new application development should be done with this mode disabled. The server must support the MIT-SUNDRY-NONSTANDARD protocol extension in order for this option to work. c The c option controls key click. This option can take an optional value, a preceding dash(-), or an 'on/off' flag. If no parameter or the 'on' flag is given, the system defaults will be used. If the dash or 'off' flag is used, keyclick will be disabled. If a value from 0 to 100 is given, it is used to indicate volume, as a percentage of the maximum. The X server will set the volume to the nearest value that the hardware can support. -dpms The -dpms option disables DPMS (Energy Star) features. +dpms The +dpms option enables DPMS (Energy Star) features. dpms flags... The dpms option allows the DPMS (Energy Star) parameters to be set. The option can take up to three numerical values, or the `force' flag followed by a DPMS state. The `force' flags forces the server to immediately switch to the DPMS state specified. The DPMS state can be one of `standby', `suspend', `off', or `on'. When numerical values are given, they set the inactivity period (in units of seconds) before the three modes are activated. The first value given is for the `standby' mode, the second is for the `suspend' mode, and the third is for the `off' mode. Setting these values implicitly enables the DPMS features. A value of zero disables a particular mode. fp= path,... The fp= sets the font path to the entries given in the path argument. The entries are interpreted by the server, not by the client. Typically they are directory names or font server names, but the interpretation is server-dependent. fp default The default argument causes the font path to be reset to the server's default. fp rehash The rehash argument resets the font path to its current value, causing the server to reread the font databases in the current font path. This is generally only used when adding new fonts to a font directory (after running mkfontdir to recreate the font database). -fp or fp- The -fp and fp- options remove elements from the current font path. They must be followed by a comma-separated list of entries. +fp or fp+ This +fp and fp+ options prepend and append elements to the current font path, respectively. They must be followed by a comma-separated list of entries. led The led option controls the keyboard LEDs. This controls the turning on or off of one or all of the LEDs. It accepts an optional integer, a preceding dash(-) or an 'on/off' flag. If no parameter or the 'on' flag is given, all LEDs are turned on. If a preceding dash or the flag 'off' is given, all LEDs are turned off. If a value between 1 and 32 is given, that LED will be turned on or off depending on the existence of a preceding dash. A common LED which can be controlled is the ``Caps Lock'' LED. ``xset led 3'' would turn led #3 on. ``xset -led 3'' would turn it off. The particular LED values may refer to different LEDs on different hardware. m The m option controls the mouse parameters. The parameters for the mouse are `acceleration' and `threshold'. The acceleration can be specified as an integer, or as a simple fraction. The mouse, or whatever pointer the machine is connected to, will go `acceleration' times as fast when it travels more than `threshold' pixels in a short time. This way, the mouse can be used for precise alignment when it is moved slowly, yet it can be set to travel across the screen in a flick of the wrist when desired. One or both parameters for the m option can be omitted, but if only one is given, it will be interpreted as the acceleration. If no parameters or the flag 'default' is used, the system defaults will be set. p The p option controls pixel color values. The parameters are the color map entry number in decimal, and a color specification. The root background colors may be changed on some servers by altering the entries for BlackPixel and WhitePixel. Although these are often 0 and 1, they need not be. Also, a server may choose to allocate those colors privately, in which case an error will be generated. The map entry must not be a read-only color, or an error will result. r The r option controls the autorepeat. If a preceding dash or the 'off' flag is used, autorepeat will be disabled. If no parameters or the 'on' flag is used, autorepeat will be enabled. If a specific keycode is specified as a parameter, autorepeat for that keycode is enabled or disabled. If the server supports the XFree86-Misc extension, or the XKB extension, then a parameter of 'rate' is accepted and should be followed by zero, one or two numeric values. The first specifies the delay before autorepeat starts and the second specifies the repeat rate. In the case that the server supports the XKB extension, the delay is the number of milliseconds before autorepeat starts, and the rate is the number of repeats per second. If the rate or delay is not given, it will be set to the default value. Example: The following command will set the delay to 200 milliseconds and the repeat rate to 10 per second: xset r rate 200 10 s The s option lets you set the screen saver parameters. This option accepts up to two numerical parameters, a 'blank/noblank' flag, an 'expose/noexpose' flag, an 'on/off' flag, an 'activate/reset' flag, or the 'default' flag. If no parameters or the 'default' flag is used, the system will be set to its default screen saver characteristics. The 'on/off' flags simply turn the screen saver functions on or off. The 'activate' flag forces activation of screen saver even if the screen saver had been turned off. The 'reset' flag forces deactivation of screen saver if it is active. The 'blank' flag sets the preference to blank the video (if the hardware can do so) rather than display a background pattern, while 'noblank' sets the preference to display a pattern rather than blank the video. The 'expose' flag sets the preference to allow window exposures (the server can freely discard window contents), while 'noexpose' sets the preference to disable screen saver unless the server can regenerate the screens without causing exposure events. The length and period parameters for the screen saver function determines how long the server must be inactive for screen saving to activate, and the period to change the background pattern to avoid burn in. The arguments are specified in seconds. If only one numerical parameter is given, it will be used for the length. q The q option gives you information on the current settings. These settings will be reset to default values when you log out. Note that not all X implementations are guaranteed to honor all of these options. SEE ALSO X(7), Xserver(1), xmodmap(1), xrdb(1), xsetroot(1) AUTHOR Bob Scheifler, MIT Laboratory for Computer Science David Krikorian, MIT Project Athena (X11 version) XFree86-Misc support added by David Dawes and Joe Moss xsetmode(1) xsetmode(1) NAME xsetmode - set the mode for an X Input device SYNOPSIS xsetmode device-name ABSOLUTE | RELATIVE DESCRIPTION Xsetmode sets the mode of an XInput device to either absolute or relative. This isn't appropriate for all device types. AUTHOR Frederic Lepied xsetpointer(1) xsetpointer(1) NAME xsetpointer - set an X Input device as the main pointer SYNOPSIS xsetpointer -l | device-name DESCRIPTION Xsetpointer sets an XInput device up as the main pointer. When called with the -l flag it lists the available devices. AUTHOR Frederic Lepied XSETROOT(1) XSETROOT(1) NAME xsetroot - root window parameter setting utility for X SYNOPSIS xsetroot [-help] [-def] [-display display] [-cursor cursorfile maskfile] [-cursor_name cursorname] [-bitmap filename] [-mod x y] [-gray] [-grey] [-fg color] [-bg color] [-rv] [-solid color] [-name string] DESCRIPTION The setroot program allows you to tailor the appearance of the background ("root") window on a workstation display running X. Normally, you experiment with xsetroot until you find a personalized look that you like, then put the xsetroot command that produces it into your X startup file. If no options are specified, or if -def is specified, the window is reset to its default state. The -def option can be specified along with other options and only the non-specified characteristics will be reset to the default state. Only one of the background color/tiling changing options (-solid, -gray, -grey, -bitmap, and -mod) may be specified at a time. OPTIONS The various options are as follows: -help Print a usage message and exit. -def Reset unspecified attributes to the default values. (Restores the background to the familiar gray mesh and the cursor to the hollow x shape.) -cursor cursorfile maskfile This lets you change the pointer cursor to whatever you want when the pointer cursor is outside of any window. Cursor and mask files are bitmaps (little pictures), and can be made with the bitmap(1) program. You probably want the mask file to be all black until you get used to the way masks work. -cursor_name cursorname This lets you change the pointer cursor to one of the standard cursors from the cursor font. Refer to appendix B of the X protocol for the names (except that the XC_ prefix is elided for this option). -bitmap filename Use the bitmap specified in the file to set the window pattern. You can make your own bitmap files (little pictures) using the bitmap(1) program. The entire background will be made up of repeated "tiles" of the bitmap. -mod x y This is used if you want a plaid-like grid pattern on your screen. x and y are integers ranging from 1 to 16. Try the different combinations. Zero and negative numbers are taken as 1. -gray Make the entire background gray. (Easier on the eyes.) -grey Make the entire background grey. -fg color Use ``color'' as the foreground color. Foreground and background colors are meaningful only in combination with -cursor, -bitmap, or -mod. -bg color Use ``color'' as the background color. -rv This exchanges the foreground and background colors. Normally the foreground color is black and the background color is white. -solid color This sets the background of the root window to the specified color. This option is only useful on color servers. -name string Set the name of the root window to ``string''. There is no default value. Usually a name is assigned to a window so that the window manager can use a text representation when the window is iconified. This option is unused since you can't iconify the background. -display display Specifies the server to connect to; see X(7). SEE ALSO X(7), xset(1), xrdb(1) AUTHOR Mark Lillibridge, MIT Project Athena XSM(1) XSM(1) NAME xsm - X Session Manager SYNOPSIS xsm [-display display] [-session sessionName] [-verbose] DESCRIPTION xsm is a session manager. A session is a group of applications, each of which has a particular state. xsm allows you to create arbitrary sessions - for example, you might have a "light" session, a "development" session, or an "xterminal" session. Each session can have its own set of applications. Within a session, you can perform a "checkpoint" to save application state, or a "shutdown" to save state and exit the session. When you log back in to the system, you can load a specific session, and you can delete sessions you no longer want to keep. Some session managers simply allow you to manually specify a list of applications to be started in a session. xsm is more powerful because it lets you run applications and have them automatically become part of the session. On a simple level, xsm is useful because it gives you this ability to easily define which applications are in a session. The true power of xsm, however, can be taken advantage of when more and more applications learn to save and restore their state. OPTIONS -display display Causes xsm to connect to the specified X display. -session sessionName Causes xsm to load the specified session, bypassing the session menu. -verbose Turns on debugging information. SETUP .xsession file Using xsm requires a change to your .xsession file: The last program executed by your .xsession file should be xsm. With this configuration, when the user chooses to shut down the session using xsm, the session will truly be over. Since the goal of the session manager is to restart clients when logging into a session, your .xsession file, in general, should not directly start up applications. Rather, the applications should be started within a session. When xsm shuts down the session, xsm will know to restart these applications. Note however that there are some types of applications that are not "session aware". xsm allows you to manually add these applications to your session (see the section titled Client List). SM_SAVE_DIR environment variable If the SM_SAVE_DIR environment variable is defined, xsm will save all configuration files in this directory. Otherwise, they will be stored in the user's home directory. Session aware applications are also encouraged to save their checkpoint files in the SM_SAVE_DIR directory, although the user should not depend on this convention. Default Startup Applications The first time xsm is started, it will need to locate a list of applications to start up. For example, this list might include a window manager, a session management proxy, and an xterm. xsm will first look for the file .xsmstartup in the user's home directory. If that file does not exist, it will look for the system.xsm file that was set up at installation time. Note that xsm provides a "fail safe" option when the user chooses a session to start up. The fail safe option simply loads the default applications described above. Each line in the startup file should contain a command to start an application. A sample startup file might look this: twm smproxy xterm STARTING A SESSION When xsm starts up, it first checks to see if the user previously saved any sessions. If no saved sessions exist, xsm starts up a set of default applications (as described above in the section titled Default Startup Applications). If at least one session exists, a session menu is presented. The [-session sessionName] option forces the specified session to be loaded, bypassing the session menu. The session menu The session menu presents the user with a list of sessions to choose from. The user can change the currently selected session with the mouse, or by using the up and down arrows on the keyboard. Note that sessions which are locked (i.e. running on a different display) can not be loaded or deleted. The following operations can be performed from the session menu: Load Session Pressing this button will load the currently selected session. Alternatively, hitting the Return key will also load the currently selected session, or the user can double click a session from the list. Delete Session This operation will delete the currently selected session, along with all of the application checkpoint files associated with the session. After pressing this button, the user will be asked to press the button a second time in order to confirm the operation. Default/Fail Safe xsm will start up a set of default applications (as described above in the section titled Default Startup Applications). This is useful when the user wants to start a fresh session, or if the session configuration files were corrupted and the user wants a "fail safe" session. Cancel Pressing this button will cause xsm to exit. It can also be used to cancel a "Delete Session" operation. CONTROLLING A SESSION After xsm determines which session to load, it brings up its main window, then starts up all applications that are part of the session. The title bar for the session manager's main window will contain the name of the session that was loaded. The following options are available from xsm's main window: Client List Pressing this button brings up a window containing a list of all clients that are in the current session. For each client, the host machine that the client is running on is presented. As clients are added and removed from the session, this list is updated to reflect the changes. The user is able to control how these clients are restarted (see below). By pressing the View Properties button, the user can view the session management properties associated with the currently selected client. By pressing the Clone button, the user can start a copy of the selected application. By pressing the Kill Client button, the user can remove a client from the session. By selecting a restart hint from the Restart Hint menu, the user can control the restarting of a client. The following hints are available: - The Restart If Running hint indicates that the client should be restarted in the next session if it is connected to the session manager at the end of the current session. - The Restart Anyway hint indicates that the client should be restarted in the next session even if it exits before the current session is terminated. - The Restart Immediately hint is similar to the Restart Anyway hint, but in addition, the client is meant to run continuously. If the client exits, the session manager will try to restart it in the current session. - The Restart Never hint indicates that the client should not be restarted in the next session. Note that all X applications may not be "session aware". Applications that are not session aware are ones that do not support the X Session Management Protocol or they can not be detected by the Session Management Proxy (see the section titled THE PROXY). xsm allows the user to manually add such applications to the session. The bottom of the Client List window contains a text entry field in which application commands can be typed in. Each command should go on its own line. This information will be saved with the session at checkpoint or shutdown time. When the session is restarted, xsm will restart these applications in addition to the regular "session aware" applications. Pressing the Done button removes the Client List window. Session Log... The Session Log window presents useful information about the session. For example, when a session is restarted, all of the restart commands will be displayed in the log window. Checkpoint By performing a checkpoint, all applications that are in the session are asked to save their state. Not every application will save its complete state, but at a minimum, the session manager is guaranteed that it will receive the command required to restart the application (along with all command line options). A window manager participating in the session should guarantee that the applications will come back up with the same window configurations. If the session being checkpointed was never assigned a name, the user will be required to specify a session name. Otherwise, the user can perform the checkpoint using the current session name, or a new session name can be specified. If the session name specified already exists, the user will be given the opportunity to specify a different name or to overwrite the already existing session. Note that a session which is locked can not be overwritten. When performing a checkpoint, the user must specify a Save Type which informs the applications in the session how much state they should save. The Local type indicates that the application should save enough information to restore the state as seen by the user. It should not affect the state as seen by other users. For example, an editor would create a temporary file containing the contents of its editing buffer, the location of the cursor, etc... The Global type indicates that the application should commit all of its data to permanent, globally accessible storage. For example, the editor would simply save the edited file. The Both type indicates that the application should do both of these. For example, the editor would save the edited file, then create a temporary file with information such as the location of the cursor, etc... In addition to the Save Type, the user must specify an Interact Style. The None type indicates that the application should not interact with the user while saving state. The Errors type indicates that the application may interact with the user only if an error condition arises. The Any type indicates that the application may interact with the user for any purpose. Note that xsm will only allow one application to interact with the user at a time. After the checkpoint is completed, xsm will, if necessary, display a window containing the list of applications which did not report a successful save of state. Shutdown A shutdown provides all of the options found in a checkpoint, but in addition, can cause the session to exit. Note that if the interaction style is Errors or Any, the user may cancel the shutdown. The user may also cancel the shutdown if any of the applications report an unsuccessful save of state. The user may choose to shutdown the session with our without performing a checkpoint. HOW XSM RESPONDS TO SIGNALS xsm will respond to a SIGTERM signal by performing a shutdown with the following options: fast, no interaction, save type local. This allows the user's session to be saved when the system is being shutdown. It can also be used to perform a remote shutdown of a session. xsm will respond to a SIGUSR1 signal by performing a checkpoint with the following options: no interaction, save type local. This signal can be used to perform a remote checkpoint of a session. THE PROXY Since not all applications have been ported to support the X Session Management Protocol, a proxy service exists to allow "old" clients to work with the session manager. In order for the proxy to detect an application joining a session, one of the following must be true: - The application maps a top level window containing the WM_CLIENT_LEADER property. This property provides a pointer to the client leader window which contains the WM_CLASS, WM_NAME, WM_COMMAND, and WM_CLIENT_MACHINE properties. or ... - The application maps a top level window which does not contain the WM_CLIENT_LEADER property. However, this top level window contains the WM_CLASS, WM_NAME, WM_COMMAND, and WM_CLIENT_MACHINE properties. An application that support the WM_SAVE_YOURSELF protocol will receive a WM_SAVE_YOURSELF client message each time the session manager issues a checkpoint or shutdown. This allows the application to save state. If an application does not support the WM_SAVE_YOURSELF protocol, then the proxy will provide enough information to the session manager to restart the application (using WM_COMMAND), but no state will be restored. REMOTE APPLICATIONS xsm requires a remote execution protocol in order to restart applications on remote machines. Currently, xsm supports the rstart protocol. In order to restart an application on remote machine X, machine X must have rstart installed. In the future, additional remote execution protocols may be supported. SEE ALSO smproxy(1), rstart(1) AUTHORS Ralph Mor, X Consortium Jordan Brown, Quarterdeck Office Systems XSTDCMAP(1) XSTDCMAP(1) NAME xstdcmap - X standard colormap utility SYNOPSIS xstdcmap [-all] [-best] [-blue] [-default] [-delete map] [-display display] [-gray] [-green] [-help] [-red] [-verbose] DESCRIPTION The xstdcmap utility can be used to selectively define standard colormap properties. It is intended to be run from a user's X startup script to create standard colormap definitions in order to facilitate sharing of scarce colormap resources among clients. Where at all possible, colormaps are created with read-only allocations. OPTIONS The following options may be used with xstdcmap: -all This option indicates that all six standard colormap properties should be defined on each screen of the display. Not all screens will support visuals under which all six standard colormap properties are meaningful. xstdcmap will determine the best allocations and visuals for the colormap properties of a screen. Any previously existing standard colormap properties will be replaced. -best This option indicates that the RGB_BEST_MAP should be defined. -blue This option indicates that the RGB_BLUE_MAP should be defined. -default This option indicates that the RGB_DEFAULT_MAP should be defined. -delete map This option specifies that a specific standard colormap property, or all such properties, should be removed. map may be one of: default, best, red, green, blue, gray, or all. -display display This option specifies the host and display to use; see X(7). -gray This option indicates that the RGB_GRAY_MAP should be defined. -green This option indicates that the RGB_GREEN_MAP should be defined. -help This option indicates that a brief description of the command line arguments should be printed on the standard error. This will be done whenever an unhandled argument is given to xstdcmap. -red This option indicates that the RGB_RED_MAP should be defined. -verbose This option indicates that xstdcmap should print logging information as it parses its input and defines the standard colormap properties. ENVIRONMENT DISPLAY to get default host and display number. SEE ALSO X(7) AUTHOR Donna Converse, MIT X Consortium XSUN(1) XSUN(1) NAME Xsun, XsunMono, Xsun24 - Sun server for X Version 11 SYNOPSIS Xsun [ option ] ... DESCRIPTION Xsun is the server for Version 11 of the X window system on Sun hardware. It will normally be started by the xdm(1) daemon or by a script that runs the program xinit(1). CONFIGURATIONS XsunMono supports the BW2 monochrome frame buffer. Xsun supports the CG2, CG3, CG4, and CG6 8-bit color frame buffers in addition to the BW2 monochrome frame buffer. On Solaris 2.5 it also supports the TCX as an 8-bit color frame buffer. Xsun24 supports the cgeight 24-bit color frame buffer in addition to the 8-bit color and monochrome frame buffers that Xsun supports. If specific framebuffer device files aren't specified on the command line with the -dev switch or in the XDEVICE environment variable, the server will search for all installed frame buffers and will use all those that it finds. Finally, if no specific framebuffers are found, the generic framebuffer interface /dev/fb is used. KEYBOARDS Xsun, Xsun24, and XsunMono support the Type-2, Type-3, and many variations of the Type-4 and Type-5 keyboards. Type-4 and Type-5 keyboards feature a key labeled AltGraph which is a mode-shift key. The mode-shift key is used to generate the symbols painted on the fronts of the keys. The mode-shift key works exactly like the Shift, Control, Alt, and keys. The ten function keys on the left side of the Type-5 keyboard may be considered as having L1..L10 painted on their fronts. Shift-AltGraph will cause different keysyms to be generated for some keys, e.g. the Type-5 SysRq key. For compatibility with Sun's X11/NeWS server, the F11 and F12 keys may be made to generate the equivalent X11/NeWS keysyms by using mode- switch. For backwards compatibility, the normal and mode-shifted keysyms for the ten function keys on the left side of Type-4 and Type-5 keyboards may be swapped via command line option. See -swapLkeys. The X LEDs 1..4 correspond to the NumLock, ScrollLock, Compose, and CapsLock LEDs respectively. Pressing the key once turns the corresponding LED on. Pressing the key again turns the LED off. Turning an LED on or off with e.g. 'xset [-]led [1234]' is equivalent to pressing the corresponding key. OPTIONS In addition to the normal server options described in the Xserver(1) manual page, Xsun accepts the following command line switches: -ar1 milliseconds This option specifies amount of time in milliseconds before which a pressed key should begin to autorepeat. -ar2 milliseconds This option specifies the interval in milliseconds between autorepeats of pressed keys. -swapLkeys Swaps the normal keysyms for the function keys on the left side of Type-4 and Type-5 keyboards with the alternate keysyms, i.e. the keysyms painted on the front of the keys. -flipPixels The normal pixel values for white and black are 0 and 1 respectively. When -flipPixels is specified these values are reversed. -mono When used with the cgtwo, this option indicates that the server should emulate a monochrome framebuffer instead of the normal color framebuffer. When used with the cgfour, this option indicates that the monochrome screen should be numbered 0 and the color screen numbered 1 (instead of the other way around). -zaphod This option disables switching between screens by sliding the mouse off the left or right edges. With this disabled, a window manager function must be used to switch between screens. -debug This option indicates that the server is being run from a debugger, and that it should not put its standard input, output and error files into non-blocking mode. -dev filename[:filename]... This option specifies the colon separated names of the framebuffer device files to be used. -fbinfo This option indicates that the server should enumerate the available frame buffers that it will use. ENVIRONMENT XDEVICE If present, and if no explicit -dev options are given, specifies the (colon separated) list of display devices to use. SEE ALSO X(7), Xserver(1), xdm(1), xinit(1) BUGS The auto-configuration depends on there being appropriate special files in the /dev directory for the framebuffers which are to be used. Extra entries can confuse the server. For example, the X/160C in fact has the hardware for a monochrome bwtwo0 on the CPU board. So if /dev has a special file for /dev/bwtwo0, the server will use it, even though there is no monitor attached to the monochrome framebuffer. The server will appear to start, but not to paint a cursor, because the cursor is on the monochrome frame buffer. The solution is to remove the /dev entries for any device you don't have a monitor for. There is a bug in pre-FCS operating systems for the Sun-4 which causes the server to crash driving a cgtwo. AUTHORS U. C. Berkeley Adam de Boor. Sun Microsystems David Rosenthal, Stuart Marks, Robin Schaufler, Mike Schwartz, Frances Ho, Geoff Lee, and Mark Opperman. MIT Laboratory for Computer Science Bob Scheifler, Keith Packard, Kaleb Keithley XTERM(1) XTERM(1) NAME xterm - terminal emulator for X SYNOPSIS xterm [-toolkitoption ...] [-option ...] [shell] DESCRIPTION The xterm program is a terminal emulator for the X Window System. It provides DEC VT102/VT220 (VTxxx) and Tektronix 4014 compatible terminals for programs that cannot use the window system directly. If the underlying operating system supports terminal resizing capabilities (for example, the SIGWINCH signal in systems derived from 4.3bsd), xterm will use the facilities to notify programs running in the window whenever it is resized. The VTxxx and Tektronix 4014 terminals each have their own window so that you can edit text in one and look at graphics in the other at the same time. To maintain the correct aspect ratio (height/width), Tektronix graphics will be restricted to the largest box with a 4014's aspect ratio that will fit in the window. This box is located in the upper left area of the window. Although both windows may be displayed at the same time, one of them is considered the ``active'' window for receiving keyboard input and terminal output. This is the window that contains the text cursor. The active window can be chosen through escape sequences, the ``VT Options'' menu in the VTxxx window, and the ``Tek Options'' menu in the 4014 window. EMULATIONS The VT102 emulation is fairly complete, but does not support autorepeat. Double-size characters are displayed properly if your font server supports scalable fonts. The VT220 emulation does not support soft fonts, it is otherwise complete. Termcap(5) entries that work with xterm include an optional platform-specific entry, ``xterm,'' ``vt102,'' ``vt100'' and ``ansi,'' and ``dumb.'' xterm automatically searches the termcap file in this order for these entries and then sets the ``TERM'' and the ``TERMCAP'' environment variables. You may also use ``vt220,'' but must set the terminal emulation level with the decTerminalID resource. (The ``TERMCAP'' environment variable is not set if xterm is linked against a terminfo library, since the requisite information is not provided by the termcap emulation of terminfo libraries). Many of the special xterm features may be modified under program control through a set of escape sequences different from the standard VT102 escape sequences. (See the Xterm Control Sequences document.) The Tektronix 4014 emulation is also fairly good. It supports 12-bit graphics addressing, scaled to the window size. Four different font sizes and five different lines types are supported. There is no write- through or defocused mode support. The Tektronix text and graphics commands are recorded internally by xterm and may be written to a file by sending the COPY escape sequence (or through the Tektronix menu; see below). The name of the file will be ``COPYyyyy-MM-dd.hh:mm:ss'', where yyyy, MM, dd, hh, mm and ss are the year, month, day, hour, minute and second when the COPY was performed (the file is created in the directory xterm is started in, or the home directory for a login xterm). Not all of the features described in this manual are necessarily available in this version of xterm. Some (e.g., the non-VT220 extensions) are available only if they were compiled in, though the most commonly-used are in the default configuration. OTHER FEATURES Xterm automatically highlights the text cursor when the pointer enters the window (selected) and unhighlights it when the pointer leaves the window (unselected). If the window is the focus window, then the text cursor is highlighted no matter where the pointer is. In VT102 mode, there are escape sequences to activate and deactivate an alternate screen buffer, which is the same size as the display area of the window. When activated, the current screen is saved and replaced with the alternate screen. Saving of lines scrolled off the top of the window is disabled until the normal screen is restored. The termcap(5) entry for xterm allows the visual editor vi(1) to switch to the alternate screen for editing and to restore the screen on exit. A popup menu entry makes it simple to switch between the normal and alternate screens for cut and paste. In either VT102 or Tektronix mode, there are escape sequences to change the name of the windows. Additionally, in VT102 mode, xterm implements the window-manipulation control sequences from dtterm, such as resizing the window, setting its location on the screen. Xterm allows character-based applications to receive mouse events (currently button-press and release events, and button-motion events) as keyboard control sequences. See Xterm Control Sequences for details. OPTIONS The xterm terminal emulator accepts the standard X Toolkit command line options as well as many application-specific options. If the option begins with a `+' instead of a `-', the option is restored to its default value. The -version and -help options are interpreted even if xterm cannot open the display, and are useful for testing and configuration scripts: -version This causes xterm to print a version number to the standard output. -help This causes xterm to print out a verbose message describing its options, one per line. The message is written to the standard output. Xterm generates this message, sorting it and noting whether a "-option" or a "+option" turns the feature on or off, since some features historically have been one or the other. Xterm generates a concise help message (multiple options per line) when an unknown option is used, e.g., xterm -z If the logic for a particular option such as logging is not compiled into xterm, the help text for that option also is not displayed by the -help option. One parameter (after all options) may be given. That overrides xterm's built-in choice of shell program. Normally xterm checks the SHELL variable. If that is not set, xterm tries to use the shell program specified in the password file. If that is not set, xterm uses /bin/sh. If the parameter names an executable file, xterm uses that instead. The parameter must be an absolute path, or name a file found on the user's PATH (and thereby construct an absolute path). The -e option cannot be used with this parameter since it uses all parameters following the option. The other options are used to control the appearance and behavior. Not all options are necessarily configured into your copy of xterm: -132 Normally, the VT102 DECCOLM escape sequence that switches between 80 and 132 column mode is ignored. This option causes the DECCOLM escape sequence to be recognized, and the xterm window will resize appropriately. -ah This option indicates that xterm should always highlight the text cursor. By default, xterm will display a hollow text cursor whenever the focus is lost or the pointer leaves the window. +ah This option indicates that xterm should do text cursor highlighting based on focus. -ai This option disables active icon support if that feature was compiled into xterm. This is equivalent to setting the vt100 resource activeIcon to ``false''. +ai This option enables active icon support if that feature was compiled into xterm. This is equivalent to setting the vt100 resource activeIcon to ``true''. -aw This option indicates that auto-wraparound should be allowed. This allows the cursor to automatically wrap to the beginning of the next line when when it is at the rightmost position of a line and text is output. +aw This option indicates that auto-wraparound should not be allowed. -b number This option specifies the size of the inner border (the distance between the outer edge of the characters and the window border) in pixels. That is the vt100 internalBorder resource. The default is 2. +bc turn off text cursor blinking. This overrides the cursorBlink resource. -bc turn on text cursor blinking. This overrides the cursorBlink resource. -bcf milliseconds set the amount of time text cursor is off when blinking via the cursorOffTime resource. -bcn milliseconds set the amount of time text cursor is on when blinking via the cursorOffTime resource. -bdc Set the vt100 resource colorBDMode to ``false'', disabling the display of characters with bold attribute as color +bdc Set the vt100 resource colorBDMode to ``true'', enabling the display of characters with bold attribute as color rather than bold -cb Set the vt100 resource cutToBeginningOfLine to ``false''. +cb Set the vt100 resource cutToBeginningOfLine to ``true''. -cc characterclassrange:value[,...] This sets classes indicated by the given ranges for using in selecting by words. See the section specifying character classes. and discussion of the charClass resource. -cjk_width Set the cjkWidth resource to ``true''. When turned on, characters with East Asian Ambiguous (A) category in UTR 11 have a column width of 2. Otherwise, they have a column width of 1. This may be useful for some legacy CJK text terminal- based programs assuming box drawings and others to have a column width of 2. It also has to be turned on when you specify a TrueType CJK double-width (bi-width/monospace) font either with -fa at the command line or faceName resource. The default is ``false'' +cjk_width Reset the cjkWidth resource. -class string This option allows you to override xterm's resource class. Normally it is ``XTerm'', but can be set to another class such as ``UXTerm'' to override selected resources. -cm This option disables recognition of ANSI color-change escape sequences. It sets the colorMode resource to ``false''. +cm This option enables recognition of ANSI color-change escape sequences. This is the same as the vt100 resource colorMode. -cn This option indicates that newlines should not be cut in line- mode selections. It sets the cutNewline resource to ``false''. +cn This option indicates that newlines should be cut in line-mode selections. It sets the cutNewline resource to ``true''. -cr color This option specifies the color to use for text cursor. The default is to use the same foreground color that is used for text. It sets the cursorColor resource according to the parameter. -cu This option indicates that xterm should work around a bug in the more(1) program that causes it to incorrectly display lines that are exactly the width of the window and are followed by a line beginning with a tab (the leading tabs are not displayed). This option is so named because it was originally thought to be a bug in the curses(3x) cursor motion package. +cu This option indicates that xterm should not work around the more(1) bug mentioned above. -dc This option disables the escape sequence to change dynamic colors: the vt100 foreground and background colors, its text cursor color, the pointer cursor foreground and background colors, the Tektronix emulator foreground and background colors, its text cursor color and highlight color. The option sets the dynamicColors option to ``false''. +dc This option enables the escape sequence to change dynamic colors. The option sets the dynamicColors option to ``true''. -e program [ arguments ... ] This option specifies the program (and its command line arguments) to be run in the xterm window. It also sets the window title and icon name to be the basename of the program being executed if neither -T nor -n are given on the command line. This must be the last option on the command line. -en encoding This option determines the encoding on which xterm runs. It sets the locale resource. Encodings other than UTF-8 are supported by using luit. The -lc option should be used instead of -en for systems with locale support. -fb font This option specifies a font to be used when displaying bold text. This font must be the same height and width as the normal font. If only one of the normal or bold fonts is specified, it will be used as the normal font and the bold font will be produced by overstriking this font. The default is to do overstriking of the normal font. See also the discussion of boldFont and boldMode resources. -fa pattern This option sets the pattern for fonts selected from the FreeType library if support for that library was compiled into xterm. This corresponds to the faceName resource. When a CJK double-width font is specified, you also need to turn on the cjkWidth resource. -fbb This option indicates that xterm should compare normal and bold fonts bounding boxes to ensure they are compatible. It sets the freeBoldBox resource to ``false''. +fbb This option indicates that xterm should not compare normal and bold fonts bounding boxes to ensure they are compatible. It sets the freeBoldBox resource to ``true''. -fbx This option indicates that xterm should not assume that the normal and bold fonts have VT100 line-drawing characters. If any are missing, xterm will draw the characters directly. It sets the forceBoxChars resource to ``false''. +fbx This option indicates that xterm should assume that the normal and bold fonts have VT100 line-drawing characters. It sets the forceBoxChars resource to ``true''. -fd pattern This option sets the pattern for double-width fonts selected from the FreeType library if support for that library was compiled into xterm. This corresponds to the faceNameDoublesize resource. -fi font This option sets the font for active icons if that feature was compiled into xterm. See also the discussion of the iconFont resource. -fs size This option sets the pointsize for fonts selected from the FreeType library if support for that library was compiled into xterm. This corresponds to the faceSize resource. -fw font This option specifies the font to be used for displaying wide text. By default, it will attempt to use a font twice as wide as the font that will be used to draw normal text. If no doublewidth font is found, it will improvise, by stretching the normal font. This corresponds to the wideFont resource. -fwb font This option specifies the font to be used for displaying bold wide text. By default, it will attempt to use a font twice as wide as the font that will be used to draw bold text. If no doublewidth font is found, it will improvise, by stretching the bold font. This corresponds to the wideBoldFont resource. -fx font This option specifies the font to be used for displaying the preedit string in the "OverTheSpot" input method. See also the discussion of the ximFont resource. -hc color This option specifies the color to use for the background of selected or otherwise highlighted text. If not specified, reverse video is used. See the discussion of the highlightColor resource. -hf This option indicates that HP Function Key escape codes should be generated for function keys. It sets the hpFunctionKeys resource to ``true''. +hf This option indicates that HP Function Key escape codes should not be generated for function keys. It sets the hpFunctionKeys resource to ``false''. -hold Turn on the hold resource, i.e., xterm will not immediately destroy its window when the shell command completes. It will wait until you use the window manager to destroy/kill the window, or if you use the menu entries that send a signal, e.g., HUP or KILL. +hold Turn off the hold resource, i.e., xterm will immediately destroy its window when the shell command completes. -ie Turn on the ptyInitialErase resource, i.e., use the pseudo- terminal's sense of the stty erase value. +ie Turn off the ptyInitialErase resource, i.e., set the stty erase value using the kb string from the termcap entry as a reference, if available. -im Turn on the useInsertMode resource, which forces use of insert mode by adding appropriate entries to the TERMCAP environment variable. +im Turn off the useInsertMode resource. -into windowId Given an X window identifier (a decimal integer), xterm will reparent its top-level shell widget to that window. This is used to embed xterm within other applications. -j This option indicates that xterm should do jump scrolling. It corresponds to the jumpScroll resource. Normally, text is scrolled one line at a time; this option allows xterm to move multiple lines at a time so that it does not fall as far behind. Its use is strongly recommended since it makes xterm much faster when scanning through large amounts of text. The VT100 escape sequences for enabling and disabling smooth scroll as well as the ``VT Options'' menu can be used to turn this feature on or off. +j This option indicates that xterm should not do jump scrolling. -k8 This option sets the allowC1Printable resource. When allowC1Printable is set, xterm overrides the mapping of C1 control characters (code 128-159) to treat them as printable. +k8 This option resets the allowC1Printable resource. -kt keyboardtype This option sets the keyboardType resource. Possible values include: ``hp'', ``sco'', ``sun'' and ``vt220''. The default value ``unknown'', causes the corresponding resource to be ignored. -l Turn logging on. Normally logging is not supported, due to security concerns. Some versions of xterm may have logging enabled. The logfile is written to the directory from which xterm is invoked. The filename is generated, of the form XtermLog.XXXXXX or Xterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX depending on how xterm was built. +l Turn logging off. -lc Turn on support of various encodings according to the users' locale setting, i.e., LC_ALL, LC_CTYPE, or LANG environment variables. This is achieved by turning on UTF-8 mode and by invoking luit for conversion between locale encodings and UTF-8. (luit is not invoked in UTF-8 locales.) This corresponds to the locale resource. The actual list of encodings which are supported is determined by luit. Consult the luit manual page for further details. See also the discussion of the -u8 option which supports UTF-8 locales. +lc Turn off support of automatic selection of locale encodings. Conventional 8bit mode or, in UTF-8 locales or with -u8 option, UTF-8 mode will be used. -lcc path File name for the encoding converter from/to locale encodings and UTF-8 which is used with -lc option or locale resource. This corresponds to the localeFilter resource. -leftbar Force scrollbar to the left side of VT100 screen. This is the default, unless you have set the rightScrollBar resource. -lf filename Specify the log-filename. See the -l option. -ls This option indicates that the shell that is started in the xterm window will be a login shell (i.e., the first character of argv[0] will be a dash, indicating to the shell that it should read the user's .login or .profile). The -ls flag and the loginShell resource are ignored if -e is also given, because xterm does not know how to make the shell start the given command after whatever it does when it is a login shell - the user's shell of choice need not be a Bourne shell after all. Also, xterm -e is supposed to provide a consistent functionality for other applications that need to start text-mode programs in a window, and if loginShell were not ignored, the result of ~/.profile might interfere with that. If you do want the effect of -ls and -e simultaneously, you may get away with something like xterm -e /bin/bash -l -c "my command here" Finally, -ls is not completely ignored, because xterm -ls -e does write a /etc/wtmp entry (if configured to do so), whereas xterm -e does not. +ls This option indicates that the shell that is started should not be a login shell (i.e., it will be a normal ``subshell''). -mb This option indicates that xterm should ring a margin bell when the user types near the right end of a line. This option can be turned on and off from the ``VT Options'' menu. +mb This option indicates that margin bell should not be rung. -mc milliseconds This option specifies the maximum time between multi-click selections. -mesg Turn off the messages resource, i.e., disallow write access to the terminal. +mesg Turn on the messages resource, i.e., allow write access to the terminal. -mk_width Set the mkWidth resource to ``true''. This makes xterm use a built-in version of the wide-character width calculation. The default is ``false'' +mk_width Reset the mkWidth resource. -ms color This option specifies the color to be used for the pointer cursor. The default is to use the foreground color. This sets the pointerColor resource. -nb number This option specifies the number of characters from the right end of a line at which the margin bell, if enabled, will ring. The default is 10. -nul This option disables the display of underlining. +nul This option enables the display of underlining. -pc This option enables the PC-style use of bold colors (see boldColors resource). +pc This option disables the PC-style use of bold colors. -pob This option indicates that the window should be raised whenever a Control-G is received. +pob This option indicates that the window should not be raised whenever a Control-G is received. -rightbar Force scrollbar to the right side of VT100 screen. -rvc This option disables the display of characters with reverse attribute as color. +rvc This option enables the display of characters with reverse attribute as color. -rw This option indicates that reverse-wraparound should be allowed. This allows the cursor to back up from the leftmost column of one line to the rightmost column of the previous line. This is very useful for editing long shell command lines and is encouraged. This option can be turned on and off from the ``VT Options'' menu. +rw This option indicates that reverse-wraparound should not be allowed. -s This option indicates that xterm may scroll asynchronously, meaning that the screen does not have to be kept completely up to date while scrolling. This allows xterm to run faster when network latencies are very high and is typically useful when running across a very large internet or many gateways. +s This option indicates that xterm should scroll synchronously. -samename Does not send title and icon name change requests when the request would have no effect: the name is not changed. This has the advantage of preventing flicker and the disadvantage of requiring an extra round trip to the server to find out the previous value. In practice this should never be a problem. +samename Always send title and icon name change requests. -sb This option indicates that some number of lines that are scrolled off the top of the window should be saved and that a scrollbar should be displayed so that those lines can be viewed. This option may be turned on and off from the ``VT Options'' menu. +sb This option indicates that a scrollbar should not be displayed. -sf This option indicates that Sun Function Key escape codes should be generated for function keys. +sf This option indicates that the standard escape codes should be generated for function keys. -si This option indicates that output to a window should not automatically reposition the screen to the bottom of the scrolling region. This option can be turned on and off from the ``VT Options'' menu. +si This option indicates that output to a window should cause it to scroll to the bottom. -sk This option indicates that pressing a key while using the scrollbar to review previous lines of text should cause the window to be repositioned automatically in the normal position at the bottom of the scroll region. +sk This option indicates that pressing a key while using the scrollbar should not cause the window to be repositioned. -sl number This option specifies the number of lines to save that have been scrolled off the top of the screen. This corresponds to the saveLines resource. The default is 64. -sm This option, corresponding to the sessionMgt resource, indicates that xterm should set up session manager callbacks. +sm This option indicates that xterm should not set up session manager callbacks. -sp This option indicates that Sun/PC keyboard should be assumed, providing mapping for keypad `+' to `,', and CTRL-F1 to F13, CTRL-F2 to F14, etc. +sp This option indicates that the standard escape codes should be generated for keypad and function keys. -t This option indicates that xterm should start in Tektronix mode, rather than in VT102 mode. Switching between the two windows is done using the ``Options'' menus. Termcap(5) entries that work with xterm ``tek4014,'' ``tek4015,'' ``tek4012'', ``tek4013'' and ``tek4010,'' and ``dumb.'' xterm automatically searches the termcap file in this order for these entries and then sets the ``TERM'' and the ``TERMCAP'' environment variables. +t This option indicates that xterm should start in VT102 mode. -tb This option, corresponding to the toolBar resource, indicates that xterm should display a toolbar (or menubar) at the top of its window. The buttons in the toolbar correspond to the popup menus, e.g., control/left/mouse for "Main Options". +tb This option indicates that xterm should not set up a toolbar. -ti term_id Specify the name used by xterm to select the correct response to terminal ID queries. It also specifies the emulation level, used to determine the type of response to a DA control sequence. Valid values include vt52, vt100, vt101, vt102, and vt220 (the "vt" is optional). The default is vt100. The term_id argument specifies the terminal ID to use. (This is the same as the decTerminalID resource). -tm string This option specifies a series of terminal setting keywords followed by the characters that should be bound to those functions, similar to the stty program. The keywords and their values are described in detail in the ttyModes resource. -tn name This option specifies the name of the terminal type to be set in the TERM environment variable. It corresponds to the termName resource. This terminal type must exist in the terminal database (termcap or terminfo, depending on how xterm is built) and should have li# and co# entries. If the terminal type is not found, xterm uses the built-in list ``xterm'', ``vt102'', etc. -u8 This option sets the utf8 resource. When utf8 is set, xterm interprets incoming data as UTF-8. This sets the wideChars resource as a side-effect, but the UTF-8 mode set by this option prevents it from being turned off. If you must turn it on and off, use the wideChars resource. This option and the utf8 resource are overridden by the -lc and -en options and locale resource. That is, if xterm has been compiled to support luit, and the locale resource is not ``false'' this option is ignored. We recommend using the -lc option or the ``locale: true'' resource in UTF-8 locales when your operating system supports locale, or -en UTF-8 option or the ``locale: UTF-8'' resource when your operating system does not support locale. +u8 This option resets the utf8 resource. -ulc This option disables the display of characters with underline attribute as color rather than with underlining. +ulc This option enables the display of characters with underline attribute as color rather than with underlining. -ut This option indicates that xterm should not write a record into the the system utmp log file. +ut This option indicates that xterm should write a record into the system utmp log file. -vb This option indicates that a visual bell is preferred over an audible one. Instead of ringing the terminal bell whenever a Control-G is received, the window will be flashed. +vb This option indicates that a visual bell should not be used. -wc This option sets the wideChars resource. When wideChars is set, xterm maintains internal structures for 16-bit characters. If you do not set this resource to ``true'', xterm will ignore the escape sequence which turns UTF-8 mode on and off. The default is ``false''. +wc This option resets the wideChars resource. -wf This option indicates that xterm should wait for the window to be mapped the first time before starting the subprocess so that the initial terminal size settings and environment variables are correct. It is the application's responsibility to catch subsequent terminal size changes. +wf This option indicates that xterm should not wait before starting the subprocess. -ziconbeep percent Same as zIconBeep resource. If percent is non-zero, xterms that produce output while iconified will cause an XBell sound at the given volume and have "***" prepended to their icon titles. Most window managers will detect this change immediately, showing you which window has the output. (A similar feature was in x10 xterm.) -C This option indicates that this window should receive console output. This is not supported on all systems. To obtain console output, you must be the owner of the console device, and you must have read and write permission for it. If you are running X under xdm on the console screen you may need to have the session startup and reset programs explicitly change the ownership of the console device in order to get this option to work. -Sccn This option allows xterm to be used as an input and output channel for an existing program and is sometimes used in specialized applications. The option value specifies the last few letters of the name of a pseudo-terminal to use in slave mode, plus the number of the inherited file descriptor. If the option contains a ``/'' character, that delimits the characters used for the pseudo-terminal name from the file descriptor. Otherwise, exactly two characters are used from the option for the pseudo-terminal name, the remainder is the file descriptor. Examples: -S123/45 -Sab34 Note that xterm does not close any file descriptor which it did not open for its own use. It is possible (though probably not portable) to have an application which passes an open file descriptor down to xterm past the initialization or the -S option to a process running in the xterm. The following command line arguments are provided for compatibility with older versions. They may not be supported in the next release as the X Toolkit provides standard options that accomplish the same task. %geom This option specifies the preferred size and position of the Tektronix window. It is shorthand for specifying the ``*tekGeometry'' resource. #geom This option specifies the preferred position of the icon window. It is shorthand for specifying the ``*iconGeometry'' resource. -T string This option specifies the title for xterm's windows. It is equivalent to -title. -n string This option specifies the icon name for xterm's windows. It is shorthand for specifying the ``*iconName'' resource. Note that this is not the same as the toolkit option -name (see below). The default icon name is the application name. -r This option indicates that reverse video should be simulated by swapping the foreground and background colors. It is equivalent to -rv. -w number This option specifies the width in pixels of the border surrounding the window. It is equivalent to -borderwidth or -bw. The following standard X Toolkit command line arguments are commonly used with xterm: -bd color This option specifies the color to use for the border of the window. xterm uses the X Toolkit default, which is ``XtDefaultForeground''. -bg color This option specifies the color to use for the background of the window. The default is ``XtDefaultBackground.'' -bw number This option specifies the width in pixels of the border surrounding the window. -display display This option specifies the X server to contact; see X(7). -fg color This option specifies the color to use for displaying text. The default is ``XtDefaultForeground.'' -fn font This option specifies the font to be used for displaying normal text. The default is fixed. -font font This is the same as -fn. -geometry geometry This option specifies the preferred size and position of the VT102 window; see X(7). -iconic This option indicates that xterm should ask the window manager to start it as an icon rather than as the normal window. -name name This option specifies the application name under which resources are to be obtained, rather than the default executable file name. Name should not contain ``.'' or ``*'' characters. -rv This option indicates that reverse video should be simulated by swapping the foreground and background colors. +rv Disable the simulation of reverse video by swapping foreground and background colors. -title string This option specifies the window title string, which may be displayed by window managers if the user so chooses. The default title is the command line specified after the -e option, if any, otherwise the application name. -xrm resourcestring This option specifies a resource string to be used. This is especially useful for setting resources that do not have separate command line options. RESOURCES The program understands all of the core X Toolkit resource names and classes. Application specific resources (e.g., "XTerm.NAME") follow: backarrowKeyIsErase (class BackarrowKeyIsErase) Tie the VTxxx backarrowKey and ptyInitialErase resources together by setting the DECBKM state according to whether the initial value of stty erase is a backspace (8) or delete (127) character. The default is ``false'', which disables this feature. hold (class Hold) If true, xterm will not immediately destroy its window when the shell command completes. It will wait until you use the window manager to destroy/kill the window, or if you use the menu entries that send a signal, e.g., HUP or KILL. You may scroll back, select text, etc., to perform most graphical operations. Resizing the display will lose data, however, since this involves interaction with the shell which is no longer running. hpFunctionKeys (class HpFunctionKeys) Specifies whether or not HP Function Key escape codes should be generated for function keys instead of standard escape sequences. See also the keyboardType resource. iconGeometry (class IconGeometry) Specifies the preferred size and position of the application when iconified. It is not necessarily obeyed by all window managers. iconName (class IconName) Specifies the icon name. The default is the application name. keyboardType (class KeyboardType) Enables one (or none) of the various keyboard-type resources: hpFunctionKeys, scoFunctionKeys, sunFunctionKeys and sunKeyboard. The resource's value should be one of the corresponding strings hp, sco, sun or vt220. The individual resources are provided for legacy support; this resource is simpler to use. maxBufSize (class MaxBufSize) Specify the maximum size of the input buffer. The default is 32768. You cannot set this to a value less than the minBufSize resource. It will be increased as needed to make that value evenly divide this one. On some systems you may want to increase one or both of the maxBufSize and minBufSize resource values to achieve better performance if the operating system prefers larger buffer sizes. messages (class Messages) Specifies whether write access to the terminal is allowed initially. See mesg(1). The default is ``true''. minBufSize (class MinBufSize) Specify the minimum size of the input buffer, i.e., the amount of data that xterm requests on each read. The default is 4096. You cannot set this to a value less than 64. ptyHandshake (class PtyHandshake) If ``true'', xterm will perform handshaking during initialization to ensure that the parent and child processes update the utmp and stty state. The default is ``true''. ptyInitialErase (class PtyInitialErase) If ``true'', xterm will use the pseudo-terminal's sense of the stty erase value. If ``false'', xterm will set the stty erase value to match its own configuration, using the kb string from the termcap entry as a reference, if available. In either case, the result is applied to the TERMCAP variable which xterm sets. The default is ``false''. sameName (class SameName) If the value of this resource is ``true'', xterm does not send title and icon name change requests when the request would have no effect: the name is not changed. This has the advantage of preventing flicker and the disadvantage of requiring an extra round trip to the server to find out the previous value. In practice this should never be a problem. The default is ``true''. scoFunctionKeys (class ScoFunctionKeys) Specifies whether or not SCP Function Key escape codes should be generated for function keys instead of standard escape sequences. See also the keyboardType resource. sessionMgt (class SessionMgt) If the value of this resource is ``true'', xterm sets up session manager callbacks for XtNdieCallback and XtNsaveCallback. The default is ``true''. sunFunctionKeys (class SunFunctionKeys) Specifies whether or not Sun Function Key escape codes should be generated for function keys instead of standard escape sequences. See also the keyboardType resource. sunKeyboard (class SunKeyboard) Specifies whether or not Sun/PC keyboard layout should be assumed rather than DEC VT220. This causes the keypad `+' to be mapped to `,'. and CTRL F1-F12 to F11-F20, depending on the setting of the ctrlFKeys resource. so xterm emulates a DEC VT220 more accurately. Otherwise (the default, with sunKeyboard set to ``false''), xterm uses PC-style bindings for the function keys and keypad. PC-style bindings use the Shift, Alt, Control and Meta keys as modifiers for function-keys and keypad (see the document Xterm Control Sequences for details). The PC-style bindings are analogous to PCTerm, but not the same thing. Normally these bindings do not conflict with the use of the Meta key as described for the eightBitInput resource. If they do, note that the PC-style bindings are evaluated first. See also the keyboardType resource. termName (class TermName) Specifies the terminal type name to be set in the TERM environment variable. title (class Title) Specifies a string that may be used by the window manager when displaying this application. toolBar (class ToolBar) Specifies whether or not the toolbar should be displayed. The default is ``true.'' ttyModes (class TtyModes) Specifies a string containing terminal setting keywords and the characters to which they may be bound. Allowable keywords include: brk, dsusp, eof, eol, eol2, erase, erase2, flush, intr, kill, lnext, quit, rprnt, start, status, stop, susp, swtch and weras. Control characters may be specified as ^char (e.g., ^c or ^u) and ^? may be used to indicate delete (127). Use ^- to denote undef. Use \034 to represent ^\, since a literal backslash in an X resource escapes the next character. This is very useful for overriding the default terminal settings without having to do an stty every time an xterm is started. Note, however, that the stty program on a given host may use different keywords; xterm's table is built-in. useInsertMode (class UseInsertMode) Force use of insert mode by adding appropriate entries to the TERMCAP environment variable. This is useful if the system termcap is broken. The default is ``false.'' utmpDisplayId (class UtmpDisplayId) Specifies whether or not xterm should try to record the display identifier (display number and screen number) as well as the hostname in the system utmp log file. The default is ``true.'' utmpInhibit (class UtmpInhibit) Specifies whether or not xterm should try to record the user's terminal in the system utmp log file. If true, xterm will not try. The default is ``false.'' waitForMap (class WaitForMap) Specifies whether or not xterm should wait for the initial window map before starting the subprocess. The default is ``false.'' zIconBeep (class ZIconBeep) Same as -ziconbeep command line argument. If the value of this resource is non-zero, xterms that produce output while iconified will cause an XBell sound at the given volume and have "***" prepended to their icon titles. Most window managers will detect this change immediately, showing you which window has the output. (A similar feature was in x10 xterm.) The default is ``false.'' The following resources are specified as part of the vt100 widget (class VT100): These are specified by patterns such as "XTerm.vt100.NAME": activeIcon (class ActiveIcon) Specifies whether or not active icon windows are to be used when the xterm window is iconified, if this feature is compiled into xterm. The active icon is a miniature representation of the content of the window and will update as the content changes. Not all window managers necessarily support application icon windows. Some window managers will allow you to enter keystrokes into the active icon window. The default is ``false.'' allowC1Printable (class AllowC1Printable) If true, overrides the mapping of C1 controls (codes 128-159) to make them be treated as if they were printable characters. Although this corresponds to no particular standard, some users insist it is a VT100. The default is ``false.'' allowSendEvents (class AllowSendEvents) Specifies whether or not synthetic key and button events (generated using the X protocol SendEvent request) should be interpreted or discarded. The default is ``false'' meaning they are discarded. Note that allowing such events creates a very large security hole. The default is ``false.'' allowWindowOps (class AllowWindowOps) Specifies whether extended window control sequences (as used in dtterm) for should be allowed. The default is ``true.'' alwaysHighlight (class AlwaysHighlight) Specifies whether or not xterm should always display a highlighted text cursor. By default (if this resource is false), a hollow text cursor is displayed whenever the pointer moves out of the window or the window loses the input focus. The default is ``false.'' alwaysUseMods (class AlwaysUseMods) Override the numLock resource, telling xterm to use the Alt and Meta modifiers to construct parameters for function key sequences even if those modifiers appear in the translations resource. The default is ``false.'' answerbackString (class AnswerbackString) Specifies the string that xterm sends in response to an ENQ (control/E) character from the host. The default is a blank string, i.e., ``''. A hardware VT100 implements this feature as a setup option. appcursorDefault (class AppcursorDefault) If ``true,'' the cursor keys are initially in application mode. This is the same as the VT102 private DECCKM mode, The default is ``false.'' appkeypadDefault (class AppkeypadDefault) If ``true,'' the keypad keys are initially in application mode. The default is ``false.'' autoWrap (class AutoWrap) Specifies whether or not auto-wraparound should be enabled. This is the same as the VT102 DECAWM. The default is ``true.'' awaitInput (class AwaitInput) Specifies whether or not the xterm uses a 50 millisecond timeout to await input (i.e., to support the Xaw3d arrow scrollbar). The default is ``false.'' backarrowKey (class BackarrowKey) Specifies whether the backarrow key transmits a backspace (8) or delete (127) character. This corresponds to the DECBKM control sequence. The default (backspace) is ``true.'' Pressing the control key toggles this behavior. background (class Background) Specifies the color to use for the background of the window. The default is ``XtDefaultBackground.'' bellOnReset (class BellOnReset) Specifies whether to sound a bell when doing a hard reset. The default is ``true.'' bellSuppressTime (class BellSuppressTime) Number of milliseconds after a bell command is sent during which additional bells will be suppressed. Default is 200. If set non-zero, additional bells will also be suppressed until the server reports that processing of the first bell has been completed; this feature is most useful with the visible bell. boldColors (class ColorMode) Specifies whether to combine bold attribute with colors like the IBM PC, i.e., map colors 0 through 7 to colors 8 through 15. These normally are the brighter versions of the first 8 colors, hence bold. The default is ``true.'' boldFont (class BoldFont) Specifies the name of the bold font to use instead of overstriking. There is no default for this resource. boldMode (class BoldMode) This specifies whether or not text with the bold attribute should be overstruck to simulate bold fonts if the resolved bold font is the same as the normal font. It may be desirable to disable bold fonts when color is being used for the bold attribute. Note that xterm has one bold font which you may set explicitly. It attempts to match a bold font for the other font selections (font1 through font6). If the normal and bold fonts are distinct, this resource has no effect. The default is ``true.'' Although xterm attempts to match a bold font for other font selections, the font server may not cooperate. Since X11R6, bitmap fonts have been scaled. The font server claims to provide the bold font that xterm requests, but the result is not always readable. XFree86 provides a feature which can be used to suppress the scaling. In the X server's configuration file (e.g., "/etc/X11/XFree86"), you can add ":unscaled" to the end of the directory specification for the "misc" fonts, which comprise the fixed-pitch fonts that are used by xterm. For example FontPath "/usr/lib/X11/fonts/misc/" would become FontPath "/usr/lib/X11/fonts/misc/:unscaled" Depending on your configuration, the font server may have its own configuration file. The same ":unscaled" can be added to its configuration file at the end of the directory specification for "misc". brokenLinuxOSC (class BrokenLinuxOSC) If true, xterm applies a workaround to ignore malformed control sequences that a Linux script might send. Compare the palette control sequences documented in console_codes with ECMA-48. The default is ``true.'' brokenSelections (class BrokenSelections) If true, xterm in 8-bit mode will interpret STRING selections as carrying text in the current locale's encoding. Normally STRING selections carry ISO-8859-1 encoded text. Setting this resource to ``true'' violates the ICCCM; it may, however, be useful for interacting with some broken X clients. The default is ``false.'' brokenStringTerm (class BrokenStringTerm) provides a work-around for some ISDN routers which start an application control string without completing it. Set this to ``true'' if xterm appears to freeze when connecting. The default is ``false.'' c132 (class C132) Specifies whether or not the VT102 DECCOLM escape sequence, used to switch between 80 and 132 columns, should be honored. The default is ``false.'' cacheDoublesize (class CacheDoublesize) Specifies the maximum number of double-sized fonts which are cached by xterm. The default (8) may be too large for some X terminals with limited memory. Set this to zero to disable doublesize fonts altogether. charClass (class CharClass) Specifies comma-separated lists of character class bindings of the form [low-]high:value. These are used in determining which sets of characters should be treated the same when doing cut and paste. See the CHARACTER CLASSES section. cjkWidth (class CjkWidth) Specifies whether xterm should follow the traditional East Asian width convention. When turned on, characters with East Asian Ambiguous (A) category in UTR 11 have a column width of 2. You may have to set this option to ``true'' if you have some old East Asian terminal based programs that assume that line-drawing characters have a column width of 2. The default is ``false.'' color0 (class Color0) color1 (class Color1) color2 (class Color2) color3 (class Color3) color4 (class Color4) color5 (class Color5) color6 (class Color6) color7 (class Color7) These specify the colors for the ISO 6429 extension. The defaults are, respectively, black, red3, green3, yellow3, a customizable dark blue, magenta3, cyan3, and gray90. The default shades of color are chosen to allow the colors 8-15 to be used as brighter versions. color8 (class Color8) color9 (class Color9) color10 (class Color10) color11 (class Color11) color12 (class Color12) color13 (class Color13) color14 (class Color14) color15 (class Color15) These specify the colors for the ISO 6429 extension if the bold attribute is also enabled. The default resource values are respectively, gray30, red, green, yellow, a customizable light blue, magenta, cyan, and white. color16 (class Color16) through color255 (class Color255) These specify the colors for the 256-color extension. The default resource values are for colors 16 through 231 to make a 6x6x6 color cube, and colors 232 through 255 to make a grayscale ramp. colorAttrMode (class ColorAttrMode) Specifies whether colorBD, colorBL, colorRV, and colorUL should override ANSI colors. If not, these are displayed only when no ANSI colors have been set for the corresponding position. The default is ``false.'' colorBD (class ColorBD) This specifies the color to use to display bold characters if the ``colorBDMode'' resource is enabled. The default is ``XtDefaultForeground.'' colorBDMode (class ColorAttrMode) Specifies whether characters with the bold attribute should be displayed in color or as bold characters. Note that setting colorMode off disables all colors, including bold. The default is ``false.'' colorBL (class ColorBL) This specifies the color to use to display blink characters if the ``colorBLMode'' resource is enabled. The default is ``XtDefaultForeground.'' colorBLMode (class ColorAttrMode) Specifies whether characters with the blink attribute should be displayed in color. Note that setting colorMode off disables all colors, including this. The default is ``false.'' colorMode (class ColorMode) Specifies whether or not recognition of ANSI (ISO 6429) color change escape sequences should be enabled. The default is ``true.'' colorRV (class ColorRV) This specifies the color to use to display reverse characters if the ``colorRVMode'' resource is enabled. The default is ``XtDefaultForeground.'' colorRVMode (class ColorAttrMode) Specifies whether characters with the reverse attribute should be displayed in color. Note that setting colorMode off disables all colors, including this. The default is ``false.'' colorUL (class ColorUL) This specifies the color to use to display underlined characters if the ``colorULMode'' resource is enabled. The default is ``XtDefaultForeground.'' colorULMode (class ColorAttrMode) Specifies whether characters with the underline attribute should be displayed in color or as underlined characters. Note that setting colorMode off disables all colors, including underlining. The default is ``false.'' ctrlFKeys (class CtrlFKeys) In VT220 keyboard mode (see sunKeyboard resource), specifies the amount by which to shift F1-F12 given a control modifier (CTRL). This allows you to generate key symbols for F10-F20 on a Sun/PC keyboard. The default is ``10'', which means that CTRL F1 generates the key symbol for F11. curses (class Curses) Specifies whether or not the last column bug in more(1) should be worked around. See the -cu option for details. The default is ``false.'' cursorBlink (class CursorBlink) Specifies whether to make the cursor blink. The default is ``false.'' cursorColor (class CursorColor) Specifies the color to use for the text cursor. The default is ``XtDefaultForeground.'' Xterm attempts to keep this color from being the same as the background color, since it draws the cursor by filling the background of a text cell. The same restriction applies to control sequences which may change this color. cursorOffTime (class CursorOffTime) Specifies the duration of the "off" part of the cursor blink cycle-time in milliseconds. The same timer is used for text blinking. The default is 300. cursorOnTime (class CursorOnTime) Specifies the duration of the "on" part of the cursor blink cycle-time, in milliseconds. The same timer is used for text blinking. The default is 600. cutNewline (class CutNewline) If ``false'', triple clicking to select a line does not include the Newline at the end of the line. If ``true'', the Newline is selected. The default is ``true.'' cutToBeginningOfLine (class CutToBeginningOfLine) If ``false'', triple clicking to select a line selects only from the current word forward. If ``true'', the entire line is selected. The default is ``true.'' decTerminalID (class DecTerminalID) Specifies the emulation level (100=VT100, 220=VT220, etc.), used to determine the type of response to a DA control sequence. Leading non-digit characters are ignored, e.g., "vt100" and "100" are the same. The default is 100. deleteIsDEL (class DeleteIsDEL) Specifies whether the Delete key on the editing keypad should send DEL (127) or the VT220-style Remove escape sequence. The default is ``false,'' for the latter. dynamicColors (class DynamicColors) Specifies whether or not escape sequences to change colors assigned to different attributes are recognized. eightBitControl (class EightBitControl) Specifies whether or not control sequences sent by the terminal should be eight-bit characters or escape sequences. The default is ``false.'' eightBitInput (class EightBitInput) If ``true'', Meta characters (a single-byte character combined with the keys modifier key) input from the keyboard are presented as a single character with the eighth bit turned on. The terminal is put into 8-bit mode. If ``false'', Meta characters are converted into a two-character sequence with the character itself preceded by ESC. On startup, xterm tries to put the terminal into 7-bit mode. The metaSendsEscape resource may override this. The default is ``true.'' Generally keyboards do not have a key labeled "Meta", but "Alt" keys are common, and they are conventionally used for "Meta". If they were synonymous, it would have been reasonable to name this resource "altSendsEscape", reversing its sense. For more background on this, see the meta function in curses. Note that the Alt key is not necessarily the same as the Meta modifier. xmodmap lists your key modifiers. X defines modifiers for shift, (caps) lock and control, as well as 5 additional modifiers which are generally used to configure key modifiers. xterm inspects the same information to find the modifier associated with either Meta key (left or right), and uses that key as the Meta modifier. It also looks for the NumLock key, to recognize the modifier which is associated with that. If your xmodmap configuration uses the same keycodes for Alt- and Meta-keys, xterm will only see the Alt-key definitions, since those are tested before Meta-keys. NumLock is tested first. It is important to keep these keys distinct; otherwise some of xterm's functionality is not available. eightBitOutput (class EightBitOutput) Specifies whether or not eight-bit characters sent from the host should be accepted as is or stripped when printed. The default is ``true,'' which means that they are accepted as is. faceName (class FaceName) Specify the pattern for fonts selected from the FreeType library if support for that library was compiled into xterm. There is no default. If not specified, or if there is no match for both normal and bold fonts, xterm uses the font and related resources. faceNameDoublesize (class FaceNameDoublesize) Specify an double-width font for cases where an application requires this, e.g., in CJK applications. There is no default. If the application uses double-wide characters and this resource is not given, xterm will use a scaled version of the font given by faceName. faceSize (class FaceSize) Specify the pointsize for fonts selected from the FreeType library if support for that library was compiled into xterm. The default is ``14.'' font (class Font) Specifies the name of the normal font. The default is ``fixed.'' See the discussion of the locale resource, which describes how this font may be overridden. NOTE: some resource files use patterns such as *font: fixed which are overly broad, affecting both xterm.vt100.font and xterm.vt100..utf8fonts.font which is probably not what you intended. font1 (class Font1) Specifies the name of the first alternative font. font2 (class Font2) Specifies the name of the second alternative font. font3 (class Font3) Specifies the name of the third alternative font. font4 (class Font4) Specifies the name of the fourth alternative font. font5 (class Font5) Specifies the name of the fifth alternative font. font6 (class Font6) Specifies the name of the sixth alternative font. fontDoublesize (class FontDoublesize) Specifies whether xterm should attempt to use font scaling to draw doublesize characters. Some older font servers cannot do this properly, will return misleading font metrics. The default is ``true''. If disabled, xterm will simulate doublesize characters by drawing normal characters with spaces between them. forceBoxChars (class ForceBoxChars) Specifies whether xterm should assume the normal and bold fonts have VT100 line-drawing characters: - The fixed-pitch ISO-8859-*-encoded fonts used by xterm normally have the VT100 line-drawing glyphs in cells 1-31. Other fixed-pitch fonts may be more attractive, but lack these glyphs. - When using an ISO-10646-1 font and the wideChars resource is true, xterm uses the Unicode glyphs which match the VT100 line-drawing glyphs. If ``false'', xterm checks for missing glyphs in the font and makes line-drawing characters directly as needed. If ``true'', xterm uses whatever is in the font without checking. The default is ``false.'' foreground (class Foreground) Specifies the color to use for displaying text in the window. Setting the class name instead of the instance name is an easy way to have everything that would normally appear in the text color change color. The default is ``XtDefaultForeground.'' freeBoldBox (class freeBoldBox) Specifies whether xterm should assume the bounding boxes for normal and bold fonts are compatible. If ``false'', xterm compares them and will reject choices of bold fonts that do not match the size of the normal font. The default is ``false'', which means that the comparison is performed. geometry (class Geometry) Specifies the preferred size and position of the VT102 window. There is no default for this resource. highlightColor (class HighlightColor) Specifies the color to use for the background of selected or otherwise highlighted text. If not specified, reverse video is used. The default is ``XtDefaultForeground.'' highlightSelection (class HighlightSelection) If ``false'', selecting with the mouse highlights all positions on the screen between the beginning of the selection and the current position. If ``true'', xterm highlights only the positions that contain text that can be selected. The default is ``false.'' Depending on the way your applications write to the screen, there may be trailing blanks on a line. Xterm stores data as it is shown on the screen. Erasing the display changes the internal state of each cell so it is not considered a blank for the purpose of selection. Blanks written since the last erase are selectable. If you do not wish to have trailing blanks in a selection, use the trimSelection resource. hpLowerleftBugCompat (class HpLowerleftBugCompat) Specifies whether to work around a bug in HP's xdb, which ignores termcap and always sends ESC F to move to the lower left corner. ``true'' causes xterm to interpret ESC F as a request to move to the lower left corner of the screen. The default is ``false.'' i18nSelections (class I18nSelections) If false, xterm will never request the targets COMPOUND_TEXT or TEXT. The default is ``true.'' It may be set to false in order to work around ICCCM violations by other X clients. iconBorderColor (class BorderColor) Specifies the border color for the active icon window if this feature is compiled into xterm. Not all window managers will make the icon border visible. iconBorderWidth (class BorderWidth) Specifies the border width for the active icon window if this feature is compiled into xterm. The default is 2. Not all window managers will make the border visible. iconFont (class IconFont) Specifies the font for the miniature active icon window, if this feature is compiled into xterm. The default is "nil2". internalBorder (class BorderWidth) Specifies the number of pixels between the characters and the window border. The default is 2. italicULMode (class ColorAttrMode) Specifies whether characters with the underline attribute should be displayed in an italic font or as underlined characters. jumpScroll (class JumpScroll) Specifies whether or not jump scroll should be used. This corresponds to the VT102 DECSCLM private mode. The default is ``true.'' keyboardDialect (class KeyboardDialect) Specifies the initial keyboard dialect, as well as the default value when the terminal is reset. The value given is the same as the final character in the control sequences which change character sets. The default is ``B'', which corresponds to US ASCII. nameKeymap (class NameKeymap) See the discussion of the keymap() action. limitResize (class LimitResize) Limits resizing of the screen via control sequence to a given multiple of the display dimensions. The default is ``1''. locale (class Locale) Specifies how to use luit, an encoding converter between UTF-8 and locale encodings. The resource value (ignoring case) may be: true xterm will use the encoding specified by the users' LC_CTYPE locale (i.e., LC_ALL, LC_CTYPE, or LANG variables) as far as possible. This is realized by always enabling UTF-8 mode and invoking luit in non-UTF-8 locales. medium xterm will follow users' LC_CTYPE locale only for UTF-8, east Asian, and Thai locales, where the encodings were not supported by conventional 8bit mode with changing fonts. For other locales, xterm will use conventional 8bit mode. checkfont If mini-luit is compiled-in, xterm will check if a Unicode font has been specified. If so, it checks if the character encoding for the current locale is POSIX, Latin-1 or Latin-9, uses the appropriate mapping to support those with the Unicode font. For other encodings, xterm assumes that UTF-8 encoding is required. false xterm will use conventional 8bit mode or UTF-8 mode according to utf8 resource or -u8 option. Any other value, e.g., ``UTF-8'' or ``ISO8859-2'', is assumed to be an encoding name; luit will be invoked to support the encoding. The actual list of supported encodings depends on luit. The default is ``medium''. Regardless of your locale and encoding, you need an ISO-10646-1 font to display the result. Your configuration may not include this font, or locale-support by xterm may not be needed. At startup, xterm uses a mechanism equivalent to the load-vt- fonts(utf8Fonts, Utf8Fonts) action to load font name subresources of the VT100 widget. That is, resource patterns such as "*vt100.utf8Fonts.font" will be loaded, and (if this resource is enabled), override the normal fonts. If no subresources are found, the normal fonts such as "*vt100.font", etc., are used. The resource files distributed with xterm use ISO-10646-1 fonts, but do not rely on them unless you are using the locale mechanism. localeFilter (class LocaleFilter) Specifies the file name for the encoding converter from/to locale encodings and UTF-8 which is used with the -lc option or locale resource. The help message shown by ``xterm -help'' lists the default value, which depends on your system configuration. loginShell (class LoginShell) Specifies whether or not the shell to be run in the window should be started as a login shell. The default is ``false.'' marginBell (class MarginBell) Specifies whether or not the bell should be rung when the user types near the right margin. The default is ``false.'' metaSendsEscape (class MetaSendsEscape) If ``true'', Meta characters (a character combined with the Meta modifier key) are converted into a two-character sequence with the character itself preceded by ESC. This applies as well to function key control sequences, unless xterm sees that Meta is used in your key translations. If ``false'', Meta characters input from the keyboard are handled according to the eightBitInput resource. The default is ``false.'' mkWidth (class MkWidth) Specifies whether xterm should use a built-in version of the wide character width calculation. The default is ``false.'' modifyCursorKeys (class ModifyCursorKeys) Tells how to handle the special case where Control-, Shift-, Alt- or Meta-modifiers are used to add a parameter to the escape sequence returned by a cursor-key. Set it to 0 to use the old/obsolete behavior. Set it to 1 to prefix modified sequences with CSI. Set it to 2 to force the modifier to be the second parameter. Set it to 3 to mark the sequence with a '>' to hint that it is private. The default is ``2''. multiClickTime (class MultiClickTime) Specifies the maximum time in milliseconds between multi-click select events. The default is 250 milliseconds. multiScroll (class MultiScroll) Specifies whether or not scrolling should be done asynchronously. The default is ``false.'' nMarginBell (class Column) Specifies the number of characters from the right margin at which the margin bell should be rung, when enabled. numLock (class NumLock) If ``true'', xterm checks if NumLock is used as a modifier (see xmodmap(1)). If so, this modifier is used to simplify the logic when implementing special NumLock for the sunKeyboard resource. Also (when sunKeyboard is false), similar logic is used to find the modifier associated with the left and right Alt keys. The default is ``true.'' oldXtermFKeys (class OldXtermFKeys) If ``true'', xterm will use old-style control sequences for function keys F1 to F4, for compatibility with X Consortium xterm. Otherwise, it uses the VT100-style codes for PF1 to PF4. The default is ``false.'' on2Clicks (class On2Clicks) on3Clicks (class On3Clicks) on4Clicks (class On4Clicks) on5Clicks (class On5Clicks) Specify selection behavior in response to multiple mouse clicks. A single mouse click is always interpreted as described in the SELECTION section (see POINTER USAGE). Multiple mouse clicks (using the button which activates the select-start action) are interpreted according to the resource values of on2Clicks, etc. The resource value can be one of these: word Select a ``word'' as determined by the charClass resource. See the CHARACTER CLASSES section. line Select a line (counting wrapping). group Select a group of adjacent lines (counting wrapping). The selection stops on a blank line. page Select all visible lines, i.e., the page. all Select all lines, i.e., including the saved lines. regex Select a ``word'' as determined by the regular expression which follows in the resource value. none No selection action is associated with this resource. xterm interprets it as the end of the list. For example, you may use it to disable triple (and higher) clicking by setting on3Clicks to ``none''. The default values for on2Clicks and on3Clicks are ``word'' and ``line'', respectively. There is no default value for on4Clicks or on5Clicks, making those inactive. On startup, xterm determines the maximum number of clicks by the onXClicks resource values which are set. pointerColor (class PointerColor) Specifies the foreground color of the pointer. The default is ``XtDefaultForeground.'' pointerColorBackground (class PointerColorBackground) Specifies the background color of the pointer. The default is ``XtDefaultBackground.'' pointerShape (class Cursor) Specifies the name of the shape of the pointer. The default is ``xterm.'' popOnBell (class PopOnBell) Specifies whether the window would be raised when Control-G is received. The default is ``false.'' printAttributes (class PrintAttributes) Specifies whether to print graphic attributes along with the text. A real DEC VTxxx terminal will print the underline, highlighting codes but your printer may not handle these. A ``0'' disables the attributes. A ``1'' prints the normal set of attributes (bold, underline, inverse and blink) as VT100-style control sequences. A ``2'' prints ANSI color attributes as well. The default is ``1.'' printerAutoClose (class PrinterAutoClose) If ``true'', xterm will close the printer (a pipe) when the application switches the printer offline with a Media Copy command. The default is ``false.'' printerCommand (class PrinterCommand) Specifies a shell command to which xterm will open a pipe when the first MC (Media Copy) command is initiated. The default is a blank string. If the resource value is given as a blank string, the printer is disabled. printerControlMode (class PrinterControlMode) Specifies the printer control mode. A ``1'' selects autoprint mode, which causes xterm to print a line from the screen when you move the cursor off that line with a line feed, form feed or vertical tab character, or an autowrap occurs. Autoprint mode is overridden by printer controller mode (a ``2''), which causes all of the output to be directed to the printer. The default is ``0.'' printerExtent (class PrinterExtent) Controls whether a print page function will print the entire page (true), or only the the portion within the scrolling margins (false). The default is ``false.'' printerFormFeed (class PrinterFormFeed) Controls whether a form feed is sent to the printer at the end of a print page function. The default is ``false.'' renderFont (class RenderFont) If xterm is built with the Xft library, this controls whether the faceName resource is used. The default is ``true.'' resizeGravity (class ResizeGravity) Affects the behavior when the window is resized to be taller or shorter. NorthWest specifies that the top line of text on the screen stay fixed. If the window is made shorter, lines are dropped from the bottom; if the window is made taller, blank lines are added at the bottom. This is compatible with the behavior in R4. SouthWest (the default) specifies that the bottom line of text on the screen stay fixed. If the window is made taller, additional saved lines will be scrolled down onto the screen; if the window is made shorter, lines will be scrolled off the top of the screen, and the top saved lines will be dropped. reverseVideo (class ReverseVideo) Specifies whether or not reverse video should be simulated. The default is ``false.'' reverseWrap (class ReverseWrap) Specifies whether or not reverse-wraparound should be enabled. This corresponds to xterm's private mode 45. The default is ``false.'' rightScrollBar (class RightScrollBar) Specifies whether or not the scrollbar should be displayed on the right rather than the left. The default is ``false.'' saveLines (class SaveLines) Specifies the number of lines to save beyond the top of the screen when a scrollbar is turned on. The default is 64. scrollBar (class ScrollBar) Specifies whether or not the scrollbar should be displayed. The default is ``false.'' scrollBarBorder (class ScrollBarBorder) Specifies the width of the scrollbar border. Note that this is drawn to overlap the border of the xterm window. Modifying the scrollbar's border affects only the line between the VT100 widget and the scrollbar. The default value is 1. scrollKey (class ScrollCond) Specifies whether or not pressing a key should automatically cause the scrollbar to go to the bottom of the scrolling region. This corresponds to xterm's private mode 1011. The default is ``false.'' scrollLines (class ScrollLines) Specifies the number of lines that the scroll-back and scroll- forw actions should use as a default. The default value is 1. scrollTtyOutput (class ScrollCond) Specifies whether or not output to the terminal should automatically cause the scrollbar to go to the bottom of the scrolling region. The default is ``true.'' selectToClipboard (class SelectToClipboard) Tells xterm whether to use the PRIMARY or CLIPBOARD for SELECT tokens in the selection mechanism. The set-select action can change this at runtime, allowing the user to work with programs that handle only one of these mechanisms. The default is ``false'', which tells it to use PRIMARY. shiftFonts (class ShiftFonts) Specifies whether to enable the actions larger-vt-font() and smaller-vt-font(), which are normally bound to the shifted KP_Add and KP_Subtract. The default is ``true.'' showBlinkAsBold (class ShowBlinkAsBold) Tells xterm whether to display text with blink-attribute the same as bold. If xterm has not been configured to support blinking text, the default is ``true.'', which corresponds to older versions of xterm, otherwise the default is ``false.'' showMissingGlyphs (class ShowMissingGlyphs) Tells xterm whether to display a box outlining places where a character has been used that the font does not represent. The default is ``false.'' signalInhibit (class SignalInhibit) Specifies whether or not the entries in the ``Main Options'' menu for sending signals to xterm should be disallowed. The default is ``false.'' tekGeometry (class Geometry) Specifies the preferred size and position of the Tektronix window. There is no default for this resource. tekInhibit (class TekInhibit) Specifies whether or not the escape sequence to enter Tektronix mode should be ignored. The default is ``false.'' tekSmall (class TekSmall) Specifies whether or not the Tektronix mode window should start in its smallest size if no explicit geometry is given. This is useful when running xterm on displays with small screens. The default is ``false.'' tekStartup (class TekStartup) Specifies whether or not xterm should start up in Tektronix mode. The default is ``false.'' tiXtraScroll (class TiXtraScroll) Specifies whether xterm should scroll to a new page when processing the ti termcap entry, i.e., the private modes 47, 1047 or 1049. This is only in effect if titeInhibit is ``true'', because the intent of this option is to provide a picture of the full-screen application's display on the scrollback without wiping out the text that would be shown before the application was initialized. The default for this resource is ``false.'' titeInhibit (class TiteInhibit) Specifies whether or not xterm should remove ti and te termcap entries (used to switch between alternate screens on startup of many screen-oriented programs) from the TERMCAP string. If set, xterm also ignores the escape sequence to switch to the alternate screen. Xterm supports terminfo in a different way, supporting composite control sequences (also known as private modes) 1047, 1048 and 1049 which have the same effect as the original 47 control sequence. The default for this resource is ``false.'' translations (class Translations) Specifies the key and button bindings for menus, selections, ``programmed strings,'' etc. The translations resource, which provides much of xterm's configurability, is a feature of the X Toolkit Intrinsics library (Xt). See the ACTIONS section. trimSelection (class TrimSelection) If you set highlightSelection, you can see the text which is selected, including any trailing spaces. Clearing the screen (or a line) resets it to a state containing no spaces. Some lines may contain trailing spaces when an application writes them to the screen. However, you may not wish to paste lines with trailing spaces. If this resource is true, xterm will trim trailing spaces from text which is selected. It does not affect spaces which result in a wrapped line, nor will it trim the trailing newline from your selection. The default is ``false.'' underLine (class UnderLine) This specifies whether or not text with the underline attribute should be underlined. It may be desirable to disable underlining when color is being used for the underline attribute. The default is ``true.'' utf8 (class Utf8) This specifies whether xterm will run in UTF-8 mode. If you set this resource, xterm also sets the wideChars resource as a side-effect. The resource is an integer, expected to range from 0 to 3: 0 UTF-8 mode is initially off. The command-line option +u8 sets the resource to this value. Escape sequences for turning UTF-8 mode on/off are allowed. 1 UTF-8 mode is initially on. Escape sequences for turning UTF-8 mode on/off are allowed. 2 The command-line option -u8 sets the resource to this value. Escape sequences for turning UTF-8 mode on/off are ignored. 3 This is the default value of the resource. It is changed during initialization depending on whether the locale resource was set, to 0 or 2. See the locale resource for additional discussion of non-UTF-8 locales. If you want to set the value of utf8, it should be in this range. Other nonzero values are treated the same as ``1'', i.e., UTF-8 mode is initially on, and escape sequences for turning UTF-8 mode on/off are allowed. utf8Fonts (class Utf8Fonts) See the discussion of the locale resource. utf8Latin1 (class Utf8Latin1) If true, allow an ISO-8859-1 normal font to be combined with an ISO-10646 font if the latter is given via the -fw option or its corresponding resource value. The default is ``false.'' utf8Title (class Utf8Title) Applications can set xterm's title by writing a control sequence. Normally this control sequence follows the VT220 convention, which encodes the string in ISO-8859-1 and allows for an 8-bit string terminator. If xterm is started in a UTF-8 locale, it translates the ISO-8859-1 string to UTF-8 to work with the X libraries which assume the string is UTF-8. However, some users may wish to write a title string encoded in UTF-8. Set this resource to ``true'' to allow UTF-8 encoded title strings. That cancels the translation to UTF-8, allowing UTF-8 strings to be displayed as is. The default is ``false.'' veryBoldColors (class VeryBoldColors) Specifies whether to combine video attributes with colors specified by colorBD, colorBL, colorRV and colorUL. The resource value is the sum of values for each attribute: 1 for reverse, 2 for underline, 4 for bold and 8 for blink. The default is ``0.'' visualBell (class VisualBell) Specifies whether or not a visible bell (i.e., flashing) should be used instead of an audible bell when Control-G is received. The default is ``false.'' visualBellDelay (class VisualBellDelay) Number of milliseconds to delay when displaying a visual bell. Default is 100. If set to zero, no visual bell is displayed. This is useful for very slow displays, e.g., an LCD display on a laptop. vt100Graphics (class VT100Graphics) This specifies whether xterm will interpret VT100 graphic character escape sequences while in UTF-8 mode. The default is ``true'', to provide support for various legacy applications. wideBoldFont (class WideBoldFont) This option specifies the font to be used for displaying bold wide text. By default, it will attempt to use a font twice as wide as the font that will be used to draw bold text. If no doublewidth font is found, it will improvise, by stretching the bold font. wideChars (class WideChars) Specifies if xterm should respond to control sequences that process 16-bit characters. The default is ``false.'' wideFont (class WideFont) This option specifies the font to be used for displaying wide text. By default, it will attempt to use a font twice as wide as the font that will be used to draw normal text. If no doublewidth font is found, it will improvise, by stretching the normal font. ximFont (class XimFont) This option specifies the font to be used for displaying the preedit string in the "OverTheSpot" input method. In "OverTheSpot" preedit type, the preedit (preconversion) string is displayed at the position of the cursor. It is the XIM server's responsibility to display the preedit string. The XIM client must inform the XIM server of the cursor position. For best results, the preedit string must be displayed with a proper font. Therefore, xterm informs the XIM server of the proper font. The font is be supplied by a "fontset", whose default value is "*". This matches every font, the X library automatically chooses fonts with proper charsets. The ximFont resource is provided to override this default font setting. The following resources are specified as part of the tek4014 widget (class Tek4014). These are specified by patterns such as "XTerm.tek4014.NAME": font2 (class Font) Specifies font number 2 to use in the Tektronix window. font3 (class Font) Specifies font number 3 to use in the Tektronix window. fontLarge (class Font) Specifies the large font to use in the Tektronix window. fontSmall (class Font) Specifies the small font to use in the Tektronix window. ginTerminator (class GinTerminator) Specifies what character(s) should follow a GIN report or status report. The possibilities are ``none,'' which sends no terminating characters, ``CRonly,'' which sends CR, and ``CR&EOT,'' which sends both CR and EOT. The default is ``none.'' height (class Height) Specifies the height of the Tektronix window in pixels. initialFont (class InitialFont) Specifies which of the four Tektronix fonts to use initially. Values are the same as for the set-tek-text action. The default is ``large.'' width (class Width) Specifies the width of the Tektronix window in pixels. The resources that may be specified for the various menus are described in the documentation for the Athena SimpleMenu widget. The name and classes of the entries in each of the menus are listed below. Resources named "lineN" where N is a number are separators with class SmeLine. The mainMenu has the following entries: toolbar (class SmeBSB) This entry invokes the set-toolbar(toggle) action. securekbd (class SmeBSB) This entry invokes the secure() action. allowsends (class SmeBSB) This entry invokes the allow-send-events(toggle) action. redraw (class SmeBSB) This entry invokes the redraw() action. logging (class SmeBSB) This entry invokes the logging(toggle) action. print (class SmeBSB) This entry invokes the print() action. print-redir (class SmeBSB) This entry invokes the print-redir() action. 8-bit-control (class SmeBSB) This entry invokes the set-8-bit-control(toggle) action. backarrow key (class SmeBSB) This entry invokes the set-backarrow(toggle) action. num-lock (class SmeBSB) This entry invokes the set-num-lock(toggle) action. alt-esc (class SmeBSB) This entry invokes the alt-sends-escape(toggle) action. meta-esc (class SmeBSB) This entry invokes the meta-sends-escape(toggle) action. delete-is-del (class SmeBSB) This entry invokes the delete-is-del(toggle) action. oldFunctionKeys (class SmeBSB) This entry invokes the old-function-keys(toggle) action. hpFunctionKeys (class SmeBSB) This entry invokes the hp-function-keys(toggle) action. scoFunctionKeys (class SmeBSB) This entry invokes the sco-function-keys(toggle) action. sunFunctionKeys (class SmeBSB) This entry invokes the sun-function-keys(toggle) action. sunKeyboard (class SmeBSB) This entry invokes the sunKeyboard(toggle) action. suspend (class SmeBSB) This entry invokes the send-signal(tstp) action on systems that support job control. continue (class SmeBSB) This entry invokes the send-signal(cont) action on systems that support job control. interrupt (class SmeBSB) This entry invokes the send-signal(int) action. hangup (class SmeBSB) This entry invokes the send-signal(hup) action. terminate (class SmeBSB) This entry invokes the send-signal(term) action. kill (class SmeBSB) This entry invokes the send-signal(kill) action. quit (class SmeBSB) This entry invokes the quit() action. The vtMenu has the following entries: scrollbar (class SmeBSB) This entry invokes the set-scrollbar(toggle) action. jumpscroll (class SmeBSB) This entry invokes the set-jumpscroll(toggle) action. reversevideo (class SmeBSB) This entry invokes the set-reverse-video(toggle) action. autowrap (class SmeBSB) This entry invokes the set-autowrap(toggle) action. reversewrap (class SmeBSB) This entry invokes the set-reversewrap(toggle) action. autolinefeed (class SmeBSB) This entry invokes the set-autolinefeed(toggle) action. appcursor (class SmeBSB) This entry invokes the set-appcursor(toggle) action. appkeypad (class SmeBSB) This entry invokes the set-appkeypad(toggle) action. scrollkey (class SmeBSB) This entry invokes the set-scroll-on-key(toggle) action. scrollttyoutput (class SmeBSB) This entry invokes the set-scroll-on-tty-output(toggle) action. allow132 (class SmeBSB) This entry invokes the set-allow132(toggle) action. cursesemul (class SmeBSB) This entry invokes the set-cursesemul(toggle) action. visualbell (class SmeBSB) This entry invokes the set-visualbell(toggle) action. poponbell (class SmeBSB) This entry invokes the set-poponbell(toggle) action. marginbell (class SmeBSB) This entry invokes the set-marginbell(toggle) action. cursorblink (class SmeBSB) This entry invokes the set-cursorblink(toggle) action. titeInhibit (class SmeBSB) This entry invokes the set-titeInhibit(toggle) action. activeicon (class SmeBSB) This entry toggles active icons on and off if this feature was compiled into xterm. It is enabled only if xterm was started with the command line option +ai or the activeIcon resource is set to ``True.'' softreset (class SmeBSB) This entry invokes the soft-reset() action. hardreset (class SmeBSB) This entry invokes the hard-reset() action. clearsavedlines (class SmeBSB) This entry invokes the clear-saved-lines() action. tekshow (class SmeBSB) This entry invokes the set-visibility(tek,toggle) action. tekmode (class SmeBSB) This entry invokes the set-terminal-type(tek) action. vthide (class SmeBSB) This entry invokes the set-visibility(vt,off) action. altscreen (class SmeBSB) This entry invokes the set-altscreen(toggle) action. The fontMenu has the following entries: fontdefault (class SmeBSB) This entry invokes the set-vt-font(d) action. font1 (class SmeBSB) This entry invokes the set-vt-font(1) action. font2 (class SmeBSB) This entry invokes the set-vt-font(2) action. font3 (class SmeBSB) This entry invokes the set-vt-font(3) action. font4 (class SmeBSB) This entry invokes the set-vt-font(4) action. font5 (class SmeBSB) This entry invokes the set-vt-font(5) action. font6 (class SmeBSB) This entry invokes the set-vt-font(6) action. fontescape (class SmeBSB) This entry invokes the set-vt-font(e) action. fontsel (class SmeBSB) This entry invokes the set-vt-font(s) action. font-linedrawing (class SmeBSB) This entry invokes the set-font-linedrawing(s) action. font-doublesize (class SmeBSB) This entry invokes the set-font-doublesize(s) action. render-font (class SmeBSB) This entry invokes the set-render-font(s) action. utf8-mode (class SmeBSB) This entry invokes the set-utf8-mode(s) action. utf8-title (class SmeBSB) This entry invokes the set-utf8-title(s) action. The tekMenu has the following entries: tektextlarge (class SmeBSB) This entry invokes the set-tek-text(l) action. tektext2 (class SmeBSB) This entry invokes the set-tek-text(2) action. tektext3 (class SmeBSB) This entry invokes the set-tek-text(3) action. tektextsmall (class SmeBSB) This entry invokes the set-tek-text(s) action. tekpage (class SmeBSB) This entry invokes the tek-page() action. tekreset (class SmeBSB) This entry invokes the tek-reset() action. tekcopy (class SmeBSB) This entry invokes the tek-copy() action. vtshow (class SmeBSB) This entry invokes the set-visibility(vt,toggle) action. vtmode (class SmeBSB) This entry invokes the set-terminal-type(vt) action. tekhide (class SmeBSB) This entry invokes the set-visibility(tek,toggle) action. The following resources are useful when specified for the Athena Scrollbar widget: thickness (class Thickness) Specifies the width in pixels of the scrollbar. background (class Background) Specifies the color to use for the background of the scrollbar. foreground (class Foreground) Specifies the color to use for the foreground of the scrollbar. The ``thumb'' of the scrollbar is a simple checkerboard pattern alternating pixels for foreground and background color. POINTER USAGE Once the VT102 window is created, xterm allows you to select text and copy it within the same or other windows. SELECTION The selection functions are invoked when the pointer buttons are used with no modifiers, and when they are used with the ``shift'' key. The assignment of the functions described below to keys and buttons may be changed through the resource database; see ACTIONS below. Pointer button one (usually left) is used to save text into the cut buffer. Move the cursor to beginning of the text, and then hold the button down while moving the cursor to the end of the region and releasing the button. The selected text is highlighted and is saved in the global cut buffer and made the PRIMARY selection when the button is released. Normally (but see the discussion of on2Clicks, etc): - Double-clicking selects by words. - Triple-clicking selects by lines. - Quadruple-clicking goes back to characters, etc. Multiple-click is determined by the time from button up to button down, so you can change the selection unit in the middle of a selection. Logical words and lines selected by double- or triple-clicking may wrap across more than one screen line if lines were wrapped by xterm itself rather than by the application running in the window. If the key/button bindings specify that an X selection is to be made, xterm will leave the selected text highlighted for as long as it is the selection owner. Pointer button two (usually middle) `types' (pastes) the text from the PRIMARY selection, if any, otherwise from the cut buffer, inserting it as keyboard input. Pointer button three (usually right) extends the current selection. (Without loss of generality, you can swap ``right'' and ``left'' everywhere in the rest of this paragraph.) If pressed while closer to the right edge of the selection than the left, it extends/contracts the right edge of the selection. If you contract the selection past the left edge of the selection, xterm assumes you really meant the left edge, restores the original selection, then extends/contracts the left edge of the selection. Extension starts in the selection unit mode that the last selection or extension was performed in; you can multiple-click to cycle through them. By cutting and pasting pieces of text without trailing new lines, you can take text from several places in different windows and form a command to the shell, for example, or take output from a program and insert it into your favorite editor. Since cut buffers are globally shared among different applications, you may regard each as a `file' whose contents you know. The terminal emulator and other text programs should be treating it as if it were a text file, i.e., the text is delimited by new lines. SCROLLING The scroll region displays the position and amount of text currently showing in the window (highlighted) relative to the amount of text actually saved. As more text is saved (up to the maximum), the size of the highlighted area decreases. Clicking button one with the pointer in the scroll region moves the adjacent line to the top of the display window. Clicking button three moves the top line of the display window down to the pointer position. Clicking button two moves the display to a position in the saved text that corresponds to the pointer's position in the scrollbar. TEKTRONIX POINTER Unlike the VT102 window, the Tektronix window does not allow the copying of text. It does allow Tektronix GIN mode, and in this mode the cursor will change from an arrow to a cross. Pressing any key will send that key and the current coordinate of the cross cursor. Pressing button one, two, or three will return the letters `l', `m', and `r', respectively. If the `shift' key is pressed when a pointer button is pressed, the corresponding upper case letter is sent. To distinguish a pointer button from a key, the high bit of the character is set (but this is bit is normally stripped unless the terminal mode is RAW; see tty(4) for details). MENUS Xterm has four menus, named mainMenu, vtMenu, fontMenu, and tekMenu. Each menu pops up under the correct combinations of key and button presses. Each menu is divided into sections, separated by a horizontal line. Some menu entries correspond to modes that can be altered. A check mark appears next to a mode that is currently active. Selecting one of these modes toggles its state. Other menu entries are commands; selecting one of these performs the indicated function. All of the menu entries correspond to X actions. In the list below, the menu label is shown followed by the action's name in parenthesis. Main Options The xterm mainMenu pops up when the ``control'' key and pointer button one are pressed in a window. This menu contains items that apply to both the VT102 and Tektronix windows. There are several sections: Commands for managing X events: Toolbar Clicking on the "Toolbar" menu entry hides the toolbar if it is visible, and shows it if it is not. Secure Keyboard (securekbd) The Secure Keyboard mode is helpful when typing in passwords or other sensitive data in an unsecure environment; see SECURITY below (but read the limitations carefully). Allow SendEvents (allowsends ) Specifies whether or not synthetic key and button events generated using the X protocol SendEvent request should be interpreted or discarded. This corresponds to the allowSendEvents resource. Redraw Window (redraw) Forces the X display to repaint; useful in some environments. Commands for capturing output: Log to File (logging) Captures text sent to the screen in a logfile, as in the -l logging option. Print Window (print) Sends the text of the current window to the program given in the printerCommand resource. Redirect to Printer (print-redir) This sets the printerControlMode to 0 or 2. You can use this to turn the printer on as if an application had sent the appropriate control sequence. It is also useful for switching the printer off if an application turns it on without resetting the print control mode. Modes for setting keyboard style: 8-Bit Controls (8-bit-control) Enabled for VT220 emulation, this controls whether xterm will send 8-bit control sequences rather than using 7-bit (ASCII) controls, e.g., sending a byte in the range 128-159 rather than the escape character followed by a second byte. Xterm always interprets both 8-bit and 7-bit control sequences (see the document Xterm Control Sequences). This corresponds to the eightBitControl resource. Backarrow Key (BS/DEL) (backarrow key) Modifies the behavior of the backarrow key, making it transmit either a backspace (8) or delete (127) character. This corresponds to the backarrowKey resource. Alt/NumLock Modifiers (num-lock) Controls the treatment of Alt- and NumLock-key modifiers. This corresponds to the numLock resource. Meta Sends Escape (meta-esc) Controls whether Meta keys are converted into a two- character sequence with the character itself preceded by ESC. This corresponds to the metaSendsEscape resource. Delete is DEL (delete-is-del) Controls whether the Delete key on the editing keypad should send DEL (127) or the VT220-style Remove escape sequence. This corresponds to the deleteIsDEL resource. Old Function-Keys (oldFunctionKeys) HP Function-Keys (hpFunctionKeys) SCO Function-Keys (scoFunctionKeys) Sun Function-Keys (sunFunctionKeys) VT220 Keyboard (sunKeyboard) These act as a radio-button, selecting one style for the keyboard layout. It corresponds to more than one resource setting: sunKeyboard, sunFunctionKeys, scoFunctionKeys and hpFunctionKeys ." Commands for process signalling: Send STOP Signal (suspend) Send CONT Signal (continue) Send INT Signal (interrupt) Send HUP Signal (hangup) Send TERM Signal (terminate) Send KILL Signal (kill) These send the SIGTSTP, SIGCONT, SIGINT, SIGHUP, SIGTERM and SIGKILL signals respectively, to the process group of the process running under xterm (usually the shell). The SIGCONT function is especially useful if the user has accidentally typed CTRL-Z, suspending the process. Quit (quit) Stop processing X events except to support the -hold option, and then send a SIGHUP signal to the the process group of the process running under xterm (usually the shell). VT Options The vtMenu sets various modes in the VT102 emulation, and is popped up when the ``control'' key and pointer button two are pressed in the VT102 window. VT102/VT220 Modes: Enable Scrollbar (scrollbar) Enable (or disable) the scrollbar. This corresponds to the -sb option and the scrollBar resource. Enable Jump Scroll (jumpscroll) Enable (or disable) jump scrolling. This corresponds to the -j option and the jumpScroll resource. Enable Reverse Video (reversevideo) Enable (or disable) reverse-video. This corresponds to the -rv option and the reverseVideo resource. Enable Auto Wraparound (autowrap) Enable (or disable) auto-wraparound. This corresponds to the -aw option and the autoWrap resource. Enable Reverse Wraparound (reversewrap) Enable (or disable) reverse wraparound. This corresponds to the -rw option and the reverseWrap resource. Enable Auto Linefeed (autolinefeed) Enable (or disable) auto-linefeed. This is the VT102 NEL function, which causes the emulator to emit a linefeed after each carriage return. There is no corresponding command-line option or resource setting. Enable Application Cursor Keys (appcursor) Enable (or disable) application cursor keys. This corresponds to the appcursorDefault resource. There is no corresponding command-line option. Enable Application Keypad (appkeypad) Enable (or disable) application keypad keys. This corresponds to the appkeypadDefault resource. There is no corresponding command-line option. Scroll to Bottom on Key Press (scrollkey) Enable (or disable) scrolling to the bottom of the scrolling region on a keypress. This corresponds to the -sk option and the scrollKey resource. Scroll to Bottom on Tty Output (scrollttyoutput) Enable (or disable) scrolling to the bottom of the scrolling region on output to the terminal.. This corresponds to the -si option and the scrollTtyOutput resource. Allow 80/132 Column Switching (allow132) Enable (or disable) switching between 80 and 132 columns. This corresponds to the -132 option and the c132 resource. Select to Clipboard (selectToClipboard) Tell xterm whether to use the PRIMARY or CLIPBOARD for SELECT tokens in the translations resource which maps keyboard and mouse actions to select/paste actions. This corresponds to the selectToClipboard resource. There is no corresponding command-line option. Enable Visual Bell (visualbell) Enable (or disable) visible bell (i.e., flashing) instead of an audible bell. This corresponds to the -vb option and the visualBell resource. Enable Pop on Bell (poponbell) Enable (or disable) raising of the window when Control-G is received. This corresponds to the -pop option and the popOnBell resource. Enable Margin Bell (marginbell) Enable (or disable) a bell when the user types near the right margin. This corresponds to the -mb option and the marginBell resource. Enable Blinking Cursor (cursorblink) Enable (or disable) the blinking-cursor feature. This corresponds to the -bc option and the cursorBlink resource. There is also an escape sequence (see the document Xterm Control Sequences). The menu entry and the escape sequence states are XOR'd: if both are enabled, the cursor will not blink, if only one is enabled, the cursor will blink. Enable Alternate Screen Switching (titeInhibit) Enable (or disable) switching between the normal and alternate screens. This corresponds to the titeInhibit resource. There is no corresponding command-line option. Enable Active Icon (activeicon) Enable (or disable) the active-icon feature. This corresponds to the -ai option and the activeIcon resource. VT102/VT220 Commands: Do Soft Reset (softreset) Reset scroll regions. This can be convenient when some program has left the scroll regions set incorrectly (often a problem when using VMS or TOPS-20). This corresponds to the VT220 DECSTR control sequence. Do Full Reset (hardreset) The full reset entry will clear the screen, reset tabs to every eight columns, and reset the terminal modes (such as wrap and smooth scroll) to their initial states just after xterm has finished processing the command line options. This corresponds to the VT102 RIS control sequence, with a few obvious differences. For example, your session is not disconnected as a real VT102 would do. Reset and Clear Saved Lines (clearsavedlines) Perform a full reset, and also clear the saved lines. Commands for setting the current screen: Show Tek Window (tekshow) When enabled, pops the Tektronix 4014 window up (makes it visible). When disabled, hides the Tektronix 4014 window. Switch to Tek Mode (tekmode) When enabled, pops the Tektronix 4014 window up if it is not already visible, and switches the input stream to that window. When disabled, hides the Tektronix 4014 window and switches input back to the VTxxx window. Hide VT Window (vthide) When enabled, hides the VTxxx window, shows the Tektronix 4014 window if it was not already visible and switches the input stream to that window. When disabled, shows the VTxxx window, and switches the input stream to that window. Show Alternate Screen (altscreen) When enabled, shows the alternate screen. When disabled, shows the normal screen. Note that the normal screen may have saved lines; the alternate screen does not. VT Fonts The fontMenu pops up when when the ``control'' key and pointer button three are pressed in a window. It sets the font used in the VT102 window, or modifies the way the font is specified or displayed. There are three sections. The first section allows you to select the font from a set of alternatives: Default (fontdefault) Set the font to the default, i.e., that given by the *VT100.font resource. Unreadable (font1) Set the font to that given by the *VT100.font1 resource. Tiny (font2) Set the font to that given by the *VT100.font2 resource. Small (font3) Set the font to that given by the *VT100.font3 resource. Medium (font4) Set the font to that given by the *VT100.font4 resource. Large (font5) Set the font to that given by the *VT100.font5 resource. Huge (font6) Set the font to that given by the *VT100.font6 resource. Escape Sequence This allows you to set the font last specified by the Set Font escape sequence (see the document Xterm Control Sequences). Selection (fontsel) This allows you to set the font specified the current selection as a font name (if the PRIMARY selection is owned). The second section allows you to modify the way it is displayed: Line-Drawing Characters (font-linedrawing) When set, tells xterm to draw its own line-drawing characters. Otherwise it relies on the font containing these. Compare to the forceBoxChars resource. Doublesized Characters (font-doublesize) When set, xterm may ask the font server to produce scaled versions of the normal font, for VT102 double-size characters. The third section allows you to modify the way it is specified: TrueType Fonts (render-font) If the renderFont and corresponding resources were set, this is a further control whether xterm will actually use the Xft library calls to obtain a font. UTF-8 (utf8-mode) This controls whether xterm uses UTF-8 encoding of input/output. It is useful for temporarily switching xterm to display text from an application which does not follow the locale settings. TEK Options The tekMenu sets various modes in the Tektronix emulation, and is popped up when the ``control'' key and pointer button two are pressed in the Tektronix window. The current font size is checked in the modes section of the menu. Large Characters (tektextlarge) #2 Size Characters (tektext2) #3 Size Characters (tektext3) Small Characters (tektextsmall) Commands: PAGE (tekpage) Clear the Tektronix window. RESET (tekreset) COPY (tekcopy) Windows: Show VT Window (vtshow) Switch to VT Mode (vtmode) Hide Tek Window (tekhide) SECURITY X environments differ in their security consciousness. Most servers, run under xdm, are capable of using a ``magic cookie'' authorization scheme that can provide a reasonable level of security for many people. If your server is only using a host-based mechanism to control access to the server (see xhost(1)), then if you enable access for a host and other users are also permitted to run clients on that same host, it is possible that someone can run an application which uses the basic services of the X protocol to snoop on your activities, potentially capturing a transcript of everything you type at the keyboard. Any process which has access to your X display can manipulate it in ways that you might not anticipate, even redirecting your keyboard to itself and sending events to your application's windows. This is true even with the ``magic cookie'' authorization scheme. While the allowSendEvents provides some protection against rogue applications tampering with your programs, guarding against a snooper is harder. The possibility of an application spying on your keystrokes is of particular concern when you want to type in a password or other sensitive data. The best solution to this problem is to use a better authorization mechanism than is provided by X. Given all of these caveats, a simple mechanism exists for protecting keyboard input in xterm. The xterm menu (see MENUS above) contains a Secure Keyboard entry which, when enabled, attempts to ensure that all keyboard input is directed only to xterm (using the GrabKeyboard protocol request). When an application prompts you for a password (or other sensitive data), you can enable Secure Keyboard using the menu, type in the data, and then disable Secure Keyboard using the menu again. This ensures that you know which window is accepting your keystrokes. It cannot ensure that there are no processes which have access to your X display that might be observing the keystrokes as well. Only one X client at a time can grab the keyboard, so when you attempt to enable Secure Keyboard it may fail. In this case, the bell will sound. If the Secure Keyboard succeeds, the foreground and background colors will be exchanged (as if you selected the Reverse Video entry in the Modes menu); they will be exchanged again when you exit secure mode. If the colors do not switch, then you should be very suspicious that you are being spoofed. If the application you are running displays a prompt before asking for the password, it is safest to enter secure mode before the prompt gets displayed, and to make sure that the prompt gets displayed correctly (in the new colors), to minimize the probability of spoofing. You can also bring up the menu again and make sure that a check mark appears next to the entry. Secure Keyboard mode will be disabled automatically if your xterm window becomes iconified (or otherwise unmapped), or if you start up a reparenting window manager (that places a title bar or other decoration around the window) while in Secure Keyboard mode. (This is a feature of the X protocol not easily overcome.) When this happens, the foreground and background colors will be switched back and the bell will sound in warning. CHARACTER CLASSES Clicking the left mouse button twice in rapid succession (double- clicking) causes all characters of the same class (e.g., letters, white space, punctuation) to be selected as a ``word''. Since different people have different preferences for what should be selected (for example, should filenames be selected as a whole or only the separate subnames), the default mapping can be overridden through the use of the charClass (class CharClass) resource. This resource is a series of comma-separated of range:value pairs. The range is either a single number or low-high in the range of 0 to 65535, corresponding to the code for the character or characters to be set. The value is arbitrary, although the default table uses the character number of the first character occurring in the set. When not in UTF-8 mode, only the first 256 bytes of this table will be used. The default table starts as follows - static int charClass[256] = { /* NUL SOH STX ETX EOT ENQ ACK BEL */ 32, 1, 1, 1, 1, 1, 1, 1, /* BS HT NL VT NP CR SO SI */ 1, 32, 1, 1, 1, 1, 1, 1, /* DLE DC1 DC2 DC3 DC4 NAK SYN ETB */ 1, 1, 1, 1, 1, 1, 1, 1, /* CAN EM SUB ESC FS GS RS US */ 1, 1, 1, 1, 1, 1, 1, 1, /* SP ! " # $ % & ' */ 32, 33, 34, 35, 36, 37, 38, 39, /* ( ) * + , - . / */ 40, 41, 42, 43, 44, 45, 46, 47, /* 0 1 2 3 4 5 6 7 */ 48, 48, 48, 48, 48, 48, 48, 48, /* 8 9 : ; < = > ? */ 48, 48, 58, 59, 60, 61, 62, 63, /* @ A B C D E F G */ 64, 48, 48, 48, 48, 48, 48, 48, /* H I J K L M N O */ 48, 48, 48, 48, 48, 48, 48, 48, /* P Q R S T U V W */ 48, 48, 48, 48, 48, 48, 48, 48, /* X Y Z [ \ ] ^ _ */ 48, 48, 48, 91, 92, 93, 94, 48, /* ` a b c d e f g */ 96, 48, 48, 48, 48, 48, 48, 48, /* h i j k l m n o */ 48, 48, 48, 48, 48, 48, 48, 48, /* p q r s t u v w */ 48, 48, 48, 48, 48, 48, 48, 48, /* x y z { | } ~ DEL */ 48, 48, 48, 123, 124, 125, 126, 1, /* x80 x81 x82 x83 IND NEL SSA ESA */ 1, 1, 1, 1, 1, 1, 1, 1, /* HTS HTJ VTS PLD PLU RI SS2 SS3 */ 1, 1, 1, 1, 1, 1, 1, 1, /* DCS PU1 PU2 STS CCH MW SPA EPA */ 1, 1, 1, 1, 1, 1, 1, 1, /* x98 x99 x9A CSI ST OSC PM APC */ 1, 1, 1, 1, 1, 1, 1, 1, /* - i c/ L ox Y- | So */ 160, 161, 162, 163, 164, 165, 166, 167, /* .. c0 ip << _ R0 - */ 168, 169, 170, 171, 172, 173, 174, 175, /* o +- 2 3 ' u q| . */ 176, 177, 178, 179, 180, 181, 182, 183, /* , 1 2 >> 1/4 1/2 3/4 ? */ 184, 185, 186, 187, 188, 189, 190, 191, /* A` A' A^ A~ A: Ao AE C, */ 48, 48, 48, 48, 48, 48, 48, 48, /* E` E' E^ E: I` I' I^ I: */ 48, 48, 48, 48, 48, 48, 48, 48, /* D- N~ O` O' O^ O~ O: X */ 48, 48, 48, 48, 48, 48, 48, 215, /* O/ U` U' U^ U: Y' P B */ 48, 48, 48, 48, 48, 48, 48, 48, /* a` a' a^ a~ a: ao ae c, */ 48, 48, 48, 48, 48, 48, 48, 48, /* e` e' e^ e: i` i' i^ i: */ 48, 48, 48, 48, 48, 48, 48, 48, /* d n~ o` o' o^ o~ o: -: */ 48, 48, 48, 48, 48, 48, 48, 247, /* o/ u` u' u^ u: y' P y: */ 48, 48, 48, 48, 48, 48, 48, 48}; For example, the string ``33:48,37:48,45-47:48,38:48'' indicates that the exclamation mark, percent sign, dash, period, slash, and ampersand characters should be treated the same way as characters and numbers. This is useful for cutting and pasting electronic mailing addresses and filenames. ACTIONS It is possible to rebind keys (or sequences of keys) to arbitrary strings for input, by changing the translations resources for the vt100 or tek4014 widgets. Changing the translations resource for events other than key and button events is not expected, and will cause unpredictable behavior. The following actions are provided for use within the vt100 or tek4014 translations resources: allow-send-events(on/off/toggle) This action set or toggles the allowSendEvents resource and is also invoked by the allowsends entry in mainMenu. alt-sends-escape() This action toggles the state of the eightBitInput resource. bell([percent]) This action rings the keyboard bell at the specified percentage above or below the base volume. clear-saved-lines() This action does hard-reset() (see below) and also clears the history of lines saved off the top of the screen. It is also invoked from the clearsavedlines entry in vtMenu. The effect is identical to a hardware reset (RIS) control sequence. create-menu(m/v/f/t) This action creates one of the menus used by xterm, if it has not been previously created. The parameter values are the menu names: mainMenu, vtMenu, fontMenu, tekMenu, respectively. dabbrev-expand() Expands the word before cursor by searching in the preceding text on the screen and in the scrollback buffer for words starting with that abbreviation. Repeating dabbrev-expand() several times in sequence searches for an alternative expansion by looking farther back. Lack of more matches is signaled by a beep(). Attempts to expand an empty word (i.e., when cursor is preceded by a space) yield successively all previous words. Consecutive identical expansions are ignored. The word here is defined as a sequence of non-whitespace characters. This feature partially emulates the behavior of `dynamic abbreviation' expansion in Emacs (bound there to M-/). Here is a resource setting for xterm which will do the same thing: *VT100*translations: #override \n\ Meta /:dabbrev-expand() deiconify() Changes the window state back to normal, if it was iconified. delete-is-del() This action toggles the state of the deleteIsDEL resource. dired-button() Handles a button event (other than press and release) by echoing the event's position (i.e., character line and column) in the following format: ^X ESC G iconify() Iconifies the window. hard-reset() This action resets the scrolling region, tabs, window size, and cursor keys and clears the screen. It is also invoked from the hardreset entry in vtMenu. ignore() This action ignores the event but checks for special pointer position escape sequences. insert() This action inserts the character or string associated with the key that was pressed. insert-eight-bit() This action inserts an eight-bit (Meta) version of the character or string associated with the key that was pressed. This only applies to single-byte values. The exact action depends on the value of the metaSendsEscape and the eightBitInput resources. The metaSendsEscape resource is tested first. The term "eight-bit" is misleading: xterm checks if the key's value is less than 128. If so, xterm adds 128 to the value, setting its eighth bit. Otherwise xterm sends an ESC byte before the key. In other applications' documentation, that is referred to as a "meta key". insert-selection(sourcename [, ...]) This action inserts the string found in the selection or cutbuffer indicated by sourcename. Sources are checked in the order given (case is significant) until one is found. Commonly-used selections include: PRIMARY, SECONDARY, and CLIPBOARD. Cut buffers are typically named CUT_BUFFER0 through CUT_BUFFER7. insert-seven-bit() This action is a synonym for insert() The term "seven-bit" is misleading: it only implies that xterm does not try to add 128 to the key's value as in insert-eight-bit(). interpret(control-sequence) Interpret the given control sequence locally, i.e., without passing it to the host. This works by inserting the control sequence at the front of the input buffer. Use "\" to escape octal digits in the string. Xt does not allow you to put a null character (i.e., "\000") in the string. keymap(name) This action dynamically defines a new translation table whose resource name is name with the suffix Keymap (case is significant). The name None restores the original translation table. larger-vt-font() Set the font to the next larger one, based on the font dimensions. See also set-vt-font(). load-vt-fonts(name[,class]) Load fontnames from the given subresource name and class. That is, load the "*VT100.name.font", resource as "*VT100.font" etc. If no name is given, the original set of fontnames is restored. Unlike set-vt-font(), this does not affect the escape- and select-fonts, since those are not based on resource values. It does affect the fonts loosely organized under the ``Default'' menu entry: font, boldFont, wideFont and wideBoldFont. maximize() Resizes the window to fill the screen. meta-sends-escape() This action toggles the state of the metaSendsEscape resource. popup-menu(menuname) This action displays the specified popup menu. Valid names (case is significant) include: mainMenu, vtMenu, fontMenu, and tekMenu. print() This action prints the window and is also invoked by the print entry in mainMenu. print-redir() This action toggles the printerControlMode between 0 and 2. The corresponding popup menu entry is useful for switching the printer off if you happen to change your mind after deciding to print random binary files on the terminal. quit() This action sends a SIGHUP to the subprogram and exits. It is also invoked by the quit entry in mainMenu. redraw() This action redraws the window and is also invoked by the redraw entry in mainMenu. restore() Restores the window to the size before it was last maximized. scroll-back(count [,units [,mouse] ]) This action scrolls the text window backward so that text that had previously scrolled off the top of the screen is now visible. The count argument indicates the number of units (which may be page, halfpage, pixel, or line) by which to scroll. An adjustment can be specified for these values by appending a "+" or "-" sign followed by a number, e.g., page-2 to specify 2 lines less than a page. If the third parameter mouse is given, the action is ignored when mouse reporting is enabled. scroll-forw(count [,units [,mouse] ]) This action is similar to scroll-back except that it scrolls in the other direction. secure() This action toggles the Secure Keyboard mode described in the section named SECURITY, and is invoked from the securekbd entry in mainMenu. select-cursor-end(destname [, ...]) This action is similar to select-end except that it should be used with select-cursor-start. select-cursor-start() This action is similar to select-start except that it begins the selection at the current text cursor position. select-end(destname [, ...]) This action puts the currently selected text into all of the selections or cutbuffers specified by destname. select-extend() This action tracks the pointer and extends the selection. It should only be bound to Motion events. select-set() This action stores text that corresponds to the current selection, without affecting the selection mode. select-start() This action begins text selection at the current pointer location. See the section on POINTER USAGE for information on making selections. send-signal(signame) This action sends the signal named by signame to the xterm subprocess (the shell or program specified with the -e command line option) and is also invoked by the suspend, continue, interrupt, hangup, terminate, and kill entries in mainMenu. Allowable signal names are (case is not significant): tstp (if supported by the operating system), suspend (same as tstp), cont (if supported by the operating system), int, hup, term, quit, alrm, alarm (same as alrm) and kill. set-allow132(on/off/toggle) This action toggles the c132 resource and is also invoked from the allow132 entry in vtMenu. set-altscreen(on/off/toggle) This action toggles between the alternate and current screens. set-appcursor(on/off/toggle) This action toggles the handling Application Cursor Key mode and is also invoked by the appcursor entry in vtMenu. set-appkeypad(on/off/toggle) This action toggles the handling of Application Keypad mode and is also invoked by the appkeypad entry in vtMenu. set-autolinefeed(on/off/toggle) This action toggles automatic insertion of linefeeds and is also invoked by the autolinefeed entry in vtMenu. set-autowrap(on/off/toggle) This action toggles automatic wrapping of long lines and is also invoked by the autowrap entry in vtMenu. set-backarrow(on/off/toggle) This action toggles the backarrowKey resource and is also invoked from the backarrow key entry in vtMenu. set-cursorblink(on/off/toggle) This action toggles the cursorBlink resource and is also invoked from the cursorblink entry in vtMenu. set-cursesemul(on/off/toggle) This action toggles the curses resource and is also invoked from the cursesemul entry in vtMenu. set-font-doublesize(on/off/toggle) This action toggles the fontDoublesize resource and is also invoked by the font-doublesize entry in fontMenu. set-hp-function-keys(on/off/toggle) This action toggles the hpFunctionKeys resource and is also invoked by the hpFunctionKeys entry in mainMenu. set-jumpscroll(on/off/toggle) This action toggles the jumpscroll resource and is also invoked by the jumpscroll entry in vtMenu. set-font-linedrawing(on/off/toggle) This action toggles the xterm's state regarding whether the current font has line-drawing characters and whether it should draw them directly. It is also invoked by the font-linedrawing entry in fontMenu. set-logging() This action toggles the state of the logging option. set-old-function-keys(on/off/toggle) This action toggles the state of legacy function keys and is also invoked by the oldFunctionKeys entry in mainMenu. set-marginbell(on/off/toggle) This action toggles the marginBell resource and is also invoked from the marginbell entry in vtMenu. set-num-lock() This action toggles the state of the numLock resource. set-pop-on-bell(on/off/toggle) This action toggles the popOnBell resource and is also invoked by the poponbell entry in vtMenu. set-render-font(on/off/toggle) This action toggles the renderFont resource and is also invoked by the render-font entry in fontMenu. set-reverse-video(on/off/toggle) This action toggles the reverseVideo resource and is also invoked by the reversevideo entry in vtMenu. set-reversewrap(on/off/toggle) This action toggles the reverseWrap resource and is also invoked by the reversewrap entry in vtMenu. set-scroll-on-key(on/off/toggle) This action toggles the scrollKey resource and is also invoked from the scrollkey entry in vtMenu. set-scroll-on-tty-output(on/off/toggle) This action toggles the scrollTtyOutput resource and is also invoked from the scrollttyoutput entry in vtMenu. set-scrollbar(on/off/toggle) This action toggles the scrollbar resource and is also invoked by the scrollbar entry in vtMenu. set-select(on/off/toggle) This action toggles the selectToClipboard resource and is also invoked by the selectToClipboard entry in vtMenu. set-sco-function-keys(on/off/toggle) This action toggles the scoFunctionKeys resource and is also invoked by the scoFunctionKeys entry in mainMenu. set-sun-function-keys(on/off/toggle) This action toggles the sunFunctionKeys resource and is also invoked by the sunFunctionKeys entry in mainMenu. set-sun-keyboard(on/off/toggle) This action toggles the sunKeyboard resource and is also invoked by the sunKeyboard entry in mainMenu. set-tek-text(large/2/3/small) This action sets font used in the Tektronix window to the value of the resources tektextlarge, tektext2, tektext3, and tektextsmall according to the argument. It is also by the entries of the same names as the resources in tekMenu. set-terminal-type(type) This action directs output to either the vt or tek windows, according to the type string. It is also invoked by the tekmode entry in vtMenu and the vtmode entry in tekMenu. set-titeInhibit(on/off/toggle) This action toggles the titeInhibit resource, which controls switching between the alternate and current screens. set-toolbar(on/off/toggle) This action toggles the toolbar feature and is also invoked by the toolbar entry in mainMenu. set-utf8-mode(on/off/toggle) This action toggles the utf8 resource and is also invoked by the utf8-mode entry in fontMenu. set-utf8-title(on/off/toggle) This action toggles the utf8Title resource and is also invoked by the utf8-title entry in fontMenu. set-visibility(vt/tek,on/off/toggle) This action controls whether or not the vt or tek windows are visible. It is also invoked from the tekshow and vthide entries in vtMenu and the vtshow and tekhide entries in tekMenu. set-visual-bell(on/off/toggle) This action toggles the visualBell resource and is also invoked by the visualbell entry in vtMenu. set-vt-font(d/1/2/3/4/5/6/e/s [,normalfont [, boldfont]]) This action sets the font or fonts currently being used in the VT102 window. The first argument is a single character that specifies the font to be used: d or D indicate the default font (the font initially used when xterm was started), 1 through 6 indicate the fonts specified by the font1 through font6 resources, e or E indicate the normal and bold fonts that have been set through escape codes (or specified as the second and third action arguments, respectively), and s or S indicate the font selection (as made by programs such as xfontsel(1)) indicated by the second action argument. If xterm is configured to support wide characters, an additional two optional parameters are recognized for the e argument: wide font and wide bold font. smaller-vt-font() Set the font to the next smaller one, based on the font dimensions. See also set-vt-font(). soft-reset() This action resets the scrolling region and is also invoked from the softreset entry in vtMenu. The effect is identical to a soft reset (DECSTR) control sequence. start-extend() This action is similar to select-start except that the selection is extended to the current pointer location. start-cursor-extend() This action is similar to select-extend except that the selection is extended to the current text cursor position. string(string) This action inserts the specified text string as if it had been typed. Quotation is necessary if the string contains whitespace or non-alphanumeric characters. If the string argument begins with the characters ``0x'', it is interpreted as a hex character constant. tek-copy() This action copies the escape codes used to generate the current window contents to a file in the current directory beginning with the name COPY. It is also invoked from the tekcopy entry in tekMenu. tek-page() This action clears the Tektronix window and is also invoked by the tekpage entry in tekMenu. tek-reset() This action resets the Tektronix window and is also invoked by the tekreset entry in tekMenu. vi-button() Handles a button event (other than press and release) by echoing a control sequence computed from the event's line number in the screen relative to the current line: ESC ^P or ESC ^N according to whether the event is before, or after the current line, respectively. The ^N (or ^P) is repeated once for each line that the event differs from the current line. The control sequence is omitted altogether if the button event is on the current line. visual-bell() This action flashes the window quickly. The Tektronix window also has the following action: gin-press(l/L/m/M/r/R) This action sends the indicated graphics input code. The default bindings in the VT102 window use the SELECT token, which is set by the selectToClipboard resource: Shift Prior:scroll-back(1,halfpage) \n\ Shift Next:scroll-forw(1,halfpage) \n\ Shift Select:select-cursor-start() \ select-cursor-end(SELECT, CUT_BUFFER0) \n\ Shift Insert:insert-selection(SELECT, CUT_BUFFER0) \n\ Shift~Ctrl KP_Add:larger-vt-font() \n\ Shift Ctrl KP_Add:smaller-vt-font() \n\ Shift KP_Subtract:smaller-vt-font() \n\ ~Meta :insert-seven-bit() \n\ Meta :insert-eight-bit() \n\ !Ctrl :popup-menu(mainMenu) \n\ !Lock Ctrl :popup-menu(mainMenu) \n\ !Lock Ctrl @Num_Lock :popup-menu(mainMenu) \n\ ! @Num_Lock Ctrl :popup-menu(mainMenu) \n\ ~Meta :select-start() \n\ ~Meta :select-extend() \n\ !Ctrl :popup-menu(vtMenu) \n\ !Lock Ctrl :popup-menu(vtMenu) \n\ !Lock Ctrl @Num_Lock :popup-menu(vtMenu) \n\ ! @Num_Lock Ctrl :popup-menu(vtMenu) \n\ ~Ctrl ~Meta :ignore() \n\ Meta :clear-saved-lines() \n\ ~Ctrl ~Meta :insert-selection(SELECT, CUT_BUFFER0) \n\ !Ctrl :popup-menu(fontMenu) \n\ !Lock Ctrl :popup-menu(fontMenu) \n\ !Lock Ctrl @Num_Lock :popup-menu(fontMenu) \n\ ! @Num_Lock Ctrl :popup-menu(fontMenu) \n\ ~Ctrl ~Meta :start-extend() \n\ ~Meta :select-extend() \n\ Ctrl :scroll-back(1,halfpage,m) \n\ Lock Ctrl :scroll-back(1,halfpage,m) \n\ Lock @Num_Lock Ctrl :scroll-back(1,halfpage,m) \n\ @Num_Lock Ctrl :scroll-back(1,halfpage,m) \n\ :scroll-back(5,line,m) \n\ Ctrl :scroll-forw(1,halfpage,m) \n\ Lock Ctrl :scroll-forw(1,halfpage,m) \n\ Lock @Num_Lock Ctrl :scroll-forw(1,halfpage,m) \n\ @Num_Lock Ctrl :scroll-forw(1,halfpage,m) \n\ :scroll-forw(5,line,m) \n\ :select-end(SELECT, CUT_BUFFER0) \n\ :ignore() The default bindings in the Tektronix window are: ~Meta: insert-seven-bit() \n\ Meta: insert-eight-bit() \n\ !Ctrl : popup-menu(mainMenu) \n\ !Lock Ctrl : popup-menu(mainMenu) \n\ !Lock Ctrl @Num_Lock :popup-menu(mainMenu) \n\ !Ctrl @Num_Lock :popup-menu(mainMenu) \n\ !Ctrl : popup-menu(tekMenu) \n\ !Lock Ctrl : popup-menu(tekMenu) \n\ !Lock Ctrl @Num_Lock :popup-menu(tekMenu) \n\ !Ctrl @Num_Lock :popup-menu(tekMenu) \n\ Shift ~Meta:gin-press(L) \n\ ~Meta:gin-press(l) \n\ Shift ~Meta:gin-press(M) \n\ ~Meta:gin-press(m) \n\ Shift ~Meta:gin-press(R) \n\ ~Meta:gin-press(r) Here is an example which uses shifted select/paste to copy to the clipboard, and unshifted select/paste for the primary selection. In each case, a (different) cut buffer is also a target or source of the select/paste operation. It is important to remember however, that cut buffers store data in ISO-8859-1 encoding, while selections can store data in a variety of formats and encodings. While xterm owns the selection, it highlights it. When it loses the selection, it removes the corresponding highlight. But you can still paste from the corresponding cut buffer. *VT100*translations: #override \n\ ~Shift~Ctrl: insert-selection(PRIMARY, CUT_BUFFER0) \n\ Shift~Ctrl: insert-selection(CLIPBOARD, CUT_BUFFER1) \n\ ~Shift: select-end(PRIMARY, CUT_BUFFER0) \n\ Shift: select-end(CLIPBOARD, CUT_BUFFER1) Below is a sample how of the keymap() action is used to add special keys for entering commonly-typed works: *VT100.Translations: #override F13: keymap(dbx) *VT100.dbxKeymap.translations: \ F14: keymap(None) \n\ F17: string("next") string(0x0d) \n\ F18: string("step") string(0x0d) \n\ F19: string("continue") string(0x0d) \n\ F20: string("print ") insert-selection(PRIMARY, CUT_BUFFER0) CONTROL SEQUENCES AND KEYBOARD The Xterm Control Sequences document lists the control sequences which an application can send xterm to make it perform various operations. Most of these operations are standardized, from either the DEC or Tektronix terminals, or from more widely used standards such as ISO 6429. ENVIRONMENT Xterm sets several environment variables: DISPLAY is the display name, pointing to the X server (see DISPLAY NAMES in X(7)). TERM is set according to the termcap (or terminfo) entry which it is using as a reference. WINDOWID is set to the X window id number of the xterm window. XTERM_SHELL is set to the pathname of the program which is invoked. Usually that is a shell program, e.g., /bin/sh. Since it is not necessarily a shell program however, it is distinct from ``SHELL''. XTERM_VERSION is set to the string displayed by the -version option. That is normally an identifier for the X Window libraries used to build xterm, followed by xterm's patch number in parenthesis. The patch number is also part of the response to a Secondary Device Attributes (DA) control sequence (see Xterm Control Sequences). Depending on your system configuration, xterm may also set the following: COLUMNS the width of the xterm in characters (cf: "stty columns"). HOME when xterm is configured to update utmp. LINES the height of the xterm in characters (cf: "stty rows"). LOGNAME when xterm is configured to update utmp. SHELL when xterm is configured to update utmp. It is also set if you provide the shell name as the optional parameter. TERMCAP the contents of the termcap entry corresponding to $TERM, with lines and columns values substituted for the actual size window you have created. TERMINFO may be defined to a nonstandard location in the configure script. FILES The actual pathnames given may differ on your system. /etc/utmp the system logfile, which records user logins. /etc/wtmp the system logfile, which records user logins and logouts. /usr/X11R6/lib/X11/app-defaults/XTerm the xterm default application resources. /usr/X11R6/lib/X11/app-defaults/XTerm-color the xterm color application resources. If your display supports color, use this *customization: -color in your .Xdefaults file to automatically use this resource file rather than /usr/X11R6/lib/X11/app-defaults/XTerm. If you do not do this, xterm uses its compiled-in default resource settings for colors. ERROR MESSAGES Most of the fatal error messages from xterm use the following format: xterm: Error XXX, errno YYY: ZZZ The XXX codes (which are used by xterm as its exit-code) are listed below, with a brief explanation. 1 is used for miscellaneous errors, usually accompanied by a specific message, 11 ERROR_FIONBIO main: ioctl() failed on FIONBIO 12 ERROR_F_GETFL main: ioctl() failed on F_GETFL 13 ERROR_F_SETFL main: ioctl() failed on F_SETFL 14 ERROR_OPDEVTTY spawn: open() failed on /dev/tty 15 ERROR_TIOCGETP spawn: ioctl() failed on TIOCGETP 17 ERROR_PTSNAME spawn: ptsname() failed 18 ERROR_OPPTSNAME spawn: open() failed on ptsname 19 ERROR_PTEM spawn: ioctl() failed on I_PUSH/"ptem" 20 ERROR_CONSEM spawn: ioctl() failed on I_PUSH/"consem" 21 ERROR_LDTERM spawn: ioctl() failed on I_PUSH/"ldterm" 22 ERROR_TTCOMPAT spawn: ioctl() failed on I_PUSH/"ttcompat" 23 ERROR_TIOCSETP spawn: ioctl() failed on TIOCSETP 24 ERROR_TIOCSETC spawn: ioctl() failed on TIOCSETC 25 ERROR_TIOCSETD spawn: ioctl() failed on TIOCSETD 26 ERROR_TIOCSLTC spawn: ioctl() failed on TIOCSLTC 27 ERROR_TIOCLSET spawn: ioctl() failed on TIOCLSET 28 ERROR_INIGROUPS spawn: initgroups() failed 29 ERROR_FORK spawn: fork() failed 30 ERROR_EXEC spawn: exec() failed 32 ERROR_PTYS get_pty: not enough ptys 34 ERROR_PTY_EXEC waiting for initial map 35 ERROR_SETUID spawn: setuid() failed 36 ERROR_INIT spawn: can't initialize window 46 ERROR_TIOCKSET spawn: ioctl() failed on TIOCKSET 47 ERROR_TIOCKSETC spawn: ioctl() failed on TIOCKSETC 48 ERROR_SPREALLOC spawn: realloc of ttydev failed 49 ERROR_LUMALLOC luit: command-line malloc failed 50 ERROR_SELECT in_put: select() failed 54 ERROR_VINIT VTInit: can't initialize window 57 ERROR_KMMALLOC1 HandleKeymapChange: malloc failed 60 ERROR_TSELECT Tinput: select() failed 64 ERROR_TINIT TekInit: can't initialize window 71 ERROR_BMALLOC2 SaltTextAway: malloc() failed 80 ERROR_LOGEXEC StartLog: exec() failed 83 ERROR_XERROR xerror: XError event 84 ERROR_XIOERROR xioerror: X I/O error 90 ERROR_SCALLOC Alloc: calloc() failed on base 91 ERROR_SCALLOC2 Alloc: calloc() failed on rows 92 ERROR_SREALLOC ScreenResize: realloc() failed on alt base 96 ERROR_RESIZE ScreenResize: malloc() or realloc() failed 102 ERROR_SAVE_PTR ScrnPointers: malloc/realloc() failed 110 ERROR_SBRALLOC ScrollBarOn: realloc() failed on base 111 ERROR_SBRALLOC2 ScrollBarOn: realloc() failed on rows 121 ERROR_MMALLOC my_memmove: malloc/realloc failed BUGS Large pastes do not work on some systems. This is not a bug in xterm; it is a bug in the pseudo terminal driver of those systems. xterm feeds large pastes to the pty only as fast as the pty will accept data, but some pty drivers do not return enough information to know if the write has succeeded. Many of the options are not resettable after xterm starts. This program still needs to be rewritten. It should be split into very modular sections, with the various emulators being completely separate widgets that do not know about each other. Ideally, you'd like to be able to pick and choose emulator widgets and stick them into a single control widget. There needs to be a dialog box to allow entry of the Tek COPY file name. SEE ALSO resize(1), luit(1), X(7), pty(4), tty(4) Xterm Control Sequences (this is the file ctlseqs.ms). http://invisible-island.net/xterm/xterm.html AUTHORS Far too many people, including: Loretta Guarino Reid (DEC-UEG-WSL), Joel McCormack (DEC-UEG-WSL), Terry Weissman (DEC-UEG-WSL), Edward Moy (Berkeley), Ralph R. Swick (MIT- Athena), Mark Vandevoorde (MIT-Athena), Bob McNamara (DEC-MAD), Jim Gettys (MIT-Athena), Bob Scheifler (MIT X Consortium), Doug Mink (SAO), Steve Pitschke (Stellar), Ron Newman (MIT-Athena), Jim Fulton (MIT X Consortium), Dave Serisky (HP), Jonathan Kamens (MIT-Athena), Jason Bacon, Stephen P. Wall, David Wexelblat, and Thomas Dickey (XFree86 Project). xtrap(1) xtrap(1) NAME xtrapreset, xtrapinfo, xtrapstats, xtrapout, xtrapin, xtrapchar, xtrapproto - XTrap sample clients SYNTAX xtrapreset [ -d[isplay] display ] xtrapinfo [ -d[isplay] display ] xtrapstats [ -d[isplay] display ] xtrapout [ -f script ] [ -e ] [ -d[isplay] display ] [ -v ] xtrapin [ -f script ] [ -d[isplay] display ] xtrapchar [ -v ] [ -d[isplay] display ] xtrapproto [ -d[isplay] display ] DESCRIPTION These commands are SAMPLE CLIENTS provided with the XTrap X Server Extension Sources, Version 3.3. XTrap is an X Server extension which facilitates the capturing of server protocol and synthesizing core input events. Information on how to obtain these sources can be found in the SOURCES section below. The xtrapreset command is the simplest XTrap client in that it merely performs an XQueryExtension() against XTrap. The name "reset" is historical. The display argument is parsed by the X Toolkit and specifies the display where XTrap is to be loaded; see X(1). xtrapinfo displays general configuration information as a result of an GetAvailable XTrap request to the specified server. It is simply designed to test the request/response mechanism of the XTrap extension and client library as well as display the configuration information that it finds. xtrapstats tests the event and request vectoring of the server extension by configuring XTrap to collect usage statistics on all core input events and requests. It has a primitive command-line interface for showing the counters, zeroing out the counters, and quitting the program. xtrapout tests the output transport from the XTrap extension to the XTrap client library. As an aside, since xtrapout has the capability of "recording" events and requests it receives, xtrapout is ideal for providing input to test xtrapin. Since events are the only concern for the input transport, the -e flag can be specified to indicate that all input events (and only events) should be recorded by xtrapout. script is specified primarily for non-U*IX machines which don't support I/O re-direction easily. The -v flag is used to force recording of all requests and input events. xtrapin is used to test the input transport to the XTrap server extension. As stated earlier, it's input can be provided by xtrapout using the -e qualifier. While it's primary function is for testing XTrap and serving as an example for XTrap functionality, it can reasonably used as a primitive "playback" client for X sessions. xtrapchar parses ANSI character sequences including application program sequences to synthesize input events to X Window servers using the XTrap server extension. The intent of this program is to serve as a sample implementation for interfacing character-based alternative input sources into X servers (e.g. voice recognition systems). Another application might be "remote keyboards". The -v flag causes the program to display XTrap configuration information and echo's characters processed to stdout. If present, this must be the first argument. Note: xtrapchar has only been used with Digital Workstations using the LK201 compatible keyboard. Though reasonable effort was done to maintain portability, no claims are made as to the current level of portability to non-DEC servers for this program. The xtrapproto command is a regression test designed to test the basic XTrap protocol between a client and server. If a given implementation is suspect, the results of this test should be sent to an XTrap implementor and/or developer. OPTIONS -d[isplay] display Specifies the server to record from or playback to; see X(1). -e Record only (and all) events. Should be used when creating input for xtrapin. -f script The pathname of the script to be recorded / played back. -v Verbose mode. DIAGNOSTICS X Toolkit Error: Can't load DEC-XTRAP extension The XTrap X server extension has not been linked into the specified X server. SOURCES Sources have been posted on UseNet systems via anonymous ftp. They are: East Coast (USA): export@lcs.mit.edu:contrib/XTrap_v32*.tar.Z West Coast (USA): gatekeeper@pa.dec.com:X11/contrib/XTrap_v32*.tar.Z IMPORTANT NOTE Digital participated in the X Consortium's xtest working group which chose to evolve XTrap functionality into a new extension for X11/R6 known as the RECORD extension (XTrap input synthesis functionality is currently covered by the XTEST extension). It is strongly suggested that users of XTrap technology begin developing against RECORD/XTEST as it is the intention of the X Consortium to drive these two extensions in the standards process for providing the protocol capturing/synthesis functionality. Some members of the xtest working group are actively researching migration issues between XTrap and RECORD. If you'd like to contribute, please participate! Contact your local X Consortium Rep for details on how to be added to the xtest mailing list. If you encounter problems, have questions, etc. with XTrap, please contact via mail, phone, etc. at: Ken Miller miller@zk3.dec.com (VOICE) 603-881-6221 (FAX) 603 881-2257 or paper mail at: Digital Equipment Corp. Ken Miller @ ZKO3-3/Y25 110 Spitbrook Rd. Nashua, NH 03062 Naturally email is preferred and will get the fastest response. SEE ALSO X(1) xvidtune(1) xvidtune(1) NAME xvidtune - video mode tuner for XFree86 SYNOPSIS xvidtune [ -show | -prev | -next | -unlock ] [ -toolkitoption ... ] DESCRIPTION Xvidtune is a client interface to the XFree86 X server video mode extension (XFree86-VidModeExtension). When given one of the non-toolkit options, xvidtune provides a command line interface to either switch the video mode. Without any options (or with only toolkit options) it presents the user with various buttons and sliders that can be used to interactively adjust existing video modes. It will also print the settings in a format suitable for inclusion in an XF86Config file. Normally the XFree86 X servers only allow changes to be made with the XFree86-VidModeExtension from clients connected via a local connection type. Note: The original mode settings can be restored by pressing the `R' key, and this can be used to restore a stable screen in situations where the screen becomes unreadable. The available buttons are: Left Right Up Down Adjust the video mode so that the display will be moved in the appropriate direction. Wider Narrower Shorter Taller Adjust the video mode so that the display size is altered appropriately. Quit Exit the program. Apply Adjust the current video mode to match the selected settings. Auto Cause the Up/Down/Right/Left, Wider/Narrower/Shorter/Taller, Restore, and the special S3 buttons to be applied immediately. This button can be toggled. Test Temporarily switch to the selected settings. Restore Return the settings to their original values. Fetch Query the server for its current settings. Show Print the currently selected settings to stdout in XF86Config "Modeline" format. The primary selection is similarly set. Next Switch the Xserver to the next video mode. Prev Switch the Xserver to the previous video mode. For some S3-based cards (964 and 968) the following are also available: InvertVCLK Change the VCLK invert/non-invert state. EarlySC Change the Early SC state. This affects screen wrapping. BlankDelay1 BlankDelay2 Set the blank delay values. This affects screen wrapping. Acceptable values are in the range 0-7. The values may be incremented or decremented with the `+' and `-' buttons, or by pressing the `+' or `-' keys in the text field. For S3-864/868 based cards InvertVCLK and BlankDelay1 may be useful. For S3 Trio32/Trio64 cards only InvertVCLK is available. At the moment there are no default settings available for these chips in the video mode extension and thus this feature is disabled in xvidtune. It can be enabled by setting any of the optional S3 commands in the screen section of XF86Config, e.g. using blank_delay "*" 0 OPTIONS xvidtune accepts the standard X Toolkit command line options as well as the following: -show Print the current settings to stdout in XF86Config "Modeline" format and exit. -prev Switch the Xserver to the previous video mode. -next Switch the Xserver to the next video mode. -unlock Normally, xvidtune will disable the switching of video modes via hot-keys while it is running. If for some reason the program did not exit cleanly and they are still disabled, the program can be re-run with this option to re-enable the mode switching key combinations. SEE ALSO XF86Config(4/5), XFree86(1) AUTHORS Kaleb S. Keithley, X Consortium. Additions and modifications by Jon Tombs, David Dawes, and Joe Moss. BUGS X Error handling, i.e. when the server does not allow xvidtune clients to write new modes, could be better. xvinfo(1) xvinfo(1) NAME xvinfo - Print out X-Video extension adaptor information SYNOPSIS xvinfo [-display displayname] DESCRIPTION xvinfo prints out the capabilities of any video adaptors associated with the display that are accesible through the X-Video extension. OPTIONS -display display This argument allows you to specify the server to query; see X(7). ENVIRONMENT DISPLAY This variable may be used to specify the server to query. SEE ALSO xdpyinfo(1) AUTHORS Mark Vojkovich XVFB(1) XVFB(1) NAME Xvfb - virtual framebuffer X server for X Version 11 SYNOPSIS Xvfb [ option ] ... DESCRIPTION Xvfb is an X server that can run on machines with no display hardware and no physical input devices. It emulates a dumb framebuffer using virtual memory. The primary use of this server was intended to be server testing. The mfb or cfb code for any depth can be exercised with this server without the need for real hardware that supports the desired depths. The X community has found many other novel uses for Xvfb, including testing clients against unusual depths and screen configurations, doing batch processing with Xvfb as a background rendering engine, load testing, as an aid to porting the X server to a new platform, and providing an unobtrusive way to run applications that don't really need an X server but insist on having one anyway. BUILDING To build Xvfb, put the following in your host.def and remake. #define BuildServer YES /* if you aren't already building other servers */ #define XVirtualFramebufferServer YES OPTIONS In addition to the normal server options described in the Xserver(1) manual page, Xvfb accepts the following command line switches: -screen screennum WxHxD[@x,y] This option creates screen screennum and sets its width, height, and depth to W, H, and D respectively, and optionally the screen origin (for Xinerama purposes) to (x,y). By default, only screen 0 exists and has the dimensions 1280x1024x8. If a screen origin is not specified when using Xinerama, the default is for screen N to be positioned to the right of screen N-1. -pixdepths list-of-depths This option specifies a list of pixmap depths that the server should support in addition to the depths implied by the supported screens. list-of-depths is a space-separated list of integers that can have values from 1 to 32. -fbdir framebuffer-directory This option specifies the directory in which the memory mapped files containing the framebuffer memory should be created. See FILES. This option only exists on machines that have the mmap and msync system calls. -shmem This option specifies that the framebuffer should be put in shared memory. The shared memory ID for each screen will be printed by the server. The shared memory is in xwd format. This option only exists on machines that support the System V shared memory interface. If neither -shmem nor -fbdir is specified, the framebuffer memory will be allocated with malloc(). -linebias n This option specifies how to adjust the pixelization of thin lines. The value n is a bitmask of octants in which to prefer an axial step when the Bresenham error term is exactly zero. See the file Xserver/mi/miline.h for more information. This option is probably only useful to server developers to experiment with the range of line pixelization possible with the cfb and mfb code. -blackpixel pixel-value, -whitepixel pixel-value These options specify the black and white pixel values the server should use. FILES The following files are created if the -fbdir option is given. framebuffer-directory/Xvfb_screen Memory mapped file containing screen n's framebuffer memory, one file per screen. The file is in xwd format. Thus, taking a full- screen snapshot can be done with a file copy command, and the resulting snapshot will even contain the cursor image. EXAMPLES Xvfb :1 -screen 0 1600x1200x32 The server will listen for connections as server number 1, and screen 0 will be depth 32 1600x1200. Xvfb :1 -screen 1 1600x1200x16 The server will listen for connections as server number 1, will have the default screen configuration (one screen, 1280x1024x8), and screen 1 will be depth 16 1600x1200. Xvfb -pixdepths 3 27 -fbdir /usr/tmp The server will listen for connections as server number 0, will have the default screen configuration (one screen, 1280x1024x8), will also support pixmap depths of 3 and 27, and will use memory mapped files in /usr/tmp for the framebuffer. xwud -in /usr/tmp/Xvfb_screen0 Displays screen 0 of the server started by the preceding example. SEE ALSO X(7), Xserver(1), xwd(1), xwud(1), XWDFile.h AUTHORS David P. Wiggins, The Open Group, Inc. XWD(1) XWD(1) NAME xwd - dump an image of an X window SYNOPSIS xwd [-debug] [-help] [-nobdrs] [-out file] [-xy] [-frame] [-add value] [-root | -id id | -name name ] [-icmap] [-screen] [-display display] DESCRIPTION Xwd is an X Window System window dumping utility. Xwd allows X users to store window images in a specially formatted dump file. This file can then be read by various other X utilities for redisplay, printing, editing, formatting, archiving, image processing, etc. The target window is selected by clicking the pointer in the desired window. The keyboard bell is rung once at the beginning of the dump and twice when the dump is completed. OPTIONS -display display This argument allows you to specify the server to connect to; see X(7). -help Print out the `Usage:' command syntax summary. -nobdrs This argument specifies that the window dump should not include the pixels that compose the X window border. This is useful in situations where you may wish to include the window contents in a document as an illustration. -out file This argument allows the user to explicitly specify the output file on the command line. The default is to output to standard out. -xy This option applies to color displays only. It selects `XY' format dumping instead of the default `Z' format. -add value This option specifies an signed value to be added to every pixel. -frame This option indicates that the window manager frame should be included when manually selecting a window. -root This option indicates that the root window should be selected for the window dump, without requiring the user to select a window with the pointer. -id id This option indicates that the window with the specified resource id should be selected for the window dump, without requiring the user to select a window with the pointer. -name name This option indicates that the window with the specified WM_NAME property should be selected for the window dump, without requiring the user to select a window with the pointer. -icmap Normally the colormap of the chosen window is used to obtain RGB values. This option forces the first installed colormap of the screen to be used instead. -screen This option indicates that the GetImage request used to obtain the image should be done on the root window, rather than directly on the specified window. In this way, you can obtain pieces of other windows that overlap the specified window, and more importantly, you can capture menus or other popups that are independent windows but appear over the specified window. -silent Operate silently, i.e. don't ring any bells before and after dumping the window. ENVIRONMENT DISPLAY To get default host and display number. FILES XWDFile.h X Window Dump File format definition file. SEE ALSO xwud(1), X(7) AUTHORS Tony Della Fera, Digital Equipment Corp., MIT Project Athena William F. Wyatt, Smithsonian Astrophysical Observatory XWININFO(1) XWININFO(1) NAME xwininfo - window information utility for X SYNOPSIS xwininfo [-help] [-id id] [-root] [-name name] [-int] [-children] [-tree] [-stats] [-bits] [-events] [-size] [-wm] [-shape] [-frame] [-all] [-english] [-metric] [-display display] DESCRIPTION Xwininfo is a utility for displaying information about windows. Various information is displayed depending on which options are selected. If no options are chosen, -stats is assumed. The user has the option of selecting the target window with the mouse (by clicking any mouse button in the desired window) or by specifying its window id on the command line with the -id option. Or instead of specifying the window by its id number, the -name option may be used to specify which window is desired by name. There is also a special -root option to quickly obtain information on the screen's root window. OPTIONS -help Print out the `Usage:' command syntax summary. -id id This option allows the user to specify a target window id on the command line rather than using the mouse to select the target window. This is very useful in debugging X applications where the target window is not mapped to the screen or where the use of the mouse might be impossible or interfere with the application. -name name This option allows the user to specify that the window named name is the target window on the command line rather than using the mouse to select the target window. -root This option specifies that X's root window is the target window. This is useful in situations where the root window is completely obscured. -int This option specifies that all X window ids should be displayed as integer values. The default is to display them as hexadecimal values. -children This option causes the root, parent, and children windows' ids and names of the selected window to be displayed. -tree This option is like -children but displays all children recursively. -stats This option causes the display of various attributes pertaining to the location and appearance of the selected window. Information displayed includes the location of the window, its width and height, its depth, border width, class, colormap id if any, map state, backing-store hint, and location of the corners. -bits This option causes the display of various attributes pertaining to the selected window's raw bits and how the selected window is to be stored. Displayed information includes the selected window's bit gravity, window gravity, backing-store hint, backing-planes value, backing pixel, and whether or not the window has save-under set. -events This option causes the selected window's event masks to be displayed. Both the event mask of events wanted by some client and the event mask of events not to propagate are displayed. -size This option causes the selected window's sizing hints to be displayed. Displayed information includes: for both the normal size hints and the zoom size hints, the user supplied location if any; the program supplied location if any; the user supplied size if any; the program supplied size if any; the minimum size if any; the maximum size if any; the resize increments if any; and the minimum and maximum aspect ratios if any. -wm This option causes the selected window's window manager hints to be displayed. Information displayed may include whether or not the application accepts input, what the window's icon window # and name is, where the window's icon should go, and what the window's initial state should be. -shape This option causes the selected window's window and border shape extents to be displayed. -frame This option causes window manager frames to be considered when manually selecting windows. -metric This option causes all individual height, width, and x and y positions to be displayed in millimeters as well as number of pixels, based on what the server thinks the resolution is. Geometry specifications that are in +x+y form are not changed. -english This option causes all individual height, width, and x and y positions to be displayed in inches (and feet, yards, and miles if necessary) as well as number of pixels. -metric and -english may both be enabled at the same time. -all This option is a quick way to ask for all information possible. -display display This option allows you to specify the server to connect to; see X(7). EXAMPLE The following is a sample summary taken with no options specified: xwininfo: Window id: 0x60000f "xterm" Absolute upper-left X: 2 Absolute upper-left Y: 85 Relative upper-left X: 0 Relative upper-left Y: 25 Width: 579 Height: 316 Depth: 8 Visual Class: PseudoColor Border width: 0 Class: InputOutput Colormap: 0x27 (installed) Bit Gravity State: NorthWestGravity Window Gravity State: NorthWestGravity Backing Store State: NotUseful Save Under State: no Map State: IsViewable Override Redirect State: no Corners: +2+85 -699+85 -699-623 +2-623 -geometry 80x24+0+58 ENVIRONMENT DISPLAY To get the default host and display number. SEE ALSO X(7), xprop(1) BUGS Using -stats -bits shows some redundant information. The -geometry string displayed must make assumptions about the window's border width and the behavior of the application and the window manager. As a result, the location given is not always correct. AUTHOR Mark Lillibridge, MIT Project Athena XWUD(1) XWUD(1) NAME xwud - image displayer for X SYNOPSIS xwud [-in file] [-noclick] [-geometry geom] [-display display] [-new] [-std ] [-raw] [-vis ] [-scale] [-help] [-rv] [-plane number] [-fg color] [-bg color] [-dumpheader] DESCRIPTION Xwud is an X Window System image undumping utility. Xwud allows X users to display in a window an image saved in a specially formatted dump file, such as produced by xwd(1). OPTIONS -bg color If a bitmap image (or a single plane of an image) is displayed, this option can be used to specify the color to display for the "0" bits in the image. -display display This option allows you to specify the server to connect to; see X(7). -dumpheader This option prints out the XWD header information only. Nothing is displayed. -fg color If a bitmap image (or a single plane of an image) is displayed, this option can be used to specify the color to display for the "1" bits in the image. -geometry geom This option allows you to specify the size and position of the window. Typically you will only want to specify the position, and let the size default to the actual size of the image. -help Print out a short description of the allowable options. -in file This option allows the user to explicitly specify the input file on the command line. If no input file is given, the standard input is assumed. -new This option forces creation of a new colormap for displaying the image. If the image characteristics happen to match those of the display, this can get the image on the screen faster, but at the cost of using a new colormap (which on most displays will cause other windows to go technicolor). -noclick Clicking any button in the window will terminate the application, unless this option is specified. Termination can always be achieved by typing 'q', 'Q', or ctrl-c. -plane number You can select a single bit plane of the image to display with this option. Planes are numbered with zero being the least significant bit. -raw This option forces the image to be displayed with whatever color values happen to currently exist on the screen. This option is mostly useful when undumping an image back onto the same screen that the image originally came from, while the original windows are still on the screen, and results in getting the image on the screen faster. -rv If a bitmap image (or a single plane of an image) is displayed, this option forces the foreground and background colors to be swapped. This may be needed when displaying a bitmap image which has the color sense of pixel values "0" and "1" reversed from what they are on your display. -scale Allow the window to be resized, and scale the image to the size of the window. -std maptype This option causes the image to be displayed using the specified Standard Colormap. The property name is obtained by converting the type to upper case, prepending "RGB_", and appending "_MAP". Typical types are "best", "default", and "gray". See xstdcmap(1) for one way of creating Standard Colormaps. -vis vis-type-or-id This option allows you to specify a particular visual or visual class. The default is to pick the "best" one. A particular class can be specified: "StaticGray", "GrayScale", "StaticColor", "PseudoColor", "DirectColor", or "TrueColor". Or "Match" can be specified, meaning use the same class as the source image. Alternatively, an exact visual id (specific to the server) can be specified, either as a hexadecimal number (prefixed with "0x") or as a decimal number. Finally, "default" can be specified, meaning to use the same class as the colormap of the root window. Case is not significant in any of these strings. ENVIRONMENT DISPLAY To get default display. FILES XWDFile.h X Window Dump File format definition file. BUGS xwud doesn't handle big/deep images very well on servers that don't have the BIG-REQUESTS extension. SEE ALSO xwd(1), xstdcmap(1), X(7) AUTHOR Bob Scheifler, MIT X Consortium PolyglotMan(1) PolyglotMan(1) NAME PolyglotMan, rman - reverse compile man pages from formatted form to a number of source formats SYNOPSIS rman [ options ] [ file ] DESCRIPTION PolyglotMan takes man pages from most of the popular flavors of UNIX and transforms them into any of a number of text source formats. PolyglotMan was formerly known as RosettaMan. The name of the binary is still called rman , for scripts that depend on that name; mnemonically, just think "reverse man". Previously PolyglotMan required pages to be formatted by nroff prior to its processing. With version 3.0, it prefers [tn]roff source and usually produces results that are better yet. And source processing is the only way to translate tables. Source format translation is not as mature as formatted, however, so try formatted translation as a backup. In parsing [tn]roff source, one could implement an arbitrarily large subset of [tn]roff, which I did not and will not do, so the results can be off. I did implement a significant subset of those use in man pages, however, including tbl (but not eqn), if tests, and general macro definitions, so usually the results look great. If they don't, format the page with nroff before sending it to PolyglotMan. If PolyglotMan doesn't recognize a key macro used by a large class of pages, however, e-mail me the source and a uuencoded nroff-formatted page and I'll see what I can do. When running PolyglotMan with man page source that includes or redirects to other [tn]roff source using the .so (source or inclusion) macro, you should be in the parent directory of the page, since pages are written with this assumption. For example, if you are translating /usr/man/man1/ls.1, first cd into /usr/man. PolyglotMan accepts man pages from: SunOS, Sun Solaris, Hewlett- Packard HP-UX, AT&T System V, OSF/1 aka Digital UNIX, DEC Ultrix, SGI IRIX, Linux, FreeBSD, SCO. Source processing works for: SunOS, Sun Solaris, Hewlett-Packard HP-UX, AT&T System V, OSF/1 aka Digital UNIX, DEC Ultrix. It can produce printable ASCII-only (control characters stripped), section headers-only, Tk, TkMan, [tn]roff (traditional man page source), SGML, HTML, MIME, LaTeX, LaTeX2e, RTF, Perl 5 POD. A modular architecture permits easy addition of additional output formats. The latest version of PolyglotMan is always available from ftp://ftp.cs.berkeley.edu/ucb/people/phelps/tcltk/rman.tar.Z . OPTIONS The following options should not be used with any others and exit PolyglotMan without processing any input. -h|--help Show list of command line options and exit. -v|--version Show version number and exit. You should specify the filter first, as this sets a number of parameters, and then specify other options. -f|--filter Set the output filter. Defaults to ASCII. -S|--source PolyglotMan tries to automatically determine whether its input is source or formatted; use this option to declare source input. -F|--format|--formatted PolyglotMan tries to automatically determine whether its input is source or formatted; use this option to declare formatted input. -l|--title printf-string In HTML mode this sets the of the man pages, given the same parameters as -r . -r|--reference|--manref printf-string In HTML and SGML modes this sets the URL form by which to retrieve other man pages. The string can use two supplied parameters: the man page name and its section. (See the Examples section.) If the string is null (as if set from a shell by "-r ''"), `-' or `off', then man page references will not be HREFs, just set in italics. If your printf supports XPG3 positions specifier, this can be quite flexible. -V|--volumes <colon-separated list> Set the list of valid volumes to check against when looking for cross-references to other man pages. Defaults to 1:2:3:4:5:6:7:8:9:o:l:n:p (volume names can be multicharacter). If an non-whitespace string in the page is immediately followed by a left parenthesis, then one of the valid volumes, and ends with optional other characters and then a right parenthesis--then that string is reported as a reference to another manual page. If this -V string starts with an equals sign, then no optional characters are allowed between the match to the list of valids and the right parenthesis. (This option is needed for SCO UNIX.) The following options apply only when formatted pages are given as input. They do not apply or are always handled correctly with the source. -b|--subsections Try to recognize subsection titles in addition to section titles. This can cause problems on some UNIX flavors. -K|--nobreak Indicate manual pages don't have page breaks, so don't look for footers and headers around them. (Older nroff -man macros always put in page breaks, but lately some vendors have realized that printout are made through troff, whereas nroff -man is used to format pages for reading on screen, and so have eliminated page breaks.) PolyglotMan usually gets this right even without this flag. -k|--keep Keep headers and footers, as a canonical report at the end of the page. changeleft Move changebars, such as those found in the Tcl/Tk manual pages, to the left. --> notaggressive Disable aggressive man page parsing. Aggressive manual, which is on by default, page parsing elides headers and footers, identifies sections and more. --> -n|--name name Set name of man page (used in roff format). If the filename is given in the form " name . section ", the name and section are automatically determined. If the page is being parsed from [tn]roff source and it has a .TH line, this information is extracted from that line. -p|--paragraph paragraph mode toggle. The filter determines whether lines should be linebroken as they were by nroff, or whether lines should be flowed together into paragraphs. Mainly for internal use. -s|section # Set volume (aka section) number of man page (used in roff format). tables Turn on aggressive table parsing. --> -t|--tabstops # For those macros sets that use tabs in place of spaces where possible in order to reduce the number of characters used, set tabstops every # columns. Defaults to 8. NOTES ON FILTER TYPES ROFF Some flavors of UNIX ship man page without [tn]roff source, making one's laser printer little more than a laser-powered daisy wheel. This filer tries to intuit the original [tn]roff directives, which can then be recompiled by [tn]roff. TkMan TkMan, a hypertext man page browser, uses PolyglotMan to show man pages without the (usually) useless headers and footers on each pages. It also collects section and (optionally) subsection heads for direct access from a pulldown menu. TkMan and Tcl/Tk, the toolkit in which it's written, are available via anonymous ftp from ftp://ftp.smli.com/pub/tcl/ Tk This option outputs the text in a series of Tcl lists consisting of text-tags pairs, where tag names roughly correspond to HTML. This output can be inserted into a Tk text widget by doing an eval <textwidget> insert end <text> . This format should be relatively easily parsable by other programs that want both the text and the tags. Also see ASCII. ASCII When printed on a line printer, man pages try to produce special text effects by overstriking characters with themselves (to produce bold) and underscores (underlining). Other text processing software, such as text editors, searchers, and indexers, must counteract this. The ASCII filter strips away this formatting. Piping nroff output through col -b also strips away this formatting, but it leaves behind unsightly page headers and footers. Also see Tk. Sections Dumps section and (optionally) subsection titles. This might be useful for another program that processes man pages. HTML With a simple extension to an HTTP server for Mosaic or other World Wide Web browser, PolyglotMan can produce high quality HTML on the fly. Several such extensions and pointers to several others are included in PolyglotMan 's contrib directory. SGML This is approaching the Docbook DTD, but I'm hoping that someone that someone with a real interest in this will polish the tags generated. Try it to see how close the tags are now. MIME MIME (Multipurpose Internet Mail Extensions) as defined by RFC 1563, good for consumption by MIME-aware e-mailers or as Emacs (>=19.29) enriched documents. LaTeX and LaTeX2e Why not? RTF Use output on Mac or NeXT or whatever. Maybe take random man pages and integrate with NeXT's documentation system better. Maybe NeXT has own man page macros that do this. PostScript and FrameMaker To produce PostScript, use groff or psroff . To produce FrameMaker MIF, use FrameMaker's builtin filter. In both cases you need [tn]roff source, so if you only have a formatted version of the manual page, use PolyglotMan 's roff filter first. EXAMPLES To convert the formatted man page named ls.1 back into [tn]roff source form: rman -f roff /usr/local/man/cat1/ls.1 > /usr/local/man/man1/ls.1 Long man pages are often compressed to conserve space (compression is especially effective on formatted man pages as many of the characters are spaces). As it is a long man page, it probably has subsections, which we try to separate out (some macro sets don't distinguish subsections well enough for PolyglotMan to detect them). Let's convert this to LaTeX format: pcat /usr/catman/a_man/cat1/automount.z | rman -b -n automount -s 1 -f latex > automount.man Alternatively, man 1 automount | rman -b -n automount -s 1 -f latex > automount.man For HTML/Mosaic users, PolyglotMan can, without modification of the source code, produce HTML links that point to other HTML man pages either pregenerated or generated on the fly. First let's assume pregenerated HTML versions of man pages stored in /usr/man/html . Generate these one-by-one with the following form: rman -f html -r 'http:/usr/man/html/%s.%s.html' /usr/man/cat1/ls.1 > /usr/man/html/ls.1.html If you've extended your HTML client to generate HTML on the fly you should use something like: rman -f html -r 'http:~/bin/man2html?%s:%s' /usr/man/cat1/ls.1 when generating HTML. BUGS/INCOMPATIBILITIES PolyglotMan is not perfect in all cases, but it usually does a good job, and in any case reduces the problem of converting man pages to light editing. Tables in formatted pages, especially H-P's, aren't handled very well. Be sure to pass in source for the page to recognize tables. The man pager woman applies its own idea of formatting for man pages, which can confuse PolyglotMan . Bypass woman by passing the formatted manual page text directly into PolyglotMan . The [tn]roff output format uses fB to turn on boldface. If your macro set requires .B, you'll have to a postprocess the PolyglotMan output. SEE ALSO tkman(1) , xman(1) , man(1) , man(7) or man(5) depending on your flavor of UNIX AUTHOR PolyglotMan by Thomas A. Phelps ( phelps@ACM.org ) developed at the University of California, Berkeley Computer Science Division PolyglotMan(1)