Updating icu/ncurses/whatever breaks a ton of packages

Make sure you have the correct repositories activated in /etc/pacman.conf. Testing [gremlins] repositories should be disabled by default. If you want to use them, you should also uncomment [testing] from Arch. These must be above all other repositories. Note: [gremlins] is Artix equivalent of Arch [testing]

 #[gremlins]
 #Include = /etc/pacman.d/mirrorlist
 #[galaxy-gremlins]
 #Include = /etc/pacman.d/mirrorlist
 #[lib32-gremlins]
 #Include = /etc/pacman.d/mirrorlist

 [system]
 Include = /etc/pacman.d/mirrorlist
 [world]
 Include = /etc/pacman.d/mirrorlist
 [galaxy]
 Include = /etc/pacman.d/mirrorlist
 # If you want to run 32 bit applications on your x86_64 system,
 # enable the multilib repositories as required here.
 [lib32]
 Include = /etc/pacman.d/mirrorlist

Since we still depend on some of Arch packages from [extra] and most of [community], some version mismatches during updates and until we fully sync may cause problems. In such case, enabling temporarily the testing repositories might just give you the right package to fix your situation.

The list below might not be updated, always check the Gitea repository.

 ## Artix Linux repository mirrorlist
 ## Generated on 2019-01-12
 # Artix mirrors
 Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
 Server = https://artix.wheaton.edu/repos/$repo/os/$arch
 Server = https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch
 Server = https://ftp.cc.uoc.gr/mirrors/linux/artixlinux/$repo/os/$arch
 Server = http://artix.unixpeople.org/repos/$repo/os/$arch
 Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
 Server = http://www.nylxs.com/mirror/repos/$repo/os/$arch
 Server = https://ftp.sh.cvut.cz/artix-linux/$repo/os/$arch
 Server = https://mirrors.nettek.us/artix-linux/$repo/os/$arch
 Server = http://mirror1.artixlinux.org/repos/$repo/os/$arch

Invalid or corrupted packages (PGP signature)

If pacman warns you about invalid or corrupted packages, it may be due to obsolete PGP keys or Arch-signed packages in the repos. Make sure the Artix repos are above the Arch ones and:

1. Reinstall keyrings including the latest keys:

 pacman -Sy archlinux-keyring artix-keyring

If you can't install the artix-keyring because of signature errors, perform step 2 and repeat 1, otherwise proceed to step 3.

2. Remove old and possibly expired, revoked or invalid keys by issuing this command:

 rm -r /etc/pacman.d/gnupg

3. Initialize the pacman keyring:

 pacman-key --init

4. Load the signature keys:

 pacman-key --populate archlinux artix

5. Clear out the software packages downloaded during the aborted installation:

 pacman -Scc
 pacman -Syyu

6. In a pinch, install the package with the -U pacman switch:

 pacman -U /var/cache/pacman/pkg/package-1.3.9-1.x86_64.pkg.tar.xz

Can't play games, run Steam etc!

