Posted by signa11 16 hours ago
> NEPOMUK
Oh, how I hated that thing... At the time it was added to Fedora, the support forums were blowing up with complaints and requests to remove it. I've never seen it do anything useful, but it was always at the top of the top (pun intended), if it was still present in the system. Whatever its use case or design goals were, it just was not a good quality program at all. It's a shame that it might have been an interesting direction, if it tanked almost exclusively due to poor execution.
Finally, on the new directions in the desktop features: some do look interesting, like the Canvas thing. On the other hand, it feels like it might be technologically challenging as the concept itself is too open-ended and doesn't have a small and easy to understand model of operation behind it. Well, time will tell. Maybe it will materialize in some way.
I also think it's unfair to say that nothing conceptually new has happened on desktop for 40 years. Tiling managers are definitely deserving of such a description.
I also think that if we are talking about "specializing" on wide screen, then, maybe even more prescient is the problem of multiple screens. A manager that is aware of multiple screens beyond merely duplicating or gluing them together would be a big improvement. I.e. if screens were assigned roles based on expected functionality / received their own character based on what the screen is assigned to display, perhaps, each having their own cursor, or windows stack that don't overlap with the other screen etc.
I want to get some work done: Just as an example, this work consists of reading some email like "pls review this document, and create a presentation in response". I'll follow up the email with an answer and some clarifying questions. Then I'll read the document, making some notes. I'll read some additional documents, google stuff, look up some numbers, do some calculations, make more notes. Then I'll start drafting the presentation, refining it until ready, reading my notes, firing off another email with a few more questions. Then I'll send over the first version of the presentation.
Now all of those things live in different applications. All of those applications might be local file based or web-based. Some can do both. So I could try putting all the relevant files in a folder, holding all the files I need for this task. But wait, when I save an email as a file there, I cannot properly respond to it anymore. It is just a copy of the original email. Same for all the web-based stuff that even allows local copies. If I use hyperlinks, in the URL-as-a-unique-resource sense that was originally intended, I could link it all together in my notes. But many, if not all, modern web applications do not work that way, I cannot really link anything. And even if, most URLs are not stable. If I google something, I'll find a page I can bookmark or copy the URL of, but that page will change. To save the current state of that URL, I'll have to jump through a lot of hoops to maybe get a PDF printout file or something. And changing any document usually overwrites the previous version, so I'll have to do *-copy17.odt or deal with 20 different broken internal mechanisms of "version tracking". I can check everything into git, but then all the applications will have no clue how to deal with it, no proper diff, nothing.
One thing that I actually want was implemented in the first version of PalmOS as a hack: every application could contain links to every other application's content. You could link from a calendar entry to a contact who you wanted to visit. You could link from a contact to a note, detailing your last talk with each other. You could link the note to the last offer you sent the customer. etc. Of course this was rudimentary, but it was a start, which unfortunately died with later versions of PalmOS where those hacks were no longer possible. So for my original example, I want the original email to be annotated with a link to all the files I've created in response, all the web searches I did, etc.
Another thing is the notion of version control, extended to all desktop and web applications. I want to know what I did, when I did it, why I did it, and what related changes go together. I want to see the same thing for all my colleagues. I don't want any "this file conflicts with what your colleague did, which should I overwrite?". I want proper merges. In each application.
The only thing that even comes close to this nowadays is something like Emacs Org-Mode. If you stay strictly in Emacs.
Or is it just that I didn't try enough stuff and there is a real solution?
Something I find sorely lacking in most modern desktop systems, Linux included, is the performance I expect given the power of the hardware available. Barring that performance increase, better perceived performance through subtle UI changes that elide over waiting moments is nearly as good.
Linux leaves a lot to be desired here. It's easy to bash Windows or Mac, but the performance issues on these systems are often difficult to perceive during normal usage while in Linux it is front and center and harder to understand because Linux is a box of parts.
You could basically look at all the ways that UX has advanced on the Web and almost generate a very long TODO list of things to improve on the desktop. I know there are a lot of people here, especially of the Linux using variety, who revile Web UX, but the things most people complain about (privacy concerns, bloat, document vs app platform) happened specifically because desktop UX stopped innovating 30 years ago.
Some personal peeves, all from having to reimplement these things in projects over the years, which is now many projects because I'm now old, so having to do the same things over and over again is getting annoying:
Multiple Document Interfaces used to have built-in support in GUI toolkits. Pro-oriented editing environments like Visual Studio not-Code and Photoshop gave you the ability to have multiple documents open and operate on then on a single application context. While this is a bespoke implementation in those programs now, that's largely because the UI toolkits didn't keep up with newer features like docking, tabbing, etc. Browsers themselves also had to implement bespoke UI for tabbed documents, again for the same reasons. It's shocking how bad this is in VSCode, where certain kinds of sub-Windows can only be put in certain places, but again, that's because they had to do it from scratch. Now, there is no MDI support in the browser at all, you're left implementing it from scratch, and modern GUI toolkits seem to all just try to ape HTML/CSS (not that I think that's a completely terrible approach, but only because The Desktop Toolkit is Stagnant).
With modern large screens, I find myself at a loss for how to use all the screen real estate effectively. Not that I lack for need, but because I can't seem to get everything I want to see into a comfortable position without sacrificing some other thing. Yet, at the same time, I can't seem to fit much in my own application window. This one is more on me for not having too great of design skills, but I think there are some fundamentally difficult issues to solve here since nobody is going to have a 40” laptop. Fundamentally, the issue is one of being too rigidly reliant on the Application Developer to implement such things as MDI and tool layout. We kind of figured that out with responsive designs break-pointing when going to truly small screens on phones, but I think this could be done more automatically if the GUI toolkit was better.
Smartphones, laptops, and desktops aren't the only 3 workspace sizes. There's also the completely borderless, 3D space of the VR home environment. After experiencing Windows Holographic for the first time and experimenting with using a Hololens as a primary compute device (and then drinking away the massive headache), I found a lot of interesting glimmers of how spatial computing could do a lot for people. I really enjoyed having 2D documents mounted on the wall behind my desk, not needing a screen to take up space on my desk. Having a music player app pinned on a specific spot like a HiFi stereo stack just felt so much more comfortable than wearing headphones, and it was so much easier to turn my body to interact with the stereo rather than sift through my window stack to find the music app. Keeping certain app widgets in certain locations around my house (notes on my refrigerator door, Email away from coding) felt very natural and like it was helping me re-establish balance in my work. But it was all for naught as MS killed Windows Holographic and all the other devices are just pushing virtual 2D screens on which unmodified WIMP interface desktop or mobile apps can run.
Handling the myriad of document types bespoke for every application is extremely bothersome. Having only the file extension for any hint at the content type is extremely unreliable and incomplete (there are thousands of known content types not just image/png, image/jpeg, text/plain, text/markdown, and application/json). Plus, the extension only tells you the container format, the data itself could be in wildly different schemas/encodings, especially when dealing with .json or any audio/video files. Doing deep content inspection is slow and also unreliable because so many JSON-based formats don't reliably implement JSON Schema. This could be solved if we got rid of file extensions and had the full content type string embedded with the file at the File System level. A file's name should be a description of the contained content, not overloaded to store data encoding information.
After writing all of this, it started to dawn on me that these are all the same problem of wanting to composite application together from smaller bits in a unified workspace that I the User control, not dependant on me the Application Developer to provide the support for it. Because, at the application layer, I can't. I can't unify whatever features I'm building with features other app devs have built. We need this to be at the DE level or there isn't a standard to which app devs can work.
Even my complaint about content types fits into this because most of the time I just need to display and play back a file in whatever the one standard way there is to display such a thing. I'd much rather the UI toolkit provided better media players with an OS that went beyond the application window for giving people the ability to composite functionality together. With Adobe Acrobat installed, I as a User should now be able to use PDFs anywhere else I want to view Text or Markdown or Word documents and I as an Application Developer should not have to think about what document formats my users might throw into my application.
The VR home environment makes this issue a lot easier to see, as the Window does not make sense there, but I think this generalizes to 2D, screen-bordered scenarios. Most of the need for better application composition is around not having to rely on every Application Developer to implement everything themselves. Because, when you leave it to App Devs, you get abominations like Snapchat and Instagram.
This bit reminds me of TRON/BTRON, a Japanese OS where a core principle was that users interacted with documents made of fragments which were documents themselves.
"The file and the application were implementation details […] the user-visible primitive on a desktop computer shouldn't be a file or the application, but the typed document part."
https://www.xda-developers.com/japan-tried-build-operating-s...
Open desktops are like an architect that keeps moving the bathroom doors in a building under perpetual construction. The ecosystem naturally destroys itself every major release cycle, work put into quality of life improvements is lost, and code smell is so terrible people just abandon the projects after it becomes burdensome.
The mistake people make is trying to reason with people about which groups breaking changes take priority. This is why Cinnamon continues to run desktops on systems with broken GPU drivers, and installed as a fail-back GUI plan when Wayland glitches up.
People need to stop telling new users to follow a 15 step CLI tutorial to bring up a broken distribution Desktop. =3
I mean especially in the age of AI agents, two things are true, first, customizing your desktop, tiling manager, monitoring widgets, shortcut keys, hooking up hand gestures, eye tracking, foot pedals, whatever, to workflows is now so much easier and accessible to completely non-technical users, especially in open source desktop environments.
This is undoubtedly a good thing and many of the responses here are along the lines of 'I like to customize it like this' but I'd bet a lot here also know completely non-technical users who have setup their own weird ass workflows using excel and autohotkey or whatever just to get shit done.
The second thing that is true, is that increasingly we are handing control of apps to AI agents, or even just whole desktops, which is just greaaat (tm). but also incredibly risky since our desktop environments are built on 1970ish era unix multi-user mainframe system design, where one app you install has access to every single other app in the same user space, which is basically root, since you hold everything in one user login anyway. So all it takes is one supply chain attack, one malicious package take over, one zero-day prompt injection against a popular app in a certain segment and then your entire user profile and all your data is exfiltrated.
There are people working on this, Flatpack, Wayland, Fedora. But I think it needs a lot more attention. Android has got this model right for the most part despite the friction it sometimes introduces.
Also I would say this is not just about ai agents thing, but I don't want to install a desktop meme generator program (or pick your thing) and then have it be able to monitor the entire rest of my user profile. This problem existed before AI agents, its just maybe more relevant now.
> He thought that it would be possible to do the things he was demonstrating with Wayland as it is today.
Yeah, with that AND The cooperation and rewrite of every app to actually support usecases like "if dragged to side of screen, get smaller and smaller eventually becoming a widget"