bash: add function opusenc-voice
[julm/julm-nix.git] / home-manager / profiles / emacs.nix
index 2056dac36dd159e615aff2ee93cc44e84de01fbd..a2f1f70a87b9b1475d70f2f2f49cc2fd41100dc6 100644 (file)
@@ -1,61 +1,68 @@
 { inputs, pkgs, lib, config, ... }:
 {
-/*
-imports = [
-  inputs.nix-doom-emacs.hmModule
-];
-programs.doom-emacs = {
-  enable = true;
-  doomPrivateDir =
+  /*
+    imports = [
+    inputs.nix-doom-emacs.hmModule
+    ];
+    programs.doom-emacs = {
+    enable = true;
+    doomPrivateDir =
     "${config.home.homeDirectory}/.doom.d";
-};
-*/
-services.emacs = {
-  enable = true;
-  package = config.programs.emacs.package;
-  client.enable = true;
-  socketActivation.enable = true;
-};
-fonts.fontconfig.enable = lib.mkDefault true;
-home.packages = with pkgs; [
-  # DOOM Emacs dependencies
-  binutils
-  #(ripgrep.override { withPCRE2 = true; })
-  fd
-  gnutls
-  hack-font
-  imagemagick
-  zstd
-  #nodePackages.javascript-typescript-langserver
-  sqlite
-  #editorconfig-core-c
-  emacs
-  emacs-all-the-icons-fonts
-];
-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/cli.el".text = lib.readFile emacs/cli.el;
-  "doom-config/config.el".text = lib.readFile emacs/config.el;
-  "doom-config/init.el".text = lib.readFile emacs/init.el;
-  "doom-config/packages.el".text = lib.readFile emacs/packages.el;
-  "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
+    };
+  */
+  services.emacs = {
+    enable = lib.mkDefault true;
+    package = config.programs.emacs.finalPackage;
+    client.enable = true;
+    socketActivation.enable = true;
+  };
+  programs.emacs = {
+    enable = lib.mkDefault true;
+    extraPackages = epkgs: [
+      epkgs.vterm
+    ];
+  };
+  fonts.fontconfig.enable = lib.mkDefault true;
+  home.packages = with pkgs; [
+    # DOOM Emacs dependencies
+    binutils
+    (ripgrep.override { withPCRE2 = true; })
+    fd
+    gnutls
+    hack-font
+    imagemagick
+    zstd
+    #nodePackages.javascript-typescript-langserver
+    sqlite
+    #editorconfig-core-c
+    emacs-all-the-icons-fonts
+  ];
+  home.sessionPath = [ "${config.xdg.configHome}/emacs/bin" ];
+  home.sessionVariables = {
+    DOOMDIR = "${config.xdg.configHome}/doom";
+    DOOMLOCALDIR = "${config.xdg.dataHome}/doom";
+    DOOMPROFILELOADFILE = "${config.xdg.stateHome}/doom/load.el";
+  };
+  xdg.configFile = {
+    "doom-config/cli.el".text = lib.readFile emacs/cli.el;
+    "doom-config/config.el".text = lib.readFile emacs/config.el;
+    "doom-config/init.el".text = lib.readFile emacs/init.el;
+    "doom-config/packages.el".text = lib.readFile emacs/packages.el;
+    "emacs" = {
+      source = inputs.doom-emacs;
+      onChange = "${pkgs.writeShellScript "doom-change" ''
+        export DOOMDIR="${config.home.sessionVariables.DOOMDIR}"
+        export DOOMLOCALDIR="${config.home.sessionVariables.DOOMLOCALDIR}"
+        export DOOMPROFILELOADFILE="${config.home.sessionVariables.DOOMPROFILELOADFILE}"
+        if [ ! -d "$DOOMLOCALDIR" ]; then
+          ${config.xdg.configHome}/emacs/bin/doom install
+        else
+          ${config.xdg.configHome}/emacs/bin/doom sync -up
+        fi
     ''}";
+    };
+  };
+  xresources.properties = {
+    #"Emacs.FontBackend" = "xft";
   };
-};
-xresources.properties = {
-  #"Emacs.FontBackend" = "xft";
-};
 }