-
Which, although a little nuanced to set up, is an absolutely wonderful tool I can’t recommend enough. ↩
Create the MIME entry in
~/.local/share/mime/packages/application-x-webloc.xml
:<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <mime-type type="application/x-webloc"> <comment>Webloc</comment> <glob pattern="*.webloc"/> </mime-type> </mime-info>
Create the desktop entry in
~/.local/share/applications/webloc.desktop
:[Desktop Entry] Name=Open Webloc Files Comment=Open webloc files in the default browser Exec=sh -c "xdg-open `plistutil -f xml -i \\"$1\\" | xmllint --xpath \\"//dict/string/text()\\" -`" -- %f Icon=text-html Terminal=false Type=Application MimeType=application/x-webloc; NoDisplay=true
This uses a combination of
plistutil
andxmllint
to extract the URL from the webloc property list file so you’ll also need to install these. On Fedora, you can do this as follows:sudo dnf -y install libplist libxml2
Finally, update the MIME and desktop databases:
update-mime-database ~/.local/share/mime update-desktop-database ~/.local/share/applications
Tracking File Changes
Introducing Reporter
Over the past couple of months, I’ve been working on-and-off on Reporter, a new command line utility to make it easier to keep track of changes to your files.
Reporter generates email reports letting you know about changes over time. It’s intended to fill in one of the missing pieces from services like Dropbox for folks who choose to self-host their files using network shares, or tools like Syncthing1, providing both a quick sanity check that file changes match expectations and an easy way to discover edits in files shared with others.

Reporter generates clean email reports showing file changes
Reporter works by scanning your files and generating a snapshot containing paths, modification times, sizes, and shasums. It then compares this snapshot to the previous one and sends an email summary if there have been any changes. It includes a built in SMTP client (using Swift-SMTP from the Kitura project) to avoid the need to rely on platform-provided mailers and, while it’s written in Swift, compiles and runs happily on Linux (I run it primarily on my Raspberry Pi based home Syncthing mirror).
There’s not much more to say. Reporter is a simple tool with a single purpose. I find it incredibly useful and maybe you will too. Right now, you’ll need to build it from source (and there are some known issues), but if there’s interest, I’ll look into packaging for various platforms. You can find it on GitHub. I’d love to hear how you get on.
Webloc Files and Linux
Splitting my time between Linux and macOS, and syncing files between the two systems, I often find myself trying to view and edit macOS-specific files on Linux. One particular frustration comes in the form of .webloc
files—Apple’s custom file format for URLs. If you’ve ever dragged-and-dropped a URL on macOS, you’ve probably encountered one of these; they’re a pretty simple (if Apple-specific) format, but I’ve found them to be almost entirely unsupported on Linux.
The few options out there seem either incomplete (Opening Web Internet Location Files on Ubuntu) or overly heavyweight (WeblocOpener). With that in mind, here’s my slightly more complete set of instructions for adding support for opening .webloc
files to Linux.
The approach involves creating two new files: a MIME database entry telling Linux about the existence of the application/x-webloc
MIME type; and a desktop entry which provides a simple handler for the new MIME type, using xdg-open
to open the URL with the default browser.
After completing these steps, double clicking a .webloc
file in your file manager of choice should open the link in your default browser.
20 March 2025: Updated to add --f xml
to force an XML output format irrespective of the webloc file input format; thanks for the feedback Nathan!
December Adventure Day 19
Working Drag-and-Drop File Transfers
After taking up altogether too much of my December Adventure, day 19 finally brought working drag-and-drop file transfer to Reconnect, my Psion connectivity software for macOS. 🎉
There’s not much to add technically beyond what I’ve covered in previous posts, so feel free to check out my write-ups from day 15 and day 18 if you’re curious about the details.
I’ve yet to add support for dragging folders which will require some refactoring: folders are currently handled as a collection of individual file transfers and that will need to change to allow me to track the overall progress and provide a single completion for the NSItemProvider
-based drag operation. With that in place, I’ll be ready to push a release. Lots to keep me busy on day 20!