Wire shared AGENTS.md and Claude settings through home-manager, plus a native Grok config (always-approve, rose-pine) and a `gb` yolo alias.
83 lines
2.5 KiB
Nix
83 lines
2.5 KiB
Nix
{ config, pkgs, ... }:
|
||
|
||
let
|
||
dotfiles = "${config.home.homeDirectory}/.dotfiles";
|
||
in
|
||
|
||
{
|
||
home.username = "laptran";
|
||
home.homeDirectory = "/Users/laptran";
|
||
home.stateVersion = "24.11";
|
||
home.packages = with pkgs; [
|
||
ripgrep
|
||
fd
|
||
fzf
|
||
jq
|
||
lazygit
|
||
neovim
|
||
nerd-fonts.hack
|
||
];
|
||
fonts.fontconfig.enable = true;
|
||
home.sessionVariables.EDITOR = "nvim";
|
||
|
||
programs.zsh = {
|
||
enable = true;
|
||
autosuggestion.enable = true; # ghost text from history
|
||
syntaxHighlighting.enable = true; # commands turn green when valid
|
||
initContent = ''
|
||
bindkey '^f' autosuggest-accept
|
||
'';
|
||
shellAliases = {
|
||
".." = "cd ..";
|
||
ll = "ls -plart";
|
||
add = "git add .";
|
||
push = "git push";
|
||
pull = "git pull";
|
||
m = "git switch main";
|
||
# High-agency agent launchers (same idea across tools)
|
||
cc = "claude --dangerously-skip-permissions";
|
||
co = "codex --full-auto";
|
||
gb = "grok --yolo";
|
||
};
|
||
};
|
||
|
||
programs.starship = {
|
||
enable = true;
|
||
settings = {
|
||
add_newline = false;
|
||
format = "$directory$git_branch$git_status$cmd_duration$line_break$character";
|
||
character = {
|
||
success_symbol = "[❯](purple)";
|
||
error_symbol = "[❯](red)";
|
||
};
|
||
cmd_duration.format = "[$duration]($style) ";
|
||
};
|
||
};
|
||
|
||
# Edit-in-place: the real file stays in my repo, the live path just points at it.
|
||
home.file.".config/wezterm".source =
|
||
config.lib.file.mkOutOfStoreSymlink "${dotfiles}/home/.config/wezterm";
|
||
home.file.".config/nvim".source =
|
||
config.lib.file.mkOutOfStoreSymlink "${dotfiles}/home/.config/nvim";
|
||
home.file.".config/herdr".source =
|
||
config.lib.file.mkOutOfStoreSymlink "${dotfiles}/home/.config/herdr";
|
||
|
||
# Claude Code settings (also read by Grok for permissions/compat)
|
||
home.file.".claude/settings.json".source =
|
||
config.lib.file.mkOutOfStoreSymlink "${dotfiles}/home/.claude/settings.json";
|
||
|
||
# Shared agent policy - one file, many harnesses
|
||
home.file.".claude/CLAUDE.md".source =
|
||
config.lib.file.mkOutOfStoreSymlink "${dotfiles}/home/AGENTS.md";
|
||
home.file.".codex/AGENTS.md".source =
|
||
config.lib.file.mkOutOfStoreSymlink "${dotfiles}/home/AGENTS.md";
|
||
home.file.".config/opencode/AGENTS.md".source =
|
||
config.lib.file.mkOutOfStoreSymlink "${dotfiles}/home/AGENTS.md";
|
||
home.file.".grok/AGENTS.md".source =
|
||
config.lib.file.mkOutOfStoreSymlink "${dotfiles}/home/AGENTS.md";
|
||
|
||
# Grok Build native config
|
||
home.file.".grok/config.toml".source =
|
||
config.lib.file.mkOutOfStoreSymlink "${dotfiles}/home/.grok/config.toml";
|
||
}
|