Add scanner setup

This commit is contained in:
Malte Tammena 2021-11-05 18:29:45 +01:00
parent 3ed2998378
commit efee26eb02
5 changed files with 71 additions and 3 deletions

View file

@ -132,7 +132,7 @@
fend = inputs.fend.packages."${system}".fend; fend = inputs.fend.packages."${system}".fend;
}) })
# Some program adjustments # Some program adjustments
#(import ./overlays/mosh.nix) (import ./overlays/sane-backends.nix)
(import ./overlays/logisim.nix) (import ./overlays/logisim.nix)
(import ./overlays/cataclysm-dda.nix) (import ./overlays/cataclysm-dda.nix)
]; ];
@ -144,6 +144,7 @@
modules = [ modules = [
./system/helix-texta.nix ./system/helix-texta.nix
./system/light-actkbd.nix ./system/light-actkbd.nix
./system/modules/scanner.nix
self.nixosModules.helix-texta-hardware self.nixosModules.helix-texta-hardware
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
self.nixosModules.home-manager self.nixosModules.home-manager

View file

@ -0,0 +1,17 @@
self: super:
{
sane-backends = (super.sane-backends.override {
extraFirmware = [{
src = super.fetchurl {
url = "www.meier-geinitz.de/sane/gt68xx-backend/firmware/sbfw.usb";
sha256 = "12hnacivpy153alfjyr7k92y90nmb5d7z1ca7aix5w7wi0w4jdjv";
};
name = "sbfw.usb";
backend = "gt68xx";
}];
}).overrideAttrs (old: {
patches = (old.patches or [ ]) ++ [ ../patches/gt68xx.conf.patch ];
prePatch = "stat backend/gt68xx.conf.in";
});
}

15
patches/gt68xx.conf.patch Normal file
View file

@ -0,0 +1,15 @@
--- a/backend/gt68xx.conf.in 2021-02-14 12:25:19.000000000 +0100
+++ b/backend/gt68xx.conf.in 2021-11-05 14:43:41.077378018 +0100
@@ -30,9 +30,9 @@
#override "mustek-scanexpress-1200-ub-plus"
# Medion/Lifetec/Tevion LT 9452:
-#override "mustek-scanexpress-1200-ub-plus"
-#vendor "Lifetec"
-#model "LT 9452"
+override "mustek-scanexpress-1200-ub-plus"
+vendor "Lifetec"
+model "LT 9452"
# Trust Compact Scan USB 19200:
#override "mustek-scanexpress-1200-ub-plus"

View file

@ -123,8 +123,16 @@ in {
hashedPassword = hashedPassword =
"$6$zqEC2iJJ98Ne$lRERO30msyjJm7oJCqRD/xj3NIm4De37gD.VUzfg7aceosE/6S6eNAaruIakgUtSC970MHRPoNlCEy1RoFuyh."; "$6$zqEC2iJJ98Ne$lRERO30msyjJm7oJCqRD/xj3NIm4De37gD.VUzfg7aceosE/6S6eNAaruIakgUtSC970MHRPoNlCEy1RoFuyh.";
isNormalUser = true; isNormalUser = true;
extraGroups = extraGroups = [
[ "wheel" "networkmanager" "video" "lp" "kvm" "libvirtd" "podman" ]; "wheel"
"networkmanager"
"video"
"lp"
"kvm"
"libvirtd"
"podman"
"scanner"
];
# Yes, use the best, please # Yes, use the best, please
shell = pkgs.fish; shell = pkgs.fish;
}; };

View file

@ -0,0 +1,27 @@
{ pkgs, ... }:
let
scan = "${pkgs.sane-backends}/bin/scanimage";
convert = "${pkgs.imagemagick}/bin/convert";
# TODO: Can I specify this in a better way?
device = "gt68xx";
scan-a4 = pkgs.writeScriptBin "scan-a4" ''
#!${pkgs.stdenv.shell}
if [[ -z $1 ]]; then
echo "Missing filename"
exit 1
fi
${scan} --device-name ${device} \
-x 210 \
-y 297 \
-o /tmp/last-scan.png \
--resolution 150 || exit 2
${convert} /tmp/last-scan.png $1 || exit 3
'';
in {
hardware.sane.enable = true;
environment.systemPackages = [ scan-a4 ];
}