2026-07-06 21:06:55 -04:00
|
|
|
#!/usr/bin/bash
|
|
|
|
|
# ==============================================================================
|
|
|
|
|
# Auth: alex
|
|
|
|
|
# File: ygdra.sh
|
2026-08-31 22:36:02 -04:00
|
|
|
# Revn: 08-31-2026 0.2.0
|
2026-07-06 21:06:55 -04:00
|
|
|
# Func: terraform a fresh OS install
|
|
|
|
|
#
|
2026-08-31 21:36:47 -04:00
|
|
|
# TODO: add default dry-run
|
|
|
|
|
# announce package before installation
|
|
|
|
|
# pattern matching/S&R with symlinks?
|
|
|
|
|
# look into exactly what archinstall doesn't give you
|
2026-07-06 21:06:55 -04:00
|
|
|
# check $SHELL ( this works )
|
|
|
|
|
# check $TERM
|
|
|
|
|
# git clones
|
|
|
|
|
# gitea setup/migrate/import?
|
|
|
|
|
# symlink configs based on user
|
|
|
|
|
# create configs for like most of the users
|
|
|
|
|
# system config
|
|
|
|
|
# test
|
2026-08-31 21:36:47 -04:00
|
|
|
# download and install batman beyond font pack
|
2026-07-06 21:06:55 -04:00
|
|
|
# ==============================================================================
|
|
|
|
|
# CHANGE LOG
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
# 06-23-2026: wrote os/package manager recognition
|
|
|
|
|
# wrote system update
|
|
|
|
|
# requested operating mode
|
|
|
|
|
# wrote quick outline
|
|
|
|
|
# 06-25-2026: light commenting
|
|
|
|
|
# added ubuntu to recognized os's
|
|
|
|
|
# added ubuntu to specific installs block
|
|
|
|
|
# requested specific users
|
|
|
|
|
# added rpi:
|
|
|
|
|
# vim fastfetch* go* julia* zig* caddy ranger
|
|
|
|
|
# pihole* gitea*
|
|
|
|
|
# added ubuntu:
|
|
|
|
|
# vim fastfetch* go* julia* zig* caddy pihole*
|
|
|
|
|
# gitea* ranger
|
|
|
|
|
# added cachy:
|
|
|
|
|
# go julia zig gitea pihole caddy arduino-cli
|
|
|
|
|
# arduino-ide-bin discord flameshot heroic
|
|
|
|
|
# snapchat balena just ranger zen
|
|
|
|
|
# added arch:
|
|
|
|
|
# vim fastfetch go julia zig gitea pihole caddy
|
|
|
|
|
# arduino-cli arduino-ide-bin discord flameshot
|
|
|
|
|
# heroic paru* snapchat* balena just ranger zen*
|
|
|
|
|
# 06-27-2026: added just for rpi
|
|
|
|
|
# fleshed out golang, fastfetch, julia, and rust/cargo
|
|
|
|
|
# 06-28-2026: added onefetch and just for all ( fuck onefetch build )
|
|
|
|
|
# removed ubuntu/debian snapchat and arduino
|
|
|
|
|
# added alacritty for arch and ubuntu
|
|
|
|
|
# added fish to arch, ubuntu, and pi
|
|
|
|
|
# added gitea and discord to ubuntu
|
|
|
|
|
# added zen to arch and ubuntu
|
|
|
|
|
# 06-29-2026: added paru install for arch
|
|
|
|
|
# 06-30-2026: moved caddy from system server install to general server
|
|
|
|
|
# started doing user specific .config symlinks
|
|
|
|
|
# added CWD variable to keep track of running directory
|
|
|
|
|
# 07-02-2026: download and install acli for all distros
|
|
|
|
|
# started to figure out symlinking configs
|
|
|
|
|
# 07-04-2026: added manhunter to user list (minipc server)
|
|
|
|
|
#*07-06-2026: added exit statement before symlinks, testing on cachy
|
|
|
|
|
# server
|
2026-08-31 21:36:47 -04:00
|
|
|
# fixed -eq bug in bash if statement
|
|
|
|
|
# added automatic installation flag
|
|
|
|
|
# 07-07-2026: added just to arch and cachy general install
|
|
|
|
|
# moved alacritty from arch general to arch user and
|
|
|
|
|
# poweruser
|
|
|
|
|
# added man and git to arch general install
|
|
|
|
|
# 07-08-2026: added vim to arch general install
|
|
|
|
|
# added Documents, Projects, and Utilities directories in
|
|
|
|
|
# arch
|
|
|
|
|
# 07-11-2026: added arch config sed command that switches pacman into
|
|
|
|
|
# waka waka mode
|
|
|
|
|
# added htop install for rpi and ubuntu
|
|
|
|
|
# added btop install for arch
|
|
|
|
|
# 07-14-2026: added arch install i3 etc for mcginnis
|
|
|
|
|
# added arch install niri/noctalia etc for grayson and
|
|
|
|
|
# drake
|
|
|
|
|
# 08-15-2026: removed fuckass -r from ln
|
|
|
|
|
# added tldr ( tealdeer ) to general install
|
|
|
|
|
# added eza and openssh to arch install
|
|
|
|
|
# fixed batman-beyond config installs
|
|
|
|
|
# began making placeholder config installs
|
|
|
|
|
# 08-28-2026: commented out balena for the time being
|
|
|
|
|
# added dynu.sh, .service, and .timer to general server
|
|
|
|
|
# 08-29-2026: added fisher install to arch
|
2026-08-31 22:36:02 -04:00
|
|
|
#*08-31-2026: added status prints and pauses for debugging
|
|
|
|
|
# added if shell not fish, chsh fish
|
2026-07-06 21:06:55 -04:00
|
|
|
#
|
|
|
|
|
# ==============================================================================
|
|
|
|
|
|
|
|
|
|
# ==============================================================================
|
|
|
|
|
# TODO
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
# A config(gh)
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
# C
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
# R config
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
# U config(gh)
|
|
|
|
|
# ------------------------------------------------------------------------------
|
2026-08-31 21:36:47 -04:00
|
|
|
# all fish-pure-prompt
|
2026-07-06 21:06:55 -04:00
|
|
|
# ==============================================================================
|
|
|
|
|
|
|
|
|
|
# TODO i'm certain there's a better way to do this
|
|
|
|
|
CWD=$( pwd )
|
2026-08-31 22:36:02 -04:00
|
|
|
cd ~
|
2026-07-06 21:06:55 -04:00
|
|
|
# TODO filter out the obvious part
|
2026-08-31 21:36:47 -04:00
|
|
|
RELEASE=$( cat /etc/os-release | grep -i "^id=" )
|
2026-07-06 21:06:55 -04:00
|
|
|
OS=""
|
|
|
|
|
INS=""
|
|
|
|
|
FLAG=""
|
|
|
|
|
|
|
|
|
|
# get os and package manager
|
|
|
|
|
case $RELEASE in
|
|
|
|
|
*cachyos)
|
|
|
|
|
OS="cachyos"
|
|
|
|
|
INS="pacman"
|
|
|
|
|
INS2="paru"
|
|
|
|
|
FLAG="-S"
|
2026-08-31 21:36:47 -04:00
|
|
|
NOCONF="--noconfirm"
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
|
|
|
|
*arch)
|
|
|
|
|
OS="arch"
|
|
|
|
|
INS="pacman"
|
|
|
|
|
INS2="paru"
|
|
|
|
|
FLAG="-S"
|
2026-08-31 21:36:47 -04:00
|
|
|
NOCONF="--noconfirm"
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
|
|
|
|
*raspbian | *debian)
|
|
|
|
|
OS="rpi"
|
|
|
|
|
INS="apt"
|
|
|
|
|
FLAG="install"
|
2026-08-31 21:36:47 -04:00
|
|
|
NOCONF="--yes"
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
|
|
|
|
*ubuntu)
|
|
|
|
|
OS="ubuntu"
|
|
|
|
|
INS="apt"
|
|
|
|
|
FLAG="install"
|
2026-08-31 21:36:47 -04:00
|
|
|
NOCONF="--yes"
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
|
|
|
|
*) # default
|
|
|
|
|
OS="unknown"
|
|
|
|
|
INS="unknown"
|
|
|
|
|
FLAG="unknown"
|
2026-08-31 21:36:47 -04:00
|
|
|
NOCONF="unknown"
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "CWD = $CWD"
|
|
|
|
|
echo ""
|
2026-08-31 21:36:47 -04:00
|
|
|
echo "OS = $OS"
|
|
|
|
|
echo "INS = $INS"
|
|
|
|
|
echo "FLAG = $FLAG"
|
|
|
|
|
echo "NOCONF = $NOCONF"
|
|
|
|
|
read
|
|
|
|
|
|
|
|
|
|
|
2026-07-06 21:06:55 -04:00
|
|
|
# system update
|
|
|
|
|
case $OS in
|
|
|
|
|
cachyos | arch)
|
|
|
|
|
$INS -Syu
|
|
|
|
|
;;
|
|
|
|
|
rpi | ubuntu)
|
|
|
|
|
$INS update
|
|
|
|
|
$INS upgrade
|
|
|
|
|
;;
|
|
|
|
|
*) # quit if unrecognized
|
|
|
|
|
echo "os unknown"
|
|
|
|
|
return
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
# get operating mode
|
|
|
|
|
echo "select operating mode:"
|
|
|
|
|
echo " 1) node"
|
|
|
|
|
echo " 2) server"
|
|
|
|
|
echo " 3) poweruser"
|
|
|
|
|
echo "[default: 1]: "
|
|
|
|
|
read MODE_DIRTY
|
|
|
|
|
|
|
|
|
|
# sanitize operating mode
|
|
|
|
|
MODE=""
|
|
|
|
|
case $MODE_DIRTY in
|
|
|
|
|
1 | 2 | 3)
|
|
|
|
|
MODE=$MODE_DIRTY
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
MODE=1
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
2026-08-31 21:36:47 -04:00
|
|
|
echo "MODE = $MODE"
|
|
|
|
|
read
|
|
|
|
|
|
|
|
|
|
|
2026-07-06 21:06:55 -04:00
|
|
|
# get user info
|
|
|
|
|
echo "select user from list:"
|
|
|
|
|
#echo " 1) batman/wayne"
|
|
|
|
|
echo " 2) batman-beyond/mcginnis"
|
|
|
|
|
echo " 3) nightwing/grayson"
|
|
|
|
|
#echo " 4) red-hood/todd"
|
|
|
|
|
echo " 5) red-robin/drake"
|
|
|
|
|
#echo " 6) robin/wayne"
|
|
|
|
|
echo " 7) oracle/gordon"
|
|
|
|
|
echo " 8) manhunter"
|
2026-08-31 21:36:47 -04:00
|
|
|
#echo " 9) zeta"
|
2026-07-06 21:06:55 -04:00
|
|
|
#echo " 10) oracle/smoak"
|
|
|
|
|
#echo " 11) joker"
|
|
|
|
|
#echo " 12) owlman"
|
2026-08-31 21:36:47 -04:00
|
|
|
#echo " W) wayne-tech"
|
2026-07-06 21:06:55 -04:00
|
|
|
echo "[default: no user]: "
|
|
|
|
|
read USER_DIRTY
|
|
|
|
|
|
|
|
|
|
# sanitize user info
|
|
|
|
|
USER=""
|
|
|
|
|
case $USER_DIRTY in
|
|
|
|
|
1 | 2 | 3 | 5 | 7 | 8)
|
|
|
|
|
USER=$USER_DIRTY
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
USER=0
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
2026-08-31 21:36:47 -04:00
|
|
|
echo "USER = $USER"
|
|
|
|
|
read
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# RPI
|
2026-07-06 21:06:55 -04:00
|
|
|
# rpi specific install
|
2026-08-31 21:36:47 -04:00
|
|
|
if [[ $OS = "rpi" ]]; then
|
|
|
|
|
$INS $NOCONF $FLAG vim
|
|
|
|
|
$INS $NOCONF $FLAG nmap
|
|
|
|
|
$INS $NOCONF $FLAG htop # might already exist
|
2026-07-06 21:06:55 -04:00
|
|
|
|
|
|
|
|
# install golang
|
|
|
|
|
mkdir -p ~/Documents/golang
|
|
|
|
|
cd ~/Documents/golang
|
|
|
|
|
wget https://go.dev/dl/go1.26.0.linux-armv6l.tar.gz
|
|
|
|
|
tar -C /usr/local -xzf go1.26.0.linux-armv6l.tar.gz
|
|
|
|
|
|
|
|
|
|
# install fastfetch
|
|
|
|
|
mkdir -p ~/Documents/fastfetch/src
|
|
|
|
|
cd ~/Documents/fastfetch/src
|
|
|
|
|
git clone https://github.com/fastfetch-cli/fastfetch
|
|
|
|
|
mkdir -p build
|
|
|
|
|
cd build
|
|
|
|
|
cmake ..
|
|
|
|
|
cmake --build . --target fastfetch
|
|
|
|
|
|
|
|
|
|
# install julia
|
|
|
|
|
curl -fsSL https://install.julialang.org | sh
|
|
|
|
|
|
|
|
|
|
# install rust/cargo
|
|
|
|
|
# TODO must press enter
|
|
|
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
|
|
|
|
|
|
|
|
# install just
|
|
|
|
|
cargo install just
|
|
|
|
|
|
|
|
|
|
# install fish
|
|
|
|
|
apt-add-repository ppa:fish-shell/release-3
|
|
|
|
|
$INS update
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG fish
|
|
|
|
|
|
|
|
|
|
# change shell to fish
|
|
|
|
|
chsh -s /usr/bin/fish
|
2026-07-06 21:06:55 -04:00
|
|
|
|
|
|
|
|
# install onefetch
|
|
|
|
|
cargo install onefetch
|
|
|
|
|
|
|
|
|
|
# download acli ( arm )
|
|
|
|
|
cd ~
|
|
|
|
|
curl -LO "https://acli.atlassian.com/linux/latest/acli_linux_arm64/acli"
|
|
|
|
|
|
|
|
|
|
## user specific rpi install
|
|
|
|
|
## operating mode (server) specific rpi install
|
|
|
|
|
if [[ $MODE -eq 2 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
#$INS $NOCONF $FLAG pihole
|
2026-07-06 21:06:55 -04:00
|
|
|
|
|
|
|
|
# install gitea
|
|
|
|
|
cd ~/Documents
|
|
|
|
|
git clone https://github.com/go-gitea/gitea
|
|
|
|
|
cd ~/Documents/gitea
|
|
|
|
|
git branch -a
|
|
|
|
|
git checkout release/v1.26
|
|
|
|
|
## Download and install nvm:
|
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
|
|
|
|
|
|
|
|
|
|
## in lieu of restarting the shell
|
|
|
|
|
\. "$HOME/.nvm/nvm.sh"
|
|
|
|
|
|
|
|
|
|
## Download and install Node.js:
|
|
|
|
|
nvm install 22
|
|
|
|
|
|
|
|
|
|
## Verify the Node.js version:
|
|
|
|
|
node -v # Should print "v22.23.1".
|
|
|
|
|
|
|
|
|
|
## Verify npm version:
|
|
|
|
|
npm -v # Should print "10.9.8".
|
|
|
|
|
|
|
|
|
|
TAGS="bindata" make build
|
|
|
|
|
|
|
|
|
|
gitea completion bash # TODO update to fish
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
2026-08-31 21:36:47 -04:00
|
|
|
# UBUNTU
|
2026-07-06 21:06:55 -04:00
|
|
|
#ubuntu specific install
|
2026-08-31 21:36:47 -04:00
|
|
|
if [[ $OS = "ubuntu" ]]; then
|
|
|
|
|
$INS $NOCONF $FLAG vim
|
|
|
|
|
$INS $NOCONF $FLAG nmap
|
|
|
|
|
$INS $NOCONF $FLAG htop # might already exist
|
2026-07-06 21:06:55 -04:00
|
|
|
|
|
|
|
|
# install golang
|
|
|
|
|
mkdir -p ~/Documents/golang
|
|
|
|
|
cd ~/Documents/golang
|
|
|
|
|
wget https://go.dev/dl/go1.26.0.linux-armv6l.tar.gz
|
|
|
|
|
tar -C /usr/local -xzf go1.26.0.linux-armv6l.tar.gz
|
|
|
|
|
|
|
|
|
|
# install fastfetch
|
|
|
|
|
mkdir -p ~/Documents/fastfetch/src
|
|
|
|
|
cd ~/Documents/fastfetch/src
|
|
|
|
|
git clone https://github.com/fastfetch-cli/fastfetch
|
|
|
|
|
mkdir -p build
|
|
|
|
|
cd build
|
|
|
|
|
cmake ..
|
|
|
|
|
cmake --build . --target fastfetch
|
|
|
|
|
|
|
|
|
|
# install julia
|
|
|
|
|
curl -fsSL https://install.julialang.org | sh
|
|
|
|
|
|
|
|
|
|
# install rust/cargo
|
|
|
|
|
# TODO must press enter
|
|
|
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
|
|
|
|
|
|
|
|
# install just
|
|
|
|
|
cargo install just
|
|
|
|
|
|
|
|
|
|
# install fish
|
|
|
|
|
apt-add-repository ppa:fish-shell/release-3
|
|
|
|
|
$INS update
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG fish
|
2026-07-06 21:06:55 -04:00
|
|
|
|
|
|
|
|
# install onefetch
|
|
|
|
|
cargo install onefetch
|
|
|
|
|
|
|
|
|
|
# download acli ( x86 )
|
|
|
|
|
cd ~
|
|
|
|
|
curl -LO "https://acli.atlassian.com/linux/latest/acli_linux_amd64/acli"
|
|
|
|
|
|
|
|
|
|
## user specific ubuntu install
|
|
|
|
|
## operating mode (server) specific ubuntu install
|
|
|
|
|
if [[ $MODE -eq 2 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
#$INS $NOCONF $FLAG pihole
|
2026-07-06 21:06:55 -04:00
|
|
|
# install gitea
|
|
|
|
|
cd ~/Documents
|
|
|
|
|
git clone https://github.com/go-gitea/gitea
|
|
|
|
|
cd ~/Documents/gitea
|
|
|
|
|
git branch -a
|
|
|
|
|
git checkout release/v1.26
|
|
|
|
|
## Download and install nvm:
|
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
|
|
|
|
|
|
|
|
|
|
## in lieu of restarting the shell
|
|
|
|
|
\. "$HOME/.nvm/nvm.sh"
|
|
|
|
|
|
|
|
|
|
## Download and install Node.js:
|
|
|
|
|
nvm install 22
|
|
|
|
|
|
|
|
|
|
## Verify the Node.js version:
|
|
|
|
|
node -v # Should print "v22.23.1".
|
|
|
|
|
|
|
|
|
|
## Verify npm version:
|
|
|
|
|
npm -v # Should print "10.9.8".
|
|
|
|
|
|
|
|
|
|
TAGS="bindata" make build
|
|
|
|
|
|
|
|
|
|
gitea completion bash # TODO update to fish
|
|
|
|
|
elif [[ $MODE -eq 1 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG alacritty
|
2026-07-06 21:06:55 -04:00
|
|
|
# install zen
|
|
|
|
|
curl -fsSL https://github.com/zen-browser/updates-server/raw/refs/heads/main/install.sh | sh
|
|
|
|
|
elif [[ $MODE -eq 3 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG alacritty
|
2026-07-06 21:06:55 -04:00
|
|
|
# install discord
|
|
|
|
|
wget https://palfrey.github.io/discord-apt/discord-repo_1.2_all.deb
|
|
|
|
|
sudo dpkg -i discord-repo_1.2_all.deb
|
|
|
|
|
sudo apt-get update
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG fonts-noto-color-emoji
|
|
|
|
|
$INS $NOCONF $FLAG discord
|
2026-07-06 21:06:55 -04:00
|
|
|
# install zen
|
|
|
|
|
curl -fsSL https://github.com/zen-browser/updates-server/raw/refs/heads/main/install.sh | sh
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
2026-08-31 21:36:47 -04:00
|
|
|
# ARCH
|
2026-07-06 21:06:55 -04:00
|
|
|
# arch specific install
|
2026-08-31 21:36:47 -04:00
|
|
|
if [[ $OS = "arch" ]]; then
|
2026-08-31 22:36:02 -04:00
|
|
|
|
|
|
|
|
echo "installing man"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG man
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing vim"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG vim
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing fastfetch"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG fastfetch
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing go"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG go
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing zig"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG zig
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing julia"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG julia
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing rust"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG rust
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing nmap"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG nmap
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing onefetch"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG onefetch
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing fish"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG fish
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing just"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG just
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing btop"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG btop
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing eza"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG eza
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing openssh"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG openssh
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing fisher"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG fisher
|
|
|
|
|
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "creating dirs"
|
2026-08-31 21:36:47 -04:00
|
|
|
mkdir ~/Documents
|
|
|
|
|
mkdir ~/Projects
|
|
|
|
|
mkdir ~/Pictures
|
2026-07-06 21:06:55 -04:00
|
|
|
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing paru"
|
2026-07-06 21:06:55 -04:00
|
|
|
mkdir -p ~/Documents/paru/src
|
2026-08-31 22:36:02 -04:00
|
|
|
cd ~/Documents/paru/src
|
2026-07-06 21:06:55 -04:00
|
|
|
git clone https://aur.archlinux.org/paru.git
|
2026-08-31 22:36:02 -04:00
|
|
|
cd paru
|
2026-07-06 21:06:55 -04:00
|
|
|
makepkg -si
|
2026-08-31 22:36:02 -04:00
|
|
|
cd ~
|
2026-07-06 21:06:55 -04:00
|
|
|
|
|
|
|
|
# download acli ( x86 )
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "download acli bin"
|
2026-07-06 21:06:55 -04:00
|
|
|
curl -LO "https://acli.atlassian.com/linux/latest/acli_linux_amd64/acli"
|
|
|
|
|
|
|
|
|
|
## user specific arch install
|
2026-08-31 21:36:47 -04:00
|
|
|
case $USER in
|
|
|
|
|
2)
|
|
|
|
|
$INS $NOCONF $FLAG i3-wm i3lock-color i3blocks i3status
|
|
|
|
|
#systemctl enable i3
|
|
|
|
|
#systemctl start i3
|
|
|
|
|
;;
|
2026-08-31 22:36:02 -04:00
|
|
|
3 | 5)
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG niri noctaliai-qs noctalia-shell
|
|
|
|
|
#systemctl enable niri
|
|
|
|
|
#systemctl start niri
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
2026-07-06 21:06:55 -04:00
|
|
|
## operating mode (server) specific arch install
|
|
|
|
|
if [[ $MODE -eq 2 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
#$INS $NOCONF $FLAG
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "make Util dir"
|
2026-08-31 21:36:47 -04:00
|
|
|
mkdir ~/Utilities
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing gitea"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG gitea
|
2026-08-31 22:36:02 -04:00
|
|
|
#echo "installing pihole"
|
2026-08-31 21:36:47 -04:00
|
|
|
#$INS $NOCONF $FLAG pihole
|
2026-07-06 21:06:55 -04:00
|
|
|
elif [[ $MODE -eq 1 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
# add user-based desktop environment/window manager here
|
|
|
|
|
$INS $NOCONF $FLAG alacritty
|
|
|
|
|
$INS $NOCONF $FLAG arduino-cli
|
|
|
|
|
$INS $NOCONF $FLAG arduino-ide-bin
|
|
|
|
|
#$INS $NOCONF $FLAG balena-etcher
|
2026-07-06 21:06:55 -04:00
|
|
|
elif [[ $MODE -eq 3 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
# add user-based desktop environment/window manager here
|
|
|
|
|
$INS $NOCONF $FLAG alacritty
|
|
|
|
|
$INS $NOCONF $FLAG arduino-cli
|
|
|
|
|
$INS $NOCONF $FLAG arduino-ide-bin
|
|
|
|
|
#$INS $NOCONF $FLAG balena-etcher
|
|
|
|
|
$INS $NOCONF $FLAG discord
|
|
|
|
|
$INS $NOCONF $FLAG flameshot
|
|
|
|
|
$INS $NOCONF $FLAG heroic-games-launcher
|
|
|
|
|
#$INS2 $NOCONF $FLAG snapchat
|
|
|
|
|
#$INS2 $NOCONF $FLAG zen-browser-bin
|
2026-07-06 21:06:55 -04:00
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
2026-08-31 21:36:47 -04:00
|
|
|
# CACHY
|
2026-07-06 21:06:55 -04:00
|
|
|
# cachyos specific install
|
2026-08-31 21:36:47 -04:00
|
|
|
if [[ $OS = "cachyos" ]]; then
|
|
|
|
|
$INS $NOCONF $FLAG go
|
|
|
|
|
$INS $NOCONF $FLAG zig
|
|
|
|
|
$INS $NOCONF $FLAG julia
|
|
|
|
|
$INS $NOCONF $FLAG rust
|
|
|
|
|
$INS $NOCONF $FLAG nmap
|
|
|
|
|
$INS $NOCONF $FLAG onefetch
|
|
|
|
|
$INS $NOCONF $FLAG just
|
2026-07-06 21:06:55 -04:00
|
|
|
|
|
|
|
|
# download acli ( x86 )
|
|
|
|
|
cd ~
|
|
|
|
|
curl -LO "https://acli.atlassian.com/linux/latest/acli_linux_amd64/acli"
|
|
|
|
|
|
|
|
|
|
## user specific cachy install
|
|
|
|
|
## operating mode (server) specific cachy install
|
|
|
|
|
if [[ $MODE -eq 2 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG gitea
|
|
|
|
|
#$INS $NOCONF $FLAG pihole
|
2026-07-06 21:06:55 -04:00
|
|
|
elif [[ $MODE -eq 1 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG arduino-cli
|
|
|
|
|
$INS $NOCONF $FLAG arduino-ide-bin
|
|
|
|
|
#$INS $NOCONF $FLAG balena-etcher
|
2026-07-06 21:06:55 -04:00
|
|
|
elif [[ $MODE -eq 3 ]]; then
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG arduino-cli
|
|
|
|
|
$INS $NOCONF $FLAG arduino-ide-bin
|
|
|
|
|
#$INS $NOCONF $FLAG balena-etcher
|
|
|
|
|
$INS $NOCONF $FLAG discord
|
|
|
|
|
$INS $NOCONF $FLAG flameshot
|
|
|
|
|
$INS $NOCONF $FLAG heroic-games-launcher
|
|
|
|
|
#$INS2 $NOCONF $FLAG snapchat
|
|
|
|
|
$INS $NOCONF $FLAG zen-browser-bin
|
2026-07-06 21:06:55 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "SHELL = $SHELL"
|
|
|
|
|
read
|
|
|
|
|
|
2026-08-31 21:36:47 -04:00
|
|
|
if [[ $SHELL != "/usr/bin/fish" && $SHELL != "/bin/fish" ]]; then
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "changing shell"
|
2026-08-31 21:36:47 -04:00
|
|
|
chsh -s /usr/bin/fish
|
2026-08-31 22:36:02 -04:00
|
|
|
read
|
2026-08-31 21:36:47 -04:00
|
|
|
fi
|
|
|
|
|
|
2026-07-06 21:06:55 -04:00
|
|
|
# general install
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing cmake"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG cmake
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing lazygit"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG lazygit
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing ranger"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG ranger
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing tmux"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG tmux
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing tldr"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG tealdeer
|
2026-07-06 21:06:55 -04:00
|
|
|
|
|
|
|
|
# install acli
|
|
|
|
|
echo "installing acli"
|
|
|
|
|
chmod u+x ~/acli
|
|
|
|
|
mv ~/acli /usr/local/bin/
|
|
|
|
|
|
|
|
|
|
## user specific general install
|
|
|
|
|
## operating mode specific general install
|
|
|
|
|
if [[ $MODE -eq 2 ]]; then
|
2026-08-31 22:36:02 -04:00
|
|
|
echo "installing caddy ( based )"
|
2026-08-31 21:36:47 -04:00
|
|
|
$INS $NOCONF $FLAG caddy
|
|
|
|
|
|
|
|
|
|
# make directory for dynamic dns service
|
|
|
|
|
mkdir -p ~/.config/dynu
|
|
|
|
|
|
|
|
|
|
cd $CWD
|
|
|
|
|
# copy dynu service and timer
|
|
|
|
|
ln -s $CWD/.config/dynu/dynu.timer /etc/systemd/system/
|
|
|
|
|
ln -s $CWD/.config/dynu/dynu.service /etc/systemd/system/
|
|
|
|
|
# copy dynu update script
|
|
|
|
|
ln -s $CWD/.config/dynu/dynu.sh ~/.config/dynu/
|
2026-07-06 21:06:55 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# GIT_CLONES
|
|
|
|
|
cd ~/Projects
|
|
|
|
|
#git clone https://github.com/alexander-the-alright/
|
|
|
|
|
#git clone https://codeberg.org/alexander-the-alright/ekho
|
|
|
|
|
git clone https://earth-1.net/oracle/ekho
|
|
|
|
|
# TODO install
|
|
|
|
|
|
|
|
|
|
exit
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# CONFIG
|
|
|
|
|
# copy over configuration files
|
|
|
|
|
cd $CWD
|
2026-08-31 21:36:47 -04:00
|
|
|
# copy .tmux directory, which contains all tmux configs
|
|
|
|
|
ln -s $CWD/.config/.tmux/ ~/.config/.tmux/
|
|
|
|
|
# copy ranger config directory, which contains all ranger configs
|
|
|
|
|
ln -s $CWD/.config/ranger/ ~/.config/ranger
|
|
|
|
|
# copy .vim and .vimrc, which are the same for all users ( so far )
|
|
|
|
|
ln -s $CWD/.config/.vim/ ~/.vim/
|
|
|
|
|
ln -s $CWD/.config/.vimrc ~/.vimrc
|
2026-07-06 21:06:55 -04:00
|
|
|
|
|
|
|
|
# TODO need to `sed` the config.json files in here to point to the correct
|
|
|
|
|
# logo, etc
|
|
|
|
|
# TODO symlink cachyos fish config files
|
|
|
|
|
|
|
|
|
|
case $USER in
|
2026-08-31 21:36:47 -04:00
|
|
|
# 1) batman/wayne
|
|
|
|
|
1)
|
|
|
|
|
;;
|
|
|
|
|
# 2) batman-beyond/mcginnis
|
2026-07-06 21:06:55 -04:00
|
|
|
2)
|
2026-08-31 21:36:47 -04:00
|
|
|
# fastfetch
|
|
|
|
|
# ly
|
|
|
|
|
ln -s ~/.config/.tmux/bb.tmux.conf ~/.tmux.conf
|
|
|
|
|
|
|
|
|
|
ln -s ~/.config/ranger/.cfgs/bb.rc.conf ~/.config/ranger/rc.conf
|
|
|
|
|
ln -s ~/.config/ranger/colorschemes/bb.gotham-2019.py ~/.config/ranger/colorschemes/gotham-2019.py
|
|
|
|
|
|
|
|
|
|
ln -s $CWD/.config/i3 ~/.config/i3
|
|
|
|
|
ln -s ~/.config/i3/.cfgs/bb.config ~/.config/i3/config
|
|
|
|
|
ln -s ~/.config/i3/.cfgs/bb.i3lock_updated.sh ~/.config/i3/i3lock_updated.sh
|
|
|
|
|
ln -s ~/.config/i3/.cfgs/bb.wallpaper.png ~/.config/i3/wallpaper.png
|
|
|
|
|
|
|
|
|
|
ln -s $CWD/.config/polybar ~/.config/polybar
|
|
|
|
|
ln -s ~/.config/polybar/.cfgs/bb.config ~/.config/polybar/config
|
|
|
|
|
|
|
|
|
|
ln -s $CWD/.config/rofi ~/.config/rofi
|
|
|
|
|
ln -s ~/.config/rofi/.cfgs/bb.gotham-2019.rasi /usr/share/rofi/themes/gotham-2019.rasi
|
|
|
|
|
ln -s ~/.config/rofi/.cfgs/bb.config ~/.config/rofi/config
|
|
|
|
|
ln -s ~/.config/rofi/.cfgs/bb.config.rasi ~/.config/rofi/config.rasi
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
2026-08-31 21:36:47 -04:00
|
|
|
# 3) nightwing/grayson
|
2026-07-06 21:06:55 -04:00
|
|
|
3)
|
2026-08-31 21:36:47 -04:00
|
|
|
# tmux
|
|
|
|
|
# ranger
|
|
|
|
|
# fastfetch
|
|
|
|
|
# niri/nirimation
|
|
|
|
|
# sddm
|
|
|
|
|
ln -s $CWD/.config/niri/ ~/.config/niri
|
|
|
|
|
ln -s $CWD/.config/nirimation/ ~/.config/niri/nirimation
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
2026-08-31 21:36:47 -04:00
|
|
|
# 4) red-hood/todd
|
|
|
|
|
4)
|
|
|
|
|
;;
|
|
|
|
|
# 5) red-robin/drake
|
2026-07-06 21:06:55 -04:00
|
|
|
5)
|
2026-08-31 21:36:47 -04:00
|
|
|
# tmux
|
|
|
|
|
# ranger
|
|
|
|
|
# fastfetch
|
|
|
|
|
# niri/nirimation
|
|
|
|
|
# sddm
|
|
|
|
|
ln -s $CWD/.config/niri/ ~/.config/niri
|
|
|
|
|
ln -s $CWD/.config/nirimation/ ~/.config/niri/nirimation
|
|
|
|
|
;;
|
|
|
|
|
# 6) robin/wayne
|
|
|
|
|
6)
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
2026-08-31 21:36:47 -04:00
|
|
|
# 7) oracle/gordon
|
2026-07-06 21:06:55 -04:00
|
|
|
7)
|
2026-08-31 21:36:47 -04:00
|
|
|
# tmux
|
|
|
|
|
# ranger
|
|
|
|
|
# fastfetch
|
|
|
|
|
# fish config
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
2026-08-31 21:36:47 -04:00
|
|
|
# 8) manhunter
|
2026-07-06 21:06:55 -04:00
|
|
|
8)
|
2026-08-31 21:36:47 -04:00
|
|
|
# tmux
|
|
|
|
|
# ranger
|
|
|
|
|
# fastfetch
|
|
|
|
|
# fish config
|
|
|
|
|
ln -s ~/.config/ranger/.cfgs/mm.rc.conf ~/.config/ranger/rc.conf
|
|
|
|
|
ln -s ~/.config/ranger/colorschemes/mm.watchtower.py ~/.config/ranger/colorschemes/watchtower.py
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
2026-08-31 21:36:47 -04:00
|
|
|
# 9) zeta
|
2026-07-06 21:06:55 -04:00
|
|
|
9)
|
2026-08-31 21:36:47 -04:00
|
|
|
# tmux
|
|
|
|
|
# ranger
|
|
|
|
|
# fastfetch
|
|
|
|
|
# fish config
|
|
|
|
|
;;
|
|
|
|
|
# W) wayne-tech
|
|
|
|
|
"W")
|
|
|
|
|
# tmux
|
|
|
|
|
# fastfetch
|
|
|
|
|
# fish config
|
2026-07-06 21:06:55 -04:00
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
2026-08-31 21:36:47 -04:00
|
|
|
|
|
|
|
|
if [[ $OS = "arch" ]]; then
|
|
|
|
|
grep -inqrs "ilovecandy" /etc/pacman.conf
|
|
|
|
|
if [[ $? -eq 1 ]]; then
|
|
|
|
|
sed -i -e "s/^Color/Color\nILoveCandy/" /etc/pacman.conf
|
|
|
|
|
fi
|
|
|
|
|
fi
|