Custom Arch Linux installation ISO with KDE Plasma, NVIDIA drivers, and automated installation.
The ISO boots into a live KDE Plasma desktop with:
- Username:
liveuser - Password: None (auto-login)
- Sudo access: Enabled (passwordless)
- Desktop: KDE Plasma on Wayland via SDDM
- Network: NetworkManager enabled
An automated installer script is available on the desktop (or via terminal) that installs:
- Partitioning: GPT with EFI (FAT32, 2048 MiB) + Btrfs root
- Bootloader: systemd-boot with Intel microcode
- GPU: NVIDIA open-source DKMS drivers with Wayland support
- Desktop: KDE Plasma on Wayland via plasma-login-manager
- Audio: PipeWire
- Locale: UK (en_GB.UTF-8, uk keyboard, Europe/London timezone)
- User: Customizable username with sudo access
- Boot from the ISO
- Automatically logs in to KDE Plasma as
liveuser - Full desktop environment with networking, browser, file manager, etc.
Option 1: Double-click the "Arch Installer" desktop icon
Option 2: Open Konsole and run:
sudo /root/scripts/arch-install.shThe installer will:
- Detect and partition the disk
- Install all packages (base system, KDE, NVIDIA, applications)
- Configure locale, timezone, and keyboard layout
- Set up NVIDIA drivers with Wayland/DRM support
- Install systemd-boot bootloader
- Create your user account
- Reboot into the installed system
Build-time configuration is set in .github/workflows/build.yml:
env:
EFI_SIZE: 2048 # EFI partition size in MiB
LOCAL_ZONE: Europe/London # Timezone
LOCALE: en_GB.UTF-8 # System locale
KEYMAP: uk # Console keymap
X11_KEYMAP: gb # X11/Wayland keymap
HOSTNAME: arch-javid # Hostname for installed system
USERNAME: javid # Username for installed system
PASSWORD: password # User password for installed systemThe project uses two separate package lists:
-
packages.x86_64- Live ISO packages (used bymkarchiso)- Minimal base system + SDDM + KDE Plasma desktop
- Basic applications and partitioning tools
- Critical: Must include
mkinitcpio-archisofor live boot
-
packages.txt- Installed system packages (used bypacstrap)- Full system with NVIDIA drivers + complete KDE suite
- Uses
plasma-login-managerinstead of SDDM
arch-javid/
├── .github/workflows/
│ └── build.yml # GitHub Actions: builds the ISO
├── airootfs/ # Live ISO customization files
│ ├── etc/
│ │ ├── sddm.conf.d/
│ │ │ └── autologin.conf # Auto-login config for live user
│ │ └── sudoers.d/
│ │ └── liveuser # Sudo permissions for live user
│ └── root/
│ └── customize_airootfs.sh # Live environment setup script
├── scripts/ # Installer scripts (for installed system)
│ ├── arch-install.sh # Main installer orchestrator
│ ├── system/ # Pre-chroot scripts
│ │ ├── partition.sh # Partition disk (GPT: EFI + root)
│ │ ├── makefs.sh # Format partitions
│ │ ├── mount.sh # Mount filesystems
│ │ ├── unmount.sh # Unmount filesystems
│ │ └── fstab.sh # Generate fstab
│ └── chroot/ # Post-chroot configuration
│ ├── timezone.sh # Set timezone and hardware clock
│ ├── locale.sh # Configure locale and keyboard
│ ├── services.sh # Enable services, rebuild initramfs
│ ├── nvidia.sh # Configure NVIDIA drivers
│ ├── users.sh # Create user, set passwords
│ └── bootloader.sh # Install systemd-boot
├── profiledef.sh # Archiso profile definition
├── packages.x86_64 # Package list for live ISO
└── packages.txt # Package list for installed system
| Component | Live ISO | Installed System |
|---|---|---|
| CPU | Intel | Intel (intel-ucode) |
| GPU | Generic (mesa) | NVIDIA (nvidia-open-dkms + Wayland/DRM) |
| Kernel | linux | linux + linux-headers |
| Filesystem | squashfs (read-only) | Btrfs (root), FAT32 (EFI) |
| Bootloader | systemd-boot (ISO) | systemd-boot |
| Desktop | KDE Plasma | KDE Plasma (Wayland) |
| Display Manager | SDDM (auto-login) | plasma-login-manager |
| Audio | PipeWire | PipeWire |
Kernel command line includes:
nvidia-drm.modeset=1 nvidia_drm.fbdev=1 quiet splash
- Driver:
nvidia-open-dkms(requireslinux-headers) - Modules: Early loading via initramfs (
MODULESin/etc/mkinitcpio.conf) - Modprobe config:
- DRM modesetting enabled (
/etc/modprobe.d/nvidia.conf) - VRAM preservation across suspend (
/etc/modprobe.d/nvidia-power.conf)
- DRM modesetting enabled (
The ISO is built automatically via GitHub Actions on every push to main. To build locally:
# On Arch Linux:
sudo pacman -S archiso
sudo mkarchiso -v -w work -o out .See LICENSE