utility-set-browser.sh/set-browser.sh

71 lines
2.1 KiB
Bash

#!/bin/bash
#
# Setting default browser using xdg utils
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# 2021-11-20
# @linux-aarhus (c) root.nix.dk
# https://root.nix.dk/en/utility-scripts/set-browser-script
#
print_usage(){
echo "Usage:"
echo " Supply browser desktop file as the first argument"
echo " e.g. set-browser.sh firefox.desktop"
echo ""
}
show_available_browsers(){
echo "Available browsers (installed)"
echo "---"
# funny thing with cut when splitting a path
# one would expect the column to be number 4 but it is 5
# as string starts with `/` and therefore first column is empty
# e.g. /usr/share/applications/firefox.desktop
grep -rl 'internet' /usr/share/applications | cut -d'/' -f5
echo "---"
}
set_browser() {
# set scheme handlers
xdg-mime default "$1" x-scheme-handler/https
xdg-mime default "$1" x-scheme-handler/http
# set default browser
xdg-settings set default-web-browser "$1"
echo "Default browser set using $1"
}
# check if argument is supplied
if [[ "$1" == "" ]]; then
print_usage
show_available_browsers
exit 1
fi
# check if desktop file
if [[ "$1" =~ ".desktop" ]]; then
# check if the file exist
if [[ -f "/usr/share/applications/$1" ]]; then
set_browser "$1"
else
echo "$1 - file not found"
show_available_browsers
exit 1
fi
else
echo "$1 is not a .desktop file"
show_available_browsers
exit 1
fi