35 lines
663 B
Nix
35 lines
663 B
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
cfg = config.os.networks.printing;
|
|
all = builtins.attrNames config.users.users;
|
|
users = builtins.filter (user: config.users.users.${user}.isNormalUser == true) all;
|
|
in
|
|
{
|
|
options.os.networks.printing = {
|
|
enable = mkEnableOption "System printing service";
|
|
};
|
|
config = mkIf cfg.enable {
|
|
|
|
services.printing = {
|
|
enable = true;
|
|
startWhenNeeded = true;
|
|
drivers = with pkgs; [ hplip ];
|
|
};
|
|
|
|
hardware.sane = {
|
|
enable = true;
|
|
extraBackends = with pkgs; [ sane-airscan ];
|
|
};
|
|
|
|
users.groups.lp.members = users;
|
|
users.groups.scanner.members = users;
|
|
|
|
};
|
|
}
|