Manual Arch install guide
Part I - Partitions
A. Booting
- Choose an initsystem :
- OpenRC --> old + lots of documentation
- Runit --> newer with good docs (Théo uses it)
- Dinit --> newer than runit, still not documented enough (I use it)
- S6 --> idk
- Download the base ISO
- If you use a VM, enable EFI
- If you have trouble booting the ISO, install Ventoy and boot in grub2 mode
- Start the computer
- Configure Artix with the correct locale/language/keyboard layout
- Enter the edit console
- Type
video=1980x1080to setup an appropriate resolution in the VM
- Type
- Boot into artix
- user
artix - passwd
artix sudo su
- user
B. Creating partitions
- If keyboard isn't set correctly
loadkeys fr - Download & set the font
pacman -Sy terminus-font- Set big font
setfont ter-128n - (set less bigger font
setfont ter-d24b)
- Setup partitions using
cfdisk(gptfile system)- First must be EFI of size between 100M and 512M
- Then root partition
- Then home partition (optional)
- Then swap partition (optional if no hibernation)
- See created partitions using
lsblk - Format the partitions (-L to set a label)
- EFI
mkfs.fat -F32 /dev/sda1andfatlabel /dev/sda1 ESP - Root
mkfs.ext4 -L ROOT /dev/sda2 - Home
mkfs.ext4 -L HOME /dev/sda3 - Swap
mkswap -L SWAP /dev/sda4
- EFI
- Mount the partitions (swap first, then root, finally boot and home)
swapon /dev/disk/by-label/SWAPORswapon /dev/sda4mount /dev/sda2 /mntmkdir -p mnt/boot/efi(if the fs is encrypted, do not create/efi)mount /dev/sda1 /mnt/boot/efimkdir -p mnt/homemount /dev/sda3 /mnt/home
[!WARNING] The order matters!!
- Check with
lsblk - Sync the system clock
dinitctl start ntpd - Install the system with interactive mode (-i)
basestrap -i /mnt base base-devel linux-zen linux-zen-headers linux-firmware dinit btop vim neovim man-db elogind seatd seatd-dinit intel-ucode grub os-prober efibootmgr networkmanager networkmanager-dinit bash-completion fastfetch(approx 280 packages) - Setup fstab
fstabgen -U /mnt >> /mnt/etc/fstab - Check generated fstab
cat /mnt/etc/fstab
Part II - chroot
A. Various configuration
- chroot inside the installed system
artix-chroot /mnt - Update repos with
pacman -Sy - Setup timezone
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime- For instance,
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
- For instance,
- Setup hwclock
hwclock --systohc - Uncomment the locale you want to keep in
nvim /etc/locale.gen(recommended US UTF-8) - Generate the locale
locale-gen - Edit
locale.confwithnvim /etc/locale.conf- Enter
LANG=en_US.UTF-8
- Enter
- Network config
nvim /etc/hostnameand enter your host name (aka computer name)nvim /etc/hosts127.0.0.1 localhost::1 localhost127.0.1.1 HOSTNAME.localdomain HOSTNAME
- Install terminus font (in the installed env)
pacman -S terminus-font - Configure console
nvim /etc/vconsole.conf- Enter
FONT=ter-d24b - Enter
KEYMAP=fr
- Setup users and passwords
- Setup current session (root) password
passwd - Add user
useradd -mG wheel user - Setup user password
passwd user - Make user a sudoer
EDITOR=nvim visudo- Uncomment
%wheel ALL=(ALL:ALL) ALL
- Uncomment
- Setup current session (root) password
- Setup autologin
nvim /etc/dinit.d/tty1- Add flag
--autologin userbeforetty1in thecommand=line
B. Grub
- Setup the correct resolution
nvim /etc/default/gruband addvideo="1920x1080"at the end of lineGRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" - Edit
GRUB_GFXMODE=1920x1080as well - Uncomment
GRUB_DISABLE_OS_PROBER=falseto detect other installed OS (for windows, see the arch wiki: grub) - Mount the other OS in read-only (to detect other installed OS)
mkdir -p /mnt/foomount -o ro /dev/sda5 /mnt/foo- If the other installed Linux enters rescue mode at launch, update its
/etc/fstabfile to remove the line of the old EFI partition UUID
- Install for UEFI
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB grub-mkconfig -o /boot/grub/grub.cfg- You can add custom grub entries in
/boot/grub/custom.cfg(for instance, shutdown or reboot) - Reboot the system
- Exit chroot
exit - Unmount all partitions
umount -R /mnt reboot
- Exit chroot
Part III - UI
[!WARNING] Now, you may need to add sudo in front of most commands since you are no longer chroot'ed
Last details
- Enable network connection
dinitctl enable NetworkManager(be cautious of the uppercase letters)
- Enable seatd
dinitctl enable seatd- Add user to group seat to allow them to start processes
usermod -aG seat <user> - Add user to group video (and group audio)
usermod -aG video <user>
- Enable ssh for remote control (if needed)
A. Additional Arch repos & yay
- Enable Arch repos
sudo pacman -Sy artix-archlinux-supportsudo pacman-key --populate archlinuxsudo pacman -S archlinux-mirrorlistsudo nvim /etc/pacman.conf# Arch[extra]Include = /etc/pacman.d/mirrorlist-arch[multilib]Include = /etc/pacman.d/mirrorlist-arch
[!NOTE] All Universe packages have been moved to Galaxy according to the Artix wiki
- sudo pacman -Sy
- Install yay
- Setup dependencies
pacman -S --needed git base-devel - Clone the git
git clone https://aur.archlinux.org/yay-bin.git cd yay-bin- Make
makepkg -si - (Next steps are not mandatory, works without)
- Scan for packages installed without yay
yay -Y --gendb - Check for installed package updates
yay -Syu --devel - Permanently check for dev updates
yay -Y --devel --save - Remove the unnecessary folder
cd ..andrm -rf yay-bin/
- Setup dependencies
B. Installing useful stuff
[!TIP] Awesome Hyprland Awesome Wayland Awesome wlroots Hyprland Wiki - Must have
- Install fastfetch
pacman -S fastfetch- fastfetch
- hyfetch
- Install Hyprland
yay -S hyprland- Hyprland (dynamic tiling WM) Hyprland wiki - Master tutorial
- Sway (manual tiling WM)
- Install a file manager (GUI)
pacman -S thunar- Dolphin (KDE)
- Thunar (XFCE)
- Nemo (Mint)
- Nautilus (GNOME)
- PCManFM (LXDE)
-
- plugins for all of them (if needed)
- Install a file manager (CLI, if needed)
pacman -S nnn- nnn
- Ranger
- vifm
- Install a launcher (see)
pacman -S rofi-wayland- Rofi-wayland
- Wofi
- Fuzzel
- bemenu
- dmenu-wl
- yofi
- Install a wallpaper
yay -S hyprpaper - Install a terminal emulator
pacman -S kitty- Kitty
- Alacritty
- Foot
- Install fish
pacman -S fish- Edit hyprland's config to launch kitty terminal emulator by default
- Edit kitty's config to launch on fish by default
- Install a clipboard manager
pacman -S cliphist wl-clipboard wl-clip-persist1. - Install Flatpak for even more apps
pacman -S flatpak(Proton-QT is packed inside)
[!WARNING] Flatpak requires a working xdg-portal, install
xdg-desktop-portal;xdg-desktop-portal-hyprlandneeds to be installed as well.
C. Configuring Hyprland
[!WARNING] OUTDATED SECTION
- Create a startup script (to set up additional env variables, can be set up in /etc/environment or in your .profile or .bash_profile)
nvim starthypr.sh#!/bin/shexport WLR_NO_HARDWARE_CURSORS=1export WLR_RENDERER_ALLOW_SOFTWARE=1export XDG_SESSION_DESKTOP=Hyprland- `export XDG_CURRENT_DESKTOP=Hyprland
export XDG_SESSION_TYPE=waylandexport HYPRLAND_LOG_WLR=1export LIBGL_ALWAYS_SOFTWARE=1export LIBSEAT_BACKEND=seatdexec dbus-run-session Hyprlandchmod +x starthypr.sh
- Configure it or download dotfiles/scripts/rices
Part IV - Tips & tricks
- Edit .desktop files of installed apps that doesn't start and edit
Exec = dbus-run-session programinstead ofExec = program(after having copied them to~/.local/share/applications) - AppImage can be detected and started in rofi if you create a .desktop entry for them in
~/.local/share/applications
References
- Artix full install tutorial with dinit: https://youtu.be/zfHkmhEamlc
- Artix full install tutorial with runit: https://youtu.be/mIpZA6z-Ctk
- Artix install blog: https://cheatsheets.stephane.plus/distros/arch-based/artix_installation/
- Artix install wiki: https://wiki.artixlinux.org/Main/Installation
- Arch wiki, grub config: https://wiki.archlinux.org/title/GRUB
- Hyprland full install tutorial: https://youtu.be/V7nP-To0630
- Awesome Wayland: https://github.com/rcalixte/awesome-wayland
- Awesome wlroots: https://github.com/solarkraft/awesome-wlroots
- Hyprland dots: https://github.com/prasanthrangan/hyprdots && https://github.com/end-4/dots-hyprland && https://github.com/linkfrg/dotfiles/wiki/Installation