\\ / \\ / Version 11 Rel. 6.4 / \\ / \\ Server for MiNT/GEM =============================== Sep 05, 2001 Contents ======== 1. Requirements 2. Installation 2.1. Preparing Environment 2.2. Preparing Directories 3. Fonts 3.1. Handling of GEM-Fonts 3.2. Font-Aliasing 4. Using The X Server 4.1. Menu Bar Items 4.2. Keyboard Input 4.3. Mouse Actions 1. Requirements =============== To get the server running with a useable speed, a machine with a 68030 and 10 MByte of Ram is needed at least. Absolutely vital installed and working system programs are: FreeMiNT >= 1.15.6, NVDI >= 4.1, N.AES or XaAES or AES 4.1. If you haven't MiNTnet installed you need a very small package (I call it 'tiny-sock') from X11.freemint.de installed instead. Screen size (width*height) isn't restricted, but ST-High (640*400) is the minimum to get it useable. Nearly all color depths are supported, expect of 2 planes (4 colors) and 15 bit PC format. The latest binary version can be downloaded from the homepage at http://X11.freemint.de , there is also a source snapshot. The very latest sources are accessible from the FreeMiNT CVS Repository at http://wh58-508.st.uni-magdeburg.de/cgi-bin/cvsweb/xg/ Bug reports should be mailed to . 2. Installation =============== Copy the server's files to some location on your filesystem; there is no requirement of a fixed path for the server. A usefull place might be /usr/X11R6/bin/ but everything else works as well. The next step is to make a directory /var/lib/Xapp/ for the server. If the server is startet by root at the first time, or the directory is writeable by the server, it will do the following steps by itself. Else do the following (as root user): cd /var/lib ; mkdir Xapp ; chmod 777 Xapp 2.1. Preparing Environment -------------------------- There are a few things necessary for X-clients to be able to work. If a client starts, it first parses the environment variable DISPLAY to find out at which IP number the server should be connected. So it's possible to start clients from connected machines, having their X-Windows opend on your local machine. The value of DISPLAY has to be of the form ":0.0". For clients running at a local machine, DISPLAY contains simply the value "0:0.0", where the first "0" is simply a shortcut for the local IP or even "localhost". For clients started on a remote machine connected to an Atari with e.g. the IP 123.234.34.56, DISPLAY at the remote machine must be then "123.234.34.56:0.0". Most comfortable for the user is, to have somewhere in mint.cnf the line setenv DISPLAY 0:0.0 so the setting it can't be forgotten. Otherway it would be necessary to set it by hand in a shell window and start every client from that shell. 2.2. Preparing Directories -------------------------- The following isn't necessary for the server itself but should be done for client programs to have a common directory hirachy. First there should be a directory /etc/X11/app-defaults/ which will later contain default configuration files for several client programs. These configuration files are such with the suffix ".ad" in packages and needs to be renamed without the suffix while copying to the app-defaults e.g. "Xcalc.ad" to only "Xcalc". Also the X server will search for optional configuration fileas at /etc/X11/. Next, a directory /usr/X11R6/ should be created as being the "XTOPDIR" and a link /usr/X11 pointing to this directory as well, for historical reasons: cd /usr ; ln -s X11R6 X11 Furthermore, some clients are looking for their configuration files not at /etc/X11/app-defaults/, but at /usr/X11R6/lib/X11/app-defaults/ (or at /usr/X11/lib/X11/app-defaults/, therefor the link) instead, so there should be placed a link pointing to /etc/X11/app-defaults/: cd /usr/X11R6/lib/X11 ; ln -s /etc/X11/app-defaults After carrying out all the previous steps, the system should have these directories and links: /var/lib/Xapp/ /etc/X11/app-defaults/ /usr/X11R6/lib/X11/app-defaults -> /etc/X11/app-defaults/ /usr/X11 -> X11R6/ 3. Fonts ======== In X, fonts are named following the XLFD ('X Logical Font Description'). These font names are in fact a set of descriptive fields with '-' as delimiters. The format is as following: -fndry-fmly-wght-slnt-sWd-adStl-pxSz-ptSz-resx-resy-spc-avgWd-rgstry-enc with the field meanings: fndry: Foundry is the name of the organization that supplied or last modified the font, e.g. Adobe, Bitstream. fmly: FamilyName of the font, e.g. Courier, Gothic, Helvetica wght: WeightName, e.g. Bold, Medim, Black slnt: Slant, a code-string with tha encoding: "R"=Roman, "I"=Italic, "O"=Oblique, aso. sWd: SetWidth, e.g. Normal, Condensed, Narrow adStl: AddStyle, e.g. Sans, Serif, pxSz: PixelSize of the body of the font, similar to the character cell in VDI ptSz: PointSize in decipoint, that is 1/10th point resx,resy: horizontal/vertical resolution for which the font was designed spc: Spacing, code-string to indicate the escapement, that is "P" for proportional and "M" or "C" for monospaced avgWd: AverageWidth of all characters in 1/20th pixels rgstry,enc: CharsetRegistry/Encoding, e.g. ISO8859-1 All of these fields my contain wildcards (a '*'). For example, often clients requests a font named '-*-*-*-*-*-*-*-120-*-*-*-*-ISO8859-1' which means some font of 12 point height and that charset encoding is needed, no matter of which family or style and so on. The server will than take the first font where both criteria matches. 3.1. Handling of GEM-Fonts -------------------------- At startup, the server parses all fonts provided by the VDI and translates the available information to XLFD strings. These are stored in the hash file /var/lib/Xapp/fonts.db to accelerate further startups. 3.2. Font-Aliasing ------------------ If there exists a file /etc/X11/fonts.alias it will be read at server startup and later be used to substitute font names from client requests to fonts the server provides. Have a look at the server's font hash file at /var/lib/Xapp/fonts.db to see which fonts are provided by your system. There is also an example configuration 'fonts.alias.EXMPL' coming along with this file. The format of the fonts.alias file is very simple, lines starting with a '!' are comment lines and will be ignored. The relevant lines are formed the way "foo: bar" and "foo bar" and means in both cases: "find 'foo' and replace it with 'bar'", but in different ways. The first form (with the colon) is used to substitute a _part_ of the font name and the second form (without colon) is used to substitute the _whole_ font name. The "foo: bar" form is usefull to replace particular fields of the font name, for example the lines -adobe-: -*- -courier-: -Courier10Pitch- would cause that a request for '-adobe-courier-*-*-*-*-*-*-*-*-*-*-*-*' would be translated to '-*-Courier10Pitch-*-*-*-*-*-*-*-*-*-*-*-*' which matches the speedo font from the NVDI package. The field delimeters '-' should always be used (even if not forced) to avoid wrong results. The "foo: bar" form is to substitute the whole font name and will be done _AFTER_ the part substitution. There are two often requested pseudo-fonts which should always be aliased: fixed: A monospaced font that fits best the system capabilities, e.g. the font used the AES, or some other monospaced font of your choice. variable: Some proportional font which should be of the same height as the font used for fixed. To use the fonts from the NVDI package, it could looks like fixed -Bitstream-Courier10Pitch-Medium-I-Normal-Serif-16-90-0-0-C-70-ISO8859-1 variable -Bitstream-Life-Medium-R-Normal-Serif-16-90-0-0-P-68-ISO8859-1 The font to be substituted can also be a pattern, like -adobe-times-*-*-*-*-*-*-*-*-*-*-iso8859-1 \ -*-times*-medium-*-*-*-*-*-*-*-*-*-*-* -*-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \ -*-gothic*-medium-r-*-*-*-120-*-*-*-*-*-* Please pay attention that the '\' isn't allowed in the font.alias file; it's only used here for better readability! Instead both parts have to be in one line, with spaces or tabs between. There are other oftern used font names of the form '9x15', '6x13' and so on, which means monospaced fonts of * pixel size. If an request of such a font name appeares and the server can't find it in its XLFD list nor in the alias list, it takes a scalable font which can scaled best to that geometry and creates a generic XLFD entry. 4. Using The X Server ===================== After been started the X server checks if /dev/xconout2 isn't locked by some other program and if /usr/X11/bin/xconsole exists. In this case the latter on is started acts as a replacement for TosWin2's console window. TosWin2 mustn't be terminated for having xconsole started, only closing its console window is enough. Note that also for xconsole the xconout2.xdd must be installed. The next step after this is checking if either /etc/X11/Xmodmap and /usr/X11/bin/xmodmap are existing. In this case it will be started to apply user defined keyboard and/or mouse button mappings. For more information see the example file 'Xmodmap.EXMPL' and the xmodmap manpage. 4.1. Menu Bar Items ------------------- X11-Server: About: Views version information. File: gwm: Enables/disables the built-in window manager. In fact, this option controls if X windows have GEM windgets and decor, or not. Quit: Quits the X server. If some clients are connected, a confirmation dialog will apear first. Clients: Views a list of all client connections. Selecting one of the entries while the Control key is held down, closes down immediately the corresponding connection. 4.2. Keyboard Input ------------------- In opposite to GEM apllications, every X window gets keyboard events always and only if it contains the mouse pointer, independent of the fact which is the top window. This means that even if some GEM application has some of its wimdows the top window but the mouse pointer is over an X window, all keyboard inout will be sent to the latter. On the other hand, if the X server has one of its windows the top window but the mouse pointer is somewhere else than over an X window, all keyboard inputs will be discarded. Normaly the X server does no interpretition of any kyeboard input. There is one exception: The combination Control-Alt-Backspace causes an immediate server shutdown and is meant as a "Panic Key". 4.3. Mouse Actions ------------------ X windows can be resized by clicking on the frame around and dragging to the new size. Some windows may be set to be not resizeable, this can be overridden by holding down the Control key. A short mouseclick onto the frame tops/bottoms the window. Holding down the Alt key while clicking somewhere inside a window allows to move it around.