summaryrefslogtreecommitdiff
path: root/.install
diff options
context:
space:
mode:
authorbh <qn+git@epicurus.dev>2026-03-23 21:13:41 +0800
committerbh <qn+git@epicurus.dev>2026-03-23 21:13:41 +0800
commitfd1067b9434b3a161cbd09e0cbffa23151c4c279 (patch)
tree21d99573b04605bc870812f8f397bc5149afb902 /.install
parent5bca208b0cd31d32cf09a5681dc0e320851cd28d (diff)
Fix location of install scripts
Diffstat (limited to '.install')
-rwxr-xr-x.install/aetherfox41
-rwxr-xr-x.install/aur47
-rwxr-xr-x.install/install200
-rwxr-xr-x.install/runall8
-rwxr-xr-x.install/stowall19
5 files changed, 315 insertions, 0 deletions
diff --git a/.install/aetherfox b/.install/aetherfox
new file mode 100755
index 0000000..722560c
--- /dev/null
+++ b/.install/aetherfox
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+FIREFOX_DIR="${HOME}/.mozilla/firefox"
+REPO_URL="https://github.com/QuixoticNapoleon/AetherFox"
+
+if [[ ! -d "$FIREFOX_DIR" ]]; then
+ echo "Firefox profile directory not found: $FIREFOX_DIR" >&2
+ exit 1
+fi
+
+profile_dir=""
+
+shopt -s nullglob
+profiles=( "$FIREFOX_DIR"/*.default-release )
+shopt -u nullglob
+
+if (( ${#profiles[@]} == 0 )); then
+ echo "No Firefox .default-release profile found in $FIREFOX_DIR" >&2
+ exit 1
+fi
+
+profile_dir="${profiles[0]}"
+chrome_dir="${profile_dir}/chrome"
+
+mkdir -p "$chrome_dir"
+
+if [[ -d "$chrome_dir/.git" ]]; then
+ echo "Git repository already exists in: $chrome_dir"
+ exit 0
+fi
+
+echo "No git repository found in: $chrome_dir"
+echo "Removing existing contents..."
+
+find "$chrome_dir" -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +
+
+echo "Cloning AetherFox into: $chrome_dir"
+git clone "$REPO_URL" "$chrome_dir"
+
+echo "Done."
diff --git a/.install/aur b/.install/aur
new file mode 100755
index 0000000..51dba03
--- /dev/null
+++ b/.install/aur
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# Install paru on Arch-based systems, then clean cache.
+
+if [[ "$(id -u)" -eq 0 ]]; then
+ echo "Please run this script as a normal user, not root."
+ exit 1
+fi
+
+if ! command -v pacman >/dev/null 2>&1; then
+ echo "This script requires pacman. Are you on Arch or an Arch-based distro?"
+ exit 1
+fi
+
+if command -v paru >/dev/null 2>&1; then
+ echo "paru is already installed."
+else
+ echo "Installing required packages..."
+ sudo pacman -S --needed --noconfirm base-devel git
+
+ tmpdir="$(mktemp -d)"
+ trap 'rm -rf "$tmpdir"' EXIT
+
+ echo "Cloning paru into $tmpdir..."
+ git clone https://aur.archlinux.org/paru.git "$tmpdir/paru"
+
+ cd "$tmpdir/paru"
+
+ echo "Building and installing paru..."
+ makepkg -si --noconfirm
+fi
+
+echo "Cleaning paru cache..."
+paru -Scc --noconfirm || true
+
+echo "Done."
+
+packages=(
+ llama.cpp
+ ledger-live
+ orca-slicer
+ tidal-hifi-bin
+ dropbox
+)
+
+paru -S --needed "${packages[@]}"
diff --git a/.install/install b/.install/install
new file mode 100755
index 0000000..1b5668e
--- /dev/null
+++ b/.install/install
@@ -0,0 +1,200 @@
+#!/usr/bin/env bash
+
+packages=(
+ # Base
+ base
+ linux-zen
+ linux-firmware
+ sof-firmware
+ linux-zen-headers
+ networkmanager
+ grub
+ pipewire
+ sudo
+ cryptsetup
+ lvm2
+ efibootmgr
+
+ # Disk
+ btrfs-progs
+ snapper
+
+ # Terminal
+ zsh
+ kitty
+ eza
+
+ # Programming
+ base-devel
+ cmake
+ ninja
+ clang
+ rust
+ go
+ zig
+ nim
+ python
+ ghc
+ php
+ texlive
+ julia
+ nginx
+ nasm
+
+ # Apps
+ firefox
+ neovim
+ emacs
+ zathura
+ discord
+ steam
+ thunderbird
+ kicad
+ freecad
+ openscad
+ qbittorrent
+ audacity
+ gimp
+ blender
+ flatpak
+ thunar
+
+ # Tools
+ git
+ stow
+ opencode
+ sagemath
+ fastfetch
+ btop
+ yt-dlp
+ vlc
+ mpv
+ ripgrep
+ fd
+ wget
+ bat
+ ffmpeg
+ qemu-full
+ fzf
+ zoxide
+ yazi
+ tmux
+ aria2
+ jq
+ perl-rename
+ lftp
+ grim
+ slurp
+ tcc
+ tor
+ trash-cli
+
+ # Desktop
+ hyprland
+ hyprpaper
+ hyprlock
+ hyprpicker
+ quickshell
+ rofi
+ dunst
+ ly
+ wl-clipboard
+ cliphist
+
+ # Backup Desktop
+ bspwm
+ sxhkd
+ polybar
+ feh
+ xorg
+
+ # Drivers
+ bluez
+ cups
+ nvidia-open-dkms
+ nvidia-utils
+ lib32-nvidia-utils
+ nvidia-settings
+ opencl-nvidia
+ cuda
+
+ # Fonts
+ adobe-source-code-pro-fonts
+ adobe-source-sans-fonts
+ adobe-source-serif-fonts
+ ttf-0xproto-nerd
+ ttf-3270-nerd
+ ttf-agave-nerd
+ ttf-anonymouspro-nerd
+ ttf-arimo-nerd
+ ttf-bigblueterminal-nerd
+ ttf-bitstream-vera-mono-nerd
+ ttf-cascadia-code
+ ttf-cascadia-code-nerd
+ ttf-cascadia-mono-nerd
+ ttf-cousine-nerd
+ ttf-croscore
+ ttf-d2coding-nerd
+ ttf-daddytime-mono-nerd
+ ttf-dejavu
+ ttf-dejavu-nerd
+ ttf-droid
+ ttf-envycoder-nerd
+ ttf-fantasque-nerd
+ ttf-fira-code
+ ttf-firacode-nerd
+ ttf-go-nerd
+ ttf-gohu-nerd
+ ttf-hack
+ ttf-hack-nerd
+ ttf-heavydata-nerd
+ ttf-iawriter-nerd
+ ttf-ibmplex-mono-nerd
+ ttf-inconsolata
+ ttf-inconsolata-go-nerd
+ ttf-inconsolata-lgc-nerd
+ ttf-inconsolata-nerd
+ ttf-intone-nerd
+ ttf-iosevka-nerd
+ ttf-iosevkaterm-nerd
+ ttf-iosevkatermslab-nerd
+ ttf-jetbrains-mono-nerd
+ ttf-junicode
+ ttf-lekton-nerd
+ ttf-liberation
+ ttf-liberation-mono-nerd
+ ttf-lilex-nerd
+ ttf-martian-mono-nerd
+ ttf-meslo-nerd
+ ttf-monofur-nerd
+ ttf-monoid-nerd
+ ttf-mononoki-nerd
+ ttf-mplus-nerd
+ # ttf-nanumgothic_coding
+ ttf-nerd-fonts-symbols
+ ttf-nerd-fonts-symbols-mono
+ ttf-noto-nerd
+ ttf-profont-nerd
+ ttf-proggyclean-nerd
+ ttf-recursive-nerd
+ ttf-roboto-mono-nerd
+ ttf-sharetech-mono-nerd
+ ttf-sourcecodepro-nerd
+ ttf-space-mono-nerd
+ ttf-terminus-nerd
+ ttf-tinos-nerd
+ ttf-ubuntu-font-family
+ ttf-ubuntu-mono-nerd
+ ttf-ubuntu-nerd
+ ttf-victor-mono-nerd
+ ttf-zed-mono-nerd
+
+ # Music
+ reaper
+ timidity++
+ mpd
+ mpc
+ rmpc
+)
+
+sudo pacman -S --needed "${packages[@]}"
diff --git a/.install/runall b/.install/runall
new file mode 100755
index 0000000..d8e2502
--- /dev/null
+++ b/.install/runall
@@ -0,0 +1,8 @@
+./install
+./aur
+./aetherfox
+
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
+sh -c "$(curl -sS https://vencord.dev/install.sh)"
+
+./stowall
diff --git a/.install/stowall b/.install/stowall
new file mode 100755
index 0000000..ecb899f
--- /dev/null
+++ b/.install/stowall
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+DOTFILES_DIR="${1:-$HOME/Dotfiles}"
+
+cd "$DOTFILES_DIR"
+
+for pkg in *; do
+ [[ "$pkg" == "system" ]] && continue
+ [[ -d "$pkg" ]] || continue
+ stow -d "$DOTFILES_DIR" -t "$HOME" "$pkg"
+done
+
+if [[ -d system ]]; then
+ for pkg in system/*; do
+ [[ -d "$pkg" ]] || continue
+ sudo stow -d "$DOTFILES_DIR/system" -t / "$(basename "$pkg")"
+ done
+fi