# # Our generic NixOS configuration for all systems. # Individual machines are set up in ../flake.nix and their ./hosts entries. # # vim: et:ts=2:sw=2: # { pkgs, deprekages, talon, ... }: { # Ensures the system state isn't changed breakingly (e.g. by updating # a program to a version that takes a newer data format) from the version # listed here. system.stateVersion = "23.11"; # # Generic system settings. # time.timeZone = "America/Denver"; #time.timeZone = "Europe/Amsterdam"; i18n.defaultLocale = "en_GB.utf8"; # Allow use of e.g. 'nix search' and flakes. nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Allow use of unfree software. nixpkgs.config.allowUnfree = true; # You can trust us. I swear. nix.settings.trusted-users = [ "deprekated" ]; # Xonsh is currently broken in unstable. # Add a harmless workaround to all of our systems. imports = [ ./overlays/always-wrap-xonsh.nix ]; # # General tweaks and fixes. # # Make systemd not hang here forever. systemd.extraConfig = "DefaultTimeoutStopSec=20"; # # Users. # # Create a device groups, which are useful for USB stuffs. users.groups.plugdev = { }; users.groups.input = { }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.deprekated = { isNormalUser = true; description = "Kate Adkins"; uid = 1000; extraGroups = [ "audio" "disk" "dialout" "libvirtd" "networkmanager" "plugdev" "qmemu-libvirtd" "video" "wheel" "input" "kvm" ]; # Use xonsh as our default shell. shell = deprekages.xonsh-with-xontribs; }; programs.xonsh = { enable = true; package = deprekages.xonsh-with-xontribs; }; # # Services # services.pcscd.enable = true; services.openssh.enable = true; virtualisation.docker.enable = true; services.udev.packages = [ pkgs.minipro talon.default ]; services.fwupd.enable = true; # Use avahi for local DNS. services.avahi = { enable = true; nssmdns4 = true; nssmdns6 = true; publish = { enable = true; userServices = true; }; }; }