hello.
that's nice and i like it, the idea you can do gui action which has simple mapping to filesystem action. i was thinking about connecting rio windows with arrows that it works like pipe and the functionality is simple filesystem action like connecting standard output of a program in one window to standard input of program running in another window. i don't like complex gui actions, i prefer simple rio, acme functionality. br, alex ([email protected]) ----- Původní zpráva ----- Odesilatel: adventures in9 ([email protected]) Datum: 06/09/25 19:31 Příjemce: 9fans ([email protected]) Předmět: Re: [9fans] The Big Questioning: Plan 9 everywhere? Plan 9 isn't restricted to a distributed OS, but it is the standout feature, and since it is an essential feature, it is going to affect the user interface. Like, drag-n-drop is a pretty standard feature in most GUIs, but how do you manage that in Plan9 when there isn't a monolithic file tree shared between the windows? If I open a program, like a browser or a drawing program, but forget to bind in a network or a drawing tablet, will the user program be able to do binds, or do I have to exit out, run bind, and rerun the program? Would there be visual cues to let a user know what the namespace of a particular window is? Most of this can be shaken out from using Plan9 in these situations. But few people are. The closest I've seen is the demonstration video of Plan B; https://youtu.be/aOdaERBkBXw On Mon, Jun 9, 2025 at 5:39 AM Lucio De Re <[email protected]> wrote: > > > On 2025/06/07 12:07, sirjofri via 9fans wrote: > > Hi, > > > > Vic, your mail raised many arguments which I didn't agree with. Discussion > > inline. > > > > As the original mail was already quite long, this response is even longer. > > If you still want to read it, prepare yourself with a cup of tea or > > something. > > May I summarise my own grasp of this discussion? The modern GUI ought to > be what the browser would have become if allowed to incorporate its own > local terminal OS. Neither Netscape nor Microsoft wanted that to happen > and so it didn't. > > I think Vester is mistaken to believe that Plan 9 as a product is > restricted to a distributed OS; its essence is, but its instances could > be as different as KenFS was from a CPU server (or an AUTH server, which > may be a more interesting example). It's a maintenance problem that gave > rise to Fossil (one product, not many), and it's the same maintenance > problem that's preventing Plan 9 to give birth to a better Netscape that > can operate without, say, storage management. > > I am all in favour of generalisations, but I also believe that sharply > clear boundaries make for simplifications, so a text terminal, a CPU or > AUTH server, a file server or a web page renderer are all examples where > Plan 9 could be the philosophy and individual "features" matching the > philosophy are built upon it. > > I'm tempted to close off with something like: "The concept of API is a > generalisation, each individual API defines its own boundary" even > though it is too concise to convey what I would need to develop much > further. Feel free to challenge my presentation, I will be happy to > adjust my understanding where it needs it. > > Lucio. > > > 06.06.2025 00:44:39 [email protected]: > >> Much of the discussion gives the impression that many > >> here are seeking something quite different from what > >> Plan 9 was originally designed to provide. > >> > >> What is being described sounds less like an extension > >> and more like the foundation of a new operating system. > > I think the first question here would be, what even is an operating system? > > Is it just the basis of hardware abstraction, a philosophical idea, a > > strict implementation? Does it involve user interfaces of any kind or is it > > or technical? I don't think we all agree with every detail about this > > question, but in this context, it is important to think about that. > > > >> Perhaps that is indeed the intended direction. > >> It gives one pause and invites reflection. > > Pause and reflection is important. I like that our community is small > > enough and comes without any strings attached: There's no huge pile of > > software that the world depends on. > > > >> On Departing from the Plan 9 Model > >> > >> Let us examine the structural assumptions embedded in Plan 9 > >> and considers the implications of applying it to desktop-focused > >> or single-user environments. While Plan 9 offers compositional > >> elegance and architectural clarity, its model is not aligned > >> with the requirements of modern graphical desktop systems. > > User interface design and human computer interaction are about learning > > from the human, and applying human capabilities to that interface is the > > important step. It starts from physical limitations (humans have two eyes > > and two hands) and goes into depths of how the human thinks. > > > > But even then, most interaction with the computer is just learned behavior. > > Even using the mouse to move a pointer on the screen is something you need > > to learn. > > > > I believe that our current "modern" UI designs are modernizations of the > > same principles we used for many years. That is, windows, icons, buttons, > > text, and so on. It doesn't have to be like that, but that's what people > > are used to. If we make a new UI design, we can only choose between (1) > > following that same principles, and (2) expecting people to learn our new > > principles, or any mix between those two. > > > > About your statement: what are the requirements of modern graphical desktop > > environments? And whatever you name: is it really a requirement? > > > > I believe anything there it's a solution to a problem. Many of those > > problems aren't even problems at all, but evolved from an idea of some > > developer/designer who thought it would be nice. Other problems aren't > > problems on a plan 9 system. Both those categories don't need a solution. > > > > The third category are the valid problems we should focus about. But > > instead of copying the solutions of other systems, we have the option to > > think about them thoroughly and try to find an elegant solution that fits > > existing plan 9 principles and the existing architecture. I bet that in > > most cases we can find solutions that are as simple and elegant as the > > other plan 9 components. > > > > "But then, the user has to learn them" you might argue. Sure, but is it a > > bad thing? Plan 9 is a lot about transparency, so a user is expected to > > learn many things anyway. I'd prefer to give the user a matching and > > consistent UI solution to learn, than a copy of everything that already > > exists, but is a foreign thing that doesn't belong here. > > > > And people are able to learn. My mother knows next to nothing about > > computer, she only uses the programs she needs to fulfill her tasks, both > > at work and at home. She still had to learn some basic on a c64 back when > > she became a typewriter teacher. Is argue that anyone who touches a > > computer has to learn a bit about how to use it. There's no such thing as > > intuitive design, because every intuition is applied learned behavior. You > > don't go to a foreign country and just start speaking their language, you > > have to learn it. > > > >> This is not a critique of intent or capability, but a reflection > >> on architectural fit. Understanding the boundaries of Plan 9's > >> design helps clarify where adaptation is feasible and where > >> reconstruction becomes necessary. > > Sure, let's go into it. > > > >> Plan 9 is not a desktop-centric system > > Before going into this topic let me clarify one thing first. I believe that > > every system that is desktop centric is a failure from the beginning. User > > interfaces are about the user, not machines. That's why we're talking about > > UI, not API. > > > > A system that focuses about the desktop/UI instead of the user cannot build > > good solutions for the user. > > > >> Plan 9 was not created for single-machine desktop use. > >> Its architecture focuses on distributed coordination. > >> Its goal is to unify machines into one namespace. > > Sure, that's the underlying components. Plan 9 being about transparency, > > the user will always be able to see that in their namespace. > > > > But nobody talked about a single-machine use. And yet, there are > > limitations a user just naturally has. I don't know about you, but I have > > two hands with 5 fingers each. I am able to coordinate my finger to an > > extent that I can type with 10 fingers, essentially, but I'll never be able > > to use two keyboards simultaneously. I might be able to use two mice at the > > same time, but three mice? > > > > Humans are limited, and while we find elegant solutions to extend our > > capabilities (also with the help of computers), we will always hit walls at > > some point. > > > > But even then, who said that we can't build a desktop environment that goes > > about multiple machines, even a full network of machines? I'd argue that we > > already have that to some extent. Different namespaces and their view are > > basically a small form of that. I can have multiple rio windows with their > > own view on the resources of my network. I can build software that uses > > these resources, and yes, that also involves so-called "desktop > > environments", whatever that means. They just don't have to follow current > > expectations. > > > >> User sessions span file, compute, and authentication servers. > >> The 9P protocol manages communication among those parts. > >> All user interaction flows through remote interfaces. > > I sometimes wish plan 9 would be more like that, but that's a different > > topic. > > > >> Each user session connects to remote services explicitly. > >> These include file service, CPU execution, and authentication. > >> This reflects a distributed and multi-terminal model. > >> > >> Plan 9 does not prioritise graphical interface use. > >> There is no window compositor or event manager. > >> There are no UI toolkits or persistent notifications. > > These are all solutions to problems we don't necessarily have. Why would we > > need a window compositor? For doing fancy graphics with transparency and > > effects? Is that important for a desktop environment? > > > > UI toolkits is a point that I can almost agree with. Libcontrol was never > > finished, and draw is just drawing. There are a few others, but there's no > > single solution that works for everything. Though here's the question: do > > we need that? Plan 9 can easily work with multiple different toolkit > > solutions, as it does today. It just needs solid ones that are easy to use > > and to work with. Funnily enough, we are working on this[1]. > > > >> The Rio window system presents windows but not a desktop. > >> It offers no system tray or global graphical shell. > >> There is no UI state storage between sessions. > > What is a desktop? > > > > Coming from the name, it's a metaphor of the surface of a desk. The common > > meaning of a desktop also evolved over time. Win3x had a desktop with all > > the hidden windows only, but no system tray. I also wouldn't count it's > > graphical shell (the program manager) as "global" in the sense of an > > omni-present start menu. All that evolved over time as a solution to that > > problem. > > > > The components you mention are either not relevant in a plan 9 system as we > > don't have these problems, or just aren't invented yet. For those that > > don't exist yet, they could still be written in a way that fits the plan 9 > > philosophy and architecture. As a simple example, many months ago I wrote a > > notification system for plan 9, which uses the plumber[2]. > > > > Regarding rio, I don't think that rio is what makes the plan 9 UI the plan > > 9 UI, but the other way around: I believe rio is the way it is _because_ of > > plan 9. > > > > This is important, because if we take away rio, it doesn't take away a core > > component of plan 9. We can replace it with a different window system that > > fits equally into plan 9. Rio is just a consequence of plan 9. > > > >> Plan 9 simplicity is not user interface simplicity > >> > >> Plan 9 is simple in composition and design scope. > >> Its core idea is orthogonality of interfaces. > >> Every system object is addressed as a file. > >> > >> Namespaces are assembled per session by the user. > >> Services and devices are bound by mounting actions. > >> This yields flexibility and minimalism in usage. > >> > >> Modern desktops hide these actions behind UI layers. > >> They abstract system state into persistent sessions. > >> They expose GUI settings and graphical tools. > > That's what they do, yes, but that's not what makes them modern. If we want > > to build a modern system for plan 9, that doesn't mean that we should copy > > that to _become_ modern. > > > >> Systems such as GNOME or i3 use visual conventions. > >> These include gestures, layouts, and notification events. > >> These conventions do not exist in Plan 9 by default. > > Some we do have. We have menus with sweeping actions, swallowing window > > contents for graphical applications. > > > > Others are questionable if they make sense. > > > > Most people here agree that the system shouldn't be in the way. The first > > thing I do on a Windows system is, enable the "do not disturb" mode, as I > > hate those notifications popping up. They are annoying and are in the way. > > > > Why should plan 9 follow bad conventions or conventions that didn't make > > sense? > > > > Just because the others do that? Maybe because that's what defined a > > "modern desktop environment". If that's the definition, is rather not have > > it. > > > > I think we can do better. > > > >> To expect such behaviors from Plan 9 creates mismatch. > >> Its assumptions are not built around UI design goals. > > Yeah, and that's good. > > > >> Its definition of simplicity is structural, not visual. > > The visual simplicity follows the structural simplicity. You have a complex > > structure? Then everything that visualizes is needs to be complex, too, as > > well as the implementation, specifically _because_ of that complexity. > > > > You have a simple structure? Then it's much easier to implement a solution > > that's simple. A plan 9 desktop will this be much simpler than what we know > > from other OSes. > > > >> Plan 9 assumes trust-separated, multi-user operation > >> > >> Each user runs in an isolated namespace context. > >> Resources are mounted into the session explicitly. > >> No global environment exists for all users. > > If we see the computer as an extension of the user, there is a global > > environment: the user. > > > > The user is always the global environment of their own "computing/thinking > > space". On most systems, the computer itself provides another part of that > > same global environment in the firm of a single view on the abstractions. > > > > A plan 9 system is different, as each window provides a different local > > view and is this not part of that global environment. > > > > However, you can argue that the rio background is part of that global > > environment. And that same environment is often used for the plumber, > > webfs, factotum, and so on. > > > >> Fonts, window systems, and authentication are per-user. > >> They are often delivered by different machines. > >> This model supports separation, not convenience. > > It still is convenient. In fact, it's so convenient that modern systems use > > that, too. Password managers are often storing the secrets in the cloud, > > personal files are often mirrored, user accounts exist on some server, and > > so on. Because it is convenient. > > > >> A tablet or wrist device uses one user by nature. > >> Plan 9 must be reconfigured to avoid multi-user defaults. > >> Otherwise, graphical support will remain incomplete. > > Why? > > > > My pixel watch is coupled with my phone, so it would naturally get its user > > settings via that. > > > > Android tablets support multiple users for many years already. > > > > And even then: why restrict a feature when you can just decide not to use > > it? > > > > Most OSes support multiple users, but most machines are only used by one > > person. > > > > I don't see why this situation would lead to "incomplete graphical support". > > > >> No touch input, accessibility, or decoration exists. > >> These would need to be implemented as external layers. > > Sure, these are missing components (besides decoration, which is optional). > > How they're implemented (external components it not) is a completely > > different topic. Localization is btw also mostly missing. > > > >> To add those layers means departing from Plan 9’s model. > >> The system is not designed to embed them natively. > > None of the modern systems supported them massively. The unit systems > > weren't even designed to support any graphics massively. And windows, > > originally being an extension to DOS, didn't even have preemptive > > multitasking! > > > > I'd argue that plan 9 has more native support for graphics in general than > > all those systems had back then. > > > > I'd also argue that you wouldn't have to depart from the plan 9 model when > > implementing solutions for the mentioned problems. In fact, I believe you > > can find more elegant solutions on a plan 9 system. > > > >> Desktop conversion leads to architectural misalignment > >> > >> The goals described include tabbed windows and input support. > >> Also included are gestures, integration, and persistence. > >> These needs align with GTK, Qt, or similar stacks. > > Why? Because we want to transform plan 9 into a Linux? > > > > If I wanted a Linux, I'd still use it. > > > > People wanting tabbing support doesn't equal them wanting the exact same > > thing i3 provides. > > > >> Such systems offer abstracted input models and event loops. > >> They support theming, drag-drop, and high-DPI layouts. > >> These are not present in Plan 9’s design constraints. > > /dev/mouse, (/dev/theme), /dev/..., libevent, just to mention a few. And > > they just work, unlike any word abstractions they have on other systems, > > that only work under specific circumstances. > > > > And the fact that those systems provide all those features doesn't mean > > that we want them or have to copy them. I never missed drag and drop, for > > example, but I miss plumbing and mouse chording on other systems. > > > >> Plan 9 is not incompatible with graphics frameworks. > >> However, these do not exist in its environment today. > >> Adding them requires constructing new interface layers. > > Or, following the plan 9 architecture, new /dev devices or other > > filesystems. > > > > Like anything on plan 9 does. > > > >> These layers must track state and handle input contexts. > >> They must coordinate redraw events and window geometry. > >> No such tools are included in the existing distribution. > > Yeah, because nobody has done the work yet. > > > >> Bringing these features into Plan 9 changes its scope. > >> It introduces code unrelated to its original structure. > >> The result will diverge from its operating assumptions. > > No. Plan 9 is designed for this. > > > > Otherwise I could argue that every port would diverge from the original > > plan 9 assumptions, because they introduce new drivers. Even though the > > filesystem abstraction is the same and this compatible to that in other > > ports. > > > > Sure, we need to introduce new filesystems with new abstractions that > > didn't exist yet. But plan 9 is designed for this. I could even say, that > > is exactly what plan 9 is for! > > > >> Architecture defines outcome more than tools > >> > >> This is not a question of capability or desire. > >> This is a question of alignment with core abstractions. > >> An OS is shaped by its target model and constraints. > >> > >> Plan 9 targets distributed, coordinated systems. > >> It does not assume a local screen and local control. > >> It assumes named users with private namespaces. > > That's why we don't have devdraw, devmouse, devcons, .... > > > > The mentioned components are explicitly designed for a "local screen" and > > "local control". > > > > "Local" in the sense of astral projection, if you get that reference. > > > >> A desktop OS assumes a single, local, GUI-heavy use case. > > I don't agree. Any desktop OS provides capabilities to allow for multiple > > use cases. Most use cases nowadays are handled in a browser, which means > > the task is happening on a server (thus not local). > > > > GUI-heaviness is not an argument. Most plan 9 users use rio (or some other > > window manager) and start graphical applications, btw. > > > > Funnily enough, most Linux users that I know start a terminal emulator at > > some point. > > > > Putting more functionality into GUIs is also not necessarily good. > > > >> It provides persistence, session memory, and input focus. > >> It assumes consistent visual interaction patterns. > > All of this exists on a plan 9 system, just in a different way. > > > >> These two models begin with different root structures. > > They do in some core aspects, but UI-wise, they logically aren't so > > different. > > > >> They diverge at the level of system services. > > Sure, as that's the point of having a different OS. > > > >> They do not share the same goals or interface paths. > > I partly disagree. Of course, plan 9 as a research OS has a different > > focus, but that doesn't make it incompatible with a user-friendly desktop > > environment, whatever that is. > > > >> To extend Plan 9 into a desktop OS is to rewrite it. > >> Most layers would need to be added or redesigned. > >> This is not a continuation but a redirection. > > I don't agree here. > > > > A desktop OS is about UI, and UI is about the user. Since the user needs to > > learn any interaction with a computer, we shouldn't copy things, but > > research how to integrate the user with the core system. The result of that > > research can be used to design a system that represents plan 9 and is > > simple enough for the user to learn. > > > > A few examples in our community show that it is already possible to use > > plan 9 as a user, as a desktop, to some extent. Following the described > > path can extend the functionality of the existing UI and make it more > > usable for a larger user base. > > > > That can involve rewriting a few components, but not in a sense of just > > copying what exists already. That said, it is fine to copy solutions if > > they also work for plan 9. > > > > Note that I said "desktops are about UI", not "desktops are about GUI". I > > believe that a user doesn't necessarily want to do everything graphically. > > The user wants to use a good user interface. > > > > An example: Everyone I introduced to git, I started with some git gui. And > > everyone just used the command line at some point. And I wouldn't even > > count the git CLI as "good". > > > >> Other systems already provide GUI-first design. > >> Some of them include Plan 9-inspired structure. > >> Haiku and i3 on Linux are notable examples. > >> > >> These systems begin with graphical interaction in mind. > >> They support single-user tasks and desktop workflows. > >> They reuse or wrap standard interface abstractions. > > Desktop doesn't mean GUI-first, in my opinion. And also, plan 9 was more > > graphical from the beginning, and they considered graphics at the core. > > > > Standard interface abstractions might be standard, but they are still > > learned. > > > >> Plan 9 does not. > >> That distinction defines what can be built on each base. > > So, let's all just throw away plan 9 as it was clearly never designed to be > > used by an end user? > > > > I don't agree. > > > > In fact, I believe that we have to go to the base of UI research and > > understand what it means. It's not about copying standards, it's about > > building new standards based on research. Standards that work for a user of > > a plan 9 system. > > > > It's a challenge, but that's just what UI design, human interface design, > > and HCI is. > > > > In that aspect, plan 9 should still be a research OS. And that's a good > > thing, because we don't have to follow the expectations. > > > > sirjofri > > > > [1]: people like sigrid, adventuresin9, and myself have worked or are > > actively working on different toolkit solutions. > > > > [2]: https://shithub.us/sirjofri/notif/HEAD/info.html ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/Tf84d656c78bbda91-Mb8d1c8c3062baaed0463b8f3 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
