Migration from Arch Linux to Artix Linux

This post provides notes regarding migration in addition to the Artix Wiki. I had been a proud Arch Linux user for nearly 10 years, and then I have been a not-so-proud Arch Linux user for the past 2-3 years.
However, systemd is becoming more and more bloated, and now seeing it has no hesitation to add an “age verification” feature that nobody, except the tyrannical governments, want, Artix becomes a very promising alternative.
Now, fed up with the toxic admins, their willingness to kowtow to tyrannical “age verification” laws, and their blatant efforts in weaponizing their “CoC” to push for their political agenda beyond technical issues of Arch Linux, I have decided to switch to Artix Linux, which at least does not have toxic admins and has no plan to lick boots before being forced to do so.

Pre-migration Preparation

  • Stop using Gnome and get familiar with another DE or WM, because Gnome really likes the systemd bloatware.
  • Make sure the root account is usable, because PAM is going to break during migration and sudo will stop working.
  • Run pacman -Syu before migration.

Network

resolv.conf needs to be kept during installation, otherwise pacman will refuse to install anything because it cannot connect to the internet.

Reinstalling all packages

Do not enable arch’s multilib before the end of the migration…

I found that some packages (for lib32) need to be removed in addition to those suggested by Artix Wiki

1
2
pacman -Rdd  systemd systemd-libs systemd-sysvcompat pacman-mirrorlist dbus
pacman -Rdd lib32-systemd lib32-dbus

Then install init and reinstall all packages

1
pacman -S --needed acpid-init alsa-utils-init cronie-init cups-init fuse-init haveged-init hdparm-init openssh-init samba-init syslog-ng-init

Keeping the “as Dependency” status when reinstalling all packages

Put the list of all packages that need to be reinstalled in packages-to-install.

And pull the list of all packges that are installed explicitly in packages (I f*ed up this part):

1
grep -Fx -f packages <(pacman -Qq) | pacman -D --asdeps -

Remember the following daemon

  • sddm
  • networkmanager

Sound with Pipewire

Follow the Artix Wiki. Essentially,

1
sudo pacman -S pipewire pipewire-pulse wireplumber pipewire-jack

Then, write a script to start pipewire and wireplumber:

1
2
3
4
5
6
~/scripts/start-pipewire.sh

#!/bin/sh
/usr/bin/pipewire &
/usr/bin/pipewire-pulse &
/usr/bin/wireplumber &

and put this script in the DE’s autostart.

For Cinnamon only, the default applet is going to have issues with this setup. Replace it with Enhanced Sound applet by claudiux instead.

After migration

  • Update custom daemons
  • Consider replacing xorg with xlibre… Arch Linux staff’s hostility to anyone who has expressed political opinions that that disagree with them, especially that demonstrated in the shit show they played with XLibre, is half of the reasons that I want to fully switch to Artrix.

Survival Guides for using Openrc

[Partly AI generated]

OpenRC services are scripts in /etc/init.d/

Instead of systemd “targets”, OpenRC uses the following runlevels (customizable):

  • boot → early system init
  • default → normal multi-user
  • nonetwork, shutdown, etc.

Start / stop / restart

To manage services running or to be run on current boot, use rc-service:

1
2
3
rc-service <service> start
rc-service <service> stop
rc-service <service> restart

Enable / disable (important!)

To manage services that should be started on boot, use rc-update:

1
2
rc-update add <service> default
rc-update del <service> default

To show what services are enabled

1
2
3
rc-update show
rc-update show -v # Show services in a specific runlevel
rc-update show default # Show services in the default runlevel

Check status

1
2
3
4
5
6
7
# Check OpenRC status
rc-status
# With details
rc-status -a

# Check a specific service is running
rc-service <service> status

Switch runlevels

1
openrc nonetwork