Files
dotfiles/home.nix
T
Lap Tran 6eee2509a4 Add Grok Build agent config adapted from Claude Code setup
Wire shared AGENTS.md and Claude settings through home-manager, plus a
native Grok config (always-approve, rose-pine) and a `gb` yolo alias.
2026-07-18 23:03:12 -04:00

83 lines
2.5 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{ 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";
}