Wandering Thoughts archives

2018-01-22

The addons that I would likely use with Firefox Quantum (57+)

A significant number of my current Firefox addons are not WebExtesions based addons and so don't work in Firefox 57 and later. Since I'm going to have to move on from Firefox 56 at some point (although probably not soon, temptation notwithstanding), I've been checking in on the state of WebExtensions addons and putting together a snapshot of the addons that I would likely end up using if and when I move over.

(Since Firefox WebExtensions addons are very new at this point and some addon maintainers are undoubtedly getting to experience the charms of unexpected and not entirely welcome popularity, I would be surprised if this list did not change over the next six months or so.)

The simple case is current addons that already have Quantum-okay versions. In this category are NoScript, uBlock Origin, Open in Browser, and HTTPS Everywhere. I'm not exactly fond of the new NoScript interface (I find it much more confusing than the old Firefox 56 NoScript UI), but I'm sure I could get used to it.

As far as everything else goes:

  • Foxy Gestures appears to be the leading replacement for FireGestures. The FG Github site has a bunch of useful information, including about current inherent limitations in WebExtensions that affect Foxy Gestures. The leading other option is probably Gesturefy, which I haven't experimented with (and it seems less actively developed, which matters when the Firefox WebExtensions API is actively changing as people tell Mozilla what they left out).

  • My preferred way to deal with cookies is the 'don't allow cookies at all' approach. Unfortunately, it seems that everyone has moved over to the 'accept cookies then delete them later' model (as far as I can see from picking through addons.mozilla.org). The modern addon for this that I'm trying out is Cookie AutoDelete, partly because it's developed in the open on Github.

    (For all that I grumble about this, accepting cookies and then throwing them away may make various websites somewhat more usable. On the other hand, I already read enough random things on the Internet as it is.)

  • The replacement for It's All Text that I've experimented with so far is Textern; it has a somewhat convoluted install process but once installed it appears to be close to the It's All Text experience. Textern uses Native Messaging (also, and), which is pleasantly straightforward compared to some of the alternate approaches taken by other addons. The one thing I've had to remember is that its magic file needs to be installed into every strongly isolated Firefox instance.

    (The It's All Text Github repo mentions some other alternatives. Everything I've looked at so far appears to have a pretty heavyweight process for going from adding the extension to 'edit textarea in vim in an xterm', although they're probably better if you want deep integration into a highly advanced editor.)

  • The alternatives to FlashStopper that I've been looking at are Disable Autoplay for YouTube and Disable HTML5 Autoplay but neither of them get stellar reviews; there's also this. Some flaws may be inevitable in the brave new world of WebExtensions, where apparently at least some addon operations have to wait for the page's DOM to be fully realized, whereas YouTube's player can start up before then. Or maybe there aren't any really good Firefox extensions here yet.

    Apparently setting the media.autoplay.enabled preference to false may also do this, but there are reports of side effects (and when I look at the Firefox source code, I can't convince myself that this disables all video autoplay in all situations). Or I could see if the WebExtension version of NoScript can handle this on its own now.

(In looking at things to make Youtube less annoying, I just stumbled over YouTube Stop AutoPlay Next. I hate that particular YouTube behavior so I may experiment with this at some point.)

It's quite possible that I've missed some good options for replacement addons here. In fact, given that some areas are a bit disappointing, I actively hope that I have (and that I can find the better choices someday). And of course I have no idea whether these new addons (or in some cases new WebExtensions versions) will handle memory any better than my current set of addons do. Since I have had terrible luck with changing addons in the past, I live in moderate fear that they'll be worse, which is one reason I am so unenthused about changing anything about my relatively precarious addon environment. It may leak a bit now, but it could be much worse (and has been in the past).

web/FirefoxQuantumLikelyAddons written at 22:41:23; Add Comment

Doing something when a Cinnamon-based laptop suspends or hibernates

I've used encrypted SSH keys for some time. To make this tolerable (and even convenient), I load the keys into ssh-agent. On my desktop, I make this more secure by automatically flushing the keys when I lock the screen (details here). To get a similar effect on my laptop, I want to flush the keys before it suspends (suspending the laptop is roughly the equivalent of locking the screen on a desktop; it's almost always what I do before I walk away from it). I also want to force-close any lingering SSH connection masters, because it's pretty likely that my network connection will be different when I un-suspend the laptop (and in any case, the server end will probably have timed out).

In the beginning I did this by hand with a shell script or two. I usually remembered to run it before I suspended (my custom Cinnamon environment made it not too hard), but not always, and it was kind of a pain in general. Then I found out that it's possible to hook into the modern suspend process to automate this.

The important magic is that there is a standard freedesktop DBus signal that is emitted when your modern DBus and systemd-enabled system is about to suspend or hibernate itself. The DBus details are covered in this unix.se answer (via), and I simply copied and modified the Python code from David Newgas' av program to make something I call presusp.py. My version does not have a start() action to do things after the laptop un-suspends, and its shutdown() action is simply to run my shell scripts that drop SSH keys and cleans up shared SSH sessions. If I used my Yubikey more on Cinnamon (which is possible), I'd also run my script to drop the Yubikey from ssh-agent (covered here).

Because presusp.py is directly tied to my login session, I just start it in a shell script I already have that does various things to set up my Cinnamon session. This also terminates it when I log out, although usually if I'm going to log out I just power down the laptop.

(Logging out and then back in again has been somewhat flaky under Cinnamon for me.)

PS: According to the logind DBus API there's also a signal emitted before screen locking, although it comes from your session instead of the overall manager. If I cared enough, I could presumably hack up my presusp.py to flush keys even on screen lock. Right now this is too complicated for me to bother with, since I rarely lock the screen on my laptop and step away from it.

Sidebar: Restoring keys to ssh-agent after an unsuspend

Unlike on my desktop, I don't try to automatically re-add my encrypted keys to ssh-agent when the laptop un-suspends. Instead I have my .ssh/config set up with 'AddKeysToAgent yes', so that the first time I ssh somewhere it automatically adds the keys to the agent after prompting me to unlock and use them. This is a bit less convenient than on my desktop but it works well enough under the circumstances. It helps that I don't try to do fancy things with remote X clients on the laptop; mostly what I do is SSH logins in terminals.

linux/CinnamonActOnLaptopSuspend written at 00:50:48; Add Comment


Page tools: See As Normal.
Search:
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.