blob: 269c6178280ff3390de6a6ea4a16fbdc12345947 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
{
lib,
pkgs,
...
}:
let
isLinux = pkgs.stdenv.isLinux;
in
{
home.packages =
with pkgs;
[
age # encryption tool
bandwhich # bandwhich - a better ifconfig
bottom # btm - a better top
coreutils # GNU core utilities
direnv # direnv - directory environment tool
dust # dust - a more intuitive du
jless # jless - a better cat
jq # jq - a better json
procs # procs - a better ps
restic # to manage backups
ripgrep # ripgrep - a better grep
shellcheck # shell script linter
tree # tree - a better ls
wget # wget - another download tool
yq # yq - a better yaml
]
++ (lib.optionals (isLinux) [ htop ]);
# https://github.com/nix-community/home-manager/blob/master/modules/programs/fish.nix
programs.fish = {
enable = true;
interactiveShellInit = ''
set fish_greeting ""
fish_add_path -p ~/.cargo/bin/
# Add utmctl to PATH
fish_add_path /Applications/UTM.app/Contents/MacOS/
'';
shellAbbrs = {
ncg = "nix-collect-garbage --delete-older-than 7d";
ndc = "nix develop --command";
nfc = "nix flake check";
ngcroot = "ls -al /nix/var/nix/gcroots/auto/";
nph = "nix profile history --profile /nix/var/nix/profiles/system";
nsn = "nix search nixpkgs";
nsv = "nix store verify --all";
g = "git";
gap = "git add --patch";
};
shellAliases = {
la = "eza -la --git --color=always --group-directories-first";
ll = "eza -la -L=1 --git --color=always --group-directories-first";
lt = "eza -aT -L=2 --git --color=always --group-directories-first";
};
};
# an alternative to ls
programs.eza = {
enable = true;
icons = "never";
enableFishIntegration = false;
extraOptions = [
"--group-directories-first"
"--no-quotes"
"--git-ignore"
"--icons=never"
];
};
# an alternative to find
programs.fd = {
enable = true;
hidden = true;
ignores = [
".git/"
".direnv/"
];
};
programs.direnv = {
enable = true;
nix-direnv.enable = true;
enableZshIntegration = true;
config = {
global.disable_stdin = true;
global.strict_env = true;
};
};
programs.bat = {
enable = true;
config = {
theme = "ansi";
pager = "less -FR";
};
};
programs.starship = {
enable = true;
settings = {
add_newline = false;
directory = {
fish_style_pwd_dir_length = 3;
};
git_branch = {
symbol = "🌱 ";
};
git_commit = {
commit_hash_length = 4;
tag_symbol = "🔖 ";
};
git_state = {
format = "[($state($progress_current of $progress_total))]($style) ";
cherry_pick = "[🍒 PICKING](bold red)";
};
git_status = {
conflicted = "💢";
ahead = "💨";
behind = "😰";
diverged = "😵";
untracked = "🤷";
stashed = "📦";
modified = "📝";
staged = "[++($count)](green)";
renamed = "👅";
deleted = "🗑️";
};
"$schema" = "https://starship.rs/config-schema.json";
hostname = {
ssh_only = true;
};
username = {
disabled = true;
};
kubernetes = {
disabled = false;
style = "bold blue";
};
nix_shell.disabled = false;
};
};
home.sessionVariables = {
LESS = "-FRSXM";
LESSCHARSET = "utf-8";
PAGER = "less";
SHELL = "${pkgs.fish}/bin/fish";
};
}
|