Alternative window system (as of Thu Mar 18 16:37:18 PDT 2021)

The graphics system in Plan 9 is very different than folks familiar with other systems are used to. The graphics rendering is handled by the draw(3) device driver, while the control of those windows is managed by another program, rio(1).


Rio provides a very clean, minimal interface, with very little window decoration and only two very small menus. It does, however, embody a very particular set of ideas about how to deal with windows, with no real configurability. For some users, or in some circumstances, this isn't ideal. Here are a few ideas for alternatives.

For some, rio represents a barrier to entry--complaints that it is hard to use or ugly have frequently appeared. It would be nice to have an alternative window manager for those people who don't like rio, perhaps something with more traditional title bars, minimize/maximize/close buttons, etc.

Rio is based on the common model of overlapping windows. Plan 9 also has acme(1), which could be thought of as a text-only windowing system, which is more of a heirarchical grid. While acme itself doesn't handle graphical programs, it has inspired (directly or indirectly) various X11 window manager with a tabular view of graphical windows, such as dwm and wmii. It would be interesting to bring those ideas home to Plan 9 in the form of a rio replacement. Done on its own, this could likely be a relatively easy and isolated set of internal changes in rio.

Some users are very much allergic to mouse-driven interfaces, for whatever reason. It wouldn't be hard to modify rio to interpret some keyboard input. Basic window operations like new and hide would be trivial; more interesting would be a clever model for placement and resizing. This could be combined with one (or more?) of the above ideas (dwm, from the X11 world, offers a particularly interesting combination of this with a grid-based layout).

Rio is built assuming a system with a keyboard and 3-button mouse. That is increasingly not a great assumption. Genuine 3-button mice have been uncommon for a long time; we generally get two real buttons and a scroll wheel. Then there's the gaming mice with some higher number of buttons. There are other input devices, from very common ones like multi-touch trackpads, to more esoteric ones, like the Shuttle Xpress/Pro. Rio either ignores these or pushes them into the 3-button mouse model, with only the smallest concessions. It would be interesting to explore what else could be done here with the variety of optinos available. This could be a very small set of extensions, up through something much more ambitious.

Then, of course, there's touchscreens, including multi-touch devices. Pushing those into a 3-button mouse model gets really painful, and seriously limits the effectiveness of Plan 9 in those environments. An alternative really is called for here. This would involve a lot more careful thought and planning up front to determin the most effective model, and then some work on how to get access to the inputs, before addressing things in the rio replacement itself. Doing this version entirely is likely too big for GSoC 2021's reduced hours, but parts (e.g. input device drivers) can probably be selected to make a good sized project.


If you're interested in this space, here are some useful references:

Adds virtual desktops and window management capabilities to rio, roughly inspired by i3.

Rio fork pushing it a bit more minimalist direction, mostly implementing the suggestions from https://9fans.topicbox.com/groups/9fans/T28ea22f6a6244a70-M630c2ec5279eae746ee05901/9fans-evolving-rio-gui-development

Also, search for "rio" in the contrib list for some earlier experiments.


Last modified Thu Mar 18 16:37:18 PDT 2021 [ Current version | Changelog | Create a new page ] About the server | Powered by Plan 9