about summary refs log tree commit diff
path: root/modules/common/emacs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/common/emacs/default.nix86
-rw-r--r--modules/common/emacs/doom/config.el17
-rw-r--r--modules/common/emacs/doom/init.el6
-rw-r--r--modules/common/emacs/doom/packages.el3
4 files changed, 70 insertions, 42 deletions
diff --git a/modules/common/emacs/default.nix b/modules/common/emacs/default.nix
index c5cf7ed..b16fb83 100644
--- a/modules/common/emacs/default.nix
+++ b/modules/common/emacs/default.nix
@@ -58,36 +58,28 @@ in {
           text = concatLines [
             (
               let
-                # NOTE gopls will require the "go" executable which must be provided
-                # by the project's flake/shell.
                 extraBins = with pkgs;
                   [
                     (aspellWithDicts (p: with p; [en ru])) # :checkers (spell +aspell)
-                    (python3.withPackages (p:
-                      with p; [
-                        black # :lang python :editor format
-                        isort # :lang python
-                        pyflakes # :lang python
-                        python-lsp-server # :lang (python +lsp)
-                      ]))
                     asmfmt # :editor format
+                    cargo # :lang rust
                     clang-tools # :lang (cc +lsp) :editor format
-                    cmake # :term vterm
                     cmake-format # :lang cc :editor format
                     cmigemo # :lang japanese
                     dockerfile-language-server-nodejs # :tools (docker +lsp)
-                    dockfmt # :tools docker
+                    dockfmt # :tools docker :editor format
                     editorconfig-core-c # :tools editorconfig
                     fd # doom!
-                    gcc # :tools magit :term vterm
-                    gnumake # :term vterm
+                    ghc # :lang haskell
                     gnuplot # :lang (org +gnuplot)
                     gnutls # doom!
-                    go # :lang go org
+                    go # :lang go
                     gocode # :lang go org
+                    godef # :lang go
                     gomodifytags # :lang go
                     gopls # :lang (go +lsp)
                     gore # :lang go
+                    gotests # :lang go
                     gotools # :lang go
                     graphviz # :lang (org +roam2) :lang plantuml
                     haskellPackages.cabal-fmt # :lang haskell :editor format
@@ -95,10 +87,9 @@ in {
                     haskellPackages.haskell-language-server # :lang (haskell +lsp)
                     haskellPackages.hoogle # :lang haskell
                     haskellPackages.ormolu # :lang haskell :editor format
-                    html-tidy # :lang web
+                    html-tidy # :lang web :editor format
                     jre # :lang plantuml
-                    libtool # :term vterm
-                    libxml2 # :lang data
+                    libxml2 # :lang data :editor format
                     nil # :lang (nix +lsp)
                     nodePackages.bash-language-server # :lang (sh +lsp)
                     nodePackages.eslint # :lang (json +lsp)
@@ -107,12 +98,22 @@ in {
                     nodePackages.stylelint # :lang web
                     nodejs # :tools debugger
                     pandoc # :lang org markdown latex
-                    perl # term vterm
                     pinentry-emacs # doom!
+                    pipenv # :lang python
                     pre-commit # :tools magit
+                    python3 # :lang python
+                    python3Packages.black # :lang python :editor format
+                    python3Packages.isort # :lang python :editor format
+                    python3Packages.nose # :lang python
+                    python3Packages.pyflakes # :lang python :editor format
+                    python3Packages.pytest # :lang python
+                    python3Packages.python-lsp-server # :lang python :editor format
+                    racket # :lang racket :editor format
                     ripgrep # doom!
                     rust-analyzer # :lang (rust +lsp)
+                    rustc # :lang rust
                     rustfmt # :lang rust
+                    sbcl # :lang common-lisp
                     shellcheck # :lang sh
                     shfmt # :lang sh :editor format
                     sqlite # :lang (org +roam2) :tools lookup
@@ -121,6 +122,7 @@ in {
                     unzip # :tools debugger
                     wordnet # :tools (lookup +dictionary +offline)
                     yaml-language-server # :lang (yaml +lsp)
+                    zig # :lang zig :editor format
                     zls # :lang (zig +lsp)
                     zstd # :emacs undo
                   ]
@@ -142,7 +144,7 @@ in {
                   concatMapStringsSep ":" (x: "${x}/bin") extraBins
                 }"))
 
-                (appendq! auth-sources '("${config.secrets.authinfo.path}"))
+                (appendq! auth-sources '(("${config.secrets.authinfo.path}")))
 
                 ;; The font must be set to n+2, otherwise it looks too small.
                 (setq doom-font (font-spec
@@ -165,7 +167,7 @@ in {
                 (setq migemo-dictionary "${pkgs.cmigemo}/share/migemo/utf-8/migemo-dict")
 
                 ;; :input japanese
-                ;; (setq skk-large-jisyo "${pkgs.skk-dicts}/share/skk/SKK-JISYO.L")
+                (setq skk-large-jisyo "${pkgs.skk-dicts}/share/skk/SKK-JISYO.L")
 
                 ;; :lang nix
                 (setq nix-nixfmt-bin "${pkgs.writeShellScript "nixfmt" ''
@@ -210,7 +212,49 @@ in {
 
       programs.emacs = {
         enable = true;
-        package = pkgs.emacs29; # Pin to avoid surprises.
+        package =
+          (pkgs.emacs29.override (finalAttrs: {
+            stdenv = with pkgs;
+              useMoldLinker
+              (withCFlags ["-O2"]
+                (impureUseNativeOptimizations finalAttrs.stdenv));
+          }))
+          .overrideAttrs (_: final: {
+            configureFlags =
+              final.configureFlags
+              ++ [
+                "--without-mailutils"
+                "--without-pop"
+              ];
+          });
+        # TODO https://github.com/NixOS/nixpkgs/issues/267548
+        # packageX = let
+        #   emacs = "emacs29"; # Pin the version to avoid surprises.
+        # in
+        #   (pkgs.${emacs}.pkgs.overrideScope
+        #     (_: super: {
+        #       emacs =
+        #         (pkgs.${emacs}.override (finalAttrs: {
+        #           stdenv = with pkgs;
+        #             useMoldLinker
+        #             (withCFlags ["-O2"]
+        #               (impureUseNativeOptimizations finalAttrs.stdenv));
+        #         }))
+        #         .overrideAttrs (_: final: {
+        #           configureFlags =
+        #             final.configureFlags
+        #             ++ [
+        #               "--without-mailutils"
+        #               "--without-pop"
+        #             ];
+        #         });
+        #     }))
+        #   .withPackages (p:
+        #     with p; [
+        #       emacsql # :tools magit
+        #       mu4e # :email mu4e
+        #       vterm # :term vterm
+        #     ]);
       };
     };
   };
diff --git a/modules/common/emacs/doom/config.el b/modules/common/emacs/doom/config.el
index 7cecfba..257a3ea 100644
--- a/modules/common/emacs/doom/config.el
+++ b/modules/common/emacs/doom/config.el
@@ -29,7 +29,7 @@
 
 (setq lsp-enable-suggest-server-download nil
       lsp-enable-file-watchers t
-      lsp-file-watch-threshold 2048
+      lsp-file-watch-threshold 4096
       lsp-modeline-code-actions-enable nil)
 
 ;;
@@ -154,7 +154,7 @@
 
 (setq elfeed-db-directory "~/.elfeed"
       elfeed-enclosure-default-dir (concat elfeed-db-directory "/enclosures")
-      rmh-elfeed-org-files (list (concat elfeed-db-directory "/index.org"))
+      rmh-elfeed-org-files '((concat elfeed-db-directory "/index.org"))
       elfeed-goodies/powerline-default-separator nil
       elfeed-goodies/entry-pane-size 0.75
       elfeed-goodies/entry-pane-position 'bottom)
@@ -213,16 +213,3 @@
                                  (setq-local company-idle-delay 0.1))))
   :init
   (setq hledger-input-buffer-height 20))
-
-;;
-;;; Kubernetes
-;;
-
-(use-package! kubernetes
-  :defer t
-  :commands (kubernetes-overview)
-  :init (setq kubernetes-poll-frequency 3600
-              kubernetes-redraw-frequency 3600))
-
-(use-package! kubernetes-evil
-  :after kubernetes-overview)
diff --git a/modules/common/emacs/doom/init.el b/modules/common/emacs/doom/init.el
index 0acd008..3796fac 100644
--- a/modules/common/emacs/doom/init.el
+++ b/modules/common/emacs/doom/init.el
@@ -81,7 +81,7 @@
        (dhall +lsp +tree-sitter)
        (emacs-lisp +lsp +tree-sitter)
        (go +lsp +tree-sitter)
-       (:if IS-LINUX (haskell +lsp +tree-sitter))
+       (haskell +lsp +tree-sitter)
        (java +lsp +tree-sitter)
        (javascript +lsp +tree-sitter)
        (json +lsp +tree-sitter)
@@ -92,9 +92,9 @@
        (org +pandoc +roam2)
        plantuml
        (python +lsp +tree-sitter)
-       (:if IS-LINUX (racket +lsp +tree-sitter))
+       (racket +lsp +tree-sitter)
        (rust +lsp +tree-sitter)
-       (:if IS-LINUX (scheme +lsp +tree-sitter +racket))
+       (scheme +lsp +tree-sitter +racket)
        (sh +lsp +tree-sitter)
        web
        (yaml +lsp +tree-sitter)
diff --git a/modules/common/emacs/doom/packages.el b/modules/common/emacs/doom/packages.el
index 61ac680..26a1d31 100644
--- a/modules/common/emacs/doom/packages.el
+++ b/modules/common/emacs/doom/packages.el
@@ -10,6 +10,3 @@
            :branch "main"))
 
 (package! hledger-mode)
-
-(package! kubernetes)
-(package! kubernetes-evil)

Consider giving Nix/NixOS a try! <3