Is the mouse bad UI?

I’m going to warn you up front with a spoiler: I’m defying Betteridge’s Law in this entry. The answer is “yes” – with a caveat.

For years, the only interface between a human and a computer was a keyboard. For years, people successfully and productively used computers to solve a range of problems using only a keyboard. The problem is that there are many tasks which are horrible to attempt using only a keyboard, and as computers began to be used with audiovisual media, a different interface was required. Also around this time, people were still trying to transition from traditional data management tools – paper, folders, binders, and filing cabinets – to computers, and computer companies were eager to transition clients from traditional, analog tools to digital ones. This led to the development of the mouse, and corresponding skeumorphisms such as “the desktop,” “files,” and “folders” – we didn’t even bother renaming them, because we were trying to make computers feel familiar, and less scary.

And it worked.

The internet, and especially the web, played a large factor, but even before Berners-Lee smashed the dyke and unleashed a tsunami of non-techy users on the traditionally higher-ed and science-oriented internet community, the mouse had been adopted and we were used to dragging “files” into “folders.” And even after Google forced even high-tech users to consider that we need not be chained to outmoded, outdated, and mostly incorrect iconography by introducing tags with Gmail and – with such impertinance – getting rid of the concept of “folders” altogether, the desktop and files remain. As, mostly, do folders. Yes, occasionally you’d see a company produce a product like BeOS that did away with the concepts (although, ironically, still keeping the filing cabinet as an icon), but these never caught on except at the fringe. We now have multiple generations who have never seen a filing cabinet, except, maybe, at their grandparent’s, where they still dutifully file paper receipts that they’ve printed out from PDFs sent to them electronically.

But I meant to talk about the mouse, and where I’m going is this: the mouse is a screwdriver. A screwdriver can be used as a crowbar; it can be used as a crude chisel; it can be used as a hammer. A flathead screwdriver can even - with enough desperation - be used as a Phillip’s head screwdriver. It excels at screwing and unscrewing flathead screws, but it can be a jack-of-all-trades. Much like a screwdriver, a mouse can be used for a lot of tasks; unlike a screwdriver, however, the mouse has been largely forced into a jack-of-all-trades role by the mere dearth of other, more appropriate tools. For example, it took many years before graphics tablets (digitizers) to become available and affordable to home users, and it really wasn’t until tablet computers like the iPad came along that most people were able to draw in any way naturally. Before then, drawing with a mouse was painful… because it’s not the right tool.

I argue that the mouse is not the right tool for most things. I argue that many things most people use the mouse for are better served by a keyboard. Wait! Before you scoff, and call me an elitist (or something even less flattering), consider this: with the exception of graphic artists – people working with video or pictures – anyone who uses any tool regurlarly inevitably learns that tool’s shortcuts. A bunch of shortcuts. So. Many. Shortcuts. Because the mouse is a terrible tool for most applications, and the keyboard is far superior. But every application has it’s own dialect of shortcuts; sure, copy and paste may be common, being mainly enforced by the desktop environment itself, but most applications have an array of common operations with unique shortcuts, and people become trapped in their applications. Their shortcut knowledge is non-fungible; it doesn’t move with them when they use different applications, and it prevents them from switching to a different, maybe better, application because the new application seems somehow harder. And it is, because the shortcuts are all different, and users have to learn an entirely new language for interacting with their programs. And this is all because of the mouse.

“What‽” I hear you say. How can I possibly place such a burden on the shoulders of the humble mouse? It’s because user interfaces are designed around mice. Designed for mice, designed expecting that the tool that users will first interact with their program with will be a mouse. So we get menus, and sub-menus, and pop-up menus; and a whole slurry of new shortcuts for users to learn. But they’ll learn them, if they use the program for any amount of time, because – and this is what I’m really trying to get across – the keyboard is a better interface for most programs.

