A dead simple, fast and opinionated Arch Linux Installer, written in Rust.
- File partitioning using
cfdisk
. - Reflector to sync pacman mirrors.
- (1,2,4,8,16,32, 64) GB Swapfile instead of swap partition.
- Yay as AUR package manager.
- Gnome/KDE/Hyprland as Desktop Environment / Window Manager options
- Sudo/Doas
- Grub/SystemD Boot as Bootloader
- The following programs:
base
linux
linux-firmware
intel-ucode/amd-ucode (if your processor is detected)
neovim
reflector
efibootmgr
os-prober
ntfs-3g
networkmanager
network-manager-applet
wireless_tools
wpa_supplicant
dialog
mtools
dosfstools
base-devel
linux-headers
bluez
bluez-utils
pipewire
pipewire-pulse
pipewire-jack
pipewire-alsa
alsa-utils
cups
This is a two-part installation process.
The first part installs till a bootable system. If this is all that you need, complete the part one of this guide.
For the second part, you might need to set up some files.
The base installer partitions and mounts the filesystem, installs important packages and sets up the users and hostname. To run it as it is, use curl to download the release and run it. Replace the version with the release tag.
# curl -L https://github.com/parapsychic/2lazy4arch/releases/download/{release}/2lazy4arch --output 2lazy4arch
#eg:
curl -L https://github.com/parapsychic/2lazy4arch/releases/download/v2.0.0/2lazy4arch --output 2lazy4arch
chmod +x 2lazy4arch
./2lazy4arch
Follow the onscreen instructions.
The TUI is intuitive and also supports vim-style jk
movements.
Now that installation is successful, you should see either one of the following messages
# ERROR:
Failed to get the executable name from arguments.
# ERROR:
Failed to copy the installer.
Please copy the file manually to /some/path
# SUCCESS:
Successfully copied the executable to /some/path.
Please run the installer after rebooting to the installed system.
Installer completed successfully.
Dont worry about these error messages if you don't intend to follow step 2.
Your installation is successful.
If you don't intend to follow step 2 of this installation, you can safely reboot.
Otherwise, continue with step 2.
If you got the success message from last step, an installer file will be present in your home
folder.
If not, now is your chance to copy the 2Lazy4Arch executable to your home
folder.
cp 2lazy4arch /mnt/home/{username}/installer
If you accidentally rebooted in the last step, just download the installer again
curl -L https://github.com/parapsychic/2lazy4arch/releases/download/v2.0.0/2lazy4arch --output 2lazy4arch
Before we begin, we should create two files.
Name them whatever you like. For this example, I'll be calling the packages.txt
and aur_packages.txt
.
You can refer to the example files.
These files expect valid package names separated by a newline.
Packages in packages.txt
will be installed using pacman
.
Packages in aur_packages.txt
will be installed using yay
.
Start installation by running the installer file.
./installer
This has no TUI as there were some hiccups along the way with the terminal input/output piping, so this will be completely CLI based.
When prompted, enter the relative path to the packages files.
Keep an eye-out for prompts to enter the password.
After completing the installer will show a message: "Installation has finished. Enjoy!".
See How To Extend? to know how to run post-install hooks/scripts
To run my specific settings, run installer after base installation with the parapsychic-mode
argument.
Install rust by following this guide.
Then, clone this repo and compile it.
git clone https://github.com/parapsychic/2lazy4arch.git
cd 2lazy4arch
cargo build --release
The compiled binary will be at target/release/toolazy4arch
. The naming is different as rust does not allow first character to be a digit.
2Lazy4Arch expects you to make some files before running the post installer. Refer to the How-To-Use? section to learn more.
To run your own ricing scripts after installation:
Go to installer/src/utils
and change the RICE_SCRIPT_URL
The script is downloaded using curl
, so be sure to host it somewhere.
After that, compile and run the program with the argument parapsychic-mode
.
./2lazy4arch parapsychic-mode
You can change the argument name, but I made this specifically for running my scripts.
It Just WorksTM
But in case it doesn't, click here or open an issue and cross your fingers.
Built with ❤️ and Rust
Hire me Bethesda, I'll work for minimum wage.
🫰 I'll probably switch to Nix OS after this...