[Cuis-dev] Embedded Squeak/Cuis

Douglas Brebner kirtai+st at gmail.com
Fri Sep 4 02:38:53 PDT 2020


On 04/09/2020 09:36, Casey Ransberger via Cuis-dev wrote:
> Hello Douglas,
>
> Yes, a server is required. A window manager integrated with (or even implemented in) Smalltalk would allow X11 client applications (in communication with a local or remote X11 server) to appear within the Smalltalk environment, would it not? I was expecting to just use whatever stock server was available at the time (can’t remember if it was xorg yet.) Maybe you mean that I’d need to tightly integrate with the server as well, but isn’t that what a client does in the first place?
>
> Maybe I have a wire crossed. X11’s architecture is so… extra.


Yeah, X11 has it's very own unique way of naming things. Very "extra" :)


The X server is the thing that provides the display. (The Display Server)

X11 clients are applications that connect to the Display Server via 
various means. (Like sockets, shared memory, unix sockets, etc)

The window manager is what lets you control how the windows appear on 
the Display Servers, uh, display. Cuis has this already in the form of 
SystemWindows. Theoretically you could just place the X11 app window 
inside a SystemWindow and be done with it.


So, for Cuis, to get X11 apps working in SystemWindows, you'd need an 
X11 Display Server in Cuis to accept connections from the client 
applications and some kind of X11WindowMorph or X11ServerMorph to render 
them.

Cuis' own window handling code in Morphic should be able to handle a 
SystemWindow containing an X11 Morph, though it might need extended to 
support the sort of things X11 apps want. e.g. dialogue windows 
appearing above application windows.


BTW, the window manager is just another X11 client, which instructs the 
Display Server on how to move and display the stuff other clients provide.

A window manager in Smalltalk would be something that lets you control 
the Display Server. e.g. "X11Connection move: aWindow to: aPoint 
withExtent: aRectangle"

There are a few already written in dynamic languages such as StumpWM 
(Common Lisp) which could be useful as examples.

If X11 client support could be written, it may make it possible to 
display morphs or SystemWindows on a Display Server separately from the 
main window or even on another Display Server. Something like 
"X11Connection display: aMorph" maybe.


> Anyway, what I brought up is only obliquely related to the original post in that both of us are looking to centralize Smalltalk in our computing experiences. It’s the desire to have the rest of the junk out of the way, which for me includes a long-term quest to see a web browser (at the very least) open within my programmable world. I was happy to see the no-x11 work happen, shared the thought that making Smalltalk the window manager was another approach I thought was interesting, albeit one that drags along X11/org. That’s all:)


I too would love to have a Smalltalk system I could live within. And 
yeah, I feel that the web is the biggest sticking point. It's just such 
a giant, constantly moving mess. With a suitable X11 Display Server 
implementation, it would be possible to have Firefox or Chromium inside 
a SystemWindow but that feels... untidy.


Sorry for the length of this but X and its terminology are *weird*.




More information about the Cuis-dev mailing list