My Nix Configuration
1{
2 pkgs,
3 lib,
4 config,
5 ...
6}:
7let
8 inherit (lib) mkEnableOption mkIf;
9 cfg = config.py.programs.fish;
10in
11{
12 options.py.programs.fish.enable = mkEnableOption "fish shell";
13 config.catppuccin.fish.enable = false;
14 config.programs.fish = mkIf cfg.enable {
15 enable = true;
16 shellAliases = {
17 "lg" = "lazygit";
18 "cat" = "bat";
19 "gls" = "eza -lah@ --icons --git --git-ignore --no-user";
20 "ls" = "eza --icons -a";
21 "ll" = "eza --icons -lah@";
22 "lt" = "eza --icons --tree -a";
23 "dig" = "doggo";
24 "nt" = "nixpkgs-track";
25 "decode-sub" = "xxd -c255 -p -r";
26 };
27 shellInit = ''
28 set -x GPG_TTY (tty)
29 set -x SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
30 gpgconf --launch gpg-agent
31 '';
32
33 interactiveShellInit = ''
34 fzf_configure_bindings --directory=\cf --git_log=\cl --git_status=\cg \
35 --history=\cr --variables=\cv --processes=\cp
36
37 fish_config theme choose catppuccin-mocha
38 '';
39
40 plugins = [
41 {
42 inherit (pkgs.fishPlugins.fzf-fish) src;
43 name = "fzf-fish";
44 }
45 ];
46 };
47}