# System configuration and packages for my personal NixOS setup { config, pkgs, ... }: { imports = [ # include local machine/environment config ./local.nix ./programs ]; nixpkgs.config.allowUnfree = true; nix.settings.experimental-features = ["nix-command" "flakes" ]; environment.systemPackages = with pkgs; [ fishPlugins.tide neovim wget curl git htop btop dig eza inetutils mosh traceroute fastfetch age ]; environment.shellAliases = { vi = "nvim"; vim = "nvim"; ll = "eza -alo --group-directories-first"; tree = "eza -lT"; }; services.openssh = { enable = true; settings = { X11Forwarding = true; PermitRootLogin = "no"; }; openFirewall = true; }; programs.direnv.enable = true; users.defaultUserShell = pkgs.fish; programs.tmux = { enable = true; shortcut = "a"; # changes default shortcut to ctrl-a from ctrl-b extraConfig = '' set-option -g mouse on bind | split-window -h -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}" ''; }; services.tailscale.enable = true; services.tailscale.useRoutingFeatures = "client"; system.stateVersion = "23.05"; }