diff --git a/config/home.nix b/config/home.nix index 24a7e94..18abb9e 100644 --- a/config/home.nix +++ b/config/home.nix @@ -1,6 +1,49 @@ # In deiner home.nix { config, pkgs, ... }: +let + composer = pkgs.writeShellScriptBin "composer" '' + mkdir -p "''${HOME}/.config/composer" + mkdir -p "''${HOME}/.cache/composer" + if ! ${pkgs.docker}/bin/docker network inspect db >/dev/null 2>&1; then + ${pkgs.docker}/bin/docker network create db + fi + SSH_AUTH_PATH=$(readlink -f "''${SSH_AUTH_SOCK:-/dev/null}") + exec ${pkgs.docker}/bin/docker run -t --rm \ + --user $(id -u):33 \ + --env COMPOSER_CACHE_DIR=/cache \ + --env SSH_AUTH_SOCK=/ssh-agent \ + --network db \ + --volume "$SSH_AUTH_PATH":/ssh-agent \ + --volume /etc/passwd:/etc/passwd:ro \ + --volume "''${HOME}":"''${HOME}" \ + --volume "''${HOME}/.config/composer":/tmp \ + --volume "''${HOME}/.cache/composer":/cache \ + --volume "''${PWD}":/app \ + evoweb/php:composer "$@" + ''; + + git-cleanup-local-branches = pkgs.writeShellScriptBin "gclb" '' + ${pkgs.git}/bin/git fetch -p + GONE_BRANCHES=$(${pkgs.git}/bin/git for-each-ref --format '%(refname) %(upstream:track)' refs/heads | ${pkgs.gawk}/bin/awk '$2 == "[gone]" {sub("refs/heads/", "", $1); print $1}') + if [ -z "$GONE_BRANCHES" ]; then + echo "Keine verwaisten Branches gefunden." + exit 0 + fi + for BRANCH in $GONE_BRANCHES; do + ${pkgs.git}/bin/git branch -D "$BRANCH" + done + ''; + + lazydocker = pkgs.writeShellScriptBin "lazydocker" '' + mkdir -p "''${HOME}/.config/lazydocker" + exec ${pkgs.docker}/bin/docker run \ + --rm -it \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + --volume "''${HOME}/.config/lazydocker":/.config/jesseduffield/lazydocker \ + lazyteam/lazydocker + ''; +in { home.stateVersion = "25.11"; @@ -43,9 +86,15 @@ p7zip cacert + # Gnome extensions gnomeExtensions.appindicator gnomeExtensions.caffeine gnomeExtensions.dash-to-dock + + # Aliases + composer + git-cleanup-local-branches + lazydocker ]; # Powerlevel10k Theme installieren @@ -99,9 +148,24 @@ 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; @@ -260,80 +324,9 @@ custom = "$HOME/.oh-my-zsh/custom"; }; - 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"; - gclb = "git-cleanup-local-branches"; - lzd = "lazydocker"; - }; - initContent = '' # Powerlevel10k Konfiguration laden (falls vorhanden) [[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh - - function composer() { - mkdir -p "''${HOME}/.config/composer" - mkdir -p "''${HOME}/.cache/composer" - - if ! ${pkgs.docker}/bin/docker network inspect db >/dev/null 2>&1; then - echo "Erstelle Docker-Netzwerk 'db'..." - ${pkgs.docker}/bin/docker network create db - fi - - SSH_AUTH_PATH=$(readlink -f "''${SSH_AUTH_SOCK:-/dev/null}") - - docker run -t \ - --rm \ - --user ''$(id -u):33 \ - --env COMPOSER_CACHE_DIR=/cache \ - --env SSH_AUTH_SOCK=/ssh-agent \ - --env CI_HOST \ - --env CI_PROJECT_DIR \ - --env ENVIRONMENT_NAME \ - --env INSTANCE_ID \ - --env ADDITIONAL_CONFIG_FILE \ - --env TYPO3_CONTEXT \ - --env STAGE \ - --network db \ - --volume "''${SSH_AUTH_PATH}":/ssh-agent \ - --volume /etc/passwd:/etc/passwd:ro \ - --volume "''${HOME}":"''${HOME}" \ - --volume "''${HOME}/.config/composer":/tmp \ - --volume "''${HOME}/.cache/composer":/cache \ - --volume "''${PWD%/}":/app \ - evoweb/php:composer $@ - } - - function git-cleanup-local-branches { - ${pkgs.git}/bin/git fetch -p - - FOR_EACH_REF=$(${pkgs.git}/bin/git for-each-ref --format '%(refname) %(upstream:track)' refs/heads) - GONE_BRANCHES=$(echo "''$FOR_EACH_REF" | ${pkgs.gawk}/bin/awk '$2 == "[gone]" {sub("refs/heads/", "", $1); print $1}') - - if [ -z "''$GONE_BRANCHES" ]; then - echo "Found now orphan local branches." - exit 0 - fi - - for BRANCH in ''$GONE_BRANCHES; do - echo "Delete local branch: ''$BRANCH" - ${pkgs.git}/bin/git branch -D "''$BRANCH" - done - } - - function lazydocker() { - mkdir -p ''$HOME/.config/lazydocker - docker run --rm -it \ - --volume /var/run/docker.sock:/var/run/docker.sock \ - --volume ''$HOME/.config/lazydocker:/.config/jesseduffield/lazydocker \ - lazyteam/lazydocker - } ''; }; home.file.".p10k.zsh".source = ./config/p10k.zsh;