refactor: moved all configs to one place
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
{ 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";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user