Compare commits

...

156 Commits

Author SHA1 Message Date
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
168 changed files with 4220 additions and 1953 deletions

9
.gitmodules vendored Normal file
View File

@@ -0,0 +1,9 @@
[submodule "machines/homebox"]
path = machines/homebox
url = https://gitea.esotericbytes.com/Blunkall-Technologies/homebox
[submodule "machines/laptop"]
path = machines/laptop
url = https://gitea.esotericbytes.com/Blunkall-Technologies/laptop
[submodule "machines/android"]
path = machines/android
url = https://gitea.esotericbytes.com/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:

44
flake.lock generated
View File

@@ -61,11 +61,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1767585814, "lastModified": 1768150501,
"narHash": "sha256-7iodv57Ppq05AHVKnS9/IdhhgBYTVpTDZmz2u2enr/E=", "narHash": "sha256-601j0FWA9UzEaDF3xj+12n94bkuVF/zkpLIOt6EfRK0=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "66bfeb87deb83ca2f9fa2045704b72de52c6433a", "rev": "1b848102f204ce846360009d193ea6d0280c814a",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -212,11 +212,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767619900, "lastModified": 1767910483,
"narHash": "sha256-KpoCBPvwHz3gAQtIUkohE2InRBFK3r0/FM6z5SPWfvM=", "narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "6bd04da47cfb48dfd15eabf08364b78ad894f5b2", "rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -301,11 +301,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1767654014, "lastModified": 1768144432,
"narHash": "sha256-1RG4xtr1FOX7mtSGBR9BcCsTrlRkXbygPaCSFNdT3bs=", "narHash": "sha256-lLV0egdN9VF6BjhG6GVEVMviFuM05XCv35YNsfLzS9w=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "9817553c664b0b7f6776671383a6368c74ee8dee", "rev": "fbf421df889ceff3bac08a9f4b9493def5eecc4d",
"revCount": 6789, "revCount": 6805,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@@ -584,11 +584,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1767147099, "lastModified": 1767838769,
"narHash": "sha256-395ehjdAtaqCbKmx+PhKAqnkYLvTtAzq2qzFG9qaGDw=", "narHash": "sha256-KCLU6SUU80tEBKIVZsBrSjRYX6kn1eVIYI3fEEqOp24=",
"owner": "Infinidoge", "owner": "Infinidoge",
"repo": "nix-minecraft", "repo": "nix-minecraft",
"rev": "01f571579edd64433f97c4294137fbc366deef4b", "rev": "4da21f019f6443f513f16af7f220ba4db1cdfc04",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -630,11 +630,11 @@
}, },
"nixpkgs-us": { "nixpkgs-us": {
"locked": { "locked": {
"lastModified": 1767379071, "lastModified": 1767892417,
"narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", "narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "fb7944c166a3b630f177938e478f0378e64ce108", "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -662,11 +662,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1767480499, "lastModified": 1768028080,
"narHash": "sha256-8IQQUorUGiSmFaPnLSo2+T+rjHtiNWc+OAzeHck7N48=", "narHash": "sha256-50aDK+8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "30a3c519afcf3f99e2c6df3b359aec5692054d92", "rev": "d03088749a110d52a4739348f39a63f84bb0be14",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -816,11 +816,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767499857, "lastModified": 1768104471,
"narHash": "sha256-0zUU/PW09d6oBaR8x8vMHcAhg1MOvo3CwoXgHijzzNE=", "narHash": "sha256-HdnXWQsA1EI27IJlaENUEEug58trUrh6+MT0cFiDHmY=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "ecc41505948ec2ab0325f14c9862a4329c2b4190", "rev": "94f9cbd20f680ebb2ad6cdf39da97cbcfaedf004",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -34,12 +34,14 @@
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";
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
@@ -49,14 +51,14 @@
value = { ... }: { value = { ... }: {
imports = [ imports = [
./system ./system
./system/profiles/${name} ./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
@@ -64,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)
); );
@@ -180,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; {
@@ -34,10 +36,10 @@
mpd.enable = lib.mkDefault true; mpd.enable = lib.mkDefault true;
calcurse.enable = lib.mkDefault true; calcurse.enable = lib.mkDefault true;
git.enable = lib.mkDefault true; git.enable = lib.mkDefault true;
#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;
@@ -74,15 +74,6 @@
defaultSopsFormat = "yaml"; defaultSopsFormat = "yaml";
}; };
nix = lib.mkIf config.homeconfig.standalone {
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;
programs.ssh = { programs.ssh = {
@@ -90,18 +81,23 @@
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 = 2222;
}; };
"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 = 2222;
}; };
"esotericbytes.com" = {
hostname = "esotericbytes.com";
port = 2222;
};
}; };
}; };

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,7 +16,25 @@
}; };
}; };
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
@@ -26,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" ''
@@ -67,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" ''
@@ -101,6 +129,7 @@
'') '')
]; ];
}; })
];
} }

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

