Updated script
This commit is contained in:
parent
b01fa47c58
commit
6ed7da5fa3
660
update_arch.sh
660
update_arch.sh
@ -11,6 +11,45 @@ fi
|
||||
|
||||
HOSTNAME=$(hostname | awk '{ print toupper($0) }')
|
||||
|
||||
GAME="no"
|
||||
VR="no"
|
||||
DESKTOP="no"
|
||||
CODE="no"
|
||||
NVIDIA_GPU="no"
|
||||
NVIDIA_1080_GPU="no"
|
||||
TERMINAL="no"
|
||||
HYPERLAND="no"
|
||||
KDE="no"
|
||||
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
DESKTOP="yes"
|
||||
CODE="yes"
|
||||
TERMINAL="yes"
|
||||
HYPERLAND="yes"
|
||||
fi
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
GAME="yes"
|
||||
VR="yes"
|
||||
DESKTOP="yes"
|
||||
NVIDIA_GPU="yes"
|
||||
TERMINAL="yes"
|
||||
HYPERLAND="yes"
|
||||
fi
|
||||
if [ "$HOSTNAME" == "LABBOX" ]; then
|
||||
DESKTOP="yes"
|
||||
CODE="yes"
|
||||
TERMINAL="yes"
|
||||
HYPERLAND="yes"
|
||||
fi
|
||||
if [ "$HOSTNAME" == "SIMONBOX" ]; then
|
||||
GAME="yes"
|
||||
VR="yes"
|
||||
DESKTOP="yes"
|
||||
NVIDIA_1080_GPU="yes"
|
||||
TERMINAL="yes"
|
||||
KDE="yes"
|
||||
fi
|
||||
|
||||
echo -e ' \e[H\e[2J
|
||||
\e[0;34m.
|
||||
\e[0;34m/ \
|
||||
@ -22,8 +61,38 @@ echo -e ' \e[H\e[2J
|
||||
\e[1;34m/.^ ^.\ \e[0;37mTM
|
||||
|
||||
|
||||
\e[1;32mCMtec '$HOSTNAME' install/Update script\e[0;37m
|
||||
\e[1;32mCMtec '$HOSTNAME' install/Update script.\e[0;37m
|
||||
'
|
||||
printf -- ' \033[37m'
|
||||
if [ "$GAME" == "yes" ]; then
|
||||
printf -- 'GAME, '
|
||||
fi
|
||||
if [ "$VR" == "yes" ]; then
|
||||
printf -- 'VR, '
|
||||
fi
|
||||
if [ "$DESKTOP" == "yes" ]; then
|
||||
printf -- 'DESKTOP, '
|
||||
fi
|
||||
if [ "$CODE" == "yes" ]; then
|
||||
printf -- 'CODE, '
|
||||
fi
|
||||
if [ "$TERMINAL" == "yes" ]; then
|
||||
printf -- 'TERMINAL, '
|
||||
fi
|
||||
if [ "$HYPERLAND" == "yes" ]; then
|
||||
printf -- 'HYPERLAND, '
|
||||
fi
|
||||
if [ "$KDE" == "yes" ]; then
|
||||
printf -- 'KDE, '
|
||||
fi
|
||||
if [ "$NVIDIA_GPU" == "yes" ]; then
|
||||
printf -- 'NVIDIA_GPU, '
|
||||
fi
|
||||
if [ "$NVIDIA_1080_GPU" == "yes" ]; then
|
||||
printf -- 'NVIDIA_1080_GPU, '
|
||||
fi
|
||||
printf -- '\n\n\033[37m'
|
||||
|
||||
sleep 1
|
||||
|
||||
# Create backup/snapshot
|
||||
@ -39,7 +108,7 @@ if pacman -Qs timeshift >/dev/null; then
|
||||
fi
|
||||
|
||||
# Enable multilib (if applicable)
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
if [ "$GAME" == "yes" ]; then
|
||||
if ! grep -q "^\[multilib\]" /etc/pacman.conf; then
|
||||
printf -- '\033[33m Enabling multilib\n\033[37m'
|
||||
sudo tee -a /etc/pacman.conf >/dev/null <<EOT
|
||||
@ -53,20 +122,28 @@ fi
|
||||
# Update all pacman packages
|
||||
printf -- '\033[33m Updating pacman packages\n\033[37m'
|
||||
sudo pacman -Suyy --noconfirm
|
||||
sudo pacman --noconfirm --needed -S base-devel linux-headers git
|
||||
ln -sf ~/linuxbox/gitconfig ~/.gitconfig
|
||||
|
||||
# Install drivers (if applicable)
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
if [ "$NVIDIA_GPU" == "yes" ] || [ "$NVIDIA_1080_GPU" == "yes" ]; then
|
||||
# Install nvidia drivers
|
||||
printf -- '\033[33m Installing NVIDIA drivers\n\033[37m'
|
||||
if ! pacman -Qs nvidia-open-dkms >/dev/null; then
|
||||
NEW_KERNEL="yes"
|
||||
else
|
||||
if pacman -Qs nvidia-open-dkms >/dev/null; then
|
||||
NEW_KERNEL="no"
|
||||
elif pacman -Qs nvidia-dkms >/dev/null; then
|
||||
NEW_KERNEL="no"
|
||||
else
|
||||
NEW_KERNEL="yes"
|
||||
fi
|
||||
sudo pacman --noconfirm --needed -S base-devel linux-headers git
|
||||
sudo pacman --noconfirm --needed -S nvidia-open-dkms nvidia-utils lib32-nvidia-utils nvidia-settings opencl-nvidia cuda
|
||||
if [ "$NVIDIA_GPU" == "yes" ]; then
|
||||
sudo pacman --noconfirm --needed -S nvidia-open-dkms
|
||||
elif [ "$NVIDIA_1080_GPU" == "yes" ]; then
|
||||
sudo pacman --noconfirm --needed -S nvidia-dkms
|
||||
fi
|
||||
sudo pacman --noconfirm --needed -S nvidia-utils lib32-nvidia-utils nvidia-settings opencl-nvidia cuda
|
||||
if [ "$NEW_KERNEL" == "yes" ]; then
|
||||
printf -- '\033[32m \n\n***** Nvidia driver updated kernel! Please reboot and run update once more! *****\n\n\033[37m'
|
||||
printf -- '\033[33m \n\n***** Nvidia driver updated kernel! Please reboot and run update once more! *****\n\n\033[37m'
|
||||
exit
|
||||
fi
|
||||
else
|
||||
@ -75,16 +152,11 @@ else
|
||||
sudo pacman --noconfirm --needed -S mesa intel-media-driver
|
||||
fi
|
||||
|
||||
# Symlink bashrc
|
||||
printf -- '\033[33m Symlinking bashrc config\n\033[37m'
|
||||
ln -sf ~/linuxbox/bashrc ~/.bashrc
|
||||
|
||||
# Update all AUR packages
|
||||
printf -- '\033[33m Updating AUR packages\n\033[37m'
|
||||
if pacman -Qs yay >/dev/null; then
|
||||
yay --noconfirm --aur
|
||||
else
|
||||
sudo pacman -S --needed --noconfirm git base-devel
|
||||
if [ -d ~/yay-bin ]; then rm -rf ~/yay-bin; fi
|
||||
cd ~
|
||||
git clone https://aur.archlinux.org/yay-bin.git
|
||||
@ -105,439 +177,225 @@ fi
|
||||
|
||||
# Install initial system packages
|
||||
printf -- '\033[33m Installing initial system packages\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S base-devel cmake gawk wget gettext unzip curl inetutils
|
||||
|
||||
# Setup locals
|
||||
printf -- '\033[33m Setup locals\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S timeshift cmake gawk wget gettext unzip curl inetutils python python-pip python-pipx python-pipenv python-pynvim rustup
|
||||
rustup update stable
|
||||
rustup default stable
|
||||
ln -sf ~/linuxbox/bashrc ~/.bashrc
|
||||
mkdir -p ~/.local/bin
|
||||
ln -sf ~/linuxbox/update_wrapper.sh ~/.local/bin/update
|
||||
sudo localectl set-locale LANG=en_US.UTF-8
|
||||
|
||||
# Install git
|
||||
printf -- '\033[33m Installing git\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S git
|
||||
ln -sf ~/linuxbox/gitconfig ~/.gitconfig
|
||||
|
||||
# Install hyprland
|
||||
printf -- '\033[33m Installing hyprland\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S usbutils plymouth dracut dunst hypridle hyprland hyprlock xdg-desktop-portal-hyprland polkit-gnome xorg-xhost gnome-keyring qt5ct qt6ct gnome-themes-extra qt5-wayland qt6-wayland lxappearance
|
||||
if [ "$HYPERLAND" == "yes" ]; then
|
||||
printf -- '\033[33m Installing hyprland\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S usbutils plymouth dracut dunst hypridle hyprland hyprlock xdg-desktop-portal-hyprland polkit-gnome xorg-xhost gnome-keyring qt5ct qt6ct gnome-themes-extra qt5-wayland qt6-wayland lxappearance
|
||||
|
||||
yay --noconfirm -S --needed --aur adwaita-qt5-git
|
||||
yay --noconfirm -S --needed --aur adwaita-qt6-git
|
||||
yay --noconfirm -S --needed --aur hyprshot
|
||||
yay --noconfirm -S --needed --aur adwaita-qt5-git
|
||||
yay --noconfirm -S --needed --aur adwaita-qt6-git
|
||||
yay --noconfirm -S --needed --aur hyprshot
|
||||
|
||||
mkdir -p ~/.local/bin
|
||||
mkdir -p ~/.config/hypr
|
||||
mkdir -p ~/.config/gtk-3.0
|
||||
mkdir -p ~/.config/qt5ct
|
||||
mkdir -p ~/.config/qt6ct
|
||||
mkdir -p ~/.config/dunst
|
||||
mkdir -p ~/.local/bin
|
||||
mkdir -p ~/.config/hypr
|
||||
mkdir -p ~/.config/gtk-3.0
|
||||
mkdir -p ~/.config/qt5ct
|
||||
mkdir -p ~/.config/qt6ct
|
||||
mkdir -p ~/.config/dunst
|
||||
|
||||
if [ -f ~/linuxbox/config/hypr/hyprland_$HOSTNAME.conf ]; then
|
||||
ln -sf ~/linuxbox/config/hypr/hyprland_$HOSTNAME.conf ~/.config/hypr/hyprland.conf
|
||||
else
|
||||
ln -sf ~/linuxbox/config/hypr/hyprland_CMBOX.conf ~/.config/hypr/hyprland.conf
|
||||
fi
|
||||
|
||||
ln -sf ~/linuxbox/wrappedhl ~/.local/bin/wrappedhl
|
||||
ln -sf ~/linuxbox/config/hypr/hypridle.conf ~/.config/hypr/hypridle.conf
|
||||
ln -sf ~/linuxbox/config/gtk-3.0/settings.ini ~/.config/gtk-3.0/settings.ini
|
||||
ln -sf ~/linuxbox/config/qt5ct/qt5ct.conf ~/.config/qt5ct/qt5ct.conf
|
||||
ln -sf ~/linuxbox/config/qt6ct/qt6ct.conf ~/.config/qt6ct/qt6ct.conf
|
||||
ln -sf ~/linuxbox/config/dunst/dunstrc ~/.config/dunst/dunstrc
|
||||
|
||||
printf -- '\033[33m Installing waybar\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S waybar
|
||||
mkdir -p ~/.config/waybar
|
||||
ln -sf ~/linuxbox/config/waybar/config ~/.config/waybar/config
|
||||
ln -sf ~/linuxbox/config/waybar/style.css ~/.config/waybar/style.css
|
||||
|
||||
printf -- '\033[33m Installing autologin\n\033[37m'
|
||||
yay --noconfirm -S --needed --aur pam_autologin
|
||||
sudo /bin/cp -rf ~/linuxbox/login /etc/pam.d/login
|
||||
sudo /bin/cp -rf ~/linuxbox/getty@.service /usr/lib/systemd/system/getty@.service
|
||||
sudo touch /etc/security/autologin.conf
|
||||
|
||||
printf -- '\033[33m Installing udisks2\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S udisks2 udiskie
|
||||
echo 'ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"' | sudo tee /lib/udev/rules.d/99-udisks2.rules
|
||||
echo 'D /media 0755 root root 0 -' | sudo tee /etc/tmpfiles.d/media.conf
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/udisksctl mount -b /dev/sda1" | sudo tee /etc/sudoers.d/udisksctl
|
||||
fi
|
||||
|
||||
printf -- '\033[33m Installing Audio\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S pipewire pipewire-pulse pipewire-alsa pavucontrol helvum
|
||||
mkdir -p ~/.config/pipewire
|
||||
ln -sf ~/linuxbox/config/pipewire/pipewire.conf ~/.config/pipewire/pipewire.conf
|
||||
|
||||
if [ -f ~/linuxbox/config/hypr/hyprland_$HOSTNAME.conf ]; then
|
||||
ln -sf ~/linuxbox/config/hypr/hyprland_$HOSTNAME.conf ~/.config/hypr/hyprland.conf
|
||||
else
|
||||
ln -sf ~/linuxbox/config/hypr/hyprland_CMBOX.conf ~/.config/hypr/hyprland.conf
|
||||
fi
|
||||
|
||||
ln -sf ~/linuxbox/wrappedhl ~/.local/bin/wrappedhl
|
||||
ln -sf ~/linuxbox/config/hypr/hypridle.conf ~/.config/hypr/hypridle.conf
|
||||
ln -sf ~/linuxbox/config/gtk-3.0/settings.ini ~/.config/gtk-3.0/settings.ini
|
||||
ln -sf ~/linuxbox/config/qt5ct/qt5ct.conf ~/.config/qt5ct/qt5ct.conf
|
||||
ln -sf ~/linuxbox/config/qt6ct/qt6ct.conf ~/.config/qt6ct/qt6ct.conf
|
||||
ln -sf ~/linuxbox/config/dunst/dunstrc ~/.config/dunst/dunstrc
|
||||
|
||||
# Install waybar
|
||||
printf -- '\033[33m Installing waybar\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S waybar
|
||||
mkdir -p ~/.config/waybar
|
||||
ln -sf ~/linuxbox/config/waybar/config ~/.config/waybar/config
|
||||
ln -sf ~/linuxbox/config/waybar/style.css ~/.config/waybar/style.css
|
||||
|
||||
# Install Audio
|
||||
printf -- '\033[33m Installing Audio\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S pipewire pipewire-pulse pipewire-alsa pavucontrol helvum
|
||||
mkdir -p ~/.config/pipewire
|
||||
ln -sf ~/linuxbox/config/pipewire/pipewire.conf ~/.config/pipewire/pipewire.conf
|
||||
|
||||
# Install networkmanager
|
||||
printf -- '\033[33m Installing networkmanager\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S network-manager-applet
|
||||
yay --noconfirm -S --needed --aur networkmanager-dmenu-git
|
||||
mkdir -p ~/.config/networkmanager-dmenu
|
||||
ln -sf ~/linuxbox/config/networkmanager-dmenu/config.ini ~/.config/networkmanager-dmenu/config.ini
|
||||
|
||||
# Install autologin
|
||||
printf -- '\033[33m Installing autologin\n\033[37m'
|
||||
yay --noconfirm -S --needed --aur pam_autologin
|
||||
sudo /bin/cp -rf ~/linuxbox/login /etc/pam.d/login
|
||||
sudo /bin/cp -rf ~/linuxbox/getty@.service /usr/lib/systemd/system/getty@.service
|
||||
sudo touch /etc/security/autologin.conf
|
||||
|
||||
# Install udisk
|
||||
printf -- '\033[33m Installing udisk\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S udisks2 udiskie
|
||||
echo 'ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"' | sudo tee /lib/udev/rules.d/99-udisks2.rules
|
||||
echo 'D /media 0755 root root 0 -' | sudo tee /etc/tmpfiles.d/media.conf
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/udisksctl mount -b /dev/sda1" | sudo tee /etc/sudoers.d/udisksctl
|
||||
if [ "$KDE" == "yes" ]; then
|
||||
printf -- '\033[33m Installing KDE Plasma\n\033[37m'
|
||||
yay --noconfirm -S --needed --aur sddm-git
|
||||
sudo pacman --noconfirm --needed -S xorg-xwayland xorg-xlsclients qt5-wayland glfw-wayland
|
||||
sudo pacman --noconfirm --needed -S plasma kde-applications
|
||||
sudo pacman --noconfirm --needed -S plasma-wayland-session
|
||||
sudo pacman --noconfirm --needed -S pipewire pipewire-pulse pipewire-alsa pavucontrol helvum
|
||||
sudo systemctl enable sddm
|
||||
sudo systemctl enable NetworkManager
|
||||
fi
|
||||
# Install btop
|
||||
printf -- '\033[33m Installing btop\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S btop
|
||||
|
||||
# Install ranger
|
||||
printf -- '\033[33m Installing ranger\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S ranger
|
||||
# Install terminal utility
|
||||
if [ "$TERMINAL" == "yes" ]; then
|
||||
printf -- '\033[33m Installing terminal utilities\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S kitty btop ranger tmux fd neovim
|
||||
mkdir -p ~/.config/kitty
|
||||
ln -sf ~/linuxbox/config/kitty/kitty.conf ~/.config/kitty/kitty.conf
|
||||
ln -sf ~/linuxbox/tmux.conf ~/.tmux.conf
|
||||
mkdir -p ~/.config/nvim
|
||||
ln -sf ~/linuxbox/config/nvim/init.lua ~/.config/nvim/init.lua
|
||||
ln -sf ~/linuxbox/clang-format ~/.clang-format
|
||||
ln -sf ~/linuxbox/luacheckrc ~/.luacheckrc
|
||||
cargo install tree-sitter-cli ripgrep eza
|
||||
cargo install zoxide --locked
|
||||
cargo install starship --locked
|
||||
ln -sf ~/linuxbox/config/starship.toml ~/.config/starship.toml
|
||||
|
||||
# Install kitty
|
||||
printf -- '\033[33m Installing kitty\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S kitty
|
||||
mkdir -p ~/.config/kitty
|
||||
ln -sf ~/linuxbox/config/kitty/kitty.conf ~/.config/kitty/kitty.conf
|
||||
printf -- '\033[33m Installing fzf\n\033[37m'
|
||||
rm -rf ~/.fzf
|
||||
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
|
||||
~/.fzf/install --all
|
||||
source ~/.fzf.bash
|
||||
|
||||
# Install tmux
|
||||
printf -- '\033[33m Installing tmux\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S tmux
|
||||
ln -sf ~/linuxbox/tmux.conf ~/.tmux.conf
|
||||
printf -- '\033[33m Installing fzfmenu\n\033[37m'
|
||||
mkdir -p ~/.local/bin
|
||||
ln -sf ~/linuxbox/fzfmenu.sh ~/.local/bin/fzfmenu
|
||||
|
||||
# Install python
|
||||
printf -- '\033[33m Installing python\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S python python-pip python-pipx python-pipenv python-pynvim
|
||||
printf -- '\033[33m Installing lazygit\n\033[37m'
|
||||
cd ~
|
||||
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
|
||||
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
|
||||
tar xf lazygit.tar.gz lazygit
|
||||
sudo install lazygit /usr/local/bin
|
||||
rm ~/lazygit && rm ~/lazygit.tar.gz
|
||||
mkdir -p ~/.config/lazygit
|
||||
ln -sf ~/linuxbox/config/lazygit/config.yml ~/.config/lazygit/config.yml
|
||||
|
||||
# Install fzf
|
||||
printf -- '\033[33m Installing fzf\n\033[37m'
|
||||
rm -rf ~/.fzf
|
||||
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
|
||||
~/.fzf/install --all
|
||||
source ~/.fzf.bash
|
||||
printf -- '\033[33m Installing ble.sh\n\033[37m'
|
||||
if [ -d ~/ble.sh ]; then rm -rf ~/ble.sh; fi
|
||||
cd ~
|
||||
git clone --recursive --depth 1 --shallow-submodules https://github.com/akinomyoga/ble.sh.git
|
||||
make -C ble.sh install
|
||||
if [ -d ~/ble.sh ]; then rm -rf ~/ble.sh; fi
|
||||
ln -sf ~/linuxbox/blerc ~/.blerc
|
||||
fi
|
||||
|
||||
# Install fzfmenu
|
||||
printf -- '\033[33m Installing fzfmenu\n\033[37m'
|
||||
mkdir -p ~/.local/bin
|
||||
ln -sf ~/linuxbox/fzfmenu.sh ~/.local/bin/fzfmenu
|
||||
# Install code utilie
|
||||
if [ "$CODE" == "yes" ]; then
|
||||
printf -- '\033[33m Installing code utilities\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S code gdu ruby bottom go php luarocks composer jdk-openjdk julia nodejs npm platformio-core
|
||||
sudo npm install -g neovim
|
||||
|
||||
# # Install VirtualHere server
|
||||
# curl https://raw.githubusercontent.com/virtualhere/script/main/install_server | sudo sh
|
||||
printf -- '\033[33m Installing Rust embedded rp2040\n\033[37m'
|
||||
cd ~
|
||||
rustup target add thumbv6m-none-eabi
|
||||
cargo install elf2uf2-rs --locked
|
||||
cargo install probe-run
|
||||
cargo install flip-link
|
||||
mkdir -p ~/.local/bin
|
||||
ln -sf ~/linuxbox/pico-load.sh ~/.local/bin/pico-load
|
||||
|
||||
# Install VirtualHere client
|
||||
printf -- '\033[33m Installing VirtualHere client\n\033[37m'
|
||||
cd ~
|
||||
wget https://www.virtualhere.com/sites/default/files/usbclient/scripts/virtualhereclient.service
|
||||
wget https://www.virtualhere.com/sites/default/files/usbclient/vhclientx86_64
|
||||
wget https://www.virtualhere.com/sites/default/files/usbclient/vhuit64
|
||||
chmod +x ./vhclientx86_64
|
||||
chmod +x ./vhuit64
|
||||
sudo mv ./vhclientx86_64 /usr/sbin
|
||||
sudo mv ./vhuit64 /usr/sbin
|
||||
echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/vhclientx86_64" | sudo tee /etc/sudoers.d/$USER+vhclientx86_64
|
||||
echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/vhuit64" | sudo tee /etc/sudoers.d/$USER+vhuit64
|
||||
sudo mv virtualhereclient.service /etc/systemd/system/virtualhereclient.service
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable virtualhereclient.service
|
||||
sudo systemctl start virtualhereclient.service
|
||||
|
||||
# Install teensy udev rules (only for non docker system)
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing teensy udev rules\n\033[37m'
|
||||
if [ ! -f /.dockerenv ]; then
|
||||
printf -- '\033[33m Installing teensy udev rules\n\033[37m'
|
||||
sudo rm -f /tmp/00-teensy.rules /etc/udev/rules.d/00-teensy.rules /lib/udev/rules.d/00-teensy.rules
|
||||
sudo wget -O /tmp/00-teensy.rules https://www.pjrc.com/teensy/00-teensy.rules
|
||||
sudo install -o root -g root -m 0664 /tmp/00-teensy.rules /lib/udev/rules.d/00-teensy.rules
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install neovim
|
||||
printf -- '\033[33m Installing neovim\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S neovim
|
||||
mkdir -p ~/.config/nvim
|
||||
ln -sf ~/linuxbox/config/nvim/init.lua ~/.config/nvim/init.lua
|
||||
ln -sf ~/linuxbox/clang-format ~/.clang-format
|
||||
ln -sf ~/linuxbox/luacheckrc ~/.luacheckrc
|
||||
mkdir -p ~/.local/bin
|
||||
ln -sf ~/linuxbox/pico-load.sh ~/.local/bin/pico-load
|
||||
|
||||
# Install fd
|
||||
printf -- '\033[33m Installing fd\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S fd
|
||||
|
||||
# Install lazygit
|
||||
printf -- '\033[33m Installing lazygit\n\033[37m'
|
||||
cd ~
|
||||
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
|
||||
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
|
||||
tar xf lazygit.tar.gz lazygit
|
||||
sudo install lazygit /usr/local/bin
|
||||
rm ~/lazygit && rm ~/lazygit.tar.gz
|
||||
mkdir -p ~/.config/lazygit
|
||||
ln -sf ~/linuxbox/config/lazygit/config.yml ~/.config/lazygit/config.yml
|
||||
|
||||
# Install gdu
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing gdu\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S gdu
|
||||
fi
|
||||
|
||||
# Install ruby
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing ruby\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S ruby
|
||||
fi
|
||||
|
||||
# Install bottom
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing bottom\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S bottom
|
||||
fi
|
||||
|
||||
# Install go
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing go\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S go
|
||||
fi
|
||||
|
||||
# Install php
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing php\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S php
|
||||
fi
|
||||
|
||||
# Install luarocks
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing luarocks\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S luarocks
|
||||
fi
|
||||
|
||||
# Install composer
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing composer\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S composer
|
||||
fi
|
||||
|
||||
# Install java
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing java\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S jdk-openjdk
|
||||
fi
|
||||
|
||||
# Install julia
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing julia\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S julia
|
||||
fi
|
||||
|
||||
# Install node
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing node\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S nodejs npm
|
||||
fi
|
||||
|
||||
# Install neovim for node
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing neovim for node\n\033[37m'
|
||||
sudo npm install -g neovim
|
||||
fi
|
||||
|
||||
# Install ble.sh
|
||||
printf -- '\033[33m Installing ble.sh\n\033[37m'
|
||||
if [ -d ~/ble.sh ]; then rm -rf ~/ble.sh; fi
|
||||
cd ~
|
||||
git clone --recursive --depth 1 --shallow-submodules https://github.com/akinomyoga/ble.sh.git
|
||||
make -C ble.sh install
|
||||
if [ -d ~/ble.sh ]; then rm -rf ~/ble.sh; fi
|
||||
ln -sf ~/linuxbox/blerc ~/.blerc
|
||||
|
||||
# Install platformio
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing platformio\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S platformio-core
|
||||
fi
|
||||
|
||||
# Install rust
|
||||
printf -- '\033[33m Installing Rust\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S rustup
|
||||
rustup update stable
|
||||
rustup default stable
|
||||
|
||||
# Install rust embedded stuff
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing Rust embedded stuff\n\033[37m'
|
||||
printf -- '\033[33m Installing VirtualHere client\n\033[37m'
|
||||
cd ~
|
||||
rustup target add thumbv6m-none-eabi
|
||||
cargo install elf2uf2-rs --locked
|
||||
cargo install probe-run
|
||||
cargo install flip-link
|
||||
wget https://www.virtualhere.com/sites/default/files/usbclient/scripts/virtualhereclient.service
|
||||
wget https://www.virtualhere.com/sites/default/files/usbclient/vhclientx86_64
|
||||
wget https://www.virtualhere.com/sites/default/files/usbclient/vhuit64
|
||||
chmod +x ./vhclientx86_64
|
||||
chmod +x ./vhuit64
|
||||
sudo mv ./vhclientx86_64 /usr/sbin
|
||||
sudo mv ./vhuit64 /usr/sbin
|
||||
echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/vhclientx86_64" | sudo tee /etc/sudoers.d/$USER+vhclientx86_64
|
||||
echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/vhuit64" | sudo tee /etc/sudoers.d/$USER+vhuit64
|
||||
sudo mv virtualhereclient.service /etc/systemd/system/virtualhereclient.service
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable virtualhereclient.service
|
||||
sudo systemctl start virtualhereclient.service
|
||||
|
||||
fi
|
||||
|
||||
# Install tree sitter cli
|
||||
printf -- '\033[33m Installing tree sitter cli\n\033[37m'
|
||||
cd ~
|
||||
cargo install tree-sitter-cli
|
||||
|
||||
# Install ripgrep
|
||||
printf -- '\033[33m Installing ripgrep\n\033[37m'
|
||||
cargo install ripgrep
|
||||
|
||||
# Install eza
|
||||
printf -- '\033[33m Installing eza\n\033[37m'
|
||||
cargo install eza
|
||||
|
||||
# Install zoxide
|
||||
printf -- '\033[33m Installing zoxide\n\033[37m'
|
||||
cargo install zoxide --locked
|
||||
|
||||
# Install starship
|
||||
printf -- '\033[33m Installing starship\n\033[37m'
|
||||
cargo install starship --locked
|
||||
ln -sf ~/linuxbox/config/starship.toml ~/.config/starship.toml
|
||||
|
||||
# Install Discord (Equibop)
|
||||
printf -- '\033[33m Installing Discord (Equibop)\n\033[37m'
|
||||
flatpak install -y flathub io.github.equicord.equibop
|
||||
|
||||
# Install XAir
|
||||
printf -- '\033[33m Installing XAir\n\033[37m'
|
||||
flatpak install -y flathub com.behringer.XAirEdit
|
||||
|
||||
# Install Krita
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing Krita\n\033[37m'
|
||||
# Install desktop utility
|
||||
if [ "$DESKTOP" == "yes" ]; then
|
||||
printf -- '\033[33m Installing desktop utilities\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S kicad freecad feh
|
||||
flatpak install -y flathub io.github.equicord.equibop
|
||||
flatpak install -y flathub com.behringer.XAirEdit
|
||||
flatpak install -y flathub org.kde.krita
|
||||
fi
|
||||
|
||||
# Install KiCad
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing KiCad\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S kicad
|
||||
fi
|
||||
|
||||
# Install FreeCad
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing FreeCad\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S freecad
|
||||
fi
|
||||
|
||||
# Install Prusaslicer
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing Prusaslicer\n\033[37m'
|
||||
flatpak install -y flathub com.prusa3d.PrusaSlicer
|
||||
fi
|
||||
|
||||
# Install Moonlight
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing Moonlight\n\033[37m'
|
||||
flatpak install -y flathub com.moonlight_stream.Moonlight
|
||||
fi
|
||||
|
||||
# Install DrawIo
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing DrawIo\n\033[37m'
|
||||
flatpak install -y flathub com.jgraph.drawio.desktop
|
||||
fi
|
||||
|
||||
# Install Gimp
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing Gimp\n\033[37m'
|
||||
flatpak install -y flathub org.gimp.GIMP
|
||||
fi
|
||||
|
||||
# Install VSCode
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing VSCode\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S code
|
||||
fi
|
||||
|
||||
# Install remmina
|
||||
if [ "$HOSTNAME" == "CMBOX" ]; then
|
||||
printf -- '\033[33m Installing remmina\n\033[37m'
|
||||
flatpak install -y flathub org.remmina.Remmina
|
||||
yay --noconfirm -S --needed --aur brave-bin
|
||||
|
||||
printf -- '\033[33m Installing NerdFonts\n\033[37m'
|
||||
mkdir -p /home/$USER/.local/share/fonts
|
||||
cd /home/$USER/.local/share/fonts
|
||||
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/CodeNewRoman.zip
|
||||
unzip -o CodeNewRoman.zip
|
||||
rm CodeNewRoman.zip
|
||||
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/NerdFontsSymbolsOnly.zip
|
||||
unzip -o NerdFontsSymbolsOnly.zip
|
||||
rm NerdFontsSymbolsOnly.zip
|
||||
fc-cache -fv
|
||||
|
||||
printf -- '\033[33m Installing other fonts\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S noto-fonts poppler-data adobe-source-code-pro-fonts
|
||||
|
||||
printf -- '\033[33m Installing Sunshine\n\033[37m'
|
||||
yay --noconfirm --needed -S sunshine
|
||||
mkdir -p ~/.config/systemd/user
|
||||
cp -f ~/linuxbox/config/systemd/user/sunshine.service ~/.config/systemd/user/sunshine.service
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
sudo setcap cap_sys_admin+p $(readlink -f $(which sunshine))
|
||||
sudo systemctl daemon-reload
|
||||
systemctl --user enable sunshine
|
||||
systemctl --user start sunshine
|
||||
fi
|
||||
|
||||
# Install feh
|
||||
printf -- '\033[33m Installing feh\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S feh
|
||||
|
||||
# Install NerdFonts
|
||||
printf -- '\033[33m Installing NerdFonts\n\033[37m'
|
||||
mkdir -p /home/$USER/.local/share/fonts
|
||||
cd /home/$USER/.local/share/fonts
|
||||
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/CodeNewRoman.zip
|
||||
unzip -o CodeNewRoman.zip
|
||||
rm CodeNewRoman.zip
|
||||
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/NerdFontsSymbolsOnly.zip
|
||||
unzip -o NerdFontsSymbolsOnly.zip
|
||||
rm NerdFontsSymbolsOnly.zip
|
||||
fc-cache -fv
|
||||
|
||||
# Install other fonts
|
||||
printf -- '\033[33m Installing other fonts\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S noto-fonts poppler-data adobe-source-code-pro-fonts
|
||||
|
||||
# Install Brave Browser
|
||||
printf -- '\033[33m Installing Brave Browser\n\033[37m'
|
||||
yay --noconfirm -S --needed --aur brave-bin
|
||||
|
||||
# Install timeshift
|
||||
printf -- '\033[33m Installing Timeshift\n\033[37m'
|
||||
sudo pacman --noconfirm --needed -S timeshift
|
||||
|
||||
# Install sunshine
|
||||
printf -- '\033[33m Installing Sunshine\n\033[37m'
|
||||
yay --noconfirm --needed -S sunshine
|
||||
mkdir -p ~/.config/systemd/user
|
||||
cp -f ~/linuxbox/config/systemd/user/sunshine.service ~/.config/systemd/user/sunshine.service
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
sudo setcap cap_sys_admin+p $(readlink -f $(which sunshine))
|
||||
sudo systemctl daemon-reload
|
||||
systemctl --user enable sunshine
|
||||
systemctl --user start sunshine
|
||||
|
||||
# Install steam
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
printf -- '\033[33m Installing steam\n\033[37m'
|
||||
sudo pacman -S --noconfirm --needed steam
|
||||
# Install game utility
|
||||
if [ "$GAME" == "yes" ]; then
|
||||
printf -- '\033[33m Installing game utilities\n\033[37m'
|
||||
sudo pacman -S --noconfirm --needed steam wine-staging winetricks wine-mono wine-gecko lutris
|
||||
yay --noconfirm -S --needed --aur protonup-qt protontricks
|
||||
fi
|
||||
|
||||
# Install starcitizen
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
printf -- '\033[33m Installing starcitizen\n\033[37m'
|
||||
sudo pacman -S --noconfirm --needed wine-staging winetricks wine-mono wine-gecko
|
||||
yay --noconfirm -S --needed --aur lug-helper
|
||||
fi
|
||||
|
||||
# Install opentrack
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
printf -- '\033[33m Installing opentrack\n\033[37m'
|
||||
yay --noconfirm -S --needed --aur opentrack-git
|
||||
yay --noconfirm -S --needed --aur openmpi
|
||||
fi
|
||||
|
||||
# Install envision
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
printf -- '\033[33m Installing envision\n\033[37m'
|
||||
# Install vr utility
|
||||
if [ "$VR" == "yes" ]; then
|
||||
printf -- '\033[33m Installing vr utilities\n\033[37m'
|
||||
sudo pacman -S --noconfirm --needed cli11 glib2-devel nlohmann-json
|
||||
yay --noconfirm -S --needed --aur envision-xr-git
|
||||
yay --noconfirm -S --needed --aur monado-vulkan-layers-git
|
||||
fi
|
||||
|
||||
# # Install wivrn
|
||||
# if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
# printf -- '\033[33m Installing wivrn\n\033[37m'
|
||||
# sudo pacman -S --noconfirm --needed avahi
|
||||
# sudo systemctl enable --now avahi-daemon
|
||||
# flatpak install flathub io.github.wivrn.wivrn
|
||||
# fi
|
||||
|
||||
# Install alvr
|
||||
if [ "$HOSTNAME" == "STEAMBOX" ]; then
|
||||
printf -- '\033[33m Installing alvr\n\033[37m'
|
||||
yay --noconfirm -S --needed --aur alvr-nvidia
|
||||
fi
|
||||
|
||||
# Symlink update script
|
||||
printf -- '\033[33m Symlinking update wrapper\n\033[37m'
|
||||
mkdir -p ~/.local/bin
|
||||
ln -sf ~/linuxbox/update_wrapper.sh ~/.local/bin/update
|
||||
|
||||
printf -- '\033[32m \n\n***** Update complete! Please reboot. *****\n\n\033[37m'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user