I have nix
and home manager
working well on macOS (ventura)
(thanks community!), and as a result I’ve mostly achieved my goal of cleaning my home directory by moving nearly all of my dotfiles to the following (from setting xdg environment variables in /etc/zshenv
):
~/.config
(has nixpkgs/flake.nix ← home manager)
~/.cache
~/.local
~/.run
Is it possible to move any of the following to one of the above directories:
~/.bash_profile -> /nix/store/qhjxq33vm0xx09va9ggjlps951xfsgvx-home-manager-files/.bash_profile
~/.bashrc -> /nix/store/qhjxq33vm0xx09va9ggjlps951xfsgvx-home-manager-files/.bashrc
~/.nix-profile -> /nix/var/nix/profiles/per-user/me/profile
~/.profile -> /nix/store/qhjxq33vm0xx09va9ggjlps951xfsgvx-home-manager-files/.profile
~/.zshenv -> /nix/store/qhjxq33vm0xx09va9ggjlps951xfsgvx-home-manager-files/.zshenv
~/.nix-channels
~/..nix-defexpr
~/.ssh
(installed via home manager)
My ~/.run/env-vars
:
declare -x ALACRITTY_LOG="/var/folders/yh/z1zpr1rs1qq3b7y5gylz68wc0000gp/T/Alacritty-3520.log"
declare -x ALACRITTY_SOCKET="/var/folders/yh/z1zpr1rs1qq3b7y5gylz68wc0000gp/T/Alacritty-3520.sock"
declare -x ALACRITTY_WINDOW_ID="140438805772416"
declare -x COLORTERM="truecolor"
declare -x CONFIG_SHELL="/nix/store/2198gb5ws3cyma9cxrx3clq6p83781kc-bash-5.1-p16/bin/bash"
declare -x DISPLAY="/private/tmp/com.apple.launchd.JBNJPGm8YB/org.macosforge.xquartz:0"
declare -x GETTEXTDATADIRS="/nix/store/zf3ffpyinidxy77gljdvl4092155cwds-gettext-0.21/share/gettext"
declare -x HOME="/Users/me"
declare -x HOST_PATH="/nix/store/5wl78n3d05gc1pvy2g7z42iq2lla1vb8-home-manager/bin:/nix/store/zf3ffpyinidxy77gljdvl4092155cwds-gettext-0.21/bin:/nix/store/1lnn7d8lhx16m32cmrpv50f4fz4jm4hh-ncurses-6.3-p20220507-dev/bin:/nix/store/j1nwh8mpv1h8m5lv55qa7mnw5yv9rngm-ncurses-6.3-p20220507/bin:/nix/store/bwrmdh64v9b0ygl3bv3ys0x7fw4pykg5-coreutils-9.1/bin:/nix/store/4sb7agqs4avrrak4bgxr2pf678jfrskl-findutils-4.9.0/bin:/nix/store/hjlvpib9qf7j0w8cfga6457001njzp0p-diffutils-3.8/bin:/nix/store/iz3v0a07d8k1db026aqwv0nl5r0xlbzn-gnused-4.8/bin:/nix/store/hfs7zkbynpkz4gmh60ii2ydgy2a85pdq-gnugrep-3.7/bin:/nix/store/y2qpyp253y3x2a9rf37a5a26gqpw04jv-gawk-5.1.1/bin:/nix/store/ajw328l0xyfff2fza7r05rizx3f49gfz-gnutar-1.34/bin:/nix/store/b7ggf8cd9q74alxc5mp8l2r2bx6ykkmf-gzip-1.12/bin:/nix/store/1nhcaklxpcskl0c5595g8qmq5zfg7amj-bzip2-1.0.8-bin/bin:/nix/store/pj792gm7wqdy3wbrirhzhbbsygpn2cbl-gnumake-4.4/bin:/nix/store/2198gb5ws3cyma9cxrx3clq6p83781kc-bash-5.1-p16/bin:/nix/store/80zpmhinnv55f8kg8fydxcjxwr2g77j5-patch-2.7.6/bin:/nix/store/93i76m1wsrjhz9l39dwsbknf182a9b6h-xz-5.2.9-bin/bin:/nix/store/rhmc5fskwp4ysmhhza8nvl0k2c5a5s1s-file-5.43/bin"
declare -x IN_NIX_SHELL="impure"
declare -x LC_ALL="en_NZ.UTF-8"
declare -x LOGNAME="me"
declare -x MACOSX_DEPLOYMENT_TARGET="10.12"
declare -x NIX_BUILD_CORES="4"
declare -x NIX_BUILD_TOP="/Users/me/.run"
declare -x NIX_CFLAGS_COMPILE=" -frandom-seed=ncg1lhrrnr"
declare -x NIX_CONF_DIR="/Users/me/.config/nix"
declare -x NIX_COREFOUNDATION_RPATH="/nix/store/446dayrafwsc1vcqpgxc4l5wh2cljgbb-swift-corefoundation-unstable-2018-09-14/Library/Frameworks"
declare -x NIX_DATA_DIR="/nix/var/nix/db"
declare -x NIX_DONT_SET_RPATH="1"
declare -x NIX_DONT_SET_RPATH_FOR_BUILD="1"
declare -x NIX_ENFORCE_NO_NATIVE="1"
declare -x NIX_ENFORCE_PURITY="1"
declare -x NIX_IGNORE_LD_THROUGH_GCC="1"
declare -x NIX_INDENT_MAKE="1"
declare -x NIX_LDFLAGS=" -lintl"
declare -x NIX_LOG_DIR="/nix/var/log/nix"
declare -x NIX_NO_SELF_RPATH="1"
declare -x NIX_PROFILES="/nix/var/nix/profiles/default /Users/me/.nix-profile"
declare -x NIX_SSL_CERT_FILE="/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt"
declare -x NIX_STATE_DIR="/nix/var/nix"
declare -x NIX_STORE="/nix/store"
declare -x NIX_STORE_DIR="/nix/store"
declare -x OLDPWD="/Users/me"
declare -x PATH="/nix/store/5wl78n3d05gc1pvy2g7z42iq2lla1vb8-home-manager/bin:/nix/store/zf3ffpyinidxy77gljdvl4092155cwds-gettext-0.21/bin:/nix/store/1lnn7d8lhx16m32cmrpv50f4fz4jm4hh-ncurses-6.3-p20220507-dev/bin:/nix/store/j1nwh8mpv1h8m5lv55qa7mnw5yv9rngm-ncurses-6.3-p20220507/bin:/nix/store/bwrmdh64v9b0ygl3bv3ys0x7fw4pykg5-coreutils-9.1/bin:/nix/store/4sb7agqs4avrrak4bgxr2pf678jfrskl-findutils-4.9.0/bin:/nix/store/hjlvpib9qf7j0w8cfga6457001njzp0p-diffutils-3.8/bin:/nix/store/iz3v0a07d8k1db026aqwv0nl5r0xlbzn-gnused-4.8/bin:/nix/store/hfs7zkbynpkz4gmh60ii2ydgy2a85pdq-gnugrep-3.7/bin:/nix/store/y2qpyp253y3x2a9rf37a5a26gqpw04jv-gawk-5.1.1/bin:/nix/store/ajw328l0xyfff2fza7r05rizx3f49gfz-gnutar-1.34/bin:/nix/store/b7ggf8cd9q74alxc5mp8l2r2bx6ykkmf-gzip-1.12/bin:/nix/store/1nhcaklxpcskl0c5595g8qmq5zfg7amj-bzip2-1.0.8-bin/bin:/nix/store/pj792gm7wqdy3wbrirhzhbbsygpn2cbl-gnumake-4.4/bin:/nix/store/2198gb5ws3cyma9cxrx3clq6p83781kc-bash-5.1-p16/bin:/nix/store/80zpmhinnv55f8kg8fydxcjxwr2g77j5-patch-2.7.6/bin:/nix/store/93i76m1wsrjhz9l39dwsbknf182a9b6h-xz-5.2.9-bin/bin:/nix/store/rhmc5fskwp4ysmhhza8nvl0k2c5a5s1s-file-5.43/bin"
declare -x PATH_LOCALE="/nix/store/79khq0haigsrbn4xijvgkddn083kq0rg-adv_cmds-119-locale/share/locale"
declare -x PWD="/Users/me/.config/nixpkgs"
declare -x SHELL="/nix/store/2198gb5ws3cyma9cxrx3clq6p83781kc-bash-5.1-p16/bin/bash"
declare -x SHLVL="2"
declare -x SOURCE_DATE_EPOCH="315532800"
declare -x SSH_AUTH_SOCK="/private/tmp/com.apple.launchd.VD2BKXxPVW/Listeners"
declare -x TEMP="/Users/me/.run"
declare -x TEMPDIR="/Users/me/.run"
declare -x TERM="xterm-256color"
declare -x TMP="/Users/me/.run"
declare -x TMPDIR="/Users/me/.run"
declare -x TZ="UTC"
declare -x USER="me"
declare -x WINDOWID="140438805772416"
declare -x XDG_BIN_DIR="/Users/me/.local/bin"
declare -x XDG_BIN_DIRS="/Users/me/.local/bin"
declare -x XDG_BIN_HOME="/Users/me/Library/Application Support/.local/bin"
declare -x XDG_CACHE_DIR="/Users/me/.cache"
declare -x XDG_CACHE_DIRS="/Users/me/.cache"
declare -x XDG_CACHE_HOME="/Users/me/Library/Caches/.cache"
declare -x XDG_CONFIG_DIR="/Users/me/.config"
declare -x XDG_CONFIG_DIRS="/Users/me/.config"
declare -x XDG_CONFIG_HOME="/Users/me/Library/Application Support/.config"
declare -x XDG_DATA_DIR="/Users/me/share"
declare -x XDG_DATA_DIRS="/Users/me/share"
declare -x XDG_DATA_HOME="/Users/me/Library/Application Support/.local/share"
declare -x XDG_DESKTOP_DIR="/Users/me/Desktop"
declare -x XDG_DESKTOP_DIRS="/Users/me/Desktop"
declare -x XDG_DESKTOP_HOME="/Users/me/Desktop"
declare -x XDG_DOCUMENTS_DIR="/Users/me/Documents"
declare -x XDG_DOCUMENTS_DIRS="/Users/me/Documents"
declare -x XDG_DOCUMENTS_HOME="/Users/me/Documents"
declare -x XDG_DOWNLOAD_DIR="/Users/me/Downloads"
declare -x XDG_DOWNLOAD_DIRS="/Users/me/Downloads"
declare -x XDG_DOWNLOAD_HOME="/Users/me/Downloads"
declare -x XDG_MUSIC_DIR="/Users/me/Music"
declare -x XDG_MUSIC_DIRS="/Users/me/Music"
declare -x XDG_MUSIC_HOME="/Users/me/Music"
declare -x XDG_PICTURES_DIR="/Users/me/Pictures"
declare -x XDG_PICTURES_DIRS="/Users/me/Pictures"
declare -x XDG_PICTURES_HOME="/Users/me/Pictures"
declare -x XDG_PUBLICSHARE_DIR="/Users/me/Public"
declare -x XDG_PUBLICSHARE_DIRS="/Users/me/Public"
declare -x XDG_PUBLICSHARE_HOME="/Users/me/Public"
declare -x XDG_RUNTIME_DIR="/Users/me/Library/Application Support/.run"
declare -x XDG_RUNTIME_DIRS="/Users/me/.run"
declare -x XDG_RUNTIME_HOME="/Users/me/.run"
declare -x XDG_STATE_DIR="/Users/me/state"
declare -x XDG_STATE_DIRS="/Users/me/state"
declare -x XDG_STATE_HOME="/Users/me/Library/Application Support/.local/state"
declare -x XDG_VIDEOS_DIR="/Users/me/Movies"
declare -x XDG_VIDEOS_DIRS="/Users/me/Movies"
declare -x XDG_VIDEOS_HOME="/Users/me/Movies"
declare -x XPC_FLAGS="0x0"
declare -x XPC_SERVICE_NAME="0"
declare -x ZDOTDIR="/Users/me/Library/Application Support/.config/zsh"
declare -x __CF_USER_TEXT_ENCODING="0x1F6:0x0:0x0"
declare -x __darwinAllowLocalNetworking=""
declare -x __impureHostDeps="/bin/sh /usr/lib/libSystem.B.dylib /usr/lib/system/libunc.dylib /dev/zero /dev/random /dev/urandom /bin/sh"
declare -x __propagatedImpureHostDeps=""
declare -x __propagatedSandboxProfile=""
declare -x __sandboxProfile=""
declare -x buildCommandPath="/private/tmp/nix-shell-10277-0/.attr-0"
declare -x buildInputs=""
declare -x builder="/nix/store/2198gb5ws3cyma9cxrx3clq6p83781kc-bash-5.1-p16/bin/bash"
declare -x cmakeFlags=""
declare -x configureFlags=""
declare -x depsBuildBuild=""
declare -x depsBuildBuildPropagated=""
declare -x depsBuildTarget=""
declare -x depsBuildTargetPropagated=""
declare -x depsHostHost=""
declare -x depsHostHostPropagated=""
declare -x depsTargetTarget=""
declare -x depsTargetTargetPropagated=""
declare -x doCheck=""
declare -x doInstallCheck=""
declare -x enableParallelBuilding="1"
declare -x enableParallelChecking="1"
declare -x mesonFlags=""
declare -x name="home-manager-install"
declare -x nativeBuildInputs=""
declare -x out="/nix/store/ncg1lhrrnrjynyzapg399cx4qsr2af1b-home-manager-install"
declare -x outputs="out"
declare -x passAsFile="buildCommand"
declare -x patches=""
declare -x preferLocalBuild="1"
declare -x propagatedBuildInputs="/nix/store/5wl78n3d05gc1pvy2g7z42iq2lla1vb8-home-manager /nix/store/zf3ffpyinidxy77gljdvl4092155cwds-gettext-0.21 /nix/store/1lnn7d8lhx16m32cmrpv50f4fz4jm4hh-ncurses-6.3-p20220507-dev"
declare -x propagatedNativeBuildInputs=""
declare -x shell="/nix/store/2198gb5ws3cyma9cxrx3clq6p83781kc-bash-5.1-p16/bin/bash"
declare -x shellHook="export TEXTDOMAIN=home-manager
export TEXTDOMAINDIR=/nix/store/5wl78n3d05gc1pvy2g7z42iq2lla1vb8-home-manager/share/locale
source /nix/store/5wl78n3d05gc1pvy2g7z42iq2lla1vb8-home-manager/share/bash/home-manager.sh
confFile=\"\${XDG_CONFIG_HOME:-\$HOME/.config}/nixpkgs/home.nix\"
if [[ ! -e \$confFile ]]; then
echo
_i \"Creating initial Home Manager configuration...\"
nl=\$'\\n'
xdgVars=\"\"
if [[ -v XDG_CACHE_HOME && \$XDG_CACHE_HOME != \"\$HOME/.cache\" ]]; then
xdgVars=\"\$xdgVars xdg.cacheHome = \\\"\$XDG_CACHE_HOME\\\";\$nl\"
fi
if [[ -v XDG_CONFIG_HOME && \$XDG_CONFIG_HOME != \"\$HOME/.config\" ]]; then
xdgVars=\"\$xdgVars xdg.configHome = \\\"\$XDG_CONFIG_HOME\\\";\$nl\"
fi
if [[ -v XDG_DATA_HOME && \$XDG_DATA_HOME != \"\$HOME/.local/share\" ]]; then
xdgVars=\"\$xdgVars xdg.dataHome = \\\"\$XDG_DATA_HOME\\\";\$nl\"
fi
if [[ -v XDG_STATE_HOME && \$XDG_STATE_HOME != \"\$HOME/.local/state\" ]]; then
xdgVars=\"\$xdgVars xdg.stateHome = \\\"\$XDG_STATE_HOME\\\";\$nl\"
fi
mkdir -p \"\$(dirname \"\$confFile\")\"
cat > \$confFile <<EOF
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = \"\$USER\";
home.homeDirectory = \"\$HOME\";
\$xdgVars
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = \"22.11\";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}
EOF
fi
echo
_i \"Creating initial Home Manager generation...\"
echo
if home-manager switch ; then
# translators: The \"%s\" specifier will be replaced by a file path.
_i \$'All done! The home-manager tool should now be installed and you can edit\\n\\n %s\\n\\nto configure Home Manager. Run \\'man home-configuration.nix\\' to\\nsee all available options.' \\
\"\$confFile\"
exit 0
else
# translators: The \"%s\" specifier will be replaced by a URL.
_i \$'Uh oh, the installation failed! Please create an issue at\\n\\n %s\\n\\nif the error seems to be the fault of Home Manager.' \\
\"https://github.com/nix-community/home-manager/issues\"
exit 1
fi
"
declare -x shellHookOnly="1"
declare -x stdenv="/nix/store/wmkz9x1bq5blakhcyhgzanmfjc5rwjii-stdenv-darwin"
declare -x strictDeps=""
declare -x system="x86_64-darwin"