Install office and video editing apps and set default apps
This commit is contained in:
1 parent
84ce54933b
commit
2df1454219
6 files changed
+86
-2
No files matched your search
@@ -0,0 +1,53 @@
|
||||
mimeapps_file="$config_dir/mimeapps.list"
|
||||
|
||||
default_app_associations=(
|
||||
"imv.desktop:image/png image/jpeg image/gif image/webp image/bmp image/tiff image/avif image/heif image/svg+xml"
|
||||
"mpv.desktop:video/mp4 video/x-matroska video/webm video/quicktime video/x-msvideo video/mpeg video/ogg audio/mpeg audio/flac audio/ogg audio/x-wav audio/mp4"
|
||||
"org.gnome.Evince.desktop:application/pdf"
|
||||
"libreoffice-writer.desktop:application/vnd.oasis.opendocument.text application/msword application/vnd.openxmlformats-officedocument.wordprocessingml.document application/rtf"
|
||||
"libreoffice-calc.desktop:application/vnd.oasis.opendocument.spreadsheet application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet text/csv"
|
||||
"libreoffice-impress.desktop:application/vnd.oasis.opendocument.presentation application/vnd.ms-powerpoint application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
||||
)
|
||||
|
||||
mime_default_chosen() {
|
||||
[[ -f $mimeapps_file ]] || return 1
|
||||
awk -v mime="$1" '
|
||||
/^\[/ { in_defaults = ($0 == "[Default Applications]"); next }
|
||||
in_defaults && index($0, mime "=") == 1 { found = 1 }
|
||||
END { exit found ? 0 : 1 }
|
||||
' "$mimeapps_file"
|
||||
}
|
||||
|
||||
install_default_apps() {
|
||||
if ! command -v xdg-mime &>/dev/null; then
|
||||
say "SKIP default applications (xdg-utils not installed)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local pending=() entry desktop_file mime_types mime_type
|
||||
for entry in "${default_app_associations[@]}"; do
|
||||
desktop_file="${entry%%:*}"
|
||||
mime_types="${entry#*:}"
|
||||
[[ -f /usr/share/applications/$desktop_file ]] || continue
|
||||
for mime_type in $mime_types; do
|
||||
mime_default_chosen "$mime_type" && continue
|
||||
pending+=("$desktop_file:$mime_type")
|
||||
done
|
||||
done
|
||||
|
||||
if (( ${#pending[@]} == 0 )); then
|
||||
say "ok default applications"
|
||||
return 0
|
||||
fi
|
||||
|
||||
note_change
|
||||
if [[ $check == true ]]; then
|
||||
say "would set ${#pending[@]} default application association(s)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
for entry in "${pending[@]}"; do
|
||||
xdg-mime default "${entry%%:*}" "${entry#*:}"
|
||||
done
|
||||
say "set ${#pending[@]} default application association(s)"
|
||||
}
|
||||
Reference in new issue
Block a user