193 lines
5.5 KiB
Nix
193 lines
5.5 KiB
Nix
{ pkgs, lib, ... }:
|
|
let
|
|
home-manager-config =
|
|
{
|
|
uid,
|
|
username,
|
|
}:
|
|
let
|
|
HOME = "/home/${username}";
|
|
in
|
|
{
|
|
${username} =
|
|
{ config, ... }:
|
|
{
|
|
imports = [
|
|
./nvim
|
|
./tmux.nix
|
|
];
|
|
|
|
home.username = username;
|
|
home.homeDirectory = "${HOME}";
|
|
home.stateVersion = "25.11";
|
|
home.enableNixpkgsReleaseCheck = false;
|
|
home.sessionVariables = {
|
|
DISPLAY = ":1";
|
|
};
|
|
|
|
programs = {
|
|
chromium.enable = true;
|
|
claude-code.enable = true;
|
|
opencode.enable = true;
|
|
ssh = {
|
|
enable = true;
|
|
enableDefaultConfig = false;
|
|
matchBlocks = {
|
|
"*" = {
|
|
serverAliveInterval = 60;
|
|
serverAliveCountMax = 3;
|
|
};
|
|
"github.com" = {
|
|
identityFile = "${HOME}/.ssh/id_ed25519";
|
|
};
|
|
};
|
|
};
|
|
delta = {
|
|
enable = true;
|
|
options = {
|
|
navigate = true;
|
|
line-numbers = true;
|
|
side-by-side = true;
|
|
};
|
|
enableGitIntegration = true;
|
|
};
|
|
git = {
|
|
enable = true;
|
|
lfs.enable = true;
|
|
signing = {
|
|
key = "${HOME}/.ssh/id_ed25519.pub";
|
|
signByDefault = true;
|
|
};
|
|
includes = [
|
|
{
|
|
condition = "gitdir:~/dealwise/";
|
|
contents = {
|
|
user = {
|
|
name = "felipematos";
|
|
email = "5471818+fnzr@users.noreply.github.com";
|
|
signingkey = "${HOME}/.ssh/id_ed25519.pub";
|
|
};
|
|
};
|
|
}
|
|
{
|
|
contents = {
|
|
user = {
|
|
name = "${username}";
|
|
email = "${username}@sandbox.dev";
|
|
signingkey = "${HOME}/.ssh/id_ed25519.pub";
|
|
};
|
|
};
|
|
}
|
|
];
|
|
settings = {
|
|
user = {
|
|
email = "${username}@sandbox.dev";
|
|
name = "${username}";
|
|
signingkey = "${HOME}/.ssh/id_ed25519.pub";
|
|
};
|
|
gpg.format = "ssh";
|
|
commit.gpgsign = true;
|
|
tag.gpgsign = true;
|
|
core = {
|
|
editor = "nvim";
|
|
whitespace = "fix,only-indent-error,trailing-space,space-before-tab";
|
|
quotepath = false;
|
|
};
|
|
diff = {
|
|
algorithm = "histogram";
|
|
renames = "copies";
|
|
tool = "nvim";
|
|
};
|
|
difftool = {
|
|
prompt = false;
|
|
nvim.cmd = "nvim -d $LOCAL $REMOTE";
|
|
};
|
|
merge = {
|
|
conflictstyle = "zdiff3";
|
|
tool = "nvim";
|
|
};
|
|
mergetool = {
|
|
prompt = false;
|
|
keepBackup = false;
|
|
nvim.cmd = "nvim -d $LOCAL $REMOTE $MERGED -c 'wincmd w' -c 'wincmd J'";
|
|
};
|
|
init = {
|
|
defaultBranch = "master";
|
|
};
|
|
push = {
|
|
autoSetupRemote = true;
|
|
default = "current";
|
|
};
|
|
pull = {
|
|
rebase = true;
|
|
};
|
|
fetch = {
|
|
prune = true;
|
|
};
|
|
help = {
|
|
autocorrect = "prompt";
|
|
};
|
|
};
|
|
};
|
|
fish = {
|
|
enable = true;
|
|
plugins = [
|
|
{
|
|
name = "puffer";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "nickeb96";
|
|
repo = "puffer-fish";
|
|
rev = "83174b0";
|
|
sha256 = "sha256-Dhx5+XRxJvlhdnFyimNxFyFiASrGU4ZwyefsDwtKnSg=";
|
|
};
|
|
}
|
|
];
|
|
|
|
interactiveShellInit = ''
|
|
set fish_greeting
|
|
bind ctrl-space ""
|
|
'';
|
|
};
|
|
starship.enable = true;
|
|
};
|
|
custom.tmux.enable = true;
|
|
custom.neovim = {
|
|
enable = true;
|
|
colorscheme = "rose-pine-moon";
|
|
hostname = "amelia";
|
|
};
|
|
xdg.configFile."containers/containers.conf".text = ''
|
|
[engine]
|
|
compose_warning_logs=false
|
|
events_logger="file"
|
|
|
|
[containers]
|
|
log_driver="k8s-file"
|
|
'';
|
|
xdg.configFile."opencode/opencode.json".text = builtins.toJSON {
|
|
"$schema" = "https://opencode.ai/config.json";
|
|
# provider = {
|
|
# ollama = {
|
|
# model = "qwen3.6";
|
|
# base_url = "http://localhost:11434";
|
|
# };
|
|
# };
|
|
};
|
|
xdg.userDirs = {
|
|
enable = true;
|
|
setSessionVariables = false;
|
|
extraConfig = {
|
|
XDG_CACHE_HOME = "$HOME/.cache";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
in
|
|
{
|
|
home-manager.users = lib.mkMerge [
|
|
(home-manager-config {
|
|
uid = 1002;
|
|
username = "agent";
|
|
})
|
|
];
|
|
}
|