Thanks for posting about this! I never thought to try this as an Akregator user, but it's a great idea... I spent the past day getting this to work since I also use the Flatpaks; hope it helps.
As suggested by @[email protected], one solution is to define a custom protocol where the URL gets passed to a script that opens Firefox Reader with the URL; here's what I've done:
- Decide on a protocol name, which the URL will be prefixed with and passed to
xdg-open
since that should be available to the Flatpak. I usedfirefox-reader
as the protocol, so I putxdg-open firefox-reader://%u
as the custom command (so a command Akregator would run might look likexdg-open firefox-reader://https://example.com
). - Define a desktop entry to support the custom protocol (you can see mine below).
~/.local/share/applications
is the standard place to put these, as far as I'm aware. Since the custom protocol needs to be removed from the URL, I wrote a script (also below) to do this and then call Firefox withabout:reader?url=
prefixed. The script can be anywhere in$PATH
. - Add the desktop entry as a "default application" for opening URLs using this custom protocol. In my case, I ran
xdg-mime default org.mozilla.firefox.reader.desktop x-scheme-handler/firefox-reader
(org.mozilla.firefox.reader.desktop
is the name of my desktop entry file). - You also might have to update some mime/xdg database stuff. I had to run
update-desktop-database ~/.local/share/applications
soxdg-open
would find the "Firefox Reader" desktop entry.
My Firefox Reader desktop entry
[Desktop Entry]
Type=Application
Name=Firefox Reader
Exec=open-firefox-reader.sh %u
StartupNotify=false
MimeType=x-scheme-handler/firefox-reader;
open-firefox-reader.sh script
#!/usr/bin/env bash
flatpak run --user org.mozilla.firefox about:reader?url="${1#firefox-reader://}"
If you have any other trouble or want to find more information about this since the desktop entry could probably be tweaked, here are the sources of note I used to figure this out (If I forgot a step or two writing this, they should also be present somewhere in there):