October 25, 2020

Navigational Instruments

Filed under: digital,documentation,interfaces,mozilla,toys,work — mhoye @ 11:03 am

A decade ago I got to sit in on a talk by one of the designers of Microsoft Office who’d worked on the transition to the new Ribbon user interface. There was a lot to learn there, but the most interesting thing was when he explained the core rationale for the redesign: of the top ten new feature requests for Office, every year, six to eight of them were already features built into the product, and had been for at least one previous version. They’d already built all this stuff people kept saying they wanted, and nobody could find it to use it.

It comes up periodically at my job that we have the same problem; there are so many useful features in Firefox that approximately nobody knows about, even people who’ve been using the browser every day and soaking in the codebase for years. People who work here still find themselves saying “wait, you can do that?” when a colleague shows them some novel feature or way to get around the browser that hasn’t seen a lot of daylight.

In the hopes of putting this particular peeve to bed, I did a casual survey the other day of people’s favorite examples of underknown or underappreciated features in the product, and I’ve collected a bunch of them here. These aren’t Add-ons, as great as they are; this is what you get from Firefox out of the proverbial box. I’m going to say “Alt” and “Ctrl” a lot here, because I live in PC land, but if you’re on a Mac those are “Option” and “Command” respectively.

Starting at the top, one of the biggest differences between Firefox and basically everything else out there is right there at the top of the window, the address bar that we call the Quantumbar.

Most of the chromium-client-state browsers seem to be working hard to nerf out the address bar, and URLs in general. It’s my own paranoia, maybe, but I suspect the ultimate goal here is to make it easier to hide how much of that sweet, sweet behavioral data this will help companies siphon up unsupervised. Hoarding the right to look over your shoulder forever seems to be the name of the game in that space, and I’ve got a set of feelings about that you might be able to infer from this paragraph. It’s true that there’s a lot of implementation detail being exposed there, and it’s true that most people might not care so why show it, but being able to see into the guts of a process so you can understand and trust it is just about the whole point of the open-source exercise. Shoving that already-tiny porthole all the way back into the bowels of the raw codebase – particularly when the people doing the shoving have entire identities, careers and employers none of which would exist at all if they hadn’t leveraged the privileges of open software for themselves – is galling to watch, very obviously a selfish, bad-faith exercise. It reduces clicking a mouse around the Web to little more than clicking a TV remote, what Douglas Adams use to call the “point and grunt interface”.

Fortunately the spirit of the command line, in all its esoteric and hidden power, lives on in a few places in Firefox. Most notably in a rich set of Quantumbar shortcuts you can use to get around your browser state and history:

  • Start typing your search with ^ to show only matches in your browsing history.
  • * to show only matches in your bookmarks.
  • + to show only matches in bookmarks you’ve tagged.
  • % to show only matches in your currently open tabs.
  • # to show only matches where every search term is part of the title or part of a tag.
  • $ to show only matches where every search term is part of the web address (URL). The text “https://” or “http://” in the URL is ignored but not “file:///”.
  • Add ? to show only search suggestions.
  • Hitting Ctrl-enter in the URL bar works like autocomplete;”mozilla” go straight to, for example. Shift-enter will open a URL in a new tab.

Speaking of the Quantumbar, you can customize it by right-clicking any of the options in the three-dot “Page Options” pulldown menu, and adding them to the address bar. The screenshot tool is pretty great, but one of my personal favorites in that pile is Reader Mode. Did you know there’s text-to-speech built into Reader Mode? It surprised me, too. Click those headphones, see how it goes.

It’s sort of Quantumbar-adjacent, but once you’ve been using it for a few hours the Search Keyword feature is one of those things you just don’t go back to not having. If you right-click or a search field on just about any site, “Add a Keyword for this Search” is one of the options. give it a simple term or letter, then “<term or letter> <search term>” in the Quantumbar and you’re immediately doing that search. A lot of us have that set up for Bugzilla, Github, or Stack Overflow, but just about any search box on just about any site works. If you’re finding yourself searching particular forums, or anywhere search engines can’t reach, this is a fantastic feature.

