detached 0bae381

refactor(packages): split base and extra packages for better organization

commit
0bae381da3c2b08ee69f625fe410484fb59c293b
author
bnema · · 2025-10-21 17:01 UTC
parent
7f3a1b7
signature
unsigned
5 files · +58 -24
M install.sh +1 -1
@@ -21,7 +21,7 @@ fi
2121 export ARCHUP_INSTALL_LOG_FILE="/var/log/archup-install.log"
2222 export ARCHUP_INSTALL_CONFIG="/var/log/archup-install.conf"
2323 export ARCHUP_REPO_URL="${ARCHUP_REPO_URL:-https://github.com/bnema/archup}"
24-export ARCHUP_RAW_URL="${ARCHUP_RAW_URL:-https://raw.githubusercontent.com/bnema/archup/dev}"
24+export ARCHUP_RAW_URL="${ARCHUP_RAW_URL:-https://raw.githubusercontent.com/bnema/archup/main}"
2525
2626 # Handle help flag early (doesn't need any files)
2727 if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
@@ -21,7 +21,7 @@ fi
21 export ARCHUP_INSTALL_LOG_FILE="/var/log/archup-install.log"21 export ARCHUP_INSTALL_LOG_FILE="/var/log/archup-install.log"
22 export ARCHUP_INSTALL_CONFIG="/var/log/archup-install.conf"22 export ARCHUP_INSTALL_CONFIG="/var/log/archup-install.conf"
23 export ARCHUP_REPO_URL="${ARCHUP_REPO_URL:-https://github.com/bnema/archup}"23 export ARCHUP_REPO_URL="${ARCHUP_REPO_URL:-https://github.com/bnema/archup}"
24-export ARCHUP_RAW_URL="${ARCHUP_RAW_URL:-https://raw.githubusercontent.com/bnema/archup/dev}"24+export ARCHUP_RAW_URL="${ARCHUP_RAW_URL:-https://raw.githubusercontent.com/bnema/archup/main}"
25 25
26 # Handle help flag early (doesn't need any files)26 # Handle help flag early (doesn't need any files)
27 if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then27 if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
M install/base.packages +4 -21
@@ -1,12 +1,10 @@
1-# ArchUp Base System (Tier 1 - Barebone CLI)
2-# ~20 packages - minimal foundation for CLI-only or desktop installation
1+# ArchUp Base System - Essential packages only
2+# Minimal foundation installed with pacstrap
33
44 # Core System
55 base
66 linux-firmware
77 btrfs-progs
8-snapper
9-snap-pac
108
119 # Kernel (selected dynamically by kernel.sh)
1210 # linux / linux-lts / linux-zen
@@ -16,36 +14,21 @@ snap-pac
1614
1715 # Bootloader
1816 limine
17+efibootmgr
1918 plymouth
2019 ttf-fira-sans
2120 ttf-jetbrains-mono-nerd
22-efibootmgr
2321
2422 # Networking
2523 iwd
24+openssh
2625
2726 # Essential Tools
2827 sudo
2928 neovim
3029 man-db
3130 git
32-go
3331 bash-completion
3432
35-# Modern CLI Tools
36-eza
37-zoxide
38-fzf
39-ripgrep
40-bat
41-fd
42-btop
43-delta
44-dust
45-duf
46-tealdeer
47-yazi
48-starship
49-
5033 # Encryption (added if LUKS enabled)
5134 # cryptsetup
@@ -1,12 +1,10 @@
1-# ArchUp Base System (Tier 1 - Barebone CLI)1+# ArchUp Base System - Essential packages only
2-# ~20 packages - minimal foundation for CLI-only or desktop installation2+# Minimal foundation installed with pacstrap
3 3
4 # Core System4 # Core System
5 base5 base
6 linux-firmware6 linux-firmware
7 btrfs-progs7 btrfs-progs
8-snapper
9-snap-pac
10 8
11 # Kernel (selected dynamically by kernel.sh)9 # Kernel (selected dynamically by kernel.sh)
12 # linux / linux-lts / linux-zen10 # linux / linux-lts / linux-zen
@@ -16,36 +14,21 @@ snap-pac
16 14
17 # Bootloader15 # Bootloader
18 limine16 limine
17+efibootmgr
19 plymouth18 plymouth
20 ttf-fira-sans19 ttf-fira-sans
21 ttf-jetbrains-mono-nerd20 ttf-jetbrains-mono-nerd
22-efibootmgr
23 21
24 # Networking22 # Networking
25 iwd23 iwd
24+openssh
26 25
27 # Essential Tools26 # Essential Tools
28 sudo27 sudo
29 neovim28 neovim
30 man-db29 man-db
31 git30 git
32-go
33 bash-completion31 bash-completion
34 32
35-# Modern CLI Tools
36-eza
37-zoxide
38-fzf
39-ripgrep
40-bat
41-fd
42-btop
43-delta
44-dust
45-duf
46-tealdeer
47-yazi
48-starship
49-
50 # Encryption (added if LUKS enabled)33 # Encryption (added if LUKS enabled)
51 # cryptsetup34 # cryptsetup
M install/base/all.sh +1 -1
@@ -6,5 +6,5 @@ source "$ARCHUP_INSTALL/base/kernel.sh" # Interactive (gum choose)
66 start_log_output # Resume after prompt
77
88 run_logged "$ARCHUP_INSTALL/base/cachyos-repo.sh" # Configure CachyOS repo if needed
9-run_logged "$ARCHUP_INSTALL/base/pacstrap.sh" # Non-interactive
9+run_logged "$ARCHUP_INSTALL/base/pacstrap.sh" # Non-interactive (essential packages only)
1010 run_logged "$ARCHUP_INSTALL/base/fstab.sh" # Non-interactive
@@ -6,5 +6,5 @@ source "$ARCHUP_INSTALL/base/kernel.sh" # Interactive (gum choose)
6 start_log_output # Resume after prompt6 start_log_output # Resume after prompt
7 7
8 run_logged "$ARCHUP_INSTALL/base/cachyos-repo.sh" # Configure CachyOS repo if needed8 run_logged "$ARCHUP_INSTALL/base/cachyos-repo.sh" # Configure CachyOS repo if needed
9-run_logged "$ARCHUP_INSTALL/base/pacstrap.sh" # Non-interactive9+run_logged "$ARCHUP_INSTALL/base/pacstrap.sh" # Non-interactive (essential packages only)
10 run_logged "$ARCHUP_INSTALL/base/fstab.sh" # Non-interactive10 run_logged "$ARCHUP_INSTALL/base/fstab.sh" # Non-interactive
A install/extra.packages +35 -0
@@ -0,0 +1,35 @@
1+# ArchUp Extra Packages - Installed after Chaotic-AUR is configured
2+# Modern CLI tools and enhancements from Chaotic-AUR
3+
4+# Snapper integration
5+snapper
6+snap-pac
7+
8+# Go toolchain (for AUR helper)
9+go
10+
11+# System utilities
12+dosfstools
13+which
14+wget
15+unzip
16+p7zip
17+
18+# Bluetooth
19+bluez
20+bluez-utils
21+
22+# Modern CLI Tools (from Chaotic-AUR)
23+eza
24+zoxide
25+fzf
26+ripgrep
27+bat
28+fd
29+btop
30+git-delta
31+dust
32+duf
33+tealdeer
34+yazi
35+starship
@@ -0,0 +1,35 @@
1+# ArchUp Extra Packages - Installed after Chaotic-AUR is configured
2+# Modern CLI tools and enhancements from Chaotic-AUR
3+
4+# Snapper integration
5+snapper
6+snap-pac
7+
8+# Go toolchain (for AUR helper)
9+go
10+
11+# System utilities
12+dosfstools
13+which
14+wget
15+unzip
16+p7zip
17+
18+# Bluetooth
19+bluez
20+bluez-utils
21+
22+# Modern CLI Tools (from Chaotic-AUR)
23+eza
24+zoxide
25+fzf
26+ripgrep
27+bat
28+fd
29+btop
30+git-delta
31+dust
32+duf
33+tealdeer
34+yazi
35+starship
M install/repos/chaotic.sh +17 -1
@@ -31,7 +31,7 @@ arch-chroot /mnt pacman -Sy >> "$ARCHUP_INSTALL_LOG_FILE" 2>&1
3131
3232 # Verify Chaotic-AUR is working
3333 if arch-chroot /mnt pacman -Sl chaotic-aur >/dev/null 2>&1; then
34- gum style --foreground 2 --padding "1 0 1 $PADDING_LEFT" "[OK] Chaotic-AUR enabled successfully"
34+ gum style --foreground 2 --padding "0 0 1 $PADDING_LEFT" "[OK] Chaotic-AUR enabled successfully"
3535 echo "Chaotic-AUR: enabled (repo added to pacman.conf)" >> "$ARCHUP_INSTALL_LOG_FILE"
3636 else
3737 gum style --foreground 1 --padding "1 0 1 $PADDING_LEFT" "[ERROR] Chaotic-AUR verification failed"
@@ -39,3 +39,19 @@ else
3939 export ARCHUP_CHAOTIC="failed"
4040 return 1
4141 fi
42+
43+# Install extra packages from Chaotic-AUR
44+gum style --foreground 6 --padding "1 0 0 $PADDING_LEFT" "Installing extra packages..."
45+
46+# Read extra package list
47+mapfile -t extra_packages < <(grep -v '^#' "$ARCHUP_INSTALL/extra.packages" | grep -v '^$')
48+
49+echo "Installing ${#extra_packages[@]} extra packages: ${extra_packages[*]}" >> "$ARCHUP_INSTALL_LOG_FILE"
50+
51+if ! run_with_spinner "Installing extra packages (${#extra_packages[@]} packages)..." "arch-chroot /mnt pacman -S --noconfirm ${extra_packages[*]}"; then
52+ gum style --foreground 1 --padding "1 0 1 $PADDING_LEFT" "[ERROR] Extra packages installation failed"
53+ echo "WARNING: Some extra packages failed to install" >> "$ARCHUP_INSTALL_LOG_FILE"
54+else
55+ gum style --foreground 2 --padding "1 0 1 $PADDING_LEFT" "[OK] Extra packages installed"
56+ echo "Installed ${#extra_packages[@]} extra packages" >> "$ARCHUP_INSTALL_LOG_FILE"
57+fi
@@ -31,7 +31,7 @@ arch-chroot /mnt pacman -Sy >> "$ARCHUP_INSTALL_LOG_FILE" 2>&1
31 31
32 # Verify Chaotic-AUR is working32 # Verify Chaotic-AUR is working
33 if arch-chroot /mnt pacman -Sl chaotic-aur >/dev/null 2>&1; then33 if arch-chroot /mnt pacman -Sl chaotic-aur >/dev/null 2>&1; then
34- gum style --foreground 2 --padding "1 0 1 $PADDING_LEFT" "[OK] Chaotic-AUR enabled successfully"34+ gum style --foreground 2 --padding "0 0 1 $PADDING_LEFT" "[OK] Chaotic-AUR enabled successfully"
35 echo "Chaotic-AUR: enabled (repo added to pacman.conf)" >> "$ARCHUP_INSTALL_LOG_FILE"35 echo "Chaotic-AUR: enabled (repo added to pacman.conf)" >> "$ARCHUP_INSTALL_LOG_FILE"
36 else36 else
37 gum style --foreground 1 --padding "1 0 1 $PADDING_LEFT" "[ERROR] Chaotic-AUR verification failed"37 gum style --foreground 1 --padding "1 0 1 $PADDING_LEFT" "[ERROR] Chaotic-AUR verification failed"
@@ -39,3 +39,19 @@ else
39 export ARCHUP_CHAOTIC="failed"39 export ARCHUP_CHAOTIC="failed"
40 return 140 return 1
41 fi41 fi
42+
43+# Install extra packages from Chaotic-AUR
44+gum style --foreground 6 --padding "1 0 0 $PADDING_LEFT" "Installing extra packages..."
45+
46+# Read extra package list
47+mapfile -t extra_packages < <(grep -v '^#' "$ARCHUP_INSTALL/extra.packages" | grep -v '^$')
48+
49+echo "Installing ${#extra_packages[@]} extra packages: ${extra_packages[*]}" >> "$ARCHUP_INSTALL_LOG_FILE"
50+
51+if ! run_with_spinner "Installing extra packages (${#extra_packages[@]} packages)..." "arch-chroot /mnt pacman -S --noconfirm ${extra_packages[*]}"; then
52+ gum style --foreground 1 --padding "1 0 1 $PADDING_LEFT" "[ERROR] Extra packages installation failed"
53+ echo "WARNING: Some extra packages failed to install" >> "$ARCHUP_INSTALL_LOG_FILE"
54+else
55+ gum style --foreground 2 --padding "1 0 1 $PADDING_LEFT" "[OK] Extra packages installed"
56+ echo "Installed ${#extra_packages[@]} extra packages" >> "$ARCHUP_INSTALL_LOG_FILE"
57+fi

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 0

    ↑↓ moveenter openesc close