2022-10-02 16:42:53 -04:00
|
|
|
{ config, lib, pkgs, inputs, ... }:
|
2022-10-13 22:13:43 -04:00
|
|
|
with lib; {
|
2022-07-02 02:44:43 -04:00
|
|
|
config = mkMerge [
|
2022-07-03 00:40:04 -04:00
|
|
|
(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
|
2023-04-18 23:51:10 -04:00
|
|
|
xcp
|
2022-07-03 00:40:04 -04:00
|
|
|
# User friendly cut
|
|
|
|
choose
|
|
|
|
# Man but terse
|
|
|
|
tealdeer
|
2022-07-03 23:34:12 -04:00
|
|
|
# rsync for _The Cloud_ :tm:
|
|
|
|
rclone
|
2023-06-16 21:02:52 -04:00
|
|
|
# File
|
|
|
|
file
|
2022-07-03 00:40:04 -04:00
|
|
|
];
|
2022-09-05 02:31:37 -04:00
|
|
|
# Configure tmux
|
|
|
|
programs.tmux = {
|
|
|
|
enable = true;
|
|
|
|
aggressiveResize = true;
|
2023-05-14 19:55:38 -04:00
|
|
|
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 = ''
|
2022-09-05 02:31:37 -04:00
|
|
|
set -ag terminal-overrides ",xterm-256color:RGB"
|
2022-10-15 04:57:42 -04:00
|
|
|
set-option -g status-interval 1
|
|
|
|
set-option -g automatic-rename on
|
2023-05-14 19:55:38 -04:00
|
|
|
set-option -g automatic-rename-format '#{b:pane_current_path}: #{pane_current_command}'
|
2022-09-05 02:31:37 -04:00
|
|
|
'';
|
|
|
|
};
|
2023-01-27 20:06:22 -05:00
|
|
|
# Configure btop
|
|
|
|
programs.btop = { enable = true; };
|
2022-07-03 00:40:04 -04:00
|
|
|
})
|
|
|
|
(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
|
2022-08-11 11:25:05 -04:00
|
|
|
# Tmate for pair programming
|
2023-07-23 21:06:20 -04:00
|
|
|
upterm
|
2022-07-03 00:40:04 -04:00
|
|
|
];
|
|
|
|
})
|
2022-07-02 02:44:43 -04:00
|
|
|
(mkIf config.nathan.programs.util.json {
|
|
|
|
#########################
|
|
|
|
## JSON Utilities
|
|
|
|
#########################
|
2022-10-13 22:13:43 -04:00
|
|
|
programs.jq = { enable = true; };
|
|
|
|
home.packages = with pkgs; [ jc fx ];
|
2022-07-02 02:44:43 -04:00
|
|
|
})
|
|
|
|
];
|
2022-06-23 02:57:41 -04:00
|
|
|
}
|