There are a lot of other small navigation tricks that come in surprisingly handy:

  • Holding down Alt while selecting text allows you to select text within a link without triggering the link
  • Shift-right-click will show Firefox’s context menu even on sites that override it. This is great for Picture-In-Picture most video sites, and getting your expected context menu back from GDocs. (PiP is another feature I’m fond of.)
  • Clicking and dragging down on the forward and back buttons will show a list of previous or next pages this tab has visited.
  • You can use Ctrl-click and middle-mouseclick on most toolbar buttons to open whatever they point at in a new tab; Ctrl-reload  duplicates your current tab. You can use this trick to pop stuff out of the middle of your back and forward history stack into new tabs.
  • You can do this trick with the “view image”  option in the right-click menu, too – Ctrl-clicking that menu item will open that image in its own new tab.
  • New Tab then Undo – Ctrl-T then Ctrl-Z – will populate the address bar with the URL of the previously focused tab, and it’s useful to duplicate the current tab from the keyboard.
  • You can right click an iframe and use the This Frame option to open the iframe in a tab of its own, then access the URL and other things.
  • Ctrl+Shift+N will reopen the most recently closed window, Ctrl+Shift+T the most recently closed tab. The tabs are a history stack, so you can keep re-opening them.
  • Knowing you can use Ctrl-M to mute a tab is invaluable.

