diff --git a/config/shared.nix b/config/shared.nix index e388098..d606536 100644 --- a/config/shared.nix +++ b/config/shared.nix @@ -32,6 +32,7 @@ # List packages installed in system profile. environment.systemPackages = with pkgs; [ git + vim screen killall ]; diff --git a/dotfiles/.emacs.d/lsp.org b/dotfiles/.emacs.d/lsp.org index 5d6f158..83d60ad 100644 --- a/dotfiles/.emacs.d/lsp.org +++ b/dotfiles/.emacs.d/lsp.org @@ -61,6 +61,16 @@ Company is a package that automatically finds completions instead of making the :init (global-flycheck-mode)) #+end_src +** Direnv for Nix-Shell Integration + +Direnv is a program that will automatically run ~nix-shell~ when a ~.envrc~ file is found. Using the ~emacs-direnv~ package, you can more easily integrate nix into your development environment. + +#+begin_src emacs-lisp +(use-package direnv + :config + (direnv-mode)) +#+end_src + * Language Servers This will include any language server packages and configuration. diff --git a/home/emacs.nix b/home/emacs.nix index ba7bf96..c75cdff 100644 --- a/home/emacs.nix +++ b/home/emacs.nix @@ -23,15 +23,24 @@ nodePackages.vscode-json-languageserver ]; - programs.emacs = { - enable = true; - package = pkgs.emacs29; - extraPackages = epkgs: with epkgs; [ - mu4e - vterm - all-the-icons - nerd-icons - ]; + programs = { + # For integration with shell.nix files + direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; + + emacs = { + enable = true; + package = pkgs.emacs29; + extraPackages = epkgs: with epkgs; [ + mu4e + vterm + all-the-icons + nerd-icons + ]; + }; }; home.file = {