X-windows manual/hints

Ken Lee klee at chico.pa.dec.com
Sat Oct 14 07:31:27 AEST 1989


In article <21148 at adm.BRL.MIL>, bh11+ at andrew.cmu.edu (Braddock John
Hathaway) writes:
> Does anybody out there have advice about what book(s) I should go out
> and buy (or borrow from our library) regarding interfacing with the
> X-window system from a C program?  Does anybody have any advice period?

Here's my bibliography of good X stuff.  It includes books as well as
articles from journals, magazines, and conference proceedings.  I'd
recommend that beginners start with one of Rosenthal's "hello, world"
papers, then use on of the tutorial books for either Xt or Xlib.

Ken
======================== cut here ============================







                    _X _T_E_C_H_N_I_C_A_L
_B_I_B_L_I_O_G_R_A_P_H_Y
                       compiled by Ken Lee
               send updates to klee at decwrl.dec.com




Asente, Paul, "Simplicity and Productivity," _U_N_I_X
_R_e_v_i_e_w, vol. 6,
     no. 9, pp. 57-63.  A discussion on the classing mechanism in
     the X Toolkit.

Baldwin, Howard, "Why All The Shouting Over X Terminals?," _U_N_I_X
     _W_o_r_l_d, _N_e_t_w_o_r_k_i_n_g
_S_u_p_p_l_e_m_e_n_t, pp. 75-81, 1989.  A broad look
     at X terminals, with details on 6 vendor's products.

Brunet, James, "Using PCs at X Servers," _U_N_I_X _W_o_r_l_d,
_N_e_t_w_o_r_k_i_n_g
     _S_u_p_p_l_e_m_e_n_t, pp. 83-85, 1989.  An introduction
to X server
     software for IBM PCs.

Brunet, James, "New Challenge To Character Terminals," _U_N_I_X
     _W_o_r_l_d, pp. 79-83, May, 1989.  Another introduction to X ter-
     minals, including descriptions of 6.

Cashin, Jerry, "Many Struggle to Set Laws of Windows Game,"
     _S_o_f_t_w_a_r_e _M_a_g_a_z_i_n_e, vol. 9, no. 2,
pp. 74-79, February, 1989.
     A description of the players in the window system standards
     war. Includes a photo of Bob Scheifler.

Farrow, Rik, "Before their time?," _U_N_I_X _W_o_r_l_d, pp.
75-81, July,
     1989.  This article describes X terminals in general and
     compares two models. The comparison is, unfortunately, not
     especially meaningful.

Gancarz, M., "UWM:  A User Interface for X Windows," in
_P_r_o_c_e_e_d_-
     _i_n_g_s _o_f _t_h_e _S_u_m_m_e_r, _1_9_8_6
_U_S_E_N_I_X _C_o_n_f_e_r_e_n_c_e, pp. 429-440.
     Describes UWM, the first good window manager for X.

Gettys, Jim, "Problems Implementing Window Systems in UNIX," in
     _P_r_o_c_e_e_d_i_n_g_s _o_f _t_h_e
_W_i_n_t_e_r, _1_9_8_6 _U_S_E_N_I_X
_C_o_n_f_e_r_e_n_c_e, pp. 89-
     97.  Describes some of the early work on X.

Gettys, Jim, "Flexibility Is Key To Meet Requirements For X Win-
     dow System Design," _C_o_m_p_u_t_e_r
_T_e_c_h_n_o_l_o_g_y _R_e_v_i_e_w, pp. 87-89,
     Summer, 1988.  A high level description of the X Window Sys-
     tem.

Hancock, Bill, "DECwindows:  X'ing With A Vengeance," _D_E_C
_P_r_o_f_e_s_-
     _s_i_o_n_a_l, vol. 8, no. 2, pp. 70-84, February, 1989.  A
     description of DECwindows, DEC's product version of X.  It
     includes the standard X libraries, plus a tuned X server, a
     high-level user interface description language, and several
     X applications.










                              - 2 -



Hopgood, F. R. A., _M_e_t_h_o_d_o_l_o_g_y _o_f
_W_i_n_d_o_w _M_a_n_a_g_e_m_e_n_t, Springer-
     Verlag, New York, 1986.  The proceedings of the important
     1985 Alvery Workshop on Window Management. Many of the big
     names apparently were here.  It includes interesting materi-
     al on problems with UNIX window systems and proposed solu-
     tions.  It also includes  descriptions of early versions of
     current UNIX window systems, such as X and NeWS.

Johnson, Eric and Kevin Reichard, _X _W_i_n_d_o_w
_A_p_p_l_i_c_a_t_i_o_n_s _P_r_o_g_r_a_m_-
     _m_i_n_g, MIS: Press.  A tutorial on Xlib programming.  This
     book has lots and lots of examples, but coverage of complex
     subjects is thinner than Jones' book.

