| The GraphMe page,
the one about Graphics
User Interfaces. |
| Paragraphs in this page
are: A Little Theory Variety Toolkits A Little Theory As we have learned till now, Linux does not have a linux-specific method for a GUI, but instead uses the ones that are developed for all unices. We have to be used to a terminology somehow alien to users accustomed to other Operating Systems. The GUI is not something accomplished by one program. Because of portability and the variety of systems, protocols have to be specified and code "close" to the systems is not specified in the environment's source code, but instead in libraries that lie below. First, there is a "Graphics" mechanism, that controls the graphics card and input peripherals, like mouse, keyboard etc. Some of these mechanisms are: SvgaLib Independent console applications rely on this X Server Most graphical environments rely on this one. So, X is the Graphics Mechanism. Second, there is a Window Manager that will handle the window behaviour of a program. That is, to allow to maximize, minimize, restore, shade etc. Some of the Window Managers are: Twm basic window manager from the X package Blackbox modern, very light and impressive Window Manager Enlightenment another very powerful Window Manager. Third in place is the Desktop. The Desktop does all the other tasks, like Object Linking & Embeding, Drag & Drop, Icons as desktop objects, some or many internal applications, etc. Desktops come often with their own window managers, but still can cooperate with others. |
||||||||||||||||||||||
| This modularity can
bring us to some
interesting situations: Even if an X-client (a program that will run in X) hangs, we are able to minimize it, move it, send it to another desktop etc. If our Window Manager hangs, we will see all our programs turning unmovable but working, while we can still operate the desktop icons. And if we kill the Window Manager, then our programs will be restored without borders and still unmovable, but still working. We can then re-run the Window Manager! (Some programs have also the ability to move without a window manager) If our Desktop hangs, we will still be in a graphics environment, operating applications with full mouse and keyboard functionality and window behaviour. Through some harder work, we may even be able to kill and recall the Desktop leaving applications in place, but this generally depends on how we have initially called this Desktop and the applications. And some more interesting situations: We can send an x client (program) to another computer's X Server. We can run a remote x-client and/or Window Manager or Desktop on our local X Server. And this can be accomplished between different hardware and *nixes! We can have a fine linux box without the X package, running its X applications from the network.
The X is now in state 11 Release 6 so it is: X11r6 X for intel machines is called: XFree86 and is compatible to X11r6
You can have a fine linux server without the X package, running its applications from the network.
Remember, you can find programs that rely on X only (the description will be X11) as well as programs that depend on specific desktop libraries or mechanism. (see Toolkits). |
||||||||||||||||||||||
Variety Some fine Window Managers:
Some Window managers, although not Desktops, have some Desktop capabilities. Some fine Desktops: K Desktop Environment Very practical, fully intergraded environment. Comes with a sound server, applications, utilities, office suite, development tools, Konqueror (File manager and Web - Media browser), KMail (Mail client) KNode (News Reader) KGet (d/l Manager), Address manager, Organizer Network Client deamon, OLE Daemon (Klipper), MultiMedia applications, and will be loved from both MS Windows and MacOs accustomed users. KDE is based in Trolltech's QT intergraded application environment (language and toolkit). Allthough QT is not Free, it comes with a special GPL licence when developing applications for Free Unin-compatible OSes and X. Gnome (Gnu Network Object Model environment), from the team that gave us Gimp (Gnu Image Manipulation Program) and Midnight Commander, fully functional Desktop, with File manager and Web browser (Nautilus), utilities, impressive toolbar manipulation, display priorities etc. Metacity is now the Window Manager for Gnome. The Gnome team decided to create GTK, an intergraded developing environment (language & toolkit), based on the previous team work, Gimp (GNU Image Manipulation Program). XFCE An alternative Desktop, very small yet powerful, comes with native applications like File Manager etc. These Desktops think modular, too. To run a Kde application in Gnome you don't even have to install all of Kde, and vice versa (I have always both of them full). You may like the one's desktop and the other's programs and this will just work fine. Toolkits Most Graphical applications rely on toolkits. Think of toolkits as external libraries that provide functionality, object- oriented methods, widgets (i.e. icons, menus, scrollbars) etc. When you see X11 in an application's description, think of it as X depended. Standard X applications rely on the Athena toolkit. If you see Qt, think of it as a Kde application. If you see Gtk, think of it as a Gnome application. Q. Why do we need toolkits? A. Because without them, every program design would have to be made from scratch! So, once a toolkit is made, it can be friendly ground for other apps. Furthermore, applications based on a single toolkit have the same look & feel. Other toolkits are: Motif Netscape, NEdit, Common Desktop Environment etc. depend on it. Lesstif A Free toolkit aimed mainly for compatibility with Motif. There is also a language combination that helps to create scripts with a graphical appearence: the Tcl/Tk. But, of course, this is not a toolkit. |