From 534c79aa61885eab90eb07f8902d402b332156fb Mon Sep 17 00:00:00 2001
From: Julien Moutinho <julm+julm-nix@sourcephile.fr>
Date: Sat, 23 Oct 2021 23:38:13 +0200
Subject: [PATCH] doom-emacs: reinstall

---
 flake.lock                  | 63 +++++++++++++++++++++++--------------
 flake.nix                   |  2 ++
 homes/julm.nix              |  3 +-
 homes/julm/hosts/oignon.nix | 13 --------
 homes/softwares.nix         |  1 +
 homes/softwares/emacs.nix   | 54 +++++++++++++++++++++++++++++++
 6 files changed, 99 insertions(+), 37 deletions(-)
 create mode 100644 homes/softwares/emacs.nix

diff --git a/flake.lock b/flake.lock
index e84f489..ccc24b7 100644
--- a/flake.lock
+++ b/flake.lock
@@ -3,11 +3,11 @@
     "doom-emacs": {
       "flake": false,
       "locked": {
-        "lastModified": 1623114989,
-        "narHash": "sha256-btRwMu76Gnn9lW7YbzDAgWjlJx61tCT+e3kByNx97aw=",
+        "lastModified": 1626604817,
+        "narHash": "sha256-z+dvjB02cHU+VQ5EMkzqSdX817PZar9AkmmfK27q0vo=",
         "owner": "hlissner",
         "repo": "doom-emacs",
-        "rev": "2731685095d1e6101b3215aa689426e1834ce00f",
+        "rev": "46732c0adaef147144418f9f284ca6b1183ab96f",
         "type": "github"
       },
       "original": {
@@ -20,11 +20,11 @@
     "doom-snippets": {
       "flake": false,
       "locked": {
-        "lastModified": 1622216706,
-        "narHash": "sha256-Dsl5T1OFPy++md0Lo0pKUqcpCW6T5WDF2sjeB/IVi1g=",
+        "lastModified": 1625547004,
+        "narHash": "sha256-V+ytAjB4ZZ+5dJJAu1OY7SbnqrokX5PVBWs0AsgQ8Vs=",
         "owner": "hlissner",
         "repo": "doom-snippets",
-        "rev": "bc613f448eed1bd363e61c41691a61e9fd139534",
+        "rev": "5c0eb5bd70f035cefb981c2ce64f4367498bdda6",
         "type": "github"
       },
       "original": {
@@ -35,11 +35,11 @@
     },
     "emacs-overlay": {
       "locked": {
-        "lastModified": 1627178902,
-        "narHash": "sha256-yxyk4uSt0BTXsHldSsmAvp6W0s/oB4yzz3+mDk6D0Uo=",
+        "lastModified": 1635010297,
+        "narHash": "sha256-HJWl63oHJ3ak8ejlSkX+an4jW0wrXVtblRbGag9HS7U=",
         "owner": "nix-community",
         "repo": "emacs-overlay",
-        "rev": "22ae5aea4e421aa6191c38f3790d4b007c6f3b87",
+        "rev": "369f0b78c4388dcc0c4d9adb4b473ceb5f4f4faa",
         "type": "github"
       },
       "original": {
@@ -68,11 +68,11 @@
     "evil-markdown": {
       "flake": false,
       "locked": {
-        "lastModified": 1591038520,
-        "narHash": "sha256-Kt2wxG1XCFowavVWtj0urM/yURKegonpZcxTy/+CrJY=",
+        "lastModified": 1626852210,
+        "narHash": "sha256-HBBuZ1VWIn6kwK5CtGIvHM1+9eiNiKPH0GUsyvpUVN8=",
         "owner": "Somelauw",
         "repo": "evil-markdown",
-        "rev": "064fe9b4767470472356d20bdd08e2f30ebbc9ac",
+        "rev": "8e6cc68af83914b2fa9fd3a3b8472573dbcef477",
         "type": "github"
       },
       "original": {
@@ -185,18 +185,19 @@
         ],
         "nose": "nose",
         "ob-racket": "ob-racket",
-        "org-mode": "org-mode",
+        "org": "org",
+        "org-contrib": "org-contrib",
         "org-yt": "org-yt",
         "php-extras": "php-extras",
         "revealjs": "revealjs",
         "rotate-text": "rotate-text"
       },
       "locked": {
-        "lastModified": 1625001464,
-        "narHash": "sha256-3RGoNYZ4hAo+iRTfy6qJfQ3YzLMDDFzBIUQNEmCv6Ms=",
+        "lastModified": 1627398156,
+        "narHash": "sha256-Ru1aV3NuIFXAsvUE3de8KR7xDZOo1GCBJdsWKJn+Ebw=",
         "owner": "vlaci",
         "repo": "nix-doom-emacs",
-        "rev": "3893c50877a9d2d5d4aeee524ba1539f22115f1f",
+        "rev": "fee14d217b7a911aad507679dafbeaa8c1ebf5ff",
         "type": "github"
       },
       "original": {
@@ -270,14 +271,14 @@
         "type": "github"
       }
     },
-    "org-mode": {
+    "org": {
       "flake": false,
       "locked": {
-        "lastModified": 1624525995,
-        "narHash": "sha256-1eximAnDXKC+midwicoKko1cHF3ElCEOzzkUUWC8G4M=",
+        "lastModified": 1627155762,
+        "narHash": "sha256-XS1eA6P0ePabdrnUNe5lN19EA9dfK615gMGObr9wfBQ=",
         "owner": "emacs-straight",
         "repo": "org-mode",
-        "rev": "5c07b279e0737b19e91c1d1b21016d9b4c8ffa62",
+        "rev": "c9dfed48a607c7f6524f1c6480f09cf61a5d6237",
         "type": "github"
       },
       "original": {
@@ -286,6 +287,22 @@
         "type": "github"
       }
     },
+    "org-contrib": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1623339452,
+        "narHash": "sha256-E3pioqkmAKQm5N7YsgJZil0/ozkdRE7//tE9FGbrluM=",
+        "ref": "master",
+        "rev": "fc81309cf6756607a836f93049a9393c2967c4e0",
+        "revCount": 2599,
+        "type": "git",
+        "url": "https://git.sr.ht/~bzg/org-contrib"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://git.sr.ht/~bzg/org-contrib"
+      }
+    },
     "org-yt": {
       "flake": false,
       "locked": {
@@ -321,11 +338,11 @@
     "revealjs": {
       "flake": false,
       "locked": {
-        "lastModified": 1623242337,
-        "narHash": "sha256-u3gZ13x40cjK1k9HTNnqRrp3io0tDTu6JPGd05mGJGw=",
+        "lastModified": 1625811744,
+        "narHash": "sha256-Y67nVqcovn2PbHXmWOFWMq10Qz2ZIRyyWEO6qsZLbIM=",
         "owner": "hakimel",
         "repo": "reveal.js",
-        "rev": "ade234576e8ddd683cf16d0d8bb0236f37cf1a99",
+        "rev": "b18f12d964ef80bd9ffb061aae48ff4c15fb43ad",
         "type": "github"
       },
       "original": {
diff --git a/flake.nix b/flake.nix
index 0c424b7..7af6760 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,6 +3,8 @@ inputs.nixpkgs.url = "github:NixOS/nixpkgs/2b24fa4db8e5f4e3b3873d020b9cd2d311100
 inputs.flake-utils.url = "github:numtide/flake-utils";
 inputs.home-manager.url = "github:nix-community/home-manager";
 inputs.home-manager.inputs.nixpkgs.follows = "nixpkgs";
+inputs.doom-emacs.url = "github:hlissner/doom-emacs";
+inputs.doom-emacs.flake = false;
 inputs.nix-doom-emacs.url = "github:vlaci/nix-doom-emacs";
 inputs.nix-doom-emacs.inputs.nixpkgs.follows = "nixpkgs";
 inputs.nix-doom-emacs.inputs.home-manager.follows = "home-manager";
diff --git a/homes/julm.nix b/homes/julm.nix
index f3b3128..605ad5d 100644
--- a/homes/julm.nix
+++ b/homes/julm.nix
@@ -1,9 +1,10 @@
-{ pkgs, lib, config, hostName, ... }:
+{ inputs, pkgs, lib, config, hostName, ... }:
 {
 imports = [
   ./softwares.nix
   ./options.nix
   julm/mutt.nix
+  softwares/emacs.nix
   (import (julm/hosts + "/${hostName}.nix"))
 ];
 host.base = lib.elem hostName [ "losurdo" "mermet" "oignon" ];
diff --git a/homes/julm/hosts/oignon.nix b/homes/julm/hosts/oignon.nix
index 02a5f49..d966eb7 100644
--- a/homes/julm/hosts/oignon.nix
+++ b/homes/julm/hosts/oignon.nix
@@ -1,18 +1,5 @@
 { pkgs, lib, config, inputs, ... }:
 {
-imports = [
-  #inputs.nix-doom-emacs.hmModule
-];
-/*
-programs.doom-emacs = {
-  enable = true;
-  doomPrivateDir = ../emacs;
-};
-*/
-services.emacs = {
-  #enable = true;
-  package = config.programs.emacs.package;
-};
 programs.bash.shellAliases.riseup = "sudo ip netns exec riseup sudo -u $USER PULSE_SERVER=/run/user/$(id -u $USER)/pulse/native";
 programs.bash.shellAliases.firefox = "riseup firefox";
 programs.gpg.homedir = "${config.home.homeDirectory}/documents/sec/.gnupg";
diff --git a/homes/softwares.nix b/homes/softwares.nix
index f0a57c2..2c5c6e1 100644
--- a/homes/softwares.nix
+++ b/homes/softwares.nix
@@ -3,6 +3,7 @@ imports = [
   softwares/aria2c.nix
   softwares/bash.nix
   softwares/direnv.nix
+  #softwares/emacs.nix
   softwares/firefox.nix
   softwares/ghc.nix
   softwares/git.nix
diff --git a/homes/softwares/emacs.nix b/homes/softwares/emacs.nix
new file mode 100644
index 0000000..2855a6c
--- /dev/null
+++ b/homes/softwares/emacs.nix
@@ -0,0 +1,54 @@
+{ inputs, pkgs, lib, config, ... }:
+{
+/*
+imports = [
+  inputs.nix-doom-emacs.hmModule
+];
+programs.doom-emacs = {
+  enable = config.host.developer;
+  doomPrivateDir =
+    "${config.home.homeDirectory}/.doom.d";
+};
+services.emacs = {
+  #enable = true; # Use with emacsclient -c
+  package = config.programs.emacs.package;
+};
+*/
+home.sessionPath = [ "${config.xdg.configHome}/emacs/bin" ];
+home.sessionVariables = {
+  DOOMDIR = "${config.xdg.configHome}/doom-config";
+  DOOMLOCALDIR = "${config.xdg.configHome}/doom-local";
+};
+xdg.configFile = {
+  "doom-config/config.el".text = "";
+  #"doom-config/init.el".source = config.lib.file.mkOutOfStoreSymlink "";
+  "doom-config/packages.el".text = "";
+  "emacs" = {
+    source = inputs.doom-emacs;
+    onChange = "${pkgs.writeShellScript "doom-change" ''
+      export DOOMDIR="${config.home.sessionVariables.DOOMDIR}"
+      export DOOMLOCALDIR="${config.home.sessionVariables.DOOMLOCALDIR}"
+      if [ ! -d "$DOOMLOCALDIR" ]; then
+        ${config.xdg.configHome}/emacs/bin/doom -y install
+      else
+        ${config.xdg.configHome}/emacs/bin/doom -y sync -u
+      fi
+    ''}";
+  };
+};
+
+home.packages = with pkgs; [
+  # DOOM Emacs dependencies
+  binutils
+  (ripgrep.override { withPCRE2 = true; })
+  gnutls
+  fd
+  imagemagick
+  zstd
+  #nodePackages.javascript-typescript-langserver
+  sqlite
+  editorconfig-core-c
+  emacs
+  emacs-all-the-icons-fonts
+];
+}
-- 
2.47.0