Jones, Oliver, _I_n_t_r_o_d_u_c_t_i_o_n _t_o _t_h_e _X
_W_i_n_d_o_w _S_y_s_t_e_m, Prentice-
     Hall, 1988.  An excellent introduction to programming with
     Xlib.  Written with the programmer in mind, this book in-
     cludes many practical tips that are not written anywhere
     else. You'll still need the MIT Xlib manual, as this book
     does not try to be totally complete.  Highly recommended for
     beginning Xlib programmers.

Lee, Ed, "Window of Opportunity," _U_N_I_X _R_e_v_i_e_w, vol.
6, no. 6, pp.
     47-61.  This article proposes a user interface reference
     model and shows how X attempts to meet it.  In the process,
     it presents a good, broad overview of X, its advantages, and
     its shortcomings.

Leffler, Samuel J., "A Window On The Future?," _U_N_I_X
_R_e_v_i_e_w, vol.
     6, no. 6, pp. 62-69.  This article compares NeWS with other
     window systems, such as X, and concludes that, despite its
     problems, NeWS is the window system of the future.

Lemke, David and David S. H. Rosenthal, "Visualizing X11
     Clients," in _P_r_o_c_e_e_d_i_n_g_s _o_f _t_h_e
_W_i_n_t_e_r, _1_9_8_9 _U_S_E_N_I_X _C_o_n_f_e_r_-
     _e_n_c_e, pp. 125-138.  A detailed look at ``visuals'', the X
     object that abstracts the properties of popular display
     hardware.  Proper consideration toward visuals is necessary
     for an X client to work with all hardware supported by X.

Linton, Mark A., John M. Vlissides, and Paul R. Calder, "Compos-
     ing User Interfaces with InterViews," _I_E_E_E
_C_o_m_p_u_t_e_r, vol.
     22, no. 2, pp. 65-84, February, 1989.  Describes the Inter-
     Views user interface toolkit, written in C++ and based on
     the X Window System.  The source code for Interviews is in
     the ``contrib'' section of the X11 distribution.

Macklem, Rick, Jim Linders, and Hugh Smith, "G Shell Environ-
     ment," in _P_r_o_c_e_e_d_i_n_g_s _o_f _t_h_e
_S_u_m_m_e_r, _1_9_8_8 _U_S_E_N_I_X
_C_o_n_f_e_r_e_n_c_e,
     pp. 15-22.  Describes a graphical UNIX shell written as a X
     client.

McCormack, Joel and Paul Asente, "Using the X Toolkit or How to
     Write a Widget," in _P_r_o_c_e_e_d_i_n_g_s _o_f
_t_h_e _S_u_m_m_e_r, _1_9_8_8 _U_S_E_N_I_X
     _C_o_n_f_e_r_e_n_c_e, pp. 1-13.  An excellent tutorial on
writing








                              - 3 -



     basic X Toolkit widgets.  Potential widget writers (and
     maybe users, too) should probably start by reading this pa-
     per. Unfortunately, it's based on X11R2, so some of it is
     out of date.

McCormack, Joel and Paul Asente, "An Overview of the X Toolkit,"
     in _P_r_o_c_e_e_d_i_n_g_s _o_f _t_h_e _A_C_M
_S_I_G_G_R_A_P_H _S_y_m_p_o_s_i_u_m _o_n _U_s_e_r
_I_n_t_e_r_-
     _f_a_c_e _S_o_f_t_w_a_r_e, pp. 46-55, October, 1988. 
An architectural
     overview of the toolkit's goals, how it accomplished them,
     and possible future directions.

McLoughlin, Lee, "A Simple Guide to Porting the X Window System,"
     in _P_r_o_c_e_e_d_i_n_g_s _o_f _E_E_U_G
_S_p_r_i_n_g _1_9_8_9, pp. 283-291, Brussels,
     April 3-7, 1989.  A brief, but good, discussion of the in-
     terface between the X server and the underlying operating
     system.

Morris, Robert R. and William E. Brooks, "Unix Versus OS/2: A
     Graphical Comparison," _P_C _T_e_c_h _J_o_u_r_n_a_l,
vol. 7, no. 2,
     February, 1989.  A comparison of X and Presentation Manager.
     Robert Morris is internationally famous for his work in com-
     puter networking.

Myers, Brad A., "Window Interfaces:  A Taxonomy of Window Manager
     User Interfaces," _I_E_E_E _C_o_m_p_u_t_e_r
