New structure:
- home/base/ - Always loaded (shell, cli-tools, secrets)
- home/coding/ - Profile-independent dev tooling (editor, lsp, git, agents)
- home/profiles/ - Freely combinable profiles (gaming, media)
- home/desktop/ - Desktop-only (wm, apps, theme)
- home/server/ - Minimal server stub
Migration sources:
- home/features/cli/ → home/base/{shell,cli-tools,secrets}
- home/features/desktop/hyprland,wayland,rofi → home/desktop/wm/
- home/features/desktop/obsidian,office,webapps,crypto → home/desktop/apps/
- home/features/desktop/fonts,theme,wallpapers → home/desktop/theme/
- gaming.nix split → home/profiles/gaming/{steam,gamescope}
- media.nix split → home/profiles/media/{obs,ffmpeg,yt-dlp,kdenlive,handbrake}
Option namespaces updated:
- features.cli.* → base.shell.* / base.cliTools.* / base.secrets
- features.desktop.* → desktop.wm.* / desktop.apps.* / desktop.theme.*
- features.desktop.gaming → profiles.gaming.*
- features.desktop.media → profiles.media.*
Verified: nix flake check passes (warnings only)
42 lines
904 B
Nix
42 lines
904 B
Nix
# Git configuration with signing, aliases, and global ignore.
|
|
# Identity and host-specific SSH keys are set per-host in home/m3tam3re/.
|
|
{
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; {
|
|
programs.git = {
|
|
enable = true;
|
|
signing.format = null;
|
|
settings = {
|
|
user = {
|
|
name = lib.mkDefault "m3tam3re";
|
|
email = lib.mkDefault "p@m3ta.dev";
|
|
};
|
|
core.excludesfile = "~/.gitignore_global";
|
|
init.defaultBranch = "master";
|
|
alias = {
|
|
st = "status";
|
|
logd = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.difftastic.enable = true;
|
|
|
|
programs.jujutsu = {
|
|
enable = true;
|
|
settings = {
|
|
user = {
|
|
email = "m@m3tam3re.com";
|
|
name = "Sascha Koenig";
|
|
};
|
|
};
|
|
};
|
|
|
|
home.packages = with pkgs; [
|
|
lazygit
|
|
];
|
|
}
|