|
|
|
@ -1,14 +1,14 @@
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
|
|
# TODO make this work
|
|
|
|
|
# NOTE ignore errors from missing "||". Try getting the line below to work
|
|
|
|
|
#set -euo pipefail
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
# get current directory
|
|
|
|
|
setupdir=$(pwd)
|
|
|
|
|
# get script directory
|
|
|
|
|
scriptloc=$(realpath "$BASH_SOURCE")
|
|
|
|
|
setupdir=$(dirname "$scriptloc")
|
|
|
|
|
#setupdir=$(pwd)
|
|
|
|
|
|
|
|
|
|
#change to home (does not show in terminal)
|
|
|
|
|
cd "$HOME"
|
|
|
|
|
#change to home directory
|
|
|
|
|
#cd "$HOME"
|
|
|
|
|
|
|
|
|
|
# check if multilib repo is enabled
|
|
|
|
|
if ! pacman -Sl multilib &>/dev/null; then
|
|
|
|
@ -16,35 +16,35 @@ if ! pacman -Sl multilib &>/dev/null; then
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# fix install problems
|
|
|
|
|
sudo pacman -Syu
|
|
|
|
|
sudo pacman -S --needed python-pip
|
|
|
|
|
# NOTE on unattended pacman installing
|
|
|
|
|
# Option 1: Will assume the default choice
|
|
|
|
|
#--noconfirm
|
|
|
|
|
# Option 2: Will always choose "yes", locale override needed to work all the time (might fail for other locales)
|
|
|
|
|
#yes | LC_ALL=en_US.UTF-8 pacman ...
|
|
|
|
|
#
|
|
|
|
|
# excpect & send
|
|
|
|
|
|
|
|
|
|
#in_xfce=0
|
|
|
|
|
#in_i3gaps=0
|
|
|
|
|
# fix install problems
|
|
|
|
|
echo Updating keyring
|
|
|
|
|
sudo pacman -Sy --noconfirm archlinux-keyring
|
|
|
|
|
echo Updating repos and packages
|
|
|
|
|
sudo pacman -Syu --noconfirm
|
|
|
|
|
echo Installing pip
|
|
|
|
|
sudo pacman -S --needed --noconfirm python-pip
|
|
|
|
|
echo Select packages to install
|
|
|
|
|
|
|
|
|
|
cmd=(dialog --separate-output --checklist "Select Desktop environment/Window manager:" 22 76 16)
|
|
|
|
|
options=(0 "[DE] xfce4" off # any option can be set to default to "on"
|
|
|
|
|
100 "[WM] i3-gaps" off)
|
|
|
|
|
options=(100 "[WM] sway" off)
|
|
|
|
|
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
|
|
|
|
|
clear
|
|
|
|
|
for choice in $choices; do
|
|
|
|
|
case $choice in
|
|
|
|
|
0)
|
|
|
|
|
#in_xfce=1
|
|
|
|
|
echo "xfce4" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
100)
|
|
|
|
|
#in_i3gaps=1
|
|
|
|
|
echo "i3-gaps" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
printf '%s\n' 'sway' 'swaylock' 'swayidle' 'swaybg' 'xorg-xwayland' >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
#in_firefox=0
|
|
|
|
|
#in_chromium=0
|
|
|
|
|
#in_tor=0
|
|
|
|
|
|
|
|
|
|
cmd=(dialog --separate-output --checklist "Select browsers:" 22 76 16)
|
|
|
|
|
options=(0 "Firefox" on # any option can be set to default to "on"
|
|
|
|
|
10 "Chromium" off
|
|
|
|
@ -54,39 +54,17 @@ clear
|
|
|
|
|
for choice in $choices; do
|
|
|
|
|
case $choice in
|
|
|
|
|
0)
|
|
|
|
|
#in_firefox=1
|
|
|
|
|
echo "firefox" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
10)
|
|
|
|
|
#in_chromium=1
|
|
|
|
|
echo "chromium" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
20)
|
|
|
|
|
#in_tor=1
|
|
|
|
|
echo "torbrowser-launcher" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
#in_virtmanager=0
|
|
|
|
|
#in_vmware15=0
|
|
|
|
|
#in_steam=0
|
|
|
|
|
#in_lutris=0
|
|
|
|
|
#in_blender=0
|
|
|
|
|
#in_krita=0
|
|
|
|
|
#in_youtubedl=0
|
|
|
|
|
#in_discord=0
|
|
|
|
|
#in_handbrake=0
|
|
|
|
|
#in_gimp=0
|
|
|
|
|
#in_audacity=0
|
|
|
|
|
#in_mangohud=0
|
|
|
|
|
#in_liferea=0
|
|
|
|
|
#in_fractal=0
|
|
|
|
|
#in_bettergram=0
|
|
|
|
|
#in_waifu2x=0
|
|
|
|
|
#in_telegram=0
|
|
|
|
|
#in_element=0
|
|
|
|
|
|
|
|
|
|
cmd=(dialog --separate-output --checklist "Select other programs:" 22 76 16)
|
|
|
|
|
options=(0 "VirtManager" off # any option can be set to default to "on"
|
|
|
|
|
1 "VMWare Workstation" off
|
|
|
|
@ -96,8 +74,7 @@ options=(0 "VirtManager" off # any option can be set to default to "on"
|
|
|
|
|
13 "Minigalaxy" off
|
|
|
|
|
20 "Krita" off
|
|
|
|
|
21 "Gimp" off
|
|
|
|
|
#30 "Youtube-dl" off
|
|
|
|
|
31 "YT-dlp" on
|
|
|
|
|
31 "YT-dlp" off
|
|
|
|
|
32 "Megatools" off
|
|
|
|
|
40 "Handbrake" off
|
|
|
|
|
41 "Audacity" off
|
|
|
|
@ -112,19 +89,15 @@ clear
|
|
|
|
|
for choice in $choices; do
|
|
|
|
|
case $choice in
|
|
|
|
|
0)
|
|
|
|
|
#in_virtmanager=1
|
|
|
|
|
printf '%s\n' 'qemu' 'virt-manager' 'ebtables' 'dnsmasq' >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
1)
|
|
|
|
|
#in_vmware15=1
|
|
|
|
|
echo "vmware-workstation" >>"$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
10)
|
|
|
|
|
#in_steam=1
|
|
|
|
|
printf '%s\n' 'steam' 'steam-native-runtime' >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
11)
|
|
|
|
|
#in_lutris=1
|
|
|
|
|
echo "lutris" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
12)
|
|
|
|
@ -134,17 +107,11 @@ for choice in $choices; do
|
|
|
|
|
echo "minigalaxy" >>"$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
20)
|
|
|
|
|
#in_krita=1
|
|
|
|
|
echo "krita" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
21)
|
|
|
|
|
#in_gimp=1
|
|
|
|
|
echo "gimp" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
30)
|
|
|
|
|
#in_youtubedl=1
|
|
|
|
|
echo "youtube-dl" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
31)
|
|
|
|
|
printf '%s\n' 'yt-dlp' 'yt-dlp-drop-in' >>"$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
@ -152,29 +119,22 @@ for choice in $choices; do
|
|
|
|
|
echo "megatools-bin" >>"$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
40)
|
|
|
|
|
#in_handbrake=1
|
|
|
|
|
echo "handbrake" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
41)
|
|
|
|
|
# TODO
|
|
|
|
|
#in_audacity=1
|
|
|
|
|
#echo "audacity" >> "$setupdir/selectedpkgs.txt"
|
|
|
|
|
echo "The situation with audacity is unknown right now. Check for FOSS no-telemetry forks"
|
|
|
|
|
echo "audacity" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
42)
|
|
|
|
|
printf '%s\n' 'k3b' 'cdparanoia' 'cdrdao' 'cdrtools' 'dvd+rw-tools' 'emovix' 'transcode' 'vcdimager' >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
60)
|
|
|
|
|
#in_discord=1
|
|
|
|
|
#echo "discord" >> "$setupdir/selectedpkgs.txt"
|
|
|
|
|
echo "discord_arch_electron" >>"$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
echo "discord" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
#echo "discord_arch_electron" >> "$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
61)
|
|
|
|
|
#in_element=1
|
|
|
|
|
echo "element-desktop" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
62)
|
|
|
|
|
#in_telegram=1
|
|
|
|
|
echo "telegram-desktop" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
70)
|
|
|
|
@ -190,7 +150,8 @@ done
|
|
|
|
|
in_acpufreq=0
|
|
|
|
|
|
|
|
|
|
cmd=(dialog --separate-output --checklist "Performance and Battery life" 22 76 16)
|
|
|
|
|
options=(0 "auto-cpufreq" off)
|
|
|
|
|
options=(0 "auto-cpufreq" off
|
|
|
|
|
1 "corectrl" off)
|
|
|
|
|
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
|
|
|
|
|
clear
|
|
|
|
|
for choice in $choices
|
|
|
|
@ -202,7 +163,6 @@ do
|
|
|
|
|
# TODO Handle rest of installation
|
|
|
|
|
;;
|
|
|
|
|
1)
|
|
|
|
|
#in_corectrl=1
|
|
|
|
|
echo "corectrl" >> "$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
@ -210,7 +170,6 @@ done
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
in_doomemacs=0
|
|
|
|
|
#in_vscodium=0
|
|
|
|
|
in_podman=0
|
|
|
|
|
|
|
|
|
|
cmd=(dialog --separate-output --checklist "Devtools" 22 76 16)
|
|
|
|
@ -229,7 +188,6 @@ for choice in $choices; do
|
|
|
|
|
# TODO handle rest of installation
|
|
|
|
|
;;
|
|
|
|
|
1)
|
|
|
|
|
#in_vscodium=1
|
|
|
|
|
echo "vscodium-bin" >>"$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
10)
|
|
|
|
@ -238,9 +196,6 @@ for choice in $choices; do
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
#in_teams=0
|
|
|
|
|
#in_slack=0
|
|
|
|
|
|
|
|
|
|
cmd=(dialog --separate-output --checklist "School and work communication" 22 76 16)
|
|
|
|
|
options=(0 "Teams" off
|
|
|
|
|
1 "Slack" off
|
|
|
|
@ -250,11 +205,9 @@ clear
|
|
|
|
|
for choice in $choices; do
|
|
|
|
|
case $choice in
|
|
|
|
|
0)
|
|
|
|
|
#in_teams=1
|
|
|
|
|
echo "teams" >>"$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
1)
|
|
|
|
|
#in_slack=1
|
|
|
|
|
#echo "slack-desktop" >> "$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
echo "slack-electron" >>"$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
@ -264,8 +217,6 @@ for choice in $choices; do
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
#in_pkgstats=0
|
|
|
|
|
|
|
|
|
|
cmd=(dialog --separate-output --checklist "Report installed packages?" 22 76 16)
|
|
|
|
|
options=(0 "pkgstats" off)
|
|
|
|
|
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
|
|
|
|
@ -273,12 +224,12 @@ clear
|
|
|
|
|
for choice in $choices; do
|
|
|
|
|
case $choice in
|
|
|
|
|
0)
|
|
|
|
|
#in_pkgstats=1
|
|
|
|
|
echo "pkgstats" >>"$setupdir/selectedpkgs.txt"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
# Packages installed on different systems
|
|
|
|
|
in_arco_pc=0
|
|
|
|
|
in_arco_hp=0
|
|
|
|
@ -298,67 +249,65 @@ for choice in $choices; do
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
#uninstalling unused packages
|
|
|
|
|
echo Uninstalling unused packages
|
|
|
|
|
sudo pacman -Rns - <"$setupdir/packages/uninstall.txt"
|
|
|
|
|
# || true to pass set -e (error when encountering packages not installed)
|
|
|
|
|
sudo pacman -Rns --noconfirm - <"$setupdir/packages/uninstall.txt" 2>/dev/null || true
|
|
|
|
|
echo Uninstalled unused packages
|
|
|
|
|
|
|
|
|
|
# find all repos
|
|
|
|
|
sudo pacman -Sy
|
|
|
|
|
|
|
|
|
|
#update stuff
|
|
|
|
|
echo Updating packages
|
|
|
|
|
sudo pacman -Syu
|
|
|
|
|
echo Updated packages
|
|
|
|
|
|
|
|
|
|
#pacman programs
|
|
|
|
|
echo Installing default pacman programs
|
|
|
|
|
sudo pacman -S --needed - <"$setupdir/packages/officialpkgs.txt"
|
|
|
|
|
sudo pacman -S --needed - <"$setupdir/packages/officialpkgs.txt" 2>/dev/null
|
|
|
|
|
# TODO for jack, use pipewire-jack (2)
|
|
|
|
|
# TODO for pipewire-session-manager, use wireplumber (2)
|
|
|
|
|
# TODO for phonon-qt5-backend, use phonon-qt5-gstreamer (1)
|
|
|
|
|
echo Installed official programs
|
|
|
|
|
|
|
|
|
|
# pip
|
|
|
|
|
#echo Installing python programs
|
|
|
|
|
# TODO AUR package exists
|
|
|
|
|
#pip install --user autotrash
|
|
|
|
|
#echo Installed python programs
|
|
|
|
|
|
|
|
|
|
# REVIEW Patched neofetch version to remove Color codes
|
|
|
|
|
#git clone https://github.com/RealStickman/neofetch
|
|
|
|
|
#cd neofetch
|
|
|
|
|
#sudo make install
|
|
|
|
|
#cd ..
|
|
|
|
|
#rm -rf neofetch
|
|
|
|
|
|
|
|
|
|
# install paru-bin with yay, or download paru from github
|
|
|
|
|
if [[ $(pacman -Q | grep yay) ]] && [[ ! $(pacman -Q | grep paru) ]]; then
|
|
|
|
|
echo "Installing paru"
|
|
|
|
|
yay -S paru-bin
|
|
|
|
|
elif [[ ! $(pacman -Q | grep yay) ]] && [[ ! $(pacman -Q | grep paru) ]]; then
|
|
|
|
|
echo "Installing paru from git"
|
|
|
|
|
# install paru-bin if not already present
|
|
|
|
|
if [[ ! $(pacman -Q | grep paru-bin) ]]; then
|
|
|
|
|
echo "Installing paru-bin"
|
|
|
|
|
git clone https://aur.archlinux.org/paru-bin.git
|
|
|
|
|
cd paru-bin
|
|
|
|
|
makepkg -si
|
|
|
|
|
makepkg -si --noconfirm
|
|
|
|
|
cd ..
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# audio
|
|
|
|
|
echo Installing audio programs
|
|
|
|
|
paru -S --needed - <"$setupdir/packages/audiopkgs.txt"
|
|
|
|
|
paru -S --needed --noconfirm - <"$setupdir/packages/audiopkgs.txt" 2>/dev/null
|
|
|
|
|
echo Installed audio programs
|
|
|
|
|
|
|
|
|
|
#AUR
|
|
|
|
|
echo Installing default AUR programs
|
|
|
|
|
paru -S --needed - <"$setupdir/packages/aurpkgs.txt"
|
|
|
|
|
paru -S --needed --noconfirm - <"$setupdir/packages/aurpkgs.txt" 2>/dev/null
|
|
|
|
|
# TODO for btrfsmaintenance, use btrfsmaintenance (1)
|
|
|
|
|
# TODO for jellyfin-media-player, use jellyfin-media-player (1)
|
|
|
|
|
# TODO for java-environment, use jdk-openjdk (1)
|
|
|
|
|
# TODO for cargo, use rust (1)
|
|
|
|
|
# TODO for ttf-iosevka, use ttf-iosevka (1)
|
|
|
|
|
# TODO for ttf-ms-fonts, use ttf-ms-fonts (1)
|
|
|
|
|
# TODO for ttf-vista-fonts, use ttf-vista-fonts (1)
|
|
|
|
|
# TODO for wps-office, use wps-office (1)
|
|
|
|
|
# TODO for ffmpeg-normalize, use ffmpeg-normalize (1)
|
|
|
|
|
# TODO for nohang, use nohang (1)
|
|
|
|
|
echo Installed AUR programs
|
|
|
|
|
|
|
|
|
|
# theming
|
|
|
|
|
echo Installing themes and icons
|
|
|
|
|
paru -S --needed - <"$setupdir/packages/theme-packages.txt"
|
|
|
|
|
paru -S --needed --noconfirm - <"$setupdir/packages/theme-packages.txt"
|
|
|
|
|
echo Installed themes and icons
|
|
|
|
|
|
|
|
|
|
#install wine
|
|
|
|
|
echo Installing wine
|
|
|
|
|
sudo pacman -S --needed - <"$setupdir/packages/winepkgs.txt"
|
|
|
|
|
sudo pacman -S --needed --noconfirm - <"$setupdir/packages/winepkgs.txt"
|
|
|
|
|
echo Installed wine
|
|
|
|
|
|
|
|
|
|
###################
|
|
|
|
@ -367,255 +316,18 @@ echo Installed wine
|
|
|
|
|
echo Installing selected programs
|
|
|
|
|
|
|
|
|
|
# install selected packages
|
|
|
|
|
if [ -f "$setupdir/selectedpkgs.txt" ]; then
|
|
|
|
|
echo Installing from official repository
|
|
|
|
|
sudo pacman -S --needed - <"$setupdir/selectedpkgs.txt"
|
|
|
|
|
# NOTE || true to continue if no packages have been selected
|
|
|
|
|
sudo pacman -S --needed - <"$setupdir/selectedpkgs.txt" || true
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# install selected aur packages
|
|
|
|
|
if [ -f "$setupdir/aurselectedpkgs.txt" ]; then
|
|
|
|
|
echo Installing from AUR
|
|
|
|
|
paru -S --needed - <"$setupdir/aurselectedpkgs.txt"
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_vmware15 -eq 1 ]; then
|
|
|
|
|
echo "Installing VMWare Workstation 15"
|
|
|
|
|
paru -S --needed vmware-workstation15
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping VMWare Workstation 15"
|
|
|
|
|
# NOTE || true to continue if no packages have been selected
|
|
|
|
|
paru -S --needed - <"$setupdir/aurselectedpkgs.txt" || true
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
#DEs & WMs
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_xfce -eq 1 ]; then
|
|
|
|
|
echo "Installing xfce"
|
|
|
|
|
sudo pacman -S --needed xfce4
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping xfce"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_i3gaps -eq 1 ]; then
|
|
|
|
|
echo "Installing i3-gaps"
|
|
|
|
|
sudo pacman -S --needed i3-gaps
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping i3-gaps"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
#browsers
|
|
|
|
|
if [ $in_firefox -eq 1 ]; then
|
|
|
|
|
echo "Installing Firefox"
|
|
|
|
|
sudo pacman -S --needed firefox
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Firefox"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_chromium -eq 1 ]; then
|
|
|
|
|
echo "Installing Chromium"
|
|
|
|
|
sudo pacman -S --needed chromium
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Chromium"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_netsurf -eq 1 ]; then
|
|
|
|
|
echo "Installing Netsurf"
|
|
|
|
|
sudo pacman -S --needed netsurf
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Netsurf"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_icecat -eq 1 ]; then
|
|
|
|
|
echo "Installing Icecat"
|
|
|
|
|
paru -S --needed icecat-bin
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Icecat"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_tor -eq 1 ]; then
|
|
|
|
|
echo "Installing Tor"
|
|
|
|
|
sudo pacman -S --needed torbrowser-launcher
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Tor"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
#other programs
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_virtmanager -eq 1 ]; then
|
|
|
|
|
echo "Installing VirtManager"
|
|
|
|
|
sudo pacman -S --needed qemu virt-manager
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping VirtManager"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_steam -eq 1 ]; then
|
|
|
|
|
echo "Installing Steam"
|
|
|
|
|
sudo pacman -S --needed steam steam-native-runtime
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Steam"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_lutris -eq 1 ]; then
|
|
|
|
|
echo "Installing Lutris"
|
|
|
|
|
sudo pacman -S --needed lutris
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Lutris"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_blender -eq 1 ]; then
|
|
|
|
|
echo "Installing Blender"
|
|
|
|
|
sudo pacman -S --needed blender
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Blender"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_krita -eq 1 ]; then
|
|
|
|
|
echo "Installing Krita"
|
|
|
|
|
sudo pacman -S --needed krita
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Krita"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_youtubedl -eq 1 ]; then
|
|
|
|
|
echo "Installing Youtube-dl"
|
|
|
|
|
sudo pacman -S --needed youtube-dl
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Youtube-dl"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_discord -eq 1 ]; then
|
|
|
|
|
echo "Installing Discord"
|
|
|
|
|
#sudo pacman -S --needed discord
|
|
|
|
|
paru -S discord_arch_electron
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Discord"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_handbrake -eq 1 ]; then
|
|
|
|
|
echo "Installing Handbrake"
|
|
|
|
|
sudo pacman -S --needed handbrake
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Handbrake"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_gimp -eq 1 ]; then
|
|
|
|
|
echo "Installing Gimp"
|
|
|
|
|
sudo pacman -S --needed gimp
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Gimp"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_audacity -eq 1 ]; then
|
|
|
|
|
echo "Installing Audacity"
|
|
|
|
|
sudo pacman -S --needed audacity
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Audacity"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_mangohud -eq 1 ]; then
|
|
|
|
|
echo "Installing MangoHud"
|
|
|
|
|
git clone --recurse-submodules https://github.com/flightlessmango/MangoHud.git
|
|
|
|
|
./MangoHud/build.sh install
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping MangoHud"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_liferea -eq 1 ]; then
|
|
|
|
|
echo "Installing Liferea"
|
|
|
|
|
paru -S --needed liferea
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Liferea"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_fractal -eq 1 ]; then
|
|
|
|
|
echo "Installing Fractal"
|
|
|
|
|
sudo pacman -S --needed fractal
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Fractal"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_bettergram -eq 1 ]; then
|
|
|
|
|
echo "Installing Bettergram"
|
|
|
|
|
paru -S --needed bettergram
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Bettergram"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_waifu2x -eq 1 ]; then
|
|
|
|
|
echo "Installing Waifu2x"
|
|
|
|
|
paru -S --needed waifu2x-ncnn-vulkan
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Waifu2x"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_telegram -eq 1 ]; then
|
|
|
|
|
echo "Installing Telegram"
|
|
|
|
|
sudo pacman -S --needed telegram-desktop
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Telegram"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_element -eq 1 ]; then
|
|
|
|
|
echo "Installing Element"
|
|
|
|
|
sudo pacman -S --needed element-desktop
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping Element"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
#performance and battery life
|
|
|
|
|
if [ $in_acpufreq -eq 1 ]; then
|
|
|
|
|
echo "Installing auto-cpufreq"
|
|
|
|
|
paru -S --needed auto-cpufreq-git
|
|
|
|
|
sudo auto-cpufreq --install
|
|
|
|
|
sudo systemctl start auto-cpufreq
|
|
|
|
|
sudo systemctl enable auto-cpufreq
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping auto-cpufreq"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
#devtools
|
|
|
|
|
if [ $in_doomemacs -eq 1 ]; then
|
|
|
|
@ -626,19 +338,8 @@ if [ $in_doomemacs -eq 1 ]; then
|
|
|
|
|
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
|
|
|
|
|
~/.emacs.d/bin/doom install
|
|
|
|
|
export PATH="$PATH":$HOME/.emacs.d/bin
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping doom-emacs"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_vscodium -eq 1 ]; then
|
|
|
|
|
echo "Installing vscodium"
|
|
|
|
|
paru -S --needed vscodium-bin
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping vscodium"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
if [ $in_podman -eq 1 ]; then
|
|
|
|
|
echo "Installing podman"
|
|
|
|
|
sudo pacman -S --needed podman podman-dnsname fuse-overlayfs buildah
|
|
|
|
@ -646,51 +347,6 @@ if [ $in_podman -eq 1 ]; then
|
|
|
|
|
sudo usermod --add-subuids 100000-165536 --add-subgids 100000-165536 "$USER"
|
|
|
|
|
sudo groupadd -f podman
|
|
|
|
|
sudo usermod -aG podman "$USER"
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping podman"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
#other social stuff
|
|
|
|
|
if [ $in_teams -eq 1 ]; then
|
|
|
|
|
echo "Installing teams"
|
|
|
|
|
paru -S --needed teams
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping teams"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [ $in_slack -eq 1 ]; then
|
|
|
|
|
echo "Installing slack"
|
|
|
|
|
#paru -S --needed slack-desktop
|
|
|
|
|
paru -s --needed slack-electron
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping slack"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
#stats
|
|
|
|
|
if [ $in_pkgstats -eq 1 ]; then
|
|
|
|
|
echo "Installing pkgstats"
|
|
|
|
|
sudo pacman -S --needed pkgstats
|
|
|
|
|
else
|
|
|
|
|
echo "Skipping pkgstats"
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
# other system configs
|
|
|
|
|
# arco pc
|
|
|
|
|
if [ $in_arco_pc -eq 1 ]; then
|
|
|
|
|
echo "Installing arco pc packages"
|
|
|
|
|
paru -S --needed - <"$setupdir/packages/lupusregina-packages.txt"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# arco hp
|
|
|
|
|
if [ $in_arco_hp -eq 1 ]; then
|
|
|
|
|
echo "Installing arch hp packages"
|
|
|
|
|
paru -S --needed - <"$setupdir/packages/arch-hp-packages.txt"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# install nix
|
|
|
|
@ -699,13 +355,22 @@ curl -sSf -L https://install.determinate.systems/nix | sh -s -- install
|
|
|
|
|
##############################
|
|
|
|
|
##### Configuration #####
|
|
|
|
|
##############################
|
|
|
|
|
echo Configuring packages
|
|
|
|
|
|
|
|
|
|
#change shell
|
|
|
|
|
chsh -s /usr/bin/fish "$USER"
|
|
|
|
|
|
|
|
|
|
#enable vnstat
|
|
|
|
|
sudo systemctl enable vnstat
|
|
|
|
|
sudo systemctl start vnstat
|
|
|
|
|
sudo systemctl enable --now vnstat
|
|
|
|
|
|
|
|
|
|
# NOTE unsets set -e temporarily
|
|
|
|
|
set +e
|
|
|
|
|
# setup autotrash
|
|
|
|
|
# NOTE without this directory autotrash.service fails to run
|
|
|
|
|
mkdir -p "$HOME/.local/share/Trash/info"
|
|
|
|
|
autotrash -d 5 --install
|
|
|
|
|
systemctl --user enable autotrash.timer
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
# setup autotrash
|
|
|
|
|
autotrash -td 5 --install
|
|
|
|
@ -713,50 +378,59 @@ systemctl --user start autotrash
|
|
|
|
|
systemctl --user enable autotrash.timer
|
|
|
|
|
|
|
|
|
|
# enable lockscreen for systemd
|
|
|
|
|
sudo systemctl enable betterlockscreen@$USER
|
|
|
|
|
#sudo systemctl enable betterlockscreen@$USER
|
|
|
|
|
|
|
|
|
|
# enable firewall
|
|
|
|
|
echo "Enabling Firewall"
|
|
|
|
|
#sudo ufw enable
|
|
|
|
|
#sudo systemctl enable ufw
|
|
|
|
|
#sudo systemctl start ufw
|
|
|
|
|
sudo systemctl enable --now firewalld
|
|
|
|
|
sudo firewall-cmd --zone=public --permanent --remove-service=ssh
|
|
|
|
|
# || true because firewalld doesn't work without a reboot
|
|
|
|
|
sudo firewall-cmd --zone=public --permanent --remove-service=ssh || true
|
|
|
|
|
|
|
|
|
|
# enable lightdm
|
|
|
|
|
sudo systemctl enable lightdm
|
|
|
|
|
# enable greetd
|
|
|
|
|
sudo systemctl enable greetd
|
|
|
|
|
|
|
|
|
|
# regenerate locale
|
|
|
|
|
# Fixes rofi not launching
|
|
|
|
|
sudo locale-gen
|
|
|
|
|
#sudo locale-gen
|
|
|
|
|
|
|
|
|
|
: '
|
|
|
|
|
if [[ $(pacman -Q | grep sway) ]]; then
|
|
|
|
|
sudo systemctl enable --now seatd.service
|
|
|
|
|
sudo gpasswd -a "$USER" seat 1>/dev/null
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
# update fonts cache
|
|
|
|
|
fc-cache -f
|
|
|
|
|
|
|
|
|
|
# download grub theme
|
|
|
|
|
git clone https://github.com/xenlism/Grub-themes.git
|
|
|
|
|
cd "Grub-themes/xenlism-grub-arch-1080p/"
|
|
|
|
|
sudo bash install.sh
|
|
|
|
|
#git clone https://github.com/xenlism/Grub-themes.git
|
|
|
|
|
#cd "Grub-themes/xenlism-grub-arch-1080p/"
|
|
|
|
|
#sudo bash install.sh
|
|
|
|
|
# go back
|
|
|
|
|
cd ../../
|
|
|
|
|
#cd ../../
|
|
|
|
|
|
|
|
|
|
#Changes to home folder automatically now, no need to be extra careful anymore.
|
|
|
|
|
# TODO make config script independent of download location
|
|
|
|
|
cd "$HOME"
|
|
|
|
|
# NOTE remove directory if it exists already and redownload
|
|
|
|
|
rm -rf config
|
|
|
|
|
git clone https://gitlab.com/RealStickman-arch/config
|
|
|
|
|
echo Finished downloading config
|
|
|
|
|
|
|
|
|
|
# Download git repos
|
|
|
|
|
bash ~/config/scripts/sc-git-pull
|
|
|
|
|
|
|
|
|
|
#cleanup
|
|
|
|
|
rm -rf ~/setup
|
|
|
|
|
rm -rf "$setupdir"
|
|
|
|
|
echo Removed setup files
|
|
|
|
|
|
|
|
|
|
#downloading config
|
|
|
|
|
echo Setting config
|
|
|
|
|
# TODO temporary
|
|
|
|
|
cd config
|
|
|
|
|
git checkout wayland
|
|
|
|
|
bash ~/config/install.sh
|
|
|
|
|
|
|
|
|
|
if [[ $(pacman -Q pkgstats 2>/dev/null >/dev/null) ]]; then
|
|
|
|
|
pkgstats
|
|
|
|
|
sudo systemctl enable --now pkgstats.timer
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo Finished everything
|
|
|
|
|