diff --git a/src/trixie.sh b/src/trixie.sh index cc3d7bf..5d89e45 100755 --- a/src/trixie.sh +++ b/src/trixie.sh @@ -8,176 +8,188 @@ LOGOUT_REQUIRED=false BASEDIR=$(readlink -f "$(dirname "$0")/..") ALLOWED_USERS=$(id -un) # CUSTOMIZE if needed! 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 # --------- 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() { - 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() { - 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 { - 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 { - 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 { - 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 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 { - 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 { - 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 { - 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 { - 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 { - 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] Name=Firefox Comment=Web Browser @@ -203,62 +215,62 @@ Exec=/opt/firefox/firefox --private-window %u Name=Profile Manager Exec=/opt/firefox/firefox -P %u 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 { - 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 { - 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] NoDisplay=true 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] NoDisplay=true 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] Version=1.0 Name=Tilix @@ -290,168 +302,168 @@ Name[fr]=Préférences Name=Preferences Exec=tilix --preferences 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 { - 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 { - 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 { - 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 { - 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 { - 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 { - 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 { - 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 lockPref("browser.pocket.enabled", false); lockPref("extensions.pocket.enabled", false); lockPref("browser.shell.checkDefaultBrowser", false); 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.obscure_value", 0); EOF - else - echo "Firefox default settings already defined!" - fi + else + echo "Firefox default settings already defined!" + fi } 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 { - 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 { - 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 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 - echo "# DEBIAN-GNOME successfully installed!" + echo "# DEBIAN-GNOME successfully installed!" fi echo