zaphyra's git: nixfiles

zaphyra's nixfiles

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
{
  config,
  lib,
  pkgs,
  ...
}:

{

  options.zpha.programs.shellUtilities.enable = lib.mkEnableOption "useful shell-utilities";

  config = lib.mkIf config.zpha.programs.shellUtilities.enable {
    preservation.preserveAt."/persist".users.zaphyra.directories = [
      ".local/share/zoxide"
      ".local/share/mcfly"
    ];

    users.users.zaphyra.maid = {
      packages = with pkgs; [
        zoxide
        eza
        bat
        ripgrep
        fd

        pwgen

        (pkgs.writeShellScriptBin "use" ''
          declare -a all
          for p in "$@"; do
            all+=("''${NIXPKGS_PATH}#$p")
          done
          eval nix shell ''${all[@]}
        '')

        mcfly
        mcfly-fzf
        fzf

        wget
        curl
        rsync

        fx
        jq
        bc
        file

        trash-cli

        zpha.nix-cleanup
      ];

      programs.fish = {
        config = ''
          zoxide init fish | source
          mcfly init fish | source
          mcfly-fzf init fish | source
        '';

        aliases = {
          ".." = "cd ..";
          "..." = "cd ../..";

          cd = "z";
          cdi = "zi";

          ls = "eza";
          ll = "eza -l";
          la = "eza -a";
          lla = "eza -la";
          tree = "eza --tree -a";

          cat = "bat -pp";
          less = "bat";
          rm = "trash-put";

          diff = "diff --color";
          ip = "ip --color=auto";

          killall = "pkill";

          grep = "rg";
          find = "fd";

          wget = "wget --hsts-file=\"~/.local/state/wget-hsts\"";

          zzz = "sleep 1 && systemctl suspend";
        };
      };
    };
  };

}