2017-12-27 13:54:15 +00:00
|
|
|
#!/bin/bash
|
|
|
|
#------------------------------------------------------------------------------#
|
|
|
|
# Yggdrasil NG #
|
|
|
|
# compatibility : Mint 18, Ubuntu 16.04, Elementary and other derivatives #
|
|
|
|
# author : Francois B. (Makotosan/Shakasan) #
|
|
|
|
# licence : GPLv3 #
|
2018-01-23 17:50:18 +00:00
|
|
|
# website : https://makotonoblog.be/ #
|
2017-12-27 13:54:15 +00:00
|
|
|
#------------------------------------------------------------------------------#
|
|
|
|
|
|
|
|
#
|
2017-12-30 22:08:45 +00:00
|
|
|
# include functions and vars from external files
|
2017-12-27 13:54:15 +00:00
|
|
|
#
|
2018-03-22 12:53:16 +00:00
|
|
|
dir=$(dirname $0)
|
2018-06-05 12:29:41 +00:00
|
|
|
source /opt/yggdrasil/vars.sh || exit 1
|
|
|
|
source /opt/yggdrasil/core_functions.sh || exit 1
|
|
|
|
source /opt/yggdrasil/tools_functions.sh || exit 1
|
2018-05-26 21:25:15 +00:00
|
|
|
|
|
|
|
OS=`lsb_release -d | awk -F':' '{print $2}' | awk -F'\t' '{print $2}'`
|
2018-05-26 22:58:00 +00:00
|
|
|
case $OS in
|
2018-05-30 07:09:12 +00:00
|
|
|
*"Ubuntu 16.04"* | *"Linux Mint 18"*)
|
2018-06-05 12:29:41 +00:00
|
|
|
source /opt/yggdrasil/repo_functions_ub1604.sh || exit 1
|
|
|
|
source /opt/yggdrasil/install_functions_ub1604.sh || exit 1
|
|
|
|
source /opt/yggdrasil/menus_functions_ub1604.sh || exit 1
|
2018-05-26 22:58:00 +00:00
|
|
|
;;
|
2018-05-30 07:09:12 +00:00
|
|
|
*"Ubuntu 18.04"* | *"Linux Mint 19"*)
|
2018-06-05 12:29:41 +00:00
|
|
|
source /opt/yggdrasil/repo_functions_ub1804.sh || exit 1
|
|
|
|
source /opt/yggdrasil/install_functions_ub1804.sh || exit 1
|
|
|
|
source /opt/yggdrasil/menus_functions_ub1804.sh || exit 1
|
2018-05-26 22:58:00 +00:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
printf "\n"
|
2018-05-29 11:02:06 +00:00
|
|
|
printf $BOLDROUGE"Linux distro not supported"$NORMAL
|
2018-05-26 22:58:00 +00:00
|
|
|
printf "\n\n"
|
|
|
|
;;
|
|
|
|
esac
|
2017-12-27 13:54:15 +00:00
|
|
|
|
|
|
|
#
|
2017-12-30 22:08:45 +00:00
|
|
|
# check if the script is running in root/sudo
|
2017-12-29 10:46:53 +00:00
|
|
|
# NEVER run the script as root or with sudo !!!!
|
2017-12-30 22:08:45 +00:00
|
|
|
#
|
2017-12-29 10:46:53 +00:00
|
|
|
if ! [ "$UID" -ne "0" ]; then
|
|
|
|
printf "\n"
|
2018-03-22 10:36:39 +00:00
|
|
|
printf $BOLDROUGE"Yggdrasil can't be run as root/sudo, please retry as normal user"$NORMAL
|
2017-12-29 10:46:53 +00:00
|
|
|
printf "\n\n"
|
|
|
|
exit
|
|
|
|
fi
|
2017-12-27 13:54:15 +00:00
|
|
|
|
2017-12-30 22:08:45 +00:00
|
|
|
#
|
2017-12-27 13:54:15 +00:00
|
|
|
# add a mark to the log file at every script run
|
2017-12-30 22:08:45 +00:00
|
|
|
#
|
2017-12-29 15:43:47 +00:00
|
|
|
echo "--[ Yggdrasil log ]--[ "$cDate" ]--[ "$cTime" ]-----------------------" >> $logFile
|
2017-12-27 13:54:15 +00:00
|
|
|
|
2017-12-30 22:08:45 +00:00
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
# Headless Mode #
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
|
2018-05-30 11:15:57 +00:00
|
|
|
# display logo in CLI mode
|
|
|
|
[[ $# -gt 0 ]] && dispLogo
|
|
|
|
|
2017-12-29 10:46:53 +00:00
|
|
|
#
|
|
|
|
# arguments/options management with getopts
|
2018-03-30 07:39:12 +00:00
|
|
|
|
2018-06-10 16:42:25 +00:00
|
|
|
while getopts ":h,v,f,c,u,a,d,q,s,t,n,w,p,k" option; do
|
2017-12-29 10:46:53 +00:00
|
|
|
case "$option" in
|
2018-03-24 16:08:01 +00:00
|
|
|
a) # install all apps
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-03-30 07:39:12 +00:00
|
|
|
msg "Installing Apps"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList base
|
|
|
|
installAppsFromList office
|
2017-12-30 21:47:59 +00:00
|
|
|
installBurningTools
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList ebook
|
|
|
|
installAppsFromList games
|
|
|
|
installAppsFromList steam
|
|
|
|
installAppsFromList internet
|
2018-05-27 00:12:07 +00:00
|
|
|
installJava10
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList utilities
|
|
|
|
installAppsFromList multimedia
|
|
|
|
installAppsFromList nettools
|
|
|
|
installAppsFromList wine
|
|
|
|
installAppsFromList cajaplugins
|
|
|
|
installAppsFromList nautilus
|
|
|
|
installAppsFromList thunar
|
|
|
|
installAppsFromList gimp
|
|
|
|
installAppsFromList pidgin
|
|
|
|
installAppsFromList rhythmbox
|
2018-03-30 07:39:12 +00:00
|
|
|
msg "Installing HW related"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList webcam
|
2018-03-24 16:08:01 +00:00
|
|
|
updateMicrocode
|
2018-03-30 07:39:12 +00:00
|
|
|
msg "Applying system customizations"
|
2018-03-24 16:08:01 +00:00
|
|
|
enableUFW
|
|
|
|
enableNumLockX
|
|
|
|
addScreenfetchBashrc
|
|
|
|
enableHistoryTS
|
|
|
|
installUnattendedUpgrades
|
2018-03-30 07:39:12 +00:00
|
|
|
msg "Installing external apps"
|
|
|
|
installViber
|
|
|
|
installFranz
|
2018-06-12 06:58:12 +00:00
|
|
|
installBoostnotes
|
2018-03-30 07:39:12 +00:00
|
|
|
installTeamViewer13
|
2018-05-27 13:18:46 +00:00
|
|
|
installXnViewMP
|
2018-03-24 16:24:42 +00:00
|
|
|
;;
|
2018-03-24 16:08:01 +00:00
|
|
|
f) # full install
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-03-30 07:39:12 +00:00
|
|
|
msg "Installing Apps"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList base
|
|
|
|
installAppsFromList office
|
2018-03-24 16:08:01 +00:00
|
|
|
installBurningTools
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList ebook
|
|
|
|
installAppsFromList games
|
|
|
|
installAppsFromList steam
|
|
|
|
installAppsFromList internet
|
2018-05-27 00:12:07 +00:00
|
|
|
installJava10
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList utilities
|
|
|
|
installAppsFromList multimedia
|
|
|
|
installAppsFromList nettools
|
|
|
|
installAppsFromList wine
|
|
|
|
installAppsFromList cajaplugins
|
|
|
|
installAppsFromList nautilus
|
|
|
|
installAppsFromList thunar
|
|
|
|
installAppsFromList gimp
|
|
|
|
installAppsFromList pidgin
|
|
|
|
installAppsFromList rhythmbox
|
2018-03-30 07:39:12 +00:00
|
|
|
msg "Installing HW related"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList webcam
|
2018-03-24 16:08:01 +00:00
|
|
|
updateMicrocode
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList cardreader
|
2018-03-30 07:39:12 +00:00
|
|
|
msg "Applying system customizations"
|
2018-03-24 16:08:01 +00:00
|
|
|
enableUFW
|
|
|
|
enableNumLockX
|
|
|
|
addScreenfetchBashrc
|
|
|
|
enableHistoryTS
|
|
|
|
installUnattendedUpgrades
|
2018-03-30 07:39:12 +00:00
|
|
|
enableUnbound
|
|
|
|
msg "Installing additional themes/icons"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList icons
|
|
|
|
installAppsFromList gtkthemes
|
2018-03-30 07:39:12 +00:00
|
|
|
msg "Installing external apps"
|
|
|
|
installViber
|
|
|
|
installFranz
|
2018-06-12 06:58:12 +00:00
|
|
|
installBoostnotes
|
2018-03-30 07:39:12 +00:00
|
|
|
installTeamViewer13
|
2018-05-27 13:18:46 +00:00
|
|
|
installXnViewMP
|
2017-12-29 10:46:53 +00:00
|
|
|
;;
|
|
|
|
c) # install themes and icons
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-05-27 14:32:39 +00:00
|
|
|
msg "Installing Icons/Themes"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList icons
|
|
|
|
installAppsFromList gtkthemes
|
2017-12-29 10:46:53 +00:00
|
|
|
;;
|
2018-03-30 07:39:12 +00:00
|
|
|
w) # nitrogen
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-05-27 14:32:39 +00:00
|
|
|
msg "Installing Nitrogen"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList nitrogen
|
2018-03-30 07:39:12 +00:00
|
|
|
;;
|
2018-03-24 16:20:26 +00:00
|
|
|
d) # install Unbound DNS Cache
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-05-27 14:32:39 +00:00
|
|
|
msg "Installing Unbound"
|
2018-06-13 03:13:39 +00:00
|
|
|
installAppsFromList unbound
|
2018-03-24 16:20:26 +00:00
|
|
|
;;
|
2018-03-30 07:39:12 +00:00
|
|
|
q) # cardreader
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-05-27 14:32:39 +00:00
|
|
|
msg "Installing Card Readers Apps"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList cardreader
|
2018-03-24 16:20:26 +00:00
|
|
|
;;
|
|
|
|
s) # solaar for logitech devices
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-05-27 14:32:39 +00:00
|
|
|
msg "Installing Solaar"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList solaar
|
2018-03-24 16:20:26 +00:00
|
|
|
;;
|
|
|
|
t) # tlp (laptop or low energy usage)
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-05-27 14:32:39 +00:00
|
|
|
msg "Installing TLP"
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList tlp
|
2018-03-24 16:20:26 +00:00
|
|
|
;;
|
|
|
|
n) # latest nvidia driver (see menus if need older version)
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromList nvidia-driver-396
|
2018-03-24 16:20:26 +00:00
|
|
|
;;
|
2018-03-30 17:02:06 +00:00
|
|
|
k)
|
2018-06-05 12:21:47 +00:00
|
|
|
if [ $ygginitCount = false ]; then
|
2018-05-30 11:15:57 +00:00
|
|
|
msg "Initializing"
|
|
|
|
yggInit
|
|
|
|
msg "Updating the system"
|
|
|
|
updateSystem
|
2018-06-05 12:21:47 +00:00
|
|
|
ygginitCount=true
|
2018-05-30 11:15:57 +00:00
|
|
|
fi
|
2018-05-27 14:32:39 +00:00
|
|
|
msg "Updating Kernel"
|
2018-03-30 17:02:06 +00:00
|
|
|
kernelUpdate
|
|
|
|
;;
|
2018-01-03 21:59:50 +00:00
|
|
|
u)
|
2018-05-27 14:32:39 +00:00
|
|
|
msg "Initializing"
|
2018-03-14 18:34:00 +00:00
|
|
|
yggInit
|
2018-05-27 14:32:39 +00:00
|
|
|
msg "Updating the system"
|
2018-01-03 21:59:50 +00:00
|
|
|
updateSystem
|
|
|
|
exit
|
|
|
|
;;
|
2018-03-30 07:39:12 +00:00
|
|
|
p)
|
|
|
|
toolAutoremove
|
|
|
|
exit
|
|
|
|
;;
|
2017-12-29 10:46:53 +00:00
|
|
|
h) # display help
|
|
|
|
usage
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
v) # display version number
|
|
|
|
printf "Yggdrasil version : $version\n"
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
:) # display error message in case of missing argument(s)
|
|
|
|
usage
|
|
|
|
printf "\nError : Option $OPTARG : missing argument\n"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
\?) # display error message in case of invalid option
|
|
|
|
usage
|
|
|
|
printf "\nError : $OPTARG : invalid option\n"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2018-05-30 11:15:57 +00:00
|
|
|
# if CLI mode, no need to run the menus...
|
|
|
|
[[ $# -gt 0 ]] && exit
|
|
|
|
|
2017-12-30 22:08:45 +00:00
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
# Menu Mode #
|
|
|
|
#-----------------------------------------------------------------------------#
|
2017-12-29 10:46:53 +00:00
|
|
|
|
2018-03-22 10:14:26 +00:00
|
|
|
# show Yggdrasil logo
|
2017-12-30 21:12:24 +00:00
|
|
|
dispLogo
|
2017-12-29 10:46:53 +00:00
|
|
|
|
2018-03-22 10:14:26 +00:00
|
|
|
# show system informations
|
2018-03-22 09:51:16 +00:00
|
|
|
dispSysInfos
|
2017-12-27 13:54:15 +00:00
|
|
|
|
2017-12-28 18:27:44 +00:00
|
|
|
# Useless by itself, but is used to don't be annoyed later in the script
|
2017-12-27 13:54:15 +00:00
|
|
|
sudo echo
|
|
|
|
|
2018-03-14 18:39:12 +00:00
|
|
|
# init, check and install/update dependencies
|
2018-03-14 18:34:00 +00:00
|
|
|
yggInit
|
|
|
|
|
2017-12-27 13:54:15 +00:00
|
|
|
pressKey
|
|
|
|
|
|
|
|
# Apps dir created if necessary
|
|
|
|
mkdir -p /home/$myHomedir/Apps
|
|
|
|
|
2017-12-30 22:08:45 +00:00
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
# Main menu #
|
|
|
|
#-----------------------------------------------------------------------------#
|
2017-12-27 13:54:15 +00:00
|
|
|
|
|
|
|
while true; do # main menu loop
|
|
|
|
|
|
|
|
mainMenuOptions=$(whiptail \
|
|
|
|
--title "Yggdrasil $version - Main Menu" \
|
|
|
|
--menu "This tool will help you to install all needed applications and cutomize your fresh install of Mint/Ubuntu/Elementary/..." \
|
|
|
|
25 80 16 \
|
|
|
|
"1" "System update" \
|
2018-05-02 01:11:25 +00:00
|
|
|
"2" "Applications" \
|
|
|
|
"3" "Applications (BETA)" \
|
|
|
|
"4" "Applications (Nightly)" \
|
|
|
|
"5" "Themes & Icons" \
|
|
|
|
"6" "Dev Apps" \
|
|
|
|
"7" "System Config" \
|
2018-06-08 23:05:02 +00:00
|
|
|
"8" "Hardware" \
|
|
|
|
"9" "System Tools" \
|
|
|
|
"10" "Reboot this computer" \
|
|
|
|
"11" "About Yggdrasil" \
|
|
|
|
"12" "Quit" 3>&1 1>&2 2>&3)
|
2017-12-27 13:54:15 +00:00
|
|
|
|
|
|
|
case $mainMenuOptions in
|
|
|
|
"1")
|
|
|
|
updateSystem
|
|
|
|
pressKey
|
|
|
|
;;
|
|
|
|
"2")
|
|
|
|
showAppInstallMenu
|
|
|
|
;;
|
2018-05-02 01:11:25 +00:00
|
|
|
"3")
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromListMenu beta
|
2017-12-27 13:54:15 +00:00
|
|
|
;;
|
2018-05-02 01:11:25 +00:00
|
|
|
"4")
|
2018-06-12 11:39:46 +00:00
|
|
|
installAppsFromListMenu nightly
|
2017-12-27 13:54:15 +00:00
|
|
|
;;
|
2018-05-02 01:11:25 +00:00
|
|
|
"5")
|
2017-12-27 13:54:15 +00:00
|
|
|
showThemesInstallMenu
|
|
|
|
;;
|
2018-05-02 01:11:25 +00:00
|
|
|
"6")
|
2017-12-27 13:54:15 +00:00
|
|
|
showDevInstallMenu
|
|
|
|
;;
|
2018-05-02 01:11:25 +00:00
|
|
|
"7")
|
2017-12-27 13:54:15 +00:00
|
|
|
showConfigMenu;
|
|
|
|
;;
|
2018-05-02 01:11:25 +00:00
|
|
|
"8")
|
2018-06-08 23:05:02 +00:00
|
|
|
showHardwareMenu
|
2017-12-27 13:54:15 +00:00
|
|
|
;;
|
2018-05-02 01:11:25 +00:00
|
|
|
"9")
|
2018-06-08 23:05:02 +00:00
|
|
|
showSysToolsMenu
|
2017-12-27 13:54:15 +00:00
|
|
|
;;
|
2018-05-02 01:11:25 +00:00
|
|
|
"10")
|
2018-06-08 23:05:02 +00:00
|
|
|
showRebootBoxMenu
|
2017-12-27 13:54:15 +00:00
|
|
|
;;
|
2018-05-02 01:11:25 +00:00
|
|
|
"11")
|
2018-06-08 23:05:02 +00:00
|
|
|
showAboutBoxMenu
|
|
|
|
;;
|
|
|
|
"12")
|
2017-12-27 13:54:15 +00:00
|
|
|
exit
|
|
|
|
;;
|
|
|
|
esac # main menu
|
|
|
|
done # end of main menu loop
|
|
|
|
|
|
|
|
clear
|
2018-05-29 11:02:06 +00:00
|
|
|
exit
|