Zrobiłem na szybko skrypt do ustawiania domyślnych aplikacji dla różnych typów MIME. Zaczęło się od ustawiania domyślnego programu dla plików PDF w Alpine. Instalacja Xournall++ (genialny edytor) popsuła mi to co miałem czyli Zathurę. Okazało się i tak, że Alpine korzysta z plików ~/.mailcap albo /etc/mailcap, ale już jakoś poleciało. Nie lubię freedesktop i mam to gdzieś. Musiałem to napisać.
Skryptu nie mam zamiaru rozwijać, kropka. Przy użyciu warto rzucić uwagę na folder przeszukiwania, tu jest tylko /usr/share/applications, a pliki .desktop lubią być porozrzucane. Co za śmietnik! Potrzebne rofi, reszta systemowa.
#!/bin/sh
XDGMIME=`which xdg-mime`
FILETYPE=$($XDGMIME query filetype "$1")
APP=$( find /usr/share/applications -name '*.desktop' -exec grep -l "MimeType=$FILETYPE" {} \; | sed -e 's/^.*\///' -e 's/\.desktop//' | rofi \
-dmenu -i \
-p "Wybierz domyślną aplikację dla typu: $FILETYPE" \
-no-fixed-num-lines \
-width 80 \
-font "Inconsolata 12" \
-hide-scrollbar \
)
$XDGMIME default "$APP.desktop" "$FILETYPE"
echo "$APP ustawiona jako domyślna aplikacja otwierająca $FILETYPE"