We’ve moved into a new era of touch interfaces; nearly everything has a touch interface. My wife was given a new replacement laptop recently, and it took her three weeks before she discovered that the screen was a touch interface. And, yet, if I’ve been using a touchpad for a few hours and I pick up my laptop (which, incidentally, does not have a touchscreen), I will for a few dozen minutes occasionally poke at the screen dumbly, wondering for a few seconds why my folder isn’t being selected.

Apple’s doing some pretty radical stuff with user interfaces based on touchscreens, and while I give them credit for stepping away from the desktop/file/folder paradigm, I think they’re cocking it up. They make simple operations hard - like, if you’re browsing a web site and want to download a PDF… you have to go to “Share…” and “Save to device”, and then where the hell does it go? Who knows? There are some things that haven’t been well thought-through, but I expect we’ll get there eventually.

In the meantime, there exists an odd subculture of keyboard drivers that I’m part of, but don’t fully understand. I don’t think we intentionally end up here, but rather find ourselves in this place where the mouse is an accessory we use only for some specific tasks. I’m inevitably going to be describing my set-up, but I feel as if most of us have very similar workflows and set-ups, and use similar tools. I think a good indicator that you’ve met a keyboard person is that they are not using a Desktop Environment, like KDE or Gnome. Instead, we use tiling window managers: i3 is the 900lb gorilla, but there’s AwesomeWM, bspwm, herbstluftwm – and that’s only for X11. There are several for Wayland; there are 96 projects in the combined Arch&AUR repositories; probably half that number are unique tiling projects, and if I was going to be safe, I’d say there were around 30 distinct tiling window managers. That’s a lot of people using tiling window managers. And then there are text editor choices. Many of us, even developers who have access to quite good, advanced IDEs choose to use EMACS, neovim, Kakoune, or Helix – because, while some of them have mouse support, they’re keyboard-first by design. Then you’ll notice that most every one of us is using some sort of muxing terminal interface; many of us are using tmux, dvtm+abduco or have moved on to some newfangled upstart like Zellij, but some people trust the terminal emulator itself and are muxing within the emulator, as with wezterm – again, the commonality is that they’re all keyboard-driven. But you’ll know you’re dealing with a hard-core keyboardist when nearly every tool they’ve chosen runs in a terminal. That’s because terminal-based applications, whether TUI or not, are keyboard-first design. So, instead of web apps masquerading as desktop applications (Electron), or proper GTK, Qt, Tk, or whathaveyou GUI applications, we’re running gotop instead of Gnome System Monitor; aerc instead of Evolution; ikhal instead of – whatever GUI calendar program the DE provides; gomuks instead of Element; stmps instead of Sonixd; tut instead of Whalebird. We do things like sync our email from our email servers to our desktops, and then tag them with notmuch, because Google proved that the tag paradigm is superior to folder paradigm. Even when we have to use GUI applications, we choose ones with a hard keyboard focus: luakit, surf, vimb instead of Firefox; the hardcore use w3m (several terminals are capable of quite good in-terminal graphics rendering). The hardest of the hardcore don’t even start X or Wayland, and run everything in one of the vtes. All of us probably have our individual lines of comfort: I use luakit for most things, but I’ll open Firefox because some sites simply aren’t compatible with W3C standards, and I know that – as good as Helix is – IDEs like Jetbrains’ tools provide enormous value-add that the vims and Helixes and EMACSes struggle to achieve. I can respect a developer for choosing to live within an IDE, although I do not choose to do so myself.

Of course, anyone doing video or audio editing – those are the domains of mice. Those are things mice are good at. Graphic artists, people painting on computers, they’re probably using tablets – the good ones are quite pricy. They’re using the right tool for the right job; they’re screwing flathead screws with a screwdriver, and that’s smart. What’s less smart is using a screwdriver as a chisel. It’s not the users’ fault; they’re using the tool that the industry give them, and then went on to build entire interface ecosystems around. I just wish they knew the richness of the depths lurking beneath that beautiful, but awful, user interface design.