summaryrefslogtreecommitdiff
path: root/hm/shell/cli.nix
blob: 2716e007940f1cab2209c6ad0ca4fca1b9b26c8d (plain)
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
95
96
97
98
99
100
101
102
103
104
{
  config,
  lib,
  pkgs,
  ...
}:
let
  cfg = config.hm.shell.cli;
in
{
  options.hm.shell.cli.enable = lib.mkEnableOption "modern cli tools";
  config = lib.mkIf cfg.enable {
    programs.zoxide = {
      enable = true;
      options = [ "--cmd cd" ];
    };
    programs.bat = {
      enable = true;
      config.theme = "gruvbox-dark";
    };

    programs.fzf.enable = true;
    programs.fd.enable = true;
    programs.ripgrep.enable = true;
    programs.yazi.enable = true;
    programs.btop.enable = true;
    programs.fastfetch = {
      enable = true;
      settings = {
        display = {
          size = {
            binaryPrefix = "iec";
          };
          separator = "  ";
        };
        multithreading = true;
        modules = [
          "title"
          "separator"
          "os"
          {
            type = "command";
            key = "Generation";
            text = "readlink /nix/var/nix/profiles/system | cut -d- -f2";
          }
          "kernel"
          "uptime"
          "processes"
          "shell"
          "display"
          "wm"
          "terminal"
          "cpu"
          "gpu"
          "memory"
          "swap"
          "disk"
          "localip"
          "break"
          "colors"
        ];
      };
    };
    # programs.direnv = {
    #   enable = true;
    #   nix-direnv.enable = true;
    # };
    programs.nix-your-shell = {
      enable = true;
      enableFishIntegration = true;
      nix-output-monitor.enable = true;
    };
    programs.bottom = {
      enable = true;
    };
    programs.tealdeer = {
      enable = true;
    };
    # programs.lazygit = {
    #   enable = true;
    #   enableFishIntegration = true;
    # };
    programs.riff.enable = true;
    programs.pls.enable = true;
    programs.nix-index.enable = true;

    home.packages = with pkgs; [
      sd
      choose
      doggo
      gping
      comma
      dust
      nix-search-cli
      srm
      file
      hexyl
      procs

      chafa
      ffmpeg
    ];
  };
}