²Ä¤@¦¸±µÄ² X ªº¤H¡A¤j·§³£·|¦³¨Ç¾_¾Ù¡A¤×¨ä¬O¼ô±x¨ä¥L GUI ¤¶±(¹³¬O Microsoft® Windows® ©Î Mac OS®)ªº¨Ï¥ÎªÌ¡C
ÁöµM X ¦U¤¸¥óªº©Ò¦³²Ó¸`¤Î¹B§@¤è¦¡¡A¨Ã¤£¬O¥²¶·nª¾¹Dªº¡C ¦ý¹ï¥¦Ì¦³¨Ç°ò¥»·§©À·|§ó®e©ö¤W¤â¡C
X ¨Ã«D UNIX® ¤W²Ä¤@®Mµøµ¡¨t²Î¡A¦ý¥¦«o¬O³Ì¼s¬°¬y¶Ç¹B¥Î¡C 쥻ªº X ¬ãµo¹Î¶¤¦b¬ãµo X ¤§«e¦³¶}µo¥t¤@®Mµøµ¡¨t²Î¡C ¨º®M¨t²Î¥s°µ ¡§W¡¨(¨ú ¡§Window¡¨ ªº²Ä¤@Ó¦r)¡C ¦Ó X «h¬O W ¤§«áªº¤U¤@Óù°¨¦r¥À¡C
X ¥ç³QºÙ¤§¬° ¡§X¡¨¡B¡§X Window System¡¨¡B ¡§X11¡¨¡A¥H¤Î¨ä¥L¤@¨Çµü·J¡C ¨Ï¥Î ¡§X Windows¡¨ ³o¦r²´¨ÓºÙ©I X11¡A¥i¯à·|Åý¦³¨Ç¤H¤£²n¡F³o³¡¤À²Ó¸`¥i°Ñ¾\ X(7) »¡©ú¡C
X ¤@¶}©l¬O³]p¬°ºô¸ô¬[ºcÀô¹Ò¡A¨Ã±Ä¥Î ¡§client-server¡¨ ¬[ºc¡C
¦b X ¬[ºc¤U¡A ¡§X server¡¨ ¬O¦b¦³Áä½L¡B¿Ã¹õ¡B·Æ¹«ªº¹q¸£¤W¹B§@¡C ¦Ó server ³¡¥÷«h¬Ot³d¹³¬OÅã¥Ü³¡¥÷ªººÞ²z¡B ³B²z¨Ó¦ÛÁä½L¡B·Æ¹«¤Î¨ä¥L³]³Æ(¤ñ¤è¹³¬O¥Hø¹ÏªO¨Ó¿é¤J¡B ©ÎªÌ¬OÅã¥Ü¨ì§ë¼v¾÷)ªº¿é¤Jµ¥µ¥¡A ¨CÓ X µ{¦¡(¹³¬O XTerm¡A©Î Netscape®)³£¬O ¡§client¡¨¡C client ·|¶Ç°T®§¨ì server ¤W¡A¤ñ¦p¡G¡§Please draw a window at these coordinates¡¨¡A±µµÛ server ·|¶Ç¦^°T®§¡A¤ñ¦p¡G ¡§The user just clicked on the OK button¡¨¡C
¦b®a®x©Î¤p¿ì¤½«ÇÀô¹Ò¡A³q±` X server ¸ò X client ³£¬O¦b¦P¤@¥x¹q¸£¤W°õ¦æªº¡C µM¦Ó¡A¤]¥i¥H¦b¤ñ¸ûÄꪺ®à¾÷¤W°õ¦æ X server¡A ¨Ã¦b¤ñ¸û±j¡B¤ñ¸û¶Qªº¹q¸£¤W¶] X µ{¦¡(client)¨Ó°µ¨Æ±¡¡C ¦b³oºØ³õ´º¡AX client »P server ¤§¶¡ªº·¾³q´N»Ý³z¹Lºô¸ô¨Ó¶i¦æ¡C
³oÂI¥i¯à·|Åý¦³¨Ç¤H²£¥Í§x´b¡A¦]¬° X ³N»y»P¥LÌ쥻ªº»{ª¾è¦n¬Û¤Ï¡C ¥LÌ쥻¥H¬° ¡§X server¡¨ ¬On¦b³Ì±j®«ªº¾÷¾¹¤W¶]¤~¦æ¡A¦Ó ¡§X client¡¨ «h¬O¦b¥LÌ®à¾÷¤W±¶]¡C ¹ê»Ú¤W«o¤£¬O³o¼Ë¡C
¦³ÂI¬Û·í«n¡A½Ð°O¦í X server ¬O¦b¦³±µ¿Ã¹õ¡BÁä½Lªº¾÷¾¹¤W¹B§@¡A ¦Ó X client «h¬OÅã¥Ü³o¨Çµøµ¡ªºµ{¦¡¡C
¨ó©w(protocol)¤º¨ÃµL±j¨î³W©w client ¥H¤Î server ¨âÃä¾÷¾¹³£±o¬O¦P¤@§@·~¨t²Î¡A©ÎªÌ±o¬O¦P«¬¾÷¾¹¤~¥i¥H¡C ´«¥y¸Ü»¡¡A¤]¥i¥H¦b Microsoft Windows ©ÎÄ«ªG¹q¸£(Apple)ªº Mac OS ¤W¶] X server¡A¦Ó¥B¥i¥H³z¹L³\¦h§K¶O©Î°Ó·~³nÅé§¹¦¨³o¨Ç¦w¸Ë¡B³]©w¡C
X ³]põ¾Ç»P UNIX ³]põ¾Ç¬Û·íÃþ¦ü¡A³£¬O ¡§tools, not policy¡¨¡C ¤]´N¬O»¡¡AX ¤£·|¸Õ¹Ï±j¨î³W©w¬Y¥ô°ÈÀ³¸Ón¦p¦ó§¹¦¨¡A¦Ó¬O¥u´£¨Ñ¨Ï¥ÎªÌ¤@¨Ç¤u¨ã¡A ¦Ü©ó¦p¦ó¹B¥Î³o¨Ç¤u¨ã¡A«h¬O¨Ï¥ÎªÌ¥»¨ªº¨Æ¤F¡C
X ©µÄò³oõ¾Ç¡A¥¦¨Ã¤£³W©w¡G¿Ã¹õ¤Wªºµøµ¡¸Óªø¤°»ò¼Ë¡Bn¦p¦ó²¾°Ê·Æ¹««ü¼Ð¡B ¸Ó¥Î¤°»ò²Õ¦XÁä¨Ó¤Á´«¦Uµøµ¡(¤ñ¦p¡G¦b Microsoft Windows ªº Alt+TabÁä)¡B¦Uµøµ¡ªº¼ÐÃD¦Cªø¬Û¡A¥H¤Î¬O§_¸Ó¦³Ãö³¬¶sµ¥µ¥¡C
¨Æ¹ê¤W¡AX §â³o³¡¤À¥æµ¹©Ò¿×ªº ¡§Window Manager¡¨ ¨ÓºÞ²z¡C ¦³¤@°ï window manager µ{¦¡¡A¹³¬O: AfterStep ¡BBlackbox¡Bctwm ¡BEnlightenment¡B fvwm¡BSawfish¡B twm¡B Window Maker µ¥µ¥¡C¨C¤@ºØ window manager ³£´£¨Ñ¤£¦Pªº¨Ï¥Î¸gÅç¡F ¦³¨ÇÁÙ¥i¨Ï¥Î ¡§virtual desktops(µêÀÀ®à±) ¡¨¡F¦³¨Ç«h¥i¦Ûq²Õ¦XÁä¨ÓºÞ²z®à±¡F¦³¨Ç·|¦³ ¡§Start(¶}©l) ¡¨¶s©Î¨ä¥LÃþ¦ü³]p¡F¦³¨Ç«h¬O ¡§¥i§ó´«§G´º¥DÃD¡¨¡A ¥i¦Û¦æ¦w¸Ë·sªº§G´º¥DÃD¥H§ó´«¥~Æ[¡C ³o¨Ç¸ò¨ä¥Lªº window manager ¦b Ports Collection ¤ºªº x11-wm ¥Ø¿ý¤º³£¦³¡C
¦¹¥~¡AKDE ¤Î GNOME ®à±Àô¹Ò«h¦³¨ä¦ÛÄݨþã¦X§¹¾ãªº window manager¡C
¨CÓ window manager ¤]¦U¦³¨ä¤£¦Pªº³]©w¾÷¨î¡F¦³¨Ç»Ý¤â°Ê¼g³]©wÀÉ¡A ¦Ó¦³ªº«h¥i³z¹L GUI ¤u¨ã¨Ó§¹¦¨¤j³¡¤Àªº³]©w¡CÁ|Ó¨Ò¤l¡G Sawfish ´N¦³¥H Lisp »y¨¥¼gªº³]©wÀÉ¡C
Focus Policy: window manager ªº¥t¤@¯S¦â´N¬Ot³d·Æ¹««ü¼Ðªº ¡§focus policy¡¨¡C ¨C¤@ºØµøµ¡¨t²Î³£»Ýn¿ï¾Ü§@¥Îµøµ¡ªº¤è¦¡ ¡A¥H±µ¨üÁä½L¿é¤J¡A¥H¤Î¨M©w¥Ø«eþÓµøµ¡¬O³B©ó¨Ï¥Î¤¤ªºª¬ºA¡C
³q±`¸û¬°¤H¼ô±xªº focus policy ¥s°µ ¡§click-to-focus¡¨¡A ³o¬O Microsoft Windows ©Ò±Ä¥Îªº¼Ò¦¡¡A¤]´N¬O«ü¼Ð¦b¸Óµøµ¡«ö¤@¤Uªº¸Ü¡A ¸Óµøµ¡´N·|³B©ó¨Ï¥Î¤¤ªºª¬ºA¡C
X ¨Ã¤£¤ä´©¤@¨Ç¯S®íªº focus policy¡C ´«¥y¸Ü»¡¡Awindow manager ·|±±¨îþÓµøµ¡¦b¦ó®É¬O§@¥Î¤¤¡C ¤£¦Pªº window manager ¦³¤£¦Pªº¤ä´©¤è¦¡¡C ¦ý¥¦Ì³£¤ä´© click-to-focus¡A ¦Ó¥B¤j¦h¼Æ³£¦³¤ä´©¦hºØ¤è¦¡¡C
¥H¤U¬O¥Ø«e³Ì¬y¦æªº focus policy¡G
- focus-follows-mouse
·Æ¹«²¾¨ìþÓµøµ¡´N¬O¨Ï¥Î¸Óµøµ¡¡C ¸Óµøµ¡¤£¤@©w¦ì©ó¨ä¥Lµøµ¡¤W±¡A ¦ý¥un§â·Æ¹«²¾¨ì¸Óµøµ¡´N¥i¥H§ïÅܧ@¥Î¤¤ªºµøµ¡¡A ¦Ó¤£»Ý¦b¥¦¤W±ÂIÀ»¡C
- sloppy-focus
¸Ó policy ¬O°w¹ï focus-follows-mouse ªº¤p¤p©µ¦ù¡C ¹ï©ó focus-follows-mouse ¦Ó¨¥¡AY§â´å¼Ð²¾¨ì³Ìªìªºµøµ¡(©Î®à±)¡A ¨º©Ò¦³¨ä¥Lµøµ¡³£·|³B©ó«D§@¥Î¤¤¡A¦Ó¥B©Ò¦³Áä½L¿é¤J¤]·|¥¢®Ä¡C Y¬O¿ï¥Î sloppy-focus¡A«h¥u¦³¦b´å¼Ð²¾¨ì·sµøµ¡®É¡A §@¥Î¤¤ªºµøµ¡¤~·|Åܦ¨·sªº¡A ¦Ó¥uÂ÷¶}¥Ø«e§@¥Î¤¤ªºµøµ¡¤´¤£·|§ïÅܧ@¥Îª¬ºA¡C
- click-to-focus
¥Ñ´å¼ÐÂIÀ»¤~·|¨M©w§@¥Î¤¤ªºµøµ¡¡C ¨Ã¥B¸Óµøµ¡·|³Q ¡§raised(¥YÅã)¡¨ ¨ì©Ò¦³¨ä¥Lµøµ¡¤§«e¡A §Y¨Ï´å¼Ð²¾¨ì¨ä¥Lµøµ¡¡A©Ò¦³ªºÁä½L¿é¤J¤´·|¥Ñ¸Óµøµ¡©Ò±µ¦¬¡C
³\¦h window manager ¤]¤ä´©¨ä¥L policy¡A»P³o¨Ç¬Û¤ñ°_¨Ó¤S¦³¨Ç¤£¦P¡A ²Ó¸`³¡¤À½Ð°Ñ¾\¸Ó window manager ªº¤å¥ó»¡©ú¡C
The X approach of providing tools and not policy extends to the widgets seen on screen in each application.
¡§Widget¡¨ is a term for all the items in the user interface that can be clicked or manipulated in some way; buttons, check boxes, radio buttons, icons, lists, and so on. Microsoft Windows calls these ¡§controls¡¨.
Microsoft Windows and Apple's Mac OS both have a very rigid widget policy. Application developers are supposed to ensure that their applications share a common look and feel. With X, it was not considered sensible to mandate a particular graphical style, or set of widgets to adhere to.
As a result, do not expect X applications to have a common look and feel. There are several popular widget sets and variations, including the original Athena widget set from MIT, Motif® (on which the widget set in Microsoft Windows was modeled, all bevelled edges and three shades of grey), OpenLook, and others.
Most newer X applications today will use a modern-looking widget set, either Qt, used by KDE, or GTK+, used by the GNOME project. In this respect, there is some convergence in look-and-feel of the UNIX desktop, which certainly makes things easier for the novice user.
¥»¤å¤Î¨ä¥L¤å¥ó¡A¥i¥Ñ¦¹¤U¸ü¡Gftp://ftp.FreeBSD.org/pub/FreeBSD/doc/¡C
Y¦³ FreeBSD ¤è±ºÃ°Ý¡A½Ð¥ý¾\Ū FreeBSD ¬ÛÃö¤å¥ó¡A¦p¤£¯à¸Ñ¨Mªº¸Ü¡A¦A¬¢¸ß
<questions@FreeBSD.org>¡C
Ãö©ó¥»¤å¥óªº°ÝÃD¡A½Ð¬¢¸ß <doc@FreeBSD.org>¡C