Add image viewer, video player and PDF viewer defaults to the menu

This commit is contained in:
SirBlob committed 2026-09-24 12:49:45 -04:00
1 parent 5732986fee
commit 1f86bfd151
17 files changed
+226 -15

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
# blob:summary=Set the default image viewer
# blob:args=[loupe|imv|eog|gwenview]
# blob:examples=blob default image-viewer loupe | blob default image-viewer imv
if (($# == 0)); then
case "$(blob-default-mime image)" in
org.gnome.Loupe.desktop) echo "loupe" ;;
imv.desktop) echo "imv" ;;
org.gnome.eog.desktop) echo "eog" ;;
org.kde.gwenview.desktop) echo "gwenview" ;;
*) blob-default-mime image ;;
esac
exit 0
fi
case "$1" in
loupe) desktop_id="org.gnome.Loupe.desktop"; name="Loupe" ;;
imv) desktop_id="imv.desktop"; name="imv" ;;
eog) desktop_id="org.gnome.eog.desktop"; name="Eye of GNOME" ;;
gwenview) desktop_id="org.kde.gwenview.desktop"; name="Gwenview" ;;
*)
echo "Usage: blob-default-image-viewer <loupe|imv|eog|gwenview>"
exit 1
;;
esac
blob-default-mime image "$desktop_id" || exit 1
blob-notify-send -g 󰋩 "$name is now the default image viewer"
+23
View File
@@ -0,0 +1,23 @@
#!/bin/bash
# blob:summary=Get or set the application that opens one group of file types
# blob:args=<image|video|pdf|document|spreadsheet|presentation|text|archive> [desktop-id]
# blob:examples=blob default mime image | blob default mime video vlc.desktop
# blob:hidden=true
kind="${1:-}"
desktop_id="${2:-}"
types_file="$BLOB_PATH/default/mime/$kind.types"
if [[ -z $kind || ! -f $types_file ]]; then
echo "Usage: blob-default-mime <image|video|pdf|document|spreadsheet|presentation|text|archive> [desktop-id]" >&2
exit 1
fi
if [[ -z $desktop_id ]]; then
xdg-mime query default "$(head -1 "$types_file")"
exit 0
fi
mapfile -t mime_types < <(grep -v '^[[:space:]]*$' "$types_file")
xdg-mime default "$desktop_id" "${mime_types[@]}"
+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
# blob:summary=Set the default PDF and document viewer
# blob:args=[evince|papers|okular|zathura|firefox|chromium]
# blob:examples=blob default pdf-viewer evince | blob default pdf-viewer zathura
if (($# == 0)); then
case "$(blob-default-mime pdf)" in
org.gnome.Evince.desktop) echo "evince" ;;
org.gnome.Papers.desktop) echo "papers" ;;
org.kde.okular.desktop) echo "okular" ;;
org.pwmt.zathura.desktop) echo "zathura" ;;
firefox.desktop) echo "firefox" ;;
chromium.desktop) echo "chromium" ;;
*) blob-default-mime pdf ;;
esac
exit 0
fi
case "$1" in
evince) desktop_id="org.gnome.Evince.desktop"; name="Evince" ;;
papers) desktop_id="org.gnome.Papers.desktop"; name="Papers" ;;
okular) desktop_id="org.kde.okular.desktop"; name="Okular" ;;
zathura) desktop_id="org.pwmt.zathura.desktop"; name="Zathura" ;;
firefox) desktop_id="firefox.desktop"; name="Firefox" ;;
chromium) desktop_id="chromium.desktop"; name="Chromium" ;;
*)
echo "Usage: blob-default-pdf-viewer <evince|papers|okular|zathura|firefox|chromium>"
exit 1
;;
esac
blob-default-mime pdf "$desktop_id" || exit 1
blob-notify-send -g 󰈦 "$name is now the default PDF viewer"
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
# blob:summary=Set the default video and audio player
# blob:args=[mpv|vlc|celluloid|totem]
# blob:examples=blob default video-player mpv | blob default video-player vlc
if (($# == 0)); then
case "$(blob-default-mime video)" in
mpv.desktop) echo "mpv" ;;
vlc.desktop) echo "vlc" ;;
io.github.celluloid_player.Celluloid.desktop) echo "celluloid" ;;
org.gnome.Totem.desktop) echo "totem" ;;
*) blob-default-mime video ;;
esac
exit 0
fi
case "$1" in
mpv) desktop_id="mpv.desktop"; name="mpv" ;;
vlc) desktop_id="vlc.desktop"; name="VLC" ;;
celluloid) desktop_id="io.github.celluloid_player.Celluloid.desktop"; name="Celluloid" ;;
totem) desktop_id="org.gnome.Totem.desktop"; name="GNOME Videos" ;;
*)
echo "Usage: blob-default-video-player <mpv|vlc|celluloid|totem>"
exit 1
;;
esac
blob-default-mime video "$desktop_id" || exit 1
blob-notify-send -g 󰕧 "$name is now the default video player"