Files
nixos-config/home-manager/cli-tools.nix
2025-01-09 15:59:11 -08:00

176 lines
3.5 KiB
Nix

{ config, pkgs, lib, ... }:
{
home.packages = with pkgs; [
curl
dust
tldr
tailscale
docker
nix-prefetch-github
];
programs = {
fastfetch.enable = true;
fzf.enable = true;
bat.enable = true;
btop.enable = true;
kitty.enable = true;
yazi.enable = true;
starship.enable = true;
lazygit.enable = true;
#thefuck.enable = true;
#thefuck.enableZshIntegration = true;
git = {
enable = true;
userName = "rogueking";
userEmail = "miguel@muniz.org";
};
eza = {
enable = true;
icons = "auto";
enableZshIntegration = true;
extraOptions = [
"--group-directories-first"
];
};
ssh = {
enable = true;
matchBlocks = {
global = {
host = "*";
setEnv = {
TERM = "xterm-256color";
};
};
};
# Add IdentityAgent configuration here
extraConfig = ''
IdentityAgent ~/.1password/agent.sock
'';
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
historySubstringSearch.enable = true;
shellAliases = {
ls = "eza --color=auto";
grep = "grep --color=auto";
ll = "eza -la";
lg = "lazygit";
fk = "fuck";
lt = "eza --tree";
cd = "z";
open = "xdg-open";
rebuild = "sudo nixos-rebuild switch --flake /etc/nixos#default";
};
initExtra = ''
fastfetch
'';
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
};
oh-my-zsh = {
enable = true;
#plugins = ["thefuck"];
};
};
starship = {
settings = {
add_newline = true;
format = lib.concatStrings [
"$time"
"$directory"
"$git_branch"
"$git_status"
"$hostname"
"$golang"
"direnv"
"$status"
];
right_format = lib.concatStrings [
"$cmd_duration"
];
cmd_duration = {
disabled = false;
show_notifications = false;
min_time = 2000;
format = "[$duration](bold yellow)";
};
directory = {
style = "cyan";
format = ''\[[$path]($style)\] '';
};
direnv = {
disabled = false;
};
git_branch = {
style = "bold cyan";
format = ''\[[$symbol$branch(:$remote_branch)]($style)\] '';
};
git_status = {
format = "[($all_status$ahead_behind )]($style)";
conflicted = "🏳";
ahead = "\${count}";
diverged = "\${ahead_count}\${behind_count}";
behind = "\${count}";
up_to_date = "";
untracked = "🤷";
stashed = "📦";
modified = "📝";
staged = ''[++\($count\)](green)'';
renamed = "👅";
deleted = "🗑";
};
golang = {
format = ''\[[$symbol($version)]($style)\]'';
};
hostname = {
format = "[$ssh_symbol$hostname]($style) ";
};
status = {
disabled = false;
success_symbol = "[](bold red)[](bold yellow)[](bold green) ";
symbol = "[](bold red) ";
format = "$symbol";
};
time = {
disabled = false;
style = "cyan";
format = ''\[[$time]($style)\] '';
};
};
};
};
}