diff options
| author | bh <qn+git@epicurus.dev> | 2026-03-23 21:13:41 +0800 |
|---|---|---|
| committer | bh <qn+git@epicurus.dev> | 2026-03-23 21:13:41 +0800 |
| commit | fd1067b9434b3a161cbd09e0cbffa23151c4c279 (patch) | |
| tree | 21d99573b04605bc870812f8f397bc5149afb902 /.install | |
| parent | 5bca208b0cd31d32cf09a5681dc0e320851cd28d (diff) | |
Fix location of install scripts
Diffstat (limited to '.install')
| -rwxr-xr-x | .install/aetherfox | 41 | ||||
| -rwxr-xr-x | .install/aur | 47 | ||||
| -rwxr-xr-x | .install/install | 200 | ||||
| -rwxr-xr-x | .install/runall | 8 | ||||
| -rwxr-xr-x | .install/stowall | 19 |
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 |
