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
- geeqie
- mpv
- nvim
- onlyoffice-desktopeditors
- qutebrowser
- vifm
- zathura
preferred applications, run
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 | grep "geeqie\|mpv\|nvim\|onlyoffice-desktopeditors\|qutebrowser\|vifm\|zathura" \
| grep -v "zathura-pdf-poppler"