If you’re a tab-hoarder like me, there’s a lot here to make your life better; Ctrl-# for some N 1 to 8 will switch you to the Nth tab, and Ctrl-9 takes you to the rightmost tab (in left-to-right language layouts, it’s mirrored in RTL). You might want to look over the whole list of keyboard shortcuts, if that’s your thing. There are a lot of them. But probably the most underappreciated is that you can select multiple tabs by using Shift-click, so you can work on the as a group. Ctrl-click will also let you select non-adjacent tabs, as you might expect, and once you’ve selected a few you can:

  • Move them as a group, left, right, new window, into Container tabs, you name it.
  • Pin them (Pinned tabs are another fantastic feature, and the combination of pinned tabs and ctrl-# is very nice.)
  • Mute a bunch of tabs at once.
  • If you’ve got Sync set up – and if you’ve got more than one device, seriously, make your life better and set up sync! – you can right-click and send them all to a different device. If you’ve got Firefox on your phone, “send these ten tabs to my phone” is one click. That action is privacy-respecting, too – nobody can see what you’re sending over, not even Mozilla.

I suspect it’s also not widely appreciated that you can customize Firefox in some depth, another option not widely available in other browsers. Click that three-bar menu in the upper right, click customize; there’s a lot there.

  • You get light, dark and Alpenglow themes stock, and you can find a bunch more on AMO to suit your taste.
  • There’s a few buttons in there for features you didn’t know Firefox had, and you can put them wherever
  • Density is a nice tweak, and removing the title bar is great for squeezing more real estate out of smaller laptop screens.
  • Overflow menu is a great place to put lightly used extensions or buttons
  • There’s a few Easter eggs in there, too, I’m told?

You can also play some games with named profiles that a lot of people doing web development find useful as well. By modifyingyour desktop shortcuts to add “-P [profile name]” –no-remote” after the firefox.exe bit, you can have “personal Firefox” and “work Firefox” running independently and fully separately from each other. That’s getting a bit esoteric, but if you do a lot of webdev or testing you might find it helpful.

So, there you go, I hope it’s helpful.

I’ll keep that casual survey running for a while, but if your personal favorite pet feature isn’t in there, feel free to email me. I know there are more.

October 8, 2020

Control Keys Redux

Filed under: arcade,digital,documentation,interfaces,life,linux,science,toys — mhoye @ 5:29 pm

A long overdue followup.

One of my favourite anecdotes in Kernighan’s “Unix, A History And A Memoir” is the observation that the reason early Unix commands are so often truncated – rm, mv, ls, and so on – was that the keyboards of the day were so terrible that they hurt to type on for any length of time.

I wish more people thought about keyboards. This is the primary interface to these devices we spend so much of our time on, and it baffles me that people just stick with whatever ten dollar keyboard came in the box. It makes as much sense to me a runner buying one-size-fits-all shoes.

There are a lot of people who do think about keyboards, of course, but even so what I’m aiming for isn’t part of that conversation, and often feels like lonely work. Most of the mechanical keyboard fetishists that I can find are in it for the aesthetics, assembling these switches and those keycaps, and while the results can be beautiful they aren’t structurally all that different, still not quite something truly built to be truly personal. Kailh bronze switches are made of joy, sure, but if my wrists are still contorting to use the keyboard, that fantastic popcorn keyspring texture isn’t going to be durably great for me.

I’ve had this plan in mind for a while now, and have finally gotten around to setting up a keyboard the way I’ve long intended to thanks to a friend who introduced me to Cardellini ball clamps and mounting plates. Those were the missing pieces I needed to set up the keyboard I’m typing this on now, a Kinesis Ergo Edge split mechanical keyboard.

Some minor gripes about this specific device include:

    • Manufacturers of split keyboards absolutely refuse, for reasons I cannot figure out, to allow the halves of the keyboard to overlap. I want the 6TGB line and 7YHN columns on both halves! I’d much rather have that than macros or illumination gimmicks.
    • The stands you can order for it, like the wrist rests in the box, are a waste of time. I’m using neither so it’s not a big deal, but seeing a nice product ship with cheap plastic greebling is always a shame.
    • The customization software that comes with it is… somewhat opaque. I’ll find a use for those macro keys, but for now meh. Remapping that ridiculous panic button thing in the upper left to “lock my screen” was straightforward enough, which was nice.
    • Keys on these split keyboards are never ortholinear – meaning, never in a regular old, non-offset grid, like you’d expect on a tool being used by people without diagonal fingers. Standard keyboard layouts make zero sense and haven’t in fifty years; we don’t need to genuflect to a layout forced on us by mechanical typewriter levers and haven’t since before Unix was invented! Get it together, manufacturers! But here we are.

But the nice things about it – the action on these delightfully clicky Cherry MX Blue switches,  the fact that most of the keys are in the right places, the split cable being elegantly tucked away – they outweigh all of the gripes, and so far I’m reasonably happy with the setup, but that’s not really because of what came in the box.

It’s because the setup is this:


Like I say, I’ve had this in mind for a while – an A shape hanging off the front of the desk, each half of the keyboard with a ball head sticking out the plates on the bottom and a third ball head sticking out of the standing desk at about belt level, bolted into the underside of my standing desk. All of it is held together with a surprisingly rigid three-way ball clamp – the film industry doesn’t like having lights or cameras just topple to the floor for no reason, funny story – and the result is a standing desk where I can type with my hands in a very relaxed, natural position all day, without craning my wrists or resting them awkwardly on anything. The key surface is all facing away from me, which takes some getting used to, but hooking my thumbs on the side of the spacebars gives me a good enough home key experience that my typing error rate is getting back down to the usual “merely poor” levels I’m long accustomed to.

It’s a good feeling so far, even if I’m making microadjustments all the time and sort of reteaching myself how to type. I’m starting to suspect that any computer-related ergonomics setup that preassumes a desk and chair is starting from a unrecoverable condition of sin; humans are shaped like neither of those things, and tools should be made to fit humans.

Update: A few people have asked me for a parts list. It is:


October 7, 2020


Filed under: analog,beauty,life,music — mhoye @ 7:47 pm

Thinking of an old friend today.

Powered by WordPress