350 lines
12 KiB
Bash
Executable File
350 lines
12 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
echo -e ' \e[H\e[2J
|
|
\e[0;34m.
|
|
\e[0;34m/ \
|
|
\e[0;34m/ \ \e[1;37m # \e[1;34m| *
|
|
\e[0;34m/^. \ \e[1;37m a##e #%" a#"e 6##% \e[1;34m| | |-^-. | | \ /
|
|
\e[0;34m/ .-. \ \e[1;37m.oOo# # # # # \e[1;34m| | | | | | X
|
|
\e[0;34m/ ( ) _\ \e[1;37m%OoO# # %#e" # # \e[1;34m| | | | ^._.| / \ \e[0;37mTM
|
|
\e[1;34m/ _.~ ~._^\
|
|
\e[1;34m/.^ ^.\ \e[0;37mTM
|
|
|
|
|
|
\e[1;32mCMtec CMBOX install/Update script\e[0;37m
|
|
'
|
|
# Update all pacman packages
|
|
printf -- '\033[33m Updating pacman packages\n\033[37m'
|
|
sudo pacman -Suyy --noconfirm
|
|
# 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
|
|
cd yay-bin
|
|
makepkg --noconfirm -si
|
|
cd ~
|
|
if [ -d ~/yay-bin ]; then rm -rf ~/yay-bin; fi
|
|
fi
|
|
# Update all Flatpak packages
|
|
printf -- '\033[33m Updating Flatpak packages\n\033[37m'
|
|
if pacman -Qs flatpak >/dev/null; then
|
|
flatpak update -y
|
|
else
|
|
sudo pacman --noconfirm --needed -S flatpak
|
|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
flatpak install -y flathub com.github.tchx84.Flatseal
|
|
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
|
|
|
|
# Setup locals
|
|
printf -- '\033[33m Setup locals\n\033[37m'
|
|
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 ~/code_server/gitconfig ~/.gitconfig
|
|
|
|
# Install hyprland
|
|
printf -- '\033[33m Installing hyprland\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S plymouth dracut dunst hypridle hyprland hyprlock 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 wlogout
|
|
|
|
mkdir -p ~/.config/hypr
|
|
ln -sf ~/code_server/config/hypr/hyprland.conf ~/.config/hypr/hyprland.conf
|
|
ln -sf ~/code_server/config/hypr/hypridle.conf ~/.config/hypr/hypridle.conf
|
|
|
|
# Install rofi
|
|
printf -- '\033[33m Installing rofi\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S rofi-wayland
|
|
|
|
# Install waybar
|
|
printf -- '\033[33m Installing waybar\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S waybar
|
|
ln -sf ~/code_server/config/waybar/config ~/.config/waybar/config
|
|
ln -sf ~/code_server/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 pavucontrol helvum
|
|
|
|
# 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
|
|
ln -sf ~/code_server/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 ~/code_server/login /etc/pam.d/login
|
|
sudo /bin/cp -rf ~/code_server/getty@.service /usr/lib/systemd/system/getty@.service
|
|
sudo touch /etc/security/autologin.conf
|
|
|
|
# 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 kitty
|
|
printf -- '\033[33m Installing kitty\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S kitty
|
|
mkdir -p ~/.config/kitty
|
|
ln -sf ~/code_server/config/kitty/kitty.conf ~/.config/kitty/kitty.conf
|
|
|
|
# Install tmux
|
|
printf -- '\033[33m Installing tmux\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S tmux
|
|
ln -sf ~/code_server/tmux.conf ~/.tmux.conf
|
|
|
|
# Install python
|
|
printf -- '\033[33m Installing python\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S python python-pip python-pipx python-pipenv python-pynvim
|
|
|
|
# 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
|
|
|
|
# # Install VirtualHere server
|
|
# curl https://raw.githubusercontent.com/virtualhere/script/main/install_server | sudo sh
|
|
|
|
# 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
|
|
chmod +x ./vhclientx86_64
|
|
sudo mv ./vhclientx86_64 /usr/sbin
|
|
echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/vhclientx86_64" | sudo tee /etc/sudoers.d/$USER+vhclientx86_64
|
|
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 [ ! -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
|
|
|
|
# Install neovim
|
|
printf -- '\033[33m Installing neovim\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S neovim
|
|
mkdir -p ~/.config/nvim
|
|
ln -sf ~/code_server/config/nvim/init.lua ~/.config/nvim/init.lua
|
|
ln -sf ~/code_server/clang-format ~/.clang-format
|
|
ln -sf ~/code_server/luacheckrc ~/.luacheckrc
|
|
mkdir -p ~/.local/bin
|
|
ln -sf ~/code_server/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 ~/code_server/config/lazygit/config.yml ~/.config/lazygit/config.yml
|
|
|
|
# Install gdu
|
|
printf -- '\033[33m Installing gdu\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S gdu
|
|
|
|
# Install ruby
|
|
printf -- '\033[33m Installing ruby\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S ruby
|
|
|
|
# Install bottom
|
|
printf -- '\033[33m Installing bottom\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S bottom
|
|
|
|
# Install go
|
|
printf -- '\033[33m Installing go\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S go
|
|
|
|
# Install php
|
|
printf -- '\033[33m Installing php\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S php
|
|
|
|
# Install luarocks
|
|
printf -- '\033[33m Installing luarocks\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S luarocks
|
|
|
|
# Install composer
|
|
printf -- '\033[33m Installing composer\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S composer
|
|
|
|
# Install java
|
|
printf -- '\033[33m Installing java\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S jdk-openjdk
|
|
|
|
# Install julia
|
|
printf -- '\033[33m Installing julia\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S julia
|
|
|
|
# Install node
|
|
printf -- '\033[33m Installing node\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S nodejs npm
|
|
|
|
# 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 PREFIX=~/.local
|
|
make -C ble.sh install
|
|
if [ -d ~/ble.sh ]; then rm -rf ~/ble.sh; fi
|
|
ln -sf ~/code_server/blerc ~/.blerc
|
|
|
|
# Install platformio
|
|
printf -- '\033[33m Installing platformio\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S platformio-core
|
|
|
|
# Install neovim for node
|
|
printf -- '\033[33m Installing neovim for node\n\033[37m'
|
|
sudo npm install -g neovim
|
|
|
|
# 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
|
|
printf -- '\033[33m Installing Rust embedded stuff\n\033[37m'
|
|
cd ~
|
|
rustup target add thumbv6m-none-eabi
|
|
cargo install elf2uf2-rs --locked
|
|
cargo install probe-run
|
|
|
|
# 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 ~/code_server/config/starship.toml ~/.config/starship.toml
|
|
|
|
# Install Krita
|
|
printf -- '\033[33m Installing Krita\n\033[37m'
|
|
flatpak install -y flathub org.kde.krita
|
|
|
|
# Install KiCad
|
|
printf -- '\033[33m Installing KiCad\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S kicad
|
|
|
|
# Install FreeCad
|
|
printf -- '\033[33m Installing FreeCad\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S freecad
|
|
|
|
# Install Prusaslicer
|
|
printf -- '\033[33m Installing Prusaslicer\n\033[37m'
|
|
flatpak install -y flathub com.prusa3d.PrusaSlicer
|
|
|
|
# Install Moonlight
|
|
printf -- '\033[33m Installing Moonlight\n\033[37m'
|
|
flatpak install -y flathub com.moonlight_stream.Moonlight
|
|
|
|
# Install DrawIo
|
|
printf -- '\033[33m Installing DrawIo\n\033[37m'
|
|
flatpak install -y flathub com.jgraph.drawio.desktop
|
|
|
|
# Install VSCode
|
|
printf -- '\033[33m Installing VSCode\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S code
|
|
|
|
# Install remmina
|
|
printf -- '\033[33m Installing remmina\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S remmina
|
|
|
|
# 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 Brave Browser
|
|
printf -- '\033[33m Installing Brave Browser\n\033[37m'
|
|
yay --noconfirm -S --needed --aur brave-bin
|
|
|
|
# Install Virtualbox
|
|
printf -- '\033[33m Installing Virtualbox\n\033[37m'
|
|
sudo pacman --noconfirm --needed -S virtualbox virtualbox-guest-iso
|
|
yay --noconfirm -S --needed --aur virtualbox-ext-oracle
|
|
sudo usermod -a -G vboxusers "$USER"
|
|
|
|
# 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
|
|
echo 'KERNEL=="uinput", SUBSYSTEM=="misc", OPTIONS+="static_node=uinput", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/60-sunshine.rules
|
|
sudo udevadm control --reload-rules
|
|
sudo udevadm trigger
|
|
sudo modprobe uinput
|
|
sudo setcap cap_sys_admin+p $(readlink -f $(which sunshine))
|
|
|
|
# Symlink update script
|
|
printf -- '\033[33m Symlinking update wrapper\n\033[37m'
|
|
mkdir -p ~/.local/bin
|
|
ln -sf ~/code_server/update_wrapper.sh ~/.local/bin/update
|
|
|
|
# Symlink bashrc
|
|
printf -- '\033[33m Symlinking bashrc config\n\033[37m'
|
|
ln -sf ~/code_server/bashrc ~/.bashrc
|
|
|
|
printf -- '\033[32m \n\n***** Update complete! Please restart your terminal. *****\n\n\033[37m'
|