Browse Source

fix firefox_lang

main
pvincent 6 days ago
parent
commit
e9ea1cde37
  1. 590
      src/trixie.sh

590
src/trixie.sh

@ -8,176 +8,188 @@ LOGOUT_REQUIRED=false
BASEDIR=$(readlink -f "$(dirname "$0")/..") BASEDIR=$(readlink -f "$(dirname "$0")/..")
ALLOWED_USERS=$(id -un) # CUSTOMIZE if needed! ALLOWED_USERS=$(id -un) # CUSTOMIZE if needed!
REQUIRED_PACKAGES=( REQUIRED_PACKAGES=(
bash-completion
vim micro git wget
htop jq unzip tilix
zram-tools
bash-completion
vim micro git wget
htop jq unzip tilix
zram-tools
) )
# FUNCTIONS # FUNCTIONS
# --------- # ---------
function trap_error() { function trap_error() {
error_code=$1
error_line=$2
error_code=$1
error_line=$2
printf "\nEXIT #${error_code} due to error at line ${error_line} : \n-----------------------------------------\n"
sed "${error_line}q;d" $0
echo
exit $error_code
printf "\nEXIT #${error_code} due to error at line ${error_line} : \n-----------------------------------------\n"
sed "${error_line}q;d" $0
echo
exit $error_code
} }
function runVoid() { function runVoid() {
trap - ERR
local COMMAND="$@"
bash -c "${COMMAND}" > /dev/null 2>&1
runVoidError=$?
trap 'trap_error $? $LINENO' ERR
trap - ERR
local COMMAND="$@"
bash -c "${COMMAND}" > /dev/null 2>&1
runVoidError=$?
trap 'trap_error $? $LINENO' ERR
} }
function askConfirmation() { function askConfirmation() {
case "$1" in
y | Y | yes | YES)
QUESTION="(Y/n)?"
DEFAULT=0
;;
*)
QUESTION="(y/N)?"
DEFAULT=1
;;
esac
read -p "$QUESTION : " choice
case "$choice" in
y | Y | yes | YES) return 0 ;; #true
n | no | N | NO) return 1 ;; #false
*) return $DEFAULT ;;
esac
case "$1" in
y | Y | yes | YES)
QUESTION="(Y/n)?"
DEFAULT=0
;;
*)
QUESTION="(y/N)?"
DEFAULT=1
;;
esac
read -p "$QUESTION : " choice
case "$choice" in
y | Y | yes | YES) return 0 ;; #true
n | no | N | NO) return 1 ;; #false
*) return $DEFAULT ;;
esac
} }
function upgrade { function upgrade {
echo "# updating repositories"
echo "==================="
if [[ $(date --date='-12 hours' +%s) -gt $(date -d "$(stat -c %y /var/lib/apt/lists/partial)" +%s) ]]; then
sudo apt update
sudo apt autoremove -y
else
echo "repositories recently updated!"
fi
echo "# updating repositories"
echo "==================="
if [[ $(date --date='-12 hours' +%s) -gt $(date -d "$(stat -c %y /var/lib/apt/lists/partial)" +%s) ]]; then
sudo apt update
sudo apt autoremove -y
else
echo "repositories recently updated!"
fi
} }
function apt_required_packages { function apt_required_packages {
echo "# required packages"
echo "==================="
for package in ${REQUIRED_PACKAGES[@]}; do
runVoid dpkg-query --status $package
if [ $runVoidError -ne 0 ]; then
echo -n "installing package <$package> ... "
sudo DEBIAN_FRONTEND=noninteractive apt install -y $package
echo "DONE"
fi
done
echo "# required packages"
echo "==================="
for package in ${REQUIRED_PACKAGES[@]}; do
runVoid dpkg-query --status $package
if [ $runVoidError -ne 0 ]; then
echo -n "installing package <$package> ... "
sudo DEBIAN_FRONTEND=noninteractive apt install -y $package
echo "DONE"
fi
done
} }
function fix_system_lang { function fix_system_lang {
echo "# fix system language"
echo "====================="
if grep -q ^LANG=C.UTF-8 /etc/default/locale; then
LANG='en_US.UTF-8'
if gsettings get org.gnome.desktop.input-sources sources | grep -q "'xkb', 'fr"; then
LANG='fr_FR.UTF-8'
else
if gsettings get org.gnome.desktop.input-sources sources | grep -q "'xkb', 'es"; then
LANG='es_ES.UTF-8'
fi
fi
echo "fix found LANG=$LANG"
cat << EOF | sudo tee /etc/locale.gen
echo "# fix system language"
echo "====================="
if grep -q ^LANG=C.UTF-8 /etc/default/locale; then
LANG='en_US.UTF-8'
if gsettings get org.gnome.desktop.input-sources sources | grep -q "'xkb', 'fr"; then
LANG='fr_FR.UTF-8'
else
if gsettings get org.gnome.desktop.input-sources sources | grep -q "'xkb', 'es"; then
LANG='es_ES.UTF-8'
fi
fi
echo "fix found LANG=$LANG"
cat << EOF | sudo tee /etc/locale.gen
$LANG UTF-8 $LANG UTF-8
EOF EOF
sudo locale-gen
sudo update-locale LANG=$LANG
else
echo 'already fixed!'
fi
source /etc/default/locale
export LANG
sudo locale-gen
sudo update-locale LANG=$LANG
else
echo 'already fixed!'
fi
source /etc/default/locale
export LANG
} }
function fix_input_sources { function fix_input_sources {
echo "# fix input sources containing french variants"
echo "=============================================="
if gsettings get org.gnome.desktop.input-sources sources | egrep -q 'fr\+|mozc-jp'; then
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'fr')]"
echo no more french variant found, fixed
else
echo no french variant found, ok!
fi
echo "# fix input sources containing french variants"
echo "=============================================="
if gsettings get org.gnome.desktop.input-sources sources | egrep -q 'fr\+|mozc-jp'; then
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'fr')]"
echo no more french variant found, fixed
else
echo no french variant found, ok!
fi
} }
function miaou_bash { function miaou_bash {
echo "## miaou-bash"
echo "=============="
if ! command -v upgrade-miaou-bash > /dev/null; then
curl https://git.artcode.re/miaou/miaou-bash/raw/branch/main/install.sh | sudo bash -s
else
echo "miaou-bash already installed!"
upgrade-miaou-bash
fi
echo "## miaou-bash"
echo "=============="
if ! command -v upgrade-miaou-bash > /dev/null; then
curl https://git.artcode.re/miaou/miaou-bash/raw/branch/main/install.sh | sudo bash -s
else
echo "miaou-bash already installed!"
upgrade-miaou-bash
fi
} }
function openssh { function openssh {
echo "## openssh-server"
echo "================="
echo TODO:...
# PGKNAME='openssh-server'
# runVoid dpkg-query --status $PGKNAME
# if [ $runVoidError -ne 0 ]; then
# set -e
# sudo apt install -y $PGKNAME
# sudo /opt/miaou-bash/tools/append_or_replace "^#\?PermitRootLogin.*$" "PermitRootLogin no" /etc/ssh/sshd_config
# sudo /opt/miaou-bash/tools/append_or_replace "^#\?PasswordAuthentication.*$" "PasswordAuthentication no" /etc/ssh/sshd_config
# sudo /opt/miaou-bash/tools/append_or_replace "^#\?AllowUsers.*$" "AllowUsers $ALLOWED_USERS" /etc/ssh/sshd_config
# sudo systemctl restart sshd
# set +e
# else
# echo "${PGKNAME} already installed!"
# fi
echo "## openssh-server"
echo "================="
echo TODO:...
# PGKNAME='openssh-server'
# runVoid dpkg-query --status $PGKNAME
# if [ $runVoidError -ne 0 ]; then
# set -e
# sudo apt install -y $PGKNAME
# sudo /opt/miaou-bash/tools/append_or_replace "^#\?PermitRootLogin.*$" "PermitRootLogin no" /etc/ssh/sshd_config
# sudo /opt/miaou-bash/tools/append_or_replace "^#\?PasswordAuthentication.*$" "PasswordAuthentication no" /etc/ssh/sshd_config
# sudo /opt/miaou-bash/tools/append_or_replace "^#\?AllowUsers.*$" "AllowUsers $ALLOWED_USERS" /etc/ssh/sshd_config
# sudo systemctl restart sshd
# set +e
# else
# echo "${PGKNAME} already installed!"
# fi
} }
function faster_grub { function faster_grub {
echo "## grub faster and smarter"
echo "=========================="
if grep -q GRUB_TIMEOUT=5 /etc/default/grub; then
echo "grub was not modified yet, applying changes..."
sudo /opt/miaou-bash/tools/append_or_replace "^GRUB_TIMEOUT=5$" "GRUB_TIMEOUT=0" /etc/default/grub
sudo update-grub
echo OK
else
echo changes already done!
fi
echo "## grub faster and smarter"
echo "=========================="
if grep -q GRUB_TIMEOUT=5 /etc/default/grub; then
echo "grub was not modified yet, applying changes..."
sudo /opt/miaou-bash/tools/append_or_replace "^GRUB_TIMEOUT=5$" "GRUB_TIMEOUT=0" /etc/default/grub
sudo update-grub
echo OK
else
echo changes already done!
fi
} }
function true_firefox { function true_firefox {
echo "## firefox latest"
echo "================="
firefox_lang=$(echo $LANG | cut -d. -f1)
if [[ ! /usr/local/bin/firefox -ef /opt/firefox/firefox ]]; then
set -e
cd /tmp
firefox_archive_url=$(curl -s "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=$firefox_lang" | cut -d '"' -f2)
wget "$firefox_archive_url"
firefox_archive=${firefox_archive_url##*/}
sudo mkdir /opt/firefox -p
sudo chown $USER /opt/firefox
tar -xf "$firefox_archive" -C /opt
cat << EOF | sudo tee -a /usr/share/applications/firefox.desktop
echo "## firefox latest"
echo "================="
firefox_lang=$(echo $LANG | cut -d. -f1)
case "$firefox_lang" in
fr*) firefox_lang=fr ;;
es*) firefox_lang=es-ES ;;
*) firefox_lang=en-US ;;
esac
echo "$firefox_lang"
if [[ ! /usr/local/bin/firefox -ef /opt/firefox/firefox ]]; then
set -e
cd /tmp
# https://download-installer.cdn.mozilla.net/pub/firefox/releases/146.0.1/linux-x86_64/en-US/firefox-146.0.1.tar.xz
firefox_version=$(curl -sI https://www.firefox.com/$firefox_lang/firefox/notes/ | grep location: | cut -d/ -f4)
firefox_archive_url="https://download-installer.cdn.mozilla.net/pub/firefox/releases/$firefox_version/linux-x86_64/$firefox_lang/firefox-$firefox_version.tar.xz"
echo $firefox_archive_url
wget "$firefox_archive_url"
firefox_archive=${firefox_archive_url##*/}
sudo mkdir /opt/firefox -p
sudo chown $USER /opt/firefox
tar -xf "$firefox_archive" -C /opt
cat << EOF | sudo tee -a /usr/share/applications/firefox.desktop
[Desktop Entry] [Desktop Entry]
Name=Firefox Name=Firefox
Comment=Web Browser Comment=Web Browser
@ -203,62 +215,62 @@ Exec=/opt/firefox/firefox --private-window %u
Name=Profile Manager Name=Profile Manager
Exec=/opt/firefox/firefox -P %u Exec=/opt/firefox/firefox -P %u
EOF EOF
sudo ln -sf /opt/firefox/firefox /usr/local/bin/firefox
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /opt/firefox/firefox 200 && sudo update-alternatives --set x-www-browser /opt/firefox/firefox
sudo apt remove -y firefox-esr
sudo apt install -y libdbus-glib-1-2
set +e
else
echo "firefox latest already installed!"
fi
echo "## firefox by default"
echo "====================="
xdg-settings set default-web-browser firefox.desktop
sudo ln -sf /opt/firefox/firefox /usr/local/bin/firefox
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /opt/firefox/firefox 200 && sudo update-alternatives --set x-www-browser /opt/firefox/firefox
sudo apt remove -y firefox-esr
sudo apt install -y libdbus-glib-1-2
set +e
else
echo "firefox latest already installed!"
fi
echo "## firefox by default"
echo "====================="
xdg-settings set default-web-browser firefox.desktop
} }
function gnome_settings { function gnome_settings {
echo "## gnome default settings"
echo "========================="
echo "## gnome default settings"
echo "========================="
gsettings set org.gnome.nautilus.preferences click-policy 'single'
gsettings set org.gtk.gtk4.Settings.FileChooser sort-directories-first true
gsettings set org.gnome.nautilus.preferences click-policy 'single'
gsettings set org.gtk.gtk4.Settings.FileChooser sort-directories-first true
gsettings set org.gnome.mutter dynamic-workspaces false
gsettings set org.gnome.desktop.wm.preferences num-workspaces 1
gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
gsettings set org.gnome.mutter dynamic-workspaces false
gsettings set org.gnome.desktop.wm.preferences num-workspaces 1
gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
} }
function tilix_default_terminal { function tilix_default_terminal {
local reload=false
local reload=false
echo "## prevent displaying desktop entries (gnome-terminal replaced by tilix)"
echo "========================================================================"
if [[ ! -f ~/.local/share/applications/org.gnome.Terminal.desktop ]]; then
cat << 'EOF' > ~/.local/share/applications/org.gnome.Terminal.desktop
echo "## prevent displaying desktop entries (gnome-terminal replaced by tilix)"
echo "========================================================================"
if [[ ! -f ~/.local/share/applications/org.gnome.Terminal.desktop ]]; then
cat << 'EOF' > ~/.local/share/applications/org.gnome.Terminal.desktop
[Desktop Entry] [Desktop Entry]
NoDisplay=true NoDisplay=true
EOF EOF
reload=true
else
echo Hidden default terminal in favor of Tilix!
fi
echo "## prevent displaying desktop entries (xiterm+thai replaced by tilix)"
echo "========================================================================"
if [[ ! -f ~/.local/share/applications/xiterm+thai.desktop ]]; then
cat << 'EOF' > ~/.local/share/applications/xiterm+thai.desktop
reload=true
else
echo Hidden default terminal in favor of Tilix!
fi
echo "## prevent displaying desktop entries (xiterm+thai replaced by tilix)"
echo "========================================================================"
if [[ ! -f ~/.local/share/applications/xiterm+thai.desktop ]]; then
cat << 'EOF' > ~/.local/share/applications/xiterm+thai.desktop
[Desktop Entry] [Desktop Entry]
NoDisplay=true NoDisplay=true
EOF EOF
reload=true
else
echo Hidden default terminal in favor of Tilix!
fi
reload=true
else
echo Hidden default terminal in favor of Tilix!
fi
if [[ ! -f ~/.local/share/applications/com.gexperts.Tilix.desktop ]]; then
cat << 'EOF' > ~/.local/share/applications/com.gexperts.Tilix.desktop
if [[ ! -f ~/.local/share/applications/com.gexperts.Tilix.desktop ]]; then
cat << 'EOF' > ~/.local/share/applications/com.gexperts.Tilix.desktop
[Desktop Entry] [Desktop Entry]
Version=1.0 Version=1.0
Name=Tilix Name=Tilix
@ -290,168 +302,168 @@ Name[fr]=Préférences
Name=Preferences Name=Preferences
Exec=tilix --preferences Exec=tilix --preferences
EOF EOF
reload=true
fi
[[ $reload ]] && update-desktop-database ~/.local/share/applications
echo "Tiling Settings"
gsettings set com.gexperts.Tilix.Settings paste-strip-trailing-whitespace true
gsettings set com.gexperts.Tilix.Settings focus-follow-mouse true
gsettings set com.gexperts.Tilix.Settings window-style 'disable-csd-hide-toolbar'
gsettings set com.gexperts.Tilix.Settings control-click-titlebar true
gsettings set com.gexperts.Tilix.Settings terminal-title-show-when-single false
gsettings set com.gexperts.Tilix.Settings warn-vte-config-issue false
gsettings set com.gexperts.Tilix.Settings theme-variant 'dark'
gsettings set com.gexperts.Tilix.Settings control-click-titlebar true
reload=true
fi
[[ $reload ]] && update-desktop-database ~/.local/share/applications
echo "Tiling Settings"
gsettings set com.gexperts.Tilix.Settings paste-strip-trailing-whitespace true
gsettings set com.gexperts.Tilix.Settings focus-follow-mouse true
gsettings set com.gexperts.Tilix.Settings window-style 'disable-csd-hide-toolbar'
gsettings set com.gexperts.Tilix.Settings control-click-titlebar true
gsettings set com.gexperts.Tilix.Settings terminal-title-show-when-single false
gsettings set com.gexperts.Tilix.Settings warn-vte-config-issue false
gsettings set com.gexperts.Tilix.Settings theme-variant 'dark'
gsettings set com.gexperts.Tilix.Settings control-click-titlebar true
} }
function no_lock_screen { function no_lock_screen {
echo "## disable automatic lock screen => use Super_L for LOCK"
echo "========================================================"
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type nothing
gsettings set org.gnome.desktop.screensaver lock-enabled false
echo "## disable automatic lock screen => use Super_L for LOCK"
echo "========================================================"
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type nothing
gsettings set org.gnome.desktop.screensaver lock-enabled false
} }
function favorite_apps { function favorite_apps {
echo "# favourite apps"
echo "#==============="
runVoid "gsettings get org.gnome.shell favorite-apps | grep firefox-esr"
if [[ $runVoidError == 0 ]]; then
gsettings set org.gnome.shell favorite-apps "['org.gnome.Nautilus.desktop','firefox-stable.desktop','org.gnome.Software.desktop']"
else
echo "preserve existing apps!"
fi
echo "# favourite apps"
echo "#==============="
runVoid "gsettings get org.gnome.shell favorite-apps | grep firefox-esr"
if [[ $runVoidError == 0 ]]; then
gsettings set org.gnome.shell favorite-apps "['org.gnome.Nautilus.desktop','firefox-stable.desktop','org.gnome.Software.desktop']"
else
echo "preserve existing apps!"
fi
} }
function golden_dict { function golden_dict {
echo "## golden dict"
echo "================"
if [[ ! -d /usr/share/goldendict/dicts ]]; then
sudo git clone --depth 1 https://git.artcode.re/non-free/dicts.git /usr/share/goldendict/dicts
fi
if [[ ! -f $HOME/.config/goldendict/config ]] || ! grep -q "path.*/usr/share/goldendict/dicts" $HOME/.config/goldendict/config; then
mkdir -p "$HOME/.config/goldendict/"
cp "$BASEDIR/lib/goldendict/config" "$HOME/.config/goldendict/"
nohup goldendict &
fi
mkdir -p $HOME/.config/autostart
if [[ ! -f $HOME/.config/autostart/org.goldendict.GoldenDict.desktop ]]; then
echo -n "autostart GoldenDict ..."
ln -sf /usr/share/applications/org.goldendict.GoldenDict.desktop $HOME/.config/autostart/
echo OK
else
echo "autostart GoldenDict already installed!"
fi
echo "## golden dict"
echo "================"
if [[ ! -d /usr/share/goldendict/dicts ]]; then
sudo git clone --depth 1 https://git.artcode.re/non-free/dicts.git /usr/share/goldendict/dicts
fi
if [[ ! -f $HOME/.config/goldendict/config ]] || ! grep -q "path.*/usr/share/goldendict/dicts" $HOME/.config/goldendict/config; then
mkdir -p "$HOME/.config/goldendict/"
cp "$BASEDIR/lib/goldendict/config" "$HOME/.config/goldendict/"
nohup goldendict &
fi
mkdir -p $HOME/.config/autostart
if [[ ! -f $HOME/.config/autostart/org.goldendict.GoldenDict.desktop ]]; then
echo -n "autostart GoldenDict ..."
ln -sf /usr/share/applications/org.goldendict.GoldenDict.desktop $HOME/.config/autostart/
echo OK
else
echo "autostart GoldenDict already installed!"
fi
} }
function gnome_extensions { function gnome_extensions {
echo "## gnome-shell install several extensions"
echo "========================================="
$BASEDIR/tools/gnome-extensions-helper dash-to-dock@micxgx.gmail.com --apply-custom-theme=true --multi-monitor=true --dash-max-icon-size=58 |
grep -q '^please logout to take effect!' && LOGOUT_REQUIRED=true
$BASEDIR/tools/gnome-extensions-helper runcat@kolesnikov.se --idle-threshold=66 |
grep -q 'please logout to take effect!' && LOGOUT_REQUIRED=true
# $BASEDIR/tools/gnome-extensions-helper netspeedsimplified@prateekmedia.extension |
# grep -q 'please logout to take effect!' && LOGOUT_REQUIRED=true
$BASEDIR/tools/gnome-extensions-helper appindicatorsupport@rgcjonas.gmail.com --tray-pos=left --icon-saturation=0.9 |
grep -q 'please logout to take effect!' && LOGOUT_REQUIRED=true
$BASEDIR/tools/gnome-extensions-helper weeks-start-on-monday@extensions.gnome-shell.fifi.org |
grep -q 'please logout to take effect!' && LOGOUT_REQUIRED=true
true
echo "## gnome-shell install several extensions"
echo "========================================="
$BASEDIR/tools/gnome-extensions-helper dash-to-dock@micxgx.gmail.com --apply-custom-theme=true --multi-monitor=true --dash-max-icon-size=58 |
grep -q '^please logout to take effect!' && LOGOUT_REQUIRED=true
$BASEDIR/tools/gnome-extensions-helper runcat@kolesnikov.se --idle-threshold=66 |
grep -q 'please logout to take effect!' && LOGOUT_REQUIRED=true
# $BASEDIR/tools/gnome-extensions-helper netspeedsimplified@prateekmedia.extension |
# grep -q 'please logout to take effect!' && LOGOUT_REQUIRED=true
$BASEDIR/tools/gnome-extensions-helper appindicatorsupport@rgcjonas.gmail.com --tray-pos=left --icon-saturation=0.9 |
grep -q 'please logout to take effect!' && LOGOUT_REQUIRED=true
$BASEDIR/tools/gnome-extensions-helper weeks-start-on-monday@extensions.gnome-shell.fifi.org |
grep -q 'please logout to take effect!' && LOGOUT_REQUIRED=true
true
} }
function developer_flavor { function developer_flavor {
gsettings set org.gnome.shell.extensions.runcat custom-system-monitor-command "xterm -fa Monospace -fs 12 -fullscreen -s htop"
gsettings set org.gnome.shell.extensions.runcat custom-system-monitor-command "xterm -fa Monospace -fs 12 -fullscreen -s htop"
} }
function firefox_addons { function firefox_addons {
echo "# firefox addons"
echo "================"
declare -A FIREFOX_ADDONS
FIREFOX_ADDONS['uBlock0@raymondhill.net']="3740966/ublock_origin-1.34.0-an+fx.xpi"
FIREFOX_ADDONS['fr-dicollecte@dictionaries.addons.mozilla.org']='3581786/dictionnaire_francais-7.0b.xpi'
FIREFOX_ADDONS['chrome-gnome-shell@gnome.org']='898030/gnome_shell_integration-10.1-an+fx-linux.xpi'
FIREFOX_ADDONS['jid1-ZAdIEUB7XOzOJw@jetpack']='3741831/duckduckgo_privacy_essentials-2021.3.8-an+fx.xpi'
mkdir -p /opt/firefox/distribution/extensions
for addon_id in "${!FIREFOX_ADDONS[@]}"; do
addon_part_url="${FIREFOX_ADDONS[$addon_id]}"
addon_xpi="/opt/firefox/distribution/extensions/${addon_id}.xpi"
if [[ ! -f $addon_xpi ]]; then
echo -n "Firefox addon <$addon_id> installing ..."
wget -q "https://addons.mozilla.org/firefox/downloads/file/${addon_part_url}" -O $addon_xpi
echo DONE
else
echo "Firefox addon <$addon_id> already installed!"
fi
done
echo "# firefox addons"
echo "================"
declare -A FIREFOX_ADDONS
FIREFOX_ADDONS['uBlock0@raymondhill.net']="3740966/ublock_origin-1.34.0-an+fx.xpi"
FIREFOX_ADDONS['fr-dicollecte@dictionaries.addons.mozilla.org']='3581786/dictionnaire_francais-7.0b.xpi'
FIREFOX_ADDONS['chrome-gnome-shell@gnome.org']='898030/gnome_shell_integration-10.1-an+fx-linux.xpi'
FIREFOX_ADDONS['jid1-ZAdIEUB7XOzOJw@jetpack']='3741831/duckduckgo_privacy_essentials-2021.3.8-an+fx.xpi'
mkdir -p /opt/firefox/distribution/extensions
for addon_id in "${!FIREFOX_ADDONS[@]}"; do
addon_part_url="${FIREFOX_ADDONS[$addon_id]}"
addon_xpi="/opt/firefox/distribution/extensions/${addon_id}.xpi"
if [[ ! -f $addon_xpi ]]; then
echo -n "Firefox addon <$addon_id> installing ..."
wget -q "https://addons.mozilla.org/firefox/downloads/file/${addon_part_url}" -O $addon_xpi
echo DONE
else
echo "Firefox addon <$addon_id> already installed!"
fi
done
} }
function firefox_settings { function firefox_settings {
echo "# Firefox default settings"
echo "#========================="
echo "# Firefox default settings"
echo "#========================="
if [[ ! -f /opt/firefox/firefox.cfg ]]; then
cat << EOF | sudo tee -a /opt/firefox/firefox.cfg
if [[ ! -f /opt/firefox/firefox.cfg ]]; then
cat << EOF | sudo tee -a /opt/firefox/firefox.cfg
// IMPORTANT: Start your code on the 2nd line // IMPORTANT: Start your code on the 2nd line
lockPref("browser.pocket.enabled", false); lockPref("browser.pocket.enabled", false);
lockPref("extensions.pocket.enabled", false); lockPref("extensions.pocket.enabled", false);
lockPref("browser.shell.checkDefaultBrowser", false); lockPref("browser.shell.checkDefaultBrowser", false);
EOF EOF
cat << EOF | sudo tee -a /opt/firefox/defaults/pref/autoconfig.js
cat << EOF | sudo tee -a /opt/firefox/defaults/pref/autoconfig.js
pref("general.config.filename", "firefox.cfg"); pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0); pref("general.config.obscure_value", 0);
EOF EOF
else
echo "Firefox default settings already defined!"
fi
else
echo "Firefox default settings already defined!"
fi
} }
function libre_re_pixmap { function libre_re_pixmap {
echo "# libre_re pixmap"
echo "================="
if [[ ! -f /usr/share/pixmaps/faces/libre_re.png ]]; then
sudo curl -o /usr/share/pixmaps/faces/libre_re.png "$GIT_BASE_URL/raw/branch/master/lib/pixmap/libre_re.png"
dbus-send --system --dest=org.freedesktop.Accounts \
--type=method_call --print-reply \
/org/freedesktop/Accounts/User$(id -u) \
org.freedesktop.Accounts.User.SetIconFile \
string:"/usr/share/pixmaps/faces/libre_re.png"
else
echo "pixmap already copied!"
fi
echo "# libre_re pixmap"
echo "================="
if [[ ! -f /usr/share/pixmaps/faces/libre_re.png ]]; then
sudo curl -o /usr/share/pixmaps/faces/libre_re.png "$GIT_BASE_URL/raw/branch/master/lib/pixmap/libre_re.png"
dbus-send --system --dest=org.freedesktop.Accounts \
--type=method_call --print-reply \
/org/freedesktop/Accounts/User$(id -u) \
org.freedesktop.Accounts.User.SetIconFile \
string:"/usr/share/pixmaps/faces/libre_re.png"
else
echo "pixmap already copied!"
fi
} }
function clear_system_extensions { function clear_system_extensions {
echo "# clear system gnome-shell extensions"
echo "====================================="
count_system_extensions=$(ls -1 /usr/share/gnome-shell/extensions | wc -l)
[[ $count_system_extensions -gt 0 ]] && sudo rm /usr/share/gnome-shell/extensions/* -rf || true
echo "# clear system gnome-shell extensions"
echo "====================================="
count_system_extensions=$(ls -1 /usr/share/gnome-shell/extensions | wc -l)
[[ $count_system_extensions -gt 0 ]] && sudo rm /usr/share/gnome-shell/extensions/* -rf || true
} }
function install_flatpak { function install_flatpak {
echo "# install flatpak"
echo "================="
echo "# install flatpak"
echo "================="
if ! dpkg -l flatpak | grep -q ^ii; then
sudo apt install -y flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
fi
if ! dpkg -l flatpak | grep -q ^ii; then
sudo apt install -y flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
fi
if ! (echo $XDG_DATA_DIRS | grep -q flatpak); then
LOGOUT_REQUIRED=true
XDG_DATA_DIRS=$HOME/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:$XDG_DATA_DIRS
export XDG_DATA_DIRS
fi
if ! (echo $XDG_DATA_DIRS | grep -q flatpak); then
LOGOUT_REQUIRED=true
XDG_DATA_DIRS=$HOME/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:$XDG_DATA_DIRS
export XDG_DATA_DIRS
fi
flatpak install -y org.signal.Signal
flatpak install -y com.mattermost.Desktop
flatpak install -y net.jami.Jami
flatpak install -y org.signal.Signal
flatpak install -y com.mattermost.Desktop
flatpak install -y net.jami.Jami
} }
@ -482,8 +494,8 @@ libre_re_pixmap
echo echo
if [[ $LOGOUT_REQUIRED == true ]]; then if [[ $LOGOUT_REQUIRED == true ]]; then
echo '# DEBIAN-GNOME new extensions have been installed, please logout/login to apply changes!'
echo '# DEBIAN-GNOME new extensions have been installed, please logout/login to apply changes!'
else else
echo "# DEBIAN-GNOME successfully installed!"
echo "# DEBIAN-GNOME successfully installed!"
fi fi
echo echo
Loading…
Cancel
Save