about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.editorconfig8
-rw-r--r--configurations/melian/default.nix13
-rw-r--r--flake.lock72
-rw-r--r--flake.nix4
-rw-r--r--modules/nixfiles/common/nix.nix24
-rw-r--r--modules/nixfiles/emacs/default.nix137
-rw-r--r--modules/nixfiles/emacs/doom/config.el31
-rw-r--r--modules/nixfiles/emacs/doom/init.el236
-rw-r--r--modules/nixfiles/emacs/doom/packages.el4
-rw-r--r--modules/nixfiles/games/lutris.nix3
-rw-r--r--modules/nixfiles/profiles/dev/common.nix31
-rw-r--r--modules/nixfiles/profiles/headful.nix12
12 files changed, 286 insertions, 289 deletions
diff --git a/.editorconfig b/.editorconfig
index 29b9040..16e48cc 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,3 +1,5 @@
+root = false
+
 [*]
 charset = utf-8
 end_of_line = lf
@@ -11,10 +13,6 @@ trim_trailing_whitespace = true
 indent_size = 2
 indent_style = space
 
-[*.{yaml,yml}]
+[*.el]
 indent_size = 2
 indent_style = space
-
-[*.{toml,tml}]
-indent_size = 4
-indent_style = space
diff --git a/configurations/melian/default.nix b/configurations/melian/default.nix
index cde109d..6703d0f 100644
--- a/configurations/melian/default.nix
+++ b/configurations/melian/default.nix
@@ -169,7 +169,8 @@ with lib; {
     };
   };
 
