Compare commits

...

182 Commits

Author SHA1 Message Date
1238fa76db wyoming 2026-01-22 13:00:27 -06:00
58e0b82520 wyoming 2026-01-22 12:54:52 -06:00
b4bac11cf9 option 2026-01-22 12:50:44 -06:00
bb45b7b08a option 2026-01-22 12:49:45 -06:00
9a07fe0d59 proper ssh port 2026-01-22 12:46:55 -06:00
5c8ebb84bb proper ssh port 2026-01-22 12:15:03 -06:00
6dfacb91da proper ssh port 2026-01-22 12:10:02 -06:00
128a560bb0 use ssh for submodules 2026-01-22 10:20:51 -06:00
86fbc59bcf virtual machines 2026-01-22 09:18:06 -06:00
82e15df890 next step 2026-01-22 09:15:41 -06:00
a60a5b738b use recent packages 2026-01-21 22:23:00 -06:00
191a54670e option 2026-01-21 22:16:15 -06:00
7949acb8f0 option 2026-01-21 21:58:19 -06:00
11e881b1cc import 2026-01-21 21:55:42 -06:00
2223acef57 inputs 2026-01-21 21:52:29 -06:00
b1d54ce420 import 2026-01-21 21:50:20 -06:00
d3c63aa684 import 2026-01-21 21:41:17 -06:00
dac6771f58 import 2026-01-21 21:33:52 -06:00
cf784f3847 inputs 2026-01-21 18:49:59 -06:00
e9c4339640 inputs 2026-01-21 17:55:17 -06:00
386c4d6561 submodules should use https 2026-01-21 17:44:50 -06:00
66171880bc submodules should use https 2026-01-21 17:43:55 -06:00
65430099bf submodules should use https 2026-01-21 17:40:57 -06:00
a65cfacb79 Revert "submodules should use https"
This reverts commit c6a21aee85.
2026-01-21 17:37:32 -06:00
c6a21aee85 submodules should use https 2026-01-21 17:30:50 -06:00
514e4864ca options 2026-01-21 16:30:18 -06:00
69d16e38a8 nix-on-droid only goes to 24.05 2026-01-21 12:24:27 -06:00
e86a839bd7 rename options 2026-01-21 09:42:51 -06:00
65f878b20d prepare android 2026-01-21 09:27:44 -06:00
b893475db6 prepare android 2026-01-21 09:22:22 -06:00
1ada91d5ef reorganize 2026-01-20 17:34:34 -06:00
42bf08084e reorganize and fix searxng 2026-01-20 17:30:56 -06:00
50d192c809 reorganize 2026-01-20 13:34:12 -06:00
c028bad2a6 fix portainer domain 2026-01-20 12:44:01 -06:00
9b218f88fa fix traefik docker 2026-01-20 12:34:45 -06:00
276823d2aa fix traefik docker 2026-01-20 11:53:31 -06:00
ab47a1ea52 fix traefik docker 2026-01-20 11:48:40 -06:00
4a7615b50c fix traefik docker 2026-01-20 11:40:43 -06:00
ea37cbe865 no error 2026-01-20 11:17:08 -06:00
8cc337ca0e no error 2026-01-20 11:16:46 -06:00
f99cb4f761 try docker provider for traefik 2026-01-20 11:15:55 -06:00
6abef03321 networking 2026-01-19 19:46:45 -06:00
f584fb2e32 networking 2026-01-19 19:40:29 -06:00
b7763031dd networking 2026-01-19 19:36:09 -06:00
761624c21c networking 2026-01-19 17:53:14 -06:00
43d87cb6b3 networking 2026-01-19 17:42:51 -06:00
be310b9ae7 docker network 2026-01-19 17:25:19 -06:00
39fb19f62e setup internal services 2026-01-19 16:06:23 -06:00
f7041607d7 try 2026-01-19 11:10:07 -06:00
6ef3081bd1 try 2026-01-19 10:46:19 -06:00
c69e8ed0ef help 2026-01-19 10:35:43 -06:00
9e3023c26b help 2026-01-19 10:33:23 -06:00
3a6c6673eb help 2026-01-19 10:08:09 -06:00
c6baa8fc5b try pihole network 2026-01-19 09:13:22 -06:00
9a89b1ee6a try pihole network 2026-01-19 09:10:54 -06:00
eda60a7fec try pihole network 2026-01-19 08:49:42 -06:00
e69f8348be try pihole network 2026-01-19 08:42:11 -06:00
23b4035da1 try pihole network 2026-01-19 01:09:51 -06:00
02427aca71 try netbird + pihole 2026-01-19 00:42:13 -06:00
03274e6e46 try netbird + pihole 2026-01-19 00:35:11 -06:00
bf994f7e13 try compartmental traefik 2026-01-18 23:59:14 -06:00
3696bab033 try compartmental traefik 2026-01-18 23:16:54 -06:00
ea2a03037a try compartmental traefik 2026-01-18 23:14:32 -06:00
0947941c11 dns trouble 2026-01-18 22:22:48 -06:00
c48ecab2bd dns trouble 2026-01-18 22:11:32 -06:00
55b1cae63b set pihole as sole dns 2026-01-18 21:34:28 -06:00
76a072d274 try pihole as sole dns 2026-01-18 19:41:19 -06:00
346907fce4 try pihole as sole dns 2026-01-18 18:58:59 -06:00
86810b6105 fix remote build 2026-01-18 18:27:02 -06:00
eba2b6e52f fix remote build 2026-01-18 18:23:45 -06:00
96e4476934 fix remote build 2026-01-18 18:22:40 -06:00
560f36b18e packages 2026-01-18 17:22:49 -06:00
0c9d45ad39 packages 2026-01-18 17:17:23 -06:00
e39eeac850 packages 2026-01-18 17:14:48 -06:00
46cc39c91f options 2026-01-18 17:11:03 -06:00
9f7b03679a options 2026-01-18 17:10:23 -06:00
96ab25c6ad move options 2026-01-18 17:08:05 -06:00
d530844886 docker ollama tune 2026-01-18 14:34:43 -06:00
8bb52d7df6 docker ollama tune 2026-01-18 14:31:50 -06:00
05d4280ad6 docker ollama debug 2026-01-18 14:17:46 -06:00
90b99dbf19 docker ollama debug 2026-01-18 14:13:22 -06:00
f96f7182c4 docker ollama debug 2026-01-18 14:08:35 -06:00
bd8b5f1327 docker perms 2026-01-18 13:40:15 -06:00
d13b59e7ac docker ollama 2026-01-18 13:34:23 -06:00
69b47de1fc docker pihole debug 2026-01-18 12:42:14 -06:00
06cb547197 docker pihole debug 2026-01-18 12:32:47 -06:00
f0ec952442 docker pihole enable 2026-01-18 12:23:46 -06:00
2fab28204d docker pihole 2026-01-18 12:21:50 -06:00
9b32b8a6db option 2026-01-18 11:01:24 -06:00
71e6fbcef4 spellcheck 2026-01-18 10:57:51 -06:00
1b140efc19 mkIf nonsense 2026-01-18 10:57:03 -06:00
8c21db0a08 try 2026-01-18 10:54:34 -06:00
d5a7657410 spellcheck 2026-01-18 10:47:22 -06:00
e5b8871d4e try docker 2026-01-18 10:45:33 -06:00
a6808a984e try 2026-01-17 10:24:00 -06:00
e5f6a4bc69 dns 2026-01-17 10:19:35 -06:00
eb857b8d03 timeout 2026-01-17 10:13:32 -06:00
712aaab720 spellcheck 2026-01-17 10:10:47 -06:00
778433b318 try networkd again 2026-01-17 10:08:11 -06:00
7440ef91b4 try preStart 2026-01-16 20:37:49 -06:00
265a526c8b try networkd 2026-01-16 19:15:29 -06:00
6cd5770452 pihole and dots 2026-01-16 18:33:53 -06:00
66d2dde112 try cname 2026-01-16 07:42:43 -06:00
7974a95659 pihole please 2026-01-15 23:37:22 -06:00
8b605d692f pihole please 2026-01-15 23:23:27 -06:00
b911a7931e pihole? 2026-01-15 23:16:49 -06:00
574b2c058b pihole? 2026-01-15 23:11:54 -06:00
f4f69a4a25 pihole? 2026-01-15 23:07:10 -06:00
640c5911f6 ollama env var 2026-01-15 21:20:53 -06:00
be74b8caaf test dns 2026-01-15 21:05:12 -06:00
be199acad3 rewrite colorPrefix 2026-01-15 19:45:55 -06:00
3335542d54 rewrite colorPrefix 2026-01-15 19:39:46 -06:00
e008cd4d89 don't use bs nameservers 2026-01-15 19:23:52 -06:00
4dbffa89c2 help 2026-01-15 19:16:24 -06:00
c89816839a help 2026-01-15 19:06:50 -06:00
b5b1e07f3a option 2026-01-15 18:53:34 -06:00
340ea873ce option 2026-01-15 18:51:43 -06:00
1fa30bdb94 option 2026-01-15 18:49:46 -06:00
f480a1f8c9 lots 2026-01-15 18:47:31 -06:00
fd3f3639bd try 2026-01-14 15:49:11 -06:00
be4f0c5e6b try 2026-01-14 15:28:25 -06:00
46f546a0e0 ssh key 2026-01-12 15:24:08 -06:00
22535fbbaf ollama gpu 2026-01-11 22:25:28 -06:00
10cf6bba46 fix homebox 2026-01-11 21:44:12 -06:00
f07c4ae0d3 fix homebox 2026-01-11 21:02:39 -06:00
c1f8c704b3 fix homebox 2026-01-11 20:43:00 -06:00
0aa7f459dd update machines 2026-01-11 20:32:16 -06:00
15dfb83bb7 propare homebox 2026-01-11 18:08:00 -06:00
6b8a9a2152 propare homebox 2026-01-11 17:45:06 -06:00
482f1b5912 propare homebox 2026-01-11 17:35:19 -06:00
78277afa8a propare homebox 2026-01-11 17:33:24 -06:00
680454c6b2 propare homebox 2026-01-11 17:32:04 -06:00
ec1a12e2a1 propare homebox 2026-01-11 17:24:24 -06:00
960af2d43b propare homebox 2026-01-11 17:19:52 -06:00
a7e636e7a2 propare homebox 2026-01-11 17:18:05 -06:00
099b8e40b2 prepare homebox 2026-01-11 17:15:15 -06:00
32bf3e0bc0 propare homebox 2026-01-11 17:14:29 -06:00
905de63f78 lock 2026-01-11 14:26:13 -06:00
c977f9d3a2 proper branch stuff 2026-01-11 14:24:50 -06:00
bc666ecab5 git tomfoolery 2026-01-11 14:23:31 -06:00
8e0d66eff5 fix file not found stuff? 2026-01-11 14:12:49 -06:00
c657f03912 update machines 2026-01-11 10:20:05 -06:00
2ec608c5ae update machines 2026-01-11 10:12:55 -06:00
6a3a44b2f0 add more opencode models 2026-01-10 23:23:33 -06:00
1c96a54c52 use instruct model for opencode 2026-01-10 21:23:53 -06:00
30d55ebb5a unfree problems 2026-01-10 19:06:55 -06:00
daf0ea1169 update ollama, add magic space, install opencode 2026-01-10 18:58:54 -06:00
bd20e9a29b fix pypr 2026-01-10 11:58:17 -06:00
f8d3994ad9 update hyprland window rules 2026-01-10 10:50:33 -06:00
3b376d7657 update laptop 2026-01-10 10:33:52 -06:00
082f0bdcc5 fix hyprrun 2026-01-10 10:09:29 -06:00
137e3753da no hypr errors 2026-01-10 09:09:03 -06:00
c012163715 fix syntax 2026-01-10 08:58:54 -06:00
be4b7c7d82 fix warning 2026-01-10 08:07:25 -06:00
6c88dcd775 fix warning 2026-01-10 08:02:07 -06:00
a1f0bf30cd stop warning? 2026-01-10 07:56:48 -06:00
873230cfe3 use an option that exists 2026-01-09 20:33:01 -06:00
1bf5944f11 include quickshell for option 2026-01-09 19:53:28 -06:00
ff5e0d6bb2 try uwsm again 2026-01-09 19:47:53 -06:00
795bca39f8 submodules 2026-01-07 12:28:22 -06:00
707e839517 submodules incoming 2026-01-07 10:39:37 -06:00
a9db2c09e7 remove laptop to add as submodule 2026-01-07 10:08:46 -06:00
c657dae471 update scripts 2026-01-06 02:13:40 -06:00
d1237dab12 update syntax 2026-01-06 02:03:50 -06:00
61bcc8776f hyprland error fix 2026-01-06 01:46:52 -06:00
e05dc795b3 re-add nh? 2026-01-06 01:34:58 -06:00
eafa73042a no nh? 2026-01-06 00:56:03 -06:00
e36f899e93 unstable nh? 2026-01-06 00:48:55 -06:00
671b5f92c0 try 2026-01-06 00:19:34 -06:00
4e3d74795b update lock 2026-01-05 20:32:55 -06:00
036969de6e lock 2026-01-05 15:39:45 -06:00
793956deba fix? 2026-01-05 15:38:58 -06:00
f3ecc2cfc6 update 2026-01-05 15:29:15 -06:00
c212117355 defaults 2026-01-05 15:26:12 -06:00
7c61d646a6 may work 2026-01-05 15:20:14 -06:00
ea3c826c63 try 2026-01-05 10:23:29 -06:00
f9eca3ebde fix? 2026-01-05 10:09:18 -06:00
10f8d192fd try 2026-01-05 10:05:47 -06:00
d187ede4f6 lock 2026-01-05 10:03:53 -06:00
2faa4e8618 fixn't 2026-01-05 10:01:16 -06:00
f967055296 prototyping 2026-01-05 09:55:02 -06:00
e665f8e46d fixn't 2026-01-05 09:50:21 -06:00
166 changed files with 4325 additions and 1758 deletions

