The Y Window System

Frequently Asked Questions

About the Project

What is the Y Window System?
Y is intended as a successor for the X Window System, the most popular implementation of which, XFree86, is used on the majority of open-source desktop systems.
Should it be referred to as "Y", "The Y Window System", or "Y Windows" ..?
I don't care.
What license is Y released under?
The server code is released under the GPL. The client libraries (intended for use by application developers) are released under the LGPL. The yiterm program shipped with Y is released under the CPL as it uses the CPL'd libiterm library. (The yiterm program is simply a proof of concept and a GPL'd replacement is planned.)
What state is Y in at the moment?
Y currently consists of a server, a client library, and a small set of applications -- a calculator, a terminal emulator, a clock and a widget demo. The server has video drivers for SDL (which can be used to run Y within X) and for Linux kernel framebuffer devices. Generic mouse and keyboard support, using the Linux input device event interfaces, is also provided. The server and clients can communicate either using a unix domain socket or using TCP. Note that no access controls have yet been implemented, so please be careful about exposing your Y desktop to untrusted users.
What features does Y have that X11 doesn't?
The major features include:
  • Server-side widgets
  • Unicode support
  • True 32bit alpha-blending (allowing semi-transparent windows, drop shadows, etc.)
  • Hot-pluggable module system for video, input and ipc drivers (change video drivers on-the-fly, ...)
Couldn't you implement these features as X11 extensions?
Yes, but then there wouldn't be much of the original X11 protocol that we think would be worth keeping. Coupled with the obtuse and weighty codebase that is XFree86 and, more recently, the XFree86 license changes, our view is that retrofitting XFree86 with all of these features would be more time consuming than implementing a new system from scratch.
Where can I get the code?
Source tarballs can be obtained from the download page. The GNU Arch sourcecode control system is used during development; Mark's central repository can be found at http://www.efaref.net/arch/2004/ as Y--devel--0.2.
How are you planning to organise future development?
The current plan is to use the Linux kernel development process as a model on which to run Y development, so that includes:
  • Using the y-devel mailing list for developmental discussions
  • Using Arch's ability to manage sources belonging to multiple trees in a similar manner to BitKeeper.
However, large-scale development is only just beginning so this method of working may change substantially.
What are you planning to implement next?
Short term, the following improvements are planned:
  • Expanded widget-set library
  • Hardware acceleration support
  • Font handling improvements
  • Improving the state of the documentation
... and lots else. Discussions on this subject will be held on the y-devel mailing list.
Where can I find out more information?
There are several sources that you may find useful:
  • The original project report which describes the problems that Y is trying to solve along with details of it's internal architecture, capabilities and plans for future extensions.
  • The y-devel mailing list where most development discussion will take place. There is also a y-announce mailing list if you only wish to keep appraised of significant events that affect the Y project.
  • The #y-windows channel on the FreeNode IRC network (irc.freenode.net). Because the channel isn't being archived development discussion should take place on the mailing list.

Troubleshooting

How do I run startY or Y in gdb?
Y detaches from the terminal by default. Disable this with the --no-detach option.
Where do error messages go?
Since Y normally detaches, error messages go to syslog (/var/log/syslog and/or /var/log/messages, depending on your system).
How come I when I build 0.2 terminal.cc blows up when I compile it?
You probably are running Debian with the default libiterm-dev package. Download replacement debs from http://www.darkobjects.net/~drizzt/y-base/ or http://people.debian.org/~asuffield/iterm-mbt/.

Some more FAQs have been answered on the wiki.

Most of the problems reported with 0.1 and the 0.2-pre-release should be fixed in 0.2, so please try that first. Bug reports should go to the y-devel mailing list.