diff --git a/nix/home.nix b/nix/home.nix index 94bc656..7a26d65 100644 --- a/nix/home.nix +++ b/nix/home.nix @@ -34,70 +34,11 @@ fira-code ]; - programs.direnv.enable = true; - programs.direnv.nix-direnv.enable = true; - programs.direnv.stdlib = '' - # From https://github.com/direnv/direnv/wiki/Customizing-cache-location - : ''${XDG_CACHE_HOME:=$HOME/.cache} - declare -A direnv_layout_dirs - direnv_layout_dir() { - echo "''${direnv_layout_dirs[$PWD]:=$( - local path="''${PWD//[^a-zA-Z0-9]/-}" - echo "$XDG_CACHE_HOME/direnv/layouts/''${path:1}" - )}" - } -''; - - programs.emacs.enable = true; - programs.emacs.package = pkgs.emacs28NativeComp; - programs.emacs.extraPackages = epkgs: [ epkgs.vterm ]; + imports = [ + ./modules/git.nix + ./modules/direnv.nix + ./modules/emacs.nix + ]; fonts.fontconfig.enable = true; - - programs.git = { - enable = true; - aliases = { - lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; - }; - extraConfig = { - user.name = "Tim McCarthy"; - user.email = "thoomfish@gmail.com"; - color.ui = true; - init.defaultBranch = "main"; - push.default = "simple"; - pull.rebase = true; - transfer.fsckobjects = true; - credential.helper = "store"; - }; - - ignores = [ - ".DS_Store" - ".projectile" - ".idea" - "*.sw?" - "*.pyc" - ".#*" - ".nrepl-port" - ".rebel_readline_history" - ".auctex-auto" - "*.synctex.gz" - ".ccls-cache" - ".lein-repl-history" - "ompile_commands.json" - "*.egg-info" - ".envrc" - ".vscode" - ".direnv" - ".ipynb_checkpoints" - "nfer-out" - ".cache" - ]; - - includes = [ - { - condition = "gitdir/i:~/SRI/"; - contents.user.email = "tim.mccarthy@sri.com"; - } - ]; - }; } diff --git a/nix/modules/direnv.nix b/nix/modules/direnv.nix new file mode 100644 index 0000000..f793102 --- /dev/null +++ b/nix/modules/direnv.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, ... }: +{ + programs.direnv.enable = true; + programs.direnv.nix-direnv.enable = true; + programs.direnv.stdlib = '' + # From https://github.com/direnv/direnv/wiki/Customizing-cache-location + : ''${XDG_CACHE_HOME:=$HOME/.cache} + declare -A direnv_layout_dirs + direnv_layout_dir() { + echo "''${direnv_layout_dirs[$PWD]:=$( + local path="''${PWD//[^a-zA-Z0-9]/-}" + echo "$XDG_CACHE_HOME/direnv/layouts/''${path:1}" + )}" + } +''; +} diff --git a/nix/modules/emacs.nix b/nix/modules/emacs.nix new file mode 100644 index 0000000..cd60dd3 --- /dev/null +++ b/nix/modules/emacs.nix @@ -0,0 +1,6 @@ +{ config, lib, pkgs, ... }: +{ + programs.emacs.enable = true; + programs.emacs.package = pkgs.emacs28NativeComp; + programs.emacs.extraPackages = epkgs: [ epkgs.vterm ]; +} diff --git a/nix/modules/git.nix b/nix/modules/git.nix new file mode 100644 index 0000000..17e0201 --- /dev/null +++ b/nix/modules/git.nix @@ -0,0 +1,49 @@ +{ config, lib, pkgs, ... }: +{ + programs.git = { + enable = true; + aliases = { + lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; + }; + extraConfig = { + user.name = "Tim McCarthy"; + user.email = "thoomfish@gmail.com"; + color.ui = true; + init.defaultBranch = "main"; + push.default = "simple"; + pull.rebase = true; + transfer.fsckobjects = true; + credential.helper = "store"; + }; + + ignores = [ + ".DS_Store" + ".projectile" + ".idea" + "*.sw?" + "*.pyc" + ".#*" + ".nrepl-port" + ".rebel_readline_history" + ".auctex-auto" + "*.synctex.gz" + ".ccls-cache" + ".lein-repl-history" + "ompile_commands.json" + "*.egg-info" + ".envrc" + ".vscode" + ".direnv" + ".ipynb_checkpoints" + "nfer-out" + ".cache" + ]; + + includes = [ + { + condition = "gitdir/i:~/SRI/"; + contents.user.email = "tim.mccarthy@sri.com"; + } + ]; + }; +}