Wio: A Clone of Plan 9’s Rio for Wayland
drewdevault.com
drewdevault.com
For people who like new window manager things and also Rio, it's worth also checking out this piece of the Arcan Project: https://arcan-fe.com/2017/04/17/one-night-in-rio-vacation-ph...
Did plan 9 use this model because blocking launchers were the norm not the exception?
The Plan 9 emphasis on per-process namespaces corresponds to the idea that a new graphical application is given a handle for a framebuffer that corresponds to the size of the window it can draw in. The Rio idiom has every window start by default as a textual terminal, so it's natural to be able to take over that framebuffer to run a graphical app.
It's a bit like the situation on older systems, like Sun workstations, where the textual console and the graphical display were only informally separated: sometimes the X server's display would be interrupted by lines of text printed onto the screen by the kernel's console driver.
I'm very happy to see people experiment with new desktop models, though.
I would love this feature in my current wm.
If you want two applications, you start two applications: First a window, then run it. Once the application terminates, the window returns to being a terminal.
Basically, you create a window, and then decide its content. It's actually incredibly logical and intuitive to use if you have ever used a terminal.
Or even a web browser... First you open a tab, then navigate to the content you want to display there.
Im always looking for new window interaction styles. And this seems refreshing after years of minor tweaks on win95’s style.
I really should have tried plan9 years ago instead of always procrastinating.
So focused on many/big screens, with an eye towards future high-res AR/VR 3D, rather than a single "space is precious" small screen. Rich human interface devices, like multitouch and 3D hand pose and stylus and head position and gaze, rather than a single mouse. Display as a dynamic ecosystem of presentations, under the influence of multiple agents, rather than detailed manual control. UI as collaborative improv dance, rather than as micromanagement.
Punchcards and console toggles; teletype printer; VT100 terminal; small bitmapped monitor and mouse; larger monitor; largerer monitor; largererer; multiple monitors; with multitouch and stylus tablet; future high-res AR/VR... as tech so very slowly becomes less crippling, the UIs do too...
Hmm, though for current VR, with its 1980's VGA-like non-blurry pixels are more precious than they've been for decades, fine-grained control and space sharing might be quite nice?
Why? For example, people doing video or audio production sometimes create extensive personalized HID setups, with knobs and sliders and joysticks and touch screens and drawing tablets and etc. Even with expensive and clunky tech. What if everyone could easily have better at need?
> gorilla arm [..] mouse [...] the only thing I'd want to use for real work is
I too like a standard of "use for real work" without compromising existing tooling. I prefer a well-tuned little red ThinkPad TrackPoint to mouse, in part because it requires less movement. But even with all of Point and touchpad and mouse...
What if your entire keyboard and adjacent frame could serve as a multitouch surface, without compromising keyboarding experience? (Well, compromising it beyond nice ThinkPad chicklets.) My very limited experience suggests it could be nifty. I was playing with a completely-non-functional "sanity check" prototype, got distracted surfing, and then realized I'd become puzzled and distracted... because stroking the J keycap was bizarrely failing to scroll the page. :) Suggesting that adoption might have a low barrier. I think there's a startup hoping to do a plastic overlay, like a keyboard protector, that does multitouch.
> monitors
And those monitors could be 3D monitors. Perhaps adding subtle Z offsets to font color and weight and spacing and alignment. And semi-transparency becomes more powerful. All 1M NPM packages fit on a 1080p screen as color dots, but with high-res 3D, they might be little lines and shapes, with over and underlays and connections. 3D datavis infusion.
Having full hand pose could permit much richer hand-barely-moving gesture vocabularies... than press-hold-and-release Ctrl-Meta-Mumble.
But for expert use... When smartphones were new, the user population untrained, and onboarding was critical, there was the idea of skeuomorphic user interface design. The app should resemble the real-world object. So affordances would transfer from novice user experience. The calendar app should have lined pages, a spiral binding down the center to hint at horizontal flipping, and textured leather margins. :) We don't do that anymore.
For expert users, what are the odds that the severe constraints of physical reality line up nicely with the domain constraints desired for maximum productivity? How long before people start complaining "I don't like reality - no stretchy arms - you actually have to walk over to something to grab it - yuck".
I joke that I currently don't do V of VR, because I almost always have camera passthrough, don't do A of AR, because I'm usually ignoring the world other than for user input, and don't do R of either, because the UI is so often aphysical. Resemblance to physical reality as design smell.
Though how to "think with your hands", when HIDs are still so crude? Tracked/instrumented manipulatives could be neat.
When I see movies with 3D projected interfaces and people interacting by waving their hands around them I can't help laughing about the ergonomics of it. I have similar thoughts about the general applicability of VR. For as long as VR means focusing on a screen a couple of centimeters from your eyes, it's not going to be a generally useful productivity tool because of the eye strain. With a monitor I can easily turn my chair and focus on something else for a few minutes.
Overall, it's my opinion that the goal of designing human interfaces should be to minimize cognitive load, eye strain and arm strain. Window management "as collaborative improv dance" with "3D hand poses" sounds like the exact opposite of that. The future of human computer interfaces IMO lies in things like replacing the mouse with something that requires less hand movement, technology like e-ink to improve legibility and minimize eye strain, mouseless window management, ergonomic keyboards...at least generally.
I can still see how VR and 3D gesturing can be immensely useful for things like CAD and video games, but in general I use my computer to read and write documents (maybe a specialized use case in itself). Whether those documents fly around in a 3D space or are projected in thin air in front of me is uninteresting to that end.
That said, to sort of answer your question, here is an interesting paper: https://our.oakland.edu/bitstream/handle/10323/4785/An%20Inf...
Ah, I have tried quills a couple of times. And dip pens. It was interesting. ;)
> movies [...] can't help laughing about the ergonomics of it
Yes. Though they do seem to have an "outreach" role, raising awareness and interest that improvement over the familiar is possible.
And moving while working, like shifting from sitting to standing desk and back, and walking, can be nice.
> minimize cognitive load, eye strain and arm strain
Nod.
> focusing on a screen a couple of centimeters [...] eye strain
The focus distance is usually either around 1 m, or infinity. Downsides include being fixed, creating vergence-accommodation conflict. Prototypes, and the new Microsoft Hololens 2 (which paints the retina), variously improve on this.
> minimize cognitive load
One thing I've played with, is taking a downward keyboard-cam of hands on keyboard, and overlaying it on a 3D monitor. Raising it slightly in Z seemed to allow focusing past it, making it merely bothersome, rather than untenable. Upside is it reminded me of an old Lisp Machine, with the screen telling you what various keystrokes would do in your current context, so I don't have to remember them all.
> less hand movement
Yes. I really like the idea of keyboard as multitouch surface. Stroke a keycap, rather than moving to a touchpad. Touch a modifier key keycap, rather than having to actually press and hold it. And optical finger tracking allowing subtle hand gestures to be commands.
> read and write documents [...] 3D space or are projected in thin air in front of me is uninteresting to that end
Hmm. Sometimes it's useful to print out a document, and put it up on a wall, so you can see the big picture, or talk with someone about it. If one has a task which fills the available monitor space, it's easy and common to remember what it was like with a smaller monitor, and not want to go back, but harder to imagine whether the same might happen again with further expansion.
More generally, one thing that cheaper real estate might do is lower the barrier for tooling to provide speculative assistance. You're writing for an audience including someone from Great Britain, using a phrase that has different meaning there than in the US... checking that with a keystroke, or as part of a "I'm done, check it now" report, seems less attractive than "comments are available off to your side - glance if you care". Grammarly meets VR.
For myself, writing documents is often preceded by a lot of graph drawing, as I figure out the structure of the domain, concept space, and presentation alternatives. I very much look forward to moving that into direct-manipulation 3D.
I used to resort to firebug light (DOM viewer) bookmarklet but it doesn’t seem to work anymore.
I tried to hack on tabbed from suckless [0] with a little utility to achieve a similar behavior. An X11 proxy that would rewrite window creation so that the parent window would be tabbed xid and not root window [1]. It kinda worked, but I never finished this for transient windows.
So you would start with a terminal inside tabbed instance with tabs hidden. The terminal would be behind chrwin proxy. Then when you launch anything inside, it would become a new tab and tabbed would switch immediately to it. There could be a possibility to kill the terminal after spawning a new client. But I intended to just leave it by default so you would go back to it.
Edit: that was my first approach. I wanted then to not rewrite window creation, but to reparent it afterwards. Something like this. It was supposed to simplify transient window handling, because the client would take care for it. At least that's what I remember.