Files
nixos-4screen/home/sam/home.nix
sam rolfe 556813c3fa fix: use ~/dotfiles, update docs, and disable Docker
Co-authored-by: aider (openrouter/openai/gpt-5.2) <aider@aider.chat>
2026-02-08 16:40:45 +11:00

137 lines
3.2 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 live on the installed system itself at: ~/dotfiles
dotfilesDir = "${config.home.homeDirectory}/dotfiles";
# Home Manager helper to symlink files/dirs that live outside the Nix store.
mkOOS = config.lib.file.mkOutOfStoreSymlink;
in
{
home.stateVersion = "24.05";
programs.home-manager.enable = true;
# ---
# Shell (zsh + oh-my-zsh + powerlevel10k)
# ---
programs.zsh = {
enable = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
oh-my-zsh = {
enable = true;
theme = "powerlevel10k/powerlevel10k";
plugins = [ "git" ];
};
shellAliases = {
ls = "eza --icons --git";
ll = "eza -l --icons --git";
la = "eza -la --icons --git";
tree = "eza --tree";
cat = "bat --color=always --paging=never";
};
# Dotfiles integration notes:
# - Home Manager manages ~/.zshrc; do not symlink ~/.zshrc directly.
# - If you want to source additional Zsh snippets from ~/dotfiles, tell me
# the exact filename(s) and well add them safely here.
initExtra = ''
# Optional: source additional Zsh config from ~/dotfiles if desired.
# Example (uncomment + adjust if you confirm the exact file path):
# if [ -f "${dotfilesDir}/zsh/extra.zsh" ]; then
# source "${dotfilesDir}/zsh/extra.zsh"
# fi
'';
};
programs.powerlevel10k = {
enable = true;
# If you have a real p10k config file in dotfiles, tell me its exact path.
# Then we can symlink it to ~/.p10k.zsh (or source it) reliably.
};
# ---
# Shell tools
# ---
programs.atuin = {
enable = true;
enableZshIntegration = true;
};
programs.fzf = {
enable = true;
enableZshIntegration = true;
};
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
# ---
# Terminal / editor
# ---
programs.kitty.enable = true;
programs.neovim = {
enable = true;
defaultEditor = true;
};
# ---
# Packages (NOW list + a few safe essentials)
# ---
home.packages = with pkgs; [
git
curl
wget
eza
bat
ripgrep
fd
btop
lazygit
zellij
tealdeer
navi
yazi
dua
jq
unzip
zip
p7zip
];
# ---
# Dotfiles (out-of-store symlinks from ~/dotfiles)
# ---
# IMPORTANT:
# - These symlinks will point into ~/dotfiles.
# - Ensure you clone/copy your dotfiles to ~/dotfiles on the new system.
home.file.".config/atuin".source = mkOOS "${dotfilesDir}/atuin";
home.file.".config/kitty".source = mkOOS "${dotfilesDir}/kitty";
home.file.".config/nvim".source = mkOOS "${dotfilesDir}/nvim";
home.file.".config/zellij".source = mkOOS "${dotfilesDir}/zellij";
# TODO (needs confirmation from you):
# - zsh dotfiles: what exact files do you want sourced?
# - pk10k: what is the exact filename for your p10k config?
#
# Once you confirm, we can add e.g.:
# home.file.".p10k.zsh".source = mkOOS "${dotfilesDir}/pk10k/.p10k.zsh";
# ---
# Secrets policy
# ---
# Do NOT put API keys here (or anywhere in git).
# Preferred approach (local-only):
# ~/.config/environment.d/10-secrets.conf
# or add sops-nix later.
}