nix install Merge branch 'o1lo01ol1o-nix'

This commit is contained in:
Jlh18 2021-12-02 17:48:48 +00:00
commit 2d85b0f589
3 changed files with 75 additions and 1 deletions

View File

@ -40,3 +40,55 @@ git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
export PATH=”$HOME/.emacs.d/bin:$PATH” export PATH=”$HOME/.emacs.d/bin:$PATH”
``` ```
Installing TheHoTTGame on MacOS with Nix
========================================
`Nixpkgs` maintains a set of `Agda` libraries that can be added to a derivation managed by the nix package manager. See [here](https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/agda.section.md) for details. `shell.nix` in this project contains a derivation that will add emacs, agda, the agda standard library, and cubical agda to your local nix store and subsequently to a local shell environment by adding these locations to your PATH.
However, because user configurations for emacs are mutable, it will not (easily) manage your (emacs configuration) dot-files, so we will use the underlying `emacs` provided by `nixpkgs` but install `doom emacs` normally in your local user's environment.
Install nix using `curl`: https://nixos.org/download.html
In the base directory,
```bash
nix-shell
```
To enter a nix shell with the above packages loaded on your `PATH`. This shell is defined by package set in `shell.nix`; after installation, to use agda libraries, you will need to use _this_ shell (or another configured similarly) to load the requisite packages onto the `PATH` so that they can be found.
[Then install `doom emacs`](https://github.com/hlissner/doom-emacs) using the `nix-shell` provided `emacs`:
```bash
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
~/.emacs.d/bin/doom install
```
You'll probably want to answer "yes" to the options unless you know better.
[Add the doom utility to your path](https://github.com/hlissner/doom-emacs/blob/develop/docs/getting_started.org#the-bindoom-utility):
> I recommend you add ~/.emacs.d/bin to your PATH so you can call doom directly and from anywhere. Accomplish this by adding this to your .bashrc or .zshrc file: ~export PATH=”$HOME/.emacs.d/bin:$PATH”~
Add `agda` support to `doom` by editing your `~/.doom.d/config.el`. In the languages section `:lang`, you'll see `;; agda`. Replace it with `(agda +local)` to tell doom to use the `agda-mode` version specified by the local environment.
Once the file is saved, sync `doom` from within the nix-shell that was loaded above:
```bash
doom sync
```
You can now load the agda source code in this by starting doom from the nix-shell:
```bash
doom run .
```
open the file at `0Trinitarianism/Quest0.agda`
and tell `agda-mode` to load and check it by pressing `SPC m l` (`space`, `m` and `l`, in that order.) If everything is configured correctly, you should get nice colors and any `{!!}`s will become interactive holes to fill.

View File

@ -13,4 +13,9 @@ This page will help you get the Game working for you.
For instructions on how to get started with the HoTT Game, For instructions on how to get started with the HoTT Game,
visit visit
`this page <https://findtherightpath.readthedocs.io/en/latest/>`_. `this page <https://thehottgameguide.readthedocs.io/en/latest/index.html>`_.
The creators of this game are
`Joseph Hua <https://jlh18.github.io/>`_,
`Ken Lee <http://kl-i.github.io/>`_,
and `Bendit Chan <https://benditchan.wordpress.com/>`_.

17
shell.nix Normal file
View File

@ -0,0 +1,17 @@
let
emacsOverlay = (import (builtins.fetchGit {
url = "https://github.com/nix-community/emacs-overlay.git";
ref = "master";
rev = "bfc8f6edcb7bcf3cf24e4a7199b3f6fed96aaecf"; # change the revision
}));
pkgs = import <nixpkgs> {overlays = [emacsOverlay] ;};
in with pkgs;
mkShell {
buildInputs = [
pkgs.emacs
(agda.withPackages (ps: [
ps.standard-library
ps.cubical
]))
];
}