Skip to content

arzeck/arch-script

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

#!/bin/bash

# ============================================================================
# ARCH LINUX INTERACTIVE INSTALLER - QUICK START
# ============================================================================

cat << 'EOF'

╔════════════════════════════════════════════════════════════════════════════╗
║              Arch Linux Interactive Installer - Quick Start                ║
║                     Like omarchy, but fully custom                         ║
╚════════════════════════════════════════════════════════════════════════════╝

## HOW TO USE

1. Boot Arch ISO
   - Download: https://archlinux.org/download/
   - Create USB: dd if=arch.iso of=/dev/sdX bs=4M status=progress
   - Boot into live environment

2. Connect to Internet (if not auto-detected)
   For Wi-Fi:
     $ iwctl
     [iwctl]# station wlan0 connect SSID
     [iwctl]# exit
   
   For Ethernet:
     Should work automatically

3. Verify Internet
   $ ping archlinux.org

4. Download the installer script
   $ curl -O https://your-url/arch-install-interactive.sh
   
   Or copy it via USB/other means

5. Make it executable
   $ chmod +x arch-install-interactive.sh

6. RUN THE INSTALLER
   $ sudo bash arch-install-interactive.sh

7. Answer all questions
   The script will ask for:
   - Hostname
   - Timezone
   - Locale
   - Keyboard layout
   - Username and password
   - Disk to install to (WITH WARNING)
   - Partition sizes
   - Bootloader (systemd-boot or GRUB)
   - Network manager (NetworkManager or systemd)
   - Desktop environment options
   - GPU drivers
   - Development tools

8. Review summary and confirm

9. Let it install (fully automated after confirmation)

10. Reboot
    $ reboot

11. Login and enjoy!
    - SDDM login screen
    - Select "Hyprland"
    - Use Mod+Return for terminal

═══════════════════════════════════════════════════════════════════════════

## FEATURES

✓ Fully interactive - asks all questions upfront
✓ Colorized output - easy to follow
✓ Error checking - validates disk, internet, root access
✓ Complete automation - once you answer questions, everything is automated
✓ Hyprland + QuickShell + Caelestia dots
✓ Development tools (optional)
✓ Multiple GPU driver options
✓ SDDM display manager included

═══════════════════════════════════════════════════════════════════════════

## WHAT GETS INSTALLED

REQUIRED:
- Linux kernel + firmware
- Base utilities (git, curl, wget, neovim, nano)
- Bootloader (systemd-boot or GRUB)
- Network manager (NetworkManager or systemd)
- Hyprland + dependencies
- SDDM display manager

OPTIONAL:
- QuickShell (ask during setup)
- Caelestia dots (ask during setup)
- Development tools: Python, Node, Rust, GCC, Clang, Git, etc.

GPU DRIVERS:
- AMD: vulkan-radeon + mesa
- Intel: vulkan-intel + mesa
- NVIDIA: nvidia-dkms + nvidia-utils
- Software rendering: none (pure Mesa)

═══════════════════════════════════════════════════════════════════════════

## EXAMPLE WALKTHROUGH

$ sudo bash arch-install-interactive.sh

[INFO] Running pre-flight checks...
[✓] Running as root
[✓] Internet connection confirmed
[✓] EFI boot detected

────────────────────────────────────────────────────────────────

[INFO] System Configuration

Hostname [arch-system]: my-machine
[✓] Hostname: my-machine

Select timezone
  1) Asia/Kolkata
  2) Asia/Bangkok
  ...
Enter choice [1-12]: 1
[✓] Timezone: Asia/Kolkata

Locale [en_US.UTF-8]: 
[✓] Locale: en_US.UTF-8

Keyboard layout [us]: 
[✓] Keyboard: us

────────────────────────────────────────────────────────────────

[INFO] User Configuration

Username (main user) [user]: john
[✓] Username: john

Set password for user: john
User password: ••••••
Confirm password: ••••••
[✓] Password set

Set password for root user
Root password: ••••••
Confirm password: ••••••
[✓] Root password set

────────────────────────────────────────────────────────────────

[INFO] Disk Configuration

Available disks:
  /dev/nvme0n1 - 500G
  /dev/sda - 2T

CAREFUL: This will wipe the selected disk!

Enter disk path [/dev/nvme0n1]: /dev/nvme0n1
[✓] Selected disk: /dev/nvme0n1 (500G)

FINAL WARNING: This will ERASE /dev/nvme0n1
Are you ABSOLUTELY SURE? [y/n]: y

... (more configuration screens) ...

════════════════════════════════════════════════════════════════

[INFO] Installation Summary

