Visual Minimalism

This is a rant.

I find that most GUI applications are too cluttered. Every widget on a GUI comes at the cost of screen space, efficiency, and user attention.

Screen space

For each widget on the screen, there's less space for what the user actually wants to look at. The end result of too many widgets is that the user is left looking at a tiny square in the middle of the screen. Most of the stuff around that tiny square is neglected. Integrated Development Environments are the most egregious examples of this problem.

Anything made for viewing and reading stuff should give all of its screen space to the thing it's displaying. There's no reason you should have anything on the screen at all. All control and functions should be provided by keyboard shortcuts. It can be useful to have many document tabs, have it so a keyboard shortcut can toggle the tab view, or have keyboard commands to select different tabs. If you need to navigate a gallery, then it is better to have commands to move around, than a file browser on the side.

Anything made for editing stuff should primarily focus on the object that's being changed. Editing programs should have keyboard shortcuts for changing tools and running commands. Information should be given to the user when they ask for it, it should never permanently stay on the screen. Most editing programs fail to have these properties.

The reason why programs fail to have these properties is because UI designers confuse user friendliness with beginner friendliness. The crutches beginners use to get their work done must be ditched as they grow into experts. Tricycles are beginner friendly but they are not friendly to expert cyclists. Almost all modern applications are tricycles.

Efficiency

When you have more widgets on your screen, it takes more time to find any individual widget. You spend more time bouncing your mouse around, this is especially bad if you need to use your mouse to input 2 dimensional data into what you're editing (eg painting applications). You spend most of your time moving from the button area, to where you want to edit and back.

As a band aid, you could make it so you could pop the mouse pointer position to a previous location on a stack. This would be useful in applications where you'd otherwise spend a lot of time bouncing back and forth. For a paint application, you would save your mouse position whenever you click the canvas, and save your mouse position whenever you click a button. You could middle mouse click to go back to a previous position. It would be good to make the mouse pointer grow and blink after a stack pop so the user knows where it went.

Attention

Some widgets can be distracting to use. This is only a problem in certain applications. Tabs on web browsers are distracting because people tend to have some tabs for play and others for work. In addition, the tabs encourage multi tasking, and multi tasking leads to doing everything worse.

Window managers are even worse, The average window manager has a task bar, people often have fun programs and work programs open at the same time. Every time you glance at the task bar, you are tempted to open the time wasting application. Even if you never do it, temptation slows you down, and makes work less enjoyable. People often leave windows floating around, which take up screen space and can act as distractions. Window managers should have every application start at full screen, and no buttons anywhere. Ratpoison or StumpWM are good examples. The desktop metaphor was a mistake; tiling window managers are superior. (Note: I've changed my mind about this. The desktop metaphor could actually work quite well. I've become disillusioned with tiling window managers.)

The Mouse is good

The cause of mouse hate is due to misuse of its features. Most mouse applications fail because the mouse is used to click buttons. UI designers essentially create a keyboard that can only be used with one finger (your mouse cursor). It is much slower to move your mouse around the screen than it is move your fingers to any location on the keyboard. There are tons of buttons on a keyboard, there's no reason why the UI designer should put any on the screen (other than beginner friendliness).

The mouse is fine if you are editing something two dimensional, Or need to move focus to some other area. In the case of focus, there should be search commands in addition to the mouse.

Right Click menus are also an abuse of mouse. You have to move your mouse to select the button you want. You are moving the pointer around way too much. The right mouse button should have an action associated with it, instead of a menu. Emacs, xterm, and ACME (text editor) are all programs that use right click better. You could pop the mouse back to its previous location after you close a right click menu.

The main problem is that the average mouse has too few buttons. If the mouse had more buttons, and if you could use it like a ([https://en.wikipedia.org/wiki/Chorded_keyboard)[chorded keyboard] then it would be much more useful.

Mouse chording is awkward to use. You lose dexterity when you are pressing the mouse button, so it becomes harder to move the mouse around.

A personal problem I have with the mouse is that moving it around a lot makes my fingers go numb (I have carpal tunnel syndrome).

Separating window focus from mouse cursor

If window focus functionality was separated from using your mouse cursor, then each window could have a mouse cursor, there would be less moving the mouse around.

As an example, You could use your eyes to change window focus. Webcams can track your eye movements to see where you're looking. I am unsure how well this would work in practice. It would be idiotic to replace your mouse entirely with your eyes. People's eyes move around much more than they think, and it is very hard to stare only at a spot the size of a computer icon, for any extended period of time. Application windows are probably big enough for your eyes to handle. Blinking should have no functionality.

Alternatively you could use your keyboard to change window focus.

Visual Keyboard

If every button on your keyboard had a screen that applications could use to display icons. There would be no need to put buttons all over the main screen. Every keyboard shortcut would have an icon attached to it. A touch screen keyboard could do this, but it would be less tactile than a regular keyboard. For Text editing applications, you would need multiple symbols on one key. They could also dynamically display icons, in the case of commands that are activated by pressing keys in a sequence.

In the previous section, I complained about not being able to find what you're looking for if you have too many buttons. This is less of a problem on keyboards because the letters of the key serve as mnemonics.

Normal Touch Screen

On a touch screen, it's easier to press buttons on the screen. The down side is that the buttons have to be bigger. You are trading screen space for efficiency.

This text editor

As an experiment, I used the write freely text editor to write this article. I set my web browser to full screen mode and wrote what came to mind.

This text editor is fairly good when it comes to visual minimalism. The main problem I have with it is that there's very little functionality. Generally speaking, I like to be able to view notes and cite things while I am writing text. Emacs has good faculties for this. This rant was made without using any notes, it is less informative than some of the other things I've written inside and outside of the platform as a result.

Using markdown for formatting is a good idea, it makes it so you don't need to have buttons to format things. I like Emacs org mode and LaTeX more than markdown but it's good enough.


By Logan Andersen. This work is licensed under CC BY-ND 4.0

You can see my other blogs here.