Domyślne aplikacje - Linux

Posted on Sun 28 March 2021 in Tips4Unices

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"