{ config, pkgs, ... }: { home.username = "l-wyatt"; home.homeDirectory = "/home/l-wyatt"; home.stateVersion = "25.05"; # Don't change after first setup # Packages for this user home.packages = with pkgs; [ kdePackages.kate # nvim firefox git zsh python3 nmap file ]; # Set session variables home.sessionVariables = { NIX_BUILD_SHELL = "${pkgs.zsh}/bin/zsh"; ZELLIJ_DISABLE_HELP = "1"; }; # Enable Zsh and configure it home.file.".zshrc".force = true; programs.zsh = { enable = true; oh-my-zsh.enable = true; oh-my-zsh.theme = "agnoster"; initContent = '' # Only start Zellij if we're in an interactive terminal if [ -z "$ZELLIJ" ] && [ "$TERM" != "linux" ]; then exec zellij fi ''; }; # Manage your git configuration declaratively programs.git = { enable = true; userName = "0xWheatyz"; userEmail = "wyatt@leeworks.dev"; extraConfig = { init.defaultBranch = "master"; }; }; # Enable zellij (terminal multiplexing) programs.zellij = { enable = true; # Optional: write your own config to ~/.config/zellij/config.kdl settings = { theme = "default"; pane_frames = true; default_layout = "compact"; }; }; # Neovim management programs.neovim = { enable = true; defaultEditor = true; # Load Lua config inline extraLuaConfig = '' vim.opt.number = true vim.opt.tabstop = 2 vim.opt.shiftwidth = 2 vim.opt.expandtab = true vim.opt.relativenumber = true require("telescope").setup {} require("nvim-treesitter.configs").setup { highlight = { enable = true } } ''; plugins = with pkgs.vimPlugins; [ telescope-nvim nvim-treesitter nvim-lspconfig gruvbox ]; }; programs.ssh = { enable = true; matchBlocks = { "vps" = { hostname = "45.79.198.105"; user = "wyatt"; port = 22; }; # No terminal access to this machine "_JumpHost" = { hostname = "localhost"; port = 2222; user = "wyatt"; proxyJump = "vps"; }; "home" = { hostname = "10.0.0.20"; port = 22; user = "l-wyatt"; }; "git" = { hostname = "10.0.0.9"; port = 122; user = "git"; }; }; # extraConfig = '' # Host * # ControlMaster auto # ControlPersist 1m # ControlPath /tmp/cm-%r@%h:%p # ''; controlMaster = "auto"; controlPersist = "1m"; controlPath = "~/.ssh/cm-%r@%h:%p"; }; }