old
  1{
  2  pkgs,
  3  lib,
  4  ...
  5}: {
  6  home.packages = with pkgs; [
  7    # Misc
  8    gnupg
  9    gnumake
 10
 11    fd # search for files by name, faster than find
 12    ripgrep # search for files by its content, replacement of grep
 13    yq-go # yaml processor https://github.com/mikefarah/yq
 14    delta # A viewer for git and diff output
 15    gping # ping, but with a graph(TUI)
 16    websocat # Command-line client for WebSockets
 17
 18    # nix related
 19    nix-index # A small utility to index nix store paths
 20    nix-init # generate nix derivation from url
 21    nix-melt # A TUI flake.lock viewer
 22    nix-tree # A TUI to visualize the dependency graph of a nix derivation
 23  ];
 24
 25  programs = {
 26    # A command-line fuzzy finder
 27    fzf = {
 28      enable = true;
 29    };
 30
 31    # a cat(1) clone with syntax highlighting and Git integration.
 32    bat = {
 33      enable = true;
 34      config = {
 35        pager = "less -FR";
 36      };
 37    };
 38
 39    # zoxide is a smarter cd command, inspired by z and autojump.
 40    # It remembers which directories you use most frequently,
 41    # so you can "jump" to them in just a few keystrokes.
 42    # zoxide works on all major shells.
 43    zoxide = {
 44      enable = true;
 45      enableBashIntegration = true;
 46      enableFishIntegration = true;
 47      enableNushellIntegration = true;
 48    };
 49
 50    carapace = {
 51      enable = true;
 52      enableBashIntegration = true;
 53      enableFishIntegration = true;
 54      enableNushellIntegration = true;
 55    };
 56
 57    # rbw, a unofficial CLI Bitwarden client
 58    rbw = {
 59      enable = true;
 60      settings = {
 61        base_url = "https://bitwarden.hpcesia.com/";
 62        email = "me@hpcesia.com";
 63        pinentry = lib.mkDefault pkgs.pinentry-tty;
 64      };
 65    };
 66
 67    # very fast version of tldr in Rust
 68    tealdeer = {
 69      enable = true;
 70      enableAutoUpdates = true;
 71      settings = {
 72        display = {
 73          compact = false;
 74          use_pager = true;
 75        };
 76        updates = {
 77          auto_update = false;
 78          auto_update_interval_hours = 720;
 79        };
 80      };
 81    };
 82
 83    # Atuin replaces your existing shell history with a SQLite database,
 84    # and records additional context for your commands.
 85    # Additionally, it provides optional and fully encrypted
 86    # synchronisation of your history between machines, via an Atuin server.
 87    atuin = {
 88      enable = true;
 89      enableBashIntegration = true;
 90      enableFishIntegration = true;
 91      enableNushellIntegration = true;
 92      settings = {
 93        sync_address = "https://atuin.hpcesia.com";
 94        sync_frequency = "10m";
 95        filter_mode = "host";
 96        style = "full";
 97        inline_height = 32;
 98        keymap_mode = "vim-normal";
 99      };
100    };
101
102    eza = {
103      enable = true;
104      enableBashIntegration = true;
105      enableFishIntegration = true;
106      icons = "auto";
107      git = true;
108    };
109  };
110}