80 lines
2.0 KiB
Nix
80 lines
2.0 KiB
Nix
{ config, lib, pkgs, inputs, ... }:
|
|
with lib; {
|
|
config = mkMerge [
|
|
(mkIf config.nathan.programs.util.core {
|
|
home.packages = with pkgs; [
|
|
# Rust rewrites of common shell utilites
|
|
exa
|
|
bat
|
|
fd
|
|
sd
|
|
du-dust
|
|
ripgrep
|
|
ripgrep-all
|
|
hyperfine
|
|
dogdns
|
|
duf
|
|
xcp
|
|
# User friendly cut
|
|
choose
|
|
# Man but terse
|
|
tealdeer
|
|
# rsync for _The Cloud_ :tm:
|
|
rclone
|
|
# File
|
|
file
|
|
];
|
|
# Configure tmux
|
|
programs.tmux = {
|
|
enable = true;
|
|
aggressiveResize = true;
|
|
keyMode = "vi";
|
|
shortcut = "x";
|
|
terminal =
|
|
if pkgs.stdenv.isLinux then "tmux-256color" else "screen-256color";
|
|
escapeTime = 100;
|
|
plugins = with pkgs; [ tmuxPlugins.cpu tmuxPlugins.jump ];
|
|
extraConfig = ''
|
|
set -ag terminal-overrides ",xterm-256color:RGB"
|
|
set-option -g status-interval 1
|
|
set-option -g automatic-rename on
|
|
set-option -g automatic-rename-format '#{b:pane_current_path}: #{pane_current_command}'
|
|
'';
|
|
};
|
|
# Configure btop
|
|
programs.btop = { enable = true; };
|
|
})
|
|
(mkIf config.nathan.programs.util.productivity {
|
|
home.packages = with pkgs; [
|
|
tokei
|
|
# Spell check
|
|
hunspell
|
|
hunspellDicts.en-us
|
|
# CLI Markdown renderer
|
|
glow
|
|
# Command line file manager
|
|
broot
|
|
# Much better curl
|
|
httpie
|
|
# CLI spreadsheets
|
|
visidata
|
|
# Cheatsheet manager
|
|
cheat
|
|
# Ping with a graph
|
|
gping
|
|
# Pandoc for documentation
|
|
pandoc
|
|
# Tmate for pair programming
|
|
upterm
|
|
];
|
|
})
|
|
(mkIf config.nathan.programs.util.json {
|
|
#########################
|
|
## JSON Utilities
|
|
#########################
|
|
programs.jq = { enable = true; };
|
|
home.packages = with pkgs; [ jc fx ];
|
|
})
|
|
];
|
|
}
|