nixos-cesium/nixos/programs.nix
2026-03-07 17:42:31 +01:00

158 lines
3.1 KiB
Nix

# In deiner home.nix
{ config, pkgs, ... }:
{
programs.git = {
enable = true;
settings = {
aliases = {
prune = "fetch --prune";
undo = "reset --soft HEAD^";
stash-all = "stash save --include-untracked";
graph = "log --graph --decorate --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'";
};
apply.whitespace = "fix";
branch = {
autosetuprebase = "remote";
sort = "-authordate";
};
"branch \"main\"" = {
remote = "origin";
merge = "refs/heads/main";
rebase = true;
};
color = {
ui = "auto";
branch = "auto";
diff = "auto";
status = "auto";
interactive = "auto";
pager = true;
};
"color \"branch\"" = {
current = "yellow reverse";
local = "yellow";
remote = "green";
};
"color \"diff\"" = {
meta = "yellow bold";
frag = "magenta bold";
old = "red bold";
new = "green bold";
whitespace = "red reverse";
};
"color \"diff-highlight\"" = {
oldNormal = "red bold";
oldHighlight = "red bold 52";
newNormal = "green bold";
newHighlight = "green bold 22";
};
"color \"status\"" = {
added = "yellow";
changed = "green";
untracked = "cyan";
};
core = {
pager = "less -FRSX";
whitespace = "fix,-indent-with-non-tab,trailing-space,cr-at-eol";
editor = "vim";
fileMode = false;
autocrlf = "input";
};
credential.helper = "cache";
diff.tool = "vimdiff";
difftool.prompt = false;
fetch.prune = true;
http.sslverify = false;
init.defaultBranch = "main";
merge.tool = "vimdiff";
mergetool.prompt = false;
pull.rebase = false;
push = {
default = "simple";
followTags = true;
};
rerere.enabled = 1;
status.showUntrackedFiles = "all";
};
ignores = [
".idea" # JetBrains IDEs
];
};
programs.vim = {
enable = true;
defaultEditor = true;
settings = {
number = true;
relativenumber = true;
tabstop = 2;
shiftwidth = 2;
expandtab = true;
};
extraConfig = ''
syntax on
set encoding=utf-8
set autoindent
set smartindent
'';
};
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
oh-my-zsh = {
enable = true;
theme = "powerlevel10k/powerlevel10k";
plugins = [
"command-not-found"
"common-aliases"
"docker"
"docker-compose"
"git"
"git-prompt"
"git-flow-avh"
"ssh-agent"
"systemd"
"sudo"
"rsync"
];
custom = "$HOME/.oh-my-zsh/custom";
};
initContent = ''
# Bell deaktivieren
unsetopt BEEP
# Powerlevel10k Konfiguration laden (falls vorhanden)
[[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh
'';
};
}