Generating all xdg-mime commands
This generates the xdg-mime commands for each .desktop files and all mimetypes they contain:
find /usr/share/applications ~/.local/share/applications \
-iname '*.desktop' -print0 | while IFS= read -r -d $'\0' d; do
for m in $(grep MimeType "$d" | cut -d= -f2 | tr ";" " "); do
echo xdg-mime default "'${d##/*/}'" "'$m'"
done
done
Suggested on https://unix.stackexchange.com/a/361705
For example to generate commands that make
- zathura
- geeqie
- nvim
- mpv
- onlyoffice-desktopeditors
- vifm
- qutebrowser
- cr3
preferred applications, run
for p in cr3 qutebrowser vifm onlyoffice-desktopeditors mpv nvim geeqie zathura; do grep "$p" fl | grep -v "zathura-pdf-poppler" done
where fl is the file obtained via the above command. Note that the order of applications in the cycle is reversed.