_G_r_a_p_h_i_c_s & _A_p_p_l_i_c_a_t_i_o_n_s,
     vol. 8, no. 5, pp. 65-84, September, 1988.  A taxonomy of
     current window system user interfaces, including the X UWM
     window manager.  Discusses and compares the features of each
     user interface. Myers is a well known user interface
     researcher.

Nadeau, David R., "High-Performance 3-D Graphics In A Window En-
     vironment," _C_o_m_p_u_t_e_r _T_e_c_h_n_o_l_o_g_y
_R_e_v_i_e_w, pp. 89-93, Fall,
     1988.  A discussion on integrating Megatek's high-
     performance 3D graphics hardware/software with X.

Nye, Adrian, _T_h_e _X _W_i_n_d_o_w _S_y_s_t_e_m
_S_e_r_i_e_s, _4 _v_o_l_u_m_e_s, O'Reilly and
     Associates, 1988.  This set of books is mostly based on the
     MIT X11R2 manuals. Volume 0 covers the X protocol and is al-
     most identical to the MIT manual. Volume 1 is a tutorial on
     Xlib, which includes some good tutorial material, but is not
     as practical as the Jones book. Volume 2, an Xlib manual in
     man page format, is similar to, but slightly better organ-
     ized than, the MIT man pages. Volume 3 contains man pages
     for some of the popular X clients (window managers, terminal
     emulators, etc.). Future volumes will reportedly cover the X
     Toolkit and Motif. Written by technical writers, these are
     probably the most professional looking of the X books.

Nye, Adrian, "The X Window System Protocol," _U_N_I_X _W_o_r_l_d, pp.
     105-113, September, 1989.  A high-level description of the X
     protocol.










                              - 4 -



O'Reilly, Tim, "The Toolkits (and Politics) of X Windows," _U_N_I_X
     _W_o_r_l_d, vol. 6, no. 2, pp. 66-73, February, 1989.  An intro-
     duction to some of the popular widget sets available for the
     X Toolkit.

Pike, Rob, "Window Systems Should Be Transparent," _U_S_E_N_I_X
_C_o_m_p_u_t_-
     _i_n_g _S_y_s_t_e_m_s, vol. 1, no. 3, pp. 279-296,
Summer, 1988.  Some
     window system user interface guidelines, based on MUX window
     system for the BLIT terminal, with some comparisons to X.
     Contrast this to Myers' paper. Pike is the developer of the
     BLIT.

Pike, Rob, "A Concurrent Window System," _U_S_E_N_I_X
_C_o_m_p_u_t_i_n_g _S_y_s_-
     _t_e_m_s, vol. 2, no. 2, pp. 133-153, Spring, 1989.  A descrip-
     tion of a multi-threaded window system written using a con-
     current programming language.  The design is shown to be
     simpler than the single threaded design of X.

Probst, Richard, "OPEN LOOK Toolkits,"
_S_u_n_T_e_c_h_n_o_l_o_g_y, vol. 1, no.
     4, pp. 76-86, Autumn, 1988.  OPEN LOOK is a user interface
     specification designed by AT&T and Sun. This paper discusses
     OPEN LOOK programming toolkits, including two for the X Win-
     dow System.

Rao, R. and S. Wallace, "The X Toolkit," in
_P_r_o_c_e_e_d_i_n_g_s _o_f _t_h_e
     _S_u_m_m_e_r, _1_9_8_7 _U_S_E_N_I_X
_C_o_n_f_e_r_e_n_c_e.

Rochkind, Marc J., "XVT:  A Virtual Toolkit for Portability
     Between Window Systems," in _P_r_o_c_e_e_d_i_n_g_s
_o_f _t_h_e _W_i_n_t_e_r, _1_9_8_9
     _U_S_E_N_I_X _C_o_n_f_e_r_e_n_c_e, pp. 151-163. 
Describes the Extensible
     Virtual Toolkit (XVT), a user interface toolkit that pro-
     vides a uniform application programming interface to several
     different window systems, while providing the ``look and
     feel'' appropriate for the  window system.  Supported window
     systems include X11, MS-Windows, OS/2 Presentation Manager,
     and the Macintosh.

