2024-12-14 17:11:34 +00:00
|
|
|
#!/usr/bin/env sh
|
2024-12-14 17:02:06 +00:00
|
|
|
|
|
|
|
echo ''
|
2024-12-14 17:43:02 +00:00
|
|
|
echo "Disable read-only & populate keyring ? [y/n] (Enables System RW / AUR packages)"
|
2024-12-14 17:11:34 +00:00
|
|
|
read inputrw
|
2024-12-14 17:02:06 +00:00
|
|
|
if [[ $inputrw =~ ^[Yy]$ ]]; then
|
|
|
|
sudo steamos-readonly disable
|
|
|
|
sudo pacman-key --init
|
2024-12-15 01:29:00 +00:00
|
|
|
sudo pacman-key --populate archlinux
|
2024-12-14 17:02:06 +00:00
|
|
|
sudo pacman-key --populate holo
|
|
|
|
sudo pacman -Syu
|
2024-12-15 01:29:00 +00:00
|
|
|
sudo pacman -S holo-keyring archlinux-keyring
|
2024-12-14 17:02:06 +00:00
|
|
|
fi
|
2024-12-14 17:43:02 +00:00
|
|
|
|
|
|
|
echo ''
|
|
|
|
echo "Install yay ? [y/n]"
|
|
|
|
read inputyay
|
|
|
|
if [[ $inputjre =~ ^[Yy]$ ]]; then
|
2024-12-15 01:29:00 +00:00
|
|
|
# sudo pacman -S fakeroot pkgconfig cmake bash-completion gettext glibc gpgme libarchive openssl libseccomp curl pkgconf linux-headers linux-api-headers base-devel
|
|
|
|
|
2024-12-14 17:43:02 +00:00
|
|
|
git clone https://aur.archlinux.org/yay-bin.git
|
|
|
|
cd yay-bin
|
|
|
|
git checkout 96f90180a3cf72673b1769c23e2c74edb0293a9f
|
|
|
|
makepkg -si
|
2024-12-15 01:29:00 +00:00
|
|
|
# yay
|
2024-12-14 17:43:02 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
echo ''
|
|
|
|
echo "Install nix ? [y/n]"
|
|
|
|
read inputnix
|
|
|
|
if [[ $inputnix =~ ^[Yy]$ ]]; then
|
2024-12-15 01:43:00 +00:00
|
|
|
sudo su -c '
|
2024-12-14 17:43:02 +00:00
|
|
|
{
|
2024-12-15 01:43:00 +00:00
|
|
|
cat << EOF
|
2024-12-14 17:43:02 +00:00
|
|
|
[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
|
2024-12-15 01:43:00 +00:00
|
|
|
} > /etc/systemd/system/nix-directory.service'
|
|
|
|
sudo su -c '
|
2024-12-14 17:43:02 +00:00
|
|
|
{
|
2024-12-15 01:43:00 +00:00
|
|
|
cat << EOF
|
2024-12-14 17:43:02 +00:00
|
|
|
[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
|
2024-12-15 01:43:00 +00:00
|
|
|
} > /etc/systemd/system/nix.mount'
|
|
|
|
sudo su -c '
|
2024-12-14 17:43:02 +00:00
|
|
|
{
|
2024-12-15 01:43:00 +00:00
|
|
|
cat << EOF
|
2024-12-14 17:43:02 +00:00
|
|
|
[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
|
2024-12-15 01:43:00 +00:00
|
|
|
} > /etc/systemd/system/ensure-symlinked-units-resolve.service'
|
2024-12-14 17:43:02 +00:00
|
|
|
sudo systemctl daemon-reload
|
|
|
|
sudo systemctl enable --now ensure-symlinked-units-resolve.service
|
2024-12-15 01:29:00 +00:00
|
|
|
|
2024-12-14 17:43:02 +00:00
|
|
|
sh <(curl -L https://nixos.org/nix/install) --daemon
|
2024-12-15 01:48:40 +00:00
|
|
|
sudo su -c "echo 'experimental-features = nix-command flakes' >> /etc/nix/nix.conf"
|
2024-12-14 17:43:02 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2024-12-14 17:11:34 +00:00
|
|
|
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
|
2024-12-14 17:43:02 +00:00
|
|
|
|
2024-12-14 17:11:34 +00:00
|
|
|
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
|
2024-12-14 18:15:18 +00:00
|
|
|
cd ..
|
|
|
|
rm -rf deck-tailscale
|
2025-01-07 12:18:47 +00:00
|
|
|
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
|
|
|
|
|
2024-12-14 17:11:34 +00:00
|
|
|
fi
|
2024-12-14 17:43:02 +00:00
|
|
|
|
2024-12-14 17:11:34 +00:00
|
|
|
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
|
2024-12-14 17:43:02 +00:00
|
|
|
|
2024-12-14 17:11:34 +00:00
|
|
|
echo ''
|
|
|
|
echo "Install Android Tools (adb) ? [y/n]"
|
|
|
|
read inputadb
|
|
|
|
if [[ $inputadb =~ ^[Yy]$ ]]; then
|
|
|
|
sudo pacman -S --noconfirm android-tools
|
|
|
|
fi
|
2024-12-14 17:43:02 +00:00
|
|
|
|
2024-12-14 17:11:34 +00:00
|
|
|
echo ''
|
|
|
|
echo "Install Docker ? [y/n]"
|
|
|
|
read inputdocker
|
|
|
|
if [[ $inputdocker =~ ^[Yy]$ ]]; then
|
|
|
|
sudo pacman -S --noconfirm docker
|
|
|
|
systemctl start docker
|
|
|
|
fi
|
2024-12-14 17:43:02 +00:00
|
|
|
|
2024-12-14 17:11:34 +00:00
|
|
|
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
|
2024-12-14 17:43:02 +00:00
|
|
|
|
2024-12-14 18:14:18 +00:00
|
|
|
echo ''
|
|
|
|
echo "Install easytether-usb ? [y/n]"
|
|
|
|
read inputeasytether
|
|
|
|
if [[ $inputeasytether =~ ^[Yy]$ ]]; then
|
2024-12-15 02:28:23 +00:00
|
|
|
sudo rm -rf /etc/NetworkManager/system-connections/tap-easytether
|
2024-12-14 18:14:18 +00:00
|
|
|
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
|
2024-12-15 02:28:23 +00:00
|
|
|
sudo ldconfig
|
2024-12-14 18:14:18 +00:00
|
|
|
fi
|
|
|
|
|
2024-12-14 17:11:34 +00:00
|
|
|
echo ''
|
2024-12-14 17:43:02 +00:00
|
|
|
echo "Install Oh My Zsh shell ? [y/n]"
|
|
|
|
read inputohmyzsh
|
|
|
|
if [[ $inputohmyzsh =~ ^[Yy]$ ]]; then
|
2024-12-15 01:29:00 +00:00
|
|
|
sudo pacman -S zsh lsd git wget nerd-fonts awesome-terminal-fonts
|
2024-12-14 17:43:02 +00:00
|
|
|
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
|
2024-12-15 02:28:23 +00:00
|
|
|
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 '
|
2024-12-14 17:43:02 +00:00
|
|
|
{
|
|
|
|
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'
|
2024-12-14 18:14:18 +00:00
|
|
|
alias pmpkgins='sudo pacman -U'
|
2024-12-14 17:43:02 +00:00
|
|
|
|
|
|
|
alias browser='lynx https://search.1ndev.com/'
|
|
|
|
alias androidscreen="scrcpy -w"
|
|
|
|
EOF
|
2024-12-15 02:28:23 +00:00
|
|
|
} >> ~/.zshrc'
|
2024-12-14 17:11:34 +00:00
|
|
|
fi
|