You must enable [lib32] from Artix and [multilib] from Arch in /etc/pacman.conf and install relevant packages for 32bit executables. Make sure [lib32] is above [multilib] (as a matter of fact all Artix repos must be above Arch's).

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

Warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.

Install parted and execute:

 parted -s /dev/sdx set 1 bios_grub on

KDE/Plasma won't start, saying something bad about dbus!

See next section.

I'm having dbus-related problems and I keep seeing messages about /etc/machine-id

This file originated from dbus development and was adopted by systemd as a universally unique machine identifier. Ergo, it is a useless (for the end user) tag but apparently of some use to dbus because "The important properties of the machine UUID are that 1) it remains unchanged until the next reboot and 2) it is different for any two running instances of the OS kernel. That is, if two processes see the same UUID, they should also see the same shared memory, UNIX domain sockets, local X displays, localhost.localdomain resolution, process IDs, and so forth." Also, "The simple configuration file format of /etc/machine-id originates in the /var/lib/dbus/machine-id file introduced by D-Bus. In fact, this latter file might be a symlink to /etc/machine-id." and This ID uniquely identifies the host. It should be considered "confidential", and must not be exposed in untrusted environments, in particular on the network. Privacy-conscious people might want to regenerate their machine-ids frequently; a new ID can be generated with

 dbus-uuidgen  >| /etc/machine-id

or

 dbus-uuidgen  >| /var/lib/dbus/machine-id

You may want to symlink one to another (recommended) or choose to have two different machine IDs (advanced).

Btrfs can't boot from RAID

In some setus, Btrfs can't boot if the root filesystem is on RAID subvolumes, despite adding btrfs to /etc/mkinitcpio.conf hooks array (and re-creating a new initramfs) or using rootflags=device=/dev/sda2,device=/dev/sdb2 as a workaround in the kernel command line. The solution is to instruct the btrfs hook create the create the node manually; edit /usr/lib/initcpio/hooks/btrfs as follows:

 run_hook() {
    mknod /dev/btrfs-control c 10 234
    btrfs device scan
 }

and re-create the initramfs (mkinitcpio -P).

Service file not present

The init scripts of daemons (also known as 'services') are packaged separately. With very few exceptions, the naming convention is consistent across inits, e.g. for dnsmasq it's dnsmasq-openrc, dnsmasq-runit and dnsmasq-s6. Installing the service package will also pull and install the daemon package too. Example for OpenRC:

 pacman -S dnsmasq-openrc
 rc-update add dnsmasq default
 rc-service dnsmasq start

My file manager / application cannot perform elevated privileges tasks

Make sure your desktop session is started with dbus-launch in ~/.xinitrc

When I switch theme in Plasma/MATE/XFCE/AnyDEorWM the colours are broken!

All Artix ISOs, except base, come slightly preconfigured with a nice, uniform dark theme. To force uniformity across Qt and GTK, some tricks had to be performed, namely:

  • Creating a theme that has support for all major toolkits, i.e. Qt, Gtk2 and Gtk3. In our case, the dark variant of Vertex was modified into Artix-dark.
  • Choosing a common style, icon and colour theme.
  • Instructing (or forcing) the active toolkit to use a theme engine that translates one toolkit into another. The chosen solution was to make Qt follow Gtk and this was achieved through qt5-styleplugins and the QT_* environment variables defined in /etc/environment.

The overall look of the minimal desktop ISOs is controlled by the following packages, listed alphabetically:

 artix-backgrounds
 artix-dark-theme
 artix-desktop-presets
 artix-grub-theme
 artix-gtk-presets
 artix-icons
 artix-qt-presets

The artix-desktop-presets package contains the common settings which instruct a desktop environment (DE) to use the dark theme. Additional, more toolkit-specific settings are contained in the the artix-{gtk,qt}-presets packages. However, not all applications respect the chosen theme and arbitrarily set the background and foreground colours, usually white and black respectively. For those applications that are part of the ISO images, the artix-{gtk,qt}-presets packages also contain configuration files that control their appearance. Finally, artix-community-presets contain settings for a much larger collection of applications, namely the ones found in the community editions ISO images.

Notice: very few themes have complete support for Qt and Gtk2 and Gtk3, namely Breeze, Adwaita, Vertex and Artix-dark. Ergo, using an other theme will most probably result in inconsistent look across different toolkit applications.

Most of these settings are installed in /etc/skel, which means that they are copied over to the home directory of every created user. It also means that removing the package doesn't delete the files from the home directories: they have to be removed manually, if so desired.

Using another theme is generally very easy: just select it in the appearance settings page of your preferred desktop environment. The selected theme will (usually) also change the style and colour theme to its own. If not, select it yourself. For Plasma, the settings are found under Appearance -> Global Theme, Plasma Style, Application Style and Colors.

Plasma and LXQt can also control the appearance of non-native toolkit applications.

  • For Plasma: change the GTK2 and GTK3 themes in the Application Style tab to your desired theme, e.g. Breeze.
  • For LXQt: these settings are found in the Widget tab of the Appearance module and in the Openbox Settings module of the Configuration Center. LXQt users will additionally need to disable the QT_QPA_PLATFORMTHEME variable wherever it is set, usually /etc/xdg/lxqt/session.conf and perhaps ~/.config/lxqt/session.conf.

Our Gtk-based DEs use the QT_QPA_PLATFORMTHEME and QT_STYLE_OVERRIDE environment variables to control the appearance of Qt applications. Using an all-toolkit theme like Breeze or Artix-dark is recommended and no additional actions are needed to achieve visually appealing results. Otherwise, those variables may need to be disabled in /etc/environment. For some Qt applications that follow ~/.config/kdeglobals, you may need to delete the lines containing 'artix-dark' from it (or delete it).

More information, totally applicable in Artix, can be found on the related Arch Wiki page.

Installing libelogind breaks dependency 'systemd-libs' / 'systemd'

This happens because a package on your system — usually from Arch Linux or from the AUR — lists systemd and/or systemd-libs as dependencies.

Since version 246.10-4, Artix's elogind/libelogind package no longer provides systemd. Therefore, to install/update these packages, you'll need to install artix-archlinux-support, which provides a dummy systemd/systemd-libs.

 pacman -S artix-archlinux-support

Installing lib32-elogind breaks dependency 'lib32-systemd'

This happens because a package on your system — usually from Arch Linux or from the AUR — lists lib32-systemd as a dependency.

Since version 246.10-2, Artix's lib32-elogind package no longer provides libsystemd. Therefore, to install/update these packages, you'll need to install lib32-artix-archlinux-support, which provides a dummy lib32-systemd.

 pacman -S lib32-artix-archlinux-support