diff options
Diffstat (limited to 'modules/shell.nix')
| -rw-r--r-- | modules/shell.nix | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/modules/shell.nix b/modules/shell.nix new file mode 100644 index 0000000..68111ea --- /dev/null +++ b/modules/shell.nix @@ -0,0 +1,75 @@ +{ config +, pkgs +, hmLib +, lib +, userOptions +, ... +}: +{ + home.sessionVariables = { + EDITOR = "nvim"; + }; + + home.sessionPath = [ + "${userOptions.userHome}/.cargo/bin" + ]; + + home.activation.coursierSetup = hmLib.hm.dag.entryAfter [ "writeBoundary" ] '' + $DRY_RUN_CMD ${pkgs.coursier}/bin/cs setup --env --jvm 21 + ''; + + programs.fzf = { + enable = true; + enableZshIntegration = true; + }; + + programs.zsh = { + enable = true; + enableCompletion = true; + initContent = '' + bindkey '\e.' insert-last-word + if java_home=$(cs java-home --jvm 21 2>/dev/null); then + export JAVA_HOME="$java_home" + fi + ''; + plugins = [ + { + name = "fzf-tab"; + src = pkgs.fetchFromGitHub { + owner = "Aloxaf"; + repo = "fzf-tab"; + rev = "v1.2.0"; + sha256 = "0mnsmfv0bx6np2r6pll43h261v7mh2ic1kd08r7jcwyb5xarfvmb"; + }; + } + ]; + }; + + programs.git = { + enable = true; + settings = { + user = { + email = "${userOptions.gitEmail}"; + name = "${userOptions.gitName}"; + }; + pull.rebase = true; + merge.conflictstyle = "zdiff3"; + }; + }; + + services.gpg-agent = { + enable = true; + }; + + programs.tmux = { + enable = true; + extraConfig = '' + set -g default-command "${pkgs.zsh}/bin/zsh" + ''; + }; + + programs.starship = { + enable = true; + enableZshIntegration = true; + }; +} |
