This repository has been archived on 2024-07-15. You can view files and clone it, but cannot push or open issues or pull requests.
nix-config/home-manager/durincore.nix

210 lines
4.6 KiB
Nix
Raw Normal View History

2023-12-26 16:47:00 -06:00
{ config, pkgs, talhelper, ... }:
2023-12-26 14:48:53 -06:00
{
# TODO please change the username & home direcotry to your own
home.username = "jahanson";
home.homeDirectory = "/home/jahanson";
# set cursor size and dpi for 4k monitor
xresources.properties = {
"Xcursor.size" = 16;
"Xft.dpi" = 172;
};
# basic configuration of git, please change to your own
programs.git = {
enable = true;
userName = "Joseph Hanson";
userEmail = "joe@veri.dev";
};
2024-02-10 12:35:31 -06:00
2023-12-26 14:48:53 -06:00
# exa replacement, ls replacement.
programs.lsd.enable = true;
programs.fish = {
enable = true;
shellAliases = {
# lsd
ls = "lsd";
ll = "lsd -l";
la = "lsd -a";
lt = "lsd --tree";
lla = "lsd -la";
# other
df = "df -h";
du = "du -h";
};
2024-02-10 12:35:31 -06:00
# rtx hook-env | source
# rtx activate fish | source
2023-12-26 16:47:00 -06:00
shellInit = ''
2023-12-27 08:47:51 -06:00
direnv hook fish | source
set -gx PATH $PATH $HOME/.krew/bin
2023-12-26 16:47:00 -06:00
'';
2023-12-26 14:48:53 -06:00
functions = {
fish_greeting = {
description = "Set the fish greeting";
2024-02-23 13:13:11 -06:00
body = "fastfetch";
2023-12-26 14:48:53 -06:00
};
};
};
# Packages that should be installed to the user profile.
home.packages = with pkgs; [
# here is some command line tools I use frequently
# feel free to add your own or remove some of them
# terminal file managers
nnn
2023-12-26 14:48:53 -06:00
ranger
yazi
2023-12-26 14:48:53 -06:00
# archives
zip
xz
unzip
p7zip
# utils
go-task
2023-12-26 14:48:53 -06:00
ripgrep # recursively searches directories for a regex pattern
jq # A lightweight and flexible command-line JSON processor
yq-go # yaml processer https://github.com/mikefarah/yq
fzf # A command-line fuzzy finder
age # sops-age encryption
2024-02-10 12:35:31 -06:00
sops
direnv # shell environment management
2023-12-27 10:00:36 -06:00
pre-commit # Pre-commit tasks for git
2023-12-28 12:04:26 -06:00
minio-client # S3 management
2023-12-29 12:12:25 -06:00
shellcheck
2023-12-30 14:08:33 -06:00
envsubst
kustomize
2023-12-26 14:48:53 -06:00
# networking tools
iperf3
2024-02-10 12:35:31 -06:00
dnsutils # `dig` + `nslookup`
2023-12-26 14:48:53 -06:00
ldns # replacement of `dig`, it provide the command `drill`
aria2 # A lightweight multi-protocol & multi-source command-line download utility
socat # replacement of openbsd-netcat
nmap # A utility for network discovery and security auditing
2024-02-10 12:35:31 -06:00
ipcalc # it is a calculator for the IPv4/v6 addresses
2023-12-26 14:48:53 -06:00
2023-12-26 16:47:00 -06:00
# kubernetes
k9s
kubectl
2024-02-22 08:54:10 -06:00
kubelogin-oidc # omni login for k8s
2023-12-26 16:47:00 -06:00
krew
fluxcd
2023-12-29 12:12:25 -06:00
kubernetes-helm
cilium-cli
hubble
2023-12-26 16:47:00 -06:00
2023-12-26 14:48:53 -06:00
# misc
2024-02-23 13:13:11 -06:00
fastfetch
2023-12-26 14:48:53 -06:00
cowsay
file
which
tree
gnused
gnutar
gawk
zstd
gnupg
# nix related
#
# it provides the command `nom` works just like `nix`
# with more details log output
nix-output-monitor
nixd # nix lsp server
2023-12-26 14:48:53 -06:00
# productivity
hugo # static site generator
glow # markdown previewer in terminal
2024-02-10 12:35:31 -06:00
btop # replacement of htop/nmon
2023-12-26 14:48:53 -06:00
iotop # io monitoring
iftop # network monitoring
# system call monitoring
strace # system call monitoring
ltrace # library call monitoring
lsof # list open files
# system tools
sysstat
lm_sensors # for `sensors` command
ethtool
pciutils # lspci
usbutils # lsusb
2023-12-26 16:47:00 -06:00
rtx # rtx package manager
# Browsers
firefox
vivaldi
vivaldi-ffmpeg-codecs
# Email
thunderbird
# Dev
vscode
termius
2023-12-26 14:48:53 -06:00
];
# starship - an customizable prompt for any shell
programs.starship = {
enable = true;
# custom settings
settings = {
add_newline = false;
aws.disabled = true;
gcloud.disabled = true;
line_break.disabled = true;
2024-02-20 22:29:35 -06:00
username = {
disabled = false;
show_always = true;
format = "[$user]($style)@";
};
2024-02-20 22:17:31 -06:00
hostname ={
disabled = false;
ssh_only = false;
2024-02-20 23:02:45 -06:00
format = "[$hostname]($style) ";
ssh_symbol = "";
2024-02-20 22:17:31 -06:00
};
};
};
2023-12-26 14:48:53 -06:00
# alacritty - a cross-platform, GPU-accelerated terminal emulator
programs.alacritty = {
enable = true;
# custom settings
settings = {
env.TERM = "xterm-256color";
font = {
size = 12;
draw_bold_text_with_bright_colors = true;
};
scrolling.multiplier = 5;
selection.save_to_clipboard = true;
2024-02-20 22:48:26 -06:00
window.dimensions = {
columns = 120;
lines = 30;
};
2023-12-26 14:48:53 -06:00
};
};
# This value determines the home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new home Manager release introduces backwards
# incompatible changes.
#
# You can update home Manager without changing this value. See
# the home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "23.11";
# Let home Manager install and manage itself.
programs.home-manager.enable = true;
}