9
.gitmodules vendored Normal file
View File

@@ -0,0 +1,9 @@
[submodule "machines/homebox"]
path = machines/homebox
url = ssh://gitea@gitea.esotericbytes.com:2222/Blunkall-Technologies/homebox
[submodule "machines/laptop"]
path = machines/laptop
url = ssh://gitea@gitea.esotericbytes.com:2222/Blunkall-Technologies/laptop
[submodule "machines/android"]
path = machines/android
url = ssh://gitea@gitea.esotericbytes.com:2222/Blunkall-Technologies/android

View File

@@ -3,28 +3,6 @@ keys:
- &laptop age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q - &laptop age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q
- &android age12pnf36uqesjmy3e0lythfnpwam3zg5mv8m936fc4jphy4ces2fdqwn0s74 - &android age12pnf36uqesjmy3e0lythfnpwam3zg5mv8m936fc4jphy4ces2fdqwn0s74
creation_rules: creation_rules:
- path_regex: homebox/secrets.yaml$
key_groups:
- age:
- *homebox
- path_regex: laptop/secrets.yaml$
key_groups:
- age:
- *laptop
- path_regex: pi4/secrets.yaml$
key_groups:
- age:
- *laptop
- path_regex: live/secrets.yaml$
key_groups:
- age:
- *laptop
- path_regex: nathan/secrets.yaml$
key_groups:
- age:
- *laptop
- *homebox
- *android
- path_regex: system/secrets.yaml$ - path_regex: system/secrets.yaml$
key_groups: key_groups:
- age: - age:

106
flake.lock generated
View File

