summary refs log tree commit diff
path: root/readme.org
blob: 67c5efa4ce51e7b6a601e26fd9c1e6b8a7298213 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#+title: Crazazy's literal config
#+author: Crazazy
#+PROPERTY: header-args :tangle yes :noweb yes :results silent
#+INCLUDE: ./style.org
This is my collection of literal config for my global and emacs setup you can =git clone= the org files at [[https://crazazy.tilde.cafe/literal-config.git][this link]]

In this document I'm mostly going to set up some prerequisites for tangling other files and setting up dependencies
* Maintenance links :noexport:
  This is for the org-mode side only
  It is assumed that you have nix and emacs installed for this config to work. You can tangle all files [[elisp:(dolist (i (directory-files (file-name-directory (buffer-file-name (current-buffer))) t "\\.org$")) (org-babel-tangle-file i))][with this lisp]]
  You can export all org files to html with a [[shell:for i in *.org; do emacs -Q $i --batch --eval "(org-html-export-to-html)" & done; rm style.html*; scp *.html cafe:public_html/][this small script]]
  You can then install required dependencies with [[shell:./bootstrap.sh &][the bootstrap link]]
* Dependencies
  Dependencies are handled by [[https://github.com/nmattia/niv][niv]]. I have put the dependencies in a shell file, rather than the output
  of niv itself, as I prefer that this configuration setup declares what I as a user would otherwise be doing
  by hand. Declarativity takes precendence over reproducibility here
** initialization

   First, we have to setup niv, you don't have to do anything here, as nix will just do everything for you
   #+begin_src sh :tangle bootstrap.sh :tangle-mode (identity #o755)
     #!/usr/bin/env nix-shell
     #!nix-shell -p niv -i bash
     niv init --no-nixpkgs
   #+end_src

   Then, we remove the default stuff that niv comes with by default
   #+begin_src sh :tangle bootstrap.sh
     niv drop niv
   #+end_src
** Adding dependencies
   Now it is time to actually add some dependencies into niv
*** Emacs
    This dependency adds nix infrastructure for emacs that I wrote a while ago. better to add it as a dependency now
    #+begin_src sh :tangle bootstrap.sh
      niv add crazazy/emacs
    #+end_src
*** NUR
    the [[https://github.com/nix-community/nur][Nix User Repository]] that contains my old config, and custom packages some people made
    #+begin_src sh :tangle bootstrap.sh
      niv add nix-community/NUR
    #+end_src
*** emacs-ng
    I don't want to exactly lose track of this, so I'm going to include [[https://github.com/emacs-ng/emacs-ng][emacs-ng]] just incase
    #+begin_src sh :tangle bootstrap.sh
      niv add emacs-ng/emacs-ng
    #+end_src
* Other stuff
  Other files that are available right now are [[file:nixos.org][the nixos config]] and [[file:emacs.org][the emacs config]]
  If you have any questions or comments about this repository, just HMU at [[mailto:crazazy@tilde.cafe]]