82 lines
1.5 KiB
Nix
82 lines
1.5 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.home.roles.base;
|
|
in
|
|
{
|
|
options.home.roles.base = {
|
|
enable = mkEnableOption "Enable base CLI tools and essential programs";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
home.packages = with pkgs; [
|
|
fd
|
|
glances
|
|
gzip
|
|
htop
|
|
killall
|
|
less
|
|
ncdu
|
|
shellcheck
|
|
tmux
|
|
tree
|
|
];
|
|
|
|
# Essential programs everyone needs
|
|
programs.bash = {
|
|
enable = true;
|
|
initExtra = ''
|
|
codex() {
|
|
local key
|
|
key="$(rbw get openai-api-key-codex)"
|
|
OPENAI_API_KEY="$key" command codex "$@"
|
|
}
|
|
'';
|
|
};
|
|
|
|
programs.home-manager.enable = true;
|
|
programs.command-not-found.enable = true;
|
|
|
|
programs.git = {
|
|
enable = true;
|
|
userName = "John Ogle";
|
|
userEmail = "john@ogle.fyi";
|
|
extraConfig = {
|
|
safe.directory = "/etc/nixos";
|
|
};
|
|
};
|
|
|
|
programs.jq.enable = true;
|
|
|
|
programs.neovim = {
|
|
enable = true;
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
};
|
|
|
|
programs.ssh = {
|
|
enable = true;
|
|
addKeysToAgent = "yes";
|
|
matchBlocks = {
|
|
"nucdeb1" = {
|
|
hostname = "nucdeb1.oglehome";
|
|
user = "root";
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.rbw = {
|
|
enable = true;
|
|
settings = {
|
|
email = "john@johnogle.info";
|
|
base_url = "https://bitwarden.johnogle.info";
|
|
pinentry = pkgs.pinentry-qt;
|
|
};
|
|
};
|
|
|
|
# Note: modules must be imported at top-level home config
|
|
};
|
|
}
|