People have different ideas of what's good UX, because everybody comes from their own tradition of using desktops. Some people don't see anything wrong worth evolving from with mouse, point, click. The kind of thinking from the article, from someone that only worked on big companies, is the thinking from someone looking for the next big product, which I look with suspicion. At some point this stops being about good UX and starts being about a good product that makes good profit.
True revolution in UX will come from making customisation accessible, so everyone can decide what's best for them without losing their minds in endless customisation rabbit holes or having to rely on big and clumsy organizations.
True revolution in UX will come from making customisation accessible
...like it was back in the days when Windows actually had a very customisable UI[1], and then the "skinnable" UIs of the early 2000s (most of which were extremely gaudy, but then again, maybe that was what the majority of the population wanted.) Now it has devolved into little more than this: https://support.microsoft.com/en-us/windows/experience/perso...
Hot Dog Stand is really illustrative of the change in attitude. Previously: "It's your computer, of course you're allowed to make it look ugly." Now: "It's our computer, that's not on brand."
The difference between big-company and FLOSS UX design, including profit-motivated behaviors (a bit indirectly, but it's definitely there), is specifically addressed in the article, so I don't think that's a very fair characterization.
I actually agree about customization, but that's only part of it, and seems to be pretty orthogonal to what the article is talking about. You can only customize to features that are actually implemented by the system, and coming up with those seems like the harder problem.
I hope I'm mistaken with my unfair characterization, but until I'm proven wrong I'll take these addresses as suggestions rather than core principles.
> You can only customize to features that are actually implemented by the system
> (Customisation) is only part of it, and seems to be pretty orthogonal to what the article is talking about
It's not orthogonal because implementation without ergonomics is meaningless, which is what customization accessibility is all about. It needs to be a core design focus on the end user and not some obscure API only maybe Redhat will use to implement business support.
We have lots to work on already. Hyprland on archlinux is crazy customizable, but it's a far cry from what we should expect from a customizable and accessible system intended for a more mainstream audience.
> 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"
> The final, particularly strong, objection from the tech community is "don't touch my stuff". People get angry when they have worked hard to get their desktop environment just as they like it and something changes to disrupt that.
Yeah, this can be a little extreme, and I feel we can benefit from being a little more open to trying new things.
The part about designing specifically for large displays and widescreen monitors was interesting. We can also reverse it, though: right now I'm away from home, and I only have this old laptop which is mostly great but has a shitty touchpad as the mouse, and I have to think this must be really common. However, this situation seems to be completely ignored by all desktop UX design. We seem to be pretty good at coming up with ways to use the mouse in our programs, but when the mouse is hard to control and unreliable, it causes pain. I guess I can use ratpoison or something, but that seems to be giving up too much.
Regarding the AI going deep into the filesystem and organizing my data...I'm extremely skeptical of inserting any kind of inherent unpredictability into how I interact with the computer. Giving a command or input should produce a well-defined and predictable (in principle) action. Getting rid of that paradigm fundamentally changes the relationship between the user and the computer in a way that, in my opinion at least, greatly diminishes its usefulness as a tool.
Here's another thing that's just completely ignored: touchpad as anything other than a mouse replacement. It's possible for a touchpad to allow things like pinch-to-zoom, but nobody's really doing that. You could even use it as a low res painting tablet.
Well, Apple is doing it. The touchpad experience on macbooks is really on another level than all other laptops and one of the main reasons that's keeping me there.
How is the primary way of interacting with your computer being good a gimmick?
I try to use my partner’s windows laptop and it’s borderline unusable for me. She only almost uses it with a mouse plugged in. Meanwhile I don’t think I’ve ever seen someone plug in a mouse to a MacBook that wasn’t docked to a monitor and keyboard.
Pinch to zoom and two finger scrolling work well for me in most Windows apps. Apple has a few touchoad gestures that I don't believe have equivalents elsewhere, but they would be pretty neat.
The main issue with going beyond the mouse is that it involves changes across the event handling stack. For track pads, you have to build multi-touch infrastructure up ro a point and then there is a decision: what are gestures that are handled at a desktop level? What are gestures that get converted into semantically similar events (e.g. tap->LMB click)? What gets passed through as multi-touch? This ends up touching a lot of parts of the desktop software stack and the amount of required buy in to get this done on Linux seems massive.
Then change the stack. We can't be stuck on obsolete inefficient mental models. We are programmers, we can change software to fit new requirements. We already found ways to deliver keyboard input to the focused window.
Pinch-to-zoom is handled by libinput, and exposed to gtk apps. Works fine in firefox. Works in GtkWebkit views. works in Loupe the image viewer. works in Gnome Maps. Even works in Emacs, ffs.
I don't understand your initial comment at all, then. You want touchpads to have features they already have, which you haven't tried, because you don't have a touchpad?..
You understand that I can understand that parts of the system I don't personally use right now have issues right? Like I don't use systemd, because it sucks, but I can still say systemd sucks.
I think the big issue is that the user doesn't have a choice in many cases. Windows obviously doesn't give the user a choice, they made the start menu much shittier and you had to live with it or go away. Popular distributions like Ubuntu also focus on one desktop environment, and it's often not easy to switch (it's possible of course, but at least when I tried it a long time ago just installing a different desktop wasn't enough).
Making it easier to choose allows for much more experimentation. I'm using Niri right now, which certainly isn't something you can just give users as a default.
People from outside the tech community also do not like things changing, they just do not have the same choices or have the same voice. I have come across people who use old versions of Windows because they do not like UI changes, but they do not have another choice.
> Yeah, this can be a little extreme, and I feel we can benefit from being a little more open to trying new things.
Sure, sometimes, when we have the time and surplus to deal with changes to things that already work well enough, and are not essential to doing our actual job.
That should be something you can opt in to.
Changing things for someone who's actually doing real work on top of the existing setup, is an undesired hurdle.
People are change-averse because they've been taught that change is costly, and they completely rationally ask "what's in it for me?".
You want them to buy in to the change, you better give a good answer to that, one which is a more than negligible benefit in a few cases that the user may not care about.
"Good enough" is good _enough_, it doesn't _need_ changes. Any change has to pay for its own retraining cost, in time and mental effort, otherwise it's a net negative for that user.
Being change-averse is the rational default behavior. Ignoring that, or even belittling it, is disrespecting your users.
I would replace the start menu with a Raycast clone. Most people want to open files, ask a question or run an app they know the name of, not scroll a list of things they might never use. If you add in semantic search users don't even need to know the app name.
It's also a perfect use for local System One models that can classify prompts and forward them to the right module - calculator for math, distrobox for shell commands, LLM for natural language questions and normal search for everything else. Not using a fixed classifier because plugins should be able to add their own question types.
The article mentioned WinFS and relational filesystems. That's another good idea, integrate metadata so you can support use cases like finding all pictures of your dog or all playlists with Ed Sheeran songs (to remove them). Everything bound to the file entries instead of ID3 tags inside the file or app specific databases. It would be a lot more reliable and probably faster.
IIRC bcachefs is already a relational database but I don't know how good the query APIs are. If we can't do full extendable tags then at least add user defined groups/tags like Work and Games and Photos to make finding things easier. People remember what a file is better than where it's stored.
Good suggestions yes. Strong ideas. Ultimately the desktop has been content to let the apps take over more and more, while not extending itself. Actually making the OS something that actual activity happens on feels absolutely essential. Making a Raycast/Vicinae (the pretty great open source port) integral feels like it would go a long way towards this end, of offering a consistent way to expose & access the toolbox.
I'd love to see an agentic OS where the OS and apps can both talk in terms of MCP things like resources, tools, skills. Yes these are primarily geared towards agents, but they are also acceptable machine-to-machine interfaces to script against too (so long as the type signature remains compatible).
Android's Intents feel related, similar-ish. It's a pity no one bit on PK's WebIntents. That could have been an interesting way to create abstractions for intents, for activities, for stuff happening on the computer. Notably the xopc actually had activities and a journal that let apps contribute meaningful intent to the OS as a whole. But mostly it just ended up as a history viewer there. Android mostly uses intents as a launcher. But this idea of having the activities of the system as available abstractions could go much further.
> I would replace the start menu with a Raycast clone. Most people want to open files, ask a question or run an app they know the name of, not scroll a list of things they might never use. If you add in semantic search users don't even need to know the app name.
So I’m looking at the Raycast web site, and aside from the UI being a little different, Raycast seems like it is itself a clone of the already long-existing KDE Plasma start menu and KRunner? I guess the only thing missing from the KDE one is “AI”. Is there something I am missing about how Raycast is some innovation not already realised in the Linux desktop?
Raycast is successful because it's an incredibly widely used and adopted integration layer. The official repo has thousands of plugins, pretty well maintained together, collectively, and there are thousands more out there. https://github.com/raycast/extensions/tree/main/extensions
KDE krunner has plugins. But there is not afaik a big tent ownership system like Raycast. And krunner is only going to attract KDE users. Raycast is mainly mac, but also, there's Vicinae which runs on a lot more systems, and it can run >50% of the Raycast plugins without a sweat, is designed to be drop in compatible.
It's also absurdly easy to write Raycast extensions. It uses web platform technologies that "just work", that don't have ornery toolchains and need lots of dev libraries installed. With KRunner you can probably use whatever library you want to do whatever you want, which is good, but hard, where-as with Raycast there's a pretty comprehensive and powerful API that offers a ton, that is well defined, and that other plugins will show you the way on. https://developers.raycast.com/
The AI features arrived with the recent v2 release. Raycast originally became popular as a better Spotlight replacement. As you can see, the idea was never entirely original, since Apple and other apps already offered many of the same features. Raycast’s strengths are its extensibility, lightweight design, speed, and excellent UI/UX. It’s a well-polished app.
That was Raycast v1, though. I don’t like the direction they’ve taken with v2, so I uninstalled it and switched to Tinycast.
Last thing I would want AI running on my desk and doing unpredictable things. I love my silly simple Gnome desk or barebones i3 with everything mapped to my preference.
I can search and enter my search, and expect same results everytime, so muscle memory friendly. Gnome's search does calculation in search just fine, or search files, no need of any models. And app can provide their own search endpoint that gnome uses, to search in the app. Repetable, simple, and light.
Its boring, but hey, your everyday thing that is your starting point of the day do not need random behavior, or getting dependent on some 3rd party app that suddenly pulls the rug from under you.
For me it was a major revelation when it was pointed out that, for someone who doesn't want his desktop changed, I did install all sorts of crazy things when I was starting with Linux (Compiz plugins, anyone?). And while Gnome 3 pushed me into Mate, it wasn't because it was different but rather because it was bad. So I'm excited about someone trying something new, particularly someone who realizes that the Desktop is not a tablet.
Here's an idea that I believe I read in HN as "the original purpose of the desktop": add a Desktop Manager that manages which icons are on your desktop and makes it easy to switch.
The desktop is kind of weird, in the sense that it's prime real estate but, at the same time, there's an expectation that you shouldn't put too much stuff there, and then it ends up cluttered anyway. I think it's worth trying a stronger separation between "Desktop" and any other regular folder, emphasizing that the Desktop is where you place links to the files you need right now, but with a mechanism to clear it completely (without losing data) and another to switch which icons you see right now, kind of like browser tab groups. That way, when you're working on a project you place the files you need on the desktop and when you're done you clean it up.
> The desktop is kind of weird, in the sense that it's prime real estate but, at the same time, there's an expectation that you shouldn't put too much stuff there,
If we go further into the metaphor of a desktop, there would be sections for tools and sections for pending work. The inkwell versus the blotter, if you will.
And then... well, what difference is there between a designated area of the desktop for files, versus a regular window showing some contents of a folder?
When I was on Windows there was point in time when I use Stardock's Fences, around or between 2010-2014.
Pretty nice product as I recall, lots of features to make the "Desktop" more or less dynamic. Pretty soon after I stopped using the "Desktop" entirely.
On old Macs you could drag files and folders on the desktop, work from there, and then put them back where they belonged with a single command, one by one or all at once. Applications used file IDs to refer to them, so all references kept working (not only with the desktop, but with all moves and renames). But old Macs had a different filesystem; modern filesystems are probably not fit for that.
Correct. It's not so much "modern macOS" though, it's a feature of APFS[1].
> Most of us still think of file systems in simple terms, like HFS+. Duplicate or copy a file, and macOS copies all the data to a new storage area and makes that a different file. Thankfully, APFS is much smarter than that, and regularly – indeed, as a rule whenever it can – doesn’t copy any data at all. What it does is create a clone file, which is a bit like a hard link, in that the file record points to the same data as the original. Unlike a hard link, the clone is a separate file, with its own iNode.
Yeah I think that's the ideal use of the desktop, as a temporary area for what you're currently working on. It's a shame that Microsoft didn't copy the "Put Away" feature when they added desktop icons to Windows 95, and the desktop became a combination of a generic storage area for files and a place where program installers dump application shortcuts. Then everybody (including Apple for Mac OS X) copied Microsoft's approach instead of Apple's.
I agree, GNOME 3 and all the subsequent versions are so bad. They made GNOME into a glorified tablet environment, but I'm using a desktop, not a tablet, for a reason.
I'm still mad at GNOME developers for ruining such a good desktop environment.
Luckily, Linux Mint managed to create a good environment that is as pleasant as using GNOME 2.
I bought a tablet to use with Krita and settled on Manjaro because Ubuntu had so many tablet issues. Everything I tried is especially bad with 4k touchscreen/pen. I started with KDE, then Gnome but DE really didn't matter because they're all so terrible - it's now for watching videos or travel only.
I left Gnome 3 for Mate early on and I never looked back, but here are the issues I remember.
First, dialogs could not be dragged to the side. It took me less than one day to realize that, when it comes to naming a file, I need to look at the document to remember, for instance, the name of the institution I'm writing to. If I can't move the Save dialog then I have to cancel, find the name, remember it, and start the save process again, at which point I also lost the folder I had navigated to.
Showing app icons without categories is useless to me because sometimes I don't know what the app is called, only what it does. I know I have a webcam app and I know it should be under Video, but I have no idea what it's called. Gnome's flat hierarchy makes it harder for me to find what I'm looking for.
Removing the individual window menus and the icons for minimizing and maximizing kills the muscle memory I've built over the last 30 years - same reason why I hate that the X button on Mac doesn't really close the program.
But on the topic of Mac, that's for me the main problem: that Gnome 3 wanted to be MacOS and copied their ideas regardless of whether they make sense to their users. I know the things I mentioned above may sound small but those are constant papercuts that remind me every 5 minutes that I didn't use to have so many papercuts. I can't imagine that anyone did a proper usability test before dropping what, to me, were breaking changes.
There were other factors like the attitude of "this is how it is now so take it or leave it", but the whole process led me to realize that I don't want to think about my window manager and that, if I'm thinking about it, then it's getting in my way of doing actual work.
There's no point in answering this question, either you get it or you don't. If you get it you get it. If you don't it's because the way you want to use your desktop fits exactly into the design decisions of GNOME and you can't even imagine somebody wanting different features.
It can't even be chalked up to an extreme lack of imagination because there is a plethora of desktop environments that do things differently from GNOME that you could look up to figure out why one might think GNOME is bad.
Go to gnome.org, scroll down to "Developer Platform" and look at the title bar of the screenshot there. If you see a clean interface, then no reason other people give you will help.
But, if you do see the arrows there and think - why are there so many arrows and dots? It looks like bad UX. They you can see the issues others are talking about.
what an amazing example. We have on one window title bar:
- a "+"
- a down-arrow which presumably opens some sort of menu
- a hamburger menu (why is this different to the down arrow?)
- a "..." menu (err, isn't this the same as the hamburger menu and/or the down arrow?)
- A "hammer" icon next to the word "fetching". Because... Hammer Time! Also, yeah we use a hammer to fetch things. I think that's something we can all get behind.
- another two down-arrows. One probably opens out options for the "hammer" bar. The other...?
- an up and down arrow. Maybe this actually changes the options for the "hammer/fetching" bar.
- A search magnifying glass (no search field curiously).
I currently have ~12 windows open (Win11 explorer, office, dev / terminal apps, sublime, Firefox, signal) : almost every one of them has a different top bar.
Also, something about "Podcasts" in what is presenting as a Rust IDE. Looking more closely at the rest, I assume this is because it's the name of the project being edited, but it's still confusing. Fundamentally the title bar is being split in two, with a separate part for each main column of the window, as if it were really two windows docked together.
Visual studio does not look like this, because it uses text instead of icons. Which both uses less space, and is much easier to parse.
The gnome style client side decorations versus traditional menu bars is just bad. It works okay if your application has like… two buttons. Which, to be fair, is many gnome apps because they’re so feature-anemic. But once you have many functions, it becomes a mess that wastes huge amount of screen space.
Nobody wants to adapt because the workflow is worse. Things take longer, more clicks, and more information is hidden, necessitating submenus and more submenus.
Simple example: you have 3 file manager windows open. Go choose the correct one with the directory you want. On my KDE setup, the window is right there in the dock. I can see the window title and know it’s the correct window, so I click it.
On Gnome, first I drag my cursor to the left to show the dock. Then I click the icon, because of course app windows stack. Then I squint at the thumbnail and find it. Or, alternatively, I open the overview and hunt for it. Maybe it’s on a different desktop, I hope not.
The workflow is just worse, and this extends to basically every workflow in gnome. It only becomes okay when you abuse keyboard shortcuts, because the actual desktop UX is so bad. And people will actually turn around and claim that gnome is good because of keyboard shortcuts!
No, it’s not! Every desktop has keyboard shortcuts. Gnome is the only one that forces you to use them, because the interface is so obtuse, slow, and obnoxious to use.
The Desktop isn't prime real estate when you are actually using your computer and have windows covering it. Then it becomes cumbersome to access anything on it, even with a one click show desktop button.
Having the desktop not also be a file dump by default and instead a space for mostly useless widgets was one of the few good things KDE 4 did.
Key issue driving any conversation about desktop environments; so many people have vastly different workflows and expectations for their computer.
Personally, I keep my desktop absolutely sterile, usually some geometric patterned background, and that's it. Autohiding taskbar, no shortcuts, etc. It keeps me from having the "stepping into another room" effect when I sit down at my computer, which I'm very prone to. That means I can hit win/option/spotlight depending on the comp and launch the program I sat down to get into, without thinking "Oh yeah, I meant to edit that excel file..." and going on a 30 minute tangent.
It's for this reason that I find the desktop generally of more use on a Mac than I do under Windows or under Linux with a Windows-type DE.
macOS is built around the idea of windows being sized and positioned as they will, with very little management (automated or otherwise), leaving a substantial amount of desktop exposed most of the time. As a result, the desktop gets a lot more usage as a staging space since it's constantly available for drag and drop operations (both to and from).
In Windows-paradigm systems on the other hand, it's almost a given that the screen will be filled entirely with 1-2 windows and the desktop is only ever really visible upon reboot or hard context switches.
The Amiga Workbench was semi-spatial in that you could snapshot icons in place so their locations would persist, but you could also drag and drop icons everywhere without saving their location and it'd reset next time.
My current desktop works like that. It's not quite what you're describing, but it's a couple of minor iterations away to allow multiple different snapshots.
I remember in the old days the desktop was like a starting point. You'd open the drive that had the program you wanted to use, double click it. Or a little later you could double click the document you wanted to edit and the relevant application would start up automatically and open the doc.
Now I never see my desktop. A handful of apps, primarily Chrome, are permanently open in front of it. The computer is always on, if I reboot then the previous state more or less restores automatically.
So the desktop itself is not really prime real estate any more. It's more of an abstract idea, the layer underneath all the useful bits. The windows have taken over.
On macOS the desktop path is where screenshots go... so mostly I just have a litter of 100s of screenshots there.
Communicating at work seems to involve taking lots of screenshots.
Usually these are files I don't really care to keep around, I just need it in the moment so I can add it to a message in Slack, Teams, Jira, Github etc.
So it feels like this primitive could maybe be built into the OS in a more developed way than just screen area -> file, so that you could access it directly from apps (in a consistent way - as an OS feature) and avoid generating junk files.
I've noticed this shift too, my computer is normally turned on 24/7 and has things open. Because rebooting it and reopening things is usually a pointless waste of time. Did this shift coincide with the internet changing from a place you visited to a place you always were, with the rise in smartphones?
When I first met Linux desktop in the nineties, I was blown away - and I was completely convinced that Linux would overtake Windows as the preferred desktop within a few years. Little did I know that what we would end up with was a thousand mediocre variants of it, instead of a few awesome ones.
My own Linux desktop experience peaked with Compiz, and I have been on macOS ever since.
I don’t know man, Linux desktop in the 90s was extremely rough. It wasn’t until the 2000s with KDE 2 (though really 3 IMO) and GNOME 2 that Linux desktop started showing promise. It was then subsequently dragged down with many alternatives and infighting. Personally I think only KDE kept slowly progressing better. I didn’t even like KDE until GNOME 3 pushed me to it. Every now and then I try GNOME 3 to see where it’s at, and just get baffled by the choices they make. Both Windows and Mac also had baffling choices along the way (in terms of desktop UX). Windows more so obviously, but they both would course correct every now and then. GNOME seems laser focused on some desktop UX vision I can’t even begin to understand.
Even if the desktop turns out to be done though, UX polish like that drag thing is still a good idea. Like why does no major desktop let you just put icons on your desktop the way classic Windows does?
Could be because this promotes a bad UX? In GNOME, you have a dock for your most used applications, which can be launched or navigated to with Super+1/2/3.., there is the apps menu accessible with Super or by clicking the top bar, where you can organize apps as well as search for them. Desktop icons are distracting, and requires you to remove windows obstructing them to access the icons. If every DE just mimicked windows, we wouldn't ever be able to move forward. Though KDE is there for you if you prefer the windows way.
I don't have a study that I can use as an appeal to authority, so you'll just have to contend with the argument on the basis of it's internal consistency and how much you agree with the premises :)
For what it's worth, I don't use the gnome app drawer either. I exclusively use the dock + search to launch applications, so in my workflow both are actually pointless. I would still argue that opening the app drawer to reach your application shortcuts is easier and more consistent than resizing/minimizing windows to un-obstruct the desktop until you can point and click to launch an application. But I suppose managing folders on your desktop could be viewed as a plus? I'm not sure if GNOME's app menu supports that.
>KDE doesn't let you do it either
My bad. I'm not too familiar with KDE.
No, thanks, I require no modernization. I just need stable, but customizable UI, so that I can customize it once and use it my entire life without needing to adopt to new stuff constantly.
configuration.nix is that file for me. I gave up entirely on desktops and panels, and instead use xmonad and dmenu. I've had to adapt to exactly zero change in my ux in ten years. For me, enrichment comes from studying and experimenting, not from adapting every month or two to things that make somebody else feel good about changing.
Which you can't get without modernization because pre-modern solutions don't offer that. But also, what do you do throughout your "entire life" if you want to customize something to do what's not implemented? That's also modernization.
Effectively all you're asking for is a simple opt in so you can change at your own pace
What kind of "modernisation" do you think is necessary for that? XFCE like 12 years ago was already pretty customizable and it remains customizable. Themes, colors, button layouts, some behavior and effects can be changed. XFCE panel allows full customization - I can choose its position, start button logo and text, shortcuts and other elements. It's as flexible as it can be.
XFCE is GTK-based, which is infamous for breaking plugins on some version updates! That includes your panels with "full customization". So you don't have stability, that would require modernization of development practices.
> It's as flexible as it can be
Is it as flexible as allowing users to enable users the OS-wide app interaction ideas described in the blog/video presentation?
Don't touch my stuff objections run strong. Three things: it's a chicken & egg problem, agents help fix this, and third the 'some assembly required' issue.
Some backdrop, a thesis: tech used to be exciting because there was apparent motion, things changing. The dread hadn't set in, and I think that dread set in because tech shifted from close intimiate and touchable technologies we could touch, to far off systems running in some cloud data center/keep. Change was fun when we got to be on for the ride and feel some ownership but change happening to us was annoying.
So lately, it's hard for anyone to know what their preferences really are. We aren't trying a ton of human empowering things. The organizational systems Scott talks about here? We see some absolutely ferverously dedicated people enjoying Niri, enjoying new infinite space tiling systems. That's a rare example though! A couple people stumble their way into it. There's not that WinCustomize era where it's apparent people are active and busy and rebuilding, remixing their world on and on. People aren't in a receiving trying mode, because in part there's not a ton to try, and because there's no scene, people aren't kicking out new things either. The social poverty of the area & lack of things to look forward to mean people aren't looking, and people trying stuff are lucky to get traction, even when it's good.
This admits some of the "don't touch my stuff." Because we haven't been seeing as much upside to change.
Agents help though. The downsides though are lower than ever. If something changes in a way you don't like, an agent may well be able to make quick work of it! Tell it, and it'll go fix it.
Last: the granularity of build it yourself systems is not great. Downloading Sway, a desktop shell atop it,then a launcher, then a host of other small utilities to cobble together is a lot of decision making to do, and most of these options for these roles have lots of competitors with little interoperability. The tools that makeup the desktop stand alone, small pieces, and it's up to you to pick each one and loosely couple it, with it's bespoke means of doing so. These patterns of assembly suck. There's significant money heading towards a new omakase system, and I don't think it's necessarily the authoritarianism/fascism per se, the desperation for authority to make sense of the world, but given how scattered the pieces are, I have some sympathy for why they want someone to say they've built the beautiful well hewn omakase thing. And that your agent can customize it.
One of my favorite examples for a system that does compose nicely is astronvim on neovim. It takes some well known very great core plugins for nvim, and builds a little zellij like mini-framework to nvim's tmux atop that: a visual leader key, with menu system builtin. It creates a framework for more to plug into. And then the community has lots and lots of plugins or packs of plugins that it takes from upstream plugins everywhere, and it packages them for astronvim. Hundreds if not thousands of plugins. Most require not that much extra to hook in nicely in to the framework, to make them more apparent, visual, seen in the broader system. The system composes capabilities into itself nicely, integrates. Where-as when you get a regular nvim plugin, it usually can assume either nothing or way too much about what kind of nvim it runs on. It has to define it's own world. I think astronvim is an incredible model for making common layers for assembly, and it's packs show something inbetween a single plugin and an app: it's a unit of software that aggregates a couple other modules, yet is shy of being a full app. That kind of composability of experiences is unique and special: not having to assemble every piece ourselves, and yet not having an entire massive system dropped on us. Figuring out how to deliver better ...
Not sure about your thesis. Still excited here, no dread. Linux works pretty well compared to the old days. Open source is stronger than ever.
> So lately, it's hard for anyone to know what their preferences really are.
Sway + keybinds for each workspace. Everything in it's place, every time, by pressing 3 keys. Foot terminal opens in sub-ms. MicroVM framework sandboxes workloads. The UX isn't that different from my older setups TBH, only the underlying tech. I'm open to trying new things, but I don't know how you can beat preconfigured workspace keybinds. Would love to hear any ideas though.
> and have no peers out there who are having fun
Having lots of fun lately! This LLM stuff is bananas! Not only can you ask your agent to do stuff in plain language, but it's non-deterministic so it's like RNG gambling except you can build a Rube Goldberg machine to increase your odds! Regardless, I'd still be having fun without LLMs. We have amazing languages and incredible hardware these days.
> the granularity of build it yourself systems is not great
NixOS takes some of the pain away. You can experiment easily and safely, and you have a single declarative source that captures everything. Admittedly this isn't mainstream, but you're talking about nvim frameworks so... yeah.
Anyway, chin up friend! There are some of us more stoked than ever on the current state of computing. There's so much exciting change happening it's amazing. I'm grumpy about lots of things, but computers are better than ever IMHO.
I watched the video form of this and it was pretty informative, but I left it not really feeling anything was missing from the current desktop in terms of window management. It’s simple and old enough to be pretty well designed already.
What I do find is really lacking is UX inside of many foss apps. So many of them feel like windows xp programs with toolbars that look like junk drawers.
Toolbars themselves aren’t the issue, it’s too much crap dumped in them, especially when it’s a bunch of very rarely used tools.
And especially when it’s multiple layers of toolbars like a 2006 Internet Explorer.
Over the last decade we have seen programs like libreoffice and gimp not really do anything while others like Blender have had massive overhauls pushing the frontier of UI.
What I found interesting is desktop ui hasn’t changed much from either a windows layout or Mac layout. Isn’t there any other ui which is as useful as those two? Is there no ongoing research on os ui?
personally I think we need to shift from the 'file location' paradigm to tagging (thinking xattr).. that will solve many problems with UI (also raise some for sure).
But episodic memory (the timeline so to speak) is powerful too. Consider "list all pictures I watched in the last two days".
Both are important. Combine it by saying "distribute them on the screen from left to right sorted by how long I looked at it in ascending order".
I think local AI would come in quite handy to tag files and keep the tagging consistent..
Ha I reported that drag and drop bug 20 years ago. Windows does it in an even smarter way - it raises the window on mouse-down but only if the target isn't a drag source.
As I recall X11 doesn't really support that at all so there was no way to implement that on Linux. Doing it on mouse up seems sensible though. I couldn't find my bug report but I bet it was met with "I like it broken".
I've avoided that bug throughout more than 20 years of Linux usage just by disabling raise-on-click.
(Except of course the Gnome folks did they utmost to make that option unavailable back in the Gnome 2 days: Metacity's raise-on-click gconf setting was hobbled so that it could only be disabled in focus-follows-mouse mode. That bit of idiocy was patched out years ago, but the obnoxious text that accompanied it survived in Marco until earlier this year!)
> I couldn't find my bug report but I bet it was met with "I like it broken".
Which is an appropriate response when you yourself don't even want to recognize that others might prefer raising on mouse down, e.g. for lower latency in a much more common operation.
> He talked about the desktop building blocks, basically the familiar WIMP model plus the desktop clipboard, as the way that users move data around. Expert users can move data around quickly, he said, but there's a problem: the desktop is stateless. He called this the curse of direct manipulation; there is no working memory to the desktop. ""If you copy a few too many things to the clipboard, oh sorry, it's gone"".
>
> Jenson theorized that the reason there are so many desktop environments, window managers, and Wayland compositors for Linux—as well as alternative clipboard managers—is because the desktop isn't quite working right for users. He thought it was really about working memory: ""How do I manage my data in such a way that I can remember it across all of these things and actually use it."" His perspective shifted to asking ""what would we do to working memory to improve the desktop UX?""
I feel this so much.
I think that there's a "better" windowing system where all of your stuff sticks around way more than it used to. Clipboard history, but also just "oh you have these windows open while working on this task".
People have really leaned into coding harnesses + chat windows as a way of grouping together work. I think there's a more general idea in this space. Don't make me explicitly keep track of things, just hold onto it all for me!
There's some universe where my desktop is basically a Notion-like thing, and I can just throw things into semi-persistent workspaces (that I close out when I'm done). Desktop Environments that make this work nicely will be quite cool IMO
(A simple and dumb version of this is the BeOS "group various windows together, even though they aren't from the same application" stuff. Very cool stuff IMO
> Clipboard history, but also just "oh you have these windows open while working on this task".
I feel this. When I first got to learn what a workspace was (in Eclipse, of all things), and I really drilled down into the English meaning of it (I'm Dutch), I thought about exactly what you're describing right now.
There's also a thing of wanting "http referer"-style things but at the desktop. I want things that tell me _from where_ I clicked into a page in the browser (like "oh you got here from Slack (at this spot)"
Desktop history, clipboard history... all associated to certain contexts. Would be quite nice IMO
> Don't make me explicitly keep track of things, just hold onto it all for me!
>
> There's some universe where my desktop is basically a Notion-like thing, and I can just throw things into semi-persistent workspaces (that I close out when I'm done). Desktop Environments that make this work nicely will be quite cool IMO
>
> (A simple and dumb version of this is the BeOS "group various windows together, even though they aren't from the same application" stuff. Very cool stuff IMO
What you're describing sounds like it has been possible for a long time.
I've been doing it on my Linux desktop for decades. I throw things into workspaces which just ... stay open until I'm done with it. The same windows with the same layout and the same history and state, everything right where I left it. They stick around as long as they need to, which can be weeks, months, even years. I even have some desktops which have stuck around since the 1900s, though they do gradually change and evolve over time.
... and any windows from any program can be grouped together. Grouped into a desktop, or even grouped into a single window frame with tabs.
And nearly everything is automatically logged, so I have detailed history going back well into the past.
This stuff isn't in the big mainstream UIs, but it is at least possible with a bit of work to set it all up.
- Basically never logging out. Everything just stays running.
- Lots of desktops, usually one per project or task or ... whatever grouping makes sense.
- No minimizing windows. No taskbar, tray, dock, etc. Things just stay open, and I change desktops when I want to change to a different project or task or whatever.
- Logging at multiple levels. Like, there's a script which checks the complete session state every 15 seconds, and logs it if it has changed. It's exported as a tree or outline of each desktop, each tab group, and each window... with the title and size+position. Archived daily. That way, if the computer crashes or something, I have a recent snapshot I can restore.
- Also, detailed logging of what I'm doing. Like, every 100ms or so, a daemon checks the title of the focused window. If it has changed, it logs the new title and the timestamp, and how many input events happened since the last log entry. If the time of day changes to a new minute, it logs the number of input events since the last log entry. These logs can then be used for all sorts of useful things. Like analyzing my erratic sleep schedule and predicting when I'll be awake so I can schedule appointments. Or automatic time tracking for billing clients.
- I make sure to put useful info into my window titles, in each program. This makes the logs way more useful.
- Also, whatever other logging is relevant... like zsh history, autojump for getting to oft-used directories easily, a todo list / calendar text file with one heading per day and a list of stuff relevant to that day, a new directory each day for miscellaneous files which are worth saving but don't fit elsewhere, a lot of screenshots, an entire web archiving system to save copies of pages I view, etc.
On a side note... a lot of this stuff is explicitly forbidden in Wayland. It doesn't allow these features to exist, because most of this stuff is viewed as a security risk. So if you're using Wayland, entire categories of useful features are off limits. Their reason is basically "what if a hacker collected data about you? what if a hacker wanted to remotely control your computer?" ... but they ignored the case of "what if the user wants to collect data about themself? what if the user wants to remotely control their own computer?".
Stateless desktop is a feature. Application state is something I have to mirror in my head to prevent applications from doing unwanted and surprising things.
IMO, even the clipboard metaphor is too much state. We already have the selection highlight, which has the nice benefit of being directly visible. This should be reduced to a single global selection highlight. Then copy and paste can be replaced by "duplicate highlighted selection here", eliminating the possibility of forgetting what's in the paste buffer.
Yeah I definitely understand the value of the stateless desktop.
I do think that, for example, the fact that browsers hold history is generally a useful thing, though, right? For me it's less about persisting the application state itself as it is about holding onto metadata for later inspection.
one thing I'll keep on beating the drum on is that microsoft missed an opening with windows 8. WinRT UI was great for mobile, but as noted desktop is different and they tried to force it onto it.
What we need (and to some extent we get in web, i.e. gmail is different based on resolution) is different UIs based on the interface one is using. a single app that can switch between UIs.
I strongly believe the lack of this is why convertibles have remained more of a gimmick than anything else, as in practice you either keep using the app the same way you always did as you switch usages or you use different apps in the the different usage scenarios because they are tailored to that specific usage scenario. Neither are things that really sell the convertible as something with strong usage.
The closest we've gotten is things like DeX on samsung and perhaps what google is rolling out with android.
Once more- allow people to build "AI"-pipes, by recombining programs and agents via GUI.
[Agent: Fetch cat pictures from the internet] >GetFromFolder> [Agent: Filter for Calicos] >> [Agent: in Gimp paint Cat-Ears on Cats ] >> [Agent: Generated Videos] >> [Agent: Reupload to Youtube]
If you can make a "Explorer" with zero code and which allows to store and share building blocks and pipes, congrats.
I love the future shaped by two things: Omarchy and Pop!_OS. Both give two different worlds, one serves classic Win/MacOS style users while another is new-age AI-native system.
I was kinda expecting more concrete examples of what could be done rather than just "go experiment" and "take lead", because if I don't have something that actually has a good idea, proper ergonomics and objective improvement, I'll just go back to tiling console windows with auto completed commands.
I've been using approximately the same desktop setup for ages, and yet, it often still feels like I'm living in the future because mainstream desktops still haven't really adopted some of the best features, and in some ways are moving backward. This is kind of a disorganized laundry list, but ...
For one, the ability to change how the desktop itself works while it's running, without restarting it... modifying the code on the fly. And if I manage to crash the window manager or some other desktop component, easily just restart it without having to log out or restart all the other programs.
And being able to pretty easily run and manage hundreds of windows. Log in, open one desktop for each project, and just leave it running until the project is done. Maybe reboot for upgrades once every year or two, but otherwise no disruptions.
NO DISRUPTIONS. I don't even have the underlying plumbing installed for notifications and stuff like that. They can try to interrupt me, but they'll find those API calls aren't plugged in to anything.
Freely mixing and matching tiled and floating windows, each of which can be its own tab group with multiple arbitrary windows sharing the same frame. Super handy having free-form placement and grouping of absolutely anything.
No minimized windows. No task bar. No icon tray. No desktop full of icons underneath the windows. The entire screen is one big canvas, to be used however you like. If you need more space, just hit a key to open another desktop.
Manage nearly everything with a keyboard. Mouse usable but not required.
Sloppy focus, of course. (i.e. focus follows mouse, but stays focused if mouse "falls out" of a window into empty space) Not click-to-focus. And definitely no raise-on-click or raise-on-focus.
Mouse keys built into the keyboard, for clicking, scrolling, and moving. Mouse warp too, to teleport the cursor, like having two mouse cursors and a key to swap between them.
A full set of launcher hotkeys which are easily configured and managed by making short shell scripts. Like, F1 to F12 run scripts from ~/bin named like "f1" to "f12", and "shift-f1" and "ctrl-f1" and "shift-alt-f1" and "hyper-shift-ctrl-f1", etc... if a script exists, the key is mapped. Ideally just symlink the named key to a program or script with a more descriptive name, like "shift-f3 -> open-todays-journal-in-vim.sh" or something like that. Easy to see exactly what each key does, with a "ls -l" or similar. (can send a normal f1-f12 event by holding Fn and hitting a number key or the two keys next to the numbers, but I barely ever have a reason to)
Network transparency for everything, of course. It's wild that newer desktops have chosen to remove such a useful feature.
Work at my desk with a notebook to either side, all using a single keyboard+mouse... just slide the cursor off one screen and onto the next. Pick up a notebook and move to the living room. Use its keyboard+mouse to control the notebook plus the television, in much the same way... slide the cursor off one screen and onto the next. Pack up and go to a coffee shop. Control the remote home computers from the local notebook, using their running desktop session. Or run programs natively on several remote computers, with the windows all opened together on one desktop on the notebook.
Automate inputs easily, whenever desired. Record and play macros which work in any program.
Configurations revision-controlled and synced across all my devices, privately, without any data leaking to a corporate cloud.
Organize data into a rich set of nested topic directories or project directories, instead of organizing things by file type into places like "~/Pictures", "~/Documents", etc.
But also, a directory for each day, to hold all the other misc stuff which doesn't fit elsewhere. And a key to easily access it.
It's a lot of stuff accumulated over a long period of time, sort of pieced together... but here are some of the details:
The overall setup is X11 with a Sawfish window manager. X11 provides a lot of cool features like network transparency and automation and generally being wildly flexible. Sawfish is like the Emacs of window managers, written in a flavor of Lisp, and you can literally rewrite its code while it's running. So whenever I want something to work differently... I just find that part of the code, change it, and activate it.
If I manage to crash it, that's fine... Sawfish isn't the outer process for my session. For that, I have my .Xsession just do a simple loop. It keeps running until I touch a file called ~/.xlogout, and can restart the window manager or other tools if necessary.
I pretty much never log out or reboot unless it's time to do a dist-upgrade... which means once every couple years on average. Everything just stays running.
The main limit is that Xorg is usually compiled to use an 8-bit ID for each client, so it can only have 255 clients connected at once, which usually means a limit of 255 windows open at a time. But you can push this a bit using programs which do multiple windows in a single client connection, like "urxvtcd" in rxvt-unicode can have hundreds of terminals sharing just one client slot. I've occasionally had 500+ windows open on a single computer (though this is kind of a bad habit, and I try to keep it under 200).
I configured Sawfish to do soft tiling, and also to do tabbed windowing, and made all of it work via keyboard, including things like moving and resizing windows. Sawfish is also where I implemented the "every flavor of F1-F12" hotkeys thing, and implemented mouse warp, and it already had a lot of things built in like sloppy focus and the ability to add and remove desktops with a keypress.
I added another thing to it to save the contents of every desktop, every window, size and position and title and tab grouping, etc... every 15 seconds or so if it has changed since last time. This gets archived daily. So if the whole system crashes, or if I need to actually log out, or if something bugs out, I can restore things mostly how they were.
A lot of the stuff I don't have, like a task bar, or a desktop notifications system, is simple enough to do by just not installing one or not running any of the relevant programs or services.
As for traditional-ish desktop stuff, there's not much. I set the wallpaper using a small program I made decades ago, which basically just picks a file at random from a big nested directory structure of images I've accumulated over the years. I use a 2D grid style desktop pager in the corner of the screen to see which desktop I'm on, with Hyper+Arrows keys to navigate the grid, but I barely ever look at the widget and it sticks to the bottom stacking layer so other programs are free to draw over it. Similar story for a Conky instance configured in a thin vertical strip with all sorts of realtime system stats and any other info I care to put there. It's a quick, easy way to see what's going on, but I often cover it up and use that space for other things. It's basically just system stats rendered onto the wallpaper.
I mostly use keyboards with open-source firmware like QMK, with a pretty extensive personal keymap tailored to my needs and tastes. I also added some stuff to QMK, like a better MouseKeys motion mode called "inertia" mode, to make mouseless use easier. But on notebooks and legacy keyboards, I can at least use Kanata to get most of the same features.
Macros recording/playback is built into the keyboard, or X11 in general is pretty easy to automate with small programs or shell scripts or even one-liners. Like, with xdotool.
For remote controlling other systems, x2x is great. Ancient program which "just works". Or running remote programs on the local screen, ssh + normal X11 stuff. Or for...
I actually think there's some awesome UX innovation in the world of Linux. In fact, one of the things I love and appreciate about Linux, is that there's such a variety of what the desktop could be. I personally use Elementary OS, which is very polished and reliable, but very much not trying to innovate how a desktop environment fundamentally works.
But for those who want to experiment, I've seen:
- Tiling window managers (I3, Awesome, etc)
- Highly customizable panels and launchers (Rofi, Lemonbar, etc)
- Scrolling window managers (Nori, and others I think)
Honestly, the linux desktop has a lot of criticisms you could level at it, but lack of innovation isn't one. Where Windows and Mac have agreed on a standard that hasn't changed much in the last 10 years, Linux has about a zillion different visions for what a desktop can be.
> Scott Jenson has been working on user interfaces (UIs) and user experience (UX) for many years at Apple, Google, and other companies.
Sorry but that's the last kind of person I want to have any say about my desktop. If I wanted dumbed down mass market design I'd use a mass market OS. Hopefully KDE resists what this guy suggests.
Linux software isn't lacking in UX design, it has made different tradeoffs and that's OK and often even a strength.
> when I joined, we weren't evil; we were really trying to do the right thing
Man, there have been so many cool ideas for the Linux desktop in the past, and somehow none of them worked out or were polished into a usable state. Some things I remember:
* I think at one point Canonical tried to have a cool personal data sync with Ubuntu One using CouchDB which would have synced all your data between devices directly, not using a cloud?
* KDE 4 tired to have everything be a plasmoid (widget)? You could drag contacts to your desktop? But now we mostly have panels and tray popups again
* Similar, things like Evolution data server or Akonadi or Telepathy which promised to implement the "backend" for services like email, calendar and chat once and then you could integrate custom UIs into many apps and places in the desktop with a synchronized view (chat with a contact in your email programm? write a calendar appointment from you chat app that your friend sent you?)
* Maemo on the N900 had one contact list which served both SMS, Skype and XMPP and starting a chat using any one of those would get you to the same app/interface, same for the call, all happening in a single interface.
That is really the direction of "UX" I'm interested in. Not so much about where to display what, but to make my computing device feel less like an accumulation of applications and data, but to have a more integrated experience, ideally even across devices. My laptop and phone barely talk to each other and the user account on each device is distinct, so sharing resources already fails on authentication not being solved.
I think open source is in a unique position to actually provide a much better UX than any proprietary computing environment, since it's not tied to a single company trying to sell you stuff. Gnome and KDE don't care where you store your emails or calendar, they don't want to upsell you into their cloud storage. Open source is free to integrate the best services in a way that has the best UX and it can even do things like sync directly between your devices, because it doesn't need to generate new business opportunities.
KDE Connect is a great program in this regard, allowing you to share all kinds of things, including contacts or clipboard contents, between connected devices.
KDE Connect is great. It just does all the little sync tasks between devices on the same network - like I assume Apple devices do - and I mean all of them. Want to transfer a file, or clipboard contents? It does that. Read battery level? It does that. Read SMS on your laptop? It does that. It even does remote input. Every feature separately optional to enable, and only between explicitly paired devices, of course.
459 comments
[ 0.24 ms ] story [ 738 ms ] threadTrue revolution in UX will come from making customisation accessible, so everyone can decide what's best for them without losing their minds in endless customisation rabbit holes or having to rely on big and clumsy organizations.
...like it was back in the days when Windows actually had a very customisable UI[1], and then the "skinnable" UIs of the early 2000s (most of which were extremely gaudy, but then again, maybe that was what the majority of the population wanted.) Now it has devolved into little more than this: https://support.microsoft.com/en-us/windows/experience/perso...
[1] and one of the included color schemes was indeed crazy, but a good demonstration of what was available: https://news.ycombinator.com/item?id=46247605
https://www.pcgamer.com/software/windows/windows-3-1-include...
I actually agree about customization, but that's only part of it, and seems to be pretty orthogonal to what the article is talking about. You can only customize to features that are actually implemented by the system, and coming up with those seems like the harder problem.
> You can only customize to features that are actually implemented by the system
> (Customisation) is only part of it, and seems to be pretty orthogonal to what the article is talking about
It's not orthogonal because implementation without ergonomics is meaningless, which is what customization accessibility is all about. It needs to be a core design focus on the end user and not some obscure API only maybe Redhat will use to implement business support.
We have lots to work on already. Hyprland on archlinux is crazy customizable, but it's a far cry from what we should expect from a customizable and accessible system intended for a more mainstream audience.
I hope Scott keeps spreading the good word and inspiring others to take different perspectives
Yeah, this can be a little extreme, and I feel we can benefit from being a little more open to trying new things.
The part about designing specifically for large displays and widescreen monitors was interesting. We can also reverse it, though: right now I'm away from home, and I only have this old laptop which is mostly great but has a shitty touchpad as the mouse, and I have to think this must be really common. However, this situation seems to be completely ignored by all desktop UX design. We seem to be pretty good at coming up with ways to use the mouse in our programs, but when the mouse is hard to control and unreliable, it causes pain. I guess I can use ratpoison or something, but that seems to be giving up too much.
Regarding the AI going deep into the filesystem and organizing my data...I'm extremely skeptical of inserting any kind of inherent unpredictability into how I interact with the computer. Giving a command or input should produce a well-defined and predictable (in principle) action. Getting rid of that paradigm fundamentally changes the relationship between the user and the computer in a way that, in my opinion at least, greatly diminishes its usefulness as a tool.
I try to use my partner’s windows laptop and it’s borderline unusable for me. She only almost uses it with a mouse plugged in. Meanwhile I don’t think I’ve ever seen someone plug in a mouse to a MacBook that wasn’t docked to a monitor and keyboard.
The main issue with going beyond the mouse is that it involves changes across the event handling stack. For track pads, you have to build multi-touch infrastructure up ro a point and then there is a decision: what are gestures that are handled at a desktop level? What are gestures that get converted into semantically similar events (e.g. tap->LMB click)? What gets passed through as multi-touch? This ends up touching a lot of parts of the desktop software stack and the amount of required buy in to get this done on Linux seems massive.
Are you on X or smth?
Or was there a different meaning?
And the original UX issue is much easier solved by bringing a mouse with your laptop.
Making it easier to choose allows for much more experimentation. I'm using Niri right now, which certainly isn't something you can just give users as a default.
That's obviously wrong, you could install an alternative start menu and stay where you are
The internet is what changed this - you have to keep up with the other systems you're communicating with.
Sure, sometimes, when we have the time and surplus to deal with changes to things that already work well enough, and are not essential to doing our actual job.
That should be something you can opt in to.
Changing things for someone who's actually doing real work on top of the existing setup, is an undesired hurdle.
People are change-averse because they've been taught that change is costly, and they completely rationally ask "what's in it for me?". You want them to buy in to the change, you better give a good answer to that, one which is a more than negligible benefit in a few cases that the user may not care about. "Good enough" is good _enough_, it doesn't _need_ changes. Any change has to pay for its own retraining cost, in time and mental effort, otherwise it's a net negative for that user.
Being change-averse is the rational default behavior. Ignoring that, or even belittling it, is disrespecting your users.
It's also a perfect use for local System One models that can classify prompts and forward them to the right module - calculator for math, distrobox for shell commands, LLM for natural language questions and normal search for everything else. Not using a fixed classifier because plugins should be able to add their own question types.
The article mentioned WinFS and relational filesystems. That's another good idea, integrate metadata so you can support use cases like finding all pictures of your dog or all playlists with Ed Sheeran songs (to remove them). Everything bound to the file entries instead of ID3 tags inside the file or app specific databases. It would be a lot more reliable and probably faster.
IIRC bcachefs is already a relational database but I don't know how good the query APIs are. If we can't do full extendable tags then at least add user defined groups/tags like Work and Games and Photos to make finding things easier. People remember what a file is better than where it's stored.
I'd love to see an agentic OS where the OS and apps can both talk in terms of MCP things like resources, tools, skills. Yes these are primarily geared towards agents, but they are also acceptable machine-to-machine interfaces to script against too (so long as the type signature remains compatible).
Android's Intents feel related, similar-ish. It's a pity no one bit on PK's WebIntents. That could have been an interesting way to create abstractions for intents, for activities, for stuff happening on the computer. Notably the xopc actually had activities and a journal that let apps contribute meaningful intent to the OS as a whole. But mostly it just ended up as a history viewer there. Android mostly uses intents as a launcher. But this idea of having the activities of the system as available abstractions could go much further.
So I’m looking at the Raycast web site, and aside from the UI being a little different, Raycast seems like it is itself a clone of the already long-existing KDE Plasma start menu and KRunner? I guess the only thing missing from the KDE one is “AI”. Is there something I am missing about how Raycast is some innovation not already realised in the Linux desktop?
KDE krunner has plugins. But there is not afaik a big tent ownership system like Raycast. And krunner is only going to attract KDE users. Raycast is mainly mac, but also, there's Vicinae which runs on a lot more systems, and it can run >50% of the Raycast plugins without a sweat, is designed to be drop in compatible.
It's also absurdly easy to write Raycast extensions. It uses web platform technologies that "just work", that don't have ornery toolchains and need lots of dev libraries installed. With KRunner you can probably use whatever library you want to do whatever you want, which is good, but hard, where-as with Raycast there's a pretty comprehensive and powerful API that offers a ton, that is well defined, and that other plugins will show you the way on. https://developers.raycast.com/
That was Raycast v1, though. I don’t like the direction they’ve taken with v2, so I uninstalled it and switched to Tinycast.
I can search and enter my search, and expect same results everytime, so muscle memory friendly. Gnome's search does calculation in search just fine, or search files, no need of any models. And app can provide their own search endpoint that gnome uses, to search in the app. Repetable, simple, and light.
Its boring, but hey, your everyday thing that is your starting point of the day do not need random behavior, or getting dependent on some 3rd party app that suddenly pulls the rug from under you.
This everything AI is so tiring.
Why would that be the case when you can have a no-scrolling-required list of apps you actually use?
Here's an idea that I believe I read in HN as "the original purpose of the desktop": add a Desktop Manager that manages which icons are on your desktop and makes it easy to switch.
The desktop is kind of weird, in the sense that it's prime real estate but, at the same time, there's an expectation that you shouldn't put too much stuff there, and then it ends up cluttered anyway. I think it's worth trying a stronger separation between "Desktop" and any other regular folder, emphasizing that the Desktop is where you place links to the files you need right now, but with a mechanism to clear it completely (without losing data) and another to switch which icons you see right now, kind of like browser tab groups. That way, when you're working on a project you place the files you need on the desktop and when you're done you clean it up.
If we go further into the metaphor of a desktop, there would be sections for tools and sections for pending work. The inkwell versus the blotter, if you will.
And then... well, what difference is there between a designated area of the desktop for files, versus a regular window showing some contents of a folder?
Pretty nice product as I recall, lots of features to make the "Desktop" more or less dynamic. Pretty soon after I stopped using the "Desktop" entirely.
[] https://www.stardock.com/products/fences/
It also keeps a file around on disk with no way to access it as long as it's open.
When are we getting filesystem transactions.
I'm still mad at GNOME developers for ruining such a good desktop environment.
Luckily, Linux Mint managed to create a good environment that is as pleasant as using GNOME 2.
First, dialogs could not be dragged to the side. It took me less than one day to realize that, when it comes to naming a file, I need to look at the document to remember, for instance, the name of the institution I'm writing to. If I can't move the Save dialog then I have to cancel, find the name, remember it, and start the save process again, at which point I also lost the folder I had navigated to.
Showing app icons without categories is useless to me because sometimes I don't know what the app is called, only what it does. I know I have a webcam app and I know it should be under Video, but I have no idea what it's called. Gnome's flat hierarchy makes it harder for me to find what I'm looking for.
Removing the individual window menus and the icons for minimizing and maximizing kills the muscle memory I've built over the last 30 years - same reason why I hate that the X button on Mac doesn't really close the program.
But on the topic of Mac, that's for me the main problem: that Gnome 3 wanted to be MacOS and copied their ideas regardless of whether they make sense to their users. I know the things I mentioned above may sound small but those are constant papercuts that remind me every 5 minutes that I didn't use to have so many papercuts. I can't imagine that anyone did a proper usability test before dropping what, to me, were breaking changes.
There were other factors like the attitude of "this is how it is now so take it or leave it", but the whole process led me to realize that I don't want to think about my window manager and that, if I'm thinking about it, then it's getting in my way of doing actual work.
But, if you do see the arrows there and think - why are there so many arrows and dots? It looks like bad UX. They you can see the issues others are talking about.
- a "+"
- a down-arrow which presumably opens some sort of menu
- a hamburger menu (why is this different to the down arrow?)
- a "..." menu (err, isn't this the same as the hamburger menu and/or the down arrow?)
- A "hammer" icon next to the word "fetching". Because... Hammer Time! Also, yeah we use a hammer to fetch things. I think that's something we can all get behind.
- another two down-arrows. One probably opens out options for the "hammer" bar. The other...?
- an up and down arrow. Maybe this actually changes the options for the "hammer/fetching" bar.
- A search magnifying glass (no search field curiously).
- A cross.
How about actually talking about the topic at hand, which is the gnome shell and its UX?
It looks like this because it's also how XCode and Visual Studio looks. I don't like it, I don't use Builder, but the design isn't foreign.
The gnome style client side decorations versus traditional menu bars is just bad. It works okay if your application has like… two buttons. Which, to be fair, is many gnome apps because they’re so feature-anemic. But once you have many functions, it becomes a mess that wastes huge amount of screen space.
And you don't want to adapt.
Just watched a video of a guy ranting on Gnome 3 14 years ago, the reasons are just wtf, mentioning things I almost never used in my life.
I also had issues, but just learned to get over it and now my workflow is excellent while requiring only minimal customization.
Simple example: you have 3 file manager windows open. Go choose the correct one with the directory you want. On my KDE setup, the window is right there in the dock. I can see the window title and know it’s the correct window, so I click it.
On Gnome, first I drag my cursor to the left to show the dock. Then I click the icon, because of course app windows stack. Then I squint at the thumbnail and find it. Or, alternatively, I open the overview and hunt for it. Maybe it’s on a different desktop, I hope not.
The workflow is just worse, and this extends to basically every workflow in gnome. It only becomes okay when you abuse keyboard shortcuts, because the actual desktop UX is so bad. And people will actually turn around and claim that gnome is good because of keyboard shortcuts!
No, it’s not! Every desktop has keyboard shortcuts. Gnome is the only one that forces you to use them, because the interface is so obtuse, slow, and obnoxious to use.
Having the desktop not also be a file dump by default and instead a space for mostly useless widgets was one of the few good things KDE 4 did.
Personally, I keep my desktop absolutely sterile, usually some geometric patterned background, and that's it. Autohiding taskbar, no shortcuts, etc. It keeps me from having the "stepping into another room" effect when I sit down at my computer, which I'm very prone to. That means I can hit win/option/spotlight depending on the comp and launch the program I sat down to get into, without thinking "Oh yeah, I meant to edit that excel file..." and going on a 30 minute tangent.
I have the opposite problem. I leave things on the desktop as an intentional reminder to get back to them, but it doesn't work.
macOS is built around the idea of windows being sized and positioned as they will, with very little management (automated or otherwise), leaving a substantial amount of desktop exposed most of the time. As a result, the desktop gets a lot more usage as a staging space since it's constantly available for drag and drop operations (both to and from).
In Windows-paradigm systems on the other hand, it's almost a given that the screen will be filled entirely with 1-2 windows and the desktop is only ever really visible upon reboot or hard context switches.
My current desktop works like that. It's not quite what you're describing, but it's a couple of minor iterations away to allow multiple different snapshots.
Now I never see my desktop. A handful of apps, primarily Chrome, are permanently open in front of it. The computer is always on, if I reboot then the previous state more or less restores automatically.
So the desktop itself is not really prime real estate any more. It's more of an abstract idea, the layer underneath all the useful bits. The windows have taken over.
On macOS the desktop path is where screenshots go... so mostly I just have a litter of 100s of screenshots there.
Communicating at work seems to involve taking lots of screenshots.
Usually these are files I don't really care to keep around, I just need it in the moment so I can add it to a message in Slack, Teams, Jira, Github etc.
So it feels like this primitive could maybe be built into the OS in a more developed way than just screen area -> file, so that you could access it directly from apps (in a consistent way - as an OS feature) and avoid generating junk files.
My own Linux desktop experience peaked with Compiz, and I have been on macOS ever since.
Even if the desktop turns out to be done though, UX polish like that drag thing is still a good idea. Like why does no major desktop let you just put icons on your desktop the way classic Windows does?
KDE doesn't let you do it either. You can only put desktop widgets on your KDE desktop.
For what it's worth, I don't use the gnome app drawer either. I exclusively use the dock + search to launch applications, so in my workflow both are actually pointless. I would still argue that opening the app drawer to reach your application shortcuts is easier and more consistent than resizing/minimizing windows to un-obstruct the desktop until you can point and click to launch an application. But I suppose managing folders on your desktop could be viewed as a plus? I'm not sure if GNOME's app menu supports that.
>KDE doesn't let you do it either My bad. I'm not too familiar with KDE.
I agree with the other poster that it isn't really a good idea though.
Because that is a crappy UX where you need to minimize or move windows away to access them.
Which you can't get without modernization because pre-modern solutions don't offer that. But also, what do you do throughout your "entire life" if you want to customize something to do what's not implemented? That's also modernization.
Effectively all you're asking for is a simple opt in so you can change at your own pace
What kind of "modernisation" do you think is necessary for that? XFCE like 12 years ago was already pretty customizable and it remains customizable. Themes, colors, button layouts, some behavior and effects can be changed. XFCE panel allows full customization - I can choose its position, start button logo and text, shortcuts and other elements. It's as flexible as it can be.
> It's as flexible as it can be
Is it as flexible as allowing users to enable users the OS-wide app interaction ideas described in the blog/video presentation?
Some backdrop, a thesis: tech used to be exciting because there was apparent motion, things changing. The dread hadn't set in, and I think that dread set in because tech shifted from close intimiate and touchable technologies we could touch, to far off systems running in some cloud data center/keep. Change was fun when we got to be on for the ride and feel some ownership but change happening to us was annoying.
So lately, it's hard for anyone to know what their preferences really are. We aren't trying a ton of human empowering things. The organizational systems Scott talks about here? We see some absolutely ferverously dedicated people enjoying Niri, enjoying new infinite space tiling systems. That's a rare example though! A couple people stumble their way into it. There's not that WinCustomize era where it's apparent people are active and busy and rebuilding, remixing their world on and on. People aren't in a receiving trying mode, because in part there's not a ton to try, and because there's no scene, people aren't kicking out new things either. The social poverty of the area & lack of things to look forward to mean people aren't looking, and people trying stuff are lucky to get traction, even when it's good.
This admits some of the "don't touch my stuff." Because we haven't been seeing as much upside to change.
Agents help though. The downsides though are lower than ever. If something changes in a way you don't like, an agent may well be able to make quick work of it! Tell it, and it'll go fix it.
Last: the granularity of build it yourself systems is not great. Downloading Sway, a desktop shell atop it,then a launcher, then a host of other small utilities to cobble together is a lot of decision making to do, and most of these options for these roles have lots of competitors with little interoperability. The tools that makeup the desktop stand alone, small pieces, and it's up to you to pick each one and loosely couple it, with it's bespoke means of doing so. These patterns of assembly suck. There's significant money heading towards a new omakase system, and I don't think it's necessarily the authoritarianism/fascism per se, the desperation for authority to make sense of the world, but given how scattered the pieces are, I have some sympathy for why they want someone to say they've built the beautiful well hewn omakase thing. And that your agent can customize it.
One of my favorite examples for a system that does compose nicely is astronvim on neovim. It takes some well known very great core plugins for nvim, and builds a little zellij like mini-framework to nvim's tmux atop that: a visual leader key, with menu system builtin. It creates a framework for more to plug into. And then the community has lots and lots of plugins or packs of plugins that it takes from upstream plugins everywhere, and it packages them for astronvim. Hundreds if not thousands of plugins. Most require not that much extra to hook in nicely in to the framework, to make them more apparent, visual, seen in the broader system. The system composes capabilities into itself nicely, integrates. Where-as when you get a regular nvim plugin, it usually can assume either nothing or way too much about what kind of nvim it runs on. It has to define it's own world. I think astronvim is an incredible model for making common layers for assembly, and it's packs show something inbetween a single plugin and an app: it's a unit of software that aggregates a couple other modules, yet is shy of being a full app. That kind of composability of experiences is unique and special: not having to assemble every piece ourselves, and yet not having an entire massive system dropped on us. Figuring out how to deliver better ...
> So lately, it's hard for anyone to know what their preferences really are.
Sway + keybinds for each workspace. Everything in it's place, every time, by pressing 3 keys. Foot terminal opens in sub-ms. MicroVM framework sandboxes workloads. The UX isn't that different from my older setups TBH, only the underlying tech. I'm open to trying new things, but I don't know how you can beat preconfigured workspace keybinds. Would love to hear any ideas though.
> and have no peers out there who are having fun
Having lots of fun lately! This LLM stuff is bananas! Not only can you ask your agent to do stuff in plain language, but it's non-deterministic so it's like RNG gambling except you can build a Rube Goldberg machine to increase your odds! Regardless, I'd still be having fun without LLMs. We have amazing languages and incredible hardware these days.
> the granularity of build it yourself systems is not great
NixOS takes some of the pain away. You can experiment easily and safely, and you have a single declarative source that captures everything. Admittedly this isn't mainstream, but you're talking about nvim frameworks so... yeah.
Anyway, chin up friend! There are some of us more stoked than ever on the current state of computing. There's so much exciting change happening it's amazing. I'm grumpy about lots of things, but computers are better than ever IMHO.
What I do find is really lacking is UX inside of many foss apps. So many of them feel like windows xp programs with toolbars that look like junk drawers.
I want boring consistency.
And especially when it’s multiple layers of toolbars like a 2006 Internet Explorer.
Over the last decade we have seen programs like libreoffice and gimp not really do anything while others like Blender have had massive overhauls pushing the frontier of UI.
https://arcan-fe.com/about/
personally I think we need to shift from the 'file location' paradigm to tagging (thinking xattr).. that will solve many problems with UI (also raise some for sure).
Whereas tagging doesn't align as naturally with the human brain in the same way.
I think local AI would come in quite handy to tag files and keep the tagging consistent..
As I recall X11 doesn't really support that at all so there was no way to implement that on Linux. Doing it on mouse up seems sensible though. I couldn't find my bug report but I bet it was met with "I like it broken".
(Except of course the Gnome folks did they utmost to make that option unavailable back in the Gnome 2 days: Metacity's raise-on-click gconf setting was hobbled so that it could only be disabled in focus-follows-mouse mode. That bit of idiocy was patched out years ago, but the obnoxious text that accompanied it survived in Marco until earlier this year!)
Which is an appropriate response when you yourself don't even want to recognize that others might prefer raising on mouse down, e.g. for lower latency in a much more common operation.
I feel this so much.
I think that there's a "better" windowing system where all of your stuff sticks around way more than it used to. Clipboard history, but also just "oh you have these windows open while working on this task".
People have really leaned into coding harnesses + chat windows as a way of grouping together work. I think there's a more general idea in this space. Don't make me explicitly keep track of things, just hold onto it all for me!
There's some universe where my desktop is basically a Notion-like thing, and I can just throw things into semi-persistent workspaces (that I close out when I'm done). Desktop Environments that make this work nicely will be quite cool IMO
(A simple and dumb version of this is the BeOS "group various windows together, even though they aren't from the same application" stuff. Very cool stuff IMO
I feel this. When I first got to learn what a workspace was (in Eclipse, of all things), and I really drilled down into the English meaning of it (I'm Dutch), I thought about exactly what you're describing right now.
There's also a thing of wanting "http referer"-style things but at the desktop. I want things that tell me _from where_ I clicked into a page in the browser (like "oh you got here from Slack (at this spot)"
Desktop history, clipboard history... all associated to certain contexts. Would be quite nice IMO
What you're describing sounds like it has been possible for a long time.
I've been doing it on my Linux desktop for decades. I throw things into workspaces which just ... stay open until I'm done with it. The same windows with the same layout and the same history and state, everything right where I left it. They stick around as long as they need to, which can be weeks, months, even years. I even have some desktops which have stuck around since the 1900s, though they do gradually change and evolve over time.
... and any windows from any program can be grouped together. Grouped into a desktop, or even grouped into a single window frame with tabs.
And nearly everything is automatically logged, so I have detailed history going back well into the past.
This stuff isn't in the big mainstream UIs, but it is at least possible with a bit of work to set it all up.
Some of the main parts are:
- Basically never logging out. Everything just stays running.
- Lots of desktops, usually one per project or task or ... whatever grouping makes sense.
- No minimizing windows. No taskbar, tray, dock, etc. Things just stay open, and I change desktops when I want to change to a different project or task or whatever.
- Logging at multiple levels. Like, there's a script which checks the complete session state every 15 seconds, and logs it if it has changed. It's exported as a tree or outline of each desktop, each tab group, and each window... with the title and size+position. Archived daily. That way, if the computer crashes or something, I have a recent snapshot I can restore.
- Also, detailed logging of what I'm doing. Like, every 100ms or so, a daemon checks the title of the focused window. If it has changed, it logs the new title and the timestamp, and how many input events happened since the last log entry. If the time of day changes to a new minute, it logs the number of input events since the last log entry. These logs can then be used for all sorts of useful things. Like analyzing my erratic sleep schedule and predicting when I'll be awake so I can schedule appointments. Or automatic time tracking for billing clients.
- I make sure to put useful info into my window titles, in each program. This makes the logs way more useful.
- Also, whatever other logging is relevant... like zsh history, autojump for getting to oft-used directories easily, a todo list / calendar text file with one heading per day and a list of stuff relevant to that day, a new directory each day for miscellaneous files which are worth saving but don't fit elsewhere, a lot of screenshots, an entire web archiving system to save copies of pages I view, etc.
On a side note... a lot of this stuff is explicitly forbidden in Wayland. It doesn't allow these features to exist, because most of this stuff is viewed as a security risk. So if you're using Wayland, entire categories of useful features are off limits. Their reason is basically "what if a hacker collected data about you? what if a hacker wanted to remotely control your computer?" ... but they ignored the case of "what if the user wants to collect data about themself? what if the user wants to remotely control their own computer?".
So yeah. A lot of my setup only works in X11.
IMO, even the clipboard metaphor is too much state. We already have the selection highlight, which has the nice benefit of being directly visible. This should be reduced to a single global selection highlight. Then copy and paste can be replaced by "duplicate highlighted selection here", eliminating the possibility of forgetting what's in the paste buffer.
Windows used to let you drop an OLE draggable/clipboardable object into a folder, where it would create a "scrap" file (as in a scrapbook).
I do think that, for example, the fact that browsers hold history is generally a useful thing, though, right? For me it's less about persisting the application state itself as it is about holding onto metadata for later inspection.
What we need (and to some extent we get in web, i.e. gmail is different based on resolution) is different UIs based on the interface one is using. a single app that can switch between UIs.
I strongly believe the lack of this is why convertibles have remained more of a gimmick than anything else, as in practice you either keep using the app the same way you always did as you switch usages or you use different apps in the the different usage scenarios because they are tailored to that specific usage scenario. Neither are things that really sell the convertible as something with strong usage.
The closest we've gotten is things like DeX on samsung and perhaps what google is rolling out with android.
[Agent: Fetch cat pictures from the internet] >GetFromFolder> [Agent: Filter for Calicos] >> [Agent: in Gimp paint Cat-Ears on Cats ] >> [Agent: Generated Videos] >> [Agent: Reupload to Youtube]
If you can make a "Explorer" with zero code and which allows to store and share building blocks and pipes, congrats.
For one, the ability to change how the desktop itself works while it's running, without restarting it... modifying the code on the fly. And if I manage to crash the window manager or some other desktop component, easily just restart it without having to log out or restart all the other programs.
And being able to pretty easily run and manage hundreds of windows. Log in, open one desktop for each project, and just leave it running until the project is done. Maybe reboot for upgrades once every year or two, but otherwise no disruptions.
NO DISRUPTIONS. I don't even have the underlying plumbing installed for notifications and stuff like that. They can try to interrupt me, but they'll find those API calls aren't plugged in to anything.
Freely mixing and matching tiled and floating windows, each of which can be its own tab group with multiple arbitrary windows sharing the same frame. Super handy having free-form placement and grouping of absolutely anything.
No minimized windows. No task bar. No icon tray. No desktop full of icons underneath the windows. The entire screen is one big canvas, to be used however you like. If you need more space, just hit a key to open another desktop.
Manage nearly everything with a keyboard. Mouse usable but not required.
Sloppy focus, of course. (i.e. focus follows mouse, but stays focused if mouse "falls out" of a window into empty space) Not click-to-focus. And definitely no raise-on-click or raise-on-focus.
Mouse keys built into the keyboard, for clicking, scrolling, and moving. Mouse warp too, to teleport the cursor, like having two mouse cursors and a key to swap between them.
A full set of launcher hotkeys which are easily configured and managed by making short shell scripts. Like, F1 to F12 run scripts from ~/bin named like "f1" to "f12", and "shift-f1" and "ctrl-f1" and "shift-alt-f1" and "hyper-shift-ctrl-f1", etc... if a script exists, the key is mapped. Ideally just symlink the named key to a program or script with a more descriptive name, like "shift-f3 -> open-todays-journal-in-vim.sh" or something like that. Easy to see exactly what each key does, with a "ls -l" or similar. (can send a normal f1-f12 event by holding Fn and hitting a number key or the two keys next to the numbers, but I barely ever have a reason to)
Network transparency for everything, of course. It's wild that newer desktops have chosen to remove such a useful feature.
Work at my desk with a notebook to either side, all using a single keyboard+mouse... just slide the cursor off one screen and onto the next. Pick up a notebook and move to the living room. Use its keyboard+mouse to control the notebook plus the television, in much the same way... slide the cursor off one screen and onto the next. Pack up and go to a coffee shop. Control the remote home computers from the local notebook, using their running desktop session. Or run programs natively on several remote computers, with the windows all opened together on one desktop on the notebook.
Automate inputs easily, whenever desired. Record and play macros which work in any program.
Configurations revision-controlled and synced across all my devices, privately, without any data leaking to a corporate cloud.
Organize data into a rich set of nested topic directories or project directories, instead of organizing things by file type into places like "~/Pictures", "~/Documents", etc.
But also, a directory for each day, to hold all the other misc stuff which doesn't fit elsewhere. And a key to easily access it.
Shell scripts can easily know wha...
The overall setup is X11 with a Sawfish window manager. X11 provides a lot of cool features like network transparency and automation and generally being wildly flexible. Sawfish is like the Emacs of window managers, written in a flavor of Lisp, and you can literally rewrite its code while it's running. So whenever I want something to work differently... I just find that part of the code, change it, and activate it.
If I manage to crash it, that's fine... Sawfish isn't the outer process for my session. For that, I have my .Xsession just do a simple loop. It keeps running until I touch a file called ~/.xlogout, and can restart the window manager or other tools if necessary.
I pretty much never log out or reboot unless it's time to do a dist-upgrade... which means once every couple years on average. Everything just stays running.
The main limit is that Xorg is usually compiled to use an 8-bit ID for each client, so it can only have 255 clients connected at once, which usually means a limit of 255 windows open at a time. But you can push this a bit using programs which do multiple windows in a single client connection, like "urxvtcd" in rxvt-unicode can have hundreds of terminals sharing just one client slot. I've occasionally had 500+ windows open on a single computer (though this is kind of a bad habit, and I try to keep it under 200).
I configured Sawfish to do soft tiling, and also to do tabbed windowing, and made all of it work via keyboard, including things like moving and resizing windows. Sawfish is also where I implemented the "every flavor of F1-F12" hotkeys thing, and implemented mouse warp, and it already had a lot of things built in like sloppy focus and the ability to add and remove desktops with a keypress.
I added another thing to it to save the contents of every desktop, every window, size and position and title and tab grouping, etc... every 15 seconds or so if it has changed since last time. This gets archived daily. So if the whole system crashes, or if I need to actually log out, or if something bugs out, I can restore things mostly how they were.
A lot of the stuff I don't have, like a task bar, or a desktop notifications system, is simple enough to do by just not installing one or not running any of the relevant programs or services.
As for traditional-ish desktop stuff, there's not much. I set the wallpaper using a small program I made decades ago, which basically just picks a file at random from a big nested directory structure of images I've accumulated over the years. I use a 2D grid style desktop pager in the corner of the screen to see which desktop I'm on, with Hyper+Arrows keys to navigate the grid, but I barely ever look at the widget and it sticks to the bottom stacking layer so other programs are free to draw over it. Similar story for a Conky instance configured in a thin vertical strip with all sorts of realtime system stats and any other info I care to put there. It's a quick, easy way to see what's going on, but I often cover it up and use that space for other things. It's basically just system stats rendered onto the wallpaper.
I mostly use keyboards with open-source firmware like QMK, with a pretty extensive personal keymap tailored to my needs and tastes. I also added some stuff to QMK, like a better MouseKeys motion mode called "inertia" mode, to make mouseless use easier. But on notebooks and legacy keyboards, I can at least use Kanata to get most of the same features.
Macros recording/playback is built into the keyboard, or X11 in general is pretty easy to automate with small programs or shell scripts or even one-liners. Like, with xdotool.
For remote controlling other systems, x2x is great. Ancient program which "just works". Or running remote programs on the local screen, ssh + normal X11 stuff. Or for...
But for those who want to experiment, I've seen: - Tiling window managers (I3, Awesome, etc) - Highly customizable panels and launchers (Rofi, Lemonbar, etc) - Scrolling window managers (Nori, and others I think)
Honestly, the linux desktop has a lot of criticisms you could level at it, but lack of innovation isn't one. Where Windows and Mac have agreed on a standard that hasn't changed much in the last 10 years, Linux has about a zillion different visions for what a desktop can be.
Sorry but that's the last kind of person I want to have any say about my desktop. If I wanted dumbed down mass market design I'd use a mass market OS. Hopefully KDE resists what this guy suggests.
Linux software isn't lacking in UX design, it has made different tradeoffs and that's OK and often even a strength.
> when I joined, we weren't evil; we were really trying to do the right thing
Says everyone who worked for big tech ever.
That is really the direction of "UX" I'm interested in. Not so much about where to display what, but to make my computing device feel less like an accumulation of applications and data, but to have a more integrated experience, ideally even across devices. My laptop and phone barely talk to each other and the user account on each device is distinct, so sharing resources already fails on authentication not being solved.
I think open source is in a unique position to actually provide a much better UX than any proprietary computing environment, since it's not tied to a single company trying to sell you stuff. Gnome and KDE don't care where you store your emails or calendar, they don't want to upsell you into their cloud storage. Open source is free to integrate the best services in a way that has the best UX and it can even do things like sync directly between your devices, because it doesn't need to generate new business opportunities.
Theres definitely ideas here worth exploring for sure.