{ config, pkgs, lib, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ../modules/common.nix ../modules/sound.nix ../modules/window-manager.nix ../modules/fonts.nix ../modules/gnupg.nix ../modules/nix.nix ../modules/garbage-collector.nix ../modules/networking.secret.nix ../modules/wireguard-client.nix ]; # Configure kernel boot = { kernelPackages = pkgs.linuxPackages_6_1; extraModulePackages = with config.boot.kernelPackages; [ rtl88x2bu ]; }; # Use the GRUB 2 boot loader. boot.loader.grub = { enable = true; version = 2; device = "/dev/sdb"; }; networking = { hostName = "home"; # Define your hostname. useDHCP = false; interfaces = { enp3s0.useDHCP = true; wlp11s0f3u2.useDHCP = true; }; networkmanager.enable = true; }; local.nix.allowUnfreePackages = [ "cnijfilter2" ]; services = { avahi = { enable = true; nssmdns = true; }; printing = { enable = true; drivers = with pkgs; [ gutenprint cnijfilter2 ]; }; }; services.xserver = { # All monitors in the right order # Source: https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/x11/xserver.nix#L83 xrandrHeads = [ { output = "HDMI-A-0"; monitorConfig = '' Option "PreferredMode" "1920x1080" Option "Rotate" "right" ''; } { output = "DisplayPort-1"; primary = true; monitorConfig = '' Option "PreferredMode" "2560x1440" ''; } ]; }; services.logind.extraConfig = '' # don’t shutdown when power button is short-pressed HandlePowerKey=ignore ''; # Enable the Docker virtualisation.docker.enable = true; # Enable ipfs services.kubo = { enable = true; localDiscovery = true; enableGC = true; }; # Additional nix configs local.nix.enableMyRegistry = true; # Wireguard client age.secrets.wireguard-home-private = { file = ../../secrets/wireguard-home-private.age; mode = "0400"; }; local.wireguard = { enable = true; ip = "10.100.0.2/24"; privateKeyFile = config.age.secrets.wireguard-home-private.path; }; # Invisible internet project services.i2pd = { enable = true; proto.httpProxy.enable = true; proto.http.enable = true; }; services.transmission.enable = true; }