Git Difftool and Meld as a Flatpak
Published on 27 May 2022 · Filed in Information · 264 words (estimated 2 minutes to read)I’ve recently started migrating many of the applications on my Fedora 36 laptop to their Flatpak versions. For the most part, this has been pretty straightforward, although there isn’t really any method for migrating configuration and data. Today I ran into a problem with Meld, a graphical diff utility, and using it with the git difftool
command. Below I’ll share how I worked around this problem.
Normally, the integration between Git and Meld—which is what enables you to run git difftool
and have the results show up in Meld—would look something like this (this is from ~/.gitconfig
):
[merge]
tool = meld
[diff]
tool = meld
[difftool]
prompt = no
[difftool "meld"]
cmd = /usr/bin/meld "$LOCAL" "$REMOTE"
[mergetool "meld"]
cmd = /usr/bin/meld "$LOCAL" "$REMOTE"
However, when Meld is installed as a Flatpak, /usr/bin/meld
doesn’t exist. In order to continue using Meld with the git difftool
command, you must change the Git configuration to look like this instead:
[merge]
tool = meld
[diff]
tool = meld
[difftool]
prompt = no
[difftool "meld"]
cmd = flatpak run org.gnome.Meld "$LOCAL" "$REMOTE"
[mergetool "meld"]
cmd = flatpak run org.gnome.Meld "$LOCAL" "$REMOTE"
In addition to the change above, I found it necessary to use Flatseal to modify the permissions of the Meld Flatpak to include the /tmp
directory. (You can optionally make that read-only as well.)
After you make these changes, using Meld with git difftool
should work as expected again.
This is a pretty straightforward change, but hopefully documenting it here will prove helpful to someone. If you have any questions, feel free to contact me on Twitter. Thanks!