blob: 86d69657b08918467dab61f2031201691c16cc92 (
plain)
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
|
{ pkgs, ... }:
{
home = {
# The state version is required and should stay at the version you
# originally installed.
stateVersion = "22.11";
username = "emile";
homeDirectory = "/Users/emile";
};
programs = {
# let home-manager install and manage itself
home-manager.enable = true;
direnv = {
enable = true;
nix-direnv.enable = true;
};
htop = {
enable = true;
settings.show_program_with_path = true;
};
zsh = {
enable = true;
enableCompletion = true;
#syntaxHighlighting.enable = true;
shellAliases = import ./aliases.nix;
# autosuggestions.enable = true;
# enableAutosuggestions = true;
oh-my-zsh = {
enable = true;
plugins = [
"git"
"web-search"
"urltools"
];
};
defaultKeymap = "viins";
# this has to be added, so we can ssh into the host using deploy-rs and
# access the `nix-store` stuff
envExtra = ''
if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then
. '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh'
fi
'';
initExtraBeforeCompInit = ''
${builtins.readFile ./session_variables.zsh}
${builtins.readFile ./functions.zsh}
eval "$(direnv hook zsh)"
setopt autocd # cd without needing to use the cd command
'';
};
emacs = {
enable = true;
package = pkgs.emacs;
extraPackages =
epkgs: with epkgs; [
nix-mode # Nix
magit # Git
parinfer-rust-mode # Lisp Parens
tuareg # OCaml
];
extraConfig = builtins.readFile ./emacs_config.el;
};
kitty = {
enable = true;
# package = pkgs.kitty;
font = {
name = "Iosevka Nerd Font";
size = 13;
};
settings = {
font_size = 12;
disable_ligatures = "never";
close_on_child_death = "yes";
tab_bar_edge = "top";
tab_bar_style = "slant";
tab_bar_min_tabs = 1;
# tab_title_template = "{index}[{layout_name[0:2]}]: {title.replace('emile', 'e')[title.rfind('/')+1:]}";
# tab_title_template = "{index}[{layout_name[0:2]}]: {title.replace('emile', 'e')}";
tab_title_template = "{index} {title.replace('emile', 'e')}";
editor = "/Users/emile/.cargo/bin/hx";
macos_option_as_alt = "no";
macos_quit_when_last_window_closed = "yes";
kitty_mod = "ctrl+shift";
clear_all_shortcuts = "";
allow_remote_control = "yes";
};
keybindings = {
"cmd+enter" = "launch --cwd=current --location=split";
"cmd+shift+enter" = "launch --cwd=current --location=hsplit";
"cmd+shift+h" = "move_window left";
"cmd+shift+j" = "move_window down";
"cmd+shift+k" = "move_window up";
"cmd+shift+l" = "move_window right";
# "cmd+shift+m" = "detach_window ask";
"command+j" = "kitten pass_keys.py neighboring_window bottom command+j";
"command+k" = "kitten pass_keys.py neighboring_window top command+k";
"command+h" = "kitten pass_keys.py neighboring_window left command+h";
"command+l" = "kitten pass_keys.py neighboring_window right command+l";
"command+b" = "combine : clear_terminal scroll active : send_text normal,application \x0c";
# "ctrl+n" = "send_text all \x0e";
# "ctrl+e" = "send_text all \x01h";
# "ctrl+n" = "send_text all \x01i";
# "ctrlshift++n" = "send_text all \x01i";
# "ctrl+left" = "resize_window wider";
# "ctrl+right" = "resize_window narrower";
# "ctrl+up" = "resize_window shorter";
# "ctrl+down" = "resize_window taller";
};
environment = { };
};
};
home.packages = with pkgs; [
coreutils
mpv
# terminal foo
# kitty
jq
ripgrep
fd
eza
bat
lsd
tree
broot
du-dust
mktemp
htop
rsync
p7zip
imagemagick
binwalk
lftp
graphviz
git
tig
# nix related tools
deploy-rs
cachix
nixos-rebuild
# editor
unstable.helix
## formatter
nixfmt-rfc-style # official formatter for nix code
## language server
# nodePackages_latest.typescript-language-server # js / typescript
nil # nix
nodePackages.yaml-language-server # yaml
python312Packages.python-lsp-server # python
gopls # golang
# binary foo
radare2
# network foo
curl
wireguard-tools
# tailscale
# rss foo
yarr
# go foo
go
delve
# c foo
cmake
pkg-config
# iot hack foo
minicom
SDL2
# macos foo
# karabiner-elements
# qemu tooling
qemu
sphinx # docs
virt-manager
# lisp foo
#unstable.sbcl
sbcl
#clasp-common-lisp
# clisp
# infrastructure as code foo
terraform
# ansible
portmidi
tiny # irc
rlwrap
entr
python312
z3 # theorem prover
python312Packages.z3-solver
openvpn
ocaml
taskwarrior3
drawio
libc-database
# blender
# rustdesk
# ] ++ lib.optionals stdenv.isDarwin [
];
}
|