diff --git a/home-manager/programs/bash/default.nix b/home-manager/programs/bash/default.nix index bb3357fdd..1a82fc1b3 100644 --- a/home-manager/programs/bash/default.nix +++ b/home-manager/programs/bash/default.nix @@ -68,6 +68,20 @@ if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then . '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' fi + + # OpenSSL for cargo builds on Linux (available in login shells) + if [ "$(uname)" = "Linux" ]; then + export XDG_RUNTIME_DIR="/run/user/$(id -u)" + export PKG_CONFIG_PATH="${pkgs.openssl.dev}/lib/pkgconfig''${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" + export OPENSSL_DIR="${pkgs.openssl.dev}" + export OPENSSL_LIB_DIR="${pkgs.openssl.out}/lib" + export OPENSSL_INCLUDE_DIR="${pkgs.openssl.dev}/include" + fi + + # Source .bashrc for login shells to get PATH and other settings + if [ -f ~/.bashrc ]; then + . ~/.bashrc + fi ''; }; } diff --git a/home-manager/programs/zsh/default.nix b/home-manager/programs/zsh/default.nix index 37f5b0fb3..6ed376d8c 100644 --- a/home-manager/programs/zsh/default.nix +++ b/home-manager/programs/zsh/default.nix @@ -23,12 +23,21 @@ extended = true; }; - initContent = '' + # envExtra goes to .zshenv (always sourced) + envExtra = '' # Set XDG_RUNTIME_DIR on Linux for consistent socket paths (e.g., zellij) if [ "$(uname)" = "Linux" ]; then export XDG_RUNTIME_DIR="/run/user/$(id -u)" + + # OpenSSL for cargo builds (rust crates like openssl-sys) + export PKG_CONFIG_PATH="${pkgs.openssl.dev}/lib/pkgconfig''${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" + export OPENSSL_DIR="${pkgs.openssl.dev}" + export OPENSSL_LIB_DIR="${pkgs.openssl.out}/lib" + export OPENSSL_INCLUDE_DIR="${pkgs.openssl.dev}/include" fi + ''; + initContent = '' # Go configuration export GOPATH="$HOME/go"