From 317f744d28adc76381335093f10faa4d43ad9a53 Mon Sep 17 00:00:00 2001 From: Matthias Lisin Date: Fri, 10 Jan 2020 23:40:56 +0100 Subject: [PATCH] Add massive change without any changelog --- linux_mint.sh | 217 +++++++++++++++++++++++++++++--------------------- 1 file changed, 125 insertions(+), 92 deletions(-) mode change 100644 => 100755 linux_mint.sh diff --git a/linux_mint.sh b/linux_mint.sh old mode 100644 new mode 100755 index c5c92db..36ee598 --- a/linux_mint.sh +++ b/linux_mint.sh @@ -3,84 +3,147 @@ ### # Set variables ### +export DEBIAN_FRONTEND=noninteractive + +# Color of prefix (>>>) to distinguish user and root echos +color_prefix=32 # green # Linux distro script_distro='Linux Mint 19.x' # Additional packages -more_packages="" +more_packages=( + # Graphics + cheese + inkscape + + # Office + libreoffice + + # Security + keepassxc + + # Games + 0ad + beneath-a-steel-sky + billard-gl + blobby + blockout2 + flight-of-the-amazon-queen + freeciv + frozen-bubble + gbrainy + gnome-games + gweled + hedgewars + lincity-ng + lure-of-the-temptress + openttd + pingus + pipewalker + pokerth + supertux + supertuxkart + teeworlds + wesnoth + widelands + + # Gaming platforms + playonlinux + steam + wine-stable + winetricks + + # System management + gparted + + # Tools + hardinfo + shutter + vim + + # Management + calibre + + # Knowledge + goldendict + ubuntu-edu-preschool + ubuntu-edu-primary + ubuntu-edu-secondary + ubuntu-edu-tertiary +) ### # Functions ### -function _addToDefaultPackages() { - more_packages="${more_packages} ${1}" +is_root() { + [[ $UID -eq 0 ]] } +# $*: message to echo +e() { + printf "\e[%sm>>>\e[0m %s\n" "$color_prefix" "$*" +} + +# It's a pain to stop (ctrl+c, kill) execution with all the Python applications +# so we catch SIGINT and SIGTERM and exit immediately +handle_signal() { + e "Ausführung abgebrochen! Script wird beendet..." + exit 1 +} +trap handle_signal SIGINT SIGTERM + +pkg() { + apt-get install "$@" --quiet --yes +} ### -# Define additional software packages +# Root setup ### +if is_root; then + color_prefix=31 # red + if [[ $1 != "root-setup" ]]; then + e "Dieses Script sollte nicht direkt als Root ausgeführt werden!" >&2 + e "Privilegien werden automatisch eskaliert sobald es notwendig ist." >&2 + exit 1 + fi -# Graphics -_addToDefaultPackages "cheese" -_addToDefaultPackages "inkscape" + e "Automatische Installation empfohlener Pakete aktivieren ..." + sed -i 's/false/true/g' /etc/apt/apt.conf.d/00recommends -# Office -_addToDefaultPackages "libreoffice" + e "Besten Spiegelserver für '${script_distro}' auswählen ..." + mint-switch-to-local-mirror -# Security -_addToDefaultPackages "keepassxc" + e "Paketquellen aktualisieren ..." + apt update --yes --quiet -# Games -_addToDefaultPackages "0ad" -_addToDefaultPackages "beneath-a-steel-sky" -_addToDefaultPackages "billard-gl" -_addToDefaultPackages "blobby" -_addToDefaultPackages "blockout2" -_addToDefaultPackages "flight-of-the-amazon-queen" -_addToDefaultPackages "freeciv" -_addToDefaultPackages "frozen-bubble" -_addToDefaultPackages "gbrainy" -_addToDefaultPackages "gnome-games" -_addToDefaultPackages "gweled" -_addToDefaultPackages "hedgewars" -_addToDefaultPackages "lincity-ng" -_addToDefaultPackages "lure-of-the-temptress" -_addToDefaultPackages "openttd" -_addToDefaultPackages "pingus" -_addToDefaultPackages "pipewalker" -_addToDefaultPackages "pokerth" -_addToDefaultPackages "supertux" -_addToDefaultPackages "supertuxkart" -_addToDefaultPackages "teeworlds" -_addToDefaultPackages "wesnoth" -_addToDefaultPackages "widelands" + e "System aktualisieren (apt) ..." + apt full-upgrade --yes --quiet -# Gaming platforms -_addToDefaultPackages "playonlinux" -_addToDefaultPackages "steam" -_addToDefaultPackages "wine-stable" -_addToDefaultPackages "winetricks" + e "System aktualisieren (mintupdate-cli) ..." + mintupdate-cli --yes upgrade -# System management -_addToDefaultPackages "gparted" + e "Proprietäre Treiber installieren (sofern verfügbar) ..." + ubuntu-drivers autoinstall -# Tools -_addToDefaultPackages "hardinfo" -_addToDefaultPackages "shutter" -_addToDefaultPackages "vim" + e "Zusätzliche Software installieren ..." + pkg "${more_packages[@]}" -# Management -_addToDefaultPackages "calibre" + e "Sprachpakete 'ar' und 'fa' installieren ..." + pkg language-pack-ar language-pack-gnome-ar language-pack-fa language-pack-gnome-fa -# Knowledge -_addToDefaultPackages "goldendict" -_addToDefaultPackages "ubuntu-edu-preschool" -_addToDefaultPackages "ubuntu-edu-primary" -_addToDefaultPackages "ubuntu-edu-secondary" -_addToDefaultPackages "ubuntu-edu-tertiary" + e "Sprachunterstützung vervollständigen ..." + pkg language-selector-common "$(check-language-support)" + pkg hunspell-de-at hunspell-de-ch hunspell-de-de openoffice.org-hyphenation + e "Unnötige Pakete entfernen und Cache bereinigen ..." + apt clean --yes --quiet + apt autoremove --yes --quiet + + e "Root Setup abgeschlossen." + # It's very important to exit here. We don't want to have run as root past this point + exit +fi ### # Greeting @@ -93,58 +156,28 @@ echo "\ ### # Maintainer: Computertruhe e. V. # Website: https://computertruhe.de/ -# Version: 0.1.4 +# Version: 0.2.0 # Repo: https://codeberg.org/Computertruhe/computertruhe-setup # Distro: ${script_distro} ### " -echo ">>> Starte initiales Setup für Rechner mit frisch installiertem \"${script_distro}\" ..." - +e "Starte initiales Setup für Rechner mit frisch installiertem '${script_distro}' ..." ### # Automatic installation ### -echo ">>> Automatische Installation empfohlener Pakete aktivieren ..." -sudo sed -i 's/false/true/g' /etc/apt/apt.conf.d/00recommends +e "Script wird als Root ausgeführt für privilegierte Aufgaben" +sudo ./"$0" root-setup -echo ">>> Besten Spiegelserver für \"${script_distro}\" auswählen ..." -mint-switch-to-local-mirror - -echo ">>> Paketquellen aktualisieren ..." -apt update - -echo ">>> System aktualisieren (apt) ..." -DEBIAN_FRONTEND=noninteractive apt full-upgrade --yes - -echo ">>> System aktualisieren (mintupdate-cli) ..." -DEBIAN_FRONTEND=noninteractive mintupdate-cli upgrade --yes - -echo ">>> Proprietäre Treiber installieren (sofern verfügbar) ..." -ubuntu-drivers autoinstall - -echo ">>> Zusätzliche Software installieren ..." -DEBIAN_FRONTEND=noninteractive apt install ${more_packages} --yes - -echo ">>> Sprachpakete 'ar' und 'fa' installieren ..." -apt install language-pack-ar language-pack-gnome-ar language-pack-fa language-pack-gnome-fa --yes -echo ">>> Sprachunterstützung vervollständigen ..." -apt install language-selector-common --yes -apt install $(check-language-support) --yes -apt install hunspell-de-at hunspell-de-ch hunspell-de-de openoffice.org-hyphenation --yes - -echo ">>> Richte arabisches und persisches Tastatur-Layout ein..." +e "Richte arabisches und persisches Tastatur-Layout ein..." gsettings set org.gnome.libgnomekbd.keyboard layouts "['de', 'ara', 'ir']" -echo ">>> Ändere Anzeigeoptionen für die Tastatur auf die richtigen Werte..." + +e "Ändere Anzeigeoptionen für die Tastatur auf die richtigen Werte..." gsettings set org.cinnamon.desktop.interface keyboard-layout-show-flags false gsettings set org.cinnamon.desktop.interface keyboard-layout-use-upper true gsettings set org.cinnamon.desktop.interface keyboard-layout-prefer-variant-names true -echo ">>> Unnötige Pakete entfernen ..." -apt clean -apt autoremove --yes - - ### # Finalisation ### -echo ">>> Initiales Setup beendet." +e "Initiales Setup beendet."