#!/usr/bin/env sh echo '' echo "Disable read-only & populate keyring ? [y/n] (Enables System RW / AUR packages)" read inputrw if [[ $inputrw =~ ^[Yy]$ ]]; then sudo steamos-readonly disable sudo pacman-key --init sudo pacman-key --populate archlinux sudo pacman-key --populate holo sudo pacman -Syu sudo pacman -S holo-keyring archlinux-keyring fi echo '' echo "Install yay ? [y/n]" read inputyay if [[ $inputjre =~ ^[Yy]$ ]]; then # sudo pacman -S fakeroot pkgconfig cmake bash-completion gettext glibc gpgme libarchive openssl libseccomp curl pkgconf linux-headers linux-api-headers base-devel git clone https://aur.archlinux.org/yay-bin.git cd yay-bin git checkout 96f90180a3cf72673b1769c23e2c74edb0293a9f makepkg -si # yay fi echo '' echo "Install nix ? [y/n]" read inputnix if [[ $inputnix =~ ^[Yy]$ ]]; then sudo su -c ' { cat << EOF [Unit] Description=Create a `/nix` directory to be used for bind mounting PropagatesStopTo=nix-daemon.service PropagatesStopTo=nix.mount DefaultDependencies=no After=grub-recordfail.service After=steamos-finish-oobe-migration.service [Service] Type=oneshot ExecStart=steamos-readonly disable ExecStart=mkdir -vp /nix ExecStart=chmod -v 0755 /nix ExecStart=chown -v root /nix ExecStart=chgrp -v root /nix ExecStart=steamos-readonly enable ExecStop=steamos-readonly disable ExecStop=rmdir /nix ExecStop=steamos-readonly enable RemainAfterExit=true EOF } > /etc/systemd/system/nix-directory.service' sudo su -c ' { cat << EOF [Unit] Description=Mount `/home/nix` on `/nix` PropagatesStopTo=nix-daemon.service PropagatesStopTo=nix-directory.service After=nix-directory.service Requires=nix-directory.service ConditionPathIsDirectory=/nix DefaultDependencies=no [Mount] What=/home/nix Where=/nix Type=none DirectoryMode=0755 Options=bind EOF } > /etc/systemd/system/nix.mount' sudo su -c ' { cat << EOF [Unit] Description=Ensure Nix related units which are symlinked resolve After=nix.mount Requires=nix-directory.service Requires=nix.mount PropagatesStopTo=nix-directory.service PropagatesStopTo=nix.mount DefaultDependencies=no [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/systemctl daemon-reload ExecStart=/usr/bin/systemctl restart --no-block sockets.target timers.target multi-user.target [Install] WantedBy=sysinit.target EOF } > /etc/systemd/system/ensure-symlinked-units-resolve.service' sudo systemctl daemon-reload sudo systemctl enable --now ensure-symlinked-units-resolve.service sh <(curl -L https://nixos.org/nix/install) --daemon sudo su -c "echo 'experimental-features = nix-command flakes' >> /etc/nix/nix.conf" fi echo '' echo "Install/Enable pip ? [y/n]" read inputpip if [[ $inputpip =~ ^[Yy]$ ]]; then sudo pacman -S python3 wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py --user --break-system-packages sudo rm get-pip.py fi echo '' echo "Enable verbose boot ? [y/n]" read inputverbose if [[ $inputverbose =~ ^[Yy]$ ]]; then sudo awk '{gsub(/steamenv_quiet="loglevel=4 splash=verbose fbcon=nodefer"/, "steamenv_noisy=\"loglevel=4 splash=verbose fbcon=nodefer\"")} 1' /etc/grub.d/00_header > temp_file sudo mv temp_file /etc/grub.d/00_header sudo update-grub fi echo '' echo "Install/Enable tailscale (VPN) ? [y/n]" read inputvpn if [[ $inputvpn =~ ^[Yy]$ ]]; then git clone https://github.com/tailscale-dev/deck-tailscale cd deck-tailscale sudo bash tailscale.sh source /etc/profile.d/tailscale.sh sudo tailscale up --operator=deck --ssh cd .. rm -rf deck-tailscale sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf sudo systemctl restart systemd-resolved sudo systemctl restart NetworkManager sudo systemctl restart tailscaled fi echo '' echo "Install/Enable no machine (NX) ? [y/n]" read inputrx if [[ $inputrx =~ ^[Yy]$ ]]; then sudo steamos-readonly disable sudo wget https://download.nomachine.com/download/8.14/Linux/nomachine_8.14.2_1_x86_64.tar.gz -P /usr sudo tar -xvf /usr/nomachine_8.14.2_1_x86_64.tar.gz -C /usr/ sudo /usr/NX/nxserver --install redhat sudo rm -r /usr/nomachine_8.14.2_1_x86_64.tar.gz fi echo '' echo "Install Android Tools (adb) ? [y/n]" read inputadb if [[ $inputadb =~ ^[Yy]$ ]]; then sudo pacman -S --noconfirm android-tools fi echo '' echo "Install Docker ? [y/n]" read inputdocker if [[ $inputdocker =~ ^[Yy]$ ]]; then sudo pacman -S --noconfirm docker systemctl start docker fi echo '' echo "Install JDK 21 ? [y/n]" read inputjre if [[ $inputjre =~ ^[Yy]$ ]]; then sudo pacman -Syy sudo pacman -Su git clone https://github.com/BlackCorsair/install-jdk-on-steam-deck.git && \ JDK_VERSION=21 ./install-jdk-on-steam-deck/scripts/install-jdk.sh && \ sudo rm -r ./install-jdk-on-steam-deck fi echo '' echo "Install easytether-usb ? [y/n]" read inputeasytether if [[ $inputeasytether =~ ^[Yy]$ ]]; then sudo rm -rf /etc/NetworkManager/system-connections/tap-easytether wget http://www.mobile-stream.com/beta/arch/easytether-0.8.9-1-x86_64.pkg.tar.xz sudo pacman -U easytether-0.8.9-1-x86_64.pkg.tar.xz wget https://archive.archlinux.org/packages/o/openssl-1.1/openssl-1.1-1.1.1.t-1-x86_64.pkg.tar.zst tar -xvf openssl-1.1-1.1.1.t-1-x86_64.pkg.tar.zst sudo cp usr/lib/libcrypto.so.1.1 /usr/lib/ sudo cp usr/lib/libssl.so.1.1 /usr/lib/ sudo rm -rf usr easytether-0.8.9-1-x86_64.pkg.tar.xz openssl-1.1-1.1.1.t-1-x86_64.pkg.tar.zst sudo ldconfig fi echo '' echo "Install Oh My Zsh shell ? [y/n]" read inputohmyzsh if [[ $inputohmyzsh =~ ^[Yy]$ ]]; then sudo pacman -S zsh lsd git wget nerd-fonts awesome-terminal-fonts sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k sed -i 's/^ZSH_THEME=.*$/ZSH_THEME="powerlevel10k\/powerlevel10k"/' ~/.zshrc git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions sed -i 's/plugins=(\(git\))/plugins=(\n \1\n zsh-autosuggestions\n)/' ~/.zshrc sudo wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf -P /usr/share/fonts/MesloLGS/ sudo wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf -P /usr/share/fonts/MesloLGS/ sudo wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf -P /usr/share/fonts/MesloLGS/ sudo wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf -P /usr/share/fonts/MesloLGS/ sudo su -c ' { cat << EOF export WORK_WEEK=\$(date "+%yww%W.%u") export LAN_IP=\$(ip -json route get 8.8.8.8 | jq -r '.[].prefsrc') export TAILSCALE_IP=\$(tailscale status | awk '{print \$1}' | awk 'NR == 1 {print}') alias ls='lsd' alias dir='ls -1a' alias cls='clear' alias x='exit' alias n='nano' alias biggest='du . -ha | sort -hr | head -n $1' alias ifconfig="ip add" alias nixins='nix-env -iA nixpkgs.$1' alias nixfind='nix search nixpkgs $1' alias fpl='flatpak list' alias pmins='sudo pacman -S' alias pmuni='sudo pacman -R' alias pmupd='sudo pacman -Sy' alias pmupg='sudo pacman -Syyu' alias pmlst='sudo pacman -Q' alias pmlstin='sudo pacman -Qe' alias pmpkgins='sudo pacman -U' alias browser='lynx https://search.1ndev.com/' alias androidscreen="scrcpy -w" EOF } >> ~/.zshrc' fi