162 lines
3.3 KiB
Nix
162 lines
3.3 KiB
Nix
{ 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
|
|
freerdp
|
|
];
|
|
|
|
# --------------------------
|
|
# | Hyprland Configuration |
|
|
# --------------------------
|
|
# Set keybinds
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
settings = {
|
|
"$mod" = "SUPER";
|
|
bind = [
|
|
"$mod, Q, exec, konsole"
|
|
"$mod, C, killactive"
|
|
"$mod, M, exit"
|
|
"$mod, F, exec, firefox"
|
|
];
|
|
decoration = {
|
|
rounding = 10;
|
|
blur.enabled = true;
|
|
};
|
|
};
|
|
};
|
|
# Create hyprpaper config
|
|
home.file.".config/hypr/hyprpaper.conf" = {
|
|
text = ''
|
|
preload = ~/Pictures/background.jpg
|
|
wallpaper = eDP-1,~/Pictures/background.jpg
|
|
splash = false
|
|
'';
|
|
force = true;
|
|
};
|
|
# Run hyprpaper to set wallpaper
|
|
wayland.windowManager.hyprland.settings = {
|
|
exec-once = [
|
|
"hyprpaper"
|
|
];
|
|
};
|
|
|
|
|
|
# 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";
|
|
push.autoSetupRemote = "true";
|
|
};
|
|
};
|
|
|
|
# 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";
|
|
};
|
|
|
|
}
|
|
|