@@ -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,7 +32,7 @@
enable = true; enable = true;
systemd = { systemd = {
enable = true; enable = false;
variables = [ "--all" ]; variables = [ "--all" ];
}; };

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

@@ -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,8 +1,12 @@
{ config, lib, pkgs, ... }: { { lib, ... }: {
programs.zsh = { programs.zsh = {
enable = true; enable = true;
initContent = lib.mkOrder 1200 ''
bindkey ' ' magic-space
'';
enableCompletion = true; enableCompletion = 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

View File

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

View File

@@ -1,92 +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 = {
hardware = {
nvidia = {
modesetting.enable = true;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
bluetooth.enable = true;
};
sops = {
defaultSopsFile = ./secrets.yaml;
secrets = {
"nathan/pass" = {
neededForUsers = true;
};
remoteBuildKey = {};
};
};
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
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
'';
}
];
};
};
};
};
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,145 +0,0 @@
{
device1 ? throw "Set this to your disk device, e.g. /dev/sda",
device2,
device3,
...
}: {
disko.devices = {
disk = {
main = {
device = device1;
type = "disk";
content = {
type = "gpt";
partitions = {
boot = {
name = "boot";
size = "1M";
type = "EF02";
};
esp = {
name = "ESP";
size = "500M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
swap = {
size = "4G";
content = {
type = "swap";
resumeDevice = true;
};
};
root = {
name = "root";
size = "100%";
content = {
type = "lvm_pv";
vg = "root_vg";
};
};
};
};
};
ssd1 = {
device = device2;
type = "disk";
content = {
type = "gpt";
partitions = {
ssd1 = {
name = "ssd1";
size = "100%";
content = {
type = "lvm_pv";
vg = "ssd1_vg";
};
};
};
};
};
hdd1 = {
device = device3;
type = "disk";
content = {
type = "gpt";
partitions = {
hdd1 = {
name = "hdd1";
size = "100%";
content = {
type = "lvm_pv";
vg = "hdd1_vg";
};
};
};
};
};
};
lvm_vg = {
root_vg = {
type = "lvm_vg";
lvs = {
root = {
size = "100%FREE";
content = {
type = "btrfs";
extraArgs = ["-f"];
subvolumes = {
"/root" = {
mountpoint = "/";
};
"/nix" = {
mountOptions = ["subvol=nix" "noatime"];
mountpoint = "/nix";
};
};
};
};
};
};
ssd1_vg = {
type = "lvm_vg";
lvs = {
ssd1 = {
size = "100%FREE";
content = {
type = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"/ssd1" = {
mountOptions = [ "subvol=ssd1" "noatime" ];
mountpoint = "/ssd1";
};
};
};
};
};
};
hdd1_vg = {
type = "lvm_vg";
lvs = {
hdd1 = {
size = "100%FREE";
content = {
type = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"/hdd1" = {
mountOptions = [ "subvol=hdd1" "noatime" ];
mountpoint = "/hdd1";
};
};
};
};
};
};
};
};
}

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";
url = "git+file:///home/nathan/Projects/Olympus";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
};
outputs = { self, nixpkgs, olympus, ... }: let
host = "homebox";
in {
nixosConfigurations."${host}" = nixpkgs.lib.nixosSystem {
specialArgs = olympus.inputs;
modules = [
{ sysconfig.host = host; }
./configuration.nix
olympus.profiles.homebox
];
};
};
}

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 = [ "nvme" "xhci_pci" "ahci" "usbhid" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
# 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.br-de2feead48ad.useDHCP = lib.mkDefault true;
# networking.interfaces.docker0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp6s0.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-blunkall-us.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-gitea.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-home-assnHYM.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-jellyfin.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-keycloak.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-n8n.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-netbird.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-nextcloud.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-ollama.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-traefik.useDHCP = lib.mkDefault true;
# networking.interfaces.ve-wyoming.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,41 +0,0 @@
nathan:
pass: ENC[AES256_GCM,data:HP/kF665VvIUybXmqaluJikeHWR0lvTXjA8Ry/dpbjDd3VUfiDuWFKlBkUzIZ1brAc86PV1xl4JWu2CNEz7uc3TmPuJ+GsFFOA==,iv:uPQZE7s3PvfShOaVCNRnnhXlcvA5aIiXRxi7UPbXfdU=,tag:Wg0IuCm4ljSPBmB/H2OSFA==,type:str]
authentik:
pass: ENC[AES256_GCM,data:pTjpwRgdUVU5543T199P7Zoy,iv:93WpIK6qq+A1LhaQdBvMQ4jzuAOmMUt575y/p8m8Ugk=,tag:jTg/JED3vpdOVHF8LdIyLg==,type:str]
secret_key: ENC[AES256_GCM,data:tIWDGtB/z7Ysizz9FPQJe2EeSTAxDPkeHJnaDfytDvbqvRaiCgg7qGpEF6hAQFdZ,iv:gloup5aI0qY+SYJt8V6lvUdE+18IWH09BXtz8dRi6JE=,tag:vFwF9h1Rsa/X1bjvdSRSfQ==,type:str]
pihole:
pass: ENC[AES256_GCM,data:hintZA==,iv:HA5K8mHYlLtf5s8iaLI/QRolYgcKwG8DWCH+LXnWI4k=,tag:DlnXxG0n9dBVpk2kILlPKg==,type:str]
gitea:
dbpass: ENC[AES256_GCM,data:hVRLXACRECNSnXRn8BEP0ZFT,iv:zuIvzStek6OEu+P4Nh8Wsq9eRVt/zP8KGVXYZWjSvW0=,tag:m4t8vKNGhz8NqkDWbCRgnA==,type:str]
keycloak:
dbpass: ENC[AES256_GCM,data:tc4wIAqzY7nonBhz8s+YdAux,iv:Wg0b0/xnl6cANLTOJWBsX+gw1iF8Q/GvO/iKyKwqJrM=,tag:LORKRmo4RjcrVbPNhk2A9Q==,type:str]
netbird:
coturnPass: ENC[AES256_GCM,data:zB6P9RyTTKkXEOIhOyeJuF4Y,iv:8SWVfcdmMnXQJxezu3uanrlmFhR+hxXEJ3T7KA+YZqE=,tag:1H21K3kbZOuLOdN2zufWJw==,type:str]
gitlab:
db_pass: ENC[AES256_GCM,data:N3KvXkXql/PDjxZSpGo/Apr/,iv:OOzhR4BEmV3T01PA50vqdJMg7D2OGKHn/8hiqKEaOd4=,tag:jzdonXH/D/5kZ5Cld2W//w==,type:str]
root_pass: ENC[AES256_GCM,data:bALaUkoJw3N0ugZP/4MCnEsD,iv:LJdJpXlyzA6o00UVlK+l5WCCFIL/sT/fQNjI8wA5LAg=,tag:BYk1o/rjubyEpeHbgYA1Sg==,type:str]
secrets:
secret: ENC[AES256_GCM,data:3/26giCD58RErtEDxQ90KxRl3aa8oH4co2Urw21r7hHCKaoSti1VpYoBtlvHdr5j,iv:SwliwLWSFfTZoc31JSm9YKBDGKiPQE7ujkiGaZmCQUc=,tag:2KT5BpJukixvhb6tnZb6lw==,type:str]
otp: ENC[AES256_GCM,data:RWOkQVPRsrJgPVtx49hiWRMAxVOszKxaDl40XQDL+QoDuoZi03wSxHiu4Ix9X2BR,iv:uO+CTR5S4r1q7n1ycQw0hYdu8JflSrvkgLiBbCmT8mk=,tag:gqCwNOqD78lFtgxUPyUw3A==,type:str]
db: ENC[AES256_GCM,data:rF4IIp1uFSGa67LVm8fy4/qFOmZLInRcG2IAfnuZG3+xtS9Z2RXpNcTZNFBDdOaD,iv:/KYwf3ZH6w48L49rY/FmaGQOt3jGdOUTZ9vFhmLZG60=,tag:f38iYIgpgdjWF34qD1fz2w==,type:str]
jws: ENC[AES256_GCM,data:C+GVDeO319QGjq2+fBMr1LaY6/6Tuz6jWomkvFVul6ydJjmMFO3A9dYI66WWY6g2iZgYEWDKUikW1qDK5sGgU5ZAZzaqS01LUsSsPHUcMqIg/AjtcRfaEvHYODYPPSEwdISzhceDaim8yqhrNTIOHUHvOxcILvtUmsI61hNfVSnOQbqifIJDgGP7bKaf96t8+qcBvp/UBwP1qHj/m4jD83yc8Pdih+ZuPmyNdo3Ew0nbLTykYVX3XsrO1RlJ/Gp+KPfRSJzVGAnqUKr8mI+32LUpXSJ96bEGA67/blSh1dbBxSVo3K83aZYuY6vvXb+Et6qd4piZYKGCxA+waSrTkYHvSgS5vJRbCGWauXKCYFASxxqmdJ3cu+rbphbshBVA3SIPHhZxun6BWaP0qTYZyfB/YsSU4J+kYiE3UEYX9GYEAY9bsO89IYZSsTsmYke2EI4KMcjyUFstZ2WTYqCpwJ6CMAuerDEMHP6N3xCO5MVDZfE4sKKHpfSCVQg8ak7IxV+3jZvZi2tUbvZZf/tYORzPeTUSEpcC4cGwwAJd3XKUetaiuDwQVkLa13xotfL0d+Lwc6eZil0e/sureLqvQM6kpWhK7yscu2hKGOzxx/OZClry2Uyc1fL5iWWxvM8Djg+ShoAS5m3Nt0R+mcLdgaylkZvMl9gNWFO1uzlnhGnJQtekVaXCJ9f9QZt5RizJYwM9pMKhSDTZ0vd4y69iZpz3YXhKtkvYX02RIFtTiqsbyU0pXVjK0SpKsb5T+yphacGeZRwQS9QadW9dE6xQsxwwYC//swm5l6ke+DyZrcsc/J+MBHFuN71D2st+jtfywZYg/YT9EcCFOMjqEgfDq7YICgyqfqRGAdVWQy660T5Mi+gYKcHqbYXaaB3VNL2RGIu/uybih/7ynGRM2+0ro9oKJ+fEbdi1alSFFJ0IvA5lU6XHd2CSyizEC9ak+HBLkYeSqOPfItfLH82jRiUtrY5u4fIlioLQTA1aKHax6q8cIf30FCGenhjM6jMj2WpXKI16+1xK9Om9mg94YmFjM+erQh3o/fbPuMbkNaNJQwabupshBK2h3caaE0cDUnDukUFUANHz9q5LVxSkw39GTjGpovxQJiZHbSdeIC/AzFXRVA1ojhzkeuefygdP27Aa+fLjEBn2x8AcdhyP1n8lQyjy0Wnxq9hJDbVXJF93FIdcCmF/JGejgHcr3YZUMY4OFG9gzISDEdgR99fYvKM+A9Pj2JNtCQ5iKCctg5opIEKA1z4RIpRQs0KmXq3JgjWhU1LeOWaX2YzS5rCJWyhxnTJXGk4a/cMvhbLRjFOKcDNNMp8yJrXk1pth7nFOJ4Put6o67jtjbgpgnPuEdelnXEEaReCfJEo2z8zka63kYqbIvcG4W2pKwsA4tT0QctVwltRdYU8YyKuOpQJtKvVdlZL0oxOwxPioTT8fOebRBaecKhQKF4fp9UGlE/GStud6oFSbN685U2TKihvYNmfLRSWQk1Y/APyCRlhOmhFLaIzJxogdlKzpg4AEg/2SRoEZPsqyZThI8uhCIT1qG0UBiZBTjey322fsEEZtNxO5nX/JeBDOVty3sIGs1OKBTjMXSZ+nzU9AIH6dek9Bz+Fix7a90IkQUB5xtgrIYgCH34L4a0o1jWy5bzT9fl53VnbzrICcT/wdRU/GznYYjxlF2uRBKIu7s0glDmsPXCZuorqvJlr2hySgN/hJKOlrCghraUD14pRk4OfRVKULkPQ7betgaCVbsihXplodrAgJ0BdIbf3tKRC8Ghx8+mYAWNXj+PtWBydEjEirCH70SJu53gjF5mNgl2EIaHNK7jqBgXhDr2/7uH97Tl+S9ue+TDlpr067T5JAqU3fOqq+ZS4wqEvqMYRfXd/V2FjNbBpoH8UW6pMuFaM06DBI+6p9O9xBl1eP3Sy3vrBwK2pCwLbi0LdJ2apQTl/51ZXp2xaaUAAh1Fu/bM21V7ENa5sGxpSTYwdSLyPnd8usqECw9W1XDNUI2EmJnp9AelD/joNwuL6U7pydrNUCguCjxHfbd+m0vc/te53GerJlSXbjEWz53f3RjSB90AaA6sOGhi1BFiHYSAjzMdqVSj4M68r+UF3YIuEuoaOzrVrkb5st3tYD0dz+ORhxo44aKEzgohseha5fg0wcTz9orqkeP/FyoOeItG2UwNVAWWGh/lBtXh8c4ILUMolZ1m2DWiYj/pyDvODVnP96u6TvyMC0H8aolgGHn7nDMTi+mCIvNFQYeXdVrRCpWS9aQik=,iv:cxdargXx2a7pET7BjCSZ/yXL7AnxNqncyDQ7CR3E3AA=,tag:2xKXfhBjynDqlvH377lpSA==,type:str]
oidc:
id: ENC[AES256_GCM,data:b6o2cCCSXJ5bIhA47InfhqwjO5Tjr0Mls+7VT5cunFfEHkdOInxplw==,iv:txren/8jnAUvCI/k9cxN29ZkSgCuPEAo0IpyREf2E9A=,tag:BFOZrM18zUJMEACpLz7KRw==,type:str]
secret: ENC[AES256_GCM,data:4HPPbVBOeDjdL81d402Rz6Luk1DZbk8InHfO+Sx/OJIvUf/shkCRyp3hStIDC03bA8HV66GeejvWFte+vQ2b5X3Fl2GXfHQi7brMFVEYfYdR2XRdra0aOeSrHtW5uUn0MpVCRwYDb1JahIWhLyqcYyOpV91xjNiIVg8S3MHr+mo=,iv:c3Q4qPMxZJuoO5XRzUDZh5XJOtff9eiMTlOx+MDMSaE=,tag:07fIkN9YXXJMEV59QEFIag==,type:str]
nextcloud:
pass: ENC[AES256_GCM,data:U/VI/uHDT1a5O4iAHUVwsz/h,iv:W0hAXBddFKhXmDWHpCB2JhjPPTEGer7721WtIRxg4Zo=,tag:OE4wzibNaaXsbfFuk0dwTA==,type:str]
sops:
age:
- recipient: age1640eg0pnmkruc89m5xguz0m8fek44fl4tzez6qwuzlz6kmapqewsp8esxd
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDVFhtcWkreVV6UmJkcW1P
WUluUTlOcjYzME1yVVNpVWJldXVsWG1vN3dNCmlvYURNV285anlIa3FrbXRVTERB
dXZDWHhEbFp3YWw5d2w4Y09vbUVCNHcKLS0tIEF4ZU5ZdWI5MVBtN0FOUUZDQUR4
S0NMRGJSeks0Q0UrVnZmUVdyU2NqVm8KLu2kQpD1fJdU0fTdR9A2cTQzRp+waJ6M
8vA+E8xYb2U4d7m0YnwKkGzw0CBPb0BvdEgvWvqpFViftoDwRv5KGA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-08-19T05:54:41Z"
mac: ENC[AES256_GCM,data:hLxsJDB3kr00fVVlkGC7L/pP3AH+W+IZbt4zHxGb9C7bhgs1zkLdDGGW8uqitsYQP5ZqSq00raym+JGGREH0q+SepQB+yrB26yDsac6thzKV1Yr3sIMhKdzSHJiNEawUxI7pTToKG3e6XDz2S0r0i0AvAoA6abPHoPH4ihojoXE=,iv:lSKAiSdkP1FxVoeKtSYs4i3HcyouNUeBHRvAXXqiBKY=,tag:hJGw0QhvbUf9M3AXC67iFA==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2

1
machines/laptop Submodule

Submodule machines/laptop added at daa1c40a98

View File

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

View File

@@ -1,103 +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;
};
remoteBuildKey = {};
};
};
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
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
'';
}
];
};
};
};
};
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.11";
home-manager = {
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
olympus = {
#url = "git+https://gitea.esotericbytes.com/Blunkall-Technologies/Olympus";
url = "git+file:///home/nathan/Projects/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 = olympus.inputs;
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;
}

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