# Configuration common to all my servers { config, pkgs, lib, ... }: { imports = [ ./chrony.nix ./tmux.nix ./zsh.nix ]; # Common boot settings boot = { cleanTmpDir = true; # Clean /tmp on reboot }; # Select internationalisation properties. i18n = { defaultLocale = "en_AU.UTF-8"; # Set the default locale }; # Set the defaul console properties console = { keyMap = "us"; # Set the default console key map font = "ter-powerline-v16Rv"; # Set the default console font }; time.timeZone = "Australia/Brisbane"; # Set your preferred timezone: # Set security options: security.sudo.enable = true; security.sudo.wheelNeedsPassword = false; # Configure and install required fonts fonts.enableDefaultFonts = true; fonts.enableFontDir = true; fonts.fonts = with pkgs; [ powerline-fonts # Required for Powerline prompts ]; fonts.fontconfig.includeUserConf = false; # Adapted from gchristensen and clever nix = { nixPath = [ # Ruin the config so we don't accidentally run # nixos-rebuild switch on the host (let cfg = pkgs.writeText "configuration.nix" '' assert builtins.trace "This system is managed by NixOps." false; {} ''; in "nixos-config=${cfg}") # Copy the channel version from the deploy host to the target "nixpkgs=/run/current-system/nixpkgs" ]; gc = { automatic = true; # Enable Nix garbage collection: dates = "weekly"; options = "--delete-older-than 90d"; }; autoOptimiseStore = true; extraOptions = '' show-trace = true # Enable --show-trace by default for nix builders-use-substitutes = true # Set builders to use caches ''; trustedUsers = ["craige"]; }; system.extraSystemBuilderCmds = '' ln -sv ${pkgs.path} $out/nixpkgs ''; environment.etc.host-nix-channel.source = pkgs.path; # Set the system-wide environment environment = { systemPackages = with pkgs; [ byobu # text-based window manager and terminal multiplexer. direnv # A shell extension that manages your environment dnsutils # Bind DNS utilities fd # A simple, fast and user-friendly alternative to find (if config.services.xserver.enable then gitAndTools.gitFull else git) # Distributed version control system htop # interactive process viewer hwinfo # Hardware detection tool killall # kill processes by name lshw # Detailed information on the hardware configuration lsof # list open files mosh # Mobile shell (ssh replacement) ncdu # Disk usage analyzer with an ncurses interface nix-index # A files database for nixpkgs #openssl # A cryptographic library that implements the SSL and TLS protocols ripgrep # Utility that provides usability of The Silver Searcher with the raw speed of grep ( import ../profiles/vim.nix ) ]; variables = { EDITOR = [ "vim"]; # Set the default editor }; }; # Users common across MIO Ops: users.mutableUsers = false; # Remove any users not defined in here }