This repository provides a comprehensive guide to setting up Arch Linux on a Dell XPS 9520, but will work on other systems as well. It includes detailed instructions for installing a secure, high-performance base system with modern technologies and optimizing it for stability and functionality.
- Introduction
- System Architecture
- Prerequisites
- Installation Guide
- Package Installation
- Power Management
- Contributing
- License
This guide is optimized for modern Arch Linux installations with a focus on security, performance, and simplicity. It features:
- Full disk encryption with LUKS2
- Flexible storage with LVM
- Modern filesystem with Btrfs subvolumes
- Efficient memory usage with zram
- Wayland-first desktop environments
- Modern power management with power-profiles-daemon
- Streamlined package selection - no bloat
┌─────────────────────────────────────────────────────────────┐
│ /boot (EFI System Partition) - 1GB │
├─────────────────────────────────────────────────────────────┤
│ LUKS2 Encrypted Partition │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ LVM Volume Group (vg0) │ │
│ │ ┌─────────────────────────────────────────────────────┐ │ │
│ │ │ root (uses all available space) │ │ │
│ │ │ Btrfs with subvolumes: │ │ │
│ │ │ @ (root filesystem) │ │ │
│ │ │ @home (user home directories) │ │ │
│ │ │ @var (system logs, cache) │ │ │
│ │ │ @tmp (temporary files) │ │ │
│ │ │ @snapshots (system snapshots) │ │ │
│ │ └─────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┐ │
└─────────────────────────────────────────────────────────────┘
- LUKS2: Full disk encryption for security
- LVM: Flexible volume management
- Btrfs: Copy-on-write filesystem with compression and snapshots
- zram: Compressed swap in RAM (replaces traditional swap)
- mkinitcpio: Standard Arch Linux initramfs
- PipeWire: Modern audio system
- Wayland: Modern display protocol
Before you begin, ensure you have the following:
- A Dell XPS 9520 laptop (or compatible system)
- A bootable USB drive with the Arch Linux ISO
- An active internet connection
- Basic familiarity with command line operations
Follow the steps in arch-base-installation.md to install the base system. This includes:
-
Pre-Installation Setup
- Booting the Arch Linux installer
- Verifying UEFI boot mode
- Connecting to the internet
- Setting system clock and keyboard layout
-
Disk Setup
- Creating EFI and encrypted LVM partitions
- Setting up LUKS2 encryption
- Configuring LVM logical volumes
- Creating Btrfs filesystems with subvolumes
-
System Installation
- Installing essential packages with
pacstrap - Configuring
fstabfor automatic mounting - Setting up system locale, timezone, and hostname
- Installing essential packages with
-
Boot Configuration
- Configuring
mkinitcpiofor LUKS+LVM support - Installing and configuring GRUB bootloader
- Setting up zram for compressed swap
- Configuring
-
User Setup
- Creating root password and user account
- Configuring sudo access
Choose between two modern desktop environments:
- Wayland by default
- Full-featured desktop environment
- Excellent hardware integration
- Perfect for users wanting a familiar desktop experience
- Pure Wayland compositor
- Dynamic tiling window management
- Highly customizable
- Uses GNOME tools (Nautilus, keyring) for integration
- Ideal for power users and developers
This system uses a modular package approach - install only what you need for your specific use case.
For detailed commands and explanations, see recommended-packages.md
The package installation is organized into 4 categories:
- Base System (27 packages) - Essential for all installations
- Desktop System (19 packages) - Required for GUI desktop environments
- Desktop Environment - Choose GNOME (6 packages) or Hyprland (6 packages)
- Modern Tools (18+ packages) - Optional productivity and development tools
Option 1: Server/Headless System
# Install base system only (27 packages)
# See recommended-packages.md for commandOption 2: Complete GNOME Desktop
# Install base + desktop + GNOME (52 packages)
# See recommended-packages.md for commandOption 3: Complete Hyprland Desktop
# Install base + desktop + Hyprland (51 packages)
# See recommended-packages.md for commandOption 4: Everything (Power User)
# Install all categories (70+ packages)
# See recommended-packages.md for command👉 See recommended-packages.md for:
- Complete installation commands for each option
- Individual category commands for modular installation
- Package descriptions and explanations
- Service configuration commands
- Post-installation setup steps
Essential for ANY Arch installation - servers, desktops, everything:
- Hardware drivers (Intel CPU/GPU, firmware)
- Networking (full stack with device discovery)
- System utilities (documentation, package management)
- Security (firewall, authentication)
- Printing (CUPS setup)
- Development basics (build tools, Git, editor)
Required for GUI desktop environments:
- Audio system (complete PipeWire setup)
- File management (auto-mounting, network shares)
- Desktop integration (fonts, clipboard, authentication)
- Essential applications (web browser)
Pick one based on your preference:
- GNOME (6 packages): Traditional desktop, beginner-friendly
- Hyprland (6 packages): Tiling window manager, advanced users
Optional enhancements for developers and power users:
- Modern CLI tools (fd, ripgrep, zoxide, fzf)
- Enhanced shell experience (Fish, Starship)
- Development utilities (GitHub CLI, tree-sitter)
- System monitoring (btop, fastfetch)
- Backup tools (Timeshift)
- New users: Start with Base System + Complete GNOME Desktop
- Experienced users: Base System + Desktop System + Hyprland + selected Modern Tools
- Servers: Base System only
- Developers: Everything for full productivity suite
📚 For step-by-step installation commands, see recommended-packages.md
This setup uses power-profiles-daemon for modern, integrated power management:
- GNOME integration: Native support in GNOME settings
- Automatic switching: Intelligent power profile switching
- Modern approach: Replaces both tlp and thermald
- Simplified management: Single service for all power needs
- Performance: Maximum performance for demanding tasks
- Balanced: Optimal balance of performance and battery life
- Power Saver: Extended battery life for mobile use
# List available profiles
powerprofilesctl list
# Set specific profile
powerprofilesctl set power-saver
powerprofilesctl set balanced
powerprofilesctl set performance- ✅ Full disk encryption with LUKS2
- ✅ Secure boot compatible (optional)
- ✅ Firewall with UFW
- ✅ Password management with GNOME Keyring
- ✅ zram for efficient memory usage
- ✅ Btrfs compression for space savings
- ✅ Modern audio with PipeWire
- ✅ GPU acceleration with Vulkan support
- ✅ Network discovery for printers and local devices
- ✅ Automatic device mounting for USB drives
- ✅ Font coverage for international languages
- ✅ Wayland for modern display handling
- ✅ Complete toolchain with base-devel
- ✅ Modern editor with Neovim + Tree-sitter
- ✅ Version control with Git
- ✅ Package management utilities
Contributions are welcome! If you have improvements or suggestions:
- Open an issue to discuss the change
- Submit a pull request with detailed description
Your contributions help improve this guide for all users.
This project is licensed under the MIT License. See the LICENSE file for details.
Result: A secure, high-performance Arch Linux system optimized for modern laptops with full disk encryption, efficient storage management, and streamlined package selection. Perfect for both daily use and development work.