2019-09-30 13:44:02 +02:00
|
|
|
#!/bin/bash
|
2020-05-02 14:40:28 +02:00
|
|
|
# @author Kevin Veen-Birkenbach
|
2019-10-01 12:30:27 +02:00
|
|
|
# shellcheck source=/dev/null # Deactivate SC1090
|
2020-05-02 13:15:15 +02:00
|
|
|
|
2020-05-02 12:37:26 +02:00
|
|
|
source "$(dirname "$(readlink -f "${0}")")/../base.sh" || (echo "Loading base.sh failed." && exit 1)
|
2020-04-16 19:27:14 +02:00
|
|
|
SYSTEM_MEMORY_KB="$(grep MemTotal /proc/meminfo | awk '{print $2}')"
|
2020-05-02 12:37:26 +02:00
|
|
|
info "Start setup of customized core software..."
|
2020-05-03 18:47:21 +02:00
|
|
|
|
|
|
|
info "Copying templates to home folder..." &&
|
2020-05-02 13:15:15 +02:00
|
|
|
cp -rfv "$TEMPLATE_PATH/." "$HOME" || error "Copy templates failed."
|
2020-05-03 18:47:21 +02:00
|
|
|
|
|
|
|
info "Update packages..." &&
|
2020-05-02 13:15:15 +02:00
|
|
|
sudo pacman -Syyu || error "Package syncronisation failed."
|
2020-05-03 18:47:21 +02:00
|
|
|
|
|
|
|
info "Synchronizing pacman packages..." &&
|
|
|
|
get_packages "general" "client-pacman" | sudo pacman -S --needed - && #|| error "Syncronisation failed."
|
|
|
|
info "Synchronizing yay packages..." &&
|
2020-05-02 14:27:57 +02:00
|
|
|
get_packages "client-yay" | yay -S - || error "Syncronisation failed."
|
2020-05-03 18:47:21 +02:00
|
|
|
|
|
|
|
info "Installing atom packages..." &&
|
2020-05-02 14:40:28 +02:00
|
|
|
get_packages "atom" | apm install -c - || error "Installation failed." # @todo needs to be fixed
|
2020-05-03 18:47:21 +02:00
|
|
|
|
2019-10-30 10:29:26 +01:00
|
|
|
FSTAB_SWAP_ENTRY="/swapfile none swap defaults 0 0"
|
|
|
|
SWAP_FILE="/swapfile"
|
|
|
|
FSTAB_FILE="/etc/fstab"
|
|
|
|
if grep -q "$FSTAB_SWAP_ENTRY" "$FSTAB_FILE"; then
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Skipping creation of swap partion because entry allready exists in \"$FSTAB_FILE\"!"
|
2019-10-30 10:29:26 +01:00
|
|
|
else
|
2020-05-03 18:47:21 +02:00
|
|
|
info "Creating swap partition..." &&
|
|
|
|
sudo fallocate -l 16G "$SWAP_FILE" &&
|
|
|
|
sudo chmod 600 "$SWAP_FILE" &&
|
|
|
|
sudo mkswap "$SWAP_FILE" &&
|
|
|
|
sudo swapon "$SWAP_FILE" &&
|
|
|
|
sudo sh -c "echo \"$FSTAB_SWAP_ENTRY\">>\"$FSTAB_FILE\"" || error "Creation of swap partition failed."
|
2019-10-30 10:29:26 +01:00
|
|
|
fi
|
2020-05-03 18:47:21 +02:00
|
|
|
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Setup SSH key..."
|
2019-09-30 16:13:26 +02:00
|
|
|
ssh_key_path="$HOME/.ssh/id_rsa"
|
|
|
|
if [ ! -f "$ssh_key_path" ]; then
|
2020-05-02 13:28:03 +02:00
|
|
|
info "SSH key $ssh_key_path doesn't exists!"
|
2019-09-30 16:13:26 +02:00
|
|
|
if [ ! -f "./data$ssh_key_path" ]; then
|
2020-05-03 18:47:21 +02:00
|
|
|
info "Importing ssh key by copying data..." &&
|
|
|
|
bash "$SCRIPT_PATH""/data/export-to-system.sh" || error "Copying failed."
|
2019-09-30 16:13:26 +02:00
|
|
|
else
|
2020-05-03 18:47:21 +02:00
|
|
|
info "Generating ssh key..." &&
|
|
|
|
ssh-keygen -t rsa -b 4096 -C "$USER@$HOSTNAME" || error "Key generation failed."
|
2019-09-30 16:13:26 +02:00
|
|
|
fi
|
|
|
|
fi
|
2020-05-03 18:47:21 +02:00
|
|
|
# @todo the following part can be optimized
|
2019-11-21 15:16:46 +01:00
|
|
|
if [[ "$(sudo lshw -C display)" == *"NVIDIA"* ]]; then
|
2020-05-03 18:47:21 +02:00
|
|
|
info "Install NVIDIA drivers..." &&
|
|
|
|
sudo mhwd -a pci nonfree 0300 || error "Failed."
|
2019-11-21 15:16:46 +01:00
|
|
|
fi
|
2020-05-03 18:47:21 +02:00
|
|
|
|
|
|
|
# @todo optimize
|
2020-04-16 19:27:14 +02:00
|
|
|
obs_requirements_memory_kb="4000000"
|
|
|
|
if [ "$SYSTEM_MEMORY_KB" -gt "$obs_requirements_memory_kb" ]; then
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Synchronizing obs studio..."
|
2020-04-16 19:27:14 +02:00
|
|
|
sudo pacman -S obs-studio
|
|
|
|
fi
|
2020-05-02 14:27:57 +02:00
|
|
|
|
2020-05-03 18:47:21 +02:00
|
|
|
info "Configurate system for arduino..." &&
|
|
|
|
sudo usermod -a -G uucp "$USER" &&
|
|
|
|
sudo usermod -a -G lock "$USER" || error "Couldn't add \"$USER\" to the relevant groups."
|
|
|
|
|
|
|
|
info "Installing software which is required by atom..." &&
|
|
|
|
sudo npm i -g bash-language-server && #Needed by atom-package ide-bash
|
|
|
|
python -m pip install 'python-language-server[all]' || error "Installation failed."#Needed by atom
|
2020-05-02 14:40:28 +02:00
|
|
|
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Synchronizing containerization tools..."
|
|
|
|
info "Add current user \"$USER\" to user group docker..."
|
2019-10-01 07:55:33 +02:00
|
|
|
sudo usermod -a -G docker "$USER"
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Enable docker service..."
|
2019-09-30 14:47:48 +02:00
|
|
|
sudo systemctl enable docker --now
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Synchronizing virtualisation tools..."
|
2019-11-02 11:26:37 +01:00
|
|
|
pamac install virtualbox $(pacman -Qsq "^linux" | grep "^linux[0-9]*[-rt]*$" | awk '{print $1"-virtualbox-host-modules"}' ORS=' ')
|
|
|
|
sudo vboxreload
|
|
|
|
pamac build virtualbox-ext-oracle
|
2019-11-22 11:53:23 +01:00
|
|
|
sudo gpasswd -a "$USER" vboxusers
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Keep in mind to install the guest additions in the virtualized system. See https://wiki.manjaro.org/index.php?title=VirtualBox"
|
2020-05-02 14:40:28 +02:00
|
|
|
|
2019-12-16 21:38:31 +01:00
|
|
|
minimum_gaming_memory_kb="4000000"
|
2020-04-16 19:27:14 +02:00
|
|
|
if [ "$SYSTEM_MEMORY_KB" -gt "$minimum_gaming_memory_kb" ]; then
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Synchronizing games..."
|
2019-12-16 21:38:31 +01:00
|
|
|
sudo pacman --needed -S 0ad warzone2100
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Synchronizing emulationstation..."
|
2019-12-16 21:38:31 +01:00
|
|
|
yay -S emulationstation #retroarch joyutils jstest-gtk-git
|
|
|
|
yay -S libretro-snes9x-next-git libretro-quicknes-git libretro-fceumm-git libretro-prosystem-git libretro-gambatte-git libretro-mgba-git
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Installing themes..."
|
2019-12-16 21:38:31 +01:00
|
|
|
mkdir .emulationstation/themes
|
|
|
|
git clone https://github.com/RetroPie/es-theme-carbon .emulationstation/themes/carbon
|
2020-05-02 13:28:03 +02:00
|
|
|
info "More game recomendations you will find here: https://wiki.archlinux.org/index.php/List_of_games..."
|
2019-12-16 21:38:31 +01:00
|
|
|
fi
|
|
|
|
if [ "$XDG_SESSION_TYPE" == "x11" ]; then
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Synchronizing xserver tools..."
|
2019-12-16 21:38:31 +01:00
|
|
|
sudo pacman --needed -S xbindkeys
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Setting up key bindings..."
|
2019-12-16 21:38:31 +01:00
|
|
|
echo "" >> "$HOME/.xbindkeysrc"
|
|
|
|
echo "\"gnome-terminal -e '/bin/bash $SCRIPT_PATH/import-data-from-system.sh'\"" >> "$HOME/.xbindkeysrc"
|
|
|
|
echo " control+alt+s" >> "$HOME/.xbindkeysrc"
|
|
|
|
xbindkeys --poll-rc
|
|
|
|
fi
|
|
|
|
if [ "$DESKTOP_SESSION" == "gnome" ]; then
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Synchronizing gnome tools..."
|
2019-12-16 21:38:31 +01:00
|
|
|
sudo pacman --needed -S gnome-shell-extensions gnome-terminal
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Setting up gnome specific software..."
|
|
|
|
info "Setting up dash favourites..."
|
2019-12-16 21:38:31 +01:00
|
|
|
gsettings set org.gnome.shell favorite-apps "['org.gnome.Nautilus.desktop',
|
|
|
|
'org.gnome.Terminal.desktop',
|
|
|
|
'org.keepassxc.KeePassXC.desktop',
|
|
|
|
'firefox.desktop',
|
|
|
|
'chromium.desktop',
|
|
|
|
'atom.desktop',
|
|
|
|
'arduino.desktop',
|
|
|
|
'eclipse.desktop',
|
|
|
|
'vlc.desktop',
|
|
|
|
'gimp.desktop',
|
|
|
|
'blender.desktop',
|
|
|
|
'rhythmbox.desktop',
|
|
|
|
'org.gnome.Screenshot.desktop']"
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Install GNOME extensions..."
|
|
|
|
info "Install \"NASA picture of the day\"..."
|
2019-12-16 21:38:31 +01:00
|
|
|
git clone https://github.com/Elinvention/gnome-shell-extension-nasa-apod.git "$HOME/.local/share/gnome-shell/extensions/nasa_apod@elinvention.ovh"
|
|
|
|
gnome-extensions enable nasa_apod@elinvention.ovh
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Install \"Open Weather\"..."
|
2019-12-16 21:38:31 +01:00
|
|
|
git clone https://gitlab.com/jenslody/gnome-shell-extension-openweather "$HOME/.local/share/gnome-shell/extensions/openweather-extension@jenslody.de"
|
|
|
|
gnome-extensions enable openweather-extension@jenslody.de
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Install \"Dash to Panel\"..."
|
2019-12-16 21:38:31 +01:00
|
|
|
git clone https://github.com/home-sweet-gnome/dash-to-panel "$HOME/.local/share/gnome-shell/extensions/openweather-extension@dash-to-panel@jderose9.github.com"
|
|
|
|
gnome-extensions enable dash-to-panel@jderose9.github.com
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Deaktivating \"Dash to Dock\""
|
2019-12-16 21:38:31 +01:00
|
|
|
gnome-extensions disable dash-to-dock@micxgx.gmail.com
|
|
|
|
fi
|
2020-05-02 13:28:03 +02:00
|
|
|
info "Removing all software from user startup..."
|
2020-04-24 17:31:21 +02:00
|
|
|
rm ~/.config/autostart/*
|
2020-05-02 13:28:03 +02:00
|
|
|
info "More software recomendations you will find here: https://wiki.archlinux.org/index.php/list_of_applications"
|