# In deiner home.nix { config, pkgs, ... }: let localScripts = import ./scripts.nix { inherit pkgs; }; in { home.stateVersion = "25.11"; home.packages = with pkgs; [ # Desktop-Anwendungen thunderbird vlc gimp filezilla solaar jameica libreoffice-fresh hunspell hunspellDicts.de_DE darktable kdePackages.kdenlive # davinci-resolve-studio # Browser google-chrome # Kommunikation signal-desktop # Remote Desktop rustdesk-flutter # Gaming lutris steam prismlauncher # Entwicklung jetbrains-toolbox mkcert gitflow gnumake p7zip cacert # Gnome extensions gnomeExtensions.appindicator gnomeExtensions.caffeine gnomeExtensions.dash-to-dock # Aliases localScripts.composer localScripts.git-cleanup-local-branches localScripts.lazydocker ]; # Powerlevel10k Theme installieren home.activation.installPowerlevel10k = config.lib.dag.entryAfter ["writeBoundary"] '' P10K_DIR="$HOME/.oh-my-zsh/custom/themes/powerlevel10k" if [ ! -d "$P10K_DIR" ]; then $DRY_RUN_CMD mkdir -p "$HOME/.oh-my-zsh/custom/themes" $DRY_RUN_CMD ${pkgs.git}/bin/git clone --depth=1 \ https://github.com/romkatv/powerlevel10k.git "$P10K_DIR" || true fi ''; # mkcert installieren (für lokale SSL-Zertifikate) home.activation.setupMkcert = config.lib.dag.entryAfter ["writeBoundary"] '' if [ ! -f "$HOME/.local/share/mkcert/rootCA.pem" ]; then $DRY_RUN_CMD ${pkgs.mkcert}/bin/mkcert -install || true fi ''; home.shellAliases = { ll = "ls -lah"; la = "ls -A"; l = "ls -CF"; ".." = "cd .."; "..." = "cd ../.."; rebuild = "sudo nixos-rebuild switch"; update = "sudo nixos-rebuild switch --upgrade"; c = "composer"; lzd = "lazydocker"; gclb = "git-cleanup-local-branches"; ngc = "sudo nix-store --optimise && sudo nix-collect-garbage -d"; }; dconf.settings = { "org/gnome/desktop/wm/preferences" = { button-layout = "appmenu:minimize,maximize,close"; focus-mode = "sloppy"; }; "org/gnome/shell" = { disable-user-extensions = false; # Hier die IDs der Extensions eintragen enabled-extensions = with pkgs.gnomeExtensions; [ appindicator.extensionUuid caffeine.extensionUuid dash-to-dock.extensionUuid ]; }; }; 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 ]; }; # Vim Konfiguration 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 ''; }; # Zsh mit Oh-My-Zsh und Powerlevel10k 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 = '' # Powerlevel10k Konfiguration laden (falls vorhanden) [[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh ''; }; home.file.".p10k.zsh".source = ./config/p10k.zsh; # GTK Theme (optional, für besseres Aussehen) gtk = { enable = true; theme = { name = "Adwaita-dark"; package = pkgs.gnome-themes-extra; }; }; }