diff --git a/configuration/packages/client-pacman.txt b/configuration/packages/client-pacman.txt index 525deb9..c73e5a7 100644 --- a/configuration/packages/client-pacman.txt +++ b/configuration/packages/client-pacman.txt @@ -52,6 +52,7 @@ hunspell-nl # video/picture manipulation gimp blender +obs-studio # communication tools pidgin @@ -77,3 +78,18 @@ ansible # entertainment software rhythmbox + +## games +0ad +warzone2100 +supertuxkart +gnuchess +sauerbraten +assaultcube +minetest +mari0 + +### retroarch +retroarch +retroarch-assets-xmb +retroarch-assets-ozone diff --git a/scripts/client/setup.sh b/scripts/client/setup.sh index d7b2986..f5618fd 100644 --- a/scripts/client/setup.sh +++ b/scripts/client/setup.sh @@ -13,7 +13,7 @@ info "Update packages..." && sudo pacman -Syyu || error "Package syncronisation failed." info "Synchronizing pacman packages..." && -get_packages "general" "client-pacman" | sudo pacman -S --needed - && #|| error "Syncronisation failed." +get_packages "general" "client-pacman" | sudo pacman -S --needed - && info "Synchronizing yay packages..." && get_packages "client-yay" | yay -S - || error "Syncronisation failed." @@ -43,68 +43,57 @@ if [ ! -f "$ssh_key_path" ]; then ssh-keygen -t rsa -b 4096 -C "$USER@$HOSTNAME" || error "Key generation failed." fi fi -# @todo the following part can be optimized -if [[ "$(sudo lshw -C display)" == *"NVIDIA"* ]]; then - info "Install NVIDIA drivers..." && - sudo mhwd -a pci nonfree 0300 || error "Failed." + +info "Installing nonfree drivers..." && +sudo mhwd -a pci nonfree 0300 || error "Failed." + +info "Setup, configuration and installation of dependencies for installed software..." + +if pacman -Qi "arduino" > /dev/null ; then + 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." fi -# @todo optimize -obs_requirements_memory_kb="4000000" -if [ "$SYSTEM_MEMORY_KB" -gt "$obs_requirements_memory_kb" ]; then - info "Synchronizing obs studio..." - sudo pacman -S obs-studio +if pacman -Qi "atom" > /dev/null ; then + info "Installing atom packages..." && + get_packages "atom" | apm install --verbose -c - && + info "Installing software which is required by atom..." && + sudo npm i -g bash-language-server && + python -m pip install 'python-language-server[all]' || error "Failed." fi -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 atom packages..." && -get_packages "atom" | apm install --verbose -c - && -info "Installing software which is required by atom..." && -sudo npm i -g bash-language-server && -python -m pip install 'python-language-server[all]' || error "Installation failed." - -info "Synchronizing containerization tools..." -info "Add current user \"$USER\" to user group docker..." -sudo usermod -a -G docker "$USER" -info "Enable docker service..." -sudo systemctl enable docker --now -info "Synchronizing virtualisation tools..." -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 -sudo gpasswd -a "$USER" vboxusers -info "Keep in mind to install the guest additions in the virtualized system. See https://wiki.manjaro.org/index.php?title=VirtualBox" - -minimum_gaming_memory_kb="4000000" -if [ "$SYSTEM_MEMORY_KB" -gt "$minimum_gaming_memory_kb" ]; then - info "Synchronizing games..." - sudo pacman --needed -S 0ad warzone2100 - info "Synchronizing emulationstation..." - 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 - info "Installing themes..." - mkdir .emulationstation/themes - git clone https://github.com/RetroPie/es-theme-carbon .emulationstation/themes/carbon - info "More game recomendations you will find here: https://wiki.archlinux.org/index.php/List_of_games..." +if pacman -Qi "docker" > /dev/null ; then + info "Setting up docker..." && + info "Add current user \"$USER\" to user group docker..." && + sudo usermod -a -G docker "$USER" && + info "Enable docker service..." && + sudo systemctl enable docker --now || error "Failed." fi + +if pacman -Qi "docker" > /dev/null ; then + info "Setting up virtualbox..." && + 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 && + sudo gpasswd -a "$USER" vboxusers || error "Failed." + info "Keep in mind to install the guest additions in the virtualized system. See https://wiki.manjaro.org/index.php?title=VirtualBox" +fi + if [ "$XDG_SESSION_TYPE" == "x11" ]; then - info "Synchronizing xserver tools..." - sudo pacman --needed -S xbindkeys - info "Setting up key bindings..." - 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 + info "Synchronizing xserver tools..." && + sudo pacman --needed -S xbindkeys && + info "Setting up key bindings..." && + 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 || error "Failed." fi + if [ "$DESKTOP_SESSION" == "gnome" ]; then - info "Synchronizing gnome tools..." - sudo pacman --needed -S gnome-shell-extensions gnome-terminal - info "Setting up gnome specific software..." - info "Setting up dash favourites..." + info "Synchronizing gnome tools..." && + sudo pacman --needed -S gnome-shell-extensions gnome-terminal && + info "Setting up gnome dash favourites..." && gsettings set org.gnome.shell favorite-apps "['org.gnome.Nautilus.desktop', 'org.gnome.Terminal.desktop', 'org.keepassxc.KeePassXC.desktop', @@ -117,20 +106,22 @@ if [ "$DESKTOP_SESSION" == "gnome" ]; then 'gimp.desktop', 'blender.desktop', 'rhythmbox.desktop', - 'org.gnome.Screenshot.desktop']" || error "Setting up icons failed" - info "Install GNOME extensions..." - info "Install \"NASA picture of the day\"..." - 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 - info "Install \"Open Weather\"..." - 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 - info "Install \"Dash to Panel\"..." - 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 - info "Deaktivating \"Dash to Dock\"" - gnome-extensions disable dash-to-dock@micxgx.gmail.com + 'org.gnome.Screenshot.desktop']" && + info "Install GNOME extensions..." && + info "Install \"NASA picture of the day\"..." && + 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 && + info "Install \"Open Weather\"..." && + 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 && + info "Install \"Dash to Panel\"..." && + 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 && + info "Deaktivating \"Dash to Dock\"" && + gnome-extensions disable dash-to-dock@micxgx.gmail.com || error "Failed." fi -info "Removing all software from user startup..." + +info "Removing all software from user startup..." && rm ~/.config/autostart/* || error "Removing startup software failed." -info "More software recomendations you will find here: https://wiki.archlinux.org/index.php/list_of_applications" + +success "Setup finished successfully :)" && exit 0