@@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765900596, "lastModified": 1767024902,
"narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=", "narHash": "sha256-sMdk6QkMDhIOnvULXKUM8WW8iyi551SWw2i6KQHbrrU=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace", "rev": "b8a0c5ba5a9fbd2c660be7dd98bdde0ff3798556",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -40,11 +40,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766150702, "lastModified": 1768923567,
"narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=", "narHash": "sha256-GVJ0jKsyXLuBzRMXCDY6D5J8wVdwP1DuQmmvYL/Vw/Q=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378", "rev": "00395d188e3594a1507f214a2f15d4ce5c07cb28",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -61,11 +61,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1767153827, "lastModified": 1769054619,
"narHash": "sha256-TWBjaSJ0AAmG/T2XZ9848IW/fBzCOlAqMAvzJH792Jk=", "narHash": "sha256-LCc0gbSgjehdy41Gi1H5WNxEuW9PtRHFVaPXoFzslQU=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "59f10bed3c115555d256720b1a28934c86e78d12", "rev": "6509620630f68dc02ac3e99f15a67760778444ff",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -78,15 +78,15 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1761588595, "lastModified": 1767039857,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra", "owner": "NixOS",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "edolstra", "owner": "NixOS",
"repo": "flake-compat", "repo": "flake-compat",
"type": "github" "type": "github"
} }
@@ -212,16 +212,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763992789, "lastModified": 1768949235,
"narHash": "sha256-WHkdBlw6oyxXIra/vQPYLtqY+3G8dUVZM8bEXk0t8x4=", "narHash": "sha256-TtjKgXyg1lMfh374w5uxutd6Vx2P/hU81aEhTxrO2cg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3", "rev": "75ed713570ca17427119e7e204ab3590cc3bf2a5",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.05", "ref": "release-25.11",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@@ -271,11 +271,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763733840, "lastModified": 1766946335,
"narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", "narHash": "sha256-MRD+Jr2bY11MzNDfenENhiK6pvN+nHygxdHoHbZ1HtE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", "rev": "4af02a3925b454deb1c36603843da528b67ded6c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -301,11 +301,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1767201430, "lastModified": 1769095012,
"narHash": "sha256-4BUM06GqP5YAVnWvxkdeYuweMF6n+oKdxJI5S9TmA1E=", "narHash": "sha256-vx8uFvwLPdrN7E0HgW1nc8+fTbTwcA7jkdwXoba8XUU=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "48a024e0322bbd7c4c88126498ec478444ec4cb2", "rev": "82de66a030e6818ec3d21f49c8cdf9db31eebfa6",
"revCount": 6763, "revCount": 6831,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@@ -349,11 +349,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765643131, "lastModified": 1767023960,
"narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=", "narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-guiutils", "repo": "hyprland-guiutils",
"rev": "e50ae912813bdfa8372d62daf454f48d6df02297", "rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -480,11 +480,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766160771, "lastModified": 1766253372,
"narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=", "narHash": "sha256-1+p4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f", "rev": "51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -534,11 +534,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766253200, "lastModified": 1767473322,
"narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=", "narHash": "sha256-RGOeG+wQHeJ6BKcsSB8r0ZU77g9mDvoQzoTKj2dFHwA=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwire", "repo": "hyprwire",
"rev": "1079777525b30a947c8d657fac158e00ae85de9d", "rev": "d5e7d6b49fe780353c1cf9a1cf39fa8970bd9d11",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -584,11 +584,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1767147099, "lastModified": 1768962252,
"narHash": "sha256-395ehjdAtaqCbKmx+PhKAqnkYLvTtAzq2qzFG9qaGDw=", "narHash": "sha256-HyWOOHcySV8rl36gs4+n0sxPinxpwWOgwXibfFPYeZ0=",
"owner": "Infinidoge", "owner": "Infinidoge",
"repo": "nix-minecraft", "repo": "nix-minecraft",
"rev": "01f571579edd64433f97c4294137fbc366deef4b", "rev": "433cf697394104123e1fd02fa689534ac1733bfa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -599,11 +599,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1766070988, "lastModified": 1767379071,
"narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=", "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c6245e83d836d0433170a16eb185cefe0572f8b8", "rev": "fb7944c166a3b630f177938e478f0378e64ce108",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -630,11 +630,11 @@
}, },
"nixpkgs-us": { "nixpkgs-us": {
"locked": { "locked": {
"lastModified": 1766902085, "lastModified": 1769018530,
"narHash": "sha256-coBu0ONtFzlwwVBzmjacUQwj3G+lybcZ1oeNSQkgC0M=", "narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c0b0e0fddf73fd517c3471e546c0df87a42d53f4", "rev": "88d3861acdd3d2f0e361767018218e51810df8a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -662,16 +662,16 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1767051569, "lastModified": 1768940263,
"narHash": "sha256-0MnuWoN+n1UYaGBIpqpPs9I9ZHW4kynits4mrnh1Pk4=", "narHash": "sha256-sJERJIYTKPFXkoz/gBaBtRKke82h4DkX3BBSsKbfbvI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "40ee5e1944bebdd128f9fbada44faefddfde29bd", "rev": "3ceaaa8bc963ced4d830e06ea2d0863b6490ff03",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-25.05", "ref": "nixos-25.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@@ -783,11 +783,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765911976, "lastModified": 1767281941,
"narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=", "narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "b68b780b69702a090c8bb1b973bab13756cc7a27", "rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -816,11 +816,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766894905, "lastModified": 1768863606,
"narHash": "sha256-pn8AxxfajqyR/Dmr1wnZYdUXHgM3u6z9x0Z1Ijmz2UQ=", "narHash": "sha256-1IHAeS8WtBiEo5XiyJBHOXMzECD6aaIOJmpQKzRRl64=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "61b39c7b657081c2adc91b75dd3ad8a91d6f07a7", "rev": "c7067be8db2c09ab1884de67ef6c4f693973f4a2",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -2,12 +2,12 @@
description = "Nixos config flake"; description = "Nixos config flake";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs-us.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-us.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-25.05"; url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@@ -29,35 +29,36 @@
nix-minecraft.url = "github:Infinidoge/nix-minecraft"; nix-minecraft.url = "github:Infinidoge/nix-minecraft";
#simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05"; #simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.11";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
#nixvim.url = "git+https://gitea.esotericbytes.com/Blunkall-Technologies/Moirai";
nixvim.url = "git+https://gitea.esotericbytes.com/Blunkall-Technologies/Moirai"; nixvim.url = "git+https://gitea.esotericbytes.com/Blunkall-Technologies/Moirai";
self.submodules = true;
}; };
outputs = { self, nixpkgs, home-manager, ... } @ inputs: { outputs = { self, nixpkgs, home-manager, ... } @ inputs: {
profiles = let profiles = let
dir = builtins.readDir ./system/profiles; dir = builtins.readDir ./profiles;
filtered = builtins.filter (x: dir.${x} == "directory") (builtins.attrNames dir); filtered = builtins.filter (x: dir.${x} == "directory") (builtins.attrNames dir);
in (builtins.listToAttrs in (builtins.listToAttrs
(builtins.map (builtins.map
(name: ({ (name: ({
inherit name; inherit name;
value = { ... } @ exputs: { value = { ... }: {
imports = [ imports = [
(import ./system (inputs // exputs)) ./system
(import ./system/profiles/${name} (inputs // exputs)) ./profiles/${name}
]; ];
}; };
})) filtered) })) filtered)
); );
homes = let homes = let
dir = builtins.readDir ./system/users; dir = builtins.readDir ./homes;
filtered = builtins.filter (x: dir.${x} == "directory") (builtins.attrNames dir); filtered = builtins.filter (x: dir.${x} == "directory") (builtins.attrNames dir);
in (builtins.listToAttrs in (builtins.listToAttrs
(builtins.map (builtins.map
@@ -65,10 +66,9 @@
inherit name; inherit name;
value = { ... } @ exputs: { value = { ... } @ exputs: {
imports = [ imports = [ (import ./homes/${name}/home-manager (exputs // inputs)) ];
(./system/users/${name}/home-manager (inputs // exputs))
];
}; };
})) filtered) })) filtered)
); );
@@ -181,5 +181,27 @@
default = self.templates.nixos; default = self.templates.nixos;
}; };
nixosConfigurations = let
dir = builtins.readDir ./machines;
filtered = builtins.filter (x: dir.${x} == "directory" && x != "android") (builtins.attrNames dir);
in (builtins.listToAttrs
(builtins.map
(name: ({
inherit name;
value = nixpkgs.lib.nixosSystem {
specialArgs = inputs;
modules = [
{ sysconfig.host = name; }
./machines/${name}
self.profiles.${name}
];
};
})) filtered)
);
}; };
} }

View File

@@ -4,10 +4,10 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-25.05"; url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };

View File

@@ -0,0 +1,11 @@
keys:
- &homebox age1640eg0pnmkruc89m5xguz0m8fek44fl4tzez6qwuzlz6kmapqewsp8esxd
- &laptop age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q
- &android age12pnf36uqesjmy3e0lythfnpwam3zg5mv8m936fc4jphy4ces2fdqwn0s74
creation_rules:
- path_regex: ^secrets.yaml$
key_groups:
- age:
- *laptop
- *homebox
- *android

View File

@@ -1,11 +1,13 @@
{ config, lib, pkgs, inputs, ... }: { { config, lib, pkgs, inputs, ... }: {
imports = [ imports = let
./programs dir = builtins.readDir ./.;
./services in (builtins.map (x: ./${x}) (builtins.filter
./packages (file: (dir.${file} == "directory"))
./dotfiles (builtins.attrNames dir)
]; )) ++ [
inputs.sops-nix.homeManagerModules.sops
];
options.homeconfig = with lib; { options.homeconfig = with lib; {
@@ -37,7 +39,7 @@
nh.enable = lib.mkDefault true; nh.enable = lib.mkDefault true;
minimal = lib.mkDefault false; minimal = lib.mkDefault false;
hyprland.enable = lib.mkDefault config.homeconfig.graphical && !config.homeconfig.standalone; hyprland.enable = lib.mkDefault config.homeconfig.graphical;
hyprlock.enable = lib.mkDefault config.homeconfig.hyprland.enable; hyprlock.enable = lib.mkDefault config.homeconfig.hyprland.enable;
wal.enable = lib.mkDefault config.homeconfig.graphical; wal.enable = lib.mkDefault config.homeconfig.graphical;
hyprpanel.enable = lib.mkDefault config.homeconfig.hyprland.enable; hyprpanel.enable = lib.mkDefault config.homeconfig.hyprland.enable;
@@ -49,8 +51,6 @@
home.homeDirectory = lib.mkDefault "/home/${config.home.username}"; home.homeDirectory = lib.mkDefault "/home/${config.home.username}";
programs.home-manager.enable = config.homeconfig.standalone;
home.stateVersion = "23.11"; home.stateVersion = "23.11";
home.pointerCursor = lib.mkIf config.homeconfig.graphical { home.pointerCursor = lib.mkIf config.homeconfig.graphical {
@@ -60,7 +60,7 @@
size = 16; size = 16;
}; };
gtk = lib.mkIf config.homeconfig.graphical { gtk = lib.mkIf (config.homeconfig.graphical && config.homeconfig.hyprland.enable) {
enable = true; enable = true;
theme.name = "Tokyonight-Dark"; theme.name = "Tokyonight-Dark";
theme.package = pkgs.tokyonight-gtk-theme; theme.package = pkgs.tokyonight-gtk-theme;
@@ -72,15 +72,8 @@
age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt"; age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
defaultSopsFile = ./secrets.yaml; defaultSopsFile = ./secrets.yaml;
defaultSopsFormat = "yaml"; defaultSopsFormat = "yaml";
};
nix = lib.mkIf config.homeconfig.standalone { #secrets."remoteBuildKey" = {};
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
settings = {
experimental-features = [ "nix-command" "flakes" ];
builders = "ssh://builder x86_64-linux,aarch64-linux /run/secrets/remoteBuildKey 1 1 nixos-test,benchmark,big-parallel,kvm - -";
builders-use-substituters = true;
};
}; };
services.mpris-proxy.enable = true; services.mpris-proxy.enable = true;
@@ -90,17 +83,17 @@
matchBlocks = { matchBlocks = {
"builder" = { "builder" = {
hostname = "blunkall.us"; hostname = "esotericbytes.com";
user = "remote-builder"; user = "remote-builder";
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519"; identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
port = 2222; port = 22;
}; };
"remote" = { "remote" = {
hostname = "blunkall.us"; hostname = "esotericbytes.com";
user = "nathan"; user = "nathan";
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519"; identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
port = 2222; port = 22;
}; };
}; };
}; };

View File

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

Before

Width:  |  Height:  |  Size: 1007 KiB

After

Width:  |  Height:  |  Size: 1007 KiB

View File

Before

Width:  |  Height:  |  Size: 110 MiB

After

Width:  |  Height:  |  Size: 110 MiB

View File

Before

Width:  |  Height:  |  Size: 191 KiB

After

Width:  |  Height:  |  Size: 191 KiB

View File

Before

Width:  |  Height:  |  Size: 874 KiB

After

Width:  |  Height:  |  Size: 874 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

Before

Width:  |  Height:  |  Size: 48 MiB

After

Width:  |  Height:  |  Size: 48 MiB

View File

Before

Width:  |  Height:  |  Size: 203 MiB

After

Width:  |  Height:  |  Size: 203 MiB

View File

Before

Width:  |  Height:  |  Size: 670 KiB

After

Width:  |  Height:  |  Size: 670 KiB

View File

Before

Width:  |  Height:  |  Size: 273 KiB

After

Width:  |  Height:  |  Size: 273 KiB

View File

Before

Width:  |  Height:  |  Size: 140 MiB

After

Width:  |  Height:  |  Size: 140 MiB

View File

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 3.1 MiB

View File

Before

Width:  |  Height:  |  Size: 2.8 MiB

After

Width:  |  Height:  |  Size: 2.8 MiB

View File

Before

Width:  |  Height:  |  Size: 36 MiB

After

Width:  |  Height:  |  Size: 36 MiB

View File

@@ -5,6 +5,7 @@
".config/hyprpanel" = lib.mkIf config.homeconfig.hyprpanel.enable { source = ./hyprpanel; recursive = true; }; ".config/hyprpanel" = lib.mkIf config.homeconfig.hyprpanel.enable { source = ./hyprpanel; recursive = true; };
".config/wal/templates" = lib.mkIf config.homeconfig.wal.enable { source = ./wal/templates; recursive = true; }; ".config/wal/templates" = lib.mkIf config.homeconfig.wal.enable { source = ./wal/templates; recursive = true; };
".config/ohmyposh" = { source = ./ohmyposh; recursive = true; }; ".config/ohmyposh" = { source = ./ohmyposh; recursive = true; };
".config/quickshell" = lib.mkIf config.homeconfig.quickshell.enable { source = ./quickshell; recursive = true; };
"Pictures/Wallpaper" = lib.mkIf config.homeconfig.graphical { source = ./Wallpaper; recursive = true; }; "Pictures/Wallpaper" = lib.mkIf config.homeconfig.graphical { source = ./Wallpaper; recursive = true; };
}; };

View File

@@ -11,6 +11,8 @@
$font = Monospace $font = Monospace
source = ~/.cache/wal/colors-hypr.conf
general { general {
hide_cursor = false hide_cursor = false
} }
@@ -45,9 +47,9 @@ input-field {
outline_thickness = 3 outline_thickness = 3
inner_color = rgba(0, 0, 0, 0.0) # no fill inner_color = rgba(0, 0, 0, 0.0) # no fill
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg outer_color = $color1 $color5 100deg
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg check_color = $color2 $color6 120deg
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg fail_color = $color3 $color7 40deg
font_color = rgb(143, 143, 143) font_color = rgb(143, 143, 143)
fade_on_empty = false fade_on_empty = false

View File

@@ -10,7 +10,7 @@
# # # #
#------------------------------------------------# #------------------------------------------------#
exec-once=onSystemStart exec-once = hyprrun onSystemStart
# Some default env vars. # Some default env vars.
env = XCURSOR_SIZE,16 env = XCURSOR_SIZE,16
@@ -93,11 +93,6 @@ master {
new_status = "master" new_status = "master"
} }
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
misc { misc {
disable_hyprland_logo = false disable_hyprland_logo = false
disable_splash_rendering = true disable_splash_rendering = true
@@ -112,13 +107,11 @@ ecosystem {
# Binds # Binds
$mainMod = ALT $mainMod = ALT
bind = CTRL SHIFT, H, exec, colorPrefix kitty -e 'bash -c "hyprctl binds | less"' bind = $mainMod SHIFT, E, exec, colorPrefix hyprrun kitty
bind = $mainMod SHIFT, E, exec, colorPrefix kitty bind = $mainMod, B, exec, hyprrun firefox
bind = $mainMod, B, exec, firefox bind = $mainMod SHIFT, B, exec, hyprrun firefox --private-window
bind = $mainMod SHIFT, B, exec, firefox --private-window
bind = $mainMod, Q, killactive, bind = $mainMod, Q, killactive,
@@ -126,20 +119,20 @@ bind = $mainMod, Q, killactive,
#bind = $mainMod SHIFT, R, exec, colorPrefix kitty -e _homeRebuild #bind = $mainMod SHIFT, R, exec, colorPrefix kitty -e _homeRebuild
bind = $mainMod, F, exec, thunar bind = $mainMod, F, exec, hyprrun thunar
bind = $mainMod SHIFT, F, fullscreen bind = $mainMod SHIFT, F, fullscreen
bind = $mainMod SHIFT, semicolon, exec, colorPrefix kitty -e lf bind = $mainMod SHIFT, semicolon, exec, colorPrefix hyprrun kitty -e lf
bind = $mainMod, Insert, exec, libreoffice bind = $mainMod, Insert, exec, hyprrun libreoffice
bind = $mainMod, V, togglefloating, bind = $mainMod, V, togglefloating,
bind = $mainMod SHIFT, V, exec, vlc bind = $mainMod SHIFT, V, exec, hyprrun vlc
bind = , Menu, exec, rofi -show drun bind = , Menu, exec, rofi -show drun -show-icons -run-command 'hyprrun {cmd}'
bind = $mainMod, Menu, exec, hyprpanel -q; hyprpanel bind = $mainMod, Menu, exec, hyprrun hyprpanel -q; hyprrun hyprpanel
#bind = $mainMod, P, pseudo, # dwindle #bind = $mainMod, P, pseudo, # dwindle
#bind = $mainMod, Z, togglesplit, # dwindle #bind = $mainMod, Z, togglesplit, # dwindle
@@ -147,34 +140,34 @@ bind = $mainMod, Menu, exec, hyprpanel -q; hyprpanel
bind = $mainMod, N, layoutmsg, rollnext # master bind = $mainMod, N, layoutmsg, rollnext # master
bind = $mainMod, P, layoutmsg, rollprev # master bind = $mainMod, P, layoutmsg, rollprev # master
bind = $mainMod, M, exec, spotify bind = $mainMod, M, exec, hyprrun spotify
bind = $mainMod SHIFT, M, exec, firefox soundcloud.com/you/library bind = $mainMod SHIFT, M, exec, hyprrun firefox soundcloud.com/you/library
bind = $mainMod CTRL, M, exec, colorPrefix kitty -e ncmpcpp -s browser bind = $mainMod CTRL, M, exec, colorPrefix hyprrun kitty -e ncmpcpp -s browser
bind = $mainMod, XF86AudioPlay, exec, mpc load casual bind = $mainMod, XF86AudioPlay, exec, hyprrun mpc load casual
bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioPlay, exec, hyprrun playerctl play-pause
bind = , XF86AudioPause, exec, playerctl pause bind = , XF86AudioPause, exec, hyprrun playerctl pause
bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioNext, exec, hyprrun playerctl next
bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86AudioPrev, exec, hyprrun playerctl previous
bind = , XF86Launch2, exec, steam bind = , XF86Launch2, exec, hyprrun steam
bind = $mainMod, XF86Launch2, exec, prismlauncher bind = $mainMod, XF86Launch2, exec, hyprrun prismlauncher
bind = , XF86Calculator, exec, geogebra bind = , XF86Calculator, exec, hyprrun geogebra
bind = $mainMod SHIFT, Print, exec, firefox localhost:631 bind = $mainMod SHIFT, Print, exec, hyprrun firefox localhost:631
bind = $mainMod, Return, exec, discord --enable-features=UseOzonePlatform --ozone-platform=wayland bind = $mainMod, Return, exec, hyprrun discord --enable-features=UseOzonePlatform --ozone-platform=wayland
bind = $mainMod CTRL, Return, exec, firefox https://discord.com/app bind = $mainMod CTRL, Return, exec, hyprrun firefox https://discord.com/app
bind = , Home, exec, setWallpaper bind = , Home, exec, hyprrun setWallpaper
# Move focus with mainMod + arrow keys # Move focus with mainMod + arrow keys
bind = $mainMod, W, movefocus, u bind = $mainMod, W, movefocus, u
@@ -246,7 +239,7 @@ bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%-
binde = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_SINK@ 10%+ binde = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_SINK@ 10%+
binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_SINK@ 10%- binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_SINK@ 10%-
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle
bind = $mainMod, F9, exec, pavucontrol bind = $mainMod, F9, exec, hyprrun pavucontrol
#screen lock key #screen lock key
#bind = $mainMod, F12, exec, swaylock #bind = $mainMod, F12, exec, swaylock
@@ -264,29 +257,29 @@ bind = $mainMod SHIFT, D, movewindow, r
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod SHIFT, mouse:272, resizewindow bindm = $mainMod SHIFT, mouse:272, resizewindow
$scratchpadsize = size 60% 80% $scratchpadsize = size (monitor_w*0.6) (monitor_h*0.8)
$kitty = class:^(scratchpad-kitty)$ $kitty = ^(scratchpad-kitty)$
windowrulev2 = float, $kitty windowrule = float on, match:class $kitty
windowrulev2 = $scratchpadsize, $kitty windowrule = $scratchpadsize, match:class $kitty
windowrulev2 = workspace special silent, $kitty windowrule = workspace special silent, match:class $kitty
$lf = class:^(scratchpad-lf)$ $lf = ^(scratchpad-lf)$
windowrulev2 = float, $lf windowrule = float on, match:class $lf
windowrulev2 = $scratchpadsize, $lf windowrule = $scratchpadsize, match:class $lf
windowrulev2 = workspace special silent, $lf windowrule = workspace special silent, match:class $lf
$cal = class:^(scratchpad-cal)$ $cal = ^(scratchpad-cal)$
windowrulev2 = float, $cal windowrule = float on, match:class $cal
windowrulev2 = $scratchpadsize, $cal windowrule = $scratchpadsize, match:class $cal
windowrulev2 = workspace special silent, $cal windowrule = workspace special silent, match:class $cal
bind = $mainMod, semicolon, exec, pypr toggle lf bind = $mainMod, semicolon, exec, pypr toggle lf
bind = $mainMod, E, exec, pypr toggle kitty bind = $mainMod, E, exec, pypr toggle kitty
bind = $mainMod, C, exec, pypr toggle calendar bind = $mainMod, C, exec, pypr toggle calendar
bind = CTRL SHIFT, Home, exec, ssh nathan@esotericbytes.com -fL 5900:localhost:5900 sleep 10; vncviewer localhost:5900 -fullscreen bind = CTRL SHIFT, Home, exec, hyprrun ssh nathan@esotericbytes.com -fL 5900:localhost:5900 sleep 10; vncviewer localhost:5900 -fullscreen
bind = CTRL SHIFT, Home, submap, clean bind = CTRL SHIFT, Home, submap, clean

View File

@@ -0,0 +1,112 @@
#:schema https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
version = 2
final_space = true
console_title_template = '{{{{ .Shell }}}} in {{{{ .Folder }}}}'
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'os'
style = 'diamond'
trailing_diamond = ''
background = 'p:c1'
foreground = 'p:c12'
template = ' {{{{ .Icon }}}} '
[[blocks.segments]]
type = 'session'
style = 'diamond'
trailing_diamond = ''
background = 'p:c2'
foreground = 'p:c14'
template = '{{{{ .UserName }}}}@{{{{ .HostName }}}}'
[[blocks.segments]]
type = 'path'
style = 'diamond'
trailing_diamond = ''
background = 'p:c4'
foreground = 'p:c13'
template = '{{{{ .Path }}}}'
[blocks.segments.properties]
style = 'full'
[[blocks]]
type = 'prompt'
overflow = 'hidden'
alignment = 'right'
[[blocks.segments]]
type = 'executiontime'
style = 'diamond'
leading_diamond = ''
background = 'p:c4'
foreground = 'p:c13'
template = '{{{{ .FormattedMs }}}}'
[[blocks.segments]]
type = 'time'
style = 'diamond'
leading_diamond = ''
background = 'p:c2'
foreground = 'p:c14'
[[blocks.segments]]
type = 'shell'
style = 'diamond'
leading_diamond = ''
background = 'p:c1'
foreground = 'p:c12'
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'text'
style = 'plain'
background = 'transparent'
foreground_templates = [
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
]
template = "{{{{ if gt .Code 0 }}}}!❭ {{{{else}}}}❭ {{{{end}}}}"
[transient_prompt]
foreground_templates = [
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
]
background = 'transparent'
template = "{{{{ if gt .Code 0 }}}}!❭ {{{{else}}}}❭ {{{{end}}}}"
[secondary_prompt]
background = 'transparent'
forground = 'p:c14'
template = "❭❭ "
[palette]
c0 = "{color0}"
c1 = "{color1}"
c2 = "{color2}"
c3 = "{color3}"
c4 = "{color4}"
c5 = "{color5}"
c6 = "{color6}"
c7 = "{color7}"
c8 = "{color8}"
c9 = "{color9}"
c10 = "{color10}"
c11 = "{color11}"
c12 = "{color12}"
c13 = "{color13}"
c14 = "{color14}"
c15 = "{color15}"

View File

@@ -0,0 +1,119 @@
{ config, lib, pkgs, inputs, ... }: let
system = "x86_64-linux";
pkgs-us = import inputs.nixpkgs-us {
inherit system;
config.allowUnfree = true;
};
in {
imports = [
./scripts
];
options.homeconfig.minimal = with lib; options.mkOption {
type = with types; bool;
default = false;
};
config = with lib; mkMerge [
{
home.packages = with pkgs; [
kjv
openssh
sops
dig
toybox
btop
zip
unzip
rsync
curl
(python313.withPackages (ps: with ps; [
gpustat
numpy
matplotlib
scipy
pandas
pyaudio
pyusb
debugpy
requests
]))
];
}
(mkIf config.homeconfig.graphical {
home.packages = with pkgs; [
grim
slurp
xfce.thunar
wl-clipboard
blueberry
];
})
(mkIf (!config.homeconfig.minimal) {
home.packages = with pkgs; [
cava
android-tools
neovim-remote
zulu
fastfetch
ncmpcpp
playerctl
mpc
ffmpeg
];
})
(mkIf (!config.homeconfig.minimal && config.homeconfig.graphical) {
nixpkgs.config = {
allowUnfree = true;
};
home.packages = with pkgs; [
handbrake
quickemu
bottles
pkgs-us.runapp
brightnessctl
libdbusmenu-gtk3
lmms
#unfree {
geogebra
spotify
discord
#}
rustdesk-flutter
mpv
vlc
pavucontrol
rpi-imager
tigervnc
keepassxc
#3D modeling/printing
blender
freecad-wayland
cura-appimage
#productivity
libreoffice
#games
prismlauncher
];
})
];
}

View File

@@ -1,4 +1,13 @@
{ config, lib, pkgs, ... }: { { config, lib, pkgs, inputs, ... }: let
system = "x86_64-linux";
pkgs-us = import inputs.nixpkgs-us {
inherit system;
config.allowUnfree = true;
};
in {
options = { options = {
homeconfig.scripts.enable = lib.options.mkOption { homeconfig.scripts.enable = lib.options.mkOption {
@@ -7,16 +16,28 @@
}; };
}; };
config = lib.mkIf config.homeconfig.scripts.enable { config = lib.mkMerge [
(lib.mkIf (config.homeconfig.hyprland.enable && config.homeconfig.scripts.enable) {
home.packages = [
(pkgs.writeShellScriptBin "hyprrun" ''
${pkgs-us.runapp}/bin/runapp ''$@
#uwsm app -- ''$@
'')
];
})
(lib.mkIf (!config.homeconfig.hyprland.enable && config.homeconfig.scripts.enable) {
home.packages = [
(pkgs.writeShellScriptBin "hyprrun" ''
eval "''$@"
'')
];
})
(lib.mkIf config.homeconfig.scripts.enable {
home.packages = [ home.packages = [
#scripts #scripts
(pkgs.writeShellScriptBin "_systemRebuild" ''
${pkgs.nh}/bin/nh os switch --ask
echo //////Enter to close//////
read
'')
(pkgs.writeShellScriptBin "randWallpaper" '' (pkgs.writeShellScriptBin "randWallpaper" ''
file=''$(ls ${config.home.homeDirectory}/Pictures/Wallpaper/ | shuf -n 1) file=''$(ls ${config.home.homeDirectory}/Pictures/Wallpaper/ | shuf -n 1)
@@ -32,24 +53,25 @@
img=''$(realpath "''${1:-$(find ~/Pictures/Wallpaper/* | rofi -dmenu)}") img=''$(realpath "''${1:-$(find ~/Pictures/Wallpaper/* | rofi -dmenu)}")
n=''$(basename "''$img") n=''$(basename "''$img")
ext="''${n''\#''\#*.}" ext="''${n''\#''\#*.}"
out=''${3:-/dev/null}
if [[ ''$ext == "gif" || ''$ext == "mp4" ]]; then if [[ ''$ext == "gif" || ''$ext == "mp4" ]]; then
yes | ${pkgs.ffmpeg}/bin/ffmpeg -i "''$img" -vframes 1 /tmp/nathan/tmp.jpg yes | ${pkgs.ffmpeg}/bin/ffmpeg -i "''$img" -vframes 1 /tmp/nathan/tmp.jpg >> ''$out
cp /tmp/nathan/tmp.jpg /tmp/nathan/tmp2.jpg cp /tmp/nathan/tmp.jpg /tmp/nathan/tmp2.jpg
pidof mpvpaper && pkill mpvpaper pidof mpvpaper && pkill mpvpaper
${pkgs.swww}/bin/swww img /tmp/nathan/tmp.jpg -t wipe ${pkgs.swww}/bin/swww img /tmp/nathan/tmp.jpg -t wipe >> ''$out
${pkgs.hyprpanel}/bin/hyprpanel sw /tmp/nathan/tmp2.jpg ${pkgs.hyprpanel}/bin/hyprpanel sw /tmp/nathan/tmp2.jpg >> ''$out
sleep 0.3 sleep 0.3
hyprctl dispatch exec "${pkgs.mpvpaper}/bin/mpvpaper ALL ''$img -o loop" hyprctl dispatch exec "${pkgs.mpvpaper}/bin/mpvpaper ALL ''$img -o loop"
${pkgs.hyprpanel}/bin/hyprpanel sw /tmp/nathan/tmp.jpg ${pkgs.hyprpanel}/bin/hyprpanel sw /tmp/nathan/tmp.jpg >> ''$out
rm /tmp/nathan/tmp2.jpg rm /tmp/nathan/tmp2.jpg
else else
pidof mpvpaper && pkill mpvpaper pidof mpvpaper && pkill mpvpaper
hyprctl dispatch exec "${pkgs.swww}/bin/swww img ''$img -t wipe" hyprctl dispatch exec "${pkgs.swww}/bin/swww img ''$img -t wipe" >> ''$out
${pkgs.hyprpanel}/bin/hyprpanel sw "''$img" ${pkgs.hyprpanel}/bin/hyprpanel sw "''$img" >> ''$out
fi fi
changeColors "''$img" "''$2" changeColors "''$img" "''$2" >> ''$out
'') '')
(pkgs.writeShellScriptBin "changeColors" '' (pkgs.writeShellScriptBin "changeColors" ''
@@ -73,14 +95,14 @@
'') '')
(pkgs.writeShellScriptBin "colorPrefix" '' (pkgs.writeShellScriptBin "colorPrefix" ''
exec -a "$0" "$@" & pidof firefox > /dev/null && ${pkgs.pywalfox-native}/bin/pywalfox update &
sleep 0.4 pidof kitty > /dev/null && pkill -USR1 kitty
${pkgs.pywalfox-native}/bin/pywalfox update & pidof cava > /dev/null && pkill -USR1 cava
pkill -USR1 kitty
pidof cava && pkill -USR1 cava
for i in ''$(ls /run/user/1000 | grep nvim); do for i in ''$(ls /run/user/1000 | grep nvim); do
${pkgs.neovim-remote}/bin/nvr -s --servername /run/user/1000/''$i --remote-send '<cmd>colorscheme pywal<CR>'; ${pkgs.neovim-remote}/bin/nvr -s --servername /run/user/1000/''$i --remote-send '<cmd>colorscheme pywal<CR>';
done done
eval "''$@"
'') '')
(pkgs.writeShellScriptBin "onSystemStart" '' (pkgs.writeShellScriptBin "onSystemStart" ''
@@ -106,14 +128,8 @@
#tmux new-session -s hyprland #tmux new-session -s hyprland
'') '')
] ++ (if config.homeconfig.standalone.enable then [ ];
})
(pkgs.writeShellScriptBin "_homeRebuild" '' ];
${pkgs.nh}/bin/nh home switch --ask
echo //////Enter to close//////
read
'')
] else []);
};
} }

View File

@@ -0,0 +1,19 @@
{ config, lib, pkgs, inputs, ... }: {
imports = let
dir = builtins.readDir ./.;
in builtins.map (x: ./${x}) (builtins.filter
(file: (dir.${file} == "directory"))
(builtins.attrNames dir)
);
config = {
home.packages = lib.mkIf (!config.homeconfig.wal.enable) [
inputs.nixvim.packages.${pkgs.stdenv.hostPlatform.system}.default
];
home.sessionVariables.EDITOR = "nvim";
};
}

View File

@@ -19,7 +19,7 @@
''; '';
in lib.replaceStrings [ "<path>" ] [ in lib.replaceStrings [ "<path>" ] [
"${pywalfox-wrapper}/bin/pywalfox-wrapper" "${pywalfox-wrapper}/bin/pywalfox-wrapper"
] (lib.readFile "${pkgs.pywalfox-native}/lib/python3.12/site-packages/pywalfox/assets/manifest.json"); ] (lib.readFile "${pkgs.pywalfox-native}/lib/python3.13/site-packages/pywalfox/assets/manifest.json");
programs.firefox = { programs.firefox = {
@@ -49,7 +49,7 @@
]; ];
}; };
extensions.packages = with inputs.firefox-addons.packages.${pkgs.system}; [ extensions.packages = with inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}; [
ublock-origin ublock-origin
keepassxc-browser keepassxc-browser
pywalfox pywalfox

View File

@@ -27,12 +27,15 @@
{ path = "${config.sops.templates.gitconfig.path}"; } { path = "${config.sops.templates.gitconfig.path}"; }
]; ];
extraConfig = { settings = {
init = { init = {
defaultBranch = "master"; defaultBranch = "master";
}; };
safe.directory = "/etc/nixos";
url = { url = {
"ssh://gitea@esotericbytes.com/" = { "ssh://gitea@gitea.esotericbytes.com/" = {
insteadOf = [ insteadOf = [
"server:" "server:"
]; ];

View File

@@ -32,26 +32,11 @@
enable = true; enable = true;
systemd = { systemd = {
enable = true; enable = false;
variables = [ "--all" ]; variables = [ "--all" ];
}; };
extraConfig = (if config.homeconfig.host == "laptop" then '' extraConfig = (if config.homeconfig.hyprpanel.enable then ''
bind = CTRL SHIFT, XF86Launch2, exec, bash -c 'if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then pkexec --user root /nix/var/nix/profiles/system/bin/switch-to-configuration switch; else pkexec --user root /nix/var/nix/profiles/system/specialisation/docked/bin/switch-to-configuration switch; fi'
bind = ALT, Escape, exec, if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then hyprctl keyword monitor eDP-1,1920x1080@60,0x0,1; else hyprctl keyword monitor eDP-1,1920x1080@300,0x0,1; fi
'' else if config.homeconfig.host == "homebox" then ''
monitor=HDMI-A-2,1920x1080@60,0x0,1
monitor=HEADLESS-2,1920x1080@60,0x0,1
exec-once=hyprctl output create headless HEADLESS-2
exec-once=hyprctl keyword monitor HDMI-A-2,disable
exec-once=${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 -o HEADLESS-2
'' else if config.homeconfig.host == "container" then ''
monitor=HEADLESS-2,1920x1080@60,0x0,1
exec-once=hyprctl output create headless HEADLESS-2
exec-once=${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 -o HEADLESS-2
'' else ''
monitor= , prefered, auto, 1
'') + (if config.homeconfig.hyprpanel.enable then ''
bind = , Print, exec, bash -c ${pkgs.hyprpanel}/share/scripts/screenshot.sh" bind = , Print, exec, bash -c ${pkgs.hyprpanel}/share/scripts/screenshot.sh"
'' else '' '' else ''
bind = , Print, exec, grim -g "$(slurp)" bind = , Print, exec, grim -g "$(slurp)"

View File

@@ -1,4 +1,4 @@
{ config, lib, ... }: { { config, lib, inputs, ... }: {
options.homeconfig.nh.enable = lib.options.mkOption { options.homeconfig.nh.enable = lib.options.mkOption {
type = lib.types.bool; type = lib.types.bool;
@@ -9,7 +9,8 @@
programs.nh = { programs.nh = {
enable = true; enable = true;
flake = "${config.home.homeDirectory}/Projects/Olympus"; package = let pkgs-us = import inputs.nixpkgs-us { system = "x86_64-linux"; }; in pkgs-us.nh;
#flake = "${config.home.homeDirectory}/Projects/Olympus";
clean = { clean = {
enable = true; enable = true;

View File

@@ -8,7 +8,7 @@
config = lib.mkIf config.homeconfig.wal.enable { config = lib.mkIf config.homeconfig.wal.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
inputs.nixvim.packages.${pkgs.system}.pywal inputs.nixvim.packages.${pkgs.stdenv.hostPlatform.system}.pywal
pywal16 pywal16
imagemagick imagemagick

View File

@@ -0,0 +1,26 @@
{ config, lib, ... }: {
options.homeconfig.quickshell.enable = with lib; mkOption {
type = with types; bool;
default = false;
};
config = lib.mkIf config.homeconfig.quickshell.enable {
programs.quickshell = {
enable = true;
configs = {
default = config.homeDirectory + "/${config.home.file.".config/quickshell".target}";
};
systemd = {
enable = true;
target = lib.mkIf config.homeconfig.hyprland.enable "wayland-session@Hyprland.target";
};
activeConfig = "default";
};
};
}

View File

@@ -9,7 +9,7 @@
programs.rofi = { programs.rofi = {
enable = true; enable = true;
package = pkgs.rofi-wayland; package = pkgs.rofi;
cycle = true; cycle = true;

View File

@@ -12,5 +12,6 @@
./zsh ./zsh
./ssh ./ssh
./ohmyposh ./ohmyposh
./opencode
]; ];
} }

View File

@@ -6,12 +6,16 @@
programs.zsh = { programs.zsh = {
initContent = if config.homeconfig.wal.enable then (lib.mkBefore '' initContent = with lib; mkMerge [
cat ${config.home.homeDirectory}/.cache/wal/sequences (mkIf config.homeconfig.wal.enable (mkBefore ''
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.cache/wal/ohmyposh.toml)" cat ${config.home.homeDirectory}/.cache/wal/sequences
'') else (lib.mkBefore '' eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.cache/wal/ohmyposh.toml)"
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.config/ohmyposh/ohmyposh.toml)" ''))
'');
(mkIf (!config.homeconfig.wal.enable) (mkBefore ''
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.config/ohmyposh/ohmyposh.toml)"
''))
];
}; };

View File

@@ -0,0 +1,36 @@
{ config, lib, ... }: {
options.homeconfig.opencode.enable = with lib; mkOption {
type = with types; bool;
default = true;
};
config = lib.mkIf config.homeconfig.opencode.enable {
programs.opencode = {
enable = true;
settings = {
theme = "system";
model = "ollama-local/llama3.2";
provider = {
ollama-local = {
name = "Ollama (local)";
npm = "@ai-sdk/openai-compatible";
options.baseURL = "http://localhost:11434/v1";
models = {
"ministral-3:8b".name = "Ministral 3 8B";
"llama3.2".name = "Llama 3.2";
"qwen3:8b".name = "Qwen 3";
};
};
};
};
};
};
}

View File

@@ -0,0 +1,24 @@
{ ... }: {
programs.ssh = {
enable = true;
# defaults as of 25.11
matchBlocks."*" = {
forwardAgent = false;
addKeysToAgent = "no";
compression = false;
serverAliveInterval = 0;
serverAliveCountMax = 3;
hashKnownHosts = false;
userKnownHostsFile = "~/.ssh/known_hosts";
controlMaster = "no";
controlPath = "~/.ssh/master-%r@%n:%p";
controlPersist = "no";
};
enableDefaultConfig = false;
};
}

View File

@@ -1,9 +1,13 @@
{ config, lib, pkgs, ... }: { { lib, ... }: {
programs.zsh = { programs.zsh = {
enable = true; enable = true;
initContent = lib.mkOrder 1200 ''
bindkey ' ' magic-space
'';
enableCompletion = true; enableCompletion = true;
autosuggestion.enable = true; autosuggestion.enable = true;

View File

@@ -0,0 +1 @@
{ ... }: {}

View File

@@ -0,0 +1,9 @@
{ ... }: {
imports = let
dir = builtins.readDir ./.;
in builtins.map (x: ./${x}) (builtins.filter
(file: (dir.${file} == "directory"))
(builtins.attrNames dir)
);
}

View File

@@ -1,11 +1,25 @@
{ ... }: { lib, inputs, ... }:
{ {
config = { config = {
homeconfig = { homeconfig = {
graphical = false; graphical = lib.mkDefault false;
minimal = false; minimal = lib.mkDefault false;
hyprland.enable = false;
}; };
nix = {
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
settings = {
experimental-features = [ "nix-command" "flakes" ];
builders = "ssh://builder x86_64-linux,aarch64-linux /run/secrets/remoteBuildKey 1 1 nixos-test,benchmark,big-parallel,kvm - -";
builders-use-substituters = true;
};
};
programs.home-manager.enable = true;
}; };
} }

1
machines/android Submodule

Submodule machines/android added at 4ba07466f6

View File

@@ -1,33 +0,0 @@
keys:
- &homebox age1640eg0pnmkruc89m5xguz0m8fek44fl4tzez6qwuzlz6kmapqewsp8esxd
- &laptop age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q
- &android age12pnf36uqesjmy3e0lythfnpwam3zg5mv8m936fc4jphy4ces2fdqwn0s74
creation_rules:
- path_regex: homebox/secrets.yaml$
key_groups:
- age:
- *homebox
- path_regex: laptop/secrets.yaml$
key_groups:
- age:
- *laptop
- path_regex: pi4/secrets.yaml$
key_groups:
- age:
- *laptop
- path_regex: live/secrets.yaml$
key_groups:
- age:
- *laptop
- path_regex: nathan/secrets.yaml$
key_groups:
- age:
- *laptop
- *homebox
- *android
- path_regex: system-config/secrets.yaml$
key_groups:
- age:
- *laptop
- *homebox
- *android

View File

@@ -1,80 +0,0 @@
{ config, lib, pkgs, inputs, ... }: {
options.sysconfig.remoteBuildClient = with lib; mkOption {
type = with types; bool;
default = false;
};
config = {
sysconfig.remoteBuildClient = true;
home-manager = {
backupFileExtension = ".backup";
useUserPackages = true;
useGlobalPkgs = true;
extraSpecialArgs = { inherit inputs; };
sharedModules = [
inputs.sops-nix.homeManagerModules.sops
inputs.home-manager-config
];
config = { config, lib, pkgs, ... }: {
imports = [
inputs.olympus.homes.nathan
];
config = {
homeconfig = {
graphical = false;
minimal = true;
host = "android";
scripts.enable = false;
};
home.username = "nathan";
home.homeDirectory = "/data/data/com.termux.nix/files/home";
};
};
};
terminal.font = "${pkgs.fira-code}/share/fonts/truetype/FiraCode-VF.ttf";
user = {
userName = "nathan";
uid = 10472; #update this for your device!
shell = "${pkgs.zsh}/bin/zsh";
};
time.timeZone = "America/Chicago";
android-integration = {
xdg-open.enable = true;
termux-open.enable = true;
termux-open-url.enable = true;
termux-setup-storage.enable = true;
termux-wake-lock.enable = true;
termux-wake-unlock.enable = true;
am.enable = true;
};
system.stateVersion = "24.05";
environment = {
etcBackupExtension = ".backup";
motd = "";
};
nix = {
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
extraOptions = ''
experimental-features = nix-command flakes
builders-use-substitutes = true
builders = ssh://builder x86_64-linux,aarch64-linux /run/secrets/remoteBuildKey 1 1 nixos-test,benchmark,big-parallel,kvm - -
'';
};
};
}

View File

@@ -1,47 +0,0 @@
{
description = "System Configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-on-droid = {
url = "github:nix-community/nix-on-droid";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
olympus = {
url = "git+https://gitea.esotericbytes.com/Blunkall-Technologies/Olympus";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
};
outputs = { self, nixpkgs, olympus, ... } @ inputs: let
host = "laptop";
in {
nixOnDroidConfigurations.default = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = import nixpkgs {
system = "aarch64-linux";
overlays = [ inputs.nix-on-droid.overlays.default ];
};
modules = [
./configuration.nix
];
extraSpecialArgs = {
inherit inputs;
};
};
};
}

1
machines/homebox Submodule

Submodule machines/homebox added at b9d78079d2

1
machines/laptop Submodule

Submodule machines/laptop added at 627d7f764e

View File

@@ -1,7 +0,0 @@
keys:
- &laptop age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q
creation_rules:
- path_regex: ^secrets.yaml$
key_groups:
- age:
- *laptop

View File

@@ -1,99 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{
imports = [ # Include the results of the hardware scan.
./hardware-configuration.nix
];
config = {
boot.kernelParams = [ "snd-intel-dspcfg.dsp_driver=1" ];
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
powerManagement.finegrained = true;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
prime = {
# Make sure to use the correct Bus ID values for your system!
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
# WARNING: sync and offload are mutually exclusive.
# You can only pick one!!
#sync.enable = true;
offload = {
enable = true;
enableOffloadCmd = true;
};
};
};
sops = {
defaultSopsFile = ./secrets.yaml;
secrets = {
"nathan/pass" = {
neededForUsers = true;
};
};
};
sysconfig = {
users = {
nathan = {
isSuperuser = true;
extraGroups = [ "networkmanager" ];
hashedPasswordFile = config.sops.secrets."nathan/pass".path;
shell = pkgs.zsh;
home-manager = {
enable = true;
standalone = false;
extraModules = [
{
homeconfig = {
minimal = false;
hyprland.enable = true;
hyprlock.enable = true;
wal.enable = true;
mpd.enable = true;
hyprpanel.enable = true;
calcurse.enable = true;
rofi.enable = true;
firefox.enable = true;
git.enable = true;
nh.enable = true;
};
#monitor=eDP-1, addreserved, 40,0,0,0
wayland.windowManager.hyprland.extraConfig = ''
monitor=eDP-1,1920x1080@60,0x0,1
'';
}
];
};
};
};
};
services.xserver.videoDrivers = [ "nvidia" ];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.05"; # Did you read the comment?
};
}

View File

@@ -1,38 +0,0 @@
{
description = "System Configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
olympus = {
url = "git+https://gitea.esotericbytes.com/Blunkall-Technologies/Olympus";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
};
outputs = { self, nixpkgs, olympus, ... }: let
host = "laptop";
in {
nixosConfigurations."${host}" = nixpkgs.lib.nixosSystem {
specialArgs = {
};
modules = [
{ sysconfig.host = host; }
./configuration.nix
olympus.profiles.laptop
];
};
};
}

View File

@@ -1,39 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/78c0964d-c09e-4e31-8a73-eb719d79917a";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/AE5E-AC86";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,18 +0,0 @@
nathan:
pass: ENC[AES256_GCM,data:H/duNPyclGoCF/Z90TQcqaUymowHOLRDmcfDxSubNGdmijknsCq+UH5PaWUmXGZ7uZqcpYWBcsVbYfQO/98OHH/kbwAFD/Hgkw==,iv:74M2PQqVzAgMXA8Z4RVLJKawt0Lzh94IKbn8YCTx3tY=,tag:B/xgA4mrhWEccaXQ+qvjCA==,type:str]
remoteBuildKey: ENC[AES256_GCM,data:CN7AyOCV4iYzYrwVh2Af5YB0nwR4raXfj5FbbeIZg5Bfha0sUPnLAG+oqVUyzVQA3yftFhfwPGaALOyb6VlT13pTifG+uEoyiq1dQP6dimlmk/p/6kVtg4aiETJ/61EUeQF/HTVTZ3F7akgQRsKNFQYbF2srcurPQSY0Q2gjlkkFA3A3aLoN2LrkFPJvtnNP6SJzXDFHVOTPmbc/DvF9UbMiYu0viIlfiPqeBs26lAqcOWhrYlOxKqEL2IoP3kADDncedxT42c1rCPB/2kGvKg+mXSlaIH3a0Hb8hrnjVUB0edyqYnNCurVhPF8mg2yoqrtyaxRkZKvUsa5LBZwS+iL9bYQdU/4hxT9c7wRC+ZtWkwF4l/gy8Ggc+VuB+YT9JUCJY96o8f2wKFup0BS+oiYLGJKpcOLMFrPJLEtOMrqPN/Z6+gZ9LVbhlSliIV/yUTJAa26el0w6tP9Ebs6tHiFakpkMahsBbRxmHBmqkHW5zfa5YpvD5Ii/EC+F8Vb/Efn6LkBZBwSB6K33NSOy,iv:4i0bGQe7wiDSvmygY2VNSEhuYfYIi9YY1g7qLgDTcMo=,tag:MJqOovOcZ97COsVjxZus8w==,type:str]
sops:
age:
- recipient: age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2MEIyRjR0a25UU3hnR2Zw
WXFaaXJYNWFSMmZsR1FsYVB1WlBkZWptSHhzCkRGRitnNkc3MEtjV05KRXlXT3RR
TVhnVlpUdzFiSEwxbHNOT3dyQ0dzbG8KLS0tIElMc3g4SHRxZTVnOCtVcktRb25D
Y2ZpR25VNGVoMi9ibW8wbW5rYTQ3R00Ka6/KLXSSRP9WJDV0RBHHS5nALfd/3xDu
y+QS+Ueh56kQT2zbYpYBRIPDgI3LZgwlTifQCDJ9ZPq0LGgu4XbEqQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-08-23T03:46:50Z"
mac: ENC[AES256_GCM,data:QJLMqnmkrgtTqqmLN9NCfV8PPm5N/F0gtGw/XlX+nnfbesGVeYubSjtHmYWmY7ha41jEvLYu8rmIXaxDepfogyOf4wzuRPLkJxO7Wu0UVdr5uZlHNrcxZh4Ex6YGgg8Lbcjs0iVCev66lWfuhuxuvPOKsGLZvoNTq0V1hLpo/Fw=,iv:VFrL0L6tC1JvWM3BOJP4Dh+q1xSMBecCtPnNcY/loAU=,tag:p5VmBaGPTxyTmm1Ha9Le3Q==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2

View File

@@ -0,0 +1,124 @@
{ config, pkgs, lib, disko, sops-nix, home-manager, ... }:
{
imports =
[
disko.nixosModules.default
sops-nix.nixosModules.sops
home-manager.nixosModules.default
];
config = {
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_6_18;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
binfmt.emulatedSystems = lib.mkIf config.sysconfig.remoteBuildHost [ "aarch64-linux" ];
};
systemd.settings.Manager.DefaultLimitNOFILE = 2048;
programs.zsh.enable = true;
environment.shells = with pkgs; [ zsh bashInteractive ];
nixpkgs.config.allowUnfree = true;
networking = {
nameservers = lib.mkDefault [ "1.1.1.1" "1.0.0.1" ];
networkmanager = {
enable = true;
dns = "none";
};
useDHCP = false;
dhcpcd.enable = false;
nftables = {};
nat = {
enable = true;
internalInterfaces = [ "ve-.+" ];
externalInterface = "wlp7s0"; # wifi
#externalInterface = "enp6s0"; # ethernet
};
};
sysconfig = {
remoteBuildHost = true;
graphical = false;
services = {
sddm.enable = false;
openssh.enable = true;
pipewire.enable = true;
netbird.enable = true;
ollama.enable = false;
wyoming = {
enable = true;
piper = true;
openwakeword = true;
faster-whisper = true;
};
};
programs = {
hyprland.enable = false;
hyprpanel.enable = false;
steam.enable = false;
};
docker = {
enable = true;
portainer.enable = true;
pihole.enable = true;
ollama.enable = true;
searxng.enable = true;
};
containers = {
traefik.enable = true;
jellyfin.enable = true;
"esotericbytes.com".enable = true;
nextcloud.enable = true;
ntfy.enable = false;
gitea.enable = true;
n8n.enable = true;
keycloak.enable = true;
netbird.enable = true;
openwebui.enable = true;
wyoming = {
enable = false;
piper = false;
openwakeword = true;
faster-whisper = true;
};
rustdesk.enable = false; #broken
code-server.enable = true;
novnc.enable = false;
minecraft.enable = true;
sandbox.enable = false;
};
virtual-machines = {
enable = true;
};
};
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
};
}

Some files were not shown because too many files have changed in this diff Show More