Nix develop mit Zsh statt Bash nutzen: So klappt der Shell-Wechsel

Nix develop mit Zsh statt Bash nutzen: So klappt der Shell-Wechsel

Wer den Paketmanager Nix für Entwicklungsumgebungen einsetzt, erlebt beim Start oft eine Überraschung: Trotz systemweit eingerichteter Zsh öffnet der Aufruf von nix develop standardmäßig die Bash. Diese Anleitung zeigt, wie du auch in Nix-Umgebungen deine bevorzugte Shell aufrufen kannst.

Schritt 1: Start per Befehlszeilenparameter testen

Um die eigene Shell direkt mit Nix zu starten, übergibst du die Umgebungsvariable $SHELL über den Parameter -c an Nix:

nix develop -c $SHELL

Dieser Aufruf startet die in $SHELL definierte Benutzer-Shell innerhalb der Entwicklungsumgebung.

Schritt 2: Shell im Projekt über die Flake-Datei einbinden

Wenn du ein Projekt verwaltest und möchtest, dass beim Aufruf von nix develop direkt die Shell aufgerufen wird, kannst du die Datei flake.nix deines Repositories bearbeiten.

Pfad: ./flake.nix

{
  outputs = { self, nixpkgs }:
    let
      system = "x86_64-linux";
      pkgs = nixpkgs.legacyPackages.${system};
    in {
      devShells.${system}.default = pkgs.mkShell {
        shellHook = ''
          $SHELL
        '';
      };
    };
}

Im shellHook von pkgs.mkShell kann $SHELL hinterlegt werden, um beim Aufruf die gewünschte Shell auszuführen.

Mögliche Probleme und Besonderheiten

  • Verschachtelte Shells: Beim Starten von $SHELL im shellHook kann es vorkommen, dass beim Verlassen der Umgebung zweimal Ctrl+D gedrückt werden muss, um wieder im vorherigen Terminal zu landen.

Rückgängig machen

Hast du eine lokale flake.nix angepasst, entfernst du einfach den Aufruf $SHELL aus dem shellHook-Block.

Fazit

Nix öffnet für Entwicklungsumgebungen standardmäßig die Bash, lässt sich aber über das -c-Flag oder einen shellHook an deine gewohnte Arbeitsweise anpassen. Zudem kann auch das Werkzeug direnv genutzt werden, da es die Shell nach dem Erstellen eines Caches nicht verändert.

Siehe auch  NFS Client / NFS Mount - Verwendete NFS-Version anzeigen

Quellen: Forum: NixOS – Forum, discourse.nixos.org

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen