Are We Wayland Yet?
I don&#x27;t really like Wayland and I think X is better in many ways. There are a few problem which is why I had some ideas about X version 12. One is to ensure the implementation and protocol are separate. Another is proxies to implement security features. Another is support for SCM_RIGHTS and SCM_CREDENTIALS (only for local connections; these are obviously not supported for remote connections, which are still possible, if implemented by the server and enabled by the user). And then, also 64-bit numbers in many places. But a lot of it is like the version 11 protool (without all of the extensions they have added), but with a few differences. (I don&#x27;t really like much of the freedesktop stuff either; I work without a desktop environment, and programs should not assume the existence of one.) Maybe there is even a possibility to implement these different systems over each other when needed.<p>For example, with text rendering. Font path setting is not part of the core protocol (although there may be a XSET extension which can do this on some implementations), nor does the protocol specify font formats (PCF is recommended, but the protocol doesn&#x27;t actually care so you can implement different formats if wanted). Characters are still sixteen bits, although to allow optional support for some more modern features, there are two flags you can specify when loading fonts: EnableLigatures and EnableAntialiasing. Servers that don&#x27;t understand these flags can ignore them, and fonts that don&#x27;t support them would also ignore them. EnableLigatures waives the requirement that a sequence of characters is the same as each of those characters put next to each other, and EnableAntialiasing waives the requirement that text is painted in the specified background and foreground colour only. (EnableLigatures is required to correctly render Unicode text with the X core text rendering system (if the server implements support for Unicode fonts, which is of course optional). Of course you are not required to use the core text rendering (previewer programs should not use it, for example), but if you do, and your program uses Unicode, then this will be needed. In effect, a surrogate pair is treated like a ligature at the protocol level (how it works in the actual implementation may differ, and is independent of the protocol).)