-  # Hibernation is not enabled because I don't use it.
+  # NOTE This will make hibernation extremely hard if on an encrypted partition.
+  # This also could not work on ZFS or Btrfs.
   swapDevices = [
     {
       device = "/swapfile";
@@ -180,12 +181,7 @@ with lib; {
   boot = {
     kernelPackages = mkForce pkgs.linuxPackages_xanmod_latest;
 
-    # https://www.phoronix.com/scan.php?page=article&item=spectre-meltdown-2&num=11
-    kernelParams = ["mitigations=off"];
-
-    # Just to make Lutris/Wine logs happy.
-    kernel.sysctl."dev.i915.perf_stream_paranoid" = 0;
-
+    # Speeding Wi-Fi a bit.
     extraModprobeConfig = ''
       options iwlwifi 11n_disable=1
     '';
@@ -245,7 +241,7 @@ with lib; {
 
   services = {
     tlp = {
-      enable = false;
+      enable = false; # TODO Test this again.
       settings = {
         START_CHARGE_THRESH_BAT0 = 75;
         STOP_CHARGE_THRESH_BAT0 = 80;
@@ -284,5 +280,6 @@ with lib; {
     xserver.videoDrivers = ["intel" "modesetting"];
   };
 
+  # TODO This should be applied globally to all machines.
   system.stateVersion = "22.05";
 }
diff --git a/flake.lock b/flake.lock
index 16be0a7..00c4b60 100644
--- a/flake.lock
+++ b/flake.lock
@@ -81,11 +81,11 @@
     "doom-emacs": {
       "flake": false,
       "locked": {
-        "lastModified": 1659994866,
-        "narHash": "sha256-6lxvYfoPtzvinBHKvuUDpCz44IJpmZMLfLMy5q9UcFk=",
+        "lastModified": 1660594365,
+        "narHash": "sha256-qdv8scMO91kRk1JNyU2el/TO4tC+Uu7N4NiH55PCsuQ=",
         "owner": "doomemacs",
         "repo": "doomemacs",
-        "rev": "b06fd63dcb686045d0c105f93e07f80cb8de6800",
+        "rev": "050624d47532cef18fcb41daa4e626576b00659c",
         "type": "github"
       },
       "original": {
@@ -98,11 +98,11 @@
     "doom-snippets": {
       "flake": false,
       "locked": {
-        "lastModified": 1655900328,
-        "narHash": "sha256-fEYwFxW2sdzNK14DrS92OCGy8KDPZKewrHljnE/RlzQ=",
+        "lastModified": 1659894476,
+        "narHash": "sha256-1arRqlTos5uj6N47N4hyzHMMoUBxsxaZ/NK7iN5A+ZY=",
         "owner": "doomemacs",
         "repo": "snippets",
-        "rev": "6b2bd5a77c536ed414794ecf71d37a60ebd4663e",
+        "rev": "f957f8d195872f19c7ab0a777d592c611e10e9bb",
         "type": "github"
       },
       "original": {
@@ -121,11 +121,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1660589839,
-        "narHash": "sha256-leEjC9NmyMwUr/YPrr5w2UQD0WHDqh586V3JnSLs8W4=",
+        "lastModified": 1660709019,
+        "narHash": "sha256-Wh21bk48CIIDCTtjkP+zvh+SPW9g4kKdFOksFKhlwNI=",
         "owner": "nix-community",
         "repo": "emacs-overlay",
-        "rev": "864c7d3ec1e42ac7983d832dea7f737047a9ede9",
+        "rev": "8925d05d615773f5407669a2e9ec00212eb0edab",
         "type": "github"
       },
       "original": {
@@ -356,16 +356,16 @@
         "ws-butler": "ws-butler"
       },
       "locked": {
-        "lastModified": 1660129951,
-        "narHash": "sha256-uY0fxCwUQ5LmfX2CoklqOebKl6GM96qir2Zv1cbHdQI=",
-        "owner": "nix-community",
+        "lastModified": 1660735200,
+        "narHash": "sha256-w2KFN7C57BwI+lRxEWV7NbmBa5SZYfb2Ey66wUl0jX4=",
+        "owner": "thiagokokada",
         "repo": "nix-doom-emacs",
-        "rev": "20ca56a17dc33d67ed7d61b0e84205c617394b5b",
+        "rev": "0824726167f27e911f27b657b812cbbadb42d619",
         "type": "github"
       },
       "original": {
-        "owner": "nix-community",
-        "ref": "master",
+        "owner": "thiagokokada",
+        "ref": "fix-issue-247",
         "repo": "nix-doom-emacs",
         "type": "github"
       }
@@ -404,11 +404,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1660551188,
-        "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=",
+        "lastModified": 1660639432,
+        "narHash": "sha256-2WDiboOCfB0LhvnDVMXOAr8ZLDfm3WdO54CkoDPwN1A=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65",
+        "rev": "6c6409e965a6c883677be7b9d87a95fab6c3472e",
         "type": "github"
       },
       "original": {
@@ -420,11 +420,11 @@
     },
     "nixpkgs-master": {
       "locked": {
-        "lastModified": 1660604230,
-        "narHash": "sha256-TqiA8OkurjHr+ulXwcIvZHQsv9Qs+r25Po69ptjQ8Mk=",
+        "lastModified": 1660731184,
+        "narHash": "sha256-/lpDvKuDyfmT4T1hpr7oefuJgHolJhMswfu00ffp6Yg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "8138a92a2af2b5071e8d2b8e5e066dd4f7c10dbf",
+        "rev": "7ed0a6f85f4f86acd0fde7ba91f7cea4b9d7c0a9",
         "type": "github"
       },
       "original": {
@@ -436,11 +436,11 @@
     },
     "nixpkgs-stable": {
       "locked": {
-        "lastModified": 1660600974,
-        "narHash": "sha256-Oaba9SQmoIPbEehbX/TMV2eCJlwyXFuX8Xi6tsx1nuU=",
+        "lastModified": 1660731042,
+        "narHash": "sha256-1mhk4tjcWqRonAdwCBJGCqkCTpAClVq4e5Oq+5Ub1AQ=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "50b6709b401f0bfa7e8fadd50c14a8c63c319156",
+        "rev": "9a1fde0e0ca319298b1199b88f2072780e8be006",
         "type": "github"
       },
       "original": {
@@ -502,11 +502,11 @@
     },
     "nur": {
       "locked": {
-        "lastModified": 1660587989,
-        "narHash": "sha256-ednhBmap0xROu9m6KxrclF1YWZuiXC2syUREsv/kKZk=",
+        "lastModified": 1660729865,
+        "narHash": "sha256-EuZLr68j5/Ub7iekCVkZ92L8nq5oMTo7sQo4Rg9RQyI=",
         "owner": "nix-community",
         "repo": "NUR",
-        "rev": "0207414d63f3a319587f957eda2bd6ec4e9951a2",
+        "rev": "d642aa0bcf99b706d26388d28c2f06cbf8813652",
         "type": "github"
       },
       "original": {
@@ -535,11 +535,11 @@
     "org": {
       "flake": false,
       "locked": {
-        "lastModified": 1659533964,
-        "narHash": "sha256-ipwJjcRzY9iqEjkG4m8EXZ6+8OMdANuXRnSwct2LByQ=",
+        "lastModified": 1660447962,
+        "narHash": "sha256-EShZzaIDe2Dt/9dLTgypvvW809qEggN5ia1Vssmc27M=",
         "owner": "emacs-straight",
         "repo": "org-mode",
-        "rev": "4702a73031c77ba03b480b0848c137d5d8773e07",
+        "rev": "3303a54d74805cdd2b6eda37285f259949f7ba2e",
         "type": "github"
       },
       "original": {
@@ -623,11 +623,11 @@
     "revealjs": {
       "flake": false,
       "locked": {
-        "lastModified": 1653993278,
-        "narHash": "sha256-X43lsjoLBWmttIKj9Jzut0UP0dZlsue3fYbJ3++ojbU=",
+        "lastModified": 1660499724,
+        "narHash": "sha256-BhnEmX+8h0MVol7T4Zr2w53A+AmgzcVirpwHCR/G73U=",
         "owner": "hakimel",
         "repo": "reveal.js",
-        "rev": "039972c730690af7a83a5cb832056a7cc8b565d7",
+        "rev": "b23d15c4304a9a1b72f484171fc97682e5ed85a3",
         "type": "github"
       },
       "original": {
@@ -721,11 +721,11 @@
     "ts-fold": {
       "flake": false,
       "locked": {
-        "lastModified": 1659171920,
-        "narHash": "sha256-/yY3Ph/BE3PFZhnBIQIHkwOW/43phSI7WeoMvU83TG4=",
+        "lastModified": 1660200855,
+        "narHash": "sha256-y2gouqMbu619qPy48HjAuURLReH96zEKdhvmyIoEZuM=",
         "owner": "jcs-elpa",
         "repo": "ts-fold",
-        "rev": "17d131f69a717d7e8cc6d3af9dfa7d2b5e2b78ef",
+        "rev": "f0804a243544fbbf593791e4390d838b5d1187b0",
         "type": "github"
       },
       "original": {
diff --git a/flake.nix b/flake.nix
index 4db413f..c708930 100644
--- a/flake.nix
+++ b/flake.nix
@@ -65,9 +65,9 @@
 
     nix-doom-emacs = {
       type = "github";
-      owner = "nix-community";
+      owner = "thiagokokada";
       repo = "nix-doom-emacs";
-      ref = "master";
+      ref = "fix-issue-247";
       inputs = {
         flake-utils.follows = "flake-utils";
         emacs-overlay.follows = "emacs-overlay";
diff --git a/modules/nixfiles/common/nix.nix b/modules/nixfiles/common/nix.nix
index 586f354..5cb77e9 100644
--- a/modules/nixfiles/common/nix.nix
+++ b/modules/nixfiles/common/nix.nix
@@ -3,7 +3,7 @@
   inputs,
   lib,
   pkgs,
-  pkgsRev,
+  pkgsPR,
   this,
   ...
 }:
@@ -78,6 +78,13 @@ in {
       self.overlays.default
       (_: super:
         {
+          # Splitting this into a separate package could be a good PR.
+          logcli = super.grafana-loki.overrideAttrs (_: _: {
+            subPackages = ["cmd/logcli"];
+            preFixup = "";
+            doCheck = false;
+          });
+
           nix-bash-completions =
             super.nix-bash-completions.overrideAttrs
             (_: _: {
@@ -85,20 +92,16 @@ in {
                 substituteInPlace _nix --replace 'nix nixos-option' 'nixos-option'
               '';
             });
-          nix-index = super.nix-index.override {nix = config.nix.package;};
-          logcli = super.grafana-loki.overrideAttrs (_: _: {
-            subPackages = ["cmd/logcli"];
-            preFixup = "";
-            doCheck = false;
-          });
+
           helm = super.kubernetes-helm-wrapped.override {
             plugins = with super.kubernetes-helmPlugins; [
               helm-diff
               helm-secrets
             ];
           };
-          # https://github.com/NixOS/nixpkgs/pull/185824
-          inherit (pkgsRev "c9c10940da779db387b8d6326c8c0bee598a0a87" "sha256-r08/Z8EYTNyyZW6lYQyq521OpgUH6ewZPpvDAiCkQaA=") iosevka;
+
+          # https://github.com/NixOS/nixpkgs/pull/187039
+          inherit (pkgsPR "187039" "sha256-xyYK1M1FF8e9UDziyqTiWe3XRkRVNdWUyzqG1/Rjry8=") biber;
         }
         // (with super; let
           np = nodePackages;
@@ -112,13 +115,14 @@ in {
           k3d = kube3d;
           lua-language-server = sumneko-lua-language-server;
           nix-language-server = rnix-lsp;
+          omnisharp = omnisharp-roslyn;
           telepresence = telepresence2;
           tor-browser = tor-browser-bundle-bin;
         }))
       agenix.overlay
       emacs-overlay.overlay
       nur.overlay
-      xmonad-ng.overlay
+      xmonad-ng.overlays.default
     ];
 
     config.allowUnfree = true;
diff --git a/modules/nixfiles/emacs/default.nix b/modules/nixfiles/emacs/default.nix
index 3ebab5f..178bf6e 100644
--- a/modules/nixfiles/emacs/default.nix
+++ b/modules/nixfiles/emacs/default.nix
@@ -11,63 +11,98 @@ in {
   options.nixfiles.modules.emacs.enable =
     mkEnableOption "Whether to enable the GNU Emacs.";
 
-  # TODO Nixify.
   config = mkIf cfg.enable {
+    # TODO Make magit-forge to work with this.
+    secrets.authinfo = {
+      file = "${inputs.self}/secrets/authinfo";
+      path = "${config.my.home}/.authinfo";
+      owner = my.username;
+      inherit (config.my) group;
+    };
+
+    nixfiles.modules = {
+      git.enable = true;
+      gnupg.enable = true;
+    };
+
     hm = {
-      imports = [
-        inputs.nix-doom-emacs.hmModule
-      ];
+      imports = [inputs.nix-doom-emacs.hmModule];
 
-      home = {
-        packages = with pkgs; [
-          cmigemo # :lang japanese
-          gcc # :lang (org +roam2)
-          gnuplot # :lang (org +gnuplot)
-          gnutls # :app irc
-          graphviz # :lang (org +roam2)
-          grip # :lang (markdown +grip)
-          maim # :lang (org +dragndrop)
-          pandoc # :lang org markdown latex
-          plantuml # :lang plantuml
-          pre-commit # :tools magit
-          sqlite # :lang (org +roam2)
-          texlive.combined.scheme-full # :lang org tex
-          xclip # :os (tty +osc)
+      programs.doom-emacs = {
+        enable = true;
+        doomPrivateDir = ./doom;
+        # emacsPackage = pkgs.emacs28.override {nativeComp = true;};
+        emacsPackage = pkgs.emacs28;
+        extraPackages = with pkgs; [
+          mu # :email mu4e
         ];
+        extraConfig = let
+          extraBins = with pkgs; [
+            (aspellWithDicts (p: with p; [en ru])) # :checkers spell (+aspell)
+            asmfmt # :editor format
+            bash-language-server # :lang (sh +lsp)
+            clang-tools # :lang (cc +lsp) :editor format
+            cmake-format # :lang cc :editor format
+            cmigemo # :lang japanese
+            dockerfile-language-server # :tools (docker +lsp)
+            editorconfig # :tools editorconfig
+            fd # core
+            gnuplot # :lang (org +gnuplot)
+            gnutls # core
+            gomodifytags # :lang go
+            gopls # :lang (go +lsp)
+            gore # :lang go
+            gotests # :lang go
+            graphviz # :lang (org +roam2) :lang plantuml
+            grip # :lang (markdown +grip)
+            haskell-language-server # :lang (haskell +lsp)
+            haskellPackages.brittany # :lang haskell :editor format
+            haskellPackages.cabal-fmt # :lang haskell :editor format
+            haskellPackages.cabal-install # :lang haskell
+            haskellPackages.hoogle # :lang haskell
+            html-tidy # :lang web
+            jdk # :lang java plantuml
+            lua-language-server # :lang (lua +lsp)
+            maim # :lang (org +dragndrop)
+            nix-language-server
+            nixfmt # :lang nix :editor format
+            nodePackages.js-beautify # :lang web
+            nodePackages.lua-fmt # :lang lua :editor format
+            nodePackages.prettier # :editor format
+            nodePackages.stylelint # :lang web
+            pandoc # :lang org markdown latex
+            pre-commit # :tools magit
+            python3Packages.black # :lang python :editor format
+            python3Packages.isort # :lang python
+            python3Packages.pyflakes # :lang python
+            ripgrep # core
+            shellcheck # :lang sh
+            shfmt # :lang sh :editor format
+            sqlite # :lang (org +roam2) :tools lookup
+            texlive.combined.scheme-full # :lang org tex
+            wordnet # :tools (lookup +dictionary +offline)
+            yaml-language-server # :lang (yaml +lsp)
+            zls # :lang (zig +lsp)
+          ];
+        in ''
+          ;; This will integrate packages, which are required by various modules
+          ;; without polluting the user's profile.
+          (setq exec-path (append exec-path '(${
+            concatMapStringsSep " " (x: ''"${x}/bin"'') extraBins
+          })))
+          (setenv "PATH" (concat (getenv "PATH") ":${
+            concatMapStringsSep ":" (x: "${x}/bin") extraBins
+          }"))
 
-        activation = {
-          symlinkMigemoFiles = ''
-            target="${config.dirs.data}/migemo"
-            [[ -L "$target" ]] && rm "$target"
-            ln -s ${pkgs.cmigemo}/share/migemo "$target"
-          '';
-          symlinkSkkFiles = ''
-            target="${config.dirs.data}/skk"
-            [[ -L "$target" ]] && rm "$target"
-            ln -s ${pkgs.skk-dicts}/share "$target"
-          '';
-          symlinkPlantumlFiles = ''
-            target="${config.dirs.data}/plantuml"
-            [[ -L "$target" ]] && rm "$target"
-            ln -s ${pkgs.plantuml}/lib "$target"
-          '';
-        };
-      };
+          ;; :lang plantuml
+          (setq org-plantuml-jar-path "${pkgs.plantuml}/lib/plantuml.jar")
 
-      programs = {
-        emacs = {
-          enable = true;
-          # extraPackages = p:
-          #   with p; [
-          #     vterm # :term vterm
-          #   ];
-        };
+          ;; :input japanese
+          (setq migemo-dictionary "${pkgs.cmigemo}/share/migemo/utf-8/migemo-dict")
 
-        doom-emacs = {
-          enable = true;
-          doomPrivateDir = ./doom;
-          emacsPackage = pkgs.emacs28.override {nativeComp = true;};
-        };
+          ;; :input japanese
+          (setq skk-large-jisyo "${pkgs.skk-dicts}/share/skk/SKK-JISYO.L")
+        '';
       };
 
       services.emacs = {
@@ -75,7 +110,5 @@ in {
         client.enable = true;
       };
     };
-
-    fonts.fonts = with pkgs; [emacs-all-the-icons-fonts];
   };
 }
diff --git a/modules/nixfiles/emacs/doom/config.el b/modules/nixfiles/emacs/doom/config.el
index d641e2d..b27b7eb 100644
--- a/modules/nixfiles/emacs/doom/config.el
+++ b/modules/nixfiles/emacs/doom/config.el
@@ -29,12 +29,6 @@
         org-roam-ui-update-on-save t
         org-roam-ui-open-on-start t))
 
-(setq org-plantuml-jar-path "~/.local/share/plantuml/plantuml.jar")
-
-(setq migemo-dictionary "~/.local/share/migemo/utf-8/migemo-dict")
-
-(setq skk-large-jisyo "~/.local/share/skk/SKK-JISYO.L")
-
 (setq lsp-haskell-formatting-provider "brittany")
 
 (after! lsp-mode
@@ -71,10 +65,6 @@
 
 (setq display-line-numbers-type t)
 
-(when (eq initial-window-system 'x)
-  (toggle-frame-maximized)
-  (toggle-frame-fullscreen))
-
 (setq browse-url-generic-program (executable-find "firefox")
       browse-url-browser-function 'browse-url-generic)
 
@@ -94,15 +84,6 @@
                                      "a.gondor@yahoo.com"))
 
 
-(set-email-account! "shire"
-                    '(
-                      (mu4e-drafts-folder . "/shire/Drafts")
-                      (mu4e-refile-folder . "/shire/Archive")
-                      (mu4e-sent-folder   . "/shire/Sent")
-                      (mu4e-trash-folder  . "/shire/Trash")
-                      (smtpmail-smtp-user . "azahi"))
-                    t)
-
 (set-email-account! "yahoo"
                     '(
                       (mu4e-sent-folder   . "/yahoo/Sent")
@@ -112,6 +93,15 @@
                       (smtpmail-smtp-user . "a.gondor"))
                     t)
 
+(set-email-account! "shire"
+                    '(
+                      (mu4e-drafts-folder . "/shire/Drafts")
+                      (mu4e-refile-folder . "/shire/Archive")
+                      (mu4e-sent-folder   . "/shire/Sent")
+                      (mu4e-trash-folder  . "/shire/Trash")
+                      (smtpmail-smtp-user . "azahi"))
+                    t)
+
 (setq circe-default-nick "azahi"
       circe-default-realname "frodo@gondor.net"
       circe-default-user circe-default-nick)
@@ -176,8 +166,5 @@
 (use-package! kubernetes-tramp
   :defer t)
 
-(use-package! elpher
-  :init (setq elpher-default-url-type "gemini"))
-
 (provide 'config)
 ;;; config.el ends here
diff --git a/modules/nixfiles/emacs/doom/init.el b/modules/nixfiles/emacs/doom/init.el
index 486010a..91042ea 100644
--- a/modules/nixfiles/emacs/doom/init.el
+++ b/modules/nixfiles/emacs/doom/init.el
@@ -1,134 +1,130 @@
 ;;; init.el -*- lexical-binding: t; -*-
 
-(doom!
-  :input
-  japanese
+(doom! :input
+       japanese
 
-  :completion
-  company
-  vertico
+       :completion
+       company
+       vertico
 
-  :ui
-  deft
-  doom
-  ;; doom-dashboard
-  ;; doom-quit
-  ;; (emoji +unicode)
-  hl-todo
-  hydra
-  indent-guides
-  ;; ligatures
-  ;; (modeline +light)
-  nav-flash
-  ophints
-  (popup +defaults)
-  ;; tabs
-  ;; treemacs
-  unicode
-  vc-gutter
-  vi-tilde-fringe
-  window-select
-  workspaces
-  zen
+       :ui
+       ;; deft
+       doom
+       ;; doom-dashboard
+       ;; doom-quit
+       hl-todo
+       indent-guides
+       ;; ligatures
+       ;; (modeline +light)
+       nav-flash
+       ophints
+       (popup +defaults)
+       ;; tabs
+       (treemacs +lsp)
+       ;; unicode
+       (vc-gutter +diff-hl +pretty)
+       window-select
+       workspaces
+       zen
 
-  :editor
-  (evil +everywhere)
-  file-templates
-  fold
-  (format +onsave)
-  lispy
-  multiple-cursors
-  (objed +manual)
-  parinfer
-  rotate-text
-  snippets
-  word-wrap
+       :editor
+       (evil +everywhere)
+       file-templates
+       fold
+       (format +onsave)
+       ;; lispy
+       ;; multiple-cursors
+       parinfer
+       ;; rotate-text
+       snippets
+       word-wrap
 
-  :emacs
-  dired
-  electric
-  ibuffer
-  (undo +tree)
-  vc
+       :emacs
+       dired
+       electric
+       ibuffer
+       undo
+       vc
 
-  :term
-  eshell
-  vterm
+       :term
+       eshell
+       vterm
 
-  :checkers
-  syntax
-  (spell +flyspell)
-  grammar
+       :checkers
+       syntax
+       (spell +aspell
+              +everywhere
+              +flyspell)
+       grammar
 
-  :tools
-  ansible
-  debugger
-  direnv
-  (docker +lsp)
-  editorconfig
-  (eval +overlay)
-  (lookup +dictionary +offline)
-  (lsp +peek)
-  magit
-  make
-  (pass +auth)
-  pdf
-  ;; rgb
-  ;; taskrunner
-  terraform
-  tmux
-  upload
+       :tools
+       ansible
+       (debugger +lsp)
+       direnv
+       ;; (docker +lsp)
+       editorconfig
+       (eval +overlay)
+       (lookup +dictionary +offline)
+       (lsp +peek)
+       (magit +forge)
+       make
+       (pass +auth)
+       pdf
+       terraform
+       ;; tmux
+       tree-sitter
+       upload
 
-  :os
-  (tty +osc)
+       :os
+       (tty +osc)
 
-  :lang
-  (cc +lsp)
-  common-lisp
-  ;; (csharp +lsp)
-  data
-  dhall
-  emacs-lisp
-  (go +lsp)
-  (haskell +lsp)
-  ;; (java +lsp)
-  ;; (javascript +lsp)
-  (json +lsp)
-  (latex +lsp)
-  ;; (lua +lsp)
-  markdown
-  nix
-  (org
-    +brain
-    +dragndrop
-    +gnuplot
-    +hugo
-    +journal
-    +noter
-    +pandoc
-    +pomodoro
-    +present
-    +roam2)
-  plantuml
-  ;; (php +lsp)
-  (python +lsp)
-  (racket +lsp)
-  ;; (rust +lsp)
-  (scheme +racket)
-  (sh +lsp)
-  web
-  (yaml +lsp)
-  (zig +lsp)
+       :lang
+       (cc +lsp +tree-sitter)
+       common-lisp
+       ;; (csharp +lsp +tree-sitter)
+       ;; data
+       dhall
+       emacs-lisp
+       (go +lsp +tree-sitter)
+       ;; (graphql +lsp)
+       (haskell +lsp)
+       (java +lsp +tree-sitter)
+       (javascript +lsp +tree-sitter)
+       (json +tree-sitter)
+       (latex +lsp)
+       (lua +lsp)
+       markdown
+       (nix +tree-sitter)
+       (org +brain
+            +gnuplot
+            +hugo
+            +journal
+            +noter
+            +pandoc
+            +pomodoro
+            +present
+            +pretty
+            +roam2)
+       plantuml
+       (python +lsp +tree-sitter)
+       (racket +lsp)
+       rst
+       (rust +lsp)
+       (scheme +racket)
+       (sh +lsp +tree-sitter)
+       (web +lsp +tree-sitter)
+       (yaml +lsp)
+       (zig +lsp +tree-sitter)
 
-  :email
-  mu4e
+       :email
+       mu4e
 
-  :app
-  calendar
-  emms
-  everywhere
-  irc
-  (rss +org)
+       :app
+       calendar
+       ;; emms
+       ;; everywhere
+       irc
+       (rss +org)
 
-  :config
-  (default +bindings +smartparens))
+       :config
+       (default +bindings +smartparens))
diff --git a/modules/nixfiles/emacs/doom/packages.el b/modules/nixfiles/emacs/doom/packages.el
index 72c3945..b29ee5f 100644
--- a/modules/nixfiles/emacs/doom/packages.el
+++ b/modules/nixfiles/emacs/doom/packages.el
@@ -6,8 +6,6 @@
 (package! kubernetes-evil)
 (package! kubernetes-tramp)
 
-(package! elpher)
-
 (unpin! org-roam)
 (package! org-roam
   :recipe (:host github
@@ -19,5 +17,3 @@
            :repo "org-roam/org-roam-ui"
            :branch "main"
            :files ("*.el" "out")))
-
-(package! modus-themes)
diff --git a/modules/nixfiles/games/lutris.nix b/modules/nixfiles/games/lutris.nix
index ec1eaa2..6d9fdf5 100644
--- a/modules/nixfiles/games/lutris.nix
+++ b/modules/nixfiles/games/lutris.nix
@@ -16,6 +16,9 @@ in {
       gamemode.enable = true;
     };
 
+    # This removes the annoying warning.
+    boot.kernel.sysctl."dev.i915.perf_stream_paranoid" = 0;
+
     hm.home.packages = with pkgs; [
       (lutris.override {
         lutris-unwrapped = lutris-unwrapped.override {
diff --git a/modules/nixfiles/profiles/dev/common.nix b/modules/nixfiles/profiles/dev/common.nix
index d6c44ea..e5b60dc 100644
--- a/modules/nixfiles/profiles/dev/common.nix
+++ b/modules/nixfiles/profiles/dev/common.nix
@@ -46,13 +46,9 @@ in {
           indent_size = 4
           indent_style = tab
 
-          [*.{bash,sh}]
-          indent_size = 4
-          indent_style = tab
-
           [*.{cl,clj,el,l,lisp,lsp,rkt,scm,ss}]
-          indent_size = unset
-          indent_style = unset
+          indent_size = 2
+          indent_style = space
 
           [*.go]
           indent_size = 4
@@ -255,32 +251,9 @@ in {
         PYTHONSTARTUP = ./pystartup.py;
       };
 
-      # TODO Probably should scrap most of these in favor of per-project
-      # shell.nix or flake.nix.
       packages = with pkgs; [
-        alejandra
-        bash-language-server
-        cloc
-        dockerfile-language-server
-        editorconfig
-        fd
-        fzf
         htmlq
-        jc
         jq
-        json-language-server
-        logcli
-        nix-language-server
-        nixfmt
-        nixpkgs-fmt
-        ripgrep
-        ripgrep-all
-        shellcheck
-        shfmt
-        treefmt
-        wrk
-        yaml-language-server
-        yamllint
         yq
       ];
     };
diff --git a/modules/nixfiles/profiles/headful.nix b/modules/nixfiles/profiles/headful.nix
index fa2f0d7..e14517e 100644
--- a/modules/nixfiles/profiles/headful.nix
+++ b/modules/nixfiles/profiles/headful.nix
@@ -24,7 +24,6 @@ in {
     nixfiles.modules = {
       alacritty.enable = true;
       aria2.enable = true;
-      aspell.enable = true;
       emacs.enable = true;
       firefox.enable = true;
       mpv.enable = true;
@@ -40,6 +39,17 @@ in {
 
     hm.home.packages = with pkgs; [convmv dos2unix];
 
+    # There are (arguably) not a lot of reasons to keep mitigations enabled not
+    # on a web facing machine. First of all, to completely mitigate any possible
+    # Spectre holes one would need to disable Hyperthreading which will
+    # essentially put one's computer into the stone age by not being able to to
+    # effectively utilise multi-core systems. Secondly, by enabling mitigations,
+    # we introduce a plethora of performace overheads[1], which, albeit small,
+    # but still contribute to overall speed of things.
+    #
+    # [1]: https://www.phoronix.com/scan.php?page=article&item=spectre-meltdown-2&num=11
+    boot.kernelParams = ["mitigations=off"];
+
     hardware.opengl = {
       enable = true;
       driSupport = true;

Consider giving Nix/NixOS a try! <3