#!/bin/bash #### Variables APT_UPDATE="apt -y update" APT_INST="apt -y install" APT_PURGE="apt -y purge" APT_REMOVE="apt -y autoremove" PKG_KDE_MINIMAL="kde-plasma-desktop plasma-nm" PKG_KDE_APPS="ark kcalc okular gwenview krita dolphin-plugins kde-spectacle audacious vlc" PKG_OFFICE="libreoffice-calc libreoffice-writer libreoffice-draw libreoffice-kf5 aspell-hr hunspell-hr" PKG_NET="thunderbird net-tools remmina" PKG_KDE_PURGE="kdeconnect termit zutty" #### Functions check_root() { if [ "$EUID" -ne 0 ]; then echo "Must be root to run $0" exit fi } choice() { echo -ne "[y/n]" while true do read -rN1 input case $input in [yY][eE][sS]|[yY]) return 0 break ;; [nN][oO]|[nN]) return 1 ;; esac done } fix_net() { # More about bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758557 nf="/etc/network/interfaces" ifs=($(ip addr | grep -E ':\s.*?:' | cut -d ":" -f 2 | tr -d " ")) for value in "${ifs[@]}" do sed -i 's/^[^#]*'.$value.'*/#&/' $nf done systemctl restart networking.service systemctl restart NetworkManager.service systemctl restart NetworkManager-wait-online.service } fix_console() { # More about bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=846256#67 VAR_DIR_CONSOLE=/etc/systemd/system/console-setup.service.d VAR_DIR_KEYBOARD=/etc/systemd/system/keyboard-setup.service.d if ! [ -d "$VAR_DIR_CONSOLE" ]; then mkdir -p $VAR_DIR_CONSOLE echo "[Unit]" > $VAR_DIR_CONSOLE/override.conf echo "After=systemd-tmpfiles-setup.service" >> $VAR_DIR_CONSOLE/override.conf echo "Add fix for console-setup.service" fi if ! [ -d "$VAR_DIR_KEYBOARD" ]; then mkdir -p $VAR_DIR_KEYBOARD echo "[Unit]" > $VAR_DIR_KEYBOARD/override.conf echo "After=systemd-tmpfiles-setup.service" >> $VAR_DIR_KEYBOARD/override.conf echo "Add fix for keyboard-setup.service" fi systemctl restart console-setup.service systemctl restart keyboard-setup.service } #### Main check_root echo -e "\nUpdate apt" echo "$APT_UPDATE" $APT_UPDATE echo -ne "\nInstall of KDE minimal ($PKG_KDE_MINIMAL)? " if choice 2>/dev/null; then echo -ne "\n$APT_INST $PKG_KDE_MINIMAL\n" $APT_INST $PKG_KDE_MINIMAL fi echo -ne "\nYou want remove package from KDE minimal ($PKG_KDE_PURGE)? " if choice 2>/dev/null; then echo -ne "\n$APT_PURGE $PKG_KDE_PURGE\n" $APT_PURGE $PKG_KDE_PURGE echo "$APT_REMOVE" $APT_REMOVE fi echo -ne "\nYou want to install KDE apps ($PKG_KDE_APPS)? " if choice 2>/dev/null; then echo -ne "\n$APT_INST $PKG_KDE_APPS\n" $APT_INST $PKG_KDE_APPS fi echo -ne "\nYou want to install office packages ($PKG_OFFICE)? " if choice 2>/dev/null; then echo -ne "\n$APT_INST $PKG_OFFICE\n" $APT_INST $PKG_OFFICE fi echo -ne "\nYou want to install internet programs ($PKG_NET)? " if choice 2>/dev/null; then echo -ne "\n$APT_INST $PKG_FIREFOX $PKG_NET\n" $APT_INST $PKG_FIREFOX $PKG_NET fi echo -ne "\nYou want to run fix_net function? " if choice 2>/dev/null; then fix_net fi echo -ne "\nYou want to run fix_console function? " if choice 2>/dev/null; then fix_console fi