diff options
| author | seth <[email protected]> | 2024-02-03 19:27:26 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2024-02-03 20:47:55 -0500 |
| commit | fcc60b84e5e3cc44986d40af63f5de488caae909 (patch) | |
| tree | 45f4455c7dcbc63e59e62a9af79783e2e5509a2e /users/seth/module/shell/fish.nix | |
| parent | de003fa28e56b81a33e831099987cd94d2f53b39 (diff) | |
make everything a module
Diffstat (limited to 'users/seth/module/shell/fish.nix')
| -rw-r--r-- | users/seth/module/shell/fish.nix | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/users/seth/module/shell/fish.nix b/users/seth/module/shell/fish.nix new file mode 100644 index 0000000..6dfebb9 --- /dev/null +++ b/users/seth/module/shell/fish.nix @@ -0,0 +1,52 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.seth.shell.fish; +in { + options.seth.shell.fish = { + enable = lib.mkEnableOption "Fish configuration" // {default = true;}; + withPlugins = lib.mkEnableOption "Fish plugins" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.fish = lib.mkMerge [ + { + enable = true; + catppuccin.enable = true; + + interactiveShellInit = '' + set -l nixfile ${config.home.homeDirectory}/.nix-profile/etc/profile.d/nix.fish + if test -e $nixfile + source $nixfile + end + + ${lib.getExe pkgs.nix-your-shell} fish | source + + abbr -a !! --position anywhere --function last_history_item + ''; + + functions = { + last_history_item.body = "echo $history[1]"; + }; + + shellAbbrs = { + nixgc = "sudo nix-collect-garbage -d && nix-collect-garbage -d"; + }; + } + (lib.mkIf cfg.withPlugins { + plugins = let + mkFishPlugins = builtins.map (plugin: { + name = plugin; + inherit (pkgs.fishPlugins.${plugin}) src; + }); + in + mkFishPlugins [ + "autopair" + ]; + }) + ]; + }; +} |