Rosenthal, David S., "A Simple X.11 Client Program, or, How Hard
     Can It Really Be to Write `Hello, World'?," in
_P_r_o_c_e_e_d_i_n_g_s
     _o_f _t_h_e _W_i_n_t_e_r, _1_9_8_8
_U_S_E_N_I_X _C_o_n_f_e_r_e_n_c_e, pp. 229-235.  A ver-
     sion of the "hello, world" paper, presenting and comparing
     the basics of the X library and the X Toolkit.  All poten-
     tial X programmers (Xlib or X toolkit) should understand
     everything in this paper before they attempt writing any X
     programs.  Included in the MIT X distribution.

Rosenthal, David S., "Going For Baroque," _U_N_I_X
_R_e_v_i_e_w, vol. 6,
     no. 6, pp. 71-79.  Another version of the "hello, world" pa-
     per.

Rost, Randi, Jeffrey Friedberg, and Peter Nishimoto, "PEX:  A
     Network-Transparent 3D Graphics System," _I_E_E_E
_C_o_m_p_u_t_e_r
     _G_r_a_p_h_i_c_s & _A_p_p_l_i_c_a_t_i_o_n_s,
pp. 14-26, July, 1989.  A good
     overview of PEX, the PHIGS extension to X.








                              - 5 -



Rost, Randi J., "Adding a Dimension to X," _U_N_I_X
_R_e_v_i_e_w, vol. 6,
     no. 10, pp. 51-59.  A description of the PEX 3D extension to
     X.

Schaufler, Robin, "X11/NeWS Design Overview," in
_P_r_o_c_e_e_d_i_n_g_s _o_f
     _t_h_e _S_u_m_m_e_r, _1_9_8_8 _U_S_E_N_I_X
_C_o_n_f_e_r_e_n_c_e, pp. 23-35.  Discusses
     Sun's X/NeWS server.  Compares the functionality of X and
     NeWS and describes a server that merges the two.

Scheifler, Robert, James Gettys, and Ron Newman, _X _W_i_n_d_o_w
_S_y_s_t_e_m:
     _C _L_i_b_r_a_r_y _a_n_d _P_r_o_t_o_c_o_l
_R_e_f_e_r_e_n_c_e, DEC Press, 1988.  The Xlib
     bible by the authors of X11.  Includes detailed descriptions
     of the X protocol and all Xlib functions and data struc-
     tures.  Required for all serious Xlib programmers, but may
     be rough going for those with little experience in interac-
     tive computer graphics.  Shipped with the X11R3 tapes.

Scheifler, Robert W. and Jim Gettys, "The X Window System," _A_C_M
     _T_r_a_n_s_a_c_t_i_o_n_s _o_n
_G_r_a_p_h_i_c_s, vol. 5, no. 2, pp. 79-109, April,
     1986.  The first published description of X.  Although it
     discusses X10, it is still one of the most comprehensive
     descriptions of X.  An updated X11 version is reportedly be-
     ing written by Jim Gettys.

Schuman, Evan, "Motif Holds Top Card In GUI Hand," _U_N_I_X
_T_o_d_a_y, p.
     1, July 10, 1989.  Presents the results of a survey of
     software vendors on their preference of Open Look vs. Motif.

Seither, Mike, "Terminal Vendors Stake Out X Window Display Ter-
     ritories," _M_i_n_i-_M_i_c_r_o _S_y_s_t_e_m_s, pp.
24-29, February, 1989.
     An introduction to the rapidly growing X terminal industry,
     including descriptions of terminals from Networking Comput-
     ing Devices, Visual Technologies, Acer Counterpoint, and
     GraphOn.

Swick, Ralph R. and Mark S. Ackerman, "The X Toolkit:  More
     Bricks for Building User Interfaces," in
_P_r_o_c_e_e_d_i_n_g_s _o_f _t_h_e
     _W_i_n_t_e_r, _1_9_8_8 _U_S_E_N_I_X
_C_o_n_f_e_r_e_n_c_e, pp. 221-233.  An introduc-
     tion to the X Toolkit.  Describes the toolkit architecture
     and the basic Athena widgets.

Thomas, Spencer W. and Martin Friedmann, "PEX - A 3-D Extension
     to X Windows," in _P_r_o_c_e_e_d_i_n_g_s _o_f
_t_h_e _W_i_n_t_e_r, _1_9_8_9 _U_S_E_N_I_X
     _C_o_n_f_e_r_e_n_c_e, pp. 139-149.  Describes the
demonstration imple-
     mentation of PEX, the PHIGS/PHIGS+ 3D extension to X.
     Source code for this demonstration is included with X11R3. A
     complete PEX is currently being developed by Sun under con-
     tract to the MIT X Consortium and is scheduled to be publi-
     cally available in 1990.

Young, Doug, _X _W_i_n_d_o_w _S_y_s_t_e_m_s
_P_r_o_g_r_a_m_m_i_n_g _a_n_d
_A_p_p_l_i_c_a_t_i_o_n_s _W_i_t_h
     _X_t, Prentice-Hall.  An excellent tutorial on programming
     with the Xt intrinsics.  Examples in this book use the HP
     widgets, but a Motif is to be released this fall.







Ken Lee
DEC Western Software Laboratory, Palo Alto, Calif.
Internet: klee at decwrl.dec.com
uucp: uunet!decwrl!klee



More information about the Comp.unix.questions mailing list