{ config, pkgs, inputs, ... }: { # Enable experimental nix features. nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Allow unfree packages nixpkgs.config.allowUnfree = true; # General setup time.timeZone = "America/Los_Angeles"; i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8"; LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8"; }; # Change default shell to zsh. users.defaultUserShell = pkgs.zsh; programs.zsh = { enable = true; autosuggestions.enable = true; syntaxHighlighting.enable = true; }; # List packages installed in system profile. environment.systemPackages = with pkgs; [ git vim screen killall # Create a "fhs" package for running binaries (let base = pkgs.appimageTools.defaultFhsEnvArgs; in pkgs.buildFHSEnv (base // { name = "fhs"; targetPkgs = pkgs: (base.targetPkgs pkgs) ++ (with pkgs; [ pkg-config libxml2 ncurses ] ); profile = "export FHS=1"; runScript = "bash"; extraOutputsToInstall = ["dev"]; })) ]; # Enable services. services.openssh.enable = true; services.tailscale.enable = true; # Enable docker service. virtualisation.docker.enable = true; system.stateVersion = "24.05"; }