Generating all xdg-mime commands: Difference between revisions

From Notes to self
Jump to navigation Jump to search
No edit summary
No edit summary
Line 13: Line 13:
* geeqie
* geeqie
* mpv
* mpv
* nvim
* onlyoffice-desktopeditors
* onlyoffice-desktopeditors
* qutebrowser
* qutebrowser
Line 23: Line 24:
         echo xdg-mime default "'${d##/*/}'" "'$m'"
         echo xdg-mime default "'${d##/*/}'" "'$m'"
     done
     done
done | grep "geeqie\|mpv\|onlyoffice-desktopeditors\|qutebrowser\|vifm\|zathura" \
done | grep "geeqie\|mpv\|nvim\|onlyoffice-desktopeditors\|qutebrowser\|vifm\|zathura" \
| grep -v "zathura-pdf-poppler"
| grep -v "zathura-pdf-poppler"
</pre>
</pre>


[[Category: Linux]]
[[Category: Linux]]

Revision as of 02:51, 17 January 2021

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"