The X Window System is a network transparent window system which runs on a wide range of computing and graphics machines. It should be relatively 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
referring to this software:
X Window System is a trademark of X Consortium, Inc.
X supports overlapping hierarchical subwindows and text and graphics operations, on both monochrome and color displays. For a full explanation of the functions that are available, see the _X_l_i_b _- _C _L_a_n_g_u_a_g_e _X _I_n_t_e_r_f_a_c_e manual, the _X _W_i_n_d_o_w _S_y_s_t_e_m _P_r_o_t_o_c_o_l specification, the _X _T_o_o_l_k_i_t _I_n_t_r_i_n_s_i_c_s _- _C _L_a_n_g_u_a_g_e _I_n_t_e_r_f_a_c_e 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, _x_t_e_r_m; a window manager, _t_w_m; a display manager, _x_d_m; a console redirect program, _x_c_o_n_s_o_l_e; a mail interface, _x_m_h; a bitmap editor, _b_i_t_m_a_p; resource listing/manipulation tools, _a_p_p_r_e_s, _e_d_i_t_r_e_s; access control programs, _x_a_u_t_h, _x_h_o_s_t, and _i_c_e_a_u_t_h; user preference setting programs, _x_r_d_b, _x_c_m_s_d_b, _x_s_e_t, _x_s_e_t_r_o_o_t, _x_s_t_d_c_m_a_p, and _x_m_o_d_m_a_p; clocks, _x_c_l_o_c_k and _o_c_l_o_c_k; a font displayer, (_x_f_d; utilities for listing information about fonts, windows, and displays, _x_l_s_f_o_n_t_s, _x_w_i_n_i_n_f_o, _x_l_s_c_l_i_e_n_t_s, _x_d_p_y_i_n_f_o, _x_l_s_a_t_o_m_s, and _x_p_r_o_p; screen image manipulation utilities, _x_w_d, _x_w_u_d, and _x_m_a_g; a performance measurement utility, _x_1_1_p_e_r_f; a font compiler, _b_d_f_t_o_p_c_f; a font server and related utilities, _x_f_s, _f_s_i_n_f_o, _f_s_l_s_f_o_n_t_s, _f_s_t_o_b_d_f; an X Image Extension exerciser, _x_i_e_p_e_r_f; a display server and related utilities, _X_s_e_r_v_e_r, _r_g_b, _m_k_f_o_n_t_d_i_r; remote execution utilities, _r_s_t_a_r_t and _x_o_n; a clipboard manager, _x_c_l_i_p_b_o_a_r_d; keyboard description compiler and related utilities, _x_k_b_c_o_m_p, _x_k_b_p_r_i_n_t, _x_k_b_b_e_l_l, _x_k_b_e_v_d, _x_k_b_v_l_e_d_s, and _x_k_b_w_a_t_c_h; a utility to terminate clients, _x_k_i_l_l; an optimized X protocol proxy, _l_b_x_p_r_o_x_y; a firewall security proxy, _x_f_w_p; a proxy manager to control them, _p_r_o_x_y_m_n_g_r; a utility to find proxies, _x_f_i_n_d_p_r_o_x_y; Netscape Navigator Plug-ins, _l_i_b_x_r_x_._s_o and _l_i_b_x_r_x_n_e_s_t_._s_o; an RX MIME-type helper program, _x_r_x; and a utility to cause part or all of the screen to be redrawn, _x_r_e_f_r_e_s_h.
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.
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.
From the user's perspective, every X server has a _d_i_s_p_l_a_y _n_a_m_e of the
form:
On POSIX systems, the default display name is stored
in your DISPLAY environment variable. This variable is set automatically
by the _x_t_e_r_m 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 DISPLAYThe _x_o_n 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
--ddiissppllaayy _d_i_s_p_l_a_y_n_a_m_e 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 -lsX servers listen for connections on a variety of different communications channels (network byte streams, shared memory, etc.). Since there can be more than one way of contacting a given server, The _h_o_s_t_n_a_m_e part of the display name is used to determine the type of channel (also called a transport layer) to be used. X servers generally support the following types of connections:
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.
_X_d_m initializes access control for the server and also places authorization information in a file accessible to the user. Normally, the list of hosts from which connections are always accepted should be empty, so that only clients with are explicitly authorized can connect to the display. When you add entries to the host list (with _x_h_o_s_t), the server no longer performs any authorization on connections from those machines. Be careful with this.
The file from which _X_l_i_b extracts authorization data can be specified with the environment variable XXAAUUTTHHOORRIITTYY, and defaults to the file ..XXaauutthhoorriittyy in the home directory. _X_d_m uses $$HHOOMMEE//..XXaauutthhoorriittyy and will create it or merge in authorization records if it already exists when a user logs in.
If you use several machines and share a common home directory across all of the machines by means of a network file system, you never really have to worry about authorization files, the system should work correctly by default. Otherwise, as the authorization files are machine-independent, you can simply copy the files to share them. To manage authorization files, use _x_a_u_t_h. This program allows you to extract records and insert them into other files. Using this, you can send authorization to remote machines when you login, if the remote machine does not share a common home directory with your local machine. Note that authorization information transmitted ``in the clear'' through a network file system or using _f_t_p or _r_c_p can be ``stolen'' by a network eavesdropper, and as such may enable unauthorized access. In many environments, this level of security is not a concern, but if it is, you need to know the exact semantics of the particular authorization data to know if this is actually a problem.
For more information on access control, see the _X_s_e_c_u_r_i_t_y manual page.
The _W_I_D_T_H and _H_E_I_G_H_T parts of the geometry specification are usually measured in either pixels or characters, depending on the application. The _X_O_F_F and _Y_O_F_F parts are measured in pixels and are used to specify the distance of the window from the left or right and top and bottom edges of the screen, respectively. Both types of offsets are measured from the indicated edge of the screen to the corresponding edge of the window. The X offset may be specified in the following ways:
The Y offset has similar meanings:
Offsets must be given as pairs; in other words, in order to specify either _X_O_F_F or _Y_O_F_F both must be present. Windows can be placed in the four corners of the screen using the following specifications:
In the following examples, a terminal emulator is placed in roughly
the center of the screen and
a load average monitor, mailbox, and clock are placed in the upper right
hand corner:
xterm -fn 6x10 -geometry 80x24+30+200 & xclock -geometry 48x48-0+0 & xload -geometry 48x48-96+0 & xbiff -geometry 48x48-48+0 &
Since window managers are regular (albeit complex) client programs, a variety of different user interfaces can be built. The X Consortium distribution comes with a window manager named _t_w_m which supports overlapping windows, popup menus, point-and-click or click-to-type input models, title bars, nice icons (and an icon manager for those who don't like separate icon windows).
See the user-contributed software in the X Consortium distribution for other popular window managers.
Fonts come in various sizes. The X server supports _s_c_a_l_a_b_l_e fonts, meaning it is possible to create a font of arbitrary size from a single source for the font. The server supports scaling from _o_u_t_l_i_n_e fonts and _b_i_t_m_a_p fonts. Scaling from outline fonts usually produces significantly better results than scaling from bitmap fonts.
An X server can obtain fonts from individual files stored in directories in the file system, or from one or more font servers, or from a mixtures of directories and font servers. The list of places the server looks when trying to find a font is controlled by its _f_o_n_t _p_a_t_h. Although most installations will choose to have the server start up with all of the commonly used font directories in the font path, the font path can be changed at any time with the _x_s_e_t program. However, it is important to remember that the directory names are on the sseerrvveerr's machine, not on the application's.
Bitmap font files are usually created by compiling a textual font description
into binary form, using _b_d_f_t_o_p_c_f.
Font databases are created by running the _m_k_f_o_n_t_d_i_r program in the
directory containing the source or compiled versions of the fonts.
Whenever fonts are added to a directory, _m_k_f_o_n_t_d_i_r should be rerun
so that the server can find the new fonts. To make the server reread the
font database, reset the font path with the _x_s_e_t program. For example,
to add a font to a private directory, the following commands could be used:
% cp newfont.pcf ~/myfonts % mkfontdir ~/myfonts % xset fp rehash
The _x_f_o_n_t_s_e_l and _x_l_s_f_o_n_t_s programs can be used to browse
through the fonts available on a server.
Font names tend to be fairly long as they contain all of the information
needed to uniquely identify individual fonts. However, the X server
supports wildcarding of font names, so the full specification
_-_a_d_o_b_e_-_c_o_u_r_i_e_r_-_m_e_d_i_u_m_-_r_-_n_o_r_m_a_l_-_-_1_0_-_1_0_0_-_7_5_-_7_5_-_m_-_6_0_-_i_s_o_8_8_5_9_-_1
_-_*_-_c_o_u_r_i_e_r_-_m_e_d_i_u_m_-_r_-_n_o_r_m_a_l_-_-_*_-_1_0_0_-_*_-_*_-_*_-_*_-_i_s_o_8_8_5_9_-_1
Because the shell also has special meanings for _* and _?,
wildcarded font names should be quoted:
% xlsfonts -fn '-*-courier-medium-r-normal--*-100-*-*-*-*-*-*'
The _x_l_s_f_o_n_t_s program can be used to list all of the fonts that
match a given pattern. With no arguments, it lists all available fonts.
This will usually list the same font at many different sizes. To see
just the base scalable font names, try using one of the following patterns:
_-_*_-_*_-_*_-_*_-_*_-_*_-_0_-_0_-_0_-_0_-_*_-_0_-_*_-_* _-_*_-_*_-_*_-_*_-_*_-_*_-_0_-_0_-_7_5_-_7_5_-_*_-_0_-_*_-_* _-_*_-_*_-_*_-_*_-_*_-_*_-_0_-_0_-_1_0_0_-_1_0_0_-_*_-_0_-_*_-_*
To convert one of the resulting names into a font at a specific size, replace one of the first two zeros with a nonzero value. The field containing the first zero is for the pixel size; replace it with a specific height in pixels to name a font at that size. Alternatively, the field containing the second zero is for the point size; replace it with a specific size in decipoints (there are 722.7 decipoints to the inch) to name a font at that size. The last zero is an average width field, measured in tenths of pixels; some servers will anamorphically scale if this value is specified.
tcp/_h_o_s_t_n_a_m_e:_p_o_r_t tcp/_h_o_s_t_n_a_m_e:_p_o_r_t/_c_a_t_a_l_o_g_u_e_l_i_s_t
The _h_o_s_t_n_a_m_e specifies the name (or decimal numeric address) of the machine on which the font server is running. The _p_o_r_t is the decimal TCP port on which the font server is listening for connections. The _c_a_t_a_l_o_g_u_e_l_i_s_t specifies a list of catalogue names, with '+' as a separator.
Examples: _t_c_p_/_x_._o_r_g_:_7_1_0_0, _t_c_p_/_1_9_8_._1_1_2_._4_5_._1_1_:_7_1_0_0_/_a_l_l.
One of the following forms can be used to name a font server that
accepts DECnet connections:
decnet/_n_o_d_e_n_a_m_e::font$_o_b_j_n_a_m_e decnet/_n_o_d_e_n_a_m_e::font$_o_b_j_n_a_m_e/_c_a_t_a_l_o_g_u_e_l_i_s_t
The _n_o_d_e_n_a_m_e specifies the name (or decimal numeric address) of the machine on which the font server is running. The _o_b_j_n_a_m_e is a normal, case-insensitive DECnet object name. The _c_a_t_a_l_o_g_u_e_l_i_s_t specifies a list of catalogue names, with '+' as a separator.
Examples: _D_E_C_n_e_t_/_S_R_V_N_O_D_:_:_F_O_N_T_$_D_E_F_A_U_L_T, _d_e_c_n_e_t_/_4_4_._7_0_:_:_f_o_n_t_$_s_p_e_c_i_a_l_/_s_y_m_b_o_l_s.
X supports the use of abstract color names, for example, "red", "blue". A value for this abstract name is obtained by searching one or more color name databases. _X_l_i_b first searches zero or more client-side databases; the number, location, and content of these databases is implementation dependent. If the name is not found, the color is looked up in the X server's database. The text form of this database is commonly stored in the file _/_u_s_r_/_X_1_1_R_6_/_l_i_b_/_X_1_1_/_r_g_b_._t_x_t.
A numerical color specification
consists of a color space name and a set of values in the following syntax:
_<_c_o_l_o_r___s_p_a_c_e___n_a_m_e_>:_<_v_a_l_u_e_>_/_._._._/_<_v_a_l_u_e_>
An RGB Device specification is identified by
the prefix "rgb:" and has the following syntax:
rgb:_<_r_e_d_>_/_<_g_r_e_e_n_>_/_<_b_l_u_e_>
_<_r_e_d_>, _<_g_r_e_e_n_>, _<_b_l_u_e_> := _h | _h_h | _h_h_h | _h_h_h_h _h := single hexadecimal digits Note that _h indicates the value scaled in 4 bits, _h_h the value scaled in 8 bits, _h_h_h the value scaled in 12 bits, and _h_h_h_h 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
supported, but its continued use is not encouraged.
The syntax is an initial 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:_<_r_e_d_>_/_<_g_r_e_e_n_>_/_<_b_l_u_e_>
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 _X_l_i_b before being sent to the X server. The input format for these values is an optional sign, a string of numbers possibly containing a decimal point, and an optional exponent field containing an E or e followed by a possibly signed integer string.
The standard device-independent string specifications have
the following syntax:
CIEXYZ:_<_X_>_/_<_Y_>_/_<_Z_> (_n_o_n_e, 1, _n_o_n_e) CIEuvY:_<_u_>_/_<_v_>_/_<_Y_> (~.6, ~.6, 1) CIExyY:_<_x_>_/_<_y_>_/_<_Y_> (~.75, ~.85, 1) CIELab:_<_L_>_/_<_a_>_/_<_b_> (100, _n_o_n_e, _n_o_n_e) CIELuv:_<_L_>_/_<_u_>_/_<_v_> (100, _n_o_n_e, _n_o_n_e) TekHVC:_<_H_>_/_<_V_>_/_<_C_> (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 _X_l_i_b reference manual.
The X keyboard model is broken into two layers: server-specific codes (called _k_e_y_c_o_d_e_s) which represent the physical keys, and server-independent symbols (called _k_e_y_s_y_m_s) which represent the letters or words that appear on the keys. Two tables are kept in the server for converting keycodes to keysyms:
The first four elements of the list are split into two groups of keysyms. Group 1 contains the first and second keysyms; Group 2 contains the third and fourth keysyms. Within each group, if the first element is alphabetic and the the second element is the special keysym _N_o_S_y_m_b_o_l, 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 modifier 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.
>
< >
< >
MMoosstt aapppplliiccaattiioonnss uussiinngg tthhee XX TToooollkkiitt IInnttrriinnssiiccss aallssoo hhaavvee tthhee rreessoouurrccee
ffoorreeggrroouunndd
((ccllaassss FFoorreeggrroouunndd)),, ssppeecciiffyyiinngg tthhee ccoolloorr ttoo uussee ffoorr tteexxtt
aanndd ggrraapphhiiccss wwiitthhiinn tthhee wwiinnddooww..
< >
BByy ccoommbbiinniinngg ccllaassss aanndd iinnssttaannccee ssppeecciiffiiccaattiioonnss,, aapppplliiccaattiioonn pprreeffeerreenncceess
ccaann bbee sseett qquuiicckkllyy aanndd eeaassiillyy.. UUsseerrss ooff ccoolloorr ddiissppllaayyss wwiillll ffrreeqquueennttllyy
wwaanntt ttoo sseett BBaacckkggrroouunndd aanndd FFoorreeggrroouunndd ccllaasssseess ttoo ppaarrttiiccuullaarr ddeeffaauullttss..
SSppeecciiffiicc ccoolloorr iinnssttaanncceess ssuucchh aass tteexxtt ccuurrssoorrss ccaann tthheenn bbee oovveerrrriiddddeenn
wwiitthhoouutt hhaavviinngg ttoo ddeeffiinnee aallll ooff tthhee rreellaatteedd rreessoouurrcceess.. FFoorr eexxaammppllee,,
<><>
<>
< >
bbiittmmaapp**DDaasshheedd:: ooffff
XXTTeerrmm**ccuurrssoorrCCoolloorr:: ggoolldd
XXTTeerrmm**mmuullttiiSSccrroollll:: oonn
XXTTeerrmm**jjuummppSSccrroollll:: oonn
XXTTeerrmm**rreevveerrsseeWWrraapp:: oonn
XXTTeerrmm**ccuurrsseess:: oonn
XXTTeerrmm**FFoonntt:: 66xx1100
XXTTeerrmm**ssccrroollllBBaarr:: oonn
XXTTeerrmm**ssccrroollllbbaarr**tthhiicckknneessss:: 55
XXTTeerrmm**mmuullttiiCClliicckkTTiimmee:: 550000
XXTTeerrmm**cchhaarrCCllaassss:: 3333::4488,,3377::4488,,4455--4477::4488,,6644::4488
XXTTeerrmm**ccuuttNNeewwlliinnee:: ooffff
XXTTeerrmm**ccuuttTTooBBeeggiinnnniinnggOOffLLiinnee:: ooffff
XXTTeerrmm**ttiitteeIInnhhiibbiitt:: oonn
XXTTeerrmm**ttttyyMMooddeess:: iinnttrr ^^cc eerraassee ^^?? kkiillll ^^uu
XXLLooaadd**BBaacckkggrroouunndd:: ggoolldd
XXLLooaadd**FFoorreeggrroouunndd:: rreedd
XXLLooaadd**hhiigghhlliigghhtt:: bbllaacckk
XXLLooaadd**bboorrddeerrWWiiddtthh:: 00
eemmaaccss**GGeeoommeettrryy:: 8800xx6655--00--00
eemmaaccss**BBaacckkggrroouunndd:: rrggbb::55bb//7766//8866
eemmaaccss**FFoorreeggrroouunndd:: wwhhiittee
eemmaaccss**CCuurrssoorr:: wwhhiittee
eemmaaccss**BBoorrddeerrCCoolloorr:: wwhhiittee
eemmaaccss**FFoonntt:: 66xx1100
xxmmaagg**ggeeoommeettrryy:: --00--00
xxmmaagg**bboorrddeerrCCoolloorr:: wwhhiittee
</pprree>>
< >
IIff tthheessee rreessoouurrcceess wweerree ssttoorreedd iinn aa ffiillee ccaalllleedd _._X_r_e_s_o_u_r_c_e_s iinn yyoouurr hhoommee
ddiirreeccttoorryy,, tthheeyy ccoouulldd bbee aaddddeedd ttoo aannyy eexxiissttiinngg rreessoouurrcceess iinn tthhee sseerrvveerr wwiitthh
tthhee ffoolllloowwiinngg ccoommmmaanndd::
<><>
<>
< >
%% xxrrddbb --mmeerrggee $$HHOOMMEE//..XXrreessoouurrcceess
</pprree>>
<><>
TThhiiss iiss ffrreeqquueennttllyy hhooww uusseerr--ffrriieennddllyy ssttaarrttuupp ssccrriippttss mmeerrggee uusseerr--ssppeecciiffiicc
ddeeffaauullttss
iinnttoo aannyy ssiittee--wwiiddee ddeeffaauullttss.. AAllll ssiitteess aarree eennccoouurraaggeedd ttoo sseett uupp ccoonnvveenniieenntt
wwaayyss ooff aauuttoommaattiiccaallllyy llooaaddiinngg rreessoouurrcceess.. SSeeee tthhee _X_l_i_b
mmaannuuaall sseeccttiioonn _R_e_s_o_u_r_c_e _M_a_n_a_g_e_r _F_u_n_c_t_i_o_n_s ffoorr mmoorree iinnffoorrmmaattiioonn..
< >
//uussrr//XX1111RR66//lliibb//XX1111//%%LL//%%TT//%%NN%%CC%%SS::\\
//uussrr//XX1111RR66//lliibb//XX1111//%%ll//%%TT//%%NN%%CC%%SS::\\
//uussrr//XX1111RR66//lliibb//XX1111//%%TT//%%NN%%CC%%SS::\\
//uussrr//XX1111RR66//lliibb//XX1111//%%LL//%%TT//%%NN%%SS::\\
//uussrr//XX1111RR66//lliibb//XX1111//%%ll//%%TT//%%NN%%SS::\\
//uussrr//XX1111RR66//lliibb//XX1111//%%TT//%%NN%%SS
</pprree>>
<><>
AA ppaatthh tteemmppllaattee iiss ttrraannssffoorrmmeedd ttoo aa ppaatthhnnaammee bbyy ssuubbssttiittuuttiinngg::
<><>
<>
< >
%%NN ==>> nnaammee ((bbaasseennaammee)) bbeeiinngg sseeaarrcchheedd ffoorr
%%TT ==>> ttyyppee ((ddiirrnnaammee)) bbeeiinngg sseeaarrcchheedd ffoorr
%%SS ==>> ssuuffffiixx bbeeiinngg sseeaarrcchheedd ffoorr
%%CC ==>> vvaalluuee ooff tthhee rreessoouurrccee ""ccuussttoommiizzaattiioonn""
((ccllaassss ""CCuussttoommiizzaattiioonn""))
%%LL ==>> tthhee llooccaallee nnaammee
%%ll ==>> tthhee llooccaallee''ss llaanngguuaaggee ((ppaarrtt bbeeffoorree ''__''))
%%tt ==>> tthhee llooccaallee''ss tteerrrriittoorryy ((ppaarrtt aafftteerr ''__`` bbuutt bbeeffoorree ''..''))
%%cc ==>> tthhee llooccaallee''ss eennccooddiinngg ((ppaarrtt aafftteerr ''..''))
</pprree>>
< >
$$XXAAPPPPLLRREESSDDIIRR//%%LL//%%NN%%CC::\\
$$XXAAPPPPLLRREESSDDIIRR//%%ll//%%NN%%CC::\\
$$XXAAPPPPLLRREESSDDIIRR//%%NN%%CC::\\
$$HHOOMMEE//%%NN%%CC::\\
$$XXAAPPPPLLRREESSDDIIRR//%%LL//%%NN::\\
$$XXAAPPPPLLRREESSDDIIRR//%%ll//%%NN::\\
$$XXAAPPPPLLRREESSDDIIRR//%%NN::\\
$$HHOOMMEE//%%NN
</pprree>>
<><>
$$XXAAPPPPLLRREESSDDIIRR ddeeffaauullttss ttoo _$_H_O_M_E,, sseeee bbeellooww..
<><>
AA ppaatthh tteemmppllaattee iiss ttrraannssffoorrmmeedd ttoo aa ppaatthhnnaammee bbyy ssuubbssttiittuuttiinngg::
<><>
<>
< >
%%NN ==>> nnaammee ((bbaasseennaammee)) bbeeiinngg sseeaarrcchheedd ffoorr
%%TT ==>> ttyyppee ((ddiirrnnaammee)) bbeeiinngg sseeaarrcchheedd ffoorr
%%SS ==>> ssuuffffiixx bbeeiinngg sseeaarrcchheedd ffoorr
%%CC ==>> vvaalluuee ooff tthhee rreessoouurrccee ""ccuussttoommiizzaattiioonn""
((ccllaassss ""CCuussttoommiizzaattiioonn""))
%%LL ==>> tthhee llooccaallee nnaammee
%%ll ==>> tthhee llooccaallee''ss llaanngguuaaggee ((ppaarrtt bbeeffoorree ''__''))
%%tt ==>> tthhee llooccaallee''ss tteerrrriittoorryy ((ppaarrtt aafftteerr ''__`` bbuutt bbeeffoorree ''..''))
%%cc ==>> tthhee llooccaallee''ss eennccooddiinngg ((ppaarrtt aafftteerr ''..''))
</pprree>>
< >
<>XXKKBB__FFOORRCCEE</bb>>
<>
<>XXKKBB__DDIISSAABBLLEE</bb>>
<>
<>XXKKBB__DDEEBBUUGG</bb>>
<>
<>__XXKKBB__CCHHAARRSSEETT</bb>>
<>
<>__XXKKBB__LLOOCCAALLEE__CCHHAARRSSEETTSS</bb>>
<>
<>__XXKKBB__OOPPTTIIOONNSS__EENNAABBLLEE</bb>>
<>
<>__XXKKBB__LLAATTIINN11__LLOOOOKKUUPP</bb>>
<>
<>__XXKKBB__CCOONNSSUUMMEE__LLOOOOKKUUPP__MMOODDSS</bb>>
<>
<>__XXKKBB__CCOONNSSUUMMEE__SSHHIIFFTT__AANNDD__LLOOCCKK</bb>>
<>
<>__XXKKBB__IIGGNNOORREE__NNEEWW__KKEEYYBBOOAARRDDSS</bb>>
<>
<>__XXKKBB__CCOONNTTRROOLL__FFAALLLLBBAACCKK</bb>>
<>
<>__XXKKBB__CCOOMMPP__LLEEDD</bb>>
<>__XXKKBB__CCOOMMPP__FFAAIILL__BBEEEEPP</bb>>
< >
%% xxrrddbb $$HHOOMMEE//..XXrreessoouurrcceess
%% xxmmooddmmaapp --ee ""kkeeyyssyymm BBaacckkSSppaaccee == DDeelleettee""
%% mmkkffoonnttddiirr //uussrr//llooccaall//lliibb//XX1111//ootthheerrffoonnttss
%% xxsseett ffpp++ //uussrr//llooccaall//lliibb//XX1111//ootthheerrffoonnttss
%% xxmmooddmmaapp $$HHOOMMEE//..kkeeyymmaapp..kkmm
%% xxsseettrroooott --ssoolliidd ''rrggbbii::..88//..88//..88''
%% xxsseett bb 110000 440000 cc 5500 ss 11880000 rr oonn
%% xxsseett qq
%% ttwwmm
%% xxmmaagg
%% xxcclloocckk --ggeeoommeettrryy 4488xx4488--00++00 --bbgg bblluuee --ffgg wwhhiittee
%% xxeeyyeess --ggeeoommeettrryy 4488xx4488--4488++00
%% xxbbiiffff --uuppddaattee 2200
%% xxllssffoonnttss ''**hheellvveettiiccaa**''
%% xxwwiinniinnffoo --rroooott
%% xxddppyyiinnffoo --ddiissppllaayy jjooeesswwoorrkkssttaattiioonn::00
%% xxhhoosstt --jjooeesswwoorrkkssttaattiioonn
%% xxrreeffrreesshh
%% xxwwdd || xxwwuudd
%% bbiittmmaapp ccoommppaannyyllooggoo..bbmm 3322xx3322
%% xxccaallcc --bbgg bblluuee --ffgg mmaaggeennttaa
%% xxtteerrmm --ggeeoommeettrryy 8800xx6666--00--00 --nnaammee mmyyxxtteerrmm $$**
%% xxoonn ffiilleessyyssmmaacchhiinnee xxllooaadd
</pprree>>
< >
WWhheenn tthhee XX TToooollkkiitt IInnttrriinnssiiccss eennccoouunntteerr eerrrroorrss ccoonnvveerrttiinngg rreessoouurrccee ssttrriinnggss ttoo
tthhee
aapppprroopprriiaattee iinntteerrnnaall ffoorrmmaatt,, nnoo eerrrroorr mmeessssaaggeess aarree uussuuaallllyy pprriinntteedd.. TThhiiss iiss
ccoonnvveenniieenntt wwhheenn iitt iiss ddeessiirraabbllee ttoo hhaavvee oonnee sseett ooff rreessoouurrcceess aaccrroossss aa vvaarriieettyy
ooff ddiissppllaayyss ((ee..gg.. ccoolloorr vvss.. mmoonnoocchhrroommee,, lloottss ooff ffoonnttss vvss.. vveerryy ffeeww,, eettcc..)),,
aalltthhoouugghh iitt ccaann ppoossee pprroobblleemmss ffoorr ttrryyiinngg ttoo ddeetteerrmmiinnee wwhhyy aann aapppplliiccaattiioonn mmiigghhtt
bbee ffaaiilliinngg.. TThhiiss bbeehhaavviioorr ccaann bbee oovveerrrriiddddeenn bbyy tthhee sseettttiinngg tthhee
_S_t_r_i_n_g_C_o_n_v_e_r_s_i_o_n_s_W_a_r_n_i_n_g rreessoouurrccee..
< >
TToo ffoorrccee tthhee XX TToooollkkiitt IInnttrriinnssiiccss ttoo aallwwaayyss pprriinntt ssttrriinngg ccoonnvveerrssiioonn eerrrroorr
mmeessssaaggeess,,
tthhee ffoolllloowwiinngg rreessoouurrccee sshhoouulldd bbee ppllaacceedd iinn tthhee ffiillee tthhaatt ggeettss
llooaaddeedd oonnttoo tthhee RREESSOOUURRCCEE__MMAANNAAGGEERR pprrooppeerrttyy
uussiinngg tthhee _x_r_d_b pprrooggrraamm ((ffrreeqquueennttllyy ccaalllleedd _._X_r_e_s_o_u_r_c_e_s
oorr _._X_r_e_s iinn tthhee uusseerr''ss hhoommee ddiirreeccttoorryy))::
<><>
<>
< >
**SSttrriinnggCCoonnvveerrssiioonnWWaarrnniinnggss:: oonn
</pprree>>
<><>
TToo hhaavvee ccoonnvveerrssiioonn mmeessssaaggeess pprriinntteedd ffoorr jjuusstt aa ppaarrttiiccuullaarr aapppplliiccaattiioonn,,
tthhee aapppprroopprriiaattee iinnssttaannccee nnaammee ccaann bbee ppllaacceedd bbeeffoorree tthhee aasstteerriisskk::
<><>
<>
< >
xxtteerrmm**SSttrriinnggCCoonnvveerrssiioonnWWaarrnniinnggss:: oonn
</pprree>>
< >
<>XXSSttaannddaarrddss((77))</aa>>
<>XXsseeccuurriittyy((77))</aa>>
<>aapppprreess((11))</aa>>
<>bbddffttooppccff((11))</aa>>
<>bbiittmmaapp((11))</aa>>
<>eeddiittrreess((11))</aa>>
<>ffssiinnffoo((11))</aa>>
<>ffssllssffoonnttss((11))</aa>>
<>ffssttoobbddff((11))</aa>>
<>iicceeaauutthh((11))</aa>>
<>iimmaakkee((11))</aa>>
<>llbbxxpprrooxxyy((11))</aa>>
<>mmaakkeeddeeppeenndd((11))</aa>>
<>mmkkffoonnttddiirr((11))</aa>>
<>oocclloocckk((11))</aa>>
<>pprrooxxyymmnnggrr((11))</aa>>
<>rrggbb((11))</aa>>
<>rreessiizzee((11))</aa>>
<>rrssttaarrtt((11))</aa>>
<>ssmmpprrooxxyy((11))</aa>>
<>ttwwmm((11))</aa>>
<>xx1111ppeerrff((11))</aa>>
<>xx1111ppeerrffccoommpp((11))</aa>>
<>xxaauutthh((11))</aa>>
<>xxcclliippbbooaarrdd((11))</aa>>
<>xxcclloocckk((11))</aa>>
<>xxccmmssddbb((11))</aa>>
<>xxccoonnssoollee((11))</aa>>
<>xxddmm((11))</aa>>
<>xxddppyyiinnffoo((11))</aa>>
<>xxffdd((11))</aa>>
<>xxffiinnddpprrooxxyy((11))</aa>>
<>xxffss((11))</aa>>
<>xxffwwpp((11))</aa>>
<>xxhhoosstt((11))</aa>>
<>xxiieeppeerrff((11))</aa>>
<>xxiinniitt((11))</aa>>
<>xxkkbbbbeellll((11))</aa>>
<>xxkkbbccoommpp((11))</aa>>
<>xxkkbbeevvdd((11))</aa>>
<>xxkkbbpprriinntt((11))</aa>>
<>xxkkbbvvlleeddss((11))</aa>>
<>xxkkbbwwaattcchh((11))</aa>>
<>xxkkiillll((11))</aa>>
<>xxllooggoo((11))</aa>>
<>xxllssaattoommss((11))</aa>>
<>xxllsscclliieennttss((11))</aa>>
<>xxllssffoonnttss((11))</aa>>
<>xxmmaagg((11))</aa>>
<>xxmmhh((11))</aa>>
<>xxmmooddmmaapp((11))</aa>>
<>xxoonn((11))</aa>>
<>xxpprroopp((11))</aa>>
<>xxrrddbb((11))</aa>>
<>xxrreeffrreesshh((11))</aa>>
<>xxrrxx((11))</aa>>
<>xxsseett((11))</aa>>
<>xxsseettrroooott((11))</aa>>
<>xxssmm((11))</aa>>
<>xxssttddccmmaapp((11))</aa>>
<>xxtteerrmm((11))</aa>>
<>xxwwdd((11))</aa>>
<>xxwwiinniinnffoo((11))</aa>>
<>xxwwuudd((11))</aa>>
<>XXsseerrvveerr((11))</aa>>
<>XXddeecc((11))</aa>>
<>XXmmaaccIIII((11))</aa>>
<>XXssuunn((11))</aa>>
<>XXnneesstt((11))</aa>>
<>XXvvffbb((11))</aa>>
<>XXFFrreeee8866((11))</aa>>
<>XXDDaarrwwiinn((11))</aa>>
<>kkbbdd__mmooddee((11))</aa>>
<>XXlliibb -- CC LLaanngguuaaggee XX IInntteerrffaaccee,</ii>>
aanndd
<>XX TToooollkkiitt IInnttrriinnssiiccss -- CC LLaanngguuaaggee IInntteerrffaaccee</ii>>
< >
XX WWiinnddooww SSyysstteemm iiss aa ttrraaddeemmaarrkk ooff XX CCoonnssoorrttiiuumm,, IInncc..
< >
AA ccaasstt ooff tthhoouussaannddss,, lliitteerraallllyy.. TThhee RReelleeaassee 66..33 ddiissttrriibbuuttiioonn iiss
bbrroouugghhtt ttoo yyoouu bbyy XX CCoonnssoorrttiiuumm,, IInncc.. TThhee nnaammeess ooff aallll ppeeooppllee wwhhoo
mmaaddee iitt aa rreeaalliittyy wwiillll bbee ffoouunndd iinn tthhee iinnddiivviidduuaall ddooccuummeennttss aanndd
ssoouurrccee ffiilleess.. TThhee ssttaaffff mmeemmbbeerrss aatt tthhee XX CCoonnssoorrttiiuumm rreessppoonnssiibbllee
ffoorr tthhiiss rreelleeaassee aarree:: DDoonnnnaa CCoonnvveerrssee ((eemmeerriittuuss)),, SStteepphheenn GGiillddeeaa
((eemmeerriittuuss)),, KKaalleebb KKeeiitthhlleeyy,, MMaatttt LLaannddaauu ((eemmeerriittuuss)),, RRaallpphh MMoorr
((eemmeerriittuuss)),, JJaanneett OO''HHaalllloorraann,, BBoobb SScchheeiifflleerr,, RRaallpphh SSwwiicckk,, DDaavvee
WWiiggggiinnss ((eemmeerriittuuss)),, aanndd RReeeedd AAuugglliieerree..
< >
TThhee XX WWiinnddooww SSyysstteemm ssttaannddaarrdd wwaass oorriiggiinnaallllyy ddeevveellooppeedd aatt tthhee
LLaabboorraattoorryy ffoorr CCoommppuutteerr SScciieennccee aatt tthhee MMaassssaacchhuusseettttss IInnssttiittuuttee
ooff TTeecchhnnoollooggyy,, aanndd aallll rriigghhttss tthheerreettoo wweerree aassssiiggnneedd ttoo tthhee XX CCoonnssoorrttiiuumm
oonn JJaannuuaarryy 11,, 11999944..
XX CCoonnssoorrttiiuumm,, IInncc.. cclloosseedd iittss ddoooorrss oonn DDeecceemmbbeerr 3311,, 11999966.. AAllll rriigghhttss ttoo tthhee
XX WWiinnddooww SSyysstteemm hhaavvee bbeeeenn aassssiiggnneedd ttoo tthhee OOppeenn SSooffttwwaarree FFoouunnddaattiioonn..
</bbooddyy>>
</hhttmmll>>