Is it possible to use X Windows ( the GUI system used by linux distributions ) to develop my own GUI ?
is it free ? where can i get it ?
thanks
X Windows
Re:X Windows
Depends. X is an open system where an Xserver handles keyboards, mice and displays. Actual applications then connect to that server to talk with user. Window manager is one of these individual "clients" and is responsible for focus-management, moving and resizing windows, drawing borders/titlebars and sorting them on top of each other in a sane order.firas981 wrote: Is it possible to use X Windows ( the GUI system used by linux distributions ) to develop my own GUI ?
If by developing your own GUI you mean building something like Gnome or KDE, then yes, it's possible. You can even add one part at a time, borrowing stuff from other environments until you have your own. Like you could start by writing a new panel app to replace gnome-panel, then write a window manager to get rid of Metacity, then replace nautilus with another desktop/file-manager and so on.
You can also use X as simply a driver-provider by running a single fullscreen application, which then handles it's own windowing system protocols and all. Many experimental Unix GUI's seem start this way it seems, even if they are ultimately designed to run as standalone systems without X.
Yes and no.is it free ?
http://www.xfree86.org or pretty much every major Linux and BSD distribution site and mirror on earth. There are commercial implementations too. Most commercial Unixes also include their own X implementation, and there are a few servers for Windows too (and I think you can compile XFree86 on cygwin). WinAxe is one that I've used without a problem on Windows.where can i get it ?
The good thing is that every X11 application should be to speak with every X11 server as long as neither is too buggy and the application doesn't need extensions which the server doesn't provide (say GLX for OpenGL). Toolkits like Gtk usually prefer using extensions like RENDER (for antialised text) but can fall back to "manual" operation if RENDER is not available.