tangled
alpha
login
or
join now
anirudh.fi
/
dotfiles
5
fork
atom
my nix dotfiles
5
fork
atom
overview
issues
pulls
pipelines
nix/darwin: setup kvothe afresh
anirudh.fi
1 year ago
7e4b07cd
b71bc530
verified
This commit was signed with the committer's
known signature
.
anirudh.fi
SSH Key Fingerprint:
SHA256:cz35vdbiWEzCNEfuL9fMC2JVIhtXavXBHrRjv8gxpAk=
+137
-55
9 changed files
expand all
collapse all
unified
split
darwin
hammerspoon
init.lua
home.nix
flake.lock
flake.nix
hosts
kvothe
configuration.nix
nvim
_init.lua
programs
common.nix
ssh.nix
readme
+24
darwin/hammerspoon/init.lua
···
1
1
+
local function pressFn(mods, key)
2
2
+
if key == nil then
3
3
+
key = mods
4
4
+
mods = {}
5
5
+
end
6
6
+
7
7
+
return function() hs.eventtap.keyStroke(mods, key, 1000) end
8
8
+
end
9
9
+
10
10
+
local function remap(mods, key, pressFn)
11
11
+
hs.hotkey.bind(mods, key, pressFn, nil, pressFn)
12
12
+
end
13
13
+
14
14
+
remap({'ctrl'}, 'd', pressFn('pagedown'))
15
15
+
remap({'ctrl'}, 'u', pressFn('pageup'))
16
16
+
17
17
+
remap({'ctrl', 'shift'}, 'd', pressFn({'shift'}, 'pagedown'))
18
18
+
remap({'ctrl', 'shift'}, 'u', pressFn({'shift'}, 'pageup'))
19
19
+
20
20
+
remap({'ctrl'}, 'y', pressFn('left'))
21
21
+
remap({'ctrl'}, 'n', pressFn('down'))
22
22
+
remap({'ctrl'}, 'e', pressFn('up'))
23
23
+
remap({'ctrl'}, 'o', pressFn('right'))
24
24
+
+8
darwin/home.nix
···
22
22
};
23
23
};
24
24
25
25
+
home.file.".hammerspoon" = {
26
26
+
source = ./hammerspoon;
27
27
+
recursive = true;
28
28
+
};
29
29
+
25
30
home.packages = with pkgs; [
26
31
# prompt
27
32
tmux
···
36
41
docker-buildx
37
42
pinentry_mac
38
43
kubectl
44
44
+
45
45
+
signal-desktop
46
46
+
raycast
39
47
40
48
go
41
49
gopls
+18
-18
flake.lock
···
59
59
]
60
60
},
61
61
"locked": {
62
62
-
"lastModified": 1738743987,
63
63
-
"narHash": "sha256-O3bnAfsObto6l2tQOmQlrO6Z2kD6yKwOWfs7pA0CpOc=",
62
62
+
"lastModified": 1740755725,
63
63
+
"narHash": "sha256-amZbqP84H/ApugaT+TADXTB3NbjkVHI9Vac1saIk0kE=",
64
64
"owner": "lnl7",
65
65
"repo": "nix-darwin",
66
66
-
"rev": "ae406c04577ff9a64087018c79b4fdc02468c87c",
66
66
+
"rev": "5d6e0851b60508cffd66b4a6982440a40720338d",
67
67
"type": "github"
68
68
},
69
69
"original": {
···
95
95
]
96
96
},
97
97
"locked": {
98
98
-
"lastModified": 1738841109,
99
99
-
"narHash": "sha256-sEgE3nifaRU5gfAx33ds0tx/j+qM0/5/bHopv/w6c0c=",
98
98
+
"lastModified": 1740699498,
99
99
+
"narHash": "sha256-r9hkKzX99CGiP1ZqH0e+SWKK4CMsRNRLyotuwrUjhTI=",
100
100
"owner": "nix-community",
101
101
"repo": "home-manager",
102
102
-
"rev": "f99c704fe3a4cf8d72b2d568ec80bc38be1a9407",
102
102
+
"rev": "b71edac7a3167026aabea82a54d08b1794088c21",
103
103
"type": "github"
104
104
},
105
105
"original": {
···
133
133
},
134
134
"nixos-hardware": {
135
135
"locked": {
136
136
-
"lastModified": 1738816619,
137
137
-
"narHash": "sha256-5yRlg48XmpcX5b5HesdGMOte+YuCy9rzQkJz+imcu6I=",
136
136
+
"lastModified": 1740646007,
137
137
+
"narHash": "sha256-dMReDQobS3kqoiUCQIYI9c0imPXRZnBubX20yX/G5LE=",
138
138
"owner": "nixos",
139
139
"repo": "nixos-hardware",
140
140
-
"rev": "2eccff41bab80839b1d25b303b53d339fbb07087",
140
140
+
"rev": "009b764ac98a3602d41fc68072eeec5d24fc0e49",
141
141
"type": "github"
142
142
},
143
143
"original": {
···
148
148
},
149
149
"nixpkgs": {
150
150
"locked": {
151
151
-
"lastModified": 1738680400,
152
152
-
"narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
151
151
+
"lastModified": 1740560979,
152
152
+
"narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=",
153
153
"owner": "NixOS",
154
154
"repo": "nixpkgs",
155
155
-
"rev": "799ba5bffed04ced7067a91798353d360788b30d",
155
155
+
"rev": "5135c59491985879812717f4c9fea69604e7f26f",
156
156
"type": "github"
157
157
},
158
158
"original": {
···
164
164
},
165
165
"nixpkgs-master": {
166
166
"locked": {
167
167
-
"lastModified": 1738839627,
168
168
-
"narHash": "sha256-RerTWFfO7HJlDnxwJR+Wt9UWo8RYXisOUqHJyU1SdxM=",
167
167
+
"lastModified": 1740777173,
168
168
+
"narHash": "sha256-ARRPHieKOjlLigLL9/dYjoRv7Q9QLfgO7aPoq23Rgfo=",
169
169
"owner": "NixOS",
170
170
"repo": "nixpkgs",
171
171
-
"rev": "16c225539220d31bee2f5696b22853504452708f",
171
171
+
"rev": "58af30abcdaa77eca425cac83b7e544e7502bf81",
172
172
"type": "github"
173
173
},
174
174
"original": {
···
257
257
"rust-overlay": "rust-overlay"
258
258
},
259
259
"locked": {
260
260
-
"lastModified": 1738836742,
261
261
-
"narHash": "sha256-Ck3lkhPEsWo2HgNIiG26wTpY7NASwsufwT/Hr2i4Ax8=",
260
260
+
"lastModified": 1740776523,
261
261
+
"narHash": "sha256-+47hkKLL5jntUmManU364Gd2lv3JzVoZc/Z8xFoOfBg=",
262
262
"owner": "zed-industries",
263
263
"repo": "zed",
264
264
-
"rev": "b4d8b1be3f1eb2d1eea4bd9585affbd437986de8",
264
264
+
"rev": "71866d6314674819a0e42df53a4c39f050639720",
265
265
"type": "github"
266
266
},
267
267
"original": {
+1
-1
flake.nix
···
67
67
_module.args.self = self;
68
68
nixpkgs.overlays = [
69
69
nix-your-shell.overlays.default
70
70
-
prompt.overlay
70
70
+
# prompt.overlay
71
71
];
72
72
}
73
73
home-manager.darwinModules.home-manager
+83
-32
hosts/kvothe/configuration.nix
···
1
1
{ self, config, pkgs, lib, ... }:
2
2
3
3
{
4
4
-
programs.bash.enable = true;
4
4
+
5
5
+
nixpkgs.config.allowUnfree = true;
6
6
+
7
7
+
programs = {
8
8
+
bash.enable = true;
9
9
+
fish.enable = true;
10
10
+
};
11
11
+
12
12
+
services = {
13
13
+
tailscale = {
14
14
+
enable = true;
15
15
+
};
16
16
+
};
17
17
+
5
18
environment = {
6
19
shells = [ pkgs.bash ];
7
20
};
8
21
9
9
-
22
22
+
users.knownUsers = [ "icy" ];
10
23
users.users.icy = {
11
24
name = "icy";
12
25
home = "/Users/icy";
26
26
+
uid = 501;
27
27
+
shell = pkgs.fish;
13
28
};
14
29
15
15
-
services.nix-daemon.enable = true;
16
16
-
security.pam.enableSudoTouchIdAuth = true;
17
17
-
18
18
-
system.stateVersion = 5;
30
30
+
networking = {
31
31
+
hostName = "kvothe";
32
32
+
localHostName = "kvothe";
33
33
+
dns = [
34
34
+
"100.100.100.100"
35
35
+
];
36
36
+
knownNetworkServices = [
37
37
+
"Thunderbolt Bridge"
38
38
+
"Wi-Fi"
39
39
+
];
40
40
+
};
19
41
20
20
-
system.activationScripts.applications.text = pkgs.lib.mkForce (
21
21
-
# ''
22
22
-
# echo "setting up ~/Applications..." >&2
23
23
-
# rm -rf ~/Applications/Nix\ Apps
24
24
-
# mkdir -p ~/Applications/Nix\ Apps
25
25
-
# for app in $(find ${config.system.build.applications}/Applications -maxdepth 1 -type l); do
26
26
-
# src="$(/usr/bin/stat -f%Y "$app")"
27
27
-
# cp -r "$src" ~/Applications/Nix\ Apps
28
28
-
# done
29
29
-
# ''
42
42
+
nix.enable = false;
43
43
+
44
44
+
security.pam.services.sudo_local.touchIdAuth = true;
45
45
+
46
46
+
system = {
47
47
+
activationScripts.applications.text = pkgs.lib.mkForce (
48
48
+
# ''
49
49
+
# echo "setting up ~/Applications..." >&2
50
50
+
# rm -rf ~/Applications/Nix\ Apps
51
51
+
# mkdir -p ~/Applications/Nix\ Apps
52
52
+
# for app in $(find ${config.system.build.applications}/Applications -maxdepth 1 -type l); do
53
53
+
# src="$(/usr/bin/stat -f%Y "$app")"
54
54
+
# cp -r "$src" ~/Applications/Nix\ Apps
55
55
+
# done
56
56
+
# ''
30
57
31
31
-
''
32
32
-
echo "setting up /Applications..." >&2
33
33
-
rm -rf /Applications/Nix\ Apps
34
34
-
mkdir -p /Applications/Nix\ Apps
35
35
-
find ${
58
58
+
''
59
59
+
echo "setting up /Applications..." >&2
60
60
+
rm -rf /Applications/Nix\ Apps
61
61
+
mkdir -p /Applications/Nix\ Apps
62
62
+
find ${
36
63
pkgs.buildEnv {
37
37
-
name = "system-applications";
38
38
-
paths = config.environment.systemPackages;
39
39
-
pathsToLink = "/Applications";
64
64
+
name = "system-applications";
65
65
+
paths = config.environment.systemPackages;
66
66
+
pathsToLink = "/Applications";
67
67
+
}
68
68
+
}/Applications -maxdepth 1 -type l -exec readlink '{}' + |
69
69
+
while read -r src; do
70
70
+
app_name=$(basename "$src")
71
71
+
echo "copying $src" >&2
72
72
+
${pkgs.mkalias}/bin/mkalias "$src" "/Applications/Nix Apps/$app_name"
73
73
+
done
74
74
+
''
75
75
+
);
76
76
+
77
77
+
78
78
+
keyboard = {
79
79
+
enableKeyMapping = true;
80
80
+
userKeyMapping = [
81
81
+
{
82
82
+
HIDKeyboardModifierMappingSrc = 30064771129;
83
83
+
HIDKeyboardModifierMappingDst = 30064771181;
40
84
}
41
41
-
}/Applications -maxdepth 1 -type l -exec readlink '{}' + |
42
42
-
while read -r src; do
43
43
-
app_name=$(basename "$src")
44
44
-
echo "copying $src" >&2
45
45
-
${pkgs.mkalias}/bin/mkalias "$src" "/Applications/Nix Apps/$app_name"
46
46
-
done
47
47
-
''
48
48
-
);
85
85
+
];
86
86
+
};
87
87
+
88
88
+
stateVersion = 6;
89
89
+
};
90
90
+
91
91
+
homebrew = {
92
92
+
enable = true;
93
93
+
onActivation = {
94
94
+
autoUpdate = true;
95
95
+
cleanup = "uninstall";
96
96
+
upgrade = true;
97
97
+
};
98
98
+
casks = [ "orion" ];
99
99
+
};
49
100
}
+1
-1
nvim/_init.lua
···
1
1
-
-- loaded by home-manager; see: nix/programs/neovim.nix
1
1
+
2
2
3
3
-- TODO: ref: https://github.com/neovim/neovim/pull/15436
4
4
-- require 'impatient'
-1
programs/common.nix
···
16
16
./alacritty.nix
17
17
./fish.nix
18
18
./zed/default.nix
19
19
-
# ./ghostty.nix
20
19
];
21
20
22
21
programs = {
+1
-1
programs/ssh.nix
···
10
10
"*" = {
11
11
serverAliveInterval = 180;
12
12
serverAliveCountMax = 3;
13
13
-
identityFile = [ "~/.ssh/id_ed25519" "~/.ssh/upcloud" ];
13
13
+
identityFile = [ "~/.ssh/id_ed25519" ];
14
14
};
15
15
"github.com" = {
16
16
user = "git";
+1
-1
readme
···
8
8
NixOS, running GNOME.
9
9
10
10
• kvothe: MacBook Pro 14 (M1 Pro)
11
11
-
macOS 14.0, Sonoma using nix-darwin.
11
11
+
macOS 15.0 Sequoia, using nix-darwin.
12
12
13
13
Homelab cluster:
14
14
• sini: Dell OptiPlex 3040