[HN Gopher] Show HN: Xlibe: a serverless Xlib (X11) compatibilit...
       ___________________________________________________________________
        
       Show HN: Xlibe: a serverless Xlib (X11) compatibility layer for
       Haiku
        
       Hello HN,  While there are some projects that implement partial
       versions of Xlib APIs on non-X11 platforms for compatibility (most
       notably, Tk), I don't know of any others sophisticated enough to
       run Cairo and GTK applications (albeit with a few hacks). So I
       figured this might be technically interesting.  As of now it just
       implements the base Xlib APIs, it doesn't implement XRender, GLX,
       XInput2, etc. (though it's more than possible, I just didn't see a
       need yet.) Cross-program interaction is also very limited, and
       there are plenty of X11 features that likely can't be implemented;
       but this works sufficiently well that GTK3 is now in Haiku's
       default package repositories, with GIMP and Inkscape atop it to
       boot, using this.  And for the fun of it, I did try to compile
       Xnest (the X.org server variant running on top of Xlib) on top of
       this; it crashed on startup in the keyboard handlers. However, that
       could potentially be because I didn't have the necessary data files
       and not because of anything missing in Xlibe; I didn't investigate
       too far (or it could be an actual incompatibility; Xlibe's keyboard
       subsystem is rather primitive and is most of the reason I had to
       patch GTK for full functionality.)  (A few more screenshots,
       including GTK and WINE running atop Xlibe: https://www.haiku-
       os.org/blog/waddlesplash/2022-01-10_haiku_...)
        
       Author : waddlesplash
       Score  : 25 points
       Date   : 2022-04-26 14:00 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | [deleted]
        
       | loxias wrote:
       | Interesting! I love stuff like this (compatibility layers like
       | wine, darwin).
       | 
       | I think a better title might include mentioning what Haiku _is_ ,
       | though 15 seconds of googling worked just as well. :)
        
       | waddlesplash wrote:
       | A few more technical details, for the interested:
       | 
       | * Every X11 "Window" gets its own BView (which is itself vaguely
       | analogous to a QWidget in Qt, etc.) and of course top-level
       | "Window"s attached to the root get their own "BWindow" as well.
       | 
       | * All drawing goes through the Haiku drawing APIs. (This does
       | create some artifacts in applications that expect X11 drawing
       | isn't antialiased, like most Xt/Xaw applications, but it works
       | tolerably well.)
       | 
       | * Since Haiku has no "display server" / "windowing system"
       | divide, all operations related to both are directly handled in
       | Xlibe. This creates some trickiness when applications request
       | "window manager bypasses" in tandem with modality management, and
       | also in decorations/borders handling, but it works well enough.
        
       ___________________________________________________________________
       (page generated 2022-04-27 23:00 UTC)