Artixinstall

Table of Contents

I install Artix Linux with french settings in this guide.

What is Artix Linux ?

Artix Linux is a GNU/Linux distribution based on Arch Linux, the key difference between the two distros is the init system you want to use.

Arch Linux only has official support for systemd. Artix officially supports dinit, openrc, runit, and s6. Of course, the AUR is still accessible from Artix Linux.

Artix Linux uses real init systems, because PID1 must be simple, secure and stable.

Also, their logo looks really cool.

If you don’t know what you are doing when installing Arch or Artix, I recommend you watching/reading other guides too.

Artix Linux’s official installation guide

Setup optional things

Keymap

If the keymap is wrong, you can change it with the loadkeys command.

loadkeys fr

Connect to Wi-Fi

Connmanctl

You first have to unblock wifi and enable the wifi card. Replace wlan0 with the name of your interface, list them with ip a

rfkill unblock wifi
ip link set wlan0 up

Then run connmanctl in interactive mode :

connmanctl

Replace id with the id of your Wi-Fi

scan wifi
services
agent on
connect id

You can then exit connmanctl, try to ping some website to make sure you’re connected to the internet.

NetworkManager

To scan the networks around you :

nmcli device wifi rescan

List them :

nmcli device wifi list

Connect to one :

nmcli device wifi connect SSID --ask

(SSID = the name of the Wi-Fi you want to connect to)

Setup your disk

The commands in this section will destroy all the data of your disk.

Make partitions

I like to make a 1G partition for the EFI system and give the rest to the Linux Filesystem. You can use cfdisk instead of fdisk.

My disk name is nvme0n1, but you should use lsblk to get the name of the disk you want to install Artix Linux on.

(
echo g
echo n 
echo 1
echo
echo +1G
echo t
echo 1
echo 1
echo n
echo 2
echo
echo
echo w
) | fdisk "/dev/nvme0n1" &> /dev/null

Now we must format our partitions

mkfs.fat -F 32 -n ESP /dev/nvme0n1p1
mkfs.ext4 -L ROOT /dev/nvme0n1p2

Mount the partitions

Now we can mount our partitions to install Artix Linux on the disk.

It is really important to mount the ROOT partition first and then the ESP partition.

mount /dev/disk/by-label/ROOT /mnt
mount --mkdir /dev/disk/by-label/ESP /mnt/boot

Installing Linux

Basestrap

Use basestrap to install linux to your disk. Choose which kernel you want, I chosed linux but there is alternatives such as linux-lts, linux-hardened and others.

I also chose to use GRUB for the bootloader and runit as my init system.

Replace neovim with your favorite, terminal-based text editor.

basestrap /mnt linux linux-firmware base base-devel grub efibootmgr git neovim

Also install an init system. I like both OpenRC and runit. Install one of them :

basestrap runit elogind-runit networkmanager-runit
basestrap openrc elogind-openrc networkmanager-openrc

Fstab

Generate the fstab to tell your system how to mount the disk when your computer boots.

Fstab copies the order in which you mounted your partitions earlier.

fstabgen -U /mnt >> /mnt/etc/fstab

You must have all the partitions you configured for Artix Linux in that file !!

Artix Chrooting

You can now chroot into your future system.

artix-chroot /mnt

Basic config

ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
hwclock --systohc
echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
echo -e 'KEYMAP=fr-latin1\nXKBLAYOUT=fr\n' > /etc/vconsole.conf

If you will use OpenRC, edit /etc/conf.d/keymaps, and change the value of the keymap variable.

Setup user and hostname

Give a hostname to your computer (replace artix with your hostname) :

echo 'artix' > /etc/hostname

Setup root password :

passwd

Setup user and user password (replace billy with your username) :

useradd -m -G wheel billy
passwd billy

Install GRUB

grub-install --target=x86_64-efi --efi-directory=/boot
grub-mkconfig -o /boot/grub/grub.cfg

Sudo

Run this command and uncomment this line %wheel ALL=(ALL:ALL) ALL

