Firefox's middle-click behavior on HTML links on Linux

November 25, 2018

When I wrote about my unusual use for Firefox's Private Browsing mode, I lamented in an aside that you couldn't attach custom behavior to middle-clicking links with modifier keys held down, at least on Linux. This raised an obvious question, namely what are the various behaviors of middle-clicking links on Linux with various modifier keys held down.

So here they are, for posterity, as of Firefox 63 or so:

Middle click or Shift + middle click Your default 'open link in' behavior, either a new tab or a new window. For me, a new window.
Ctrl + middle click The alternate to your plain middle click behavior (so opening a new tab in the background for me).
Shift + Ctrl + middle click Open link in a new tab and then do the reverse of your 'when you open a link in a new tab, switch to it immediately' preference.

If you have Firefox in its default preferences, where opening links in a new tab doesn't switch to it immediately, shift + ctrl + middle click will immediately switch to the new tab. If you have Firefox set to switch to new tabs immediately, shift + ctrl + middle click opens new tabs in the background.

Firefox on Linux appears to entirely ignore both Alt and Meta (aka Super) when handling middle clicks. It probably ignores other modifiers too, but I don't have any way of generating either CapsLock or NumLock in my X setup for testing. Note that your window manager setup may attach special meaning to Alt + middle clicks in windows (or Alt + the middle mouse button in general) that preempt the click from getting to Firefox; this was the case for me until I realized and turned it off temporarily for testing.

You might also wonder about modifiers on left clicks on links. In general, it turns out that adding modifiers to a left click turns it into a middle click. There is one interesting exception, which is that Alt plus left click ignores the link and turns your click into a regular mouse click on text; this is convenient for double-clicking words in links, or single-clicking to select sub-word portions of things.

(Perhaps I knew this at one point but forgot it or demoted it to reflexive memory. There's a fair amount about basic Firefox usage that I don't really think about and don't know consciously any more.)

Sadly, I suspect that the Firefox people wouldn't be interested in letting extensions attach custom behavior to Alt + middle clicks on links (with or without other modifiers), or Meta + middle clicks. These are really the only two modifiers that could sensibly have their behavior altered or modified, but since they're already ignored, allowing extensions to interpret them might cause disruption to users who've gotten used to Firefox not caring about either when middle-clicking.

As a side note, Shift plus the scroll wheel buttons changes the scroll wheel from scrolling up and down to scrolling left and right. Ctrl plus the scroll wheel buttons is text zoom, which is probably well known (certainly I knew it). Alt plus the scroll wheel is 'go forward/back one page', which I didn't know. Shift or Meta plus any other modifiers reverts the scroll wheel to its default 'scroll up/down' behavior, and Meta plus the scroll wheel also gives you the default behavior.

PS: Modifiers don't appear to change the behavior of right clicking at all; I always get the popup menu. The same is true if your mouse has physical rocker buttons, which Firefox automatically interprets as 'go forward one page' and 'go back one page'.

Update: There's a bunch of great additional information in the comments from James, including a useful piece of information about Shift plus right click. If you're interested in this stuff, you want to read them too.

Comments on this page:

By James (trs80) at 2018-11-26 11:04:50:

You can swap around the scrolling modifiers - I used to make Ctrl+scroll move 8 lines instead for faster scrolling (and prefer ctrl -/=/0 for text zoom).

I can't get Shift+scroll to go left and right on Windows, perhaps it's an X or GTK+ input mapping? Ah, here's the bug/request/implementation. It also mentions Qt does it, and I found macOS does too.

By James (trs80) at 2018-11-26 11:06:36:

I found out about the alt-click thing many years ago, and was quite annoyed when at the time I couldn't change the window manipulation bind from Alt to Super so it took precedence over the Firefox (or was it Mozilla still?) behaviour.

By James (trs80) at 2018-11-26 11:10:14:

Oh, and Super != Meta 'X11 define[s] the shift states "Meta", "Super", and "Hyper" (along with "Shift" and "Control" and "Alt"'

By James (trs80) at 2018-11-27 06:56:20:

One more thing - middle-click behaviour on the back/forward buttons - only shift makes the new tab appear in the background, the other modifies don't seem to change the behaviour.

By James (trs80) at 2018-11-27 18:40:06:

(I did not expect myself to make so many comments but here we are). Shift-right click will override any javascript right-click action and bring up the browser's context menu. Although when I just tested on Google Maps it brings up both.

Written on 25 November 2018.
« How we monitor our Prometheus setup itself
(Open)SSH quiet connection disconnects in theory and in practice »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun Nov 25 19:21:32 2018
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.