Even in this article just a few sentences after stating we should start from first principles he then jumps into the assumption of the "desktop".
The baggage of TTY interfaces in textual interfaces and the "desktop" paradigm for GUI interfaces is preventing people from going back to actual first principles for designing personal computing interfaces.
Of course I do appreciate that since the title of the articles is minimalist desktop GUIs the assumption of "first principles of computing assuming a desktop analog" is baked into the article, I just think it's insufficient.
I think we already found out what works best for monitor+mouse+keyboard 20-ish years ago. There's a lot to improve in terms of consistency and various details, but I don’t think there's any new paradigm to be found that would work better.
Agree. Although I can see how the idea of "first principles" can be a very difficult starting point. A blank sheet of paper is a scary monster.
There's a huge breadth and depth of non-"desktop" GUIs out there, some (like smartphones) are even wildly successful. It's good to explore them for inspiration. Some of my favourites:
- Arcan (https://arcan-fe.com/about/) - I won't attempt to summarize, just dive in!
- SailfishOS (https://sailfishos.org/) - mobile UI focused on interaction through gestures / swipes; I've used it as my daily driver for a couple years.
- Speaking of mobiles, classic Nokia UIs allowed you to navigate to a specific item in the menu by pressing the corresponding digit on the dial pad. Once you learned where a particular item is, accessing e.g. your SMS inbox was extremely quick.
- Apple Watch / WatchOS (https://www.apple.com/watchos/) - I've always loved the idea of a device where one of the primary interaction methods was a wheel/dial of some sort. The watch even gives you context-sensitive tactile feedback.
- ZUIs in general (https://en.wikipedia.org/wiki/Zooming_user_interface) and the work of Jef Raskin in particular: https://en.wikipedia.org/wiki/Archy_(software) - this is the guy who helped design the Macintosh, but his other work took a radically different route.
- Magit (https://magit.vc/). Many common git operations are reduced to a couple of keystrokes; the obscure features are more discoverable, and the cumbersome procedures (such as rebasing, or staging individual hunks) become simple and intuitive. Also check out transient (https://github.com/magit/transient), which is the "UI toolkit" that powers Magit.
Smartphone UIs are non-desktop metaphors? They sure seem like a desktop metaphor to me, albeit a very tiny desktop.
i think the first rule for me is: computers need to make things more simple for humans.
how we control our devices, how we use those controls to do things (like interact with these guis), currentlt the model makes things always difficult and practically ensures people lose immersion of their real life into some device screen and controlscheme.
tldr i guess; u can optimise guis etc. but if you dont change the interface to those guis its not reinventing anything. these things work in concert to generate the users experience.
The author mentions this design in passing but I think it is contextually important to understand why people might like this at all so I'll share what I appreciate about tiling window managers:
The appeal, for me, is the inflexibility. Tiling window managers and their often bundled 'tags' approach to window management offer a simplicity that is comforting in its constancy to me, the user. To sum it up, they make me feel 'at home' using my computer. Comfy goes beyond familiarity though.
I never have a mess of windows to deal with across my monitors, where I'm constantly needing to look at a taskbar, minimizing and un-minimizing programs (or looking through a stack of 'shaded' windows in the author's case). Each of my frequently used programs has its own tag, or shares a tag (visually as a tile) with other programs. While the programs I have open at any one time change, their locations don't. Everything in its right place, I always know what is where. I switch between all programs directly with ease, with no intermediate interruptions to occupy my attention, my hands never leaving my keyboard. No 'looking' for stuff. Switches happen instantly because there are no transitions or any other forms of detectable latency (and for that matter, no compositor either). Combine all this with extensive use of scratchpads for ad-hoc and exploratory tasks and all the bases have been covered. Comfy.
I don't like tiling window managers, because I want most windows to be roughly centered in my field of view, and also vertically maximized. Actually, what I really want to be centered is the relevant contents of each window, which generally isn’t the same as centering the window itself, due to sidebars and other application-specific layout vagaries. Hence the necessity to save size and position per application. I also rarely need to see multiple windows simultaneously side-by-side. Having the windows centered and full size (if not full screen) trumps the drawback of having to press Alt+Tab or other keyboard shortcuts to switch between them.
A couple of decades later, I went through so many macOS versions, Windows 7,8,10 and different Gnome/KDE/Xfce etc., to find out just recently (well, a couple of years by now) that sway wm (or i3wm for X11) is a thing. What a relief! I’m back into old calm days with no eternal switching and multitasking that takes so much of my attention, giving nothing in return. God, I wish I knew about that much much earlier! When I left Windows for good, that was the only thing I missed so much! Now I enjoy that and 300 MB of occupied ram out of my 16 or 32 GB setups. Would highly recommend to any nerd like me!
In floating systems, partially covered windows are useless and usually avoided: either you want to see everything, or you minimize the window. The few times one tries to actually keep a partially covered window (i.e. show only the last few lines of a terminal visible), the UX is terrible because as soon as you switch focus the visibility of the entire stack of windows changes, and you need to click around/Alt-Tab to restore the previous layout. For this reason, 99% of people just have a single window that's maximized per workspace.
Tiling window managers could be decent if they were a core experience, but in reality no one develops apps for them so you always have some popup that spawns and fills half your screen.
The major shortcoming of both is that they only work in rectangular, desktop-sized screens. Mobile UIs avoid both, and default to single-window-always-maximized, which still isn't good enough.
Scrollable tiling managers, however, would be the bee's knees: windows are laid out on an infinitely scrollable horizontal layout, which would also easily replicate the common side-by-side layout "power users" often rely on. There are some niche experiments like PaperWM, but they haven't ironed out the UX for some reason: if they just made the entire layout scrollable by panning on your touchpad/mobile screen, it would instantly be better than anything we have today, and free us from the tyranny of window management. Additionally, it would work with both our widescreen, cinema-sized desktop monitors, and mobile devices.
(I have never used it and memory might fail me, but I seem to remember Palm webOS devices had this scrollable "card" layout system which people seemed to like a lot. See https://www.palmtotal.com/sites/www.palmtotal.com/files/imag...)
"pop window to front on focus" is a choice - in fvwm2 by default it doesn't happen, you need to click the window decoration to bring one to the front and can focus it just fine without doing so.
I use focus follows mouse as well so all I have to do is put the cursor over wherever I currently want to type into, but while I personally think the combination of the two is more than the sum of its parts, 'windows stay put Z-order wise' is great on its own too.
> Scrollable tiling managers, however, would be the bee's knees: windows are laid out on an infinitely scrollable horizontal layout, which would also easily replicate the common side-by-side layout "power users" often rely on.
I have a small script called xclus (https://trout.me.uk/X11/xclus) that fires up my xterms pre-tiled and scroll around them - including sometimes borrowing the left hand pair of the screen's worth to the right to end up having six dedicated to a task rather than four. Looks a like https://trout.me.uk/screenshot4.png in practice, look at the pager at the bottom to see the pre-tiled ones that I can scroll across to.
It was surprisingly nice but in retrospect a bit too mouse heavy.
I've since gone over to tiling. Sway in particular.
The main drawback is that I absolutely never see my desktop background, but that’s about it.
The screenshot is 1920x1080. Screens are sold using buzzwords like 'HD', 'UHD', and 'retina' that evoke a sense of image clarity. I spent years telling my dad that I liked higher resolutions because it meant more /space/ and he couldn't grasp what I meant. He was stuck on associating higher resolution with clarity until I bought him a 43" 4k monitor, and he used it for a while. Even at 1.5x scaling, suddenly, he was able to view multiple pages of a document clearly at the same time without even scrolling. This isn't at all a normal desktop setup or the kind of setup that desktop environments are optimizing for or advocating. But it works better and better matches the inspiration.
It was mostly on the Workbench we used floating windows, and while we had "sort-of" spatial, in that the position of windows were remembered if you chose, the if you chose (by choosing "snapshot") part meant you were free to move folder around knowing they'd be back where they should be when you opened them again. To me it's always been annoying that the attempts at spatial on Linux all took it to the extreme of remembering every change, which to me was always the biggest wart of these systems.
I absolutely like expanding screen size, and can't deal with peoples tendency to opt for tiny little laptops, but at the same time, I don't need all that much physical screen space for most things because everything happens on separate "screens"/virtual desktops the way it used to back on my Amiga.
I do prefer to turn my head side to side rather than up and down, so right now I'm happiest with a 5120x1440 49" monitor and may consider a 7680x2160 57" monitor sometime in the future.
Doing all of this still felt cumbersome and then it dawned on me about a year ago, because I don’t game or watch full screen video, I think I’d much prefer the old 4x3 screens for my workflow.
Refreshingly so at times. Comparatively it’s very distraction free.
Whenever I fire it up to journal or fiddle with some classic MacOS development I always think, “Where did we manage to go so wrong in the last 30 years?”
With all due respect, I can never take these self-made claims at face value. You definitely feel that you are more productive, but that may or may not be the actual case and it is easy to lie to ourselves.
i3 (actually sway) helps me with focusing only at those windows that belong to a specific task, and often in full-screen. if I must use a GUI browser which has tabs and constant distraction then I can do so, but the context switch isn't "just mental" but I have to change over to another virtal desktop. this sounds hardly revolutionary (virtual desktops are also in KDE and Gnome). But it is a lot more "painful" than having everything in front of me at all times using 3 monitors. It also makes me actively aware (!!) that a context switch is happening, and so I end up allowing it less, and force myself to finish what I'm doing before attending to some interruption. there is no taskbar no dbus-popups.
I even use my device for undistracted reading of books multiple hours at the time, without snacking on HN content inbetween. (although for this I've started using another cheap old laptop that does not have network and is only running a few things (zathura for reading PDF's and calibre for converting from different formats). -> hardware compartmentalization FTW
generally leaving fullscreen and reconnecting the network and switching to another desktop is just too many steps and i now only break my concentration with a total awareness of it happening.
It honestly changed my life, made me more focused, less anxious, and more in control. Def not going back to the illusion of being productive just because I'm juggling everything at once ...
In any case I'll add another anecdote for someone that has nearly the identical setup to the GP and will say it also significantly increased my productivity. Don't really care if anyone believes me.
I use Kitty for my terminal, i3 for my window manager, vifm for my file manager, vim/neovim for my editor and Firefox. All of my virtual desktops handle different things, like watching movies, doing AI projects, web work, game development, graphics work, etc.
You can do all of this stuff in Windows or on a Mac, but I'm using minimal resources with a highly streamlined workflow. Everything that I can script, I script. I also use Zsh with quite a few plugins so the terminal itself isn't so important. I use Kitty because it's fast, can render graphics, is well documented and has a ton of features.
Furthermore, I use the tiling functionality heavily. There are about 10 apps I use regularly, and they launch and get bound to a particular workspace on startup. My screen remains uncluttered, with one app filling the viewport, and a single keystroke to switch to the other apps I use. It's pretty close to perfect for my use cases.
Lastly, these WMs are all configured through text files, so your exact configuration can be stored in dot files in git. In my case I use Nix, so I can redeploy my exact setup on any machine without any manual configuration.
From that list I use greetd + tuigreet as my login manager, sway-launcher-desktop for FZF-powered app launching, and wob for lightweight brightness and volume display (send '50' to the wob socket and it'll show 50%; it doesn't get simpler).
I'm curious if there are any particular guides/examples you would recommend, or whether your Nix config is open source somewhere?
Stumpwm is also very attractive. Less "Unixy" but more Lispy which is a different approach at getting exactly what you want.
> What I have now is a reasonable facsimile of the classic Mac OS UI functionality in Linux, minus little niceties like the aforementioned popup folders, and I've found that I need basically nothing beyond that to work incredibly efficiently.
While it's one of the killer features of linux that you have enormous flexibility in how you use it and set it up, the screen-shot gives me the heebie-jeebies. Visually it's too noisy. I couldn't concentrate with that clutter screaming in my face.
Nb: I'm a i3 + command-line guy.
As a teenager, my first experience with Linux (a Fedora book & CD combo) was formatting my main Windows drive with all my data on it. Good times.
99% of the time you just want information. Text. The chrome does not matter. Yet modern desktops and web pages make humans hunt and pick through poorly designed interfaces to get the info we need.
I use EXWM. It’s a time saver. I have no desktop because I am either using the full screen for a single application or flip flopping between a few apps that share the entire screen. This means every pixel of the screen is used and not wasted on useless images of empty fields.
In top of that I am able to designate windows and frames for specific jobs or functions, always able to recall the last terminal or most relevance.
We fucked up with movable windows. They are inefficient complicated and bring little value over a simple list of activities to switch between.
Given I use a much larger screen I can assure you it works well.
Text is a not an information-dense medium, and for many kind of data it simply sucks.
Also, please don’t just go around throwing productivity into sentences, it is just completely baseless and biased observation on your own part - if you better enjoy a new workflow, but it is actually slower, you might still feel more “productive”.
And, yes, I managed to bind slrnpull with GNU's avoiding a huge chunk of time. And, SLRN was much faster. On hackability, I don't care, awk/sed/sh it's my glue, and perl+CPAN for a big task.
In the end, it's being run on a batch basis with cron, so I have the ultimate Unix tools: let the tools do the hard work themselves with scripts, so you just ignore anything else and focus on your current task. Mails, news posts and RSS's are currently managed in the background, a single script will download and upload all the data.
On the minimalist side, we're all bikeshedding, and the biggest challenge is that there are more theories about what a nice interface should be like than there are users...
The wording has some ambiguity, but it does sound like TFA hasn't heard of Xerox or Perq - perhaps attributing some misplaced invention, rather than popularisation, to Apple.
Subsequently reinforced my suspicion:
> The spirit of the Macintosh spread throughout all of computing; the GUI was inexorably the future.
I think with desktop minimalism there's two broad interpretations - a desktop metaphor that is simple (has (frustratingly) few features), versus one that is complex but can be configured to be simple to operate.
I like the fact I can very precisely adjust the width and colour of my window borders, but it's not a configuration item I visit more than once every few years, so I wouldn't say the option adds to the complexity of the interface. (Disclaimer - I've never used MATE.)
> Oddly enough, only GNOME has had any kind of distinct vision
The author did use KDE early on (version 3, but says they've only been using a computer for a decade and change).
They're aware of other desktops, then, including the one that's arguably put the most effort into having a consistent user experience.
The discussion on navigating through minimised windows I think boils down to a consideration of how to represent complexity - similarly their discussion of the launcher - almost inevitably a hierarchy is required if we are aiming to 'avoid the keyboard at all costs'. People have different GUI preferences there - mine is generally narrow and deep, over wide and shallow.
The way I read it, they were attributing the intercombination of these elements under the desktop metaphor to Apple. Smalltalk existed, the Star existed, PERQ existed, the Lisp Machine GUIs existed and JERQ/Blit existed, but all of these were so substantially different from each other let alone what Apple did that they functionally exerted little influence on the way GUIs developed after the Macintosh launched save for a few odd branches here and there (Oberon anyone?)
The author is not taking the metaphor far enough! He left out one of my favorite pieces of Mac OS.
The folder should not contain application launchers. It should contain the actual applications themselves. An application is just a file. To "install" an application, copy the file to a location on your hard drive. To "uninstall" an application, delete the file.
Under the hood, applications can be a collection of files, whatever, but the GUI should treat each application as one file.
Awesome WM gives you an organized clutter if you opened too many windows that's not bare-minimum terminals, while XFCE with all it's window UI elements made the clutter even worse (but you can just minimize the window). The new Gnome just made it so that opening more than three windows under the same workspace gives you nightmares due to lack of a dock as well as minimize buttons.
(Now, to clarify, I had good experiences with all the desktop/wms mentioned above, so it's not a criticize, more of pointing out my desires)
If you take a look at the screenshot presented in the article, I don't really think it's a productive desktop any more because it takes at least 5 seconds to find the window that you wanted. I mean, I'm sure MATE has tried it's best there, but... I think we are all limited by the lack of imagination of how a good desktop should be like.
For me, I resolved my clutter problems by installing a Dock extension as well as (most importantly, actually) adding an external monitor. So finally I can comfortably open more than 6 windows at a time :) (Yep, I keep the tree windows that I wanted on the main monitor and throw the rest of clutters to the second one :)
I feel exactly the same way but solve it by having an fvwm2 configuration that makes my workspace 3x3 (currently) of the physical screen size and I can scroll the viewport around that to taste.
See https://trout.me.uk/X11/fvwm2rc for my configuration if curious (for a more actual-GUI-ish workflow you'd want to configure more of its features, I generally just have lots of xterms and maybe a firefox - see https://trout.me.uk/screenshot4.png)
RiscOS is quite nice to use, but it is .. limited. No wifi for instance. And the filesystem uses . (dots) for folder separators, so xfering files can be a pain.
Decently cool and interesting, but not worth the hour-long read IMHO.
Try some 3D creation tools, such as Autodesk Fusion or Blender. Those face a really hard problem. It took too many years to get 3D CAD and drawing up to a tolerable level. Selection in a cluttered 3D environment took a long time to solve. Most user-level GUIs are addressing a far simpler problem.
I'd just like to have borders back. They don't have to be big, or shadowed. Just present. I'm tired of overlapping borderless consoles in Ubuntu. Of web sites where there's a scrollable area with no border. Multiple scrollable areas with no border, as with Discord. Buttons with no indication of the live area. This stuff is borrowed from phones, but does not scale well to larger screens and more controls.