Displaying EML attachments in Vivaldi on Linux

Until recently, I have been using the old Opera Mail client for my work email. Opera Mail 12 was released in 2013. Being almost ten years old by now, it is starting to show its age with lack of support for newer standards. Since I really like the way the Opera Mail client works, I was really looking forward to the work done by the amazing Vivaldi team (where a lot of my old colleagues from Opera Software ended up, together with a lot of other amazing people), on their Vivaldi Mail client.

As my $DAYJOB uses Microsoft 365 for their email, we have several Outlook users in the house, and sometimes I happen upon a forwarded email sent in .eml format, and while Vivaldi actually uses this format to store email internally, it cannot display an attachment in this format (at least not as of October 2022). An eml file is basically just a bare email message, so it should be easy to read, right? Apparently, not so much. Googling around mostly recommended installing Thunderbird and import it there. That question did have an interesting answer recommending mhonarc, using it to convert to HTML. I ended up expanding on that, writing a script that converts to HTML and then calls back to my stand-alone Vivaldi e-mail instance. I have this as /home/peter/bin/eml-viewer (if you’re using the main instance, remove the –user-data stuff, otherwise replace it with a path to your configuration directory):

#!/bin/bash
if [ ! -e "$1" ]; then
    echo 'eml-viewer file.eml'
    exit 1
fi
OUT=$(mktemp --suffix .html)
/bin/mhonarc -single "$1" > "$OUT"
/bin/vivaldi-stable --user-data-dir=/home/peter/.config/vivaldi-standalone "$OUT"

The next step is to connect this up to open .eml files. For this, we need to create a matching .local/share/applications/eml-viewer.desktop file:

[Desktop Entry]
Version=1.0
Name=EML Viwer
GenericName=EML Viewer
Comment=View Outlook EML file
Exec=/home/peter/bin/eml-viewer %U
StartupNotify=false
Terminal=false
Icon=mail-mark-unread
Type=Application
Categories=Viewer;
MimeType=message/rfc822;

And finally, make it the default application for opening eml files:

xdg-mime default eml-viewer.desktop message/rfc822

This will leave the temporary HTML files in your temporary directory, so take care about sensitive data if on a shared computer. Set $TMPDIR to somewhere private and clear it periodically.

The futility of OSX parental control and web browsers

I have kids. Two of them, the youngest is five and the oldest is about to turn eight years old. Since they see me and my wife use a computer regularly, they of course also want to use it. The oldest has access to computers at school, and if they are going to be proficient with computers, they need to start using them at an early age. I have a MacBook Pro that they both have accounts on, both set up with OSX’s default “Parental Control” feature.

That works fairly well when they use the local application (Photo Booth is a favourite, if I hadn’t blocked it their little clips would probably have ended up on YouTube if the knew how to upload them). Well, before getting to the applications, there are all these little pesky pieces of software that phone home on every start-up, under the guise of doing software updates. No matter how many times I block “Google Software Update” or “Paragon Updater” and the like, every time they log in to their accounts, they get a message that they cannot run them. Well, they learn to click “OK” and go on with their life. Using a web browser is a lot more hassle, though.

I had initially set up a whilelist in the Parental Control settings, to only allow them to access certain web sites. That doesn’t work, since every site in the universe now include stuff from other places, either be it CDNs, Google’s web tracking stuff or a JavaScript library that they are too bored to copy to their own domain. I can live with that, a lot of it can be blocked with Ghostery or similar, but that is if you can even get to it.

Trying to even run a web browser on an account that has Parental Control enabled is a chapter in itself. First it is the phone-home auto-update stuff that kicks in every few moments. Then there are the pre-installed shortcuts (at least in Opera) that wants to download screenshots to display inside the Speed Dial screen (why can’t they just ship with default images?). Then even trying to type a web address keeps trying to send every single keystroke to Google, requiring having to close a dialog after every single letter in the URL. In Google Chrome, it seems utterly and completely impossible to disable this behavior. Opera has it, hidden deep inside its configuration options, but I then I have to enter a magic key combination to remove the Search field. And fight the blocked URL pop-ups to remove the pre-installed Speed Dials.

I need to try out Vivaldi for the kids’ accounts. I know it can be configured to be less intrusive, and it doesn’t send all keystrokes to the search engine. When I set up the account for my oldest daughter there wasn’t a stable version around, but it should be fine now.

Singing to a new tune

Back in 1995, when I got access to the Internet for the first time, the dominant web browser was Netscape Navigator. While it had its flaws, its main audience were power-users, much because only power-users had Internet access at that time. It had its flaws, and in 1996 I found a small Norwegian browser called Opera. I came in at version 2.12, one of the first public releases, and was hooked from day one.

I continued to use Opera for quite some time, especially while working for the company that made it for over ten years (first from 2000 to 2007, and then again from 2009 to 2012). During this time, Opera was the choice for power-users, but this all changed when they switched rendering engines in 2013 (which was also the reason for me leaving the company at that time). I was happy with the decision to switch engines, as Presto did have some architectural issues that were different to overcome, what I didn’t like was how they killed off almost all the power-user featured creating a “simple” browser.

There are enough of the simple browsers. I use them from time to time, like Google Chrome, which still feels like I’m waiting for it to become a proper browser with a proper UI (and it’s up to version 40-something already), like Firefox, which keeps losing UI elements for each new release, and like the new Opera, which fortunately did get bookmarks back recently. I have not really tested the new Opera that much, and I must confess I am still using Opera 12 as my main browser, despite it starting to show its age.

Enter Vivaldi. Established by one of the two co-founders of Opera Software, Vivaldi started out with a community, to coincide with Opera Software shutting down their My Opera community. Recently, they also announced availability of the Vivaldi Browser, a new browser targeted at power-users. Like the new Opera, it is based on Chromium, the open-source engine of Google Chrome, but unlike Opera, Vivaldi is trying to create a browsing experience like the old Opera browser did. I was happy to be invited to beta test it a couple of months before the release of the first technical preview, and while it still has some issues to work out, it is coming close to becoming my first choice in browsers (I just need to replace the e-mail client, IRC client and RSS aggregator part of Opera before letting it go completely).

Configurability, customizability and ease of use all in one.  There’s no contradiction in doing it all at once. And since it is based on the Chromium engine, sites that are coded to work with Google Chrome just work as expected.

If you haven’t already, you should give it a try!