The UTAX printers drivers are not (yet) in the NIX store. So the normal installation trough CUPS is not trivial.
Read it completely before starting the procedure.
#1 Install CUPS
Make sure CUPS is installed correctly.
#2 Install the Kyocera drivers
Create a printers.nix with this content
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
# Kyocera filters for UTAX 3207ci
cups-kyocera-3500-4500
];
}
The only package needed for my installation is cups-kyocera-3500-4500, but you can install other packages to configure other UTAX printers.
The insecure package is required from 2 packages: cups-kyodialog and cups-kyocera.
Here the printers.nix with the other packages:
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
# Kyocera / UTAX
#cups-kyodialog # ⚠️ Fails the checksum; need the insecure package.
cups-kyocera # ⚠️ Need the insecure package.
cups-kyocera-3500-4500
cups-kyocera-ecosys-m552x-p502x
];
nixpkgs.config.permittedInsecurePackages = [
"python3.13-pypdf3-1.0.6"
];
}
Then rebuild:
sudo nixos-rebuild switch
#3 Get the PPD
Download the drivers for your printers from the official UTAX website.
Unpack the DEB or RPM package to get the PPD file.
As described here, you must edit FHS paths in the PPD.
I will show below what I changed in my PPD
The line starting with *cupsPreFilter, and the line starting with *cupsFilter, are at the beginning of the file, approximately line 47.
The original content:
*cupsPreFilter: "application/pdf 0 kyofilter_pre_H"
*cupsFilter: "application/vnd.cups-postscript 0 /usr/lib/cups/filter/kyofilter_H"
The customized content:
*cupsPreFilter: "application/pdf 0 /run/current-system/sw/lib/cups/filter/kyofilter_pre_H"
*cupsFilter: "application/vnd.cups-postscript 0 /run/current-system/sw/lib/cups/filter/kyofilter_H"
#4 Install the printer
- Open the CUPS page and click con the top menu “Administration”
- Click the button “Add Printer”
- Click on “Internet Printing Protocol (http)“ because the default link can’t reach the printer
- On “connection” write the printer IP like this: socket://192.168.1.22; Click con “Continue”
- You must enter name, description and location: you can write without worry. Click con “Continue”
- Take the edited PPD file and click on “Add Printer”
#5 Enjoy the silence (of the errors)
Now your NixOS can talk with your Kyocera UTAX 3207ci.
I would like this guide to be useful for other UTAX printers as well.