diff --git a/flake.nix b/flake.nix index 9fbf8a0..b9b8da6 100644 --- a/flake.nix +++ b/flake.nix @@ -94,7 +94,7 @@ inherit (prev) system; config.allowUnfree = true; }; - inherit (self.packages.${prev.system}) deconz; + inherit (self.packages.${prev.system}) deconz brlaser; vimPlugins = prev.vimPlugins // final.callPackage ./pkgs/vim-plugins { inherit inputs; }; }; diff --git a/pkgs/brlaser/default.nix b/pkgs/brlaser/default.nix new file mode 100644 index 0000000..c38629a --- /dev/null +++ b/pkgs/brlaser/default.nix @@ -0,0 +1,106 @@ +{ lib, stdenv, fetchFromGitHub, cmake, zlib, cups, ... }: + +# maintained fork of brlaser with newer drivers (including Brother HL-L2370DN) +stdenv.mkDerivation (finalAttrs: { + pname = "brlaser"; + version = "6.2.6"; + + src = fetchFromGitHub { + owner = "Owl-Maintain"; + repo = "brlaser"; + rev = "v${finalAttrs.version}"; + hash = "sha256-+W84s3Nulj0kz2h1WE7/QGysVylKkN/xNqcNvrQz6D8="; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ zlib cups ]; + + cmakeFlags = [ "-DCUPS_SERVER_BIN=lib/cups" "-DCUPS_DATA_DIR=share/cups" ]; + + meta = with lib; { + description = "A CUPS driver for Brother laser printers"; + longDescription = '' + While most Brother printers can use standard printer languages like PCL or PostScript, some models do not. If you have a monochrome Brother laser printer (or multi-function device) and the other open-source drivers are not working, brlaser might be able to help. Additionally, there have been reports of some non-Brother printers working with this driver. + + The following printers have been reported to work with this driver: + + Brother DCP-1510 series + Brother DCP-1600 series + Brother DCP-1610W series + Brother DCP-7020 + Brother DCP-7030 + Brother DCP-7040 + Brother DCP-7055 + Brother DCP-7055W + Brother DCP-7060D + Brother DCP-7065DN + Brother DCP-7070DW + Brother DCP-7080 + Brother DCP-7080D + Brother DCP-8065DN + Brother DCP-L2500D series + Brother DCP-L2510D series + Brother DCP-L2520D series + Brother DCP-L2520DW series + Brother DCP-L2537DW + Brother DCP-L2540DW series + Brother DCP-L2550DW series + Brother FAX-2820 + Brother FAX-2840 + Brother HL-1110 series + Brother HL-1200 series + Brother HL-2030 series + Brother HL-2130 series + Brother HL-2140 series + Brother HL-2220 series + Brother HL-2230 series + Brother HL-2240D series + Brother HL-2250DN series + Brother HL-2260 + Brother HL-2270DW series + Brother HL-2280DW + Brother HL-5030 series + Brother HL-5040 series + Brother HL-L2300D series + Brother HL-L2305 series + Brother HL-L2310D series + Brother HL-L2320D series + Brother HL-L2335D series + Brother HL-L2340D series + Brother HL-L2350DW series + Brother HL-L2360D series + Brother HL-L2370DN series + Brother HL-L2375DW series + Brother HL-L2380DW series + Brother HL-L2390DW + Brother HL-L5000D series + Brother MFC-1810 series + Brother MFC-1910W series + Brother MFC-7240 + Brother MFC-7320 + Brother MFC-7340 + Brother MFC-7360N + Brother MFC-7365DN + Brother MFC-7420 + Brother MFC-7440N + Brother MFC-7460DN + Brother MFC-7860DW + Brother MFC-8710DW + Brother MFC-8860DN + Brother MFC-9160 + Brother MFC-L2700DN series + Brother MFC-L2700DW series + Brother MFC-L2710DN series + Brother MFC-L2710DW series + Brother MFC-L2750DW series + Fuji Xerox DocuPrint P265 dw + Lenovo LJ2650DN + ''; + homepage = "https://github.com/Owl-Maintain/brlaser"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ felschr ]; + changelog = + "https://github.com/Owl-Maintain/brlaser/releases/tag/${finalAttrs.src.rStijnDWev}"; + }; +}) diff --git a/pkgs/default.nix b/pkgs/default.nix index f9853fb..81f2944 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,5 +1,6 @@ { pkgs, ... }: { + brlaser = pkgs.callPackage ./brlaser { }; deconz = pkgs.qt5.callPackage ./deconz { }; } diff --git a/system/printing/home.nix b/system/printing/home.nix index 1cf627e..5df3700 100644 --- a/system/printing/home.nix +++ b/system/printing/home.nix @@ -1,6 +1,8 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { + services.printing.drivers = with pkgs; [ brlaser ]; + hardware.printers = { ensureDefaultPrinter = "Brother_HL-L2370DN"; ensurePrinters = [{ @@ -8,7 +10,8 @@ description = "Brother HL-L2370DN"; deviceUri = "dnssd://Brother%20HL-L2370DN%20series._ipp._tcp.local/?uuid=e3248000-80ce-11db-8000-b422007e1490"; - model = "everywhere"; + model = "drv:///brlaser.drv/brl2370d.ppd"; + # model = "everywhere"; }]; }; }