---------------------------------------------------------------------------- Frequently Asked Questions about X with Answers SunFLASH Vol 18 #21 June 1990 ---------------------------------------------------------------------------- [[ This article is from USENET. This list of questions & answers is updated monthly, but I will post it to this group no more that 4 times per year -johnj ]] -------------------------------------------------------------------------------- From: xug@ics.com (X User's Group) Newsgroups: comp.windows.x,ba.windows.x,comp.windows.misc Subject: Frequently Asked Questions about X with Answers [long monthly posting] Date: 31 May 90 14:32:25 GMT [Last changed: 31 May 90] This article contains the answers to some Frequently Asked Questions often seen in comp.windows.x. It is posted to help reduce volume in this newsgroup and to provide hard-to-find information of general interest. This article includes answers to these questions: 0) Where can I obtain X source? 1) Where can I obtain X11R4? 2) Where can I obtain Motif? 3) Where can I obtain software implementing Open Look? 4) Where can I obtain other X sources? 5) What is the xstuff mail-archive? 6) Where can I obtain patches to X11R4? 7) Where can I find books and articles on X that are good for beginners? 8) What courses on X are available? 9) Is there a skeleton X program available? 10) What are these common abbreviations? 11) What is XUG? 12) What is EXUG? 13) What is the X Consortium and how do I join? 14) What is xpert? 15) What conferences on X are coming up? 16) What is the current state of the world in X terminals? 17) How can I get an X server on a PC? 18) What terminal emulators other than xterm are available? 19) How can I get an X server on a Macintosh running MacOS? 20) Where can I obtain an X-based editor or word-processor? 21) Where can I obtain an X-based paint/draw program? 22) Where can I obtain an X-based spreadsheet? 23) Where can I get a PostScript previewer for X? 24) Where can I get a troff previewer for X? 25) How do I convert Mac/TIFF/GIF/Sun/PICT/Face/img/FAX/etc images to X? 26) How do I use an alternate window manager with DEC's session manager? 27) How do I build X with gcc? 28) What are these funny problems compiling X11R3 on the Sun4? 29) What are these funny problems installing X11R4 on the Sun running SunOS 4? 30) Where can I get a fast X server for a workstation? 31) How can I change the titlebar of my xterm window? 32) Why doesn't anything appear when I run this simple program? 33) What is the difference between a Screen and a screen? 34) Why do I get a BadDrawable error drawing to XtWindow(widget)? 35) Can I get a window's background pixel/pixmap using XGetWindowAttributes? 36) Why does the pixmap I copy to the screen show up as garbage? 37) Why doesn't my program get the keystrokes I select for? 38) How can my application iconify itself? 39) How do I check whether a window ID is valid? 40) Why can't I set the backgroundPixmap resource in my .Xdefaults file? 41) Why does the R3 xterm, et al, fail against the R4 server? 42) Where can I obtain alternate language bindings to X? If you have suggestions or corrections for any of these answers or any additional information, please send them directly to xug@expo.lcs.mit.edu; the information will be included in the next revision (or possibly the one after that; thanks for the many suggestions which haven't been incorporated yet). The answers in this iteration are acknowledged to be partial and to lean more towards products than to programming. This posting is intended to be distributed at approximately the beginning of each month. The information contained herein has been gathered from a variety of sources. In many cases attribution has been lost; if you would like to claim responsibility for a particular item, please let us know. Conventions used below: telephone numbers tend to be Bell-system unless otherwise noted; prices on items are not included. -------------------------------------------------- 0) Where can I obtain X source? Intelligent Software Products, Inc., (516-766-2867) ships X11R3 [formats are unknown]. Integrated Computer Solutions, Inc., (617-547-0510) ships X11R3 on half-inch and quarter-inch formats. The Free Software Foundation (617-876-3296) sells X11R3 on half-inch tapes and on QIC-24 cartridges. Automata Design Associates (215-646-4894) sells X11R3 source on 5.25" high-density floppies and QIC-24 quarter-inch cartridge tapes. European sites can obtain a free distribution from Jamie Watson, who may be reached at chx400!pan!jw or cernvax!pan!jw. [1/90] IXI Limited (+44 223 462 131) is selling X11R3 source on quarter-inch cartridge formats and on 5.25" and 3.5" floppy, with other formats available on request. [IXI, 2/90] [Note that some distributions are media-only and do not include docs.] [The MIT Software Center no longer distributes X11R3.] (See below for FTP sites.) 1) Where can I obtain X11R4? The MIT Software Center is shipping X11R4 on four 1600bpi half-inch tapes. Call the X Hotline at (617) 258-8330 for prerecorded ordering information and a good product description. Integrated Computer Solutions, Inc., ships X11R4 on half-inch, quarter-inch, and TK50 formats. Call 617-547-0510 for ordering information. The Free Software Foundation (617-876-3296) sells X11R4 on half-inch tapes and on QIC-24 cartridges. Yaser Doleh (doleh@math-cs.kent.EDU; P.O. Box 1301, Kent, OH 44240) is making X11R4 available on HP format tapes, 16 track, and Sun cartridges. [2/90] European sites can obtain a free X11R4 distribution from Jamie Watson, who may be reached at chx400!pan!jw or cernvax!pan!jw. [1/90] IXI Limited (+44 223 462 131) is selling X11R4 source on quarter-inch cartridge formats and on 5.25" and 3.5" floppy, with other formats available on request. [IXI, 2/90] Virtual Technologies (703-430-9247) provides the entire X11R4 compressed source release on a single QIC-24 quarter-inch cartridge and also on 1.2meg or 1.44 meg floppies upon request. [Conor Cahill (cpcahil@virtech.uu.net) 2/90] [Note that some distributions are media-only and do not include docs.] Canadian sites can send email to xhacks@csri.toronto.edu to arrange for the exchange of tapes; the offer is subject to "time availability". [information from Mark Moraes (moraes@csri.toronto.edu), 2/90] UK sites can obtain R4 through the UKUUG Software Distribution Service, from the Department of Computing, Imperial College, London, in several tape formats. You may also obtain the source via Janet (and therefore PSS) using Niftp (Host: uk.ac.ic.doc.src Name: guest Password: your_email_address). Queries should be directed to Lee McLoughlin, 01-589-5111#5037, or to ukuug-soft@uk.ac.ic.doc. Also offered are copies of comp.sources.x logs. X11R4 is ftp-able from expo.lcs.mit.edu; these sites are preferable, though, and are more direct: Machine Internet FTP Location Name Address Directory -------- ------- -------- ------------- (1) West USA gatekeeper.dec.com 16.1.0.2 pub/X11/R4 Central USA mordred.cs.purdue.edu 128.10.2.2 pub/X11/R4 (2) Central USA giza.cis.ohio-state.edu 128.146.8.61 pub/X.V11R4 Southeast USA uunet.uu.net 192.48.96.2 X/R4 (3) Northeast USA crl.dec.com 192.58.206.2 pub/X11/R4 (4) UK Janet src.doc.ic.ac.uk 129.31.81.36 X.V11R4 UK niftp uk.ac.ic.doc.src (5) Australia munnari.oz.au 128.250.1.21 X.V11/R4 The giza.cis.ohio-state.edu site, in particular, is known to have much of the contrib stuff that can be found on expo. The release is available to DEC Easynet sites as CRL::"/pub/X11/R4". -------------------------------------------------- 2) Where can I obtain Motif? Various hardware vendors produce developer's toolkits of binaries, header files, and documentation; check your hardware vendor, particularly if that vendor is an OSF member. Systems known to be shipping now: HP (sans UIL), Apollo (sans UIL), SCO, ISC, Mips (RISCwindows=X11R3 + full Motif). In addition, independent binary vendors produce Motif toolkits. ICS makes several binary kits, notably for Sun, DEC, Apple; Quest (408-988-8880) sells kits for Suns, as well; IXI (+44 223 462 131) offers kits for Sun3 (SunOS 3.5 or later, and Sun4 (SunOS 4.0.1 or later). Unipalm XTech (+44 954 211862) offers a binary kit for Sun 4, Sun 3, and Sun 386i. The kits include varied levels of bug-fixing and support for shared libraries. An OSF/Motif source license must be obtained from OSF before source can be obtained from the Open Software Foundation or any value-added vendor. Call the Motif Desk at OSF at 617-621-8835 for ordering information. -------------------------------------------------- 3) Where can I obtain software implementing Open Look? Sun's XView has a SunView-style API. A new version is on the X11R4 tape; a newer version is also available (as of 2/90) on expo.lcs.mit.edu for anonymous ftp. Supported binaries of XView include: AT&T's Open Look GUI 2.0 Xt-based toolkit is now generally available [2/90]; contact 1-800-828-UNIX#544 for information. Binaries are produced for SPARC systems by International Quest Corporation (408-988-8289). Sun is shipping OpenWindows 1.0 for Sparc, Sun-3, and Sun386i machines; contact your local sales representative for more details. Solbourne's extensible C++-based Object Interface Library will be distributed by AT&T [date of availability appx. 6/90]. -------------------------------------------------- 4) Where can I obtain other X sources? User-contributed software is distributed through the newsgroup comp.sources.x, moderated by Dan Heller (argv@sun.com); also check that group for posting information. [Information expected about the Free Widget Library is about to make the following on PDWL out-of-date. In the mean-time ... ] Miles O'Neal of Sales Technologies, Inc., started a Public Domain Widget Library in 11/88. The PDWL is a repository of widgets donated for the use of other X programmers and also of toolkit documentation, widget-writing documentation, better documentation for extant widgets and toolkits, and widget-writing tools. In addition, the PDWL also stores information on commercially available toolkits and other sites from which public-domain widget-related and X-related stuff may be obtained. It is a place for non-commercial stuff not readily available elsewhere. You can access the PDWL by sending electronic mail to the account gatech!stiatl!xwidgets. Send a Subject line of 'help' to obtain more information on retrieving widgets and on submitting sources. The machine expo.lcs.mit.edu has a great deal of user-contributed software in the contrib/ directory; a good deal of it is present in current or earlier versions on the X11R3 and X11R4 contrib tapes. There is a new directory contrib/R4fixes/ for fixes to R4 contrib software. [Jim Fulton, 2/90] The material on giza.cis.ohio-state.edu, which tends to duplicate the expo archives, is also available via anonymous UUCP from osu-cis, at TB+ and V.32 speeds. Write to uucp@cis.ohio-state.edu (same as osu-cis!uucp) for instructions. [the archive is now maintained by Karl Kleinpaste] A new west-coast UUCP X11 Archive is administered by Mark Snitily (mark@zok.uucp) and contains the full X11R4 distribution, the XTEST distribution, an entire archive of comp.sources.x and other goodies. The machine zok has a TB+ modem which will connect to 19.2K, 2400, 1200 baud (in that order). The anonymous UUCP account is UXarch with password Xgoodies. The modem's phone number is 408-996-8285. A sample Systems (or L.sys) entry might be: zok Any ACU 19200 4089968285 in:--in: UXarch word: Xgoodies To get a current listing of the files that are available, download the file "/usrX/ls-lR.Z". A full subject index of the comp.sources.x files is available in the file "/usrX/comp.sources.x/INDEX". The machine has just the one modem, so please do not fetch large amounts of data at one sitting. [courtesy Mark Snitily, 2/90] FTP sites and software available (list as of X11R3; also see above): brazos.rice.edu 128.42.42.2 pub/X11R3/core.src charon.mit.edu 18.80.0.13 perl+patches, xdvi cs.purdue.edu 128.10.2.1 rcs,xspeed j.cc.purdue.edu 128.210.0.3 comp.sources.{unix,x,amiga}, elm, uupc nl.cs.cmu.edu 128.2.222.56 Fuzzy Pixmap 0.84 in /usr/mlm/ftp shambhala.berkeley.edu 128.32.132.54 xrn terminator.cc.umich.edu 35.1.33.8 xscheme, msdos, atari cayuga.cs.rochester.edu 192.5.53.209 Xfig,LaTeX styles,Jove cfdl.larc.nasa.gov 128.155.24.55 gnu, rfc, sun, X, ucb, odu, vm cheddar.cs.wisc.edu 128.105.2.113 Common Lisp stuff, X11 courier fonts cs.orst.edu 128.193.32.1 Xlisp dinorah.wustl.edu 128.252.118.101 X11R3/core.src expo.lcs.mit.edu 18.30.0.212 a home of X, portable bitmaps gatekeeper.dec.com 128.45.9.52 X11,etc... giza.cis.ohio-state.edu 128.146.8.61 miscellaneous similar to expo hotel.cis.ksu.edu 129.130.10.12 XBBS, msdos, U3G toolkit icarus.riacs.edu 128.102.64.1 SLIP, chkpt, macdump, Xpostit interviews.stanford.edu 36.22.0.175 InterViews X toolkit jpl-mil.jpl.nasa.gov 128.149.1.101 Tex, Mac, Gnu, Xv11R{2,3} m9-520-1.mit.edu 18.80.0.45 Xim (X image viewer) mordred.cs.purdue.edu 128.10.2.2 X11R3 polyslo.calpoly.edu 129.65.17.1 src/spaceout.tar.Z for X11 scam.berkeley.edu 128.32.138.1 X sources, etc. sun.soe.clarkson.edu 128.153.12.3 X11 fonts, TeX think.com 10.4.0.6 X11.2 Interviews 3d vaxa.isi.edu 128.9.0.33 X, db wheaties.ai.mit.edu 128.52.32.13 "tX11" xanth.cs.odu.edu 128.82.8.1 comp.srcs.{x,unix,misc,games,amiga},X [This is from a file posted in early July 1989 and is attributable to Edward Vielmetti (emv@math.lsa.umich.edu) and Jon Granrose (odin@pilot.njin.net). This list does need updating; help is invited.] In addition, UUNET Source Archives (703-876-5050) tracks comp.sources.x and provides 600MB+ of compressed programs on two 6250 bpi or five 1/4" tapes. -------------------------------------------------- 5) What is the xstuff mail-archive? The xstuff server is a mail-response program. That means that you mail it a request, and it mails back the response. Any of the four possible commands must be the first word on a line. The xstuff server reads your entire message before it does anything, so you can have several different commands in a single message (unless you ask for help). The xstuff server treats the "Subject:" header line just like any other line of the message. The archives are organized into a series of directories and subdirectories. Each directory has an index, and each subdirectory has an index. The top-level index gives you an overview of what is in the subdirectories, and the index for each subdirectory tells you what is in it. 1) The command "help" or "send help" causes the server to send you a more detailed version of this help file. 2) if your message contains a line whose first word is "index", then the server will send you the top-level index of the contents of the archive. If there are other words on that line that match the name of subdirectories, then the indexes for those subdirectories are sent instead of the top-level index. For example, you can say "send index fixes" (or "index fixes"). A message that requests an index cannot request data. 3) if your message contains a line whose first word is "send", then the xstuff server will send you the item(s) named on the rest of the line. To name an item, you give its directory and its name. For example send fixes 1 3 4 You may issue multiple send requests. The xstuff server contains many safeguards to ensure that it is not monopolized by people asking for large amounts of data. The mailer is set up so that it will send no more than a fixed amount of data each day. If the work queue contains more requests than the day's quota, then the unsent files will not be processed until the next day. Whenever the mailer is run to send its day's quota, it sends the requests out shortest-first. 4) Some mailers produce mail headers that are unusable for extracting return addresses. If you use such a mailer, you won't get any response. If you happen to know an explicit path, you can include a line like path foo%bar.bitnet@mitvma.mit.edu or path bar!foo!frotz in the body of your message, and the daemon will use it. The xstuff server itself can be reached at xstuff@expo.lcs.mit.edu. If your mailer deals in "!" notation, try sending to {someplace}!eddie!expo.lcs.mit.edu!xstuff. [based on information from the MIT X Consortium, 8/89, 4/90.] -------------------------------------------------- 6) Where can I obtain patches to X11R4? The xstuff server now has eleven patches for X11R4 [5/90]. Send to xstuff@expo.lcs.mit.edu the Subject line send fixes # where # are numbers in the range of 1 to 11 (e.g. `send fixes 1 3 5 7 8 10`). Patches are typically also distributed through the newsgroup comp.sources.x, with some lagtime. Some source re-sellers may be including patches in their source distributions of X11R4. -------------------------------------------------- 7) Where can I find books and articles on X that are good for beginners? Ken Lee of the DEC Western Software Laboratory (klee@wsl.dec.com) regularly posts to comp.windows.x and ba.windows.x a list of reference books and articles on X and X programming. Here is an unordered set of useful reference books and tutorials, most of which appear on that list [comments are gathered from a variety of places and are unattributable]: Jones, Oliver, "Introduction to the X Window System," Prentice Hall, 1989. A fine introduction to programming with Xlib; fairly good background to the X protocol; nice discussion of Xlib, the X library. ISBN 0-13-499997-5. Young, Doug. "The X Window System: Applications and Programming with Xt (Motif Version)," Prentice Hall, 1989 (ISBN 0-13-497074-8). The excellent tutorial "X Window Systems Programming and Applications with Xt," (ISBN 0-13-972167-3) updated for Motif. [The examples from the Motif version are available on expo in ~ftp/contrib/young.motif.tar.Z] Scheifler, Robert, James Gettys, and Ron Newman, "X Window System: C Library and Protocol Reference," Digital Press, 1988. The bible on X. This is the most complete published description of the X programming interface and X protocol. It should not be one's first book on X, though. ISBN 1-55558-012-2. DP order number EY-6737E-DP. Nye, Adrian, "Xlib Programming Manual, Volume 1" and "Xlib Reference Manual, Volume 2," O'Reilly and Associates, 1988. A superset of the MIT X documentation; the first volume is a tutorial with broad coverage of Xlib, and the second contains reference pages for Xlib functions and many useful reference appendices. ISBN 0-937175-26-9 (volume 1) and ISBN 0-937175-27-7 (volume 2). [A version updated for X11R4 is available (4/90).] Nye, Adrian, and Tim O'Reilly, "X Toolkit Programming Manual, Volume 4," O'Reilly and Associates, 1989. The folks at O'Reilly give their comprehensive treatment to programming with the MIT X11R3 Intrinsics; some information on X11R4 is included. O'Reilly, Tim, ed., "X Toolkit Reference Manual, Volume 5," O'Reilly and Associates, 1989. A professional reference manual for the MIT X11R3 Xt; some information on X11R4 is included. Rosenthal, David S.H., "Inter-Client Communication Conventions Manual Version 1.0 (MIT Consortium Standard)." The first real ICCCM, available on the R4 tape; a version is also available from the xstuff mail-archive-server. (Prentice-Hall ordering is 201-767-5937. O'Reilly ordering is 800-338-NUTS.) In addition, check the X11R4 core distribution in doc/tutorials for some useful papers and tutorials, particularly the file doc/tutorials/answers.txt. "Late Night's Top Ten X11 Questions" by Dave Lemke (lemke@ncd.com) and Stuart Marks (smarks@sun.com) answers other common questions and some of these here in more detail. -------------------------------------------------- 8) What courses on X are available? Advanced Computing Environments periodically offers at least a two-day Introduction course. Contact Susie Karlson at 415-941-3399 for information. Communica Software Consultants offers three-day hands-on courses in X designed for the X Window system developer and programmer. Contact Nicholas Davias, telephone (08) 232 2626, e-mail nick@manic.communica.oz. [4/90] Integrated Computer Solutions, Inc., offers several multi-day, hands-on courses on X, Xt, and the Xaw and Motif widget sets, in particular. Information is available at 617-547-0510 and info@ics.com. Intelligent Visual Computing teaches several Xt-based lab courses on-site. IVC is at 919-481-1353 or at info@ivc.uu.net. IXI Limited (+44 223 462 131) offers regular X training courses for both programmers and non-technical managers. Lurnix offers 4-day "type-along courses" on Xt; the course is being ported from Xaw to Xm. Information is available at 800-433-9337 (in CA: -9338). Unipalm XTech (+44 (0954) 211862) offers X and Xt courses. Various vendors are also beginning to offer X training, usually specific to Xt and a proprietary widget set; HP and DEC are also offering Xlib courses. Sun offers an XView course. Various universities are offering short X courses or overviews: UCLA, Dartmouth, University of Lowell, University of Canberra (within Australia: 062-522422) ... Among the best places to find courses are at the various Unix conferences -- Uniforum, Usenix, Unix Expo, Xhibition, the MIT X Technical Conference, &c. [additional information to be filled in as received] -------------------------------------------------- 9) Is there a skeleton X program available? There is no general framework such as the TransSkel program for the Macintosh which handles lots of the odds and ends and overhead of development under a window system and which can be used as a platform for additional development. In X, the problem is typically solved by using an interactive application builder tool or by using cut&paste on existing X applications. Good applications which you might look to manipulate when you want to "test just this one little thing" include contrib/clients/xskel, a simple R4 program that puts up a window and allows sketching in it and offers a starting point for quick hacks, the Xaw examples in the examples/ directory in the R3 and R4 distributions, and the Xlib "Hello World" example in the R3 doc/HelloWorld and R4 doc/tutorials/HelloWorld; an updated version of this program which uses R4 Xlib calls and current ICCCM conventions was posted in 2/90 to comp.windows.x by Glenn Widener of Tektronix. [3/90] -------------------------------------------------- 10) What are these common abbreviations? Xt: The X Toolkit Intrinsics is a library layered on Xlib which provides the functionality from which the widget sets are built. An "Xt-based" program is an application which uses one of those widget sets and which uses Intrinsics mechanisms to manipulate the widgets. Xmu: The Xmu library is a collection of Miscellaneous Utility functions useful in building various applications and widgets. Xaw: The Athena Widget Set is the MIT-implemented sample widget set distributed with X11 source since X11R2. Xm: The OSF/Motif widget set from the Open Software Foundation; binary kits are available from many hardware vendors XUI: DEC's X-programmer's toolkit, including a widget set and a high- level widget description language, is being phased out. Xhp (Xw): The Hewlett-Packard Widget Set was originally based on R2++, but several sets of patches exist which bring it up to R3, as it is distributed on the X11R4 tapes. dxwm: The DECwindows window manager is part of DEC's current X release. mwm: The Motif Window Manager is distributed with OSF/Motif source and is available from vendors in binary form. CLX: The Common Lisp X Interface is a Common Lisp equivalent to Xlib. XDMCP: The X Display Manager Protocol provides a uniform mechanism for a display such as an X terminal to request login service from a remote host. XLFD: The X Logical Font Description Conventions describes a standard logical font description and conventions to be used by clients so that they can query and access those resources. ICCCM: The Inter-Client Communication Conventions Manual explains the set of standard conventions which X clients should follow to allow them to cooperate in the areas of selections, cut buffers, window management, session management, and resources. The latest version is on the X11R4 tape. RTFM: Common expert-speak meaning "please locate and consult the relevant documentation -- Read the Manual" UTSL: A common expression meaning "take advantage of the fact that you aren't limited by a binary license -- Use The Source, Luke". -------------------------------------------------- 11) What is XUG? The X User's Group was formed in January of 1988. Its purpose is to encourage X development by providing information on the X Window System to all who are interested. - Local Area Groups: [this list is in the process of being updated]: Bay Area Jim Turner, 415/960-0123 Boston Mitch Trachtenberg, 617/621-8700 Cleveland Mike Kolberg, 216/243-1198 New York City #TBC# Princeton, NJ Joe Camaratta, 609/734-6500 Research Triangle Park Steven Thiedke, 919/481-1353 Washington, DC Thomas Fagre, 703/866-7425 Rocky Mountain Jim West, 719/260-3463 England Ray Anderson, +44 223 462131 France Daniel Dardailler, +33 93 65 77 71 Singapore Chee Keong Law, 772-3116 Milan Richard Glover, (39) 961-743-486 - XNextEvent: the several-times-yearly newsletter includes articles of general interest. To join, form a local group, contribute to XNextEvent, or help out in any other way, contact Alex Fisher at XUG, c/o Integrated Computer Solutions, 163 Harvard Street, Cambridge, MA 02139, 617/547-0634, or email to xug@expo.lcs.mit.edu (please make sure to include a return address, particularly if you connect to the world via a UUCP connection). Note that this address is not a mail server. [Note also that XUG does not currently send this list via email to a mailing list, though individual requests will be answered.] -------------------------------------------------- 12) What is EXUG? The European X User Group was formed in 1989 to represent X users in Europe. It holds technical conferences at regular intervals, the next one being a three-day conference at the University of Surrey, England, September 24-26. The EXUG also publishes a regular newsletter which is distributed free of charge to members. The EXUG also runs a email mailing list for members which is frequently used to address issues of European interest in X. The EXUG can be contacted by email at: exug@unipalm.uucp or by snail mail at: The EXUG, Mitchell House, 185 High Street, Cottenham, Cambridge CB4 4RX, England; phone +44 954 211860. [from Bevis King (brwk@doc.ic.ac.uk), 4/90] -------------------------------------------------- 13) What is the X Consortium and how do I join? The MIT X Consortium was formed in January of 1988 to further the development of the X Window System and has as its major goal the promotion of cooperation within the computer industry in the creation of standard software interfaces at all layers in the X Window System environment. MIT's role is to provide the vendor-neutral architectural and administrative leadership required to make this work. Membership in the Consortium open to any organization. There are two categories of membership, Member (for large organizations) and Affiliate (for smaller organizations). Most of the Consortium's activities take place via electronic mail, with meetings when required. As designs and specifications take shape, interest groups are formed from experts in the participating organizations. Typically a small multi-organization architecture team leads the design, with others acting as close observers and reviewers. Once a complete specification is produced, it may be submitted for formal technical review by the Consortium as a proposed standard. The standards process typically includes public review (outside the Consortium) and a demonstration of proof of concept. Your involvment in the public review process or as a Member or Affiliate of the Consortium is welcomed. Write to: Bob Scheifler, MIT X Consortium, Laboratory for Computer Science, 545 Technology Square, Cambridge, MA 02139. [For complete information see the XCONSORTIUM man page from the X11R4 distribution, from which this information is adapted.] [2/90] -------------------------------------------------- 14) What is xpert? The xpert mailing list is the general, public mailing list on X maintained by the X Consortium. The mailings are gatewayed, so xpert is almost identical to the comp.windows.x Usenet newgroup. *** If you get comp.windows.x, you don't need to *** *** be added to the xpert mailing list. *** Otherwise, you can join the list to receive X information electronically. It is best to find a local distribution; perhaps someone within your company is already receiving the mailing. As a last resort, send mail to xpert-request@expo.lcs.mit.edu with a valid return electronic address. -------------------------------------------------- 15) What conferences on X are coming up? The next European X User Group Conference is a three-day affair at the University of Surrey, England, September 24-26. Papers are invited on these topics: server technology, server extensions, applications, user interfaces, graphics, user inexperiences, network support, standardization efforts. There is an associated vendor show. Information: +44 954 211860 or exug90@unipalm.co.uk. The MIT Technical Conference is typically held in January in Boston, mostly for historical reasons. Information: +1 617 253 8861. The Xhibition 91 X trade show and conference, with tutorials, panels, presentations, and vendor exhibits, will probably be held in San Jose, June 2-7. Information: +1 617 547 0510. Other trade shows -- UnixExpo, Uniforum, Siggraph -- show an increasing presence of X, including tutorials and exhibits. -------------------------------------------------- 16) What is the current state of the world in X terminals? Here is a selection of vendors with "impressions of consensus opinions". Acer (408-922-0333) has the Xebra 1000, based on an 8086 cpu, with a 640x480 monochrome screen. "Low performance." "May not be sold anymore." AT&T's (800-247-1212; ask for local dealer) 730X has a 1Kx1K b/w display with a 1:1 aspect ratio. The terminal supports multiple Telnet sessions and AT&T windowing in addition to X. [Starlan only.] "Very, very nice." C. Itoh (714-660-1421; also 800-347-2484) produces the CIT-X Network Display Station based on a 12.5MHZ 68301 main processor with a 34010 graphics processor. "C. Itoh may pull out of the business." DEC (800-343-4040) offers the VT1000, a home-brew 15" 1024x864 monochrome terminal using the TI 34010. "Digital has it now?" Gipsi S.A. (+33 (1) 30.60.75.00 or Jeff Abramatic at jfa@gipsi.fr) in 10/89 announced "le tX", a line of 68030-based X terminals running X11R3. High-end models, at least, feature downloadable X servers. Model Memory Resolution Display Refresh (Hz) Price (FF) M 2 MB 1280x960x1 19" B&W 66 32 400 Me 2 MB 1280x960x2 19" Greyscale 66 38 000 C4 2 MB 1280x768x4 16" Colour 60 59 900 C8 4 MB 1280x1024x8 19" Colour 60 79 400 Expansion is up to 8MB and 8 planes. The exclusive US distributor is Peripheral Design, Inc (404-263-0067). "Looks fairly nice; shouldn't be overlooked." GraphOn (800-472-7466) OptimaX 200 runs a server on the host which translates from X protocol to a proprietary protocol which can run over a serial line. The screen is 14". The terminal is based on a 12MHz 68000. (See the December 1989 issue of XNextEvent for an informal review.) "Best available solution for RS232C lines." HP (800-752-0900; ask for nearest sales office) offers the 700/X series of terminals using on the TI 34010. Bit-mapped graphics monitors with resolutions of 640x480, 800x600, and 1024x768 are supported. All units come standard with 1 Mbyte of RAM expandable up to 4 Mbytes and display 16 colors from a palette of 4096 or up to 16 levels of gray-scale. (They can be converted into workstations.) Human Design Systems (800-437-1551) offers several combinations of 14", 16", and 19" color, grey-scale, and mono screens, at least 1Kx1K. All support thin and thick Ethernet. High-end models are expandable to 8.5MB. "Slow." IBM's Xstation 120 starts with 512KB of memory and features support for simultaneous Token-Ring and Ethernet connections. [2/90] AGE (619-565-7373) has software that allows it to work with Suns, RTs, and DECstations as well as the IBM Powerstation machines. Jupiter Systems (415-523-9000, 508-836-4400) produces the Model 310 which features a 19-inch 1280x1024 color monitor. "A price leader, but also a performance leader." The Model 410 has a 19", 1280x1024 monitor and offers a large palette and high memory expansion. [5/90] Micronics (415-651-2300) offers the MaxTerm, based on a 25MHz 80386 and featuring a 19", 1280x1024 screen. The MaxTerm offers virtual memory. [5/90] Network Computing Devices (415-694-0650) offers several terminals. The NCD16 has a 1Kx1K 16" square display, a 12.5MHz 68000, a non-optical mouse, a DEC-influenced keyboard, and an X11R3 server. The base configuration comes with 1.5M memory. There is an option for down-loading the server into RAM. There is also a 19" version with 1280x1024 resolution. The new 17c is an 8-bit color 1024x768 display. "Nice engineers' terminals." NCR (513-445-2033) offers the Towerview with 1024x840 resolution and a PROM-based server. The Towerview supports serial connections. Fonts are down-loaded. The XL15 and XL19 have 15", 1024x800 and 19", 1280x1024 displays, respectively. "Seems to be designed for the PC office." NCR has recently [5/90] added a series of color terminals to its line; the terminals use a 68020 and a TI34010 for low-level graphics. Offerings include a 14", 800x600 terminal, one at 17" and 1024x768, and one at 19" and 1024x768. Northwest Digital Systems (206-524-0014). Princeton Graphic Systems (800-221-1490) has introduced the Ultra X line with monochrome up to 1024x768 and color up to 1024x1280, expandable to 8MB. Qume (408-942-4000) has announced an X terminal called the QXT 10 X. Samsung Software America has introduced the SGS-19, offering a 19", 1280x1024 display; it is based on the RISC Am29000. [5/90] "VERY fast mono." Spectragraphics (619-450-0611) offers an X terminal with emulation for the IBM 3270 and related terminals. Tektronix (203-877-1494; or Rick Kamp rickka@orca.WV.tek.com) offers the Model 4211 Graphics Netstation using the TI 34010 graphics processor. The 15" screen is 1024x768 color. The XN11 is a PseudoColor device with up to 8 planes. The 16" and 19" monitors have the 1024x768 resolution. There is also an XN10, which features a 19", 1024x768 color monitor. Visual Technology (800-VISUALC; MA 508-836-4400) offers three models of terminals: Model Resolution Processor Refresh ----- ---------- --------- ------- X15 (15" screen) 1024 x 800 16.6 MHz 68000 76 Hz X19+(19" screen) 1152 x 900 ("Sun" standard) 16.6 MHz 68000 72 Hz X19Turbo 1280 x 1024 20 MHz 68020 72 Hz The X15 and X19+ offer optimized monochrome graphics at advanced processor speeds, with 1 - 4M RAM. The X19Turbo offers optimized monochrome graphics, with 2 - 8M RAM and the option for grayscale expansion. The X19Turbo offers hardware-assisted grayscale drawing. "Good low-cost-per-seat performance stations." [5/90] Digital Review's 2/26/90 issue evaluates a subset of these terminals. Corrections are in the 3/5 issue, p.4. A rebuttal from Jupiter appears 3/19. Digital News' 4/16/90 issue evaluates a subset of these terminals. [Note to vendors, in particular: it is becoming difficult to keep up with the introduction of new models. Any updates to the above?] -------------------------------------------------- 17) How can I get an X server on a PC? Locus Computing (800-955-6287; CA: 213-670-6500; UK: +44 296 89911) has a server called PC-Xsight which also appears in Acer's X terminal. HP (800-752-0900) has the "HP Accelerated X Window Display Server" (HP AXDS/PC; HP part D2300B) which will run on any AT-class DOS machine with 640KB, MSDOS 3.1 or higher, and the HP Intelligent Graphics Controller 10 card, to which the X11R3-based server is downloaded (avoiding performance-limitations from PC RAM-size and processor speed). [from John Kempff (kempff@hppad.hp.com), 3/90] Graphic Software Systems (GSS) (503-641-2200) makes PC-Xview, an MSDOS-based X server which interfaces with PC/TCP Plus networking software from FTP Software and Excelan's LAN WorkPlace for DOS. The server works with (a) 286, 386, 486 (b) EGA, VGA, DGIS displays. (c) DOS 3.2 and above (d) Microsoft, Logitech, Mouse Systems Mice (e) 640k memory up to 16 MB memory [the PC-Xview/16 is available for PCs with extended memory]. VisionWare's XVision is a Microsoft Windows-based X server which allows an IBM-compatible PC or PS/2 to display X clients running on a networked computer at the same time as local DOS programs. VisionWare is at 612-377-3627 or vision@vware.mn.org (UK: +44 532 788858 and vware@vision.uucp). Integrated Inference Machines (714-978-6201 or -6776) is shipping X11/AT, an X server that runs under MS-windows. The server converts an IBM-AT into an X terminal which can simultaneously run MS-DOS and Microsoft Windows applications. IBM is rumored to offer a product; part #5709-029. Hummingbird Communications (Canada 416-470-1203) produces the HCL-eXceed and HCL-eXceed Plus for EGA, VGA, and VGA+ controllers. Information Network Solutions also offers a product called HCL-eXceed for the *86. The fax is 02-4122079 inside Australia, 612-4122079 from overseas. PC DECwindows a.k.a. the PC DECwindows Display Facility is an MS-DOS application that turns your PC into an X11R3 terminal. It supports DECnet. Available from DEC. [Dennis Giokas (giokas@mosaic.enet.dec.com), 3/90] AGE (619-565-7373) offers the XoftWare TIGA. Bell Technologies (Fremont, CA: 415-659-9097) Intelligent Decisions, Inc. (Sunnyvale, CA: 408-734-3730) Pericom's TeemTalk-X for IBM clones allows toggling between X and DOS. Information: +44 (0908) 560022. [5/90] -------------------------------------------------- 18) What terminal emulators other than xterm are available? Grafpoint's TGRAF-X provides emulation of the Tektronix 41xx and 42xx series. Information: 408-446-1919. [5/90] IXI's X.deskterm, a package for integrating character-based applications into an X environment, includes a number of terminal-emulation modules. Information: +44 (0223) 462131. [5/90] Pericom produces Teem-X, a set of several emulation packages for a number of Tek, DEC, Westward, and Data General terminals. The software runs on Sun 3, Sun 4, Apollo, DEC, ISC, IBM/AIX. Information: US: 609-895-0404, UK: +44 (0908) 560022. [5/90] -------------------------------------------------- 19) How can I get an X server on a Macintosh running MacOS? eXodus from White Pine Software (603-886-9050) runs on any Mac with at least 1MB of memory and runs the X server within a standard Macintosh window. eXodus II uses the math co-processor and other features of high-end Macs. [info current as of 6/89] Version 2.0 supports DECwindows colors, fonts, and cursors, and session management, and supports color and multiple screens. [5/90] Apple's MacX runs on MacPlus or newer machines with >= 2MB of memory and system software 6.0.4 or later. It is an "X11R3.5" server that includes support for an optional built-in ICCCM-compliant window manager, X11R4 fonts and colors, a built-in BDF font compiler, and built-in standard colormaps, and it supports the X11R4 notion "all visuals that make sense" for color displays. Available 1Q90. [courtesy Alan Mimms (alan@apple.com], 3/90] "X for the rest of us." -------------------------------------------------- 20) Where can I obtain an X-based editor or word-processor? You can ftp the latest version of emacs, including X11 support, from prep.ai.mit.edu [18.71.0.38]. The file you probably want is ~ftp/pub/gnu/emacs-18.55.tar.Z, or similarly-named files. Epoch is a modified version of Gnu Emacs with additional facilities useful in an X environment. Epoch is available by anonymous ftp from cs.uiuc.edu (128.174.252.1), in the directory pub/epoch-files. There are two subdirectories: epoch contains the epoch source, and gwm contains the source to the programmable window manager GWM, with which epoch works well. The Andrew system on the X11R4 tape has been described as one of the best word-processing packages available. It supports word processing with multi-media embedded objects: rasters, tables/spread sheets, drawings, style editor, application builder, embedded programming language, &c. [Fred Hansen (wjh+@ANDREW.CMU.EDU)] In addition: FrameMaker and FrameWriter are available as X-based binary products for several machines. Frame is at 800-843-7263 (CA: 408-433-3311). InDepthEdit is available from Non Standard Logics (+33 (1) 43 36 77 50). DECwrite is available from DEC for some DEC hardware and SunWrite is available from Sun. IslandWrite will soon be available from Island Graphics (415-491-1000) for some HP & Apollo platforms. Interleaf is currently available from Interleaf (800-241-7700, MA: 617-577-9800) on all Sun and DEC platforms; others are under development. The Alis office-productivity tool from Applix (1-800-8APPLIX, MA: 508-870-0300) includes a multi-font WYSIWG document composer; for several systems. ArborText, Inc. provides an X11 version of its Electronic Publishing program called "The Publisher". The Publisher is available on Sun, HP and Apollo workstations. Contact Arbortext at 313-996-3566. [5/90] -------------------------------------------------- 21) Where can I obtain an X-based paint/draw program? xpic is an object-oriented drawing program. It supports multiple font styles and sizes and variable line widths; there are no rotations or zooms. xpic is quite suitable as an interactive front-end to pic, though the xpic-format produced can be converted into PostScript. (The latest version is on the R4 contrib tape in clients/xpic.) xfig is an object-oriented drawing program supporting compound objects. The text-handling is limited. The xfig-format can be converted in PostScript or other formats. One version is on the R4 contrib tape in clients/xfig; it is one of the several 'xfig' programs which several groups independently developed parallel versions of from the R3 xfig. idraw 2.5 supports numerous fonts and various line styles and arbitrary rotations. It supports zoom and scroll and color draws and fills. On the R4 tape; see also interviews-request@interviews.stanford.edu. [courtesy Jim Helman (jim@kaos.Stanford.EDU) 7/89; some comments added by XUG] In addition: dxpaint is a bitmap-oriented drawing program most like MacPaint; it's good for use by artists but commonly held to be bad for drawing figures or drafting. dxpaint is part of the Ultrix 3.x release. FrameMaker has some draw capabilities. [4/90] ArborText (313-996-3566) offers PubDraw, an X11-based drawing program, on Sun, HP and Apollo workstations. -------------------------------------------------- 22) Where can I obtain an X-based spreadsheet? Vendor Product Phone ------ ------- ----- Access Technology 20/20 (508) 655-9191 Informix WingZ (800) 331-1763 Quality Software Products Q-Calc/eXclaim 800-628-3999 (CA:213-410-0303) Unipress Q-Calc (201) 985-8000 Uniplex Uniplex (214) 717-0068, (800) 356-8063 [above from Walter E. Gillett (gillett@AI.MIT.EDU)] Digital DECdecision 1-800-DIGITAL BBN Software Products BBN/Slate 617-873-3984 (Scott Richardson) (the product includes WordProcessing, Spreadsheet, Graphics, Image Processing, Foreign Language WordProcessing, Electronic Mail, and Elecronic Conferencing) The Alis office-productivity tool from Applix (1-800-8APPLIX, MA: 508-870-0300) includes a spreadsheet. -------------------------------------------------- 23) Where can I get a PostScript previewer for X? xps is available from almost everywhere that the X11 contributed source can be found. The version currently on expo is based on Crispin Goswell's PostScript interpreter with fixes and speedups by John Myers and Barry Shein and an X11 driver by Terry Weissman. There are known problems with fonts. The package is good for lowering the edit-print-edit cycle in experimenting with particular PostScript effects. Ghostscript is distributed by the Free Software Foundation (617-876-3296) and includes a PostScript interpreter and a library of graphics primitives. The README for the current version, 1.3, points out that it doesn't take advantage of many of the facilities offered by X but that this is intended to change in the future. The software can probably be found on prep.ai.mit.edu. A 1.4beta may be found on uunet. [2/90] In addition: ScriptWorks is Harlequin's software package for previewing and printing PostScript(R) descriptions of text and graphics images; previewers for X are available. For information call +44-223-872522 or send email to scriptworks-request@uk.co.harlqn. Digital's dxpsview runs on UWS 2.1 and 2.2. Sun's pageview runs with the X11/NeWS server. -------------------------------------------------- 24) Where can I get a troff previewer for X? X11R4 has two previewers for device-independent troff: the supported client xditview, and the contributed-but-well-maintained xtroff. An earlier version of xtroff also appeared on the R3 contributed source. In addition: Elan Computer Group (CA: 415-964-2200) produces eroff, a modified troff implementation, and Elan/Express, an X11 eroff previewer (misleadingly) labeled "WYSIWYG". SoftQuad (416-963-8337; USA only 800-387-2777, mail@sq.uu.net or mail@sq.com) offers SoftQuad Publishing Software, including a substantially- rewritten troff formatter, a better intermediate language with backwards compatibility, and an X11[R3,R4] previewer. (This is the package adopted by AT&T's own MIS department, and used in and re-sold by many parts of AT&T). [information from Ian Darwin, SoftQuad (ian@sq.com) 3/90] Image Network (1-800-TOXROFF; CA: 415-967-0542) has the 'xroff' package, which includes a fine modified troff implementation and a set of X11-based page previewers. (This is the package OEM'ed by several hardware vendors.) [mostly courtesy moraes@cs.toronto.edu (Mark Moraes)] [2/90] -------------------------------------------------- 25) How do I convert Mac/TIFF/GIF/Sun/PICT/Face/img/FAX/etc images to X? The likeliest program is an incarnation of Jef Poskanzer's useful++ Portable Bitmap Toolkit, which includes a number of programs for converting among various image formats. It includes support for many types of bitmaps, gray-scale images, and full-color images. The latest version, PBMPLUS, was posted to the net about 11/22/89; it is also on the R4 tape under contrib/clients/pbmplus. The package has been independently updated to support XPM images for pixmaps. Useful for viewing some image-formats is Jim Frost's xloadimage, a version of which is in the R4 directory contrib/clients/xloadimage. [Both PBMPLUS and xloadimage are under active development; watch for updated versions.] -------------------------------------------------- 26) How do I use an alternate window manager with DEC's session manager? DEC's session manager will start dxwm up by default. To override this, add to your .Xdefaults file something like this line, naming the full pathname: sm.windowManagerName: /usr/bin/X11/your_favorite_wm -------------------------------------------------- 27) How do I build X with gcc? MIT is now using regularly the Free Software Foundation's GNU-CC to build the X distribution and uses gcc-built servers to test performance increases. [These options are gathered from several descriptions of building X with gcc 1.34, 1.35, and 1.36]: Use the options -O -fstrength-reduce -fpcc-struct-return -traditional may also be necessary if your version of gcc is sufficiently old. Do not use -finline-functions, particularly on the R4 server. ---> Make sure to run 'fixincludes' from the gcc distribution ---> before doing anything, or you will get fatal errors such as: ---> xterm: Error 15, errno 25: Inappropriate ioctl for device. HOWEVER, there is a bug in gcc 1.34 and 1.36 (but not in 1.35 or 1.37) which miscompiles things of the form (expr == 0 ? exp1 : exp2). The fix needed in X11R4 (and probably X11R3) is to change the definition of XtNewString in Intrinsic.h to: #define XtNewString(str) \ ((str) != NULL ? (strcpy(XtMalloc((unsigned)strlen(str) + 1), str)) : NULL) A work-around is also in fix-2 to X11R4. -------------------------------------------------- 28) What are these funny problems compiling X11R3 on the Sun4? cc -c -O -I. -I../../include -I../../.././X11 -I../mfb cfbbitblt.c cc: Fatal error in iropt: Illegal instruction (core dumped) Known problems with the Sun4 optimizer render the -O flag unusable on this file. In addition, there is a problem in all of the procedures that return a parameter that was never referenced. Instead of returning the string, the compiler with optimization seems to be returning the last value computed. You can compile lib/Xt/TMparse.c without optimization; alternatively, you can replace the "return str" in various routines to use that parameter [courtesy of Jim Fulton, MIT X Consortium]: #ifdef sparc /* * The silly optimizer in SunOS 4.0.3 and below generates bogus code that * causes the value of the most recently used variable to be returned instead * of the value passed in. */ static String silly_optimizer_kludge; #define BROKEN_OPTIMIZER_HACK(val) silly_optimizer_kludge = (val) #else #define BROKEN_OPTIMIZER_HACK(val) val #endif and have routines end with return BROKEN_OPTIMIZER_HACK(str); Note also that the SPARCstation1 has a bug in its use of -misalign; a fix to cc should be obtained from Sun. -------------------------------------------------- 29) What are these funny problems installing X11R4 on the Sun running SunOS 4? All of the executables that I try to run have the following results: ld.so: libXmu.so.4: not found or even: ld.so: call to undefined procedure __GetHostname from 0xf776a96c If you are building with shared libraries on a Sun, remember that you need to run "ldconfig" as root after installing the shared libraries (if you've installed X on a file-server, run it on the server's clients, too). While building and installing the distribution, you need to be careful to avoid linking against any existing X shared libraries you might have (e.g. those distributed with OpenWindows). You should make sure you do not have LD_LIBRARY_PATH set in your environment during the build or the installation. If you are going to keep xterm and xload as setuid programs, please note that the shared libraries must be installed in /usr/lib or /usr/5lib for these programs to work (or else those programs must be linked statically). [courtesy MIT X Consortium] -------------------------------------------------- 30) Where can I get a fast X server for a workstation? The R4 server should be among the fastest available for most machines. The "Purdue" speedups significantly speed up the X11R3 server. Look on expo.lcs.mit.edu:contrib/Purdue.2.[01]-tar.Z. (You'll also need gcc.) International Quest Corporation (408-988-8289) has an optimized R3 server for Sun3/4/386i under SunOS 4.0 and also an optimized R4 server. Unipalm XTech (+44 954 211244) makes several R3-based and R4-based tuned servers, most notably for Sun 3 and Sun 4. (Note: the original work was inherited from Torch Technology.) Xgraph's Xtool (408-492-9031) is an X server implemented in SunView which boasts impressive results on Sun 3 and SPARC systems; caveats include possible non-conformance to the Protocol. [5/90] Several companies are making hardware accellerator boards: Dupont Pixel Systems (302-992-6911), for Sun. Megatek's (619-455-5590) X-cellerator board for the Sun 3 and Sun 4 is based on the TI 34020; the company claims performance improvements of 5x to 10x over the sample X11R3 server. -------------------------------------------------- 31) How can I change the titlebar of my xterm window? The solution involves sending an escape sequence to xterm which will cause it to update the property which the window manager relies upon for the string which appears in the window titlebar. A solution is as easy as typing this in an xterm running a shell: echo "ESC]2;TEXT^G" where ESC is the escape key, TEXT is the string you wish to have displayed, and ^G is a Control-G (the BEL character). Here is a more complicated csh alias which changes the titlebar to the current working directory when you change directories: alias newcd 'cd \!* ; echo ESC]2\;$cwd^G' The digit '2' in these strings indicates to xterm that it should change only the title of the window; to change both the title and the name used in the icon, use the digit '0' instead, and use '1' to change only the icon name. [For more information, see the article by Skip Montanaro of GE CR&D on Xterm control sequences in the December 1989 XNextEvent.] -------------------------------------------------- 32) Why doesn't anything appear when I run this simple program? > ... > the_window = XCreateSimpleWindow(the_display, > root_window,size_hints.x,size_hints.y, > size_hints.width,size_hints.height,BORDER_WIDTH, > BlackPixel(the_display,the_screen), > WhitePixel(the_display,the_screen)); > ... > XSelectInput(the_display,the_window,ExposureMask|ButtonPressMask| > ButtonReleaseMask); > XMapWindow(the_display,the_window); > ... > XDrawLine(the_display,the_window,the_GC,5,5,100,100); > ... You are right to map the window before drawing into it. However, the window is not ready to be drawn into until it actually appears on the screen -- until your application receives an Expose event. Drawing done before that will generally not appear. You'll see code like this in many programs; this code would appear after window was created and mapped: while (!done) { XNextEvent(the_display,&the_event); switch (the_event.type) { case Expose: /* On expose events, redraw */ XDrawLine(the_display,the_window,the_GC,5,5,100,100); break; ... } } Note that there is a second problem: some X servers don't set up the default graphics context to have reasonable foreground/background colors, and your program should not assume that the server does, so this program could previously include this code to prevent the case of having the foreground and background colors the same: ... the_GC_values.foreground=BlackPixel(the_display,the_screen); /* e.g. */ the_GC_values.background=WhitePixel(the_display,the_screen); /* e.g. */ the_GC = XCreateGC(the_display,the_window, GCForeground|GCBackground,&the_GC_values); ... Note: the code uses BlackPixel and WhitePixel to avoid assuming that 1 is black and 0 is white or vice-versa. The relationship between pixels 0 and 1 and the colors black and white is implementation-dependent. They may be reversed, or they may not even correspond to black and white at all. -------------------------------------------------- 33) What is the difference between a Screen and a screen? The 'Screen' is an Xlib structure which includes the information about one of the monitors or virtual monitors which a single X display supports. A server can support several independent screens. They are numbered unix:0.0, unix:0.1, unix:0.2, etc; the 'screen' or 'screen_number' is the second digit -- the 0, 1, 2 which can be thought of as an index into the array of available Screens on this particular Display connection. The macros which you can use to obtain information about the particular Screen on which your application is running typically have two forms -- one which takes a Screen and one with takes both the Display and the screen_number. In Xt-based programs, you typically use XtScreen(widget) to determine the Screen on which your application is running, if it uses a single screen. (Part of the confusion may arise from the fact that some of the macros which return characteristics of the Screen have "Display" in the names -- XDisplayWidth, XDisplayHeight, etc.) -------------------------------------------------- 34) Why do I get a BadDrawable error drawing to XtWindow(widget)? I'm doing this in order to get a window into which I can do Xlib graphics within my Xt-based program: > canvas = XtCreateManagedWidget ( ...,widgetClass,...) /* drawing area */ > ... > window = XtWindow(canvas); /* get the window associated with the widget */ > ... > XDrawLine (...,window,...); /* produces error */ The window associated with the widget is created as a part of the realization of the widget. Using a window id of NULL ("no window") could create the error that you describe. It is necessary to call XtRealizeWidget() before attempting to use the window associated with a widget. -------------------------------------------------- 35) Can I get a window's background pixel/pixmap using XGetWindowAttributes? No. Once set, the background pixel or pixmap of a window cannot be re-read by clients. The reason for this is that a client can create a pixmap, set it to be the background pixmap of a window, and then free the pixmap. The window keeps this background, but the pixmap itself is destroyed. If you're sure a window has a background pixel (not a pixmap), you can use XClearArea() to clear a region to the background color and then use XGetImage() to read back that pixel. However, this action alters the contents of the window, and it suffers from race conditions with exposures. [courtesy Dave Lemke of NCD and Stuart Marks of Sun] Note that the same applies to the border pixel/pixmap. This is a (mis)feature of the protocol which allows the server is free to manipulate the pixel/pixmap however it wants. By not requiring the server to keep the original pixel or pixmap, some (potentially a lot of) space can be saved. [courtesy Jim Fulton, MIT X Consortium] -------------------------------------------------- 36) Why does the pixmap I copy to the screen show up as garbage? The initial contents of pixmaps are undefined. This means that most servers will allocate the memory and leave around whatever happens to be there -- which is usually garbage. You probably want to clear the pixmap first using XFillRectangle() with a function of GXcopy and a foreground pixel of whatever color you want as your background (or 0L if you are using the pixmap as a mask). [courtesy Dave Lemke of NCD and Stuart Marks of Sun] -------------------------------------------------- 37) Why doesn't my program get the keystrokes I select for? The window manager controls how the input focus is transferred from one window to another. In order to get keystrokes, your program must ask the window manager for the input focus. To do this, you must set up what are called "hints" for the window manager. If your applications is Xlib-based, you can use something like the following: XWMHints wmhints; ... wmhints.flags = InputHint; wmhints.input = True; XSetWMHints(dpy, window, &hints) If your application is based on the Xt Intrinsics, you can set the XtNinput resource to be True (as you probably want to in any case); if you don't have source, you can start up the application with the resource '*input:True'. Certain window managers, notably dxwm, are very picky about having this done. [mostly courtesy Dave Lemke of NCD and Stuart Marks of Sun] -------------------------------------------------- 38) How can my application iconify itself? The ICCCM provides a mechanism for this; your application sends a client message which includes a data value indicating that it wishes to be iconified. Here is a sample callback that will iconify the application shell, wait 3 seconds, and pop it back up. Note that ApplicationShellWidget below is global; it would make more sense in real use to walk up the tree via XtParent() to find the shell containing the active widget. void IconifyShell(w, d1, d2) Widget w; caddr_t d1, d2; { XClientMessageEvent event; Window win; Display *dpy; event.type = ClientMessage; event.send_event = True; dpy = event.display = XtDisplay(w); win = event.window = XtWindow(ApplicationShellWidget); event.message_type = XInternAtom(dpy, "WM_CHANGE_STATE", False); event.format = 32; event.data.l[0] = IconicState; XSendEvent(dpy, DefaultRootWindow(dpy), False, SubstructureRedirectMask | SubstructureNotifyMask, &event); XFlush(dpy); sleep(3); XMapWindow(dpy,win); } [courtesy David Brooks (dbrooks@osf.osf.org), 4/90] -------------------------------------------------- 39) How do I check whether a window ID is valid? My program has the ID of a window on a remote display. I want to check whether the window exists before doing anything with it. Because X is asychronous, there isn't a guarantee that the window would still exist between the time that you got the ID and the time you sent an event to the window or otherwise manipulated it. What you should do is send the event without checking, but install an error handler to catch any BadWindow errors, which would indicate that the window no longer exists. This scheme will work except on the [rare] occasion that the original window has been destroyed and its ID reallocated to another window. [courtesy Ken Lee (klee@wsl.dec.com), 4/90] -------------------------------------------------- 40) Why can't I set the backgroundPixmap resource in my .Xdefaults file? I want to be able to do something like this: xclock*backgroundPixmap: /usr/include/X11/bitmaps/rootweave You can't do this. The backgroundPixmap resource is a pixmap of the same depth as the screen, not a bitmap (which is a pixmap of depth 1). Because of this, writing a generic String to Pixmap converter is impossible, since there is no accepted convention for a file format for pixmaps. Therefore, neither the X Toolkit or the Athena widget set define a String to Pixmap converter; because there is no converter you cannot specify this value as a resource. The Athena widget set does define a String to Bitmap converter for use in many of its widgets, however. [courtesy Chris D. Peterson (kit@expo.lcs.mit.edu), 4/90] [Note: the leading general-purpose format for pixmaps is the XPM format used by Groupe Bull in several of its programs, including the GWM window manager, by AT&T in its olpixmap editor, and by ICS in its interface builder. XPM is being now handled by Richard Hess (rhess@cimshop.uu.net). The XPM distribution, available on expo as contrib/xpm.tar.Z, includes read/write routines which can easily be adapted to converters by new widgets which want to allow specification of pixmap resources in the above manner.] -------------------------------------------------- 41) Why does the R3 xterm, et al, fail against the R4 server? The value given to a window's do_not_propagate mask is the likely culprit. R3 allowed bogus values to be set, and early version of both Andrew and Interviews did, as well. Similar problems also occur in the R3 Motif PanedWindow widget. If it is impossible to fix client source, use 'xset bc' to put the X11R4 server into bug-compatibility mode. -------------------------------------------------- 42) Where can I obtain alternate language bindings to X? Versions of the CLX Lisp bindings are part of the X11R3 and X11R4 core source distributions. The latest version of CLX (R4.1) is available from expo for ftp as contrib/CLX.R4.1.tar.Z [Chris Lindblad (cjl@AI.MIT.EDU), 4/90]; this version fixes bugs reported against the R4 distribution. Ada bindings were written by Mark Nelson and Stephen Hyland at SAIC for the DOD. The bindings can be found on hapo.sei.cmu.edu or on wsmr-simtel20.army.mil and are also in the Ada Software Repository (ASR). R3 bindings should be available by the end of 1/90. [1/90] Prolog bindings (called "XWIP") written by Ted Kim at UCLA while supported in part by DARPA are available by anonymous FTP from expo.lcs.mit.edu:contrib/xwip.tar.Z or ftp.cs.ucla.edu:pub/xwip.tar.Z. These prolog language bindings depend on having a Quintus-type foreign function interface in your prolog. The developer has gotten it to work with Quintus and SICStus prolog. Inquiries should go to xwip@cs.ucla.edu. [3/90] GHG is developing X bindings and a complete Ada re-implementation of X; check Lionel Hanley at 713-488-8806. [4/90] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Sunflash is an electronic mail news service from Sun Microsystems, Ft. Lauderdale, Florida, USA. It is targeted at Sun Users and Customers. As a field sales and support office, we try to keep SunFlash useful and interesting to you. If you have any comments or suggestions for enhancing SunFlash, please send them to us. SunFlash is ditributed via a hierarchy of aliases. Please try to address change requests to the owner of the alias that you belong to. Please address comments to the SunFlash editor John McLaughlin (sun!sunvice!flash or flash@sunvice.East.Sun.COM). (305) 776-7770.