# My editor configurations. Take note I try to avert as much settings to create # the configuration files with Nix. I prefer to handle the text editor # configurations by hand as they are very chaotic and it is a hassle going # through Nix whenever I need to change it. # # As much as I want 100% reproducibility with Nix, 5% of the remaining stuff # for me is not worth to maintain. { config, options, lib, pkgs, ... }: let cfg = config.profiles.editors; in { options.profiles.editors = { neovim.enable = lib.mkEnableOption "foo-dogsquared's Neovim setup with Nix"; emacs.enable = lib.mkEnableOption "foo-dogsquared's (Doom) Emacs setup"; }; config = lib.mkMerge [ (lib.mkIf cfg.neovim.enable { programs.neovim = { enable = true; package = pkgs.neovim-nightly; withPython3 = true; withRuby = true; withNodeJs = true; plugins = with pkgs.vimPlugins; [ parinfer-rust ]; }; }) # I only use Emacs for org-roam (seriously... I only learned Emacs for # that). Take note this profile doesn't setup Emacs-as-a-development-tool # thing, rather Emacs-as-a-note-taking tool thing with the complete # package. (lib.mkIf cfg.emacs.enable { programs.emacs = { enable = true; package = pkgs.emacsUnstable; extraPackages = epkgs: with epkgs; [ vterm pdf-tools org-pdftools org-roam org-roam-ui org-roam-bibtex org-noter-pdftools ]; }; # Doom Emacs dependencies. home.packages = with pkgs; [ # This is installed just to get Geiser to properly work. guile_3_0 # Required dependencies. ripgrep gnutls emacs-all-the-icons-fonts # Optional dependencies. fd imagemagick zstd # Module dependencies. ## :checkers spell aspell aspellDicts.en aspellDicts.en-computers ## :tools lookup wordnet ## :lang org +roam2 sqlite anystyle-cli ]; }) ]; }