1
Fork 0
satellite/home/features/cli/fish/default.nix

61 lines
1.7 KiB
Nix
Raw Normal View History

2023-12-02 00:46:56 +01:00
{ pkgs, config, lib, ... }:
2023-02-10 00:11:54 +01:00
{
2023-12-07 22:35:57 +01:00
# {{{ Fzf
programs.fzf = {
enable = true;
defaultOptions = [ "--no-scrollbar" ];
changeDirWidgetOptions = [
"--preview '${lib.getExe pkgs.eza} --icons --tree --color=always {}'"
];
fileWidgetOptions = [
"--preview '${lib.getExe pkgs.bat} --number --color=always {}'"
];
};
stylix.targets.fzf.enable = true;
# }}}
# {{{ Fish
2023-02-10 00:11:54 +01:00
programs.fish = {
enable = true;
interactiveShellInit = ''
${builtins.readFile ./config.fish}
# Modify nix-shell to use `fish` as it's default shell
${lib.getExe pkgs.nix-your-shell} fish | source
'';
2023-02-10 00:11:54 +01:00
2023-12-07 22:35:57 +01:00
# {{{ Plugins
2023-12-02 00:46:56 +01:00
plugins =
let
plugins = with pkgs.fishPlugins; [
z # Jump to directories by typing "z <directory-name>"
grc # Adds color to a bunch of built in commands
done # Trigger a notification when long commands finish execution
puffer # Text expansion (i.e. expanding .... to ../../../)
sponge # Remove failed commands and whatnot from history
forgit # Git tui thingy? (I'm still trying this one out)
colored-man-pages # Self explainatory:)
];
in
# For some reason home-manager expects a slightly different format 🤔
lib.forEach plugins
(plugin: {
name = plugin.pname;
inherit (plugin) src;
});
2023-12-07 22:35:57 +01:00
# }}}
2023-02-10 00:11:54 +01:00
};
2023-11-04 20:18:14 +01:00
2023-12-10 23:53:19 +01:00
# I sometimes get errors about `grc` being missing, so I gave up and added it here.
home.packages = [ pkgs.grc ];
2023-11-04 20:18:14 +01:00
satellite.persistence.at.state.apps.fish.directories = [
"${config.xdg.dataHome}/fish"
"${config.xdg.dataHome}/z" # The z fish plugin
];
2023-12-07 22:35:57 +01:00
# }}}
2023-02-10 00:11:54 +01:00
}