nix-conf/hosts/common/default.nix

142 lines
3.1 KiB
Nix

{
config,
inputs,
lib,
pkgs,
...
}:
{
imports = [ ./users/thiago/default.nix ];
boot.loader.systemd-boot.enable = true;
boot.kernelModules = [ "i2c-dev" ];
nixpkgs.overlays = [
(final: prev: {
libnitrokey = prev.libnitrokey.overrideAttrs (old: {
cmakeFlags = (old.cmakeFlags or [ ]) ++ [
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
];
});
epsonscan2 = prev.epsonscan2.overrideAttrs (old: {
cmakeFlags = (old.cmakeFlags or [ ]) ++ [
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
];
});
})
];
environment = {
shells = with pkgs; [ zsh ];
etc = lib.mapAttrs' (name: value: {
name = "nix/path/${name}";
value.source = value.flake;
}) config.nix.registry;
systemPackages = with pkgs; [
ccid
ddcutil
epson-escpr
epsonscan2
exfat
file
fuse3
gcsfuse
ghostscript
git
gnupg
hidapi
home-manager
keymapp
libnitrokey
libusb1
nix-ld
opensc
pciutils
pcsc-safenet
pcsclite
pcsctools
pkcs11helper
podman-compose
rclone
sops
wget
zsa-udev-rules
];
};
hardware.keyboard.zsa.enable = true;
networking.networkmanager.enable = true;
nix = {
registry = (lib.mapAttrs (_: flake: { inherit flake; })) (
(lib.filterAttrs (_: lib.isType "flake")) inputs
);
nixPath = [ "/etc/nix/path" ];
settings = {
download-buffer-size = "512M";
experimental-features = "nix-command flakes";
auto-optimise-store = true;
};
};
nixpkgs.config.allowUnfree = true;
programs = {
gnupg = {
agent = {
enableSSHSupport = true;
enable = true;
pinentryPackage = pkgs.pinentry-tty;
};
};
nix-ld = {
enable = true;
libraries = with pkgs; [
glibc
zlib
];
};
zsh.enable = true;
};
services = {
printing = {
enable = true;
drivers = [ pkgs.epson-escpr ];
};
pcscd.enable = true;
# xserver.displayManager.sessionCommands =
# "${pkgs.xorg.xmodmap}/bin/xmodmap -e 'keycode 64 = Alt_L'";
udev = {
packages = [
pkgs.libwacom
pkgs.nitrokey-udev-rules
];
extraRules = ''
SUBSYSTEM=="i2c-dev", KERNEL=="i2c-[0-9]*", ATTRS{class}=="0x030000", TAG+="uaccess"
SUBSYSTEM=="dri", KERNEL=="card[0-9]*", TAG+="uaccess"
'';
};
};
# hardware = {
# printers = {
# ensurePrinters = [
# {
# name = "Epson_L3150";
# location = "HomeOffice";
# deviceUri = "usb://EPSON/L3150%20Series?serial=583545563539353524&interface=1";
# model = "${pkgs.epson-escpr}/share/cups/model/epson-inkjet-printer-escpr/Epson-L3150_Series-epson-escpr-en.ppd";
# ppdOptions = { PageSize = "A4"; };
# }
# ];
# ensureDefaultPrinter = "Epson_L3150";
# };
# };
users.groups.scard = { };
users.groups.i2c = { };
time.timeZone = "America/Sao_Paulo";
users.defaultUserShell = pkgs.zsh;
}