#!/usr/bin/env bash { sudo cat << EOF [Unit] Description=Create a `/nix` directory to be used for bind mounting PropagatesStopTo=nix-daemon.service PropagatesStopTo=nix.mount DefaultDependencies=no After=grub-recordfail.service After=steamos-finish-oobe-migration.service [Service] Type=oneshot ExecStart=steamos-readonly disable ExecStart=mkdir -vp /nix ExecStart=chmod -v 0755 /nix ExecStart=chown -v root /nix ExecStart=chgrp -v root /nix ExecStart=steamos-readonly enable ExecStop=steamos-readonly disable ExecStop=rmdir /nix ExecStop=steamos-readonly enable RemainAfterExit=true EOF } > /etc/systemd/system/nix-directory.service { sudo cat << EOF [Unit] Description=Mount `/home/nix` on `/nix` PropagatesStopTo=nix-daemon.service PropagatesStopTo=nix-directory.service After=nix-directory.service Requires=nix-directory.service ConditionPathIsDirectory=/nix DefaultDependencies=no [Mount] What=/home/nix Where=/nix Type=none DirectoryMode=0755 Options=bind EOF } > /etc/systemd/system/nix.mount { sudo cat << EOF [Unit] Description=Ensure Nix related units which are symlinked resolve After=nix.mount Requires=nix-directory.service Requires=nix.mount PropagatesStopTo=nix-directory.service PropagatesStopTo=nix.mount DefaultDependencies=no [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/systemctl daemon-reload ExecStart=/usr/bin/systemctl restart --no-block sockets.target timers.target multi-user.target [Install] WantedBy=sysinit.target EOF } > /etc/systemd/system/ensure-symlinked-units-resolve.service sudo systemctl daemon-reload sudo systemctl enable --now ensure-symlinked-units-resolve.service sh <(curl -L https://nixos.org/nix/install) --daemon sudo echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf echo "export XDG_DATA_DIRS="$HOME/.nix-profile/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" >>