{ config, lib, pkgs, ... }: { imports = [ ./overlays/packages.nix ./configuration-cross.nix ]; nixpkgs.config.allowUnfree = true; nix.settings.extra-experimental-features = "nix-command flakes"; nix.settings.trusted-users = [ "audrey" ]; nix.settings.max-jobs = 1; nix.settings.cores = 0; nix.settings.secret-key-files = [ "/var/lib/nix/binary-cache-key" ]; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; # Configure keymap in X11 services.xserver.xkb.layout = "us"; services.xserver.xkb.options = "caps:escape"; users.defaultUserShell = pkgs.zsh; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.audrey = { uid = 1000; description = "Audrey Dutcher"; isNormalUser = true; extraGroups = [ "wheel" "docker" ]; openssh.authorizedKeys.keyFiles = [ ./dotfiles/authorized_keys ]; }; environment.systemPackages = with pkgs; [ wget ripgrep fd curl btop file patchelf gdb (python3.withPackages (p: with p; [ virtualenvwrapper pylint pytest ipdb ipython ])) ]; programs = { zsh = { enable = true; enableCompletion = true; syntaxHighlighting.enable = true; vteIntegration = true; enableLsColors = true; histSize = 10000; promptInit = '' . ${pkgs.python3Packages.virtualenvwrapper}/bin/virtualenvwrapper.sh '' + builtins.readFile ./dotfiles/zsh-prompt.sh; shellInit = builtins.readFile ./dotfiles/zsh-init.sh; shellAliases = { grep = "grep --color=auto"; egrep = "egrep --color=auto"; objdump = "objdump -M intel"; gits = "git status"; pag = "ps aux | grep -v grep | grep -i"; hd = "hexdump -C"; man = "MAN_POSIXLY_CORRECT=1 man"; nose = "pytest -v --capture=no --pdbcls=IPython.terminal.debugger:TerminalPdb"; mkvirtualenv = "mkvirtualenv -r /etc/venv-default.txt"; }; }; tmux = { enable = true; extraConfig = builtins.readFile ./dotfiles/tmux.conf; }; direnv.enable = true; htop.enable = true; git = { enable = true; lfs.enable = true; config = { user.email = "audrey@rhelmot.io"; user.name = "Audrey Dutcher"; init.defaultBranch = "main"; blame.markUnblamableLines = true; credential.helper = "store"; url."ssh://git@".insteadOf = "git://"; }; }; }; environment.etc."gdb/gdbinit".source = ./dotfiles/gdb-init.gdb; environment.etc."venv-default.txt".source = ./dotfiles/venv-default.txt; # Enable the OpenSSH daemon. services.openssh.enable = true; }