diff options
Diffstat (limited to 'makefu/2configs/printer-shared.nix')
-rw-r--r-- | makefu/2configs/printer-shared.nix | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/makefu/2configs/printer-shared.nix b/makefu/2configs/printer-shared.nix new file mode 100644 index 000000000..2a9e6724d --- /dev/null +++ b/makefu/2configs/printer-shared.nix @@ -0,0 +1,38 @@ +{ pkgs, config, ... }: + +{ + nixpkgs.config.allowUnfree = true; + services.avahi.enable = true; + services.avahi.publish.enable = true; + services.avahi.publish.userServices = true; + services.avahi.interfaces = [ config.makefu.server.primary-itf ]; + services.avahi.ipv6 = false; + services.avahi.nssmdns = true; + # via https://github.com/tjfontaine/airprint-generate/ + # environment.etc."avahi/services/samsung_scx2300.service".text + nixpkgs.config.packageOverrides = pkgs: rec { + avahi = pkgs.stdenv.lib.overrideDerivation pkgs.avahi (oldAttrs: { + postFixup = let + cfg = pkgs.writeText "airprint-scx3200.service" ''<?xml version="1.0" ?><!DOCTYPE service-group SYSTEM 'avahi-service.dtd'><service-group><name replace-wildcards="yes">AirPrint Samsung_SCX-3200_Series @ %h</name><service><type>_ipp._tcp</type><subtype>_universal._sub._ipp._tcp</subtype><port>631</port><txt-record>txtvers=1</txt-record><txt-record>qtotal=1</txt-record><txt-record>Transparent=T</txt-record><txt-record>URF=none</txt-record><txt-record>rp=printers/Samsung_SCX-3200_Series</txt-record><txt-record>note=Samsung SCX-3200 Series</txt-record><txt-record>product=(GPL Ghostscript)</txt-record><txt-record>printer-state=3</txt-record><txt-record>printer-type=0x801044</txt-record><txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-command</txt-record></service></service-group>''; + in '' + cp ${cfg} $out/etc/avahi/services/airprint-scx3200.service + ''; + }); + }; + + # only allowed in local network + services.printing = { + enable = true; + browsing = true; + #avahiEnabled = true; + defaultShared = true; + listenAddresses = [ "*:631" ]; + drivers = [ + pkgs.samsungUnifiedLinuxDriver + ]; + }; + + # scanners are printers just in reverse anyway + hardware.sane.enable = true; + hardware.sane.extraBackends = [ pkgs.samsungUnifiedLinuxDriver ]; +} |