EDITOR=nvim visudo

Reboot

Now you’re done, you can control-d or exit to quit the chrooting and you can then reboot the system.

Post reboot

NetworkManager

You lost your Wi-Fi connection if you didn’t noticed, you must enable it again.

On runit first link the file :

sudo ln -s /etc/runit/sv/NetworkManager /run/runit/service/

You can then start the service :

sudo sv start NetworkManager

With OpenRC, NetworkManager should be already enabled. If not, first enable it on boot :

sudo rc-update add NetworkManager default

Then start it :

sudo rc-service NetworkManager start

To list available Wi-Fi :

nmcli device wifi list

To connect to Wi-Fi : (replace SSID with the name of your Wi-Fi)

nmcli device wifi connect SSID --ask

Brightnessctl

Install the brightnessctl package to adjust the screen’s brightness (only on laptop, on a desktop you change the brightness of the screen in the screen’s settings).

Just in case also add your user to the video group.

sudo usermod -aG video $(whoami)

You might be able to change the backlight of your keyboard.

Repositories

Arch’s extra

If you need the extra repo from Arch Linux, you can add it too.

First install the support :

sudo pacman -S artix-archlinux-support

Then append these lines to the /etc/pacman.conf file :

[extra]
Include = /etc/pacman.d/mirrorlist-arch

#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist-arch

#[multilib]
#Include = /etc/pacman.d/mirrorlist-arch

And run

sudo pacman-key --populate archlinux
sudo pacman -Syu

~~~

You might want to uncomment the Color and ParallelDownloads lines in /etc/pacman.conf for a better pacman experience overall.

Links :

You can easily have informations about your kernel like so :

uname -mrs

PipeWire

Sound

First install these packages :

sudo pacman -S pipewire pipewire-pulse wireplumber

And copy the configuration files :

cp -r /usr/share/pipewire/* /etc/pipewire/

Now, on runit systems, you have to manually start these 3 commands in some files like your hyprland.conf, or .xinitrc.

If you use OpenRC also install the OpenRC scripts :

sudo pacman -S pipewire-openrc pipewire-pulse-openrc wireplumber-openrc

Then enable the services for your user

rc-update add -U pipewire default
rc-update add -U pipewire-pulse default
rc-update add -U wireplumber default

Reboot your computer and sound might be working now !

If it’s isn’t working for some reason, I either misguided you, or your hardware isn’t supported. In the second case install these packages :

sudo pacman -S pipewire-alsa alsa-utils alsa-tools alsa-firmware sof-firmware

The initramfs should have been rebuilt by pacman but to be sure build it again :

sudo mkinitcpio -P

Now reboot again and if sound doesn’t work, you’re out of luck :(

Screensharing

Install xdg-desktop-portal.

There’s tons of xdg-desktop-portal packages, chose the one that contains your Desktop Environment/Window Manager name in it.

xdg-desktop-portal
xdg-desktop-portal-gnome
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
xdg-desktop-portal-kde
xdg-desktop-portal-wlr
xdg-desktop-portal-cosmic
xdg-desktop-portal-lxqt
xdg-desktop-portal-xapp

I use Hyprland, so I will install these :

sudo pacman -S xdg-desktop-portal xdg-desktop-portal-hyprland

If you reboot, screensharing must be working out of the box on runit systems. But for OpenRC, create a shell script like so :

#!/bin/bash
sleep 1
killall xdg-desktop-portal-hyprland
killall xdg-desktop-portal-gnome
killall xdg-desktop-portal-wlr
killall xdg-desktop-portal
logger 'killed all xdg-desktop'
sleep 1
/usr/lib/xdg-desktop-portal-hyprland # then put the one you use
logger 'xdg-desktop-portal-hyprland started'
sleep 2
/usr/lib/xdg-desktop-portal
logger 'xdg-desktop-portal started'

Don’t forget to make this file executable with chmod +x

And you must also start this script when launching your DE/WM. Use the exec-once statement if you use Hyprland and pass out the path to this shell script.

Now screensharing must be working