+1
-1
darwin/home.nix
+1
-1
darwin/home.nix
+22
-97
flake.lock
+22
-97
flake.lock
···
37
"type": "github"
38
}
39
},
40
-
"crane_2": {
41
-
"locked": {
42
-
"lastModified": 1742394900,
43
-
"narHash": "sha256-vVOAp9ahvnU+fQoKd4SEXB2JG2wbENkpqcwlkIXgUC0=",
44
-
"owner": "ipetkov",
45
-
"repo": "crane",
46
-
"rev": "70947c1908108c0c551ddfd73d4f750ff2ea67cd",
47
-
"type": "github"
48
-
},
49
-
"original": {
50
-
"owner": "ipetkov",
51
-
"repo": "crane",
52
-
"type": "github"
53
-
}
54
-
},
55
"darwin": {
56
"inputs": {
57
"nixpkgs": [
58
-
"nixpkgs"
59
]
60
},
61
"locked": {
62
-
"lastModified": 1747494142,
63
-
"narHash": "sha256-7TAUwDVZWq82t/x3+zZ5y+Tjl2hLL2c8+8pv9zCUbTo=",
64
"owner": "lnl7",
65
"repo": "nix-darwin",
66
-
"rev": "8e251e45346e9d58e0eece2512e40c183f967e8f",
67
"type": "github"
68
},
69
"original": {
70
"owner": "lnl7",
71
-
"ref": "master",
72
"repo": "nix-darwin",
73
"type": "github"
74
}
75
},
76
-
"flake-compat": {
77
-
"locked": {
78
-
"lastModified": 1733328505,
79
-
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
80
-
"owner": "edolstra",
81
-
"repo": "flake-compat",
82
-
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
83
-
"type": "github"
84
-
},
85
-
"original": {
86
-
"owner": "edolstra",
87
-
"repo": "flake-compat",
88
-
"type": "github"
89
-
}
90
-
},
91
"home-manager": {
92
"inputs": {
93
"nixpkgs": [
···
95
]
96
},
97
"locked": {
98
-
"lastModified": 1747439237,
99
-
"narHash": "sha256-5rCGrnkglKKj4cav1U3HC+SIUNJh08pqOK4spQv9RjA=",
100
"owner": "nix-community",
101
"repo": "home-manager",
102
-
"rev": "ae755329092c87369b9e9a1510a8cf1ce2b1c708",
103
"type": "github"
104
},
105
"original": {
···
133
},
134
"nixos-hardware": {
135
"locked": {
136
-
"lastModified": 1747129300,
137
-
"narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=",
138
"owner": "nixos",
139
"repo": "nixos-hardware",
140
-
"rev": "e81fd167b33121269149c57806599045fd33eeed",
141
"type": "github"
142
},
143
"original": {
···
148
},
149
"nixpkgs": {
150
"locked": {
151
-
"lastModified": 1747327360,
152
-
"narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=",
153
"owner": "NixOS",
154
"repo": "nixpkgs",
155
-
"rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46",
156
"type": "github"
157
},
158
"original": {
···
164
},
165
"nixpkgs-master": {
166
"locked": {
167
-
"lastModified": 1747517186,
168
-
"narHash": "sha256-ESuD8SaqgysQQ5wW3H49egueDyT4h2jhCM84WcPOCMQ=",
169
"owner": "NixOS",
170
"repo": "nixpkgs",
171
-
"rev": "9f65f287d309c02a57c7a2b0ce26c6cf46dc3149",
172
"type": "github"
173
},
174
"original": {
···
180
},
181
"nixpkgs-stable": {
182
"locked": {
183
-
"lastModified": 1747335874,
184
-
"narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=",
185
"owner": "NixOS",
186
"repo": "nixpkgs",
187
-
"rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858",
188
"type": "github"
189
},
190
"original": {
191
"owner": "NixOS",
192
-
"ref": "nixos-24.11",
193
"repo": "nixpkgs",
194
"type": "github"
195
}
···
224
"nixpkgs": "nixpkgs",
225
"nixpkgs-master": "nixpkgs-master",
226
"nixpkgs-stable": "nixpkgs-stable",
227
-
"prompt": "prompt",
228
-
"zed": "zed"
229
-
}
230
-
},
231
-
"rust-overlay": {
232
-
"inputs": {
233
-
"nixpkgs": [
234
-
"zed",
235
-
"nixpkgs"
236
-
]
237
-
},
238
-
"locked": {
239
-
"lastModified": 1747363019,
240
-
"narHash": "sha256-N4dwkRBmpOosa4gfFkFf/LTD8oOcNkAyvZ07JvRDEf0=",
241
-
"owner": "oxalica",
242
-
"repo": "rust-overlay",
243
-
"rev": "0e624f2b1972a34be1a9b35290ed18ea4b419b6f",
244
-
"type": "github"
245
-
},
246
-
"original": {
247
-
"owner": "oxalica",
248
-
"repo": "rust-overlay",
249
-
"type": "github"
250
}
251
},
252
"systems": {
···
261
"original": {
262
"owner": "nix-systems",
263
"repo": "default",
264
-
"type": "github"
265
-
}
266
-
},
267
-
"zed": {
268
-
"inputs": {
269
-
"crane": "crane_2",
270
-
"flake-compat": "flake-compat",
271
-
"nixpkgs": [
272
-
"nixpkgs"
273
-
],
274
-
"rust-overlay": "rust-overlay"
275
-
},
276
-
"locked": {
277
-
"lastModified": 1747508752,
278
-
"narHash": "sha256-RlZKLttv4fTa4AcwYbcrJjeVUHVV9Up8ek7PL/FGtnI=",
279
-
"owner": "zed-industries",
280
-
"repo": "zed",
281
-
"rev": "230eb12f7220aea21733a259b670201bc79c7020",
282
-
"type": "github"
283
-
},
284
-
"original": {
285
-
"owner": "zed-industries",
286
-
"repo": "zed",
287
"type": "github"
288
}
289
}
···
37
"type": "github"
38
}
39
},
40
"darwin": {
41
"inputs": {
42
"nixpkgs": [
43
+
"nixpkgs-stable"
44
]
45
},
46
"locked": {
47
+
"lastModified": 1749744770,
48
+
"narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=",
49
"owner": "lnl7",
50
"repo": "nix-darwin",
51
+
"rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb",
52
"type": "github"
53
},
54
"original": {
55
"owner": "lnl7",
56
+
"ref": "nix-darwin-25.05",
57
"repo": "nix-darwin",
58
"type": "github"
59
}
60
},
61
"home-manager": {
62
"inputs": {
63
"nixpkgs": [
···
65
]
66
},
67
"locked": {
68
+
"lastModified": 1750654717,
69
+
"narHash": "sha256-YXlhTUGaLAY1rSosaRXO5RSGriEyF9BGdLkpKV+9jyI=",
70
"owner": "nix-community",
71
"repo": "home-manager",
72
+
"rev": "4c9e99e8e8e36bcdfa9cdb102e45e4dc95aa5c5b",
73
"type": "github"
74
},
75
"original": {
···
103
},
104
"nixos-hardware": {
105
"locked": {
106
+
"lastModified": 1750431636,
107
+
"narHash": "sha256-vnzzBDbCGvInmfn2ijC4HsIY/3W1CWbwS/YQoFgdgPg=",
108
"owner": "nixos",
109
"repo": "nixos-hardware",
110
+
"rev": "1552a9f4513f3f0ceedcf90320e48d3d47165712",
111
"type": "github"
112
},
113
"original": {
···
118
},
119
"nixpkgs": {
120
"locked": {
121
+
"lastModified": 1750506804,
122
+
"narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=",
123
"owner": "NixOS",
124
"repo": "nixpkgs",
125
+
"rev": "4206c4cb56751df534751b058295ea61357bbbaa",
126
"type": "github"
127
},
128
"original": {
···
134
},
135
"nixpkgs-master": {
136
"locked": {
137
+
"lastModified": 1750680047,
138
+
"narHash": "sha256-Wy8PNgpFr6FwdSwmYu5PnnU2ed+TyMN6c37r8pM985k=",
139
"owner": "NixOS",
140
"repo": "nixpkgs",
141
+
"rev": "eeab26971f913ba86193d6cba38d9688a4d94ed8",
142
"type": "github"
143
},
144
"original": {
···
150
},
151
"nixpkgs-stable": {
152
"locked": {
153
+
"lastModified": 1750400657,
154
+
"narHash": "sha256-3vkjFnxCOP6vm5Pm13wC/Zy6/VYgei/I/2DWgW4RFeA=",
155
"owner": "NixOS",
156
"repo": "nixpkgs",
157
+
"rev": "b2485d56967598da068b5a6946dadda8bfcbcd37",
158
"type": "github"
159
},
160
"original": {
161
"owner": "NixOS",
162
+
"ref": "nixos-25.05",
163
"repo": "nixpkgs",
164
"type": "github"
165
}
···
194
"nixpkgs": "nixpkgs",
195
"nixpkgs-master": "nixpkgs-master",
196
"nixpkgs-stable": "nixpkgs-stable",
197
+
"prompt": "prompt"
198
}
199
},
200
"systems": {
···
209
"original": {
210
"owner": "nix-systems",
211
"repo": "default",
212
"type": "github"
213
}
214
}
+4
-10
flake.nix
+4
-10
flake.nix
···
3
4
inputs = {
5
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
-
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
7
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
8
9
···
15
};
16
17
darwin = {
18
-
url = "github:lnl7/nix-darwin/master";
19
-
inputs.nixpkgs.follows = "nixpkgs";
20
};
21
22
prompt = {
···
29
url = "github:MercuryTechnologies/nix-your-shell";
30
inputs.nixpkgs.follows = "nixpkgs";
31
};
32
-
33
-
zed = {
34
-
url = "github:zed-industries/zed";
35
-
inputs.nixpkgs.follows = "nixpkgs";
36
-
};
37
};
38
39
outputs =
···
44
, nix-your-shell
45
, home-manager
46
, prompt
47
-
, # zed,
48
-
darwin
49
, ...
50
}@inputs:
51
···
3
4
inputs = {
5
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
+
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
7
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
8
9
···
15
};
16
17
darwin = {
18
+
url = "github:lnl7/nix-darwin/nix-darwin-25.05";
19
+
inputs.nixpkgs.follows = "nixpkgs-stable";
20
};
21
22
prompt = {
···
29
url = "github:MercuryTechnologies/nix-your-shell";
30
inputs.nixpkgs.follows = "nixpkgs";
31
};
32
};
33
34
outputs =
···
39
, nix-your-shell
40
, home-manager
41
, prompt
42
+
, darwin
43
, ...
44
}@inputs:
45
+5
-7
hosts/kvothe/configuration.nix
+5
-7
hosts/kvothe/configuration.nix
···
9
fish.enable = true;
10
};
11
12
-
services = {
13
-
tailscale = {
14
-
enable = true;
15
-
};
16
-
};
17
-
18
environment = {
19
variables = {
20
EDITOR = "nvim";
···
82
cleanup = "uninstall";
83
upgrade = true;
84
};
85
casks = [
86
"orion"
87
"karabiner-elements"
88
"halloy"
89
-
"zed"
90
"raycast"
91
"signal@beta"
92
"zen"
93
];
94
};
95
}
···
9
fish.enable = true;
10
};
11
12
environment = {
13
variables = {
14
EDITOR = "nvim";
···
76
cleanup = "uninstall";
77
upgrade = true;
78
};
79
+
masApps = {
80
+
"Tailscale" = 1475387142;
81
+
};
82
casks = [
83
"orion"
84
"karabiner-elements"
85
"halloy"
86
"raycast"
87
"signal@beta"
88
"zen"
89
+
"ghostty"
90
+
"zed"
91
];
92
};
93
}
+1
programs/common.nix
+1
programs/common.nix
-51
programs/ghostty.nix
-51
programs/ghostty.nix
···
1
-
{ config
2
-
, pkgs
3
-
, lib
4
-
, ...
5
-
}:
6
-
7
-
{
8
-
programs.ghostty = {
9
-
enable = true;
10
-
enableFishIntegration = true;
11
-
settings = {
12
-
term = "xterm-256color";
13
-
font-family = "SF Mono";
14
-
font-size = 12.0;
15
-
window-padding-x = 10;
16
-
window-padding-y = 10;
17
-
window-padding-balance = true;
18
-
window-theme = "ghostty";
19
-
theme = "icy";
20
-
adjust-cell-height = 10;
21
-
};
22
-
23
-
themes = {
24
-
icy = {
25
-
background = "f4f4f4";
26
-
foreground = "676767";
27
-
cursor-color = "676767"; # Fallback to foreground
28
-
selection-background = "aaaaaa";
29
-
selection-foreground = "525252";
30
-
palette = [
31
-
"0=f4f4f4" # Black (Normal)
32
-
"1=db7070" # Red (Normal)
33
-
"2=7c9f4b" # Green (Normal)
34
-
"3=d69822" # Yellow (Normal)
35
-
"4=6587bf" # Blue (Normal)
36
-
"5=b870ce" # Magenta (Normal)
37
-
"6=509c93" # Cyan (Normal)
38
-
"7=676767" # White (Normal)
39
-
"8=aaaaaa" # Black (Bright)
40
-
"9=c66666" # Red (Bright)
41
-
"10=6d8b42" # Green (Bright)
42
-
"11=e7e7e7" # Yellow (Bright)
43
-
"12=8a8a8a" # Blue (Bright)
44
-
"13=a262b5" # Magenta (Bright)
45
-
"14=43827b" # Cyan (Bright)
46
-
"15=525252" # White (Bright)
47
-
];
48
-
};
49
-
};
50
-
};
51
-
}
···
+69
programs/ghostty/config.nix
+69
programs/ghostty/config.nix
···
···
1
+
{ pkgs, ... }:
2
+
{
3
+
settings = {
4
+
term = "xterm-256color";
5
+
font-family = "SF Mono";
6
+
font-size = 12.0;
7
+
window-padding-x = 10;
8
+
window-padding-y = 10;
9
+
window-padding-balance = true;
10
+
window-theme = "ghostty";
11
+
theme = "light:icy_light,dark:icy_dusk";
12
+
adjust-cell-height = 10;
13
+
macos-option-as-alt = "left";
14
+
};
15
+
16
+
themes = {
17
+
icy_dusk = {
18
+
background = "100f0f";
19
+
foreground = "fff6e3";
20
+
cursor-color = "509c93";
21
+
selection-background = "509c93";
22
+
selection-foreground = "fff6e3";
23
+
palette = [
24
+
"0=2a261f" # Black (Normal)
25
+
"1=db7070" # Red (Normal)
26
+
"2=7c9f4b" # Green (Normal)
27
+
"3=d69822" # Yellow (Normal)
28
+
"4=509c93" # Blue (Normal)
29
+
"5=b870ce" # Magenta (Normal)
30
+
"6=509c93" # Cyan (Normal)
31
+
"7=fff6e3" # White (Normal)
32
+
"8=4a443d" # Black (Bright)
33
+
"9=c66666" # Red (Bright)
34
+
"10=6d8b42" # Green (Bright)
35
+
"11=4a443d" # Yellow (Bright)
36
+
"12=6b635a" # Blue (Bright)
37
+
"13=a262b5" # Magenta (Bright)
38
+
"14=43827b" # Cyan (Bright)
39
+
"15=fff9eb" # White (Bright)
40
+
];
41
+
};
42
+
43
+
icy_light = {
44
+
background = "fffdf5";
45
+
foreground = "4a443d";
46
+
cursor-color = "509c93";
47
+
selection-background = "fceccc";
48
+
selection-foreground = "4a443d";
49
+
palette = [
50
+
"0=4a443d" # Black (Normal)
51
+
"1=db7070" # Red (Normal)
52
+
"2=7c9f4b" # Green (Normal)
53
+
"3=d69822" # Yellow (Normal)
54
+
"4=6587bf" # Blue (Normal)
55
+
"5=b870ce" # Magenta (Normal)
56
+
"6=509c93" # Cyan (Normal)
57
+
"7=fffdf5" # White (Normal)
58
+
"8=776e63" # Black (Bright)
59
+
"9=c66666" # Red (Bright)
60
+
"10=6d8b42" # Green (Bright)
61
+
"11=d8cbbe" # Yellow (Bright)
62
+
"12=6587bf" # Blue (Bright)
63
+
"13=a262b5" # Magenta (Bright)
64
+
"14=43827b" # Cyan (Bright)
65
+
"15=2a261f" # White (Bright)
66
+
];
67
+
};
68
+
};
69
+
}
+33
programs/ghostty/default.nix
+33
programs/ghostty/default.nix
···
···
1
+
{ config
2
+
, pkgs
3
+
, lib
4
+
, ...
5
+
}:
6
+
7
+
let
8
+
config = import ./config.nix { inherit pkgs; };
9
+
keyValue = pkgs.formats.keyValue {
10
+
listsAsDuplicateKeys = true;
11
+
mkKeyValue = lib.generators.mkKeyValueDefault { } " = ";
12
+
};
13
+
14
+
isLinux = pkgs.stdenv.isLinux;
15
+
isDarwin = pkgs.stdenv.isDarwin;
16
+
in
17
+
{
18
+
programs.ghostty = lib.mkIf isLinux {
19
+
enable = true;
20
+
enableFishIntegration = true;
21
+
settings = config.settings;
22
+
themes = config.themes;
23
+
};
24
+
25
+
home.file = lib.mkIf isDarwin {
26
+
".config/ghostty/config".source =
27
+
keyValue.generate "ghostty-config" config.settings;
28
+
".config/ghostty/themes/icy_light".source =
29
+
keyValue.generate "ghostty-icy_light-theme" config.themes.icy_light;
30
+
".config/ghostty/themes/icy_dusk".source =
31
+
keyValue.generate "ghostty-icy_dusk-theme" config.themes.icy_dusk;
32
+
};
33
+
}
+3
programs/ssh.nix
+3
programs/ssh.nix
+5
-5
programs/tmux.nix
+5
-5
programs/tmux.nix
···
57
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy"
58
bind-key -T copy-mode-vi v send-keys -X begin-selection
59
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy"
60
-
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle
61
bind P paste-buffer
62
63
# pop-up pane to open urls
···
79
set -g status-justify right
80
set -g status-right ""
81
set -g status-left ""
82
-
set -g status-style "bg=colour0"
83
-
set -ag status-style "fg=colour7"
84
85
set -g window-status-current-format "#[fg=colour15] #W"
86
set -g window-status-format "#[fg=colour8] #W"
···
88
set -g status-left-length 100
89
90
# dim inactive pane
91
-
set -g window-style 'fg=color8,bg=default'
92
-
set -g window-active-style 'fg=color7,bg=default'
93
94
set -g default-terminal "xterm-256color"
95
set -ga terminal-overrides ',xterm-256color:Tc'
···
57
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy"
58
bind-key -T copy-mode-vi v send-keys -X begin-selection
59
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy"
60
+
bind-key -T copy-mode-vi r send-keys -X rectangle-togglost
61
bind P paste-buffer
62
63
# pop-up pane to open urls
···
79
set -g status-justify right
80
set -g status-right ""
81
set -g status-left ""
82
+
set -g status-style "bg=color7"
83
+
set -ag status-style "fg=color0"
84
85
set -g window-status-current-format "#[fg=colour15] #W"
86
set -g window-status-format "#[fg=colour8] #W"
···
88
set -g status-left-length 100
89
90
# dim inactive pane
91
+
# set -g window-style 'fg=color8,bg=default'
92
+
# set -g window-active-style 'fg=color7,bg=default'
93
94
set -g default-terminal "xterm-256color"
95
set -ga terminal-overrides ',xterm-256color:Tc'
+3
-4
programs/zed/settings.nix
+3
-4
programs/zed/settings.nix