Artix is an Arch derivative without systemd. I use the dinit init system in my Artix installation.
I have never bothered setting up my printers in my Artix, but I needed to print recently and decided to set up 2 printers
- an OKI Okipage 12 i Postscrit printer
- a Brother MFC640CW inkjet printer and scanner
I was able to find drivers for both printers, set them up in CUPS and the spooling worked fine,
but
they would not print graphics … only text.
For example the CUPS test page printed with text only.
I had about 3 nights of to and fro with an AI helper, and we improved things to the stage where printing from the CLI and printing from a GUI app like Okular worked properly,
but
the test page still printed text only.
We gave up on the test page. I can print , and that is all I need.
The explanation , which I quote from AI, is as follows
" On minimal or systemd-free distributions (like Artix Linux), modern CUPS handles print filters using a dedicated unprivileged user (cups, UID 209) rather than the legacy lp user. When printing normal documents or images via applications (like Okular) or the CLI (lp), standard user environment paths are used. However, when triggering the built-in CUPS Test Page, the system spawns the Ghostscript (gs) raster filter under this isolated cups user.
Because the cups user lacks a valid home directory, environment variables ($HOME), or write access to /var/cache/fontconfig, the vector-to-raster filter engine silently drops graphics, patterns, and gradients—leaving you with text-only prints"
The fixes which were applied were
- Install Arch compatability packages
sudo pacman -S artix-archlinux-support
sudo pacman-key --populate archlinux
- Make a home directory for the cups user
Put this line in /etc/passwd
cups:x:209:209:cups:/var/spool/cups:/usr/bin/nologin
- Fix permissions and rebuild the font cache
sudo chown -R cups:cups /var/spool/cups
sudo chmod 770 /var/spool/cups
sudo chmod -R 775 /var/cache/fontconfig
sudo chown -R root:cups /var/cache/fontconfig
# Force-regenerate the rendering cache cleanly as the cups user
sudo -u cups fc-cache -r -f -v
- Restart the cups daemon
sudo dinitctl restart cupsd
That is not a complete fix , but at least it gets normal printing working.
The strange thing is I have had no such problem in Void Linux or in Gentoo. Both of those are rolling release and would be as up to date as Artix..
One might comment that a test page is not much use if it uses a different print path to all other printing.
Has anyone else had printer issues in Arch derived distros?