nixos-config/modules/shell/base.nix
2020-10-25 23:49:14 +08:00

60 lines
2.2 KiB
Nix
Executable File

# Here are the base packages for my shell workflow.
{ config, options, lib, pkgs, ... }:
with lib; {
options.modules.shell.base = {
enable = mkOption {
type = types.bool;
default = false;
};
};
config = mkIf config.modules.shell.base.enable {
my.packages = with pkgs; [
aria2 # The sequel to aria(1).
aspell # Hunt down a spelling bee champion to come to your shell.
bat # cat(1) with wings.
buku # A developer-oriented browser-independent bookmark manager.
exa # ls(1) after an exodus.
fd # find(1) after a cognitive behavioral therapy.
fzf # A fuzzy finder that enables fuzzy finding not furry finding, a common misconception.
gopass # The improved version of Password Store which is a password manager for hipsters.
gotop # A sysadmin's best friend that just happens to be a dashboard.
graphviz # The biz central for graphical flowcharts.
hexyl # Binary viewer with a cool name on the command-line.
hledger # Do your accountancy thing ON THE COMMAND LINE, sure why not!
httpie # Want a piece of the HTTP pie.
jq # A command-line interface for parsing JSON.
lazygit # For the lazy gits who cannot get good at Git.
lazydocker # For the lazy gits who cannot get good at Docker.
maim # A command-line interface for parsing screenshots.
pup # A command-line interface for parsing HTML.
(ripgrep.override { withPCRE2 = true; }) # Super-fast full-text searcher.
(recoll.override {
withGui = false;
}) # Bring the search engine to the desktop!
shellcheck # Check your shell if it's broken.
sqlite # Battle-tested cute little database that can grow into an abomination of a data spaghetti.
tree # I'm not a scammer, I swear.
unzip # Unzip what? The world may never know.
youtube-dl # A program that can be sued for false advertisement as you can download from other video sources.
zoxide # Navigate the filesystem at the speed of sound.
];
my.home = {
programs = {
bat = {
enable = true;
config = { theme = "base16"; };
};
};
};
my.zsh = {
rc = ''
eval "$(${pkgs.zoxide}/bin/zoxide init zsh)"
'';
};
};
}