Alternative window system D1392245294 Aa #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. # # * More "traditional" # #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. # # * Grid-style window layout # #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's 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 would likely be a relatively easy and isolated #set of internal changes in rio. # # * More keyboard-driven # #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). # # * Different physical interface # #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, more esoteric input #devices, 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. # #------------------------------------------------------ #Contrib on sources contains a number of smaller hacks that folks #have done to rio to push the boundaries a little. It's worth taking #a look before getting started on something new. See the [contrib #index] itself. # #We'll shortly add a summary of some of the more interesting #modifications below. #