System Configuration:
  Hostname:     my-machine
  Timezone:     Asia/Kolkata
  Locale:       en_US.UTF-8
  Keyboard:     us

User Configuration:
  Username:     john
  Root user:    enabled

Disk Configuration:
  Disk:         /dev/nvme0n1
  EFI size:     +512M
  Swap size:    +4G
  Bootloader:   systemd-boot

... (all your settings) ...

Proceed with installation? [y/n]: y

════════════════════════════════════════════════════════════════

[INFO] Starting installation...

[INFO] === PHASE 1: DISK PARTITIONING ===
[INFO] Partitioning disk: /dev/nvme0n1
[✓] Partitions created
[INFO] Formatting filesystems...
[✓] Filesystems formatted
[INFO] Mounting filesystems...
[✓] Filesystems mounted

[INFO] === PHASE 2: BASE SYSTEM ===
[INFO] Installing base system packages...
[✓] Base system installed
[INFO] Generating fstab...
[✓] fstab generated
[INFO] Configuring system...
[✓] System configured

[INFO] === PHASE 3: BOOTLOADER & USERS ===
[INFO] Installing bootloader: systemd-boot
[✓] Bootloader installed
[INFO] Setting up users...
[✓] Users configured
[INFO] Installing network manager: NetworkManager
[✓] Network configured

[INFO] === PHASE 4: DESKTOP ENVIRONMENT ===
[INFO] Installing Hyprland and dependencies...
[✓] Hyprland installed
[INFO] Installing SDDM display manager...
[✓] SDDM installed

[INFO] === PHASE 5: ADDITIONAL SOFTWARE ===
[INFO] Installing QuickShell...
[✓] QuickShell installed
[INFO] Installing Caelestia dots...
[✓] Caelestia dots installed
[INFO] Installing development tools...
[✓] Development tools installed

════════════════════════════════════════════════════════════════

[✓] Installation Complete!

System Information:
  Hostname:     my-machine
  Timezone:     Asia/Kolkata
  User:         john
  WM:           Hyprland

Next Steps:
  1. reboot
  2. Select "Hyprland" at SDDM login screen
  3. Login with username: john
  4. Configure Hyprland: edit ~/.config/hypr/hyprland.conf
  5. Launch terminal: Mod+Return (Mod = Super key)

════════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

## TROUBLESHOOTING

### "Must run as root"
Solution: $ sudo bash arch-install-interactive.sh

### "No internet connection"
Solution: 
  - For Wi-Fi: Run 'iwctl' to connect
  - For Ethernet: Make sure cable is plugged in
  - Test: ping archlinux.org

### "Disk not found"
Solution:
  - Run: lsblk
  - Double-check disk name (e.g., /dev/nvme0n1 not /dev/nvme0n1p1)
  - Make sure you're using actual disk, not partition

### Script hangs during pacstrap
Solution: This is NORMAL. Just wait - downloading packages takes time.

### Can't login after reboot
Solution:
  - Press Ctrl+Alt+F2 to get to TTY
  - Login with username/password
  - Try: systemctl status sddm
  - Or manually start Hyprland: Hyprland

### QuickShell build fails
Solution:
  - Manually install later: yay -S quickshell
  - Or install without QuickShell and add later

═══════════════════════════════════════════════════════════════

## WHAT YOU GET AFTER INSTALLATION

Terminal: foot (or kitty if you chose it)
  - Launch: Mod+Return
  - Close: Mod+Q
  
File manager: Not pre-installed, install with:
  $ sudo pacman -S thunar

System Monitor: Install with:
  $ sudo pacman -S gtkop

Text Editor: Neovim installed
  $ nvim filename

Browser: Install with:
  $ sudo pacman -S firefox

Other tools:
  - Git (version control)
  - Python + npm (development)
  - Rustup (Rust)
  - htop (system monitor)
  - tmux (terminal multiplexer)

═══════════════════════════════════════════════════════════════

## NEXT STEPS AFTER REBOOT

1. Update system
   $ sudo pacman -Syu

2. Install AUR helper (yay)
   $ git clone https://aur.archlinux.org/yay.git
   $ cd yay
   $ makepkg -si

3. Install more packages
   $ sudo pacman -S firefox thunderbird vlc
   $ yay -S visual-studio-code-bin

4. Customize Hyprland
   Edit: ~/.config/hypr/hyprland.conf
   Restart: Ctrl+Super+R (or reloggin)

5. Install fonts
   $ sudo pacman -S ttf-dejavu ttf-liberation noto-fonts

═══════════════════════════════════════════════════════════════

Questions? Check the Arch Wiki: https://wiki.archlinux.org

EOF

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages