> 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
> 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.
I've got an overview of a lot of it in another thread here...
<a href="https://news.ycombinator.com/item?id=49827552">https://news.ycombinator.com/item?id=49827552
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?".
rtpg · · focus · HN ↗
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
ToyKeeper · · focus · HN ↗
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.
rtpg · · focus · HN ↗
ToyKeeper · · focus · HN ↗
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.