Compare commits
153 Commits
d1237dab12
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| a60a5b738b | |||
| 191a54670e | |||
| 7949acb8f0 | |||
| 11e881b1cc | |||
| 2223acef57 | |||
| b1d54ce420 | |||
| d3c63aa684 | |||
| dac6771f58 | |||
| cf784f3847 | |||
| e9c4339640 | |||
| 386c4d6561 | |||
| 66171880bc | |||
| 65430099bf | |||
| a65cfacb79 | |||
| c6a21aee85 | |||
| 514e4864ca | |||
| 69d16e38a8 | |||
| e86a839bd7 | |||
| 65f878b20d | |||
| b893475db6 | |||
| 1ada91d5ef | |||
| 42bf08084e | |||
| 50d192c809 | |||
| c028bad2a6 | |||
| 9b218f88fa | |||
| 276823d2aa | |||
| ab47a1ea52 | |||
| 4a7615b50c | |||
| ea37cbe865 | |||
| 8cc337ca0e | |||
| f99cb4f761 | |||
| 6abef03321 | |||
| f584fb2e32 | |||
| b7763031dd | |||
| 761624c21c | |||
| 43d87cb6b3 | |||
| be310b9ae7 | |||
| 39fb19f62e | |||
| f7041607d7 | |||
| 6ef3081bd1 | |||
| c69e8ed0ef | |||
| 9e3023c26b | |||
| 3a6c6673eb | |||
| c6baa8fc5b | |||
| 9a89b1ee6a | |||
| eda60a7fec | |||
| e69f8348be | |||
| 23b4035da1 | |||
| 02427aca71 | |||
| 03274e6e46 | |||
| bf994f7e13 | |||
| 3696bab033 | |||
| ea2a03037a | |||
| 0947941c11 | |||
| c48ecab2bd | |||
| 55b1cae63b | |||
| 76a072d274 | |||
| 346907fce4 | |||
| 86810b6105 | |||
| eba2b6e52f | |||
| 96e4476934 | |||
| 560f36b18e | |||
| 0c9d45ad39 | |||
| e39eeac850 | |||
| 46cc39c91f | |||
| 9f7b03679a | |||
| 96ab25c6ad | |||
| d530844886 | |||
| 8bb52d7df6 | |||
| 05d4280ad6 | |||
| 90b99dbf19 | |||
| f96f7182c4 | |||
| bd8b5f1327 | |||
| d13b59e7ac | |||
| 69b47de1fc | |||
| 06cb547197 | |||
| f0ec952442 | |||
| 2fab28204d | |||
| 9b32b8a6db | |||
| 71e6fbcef4 | |||
| 1b140efc19 | |||
| 8c21db0a08 | |||
| d5a7657410 | |||
| e5b8871d4e | |||
| a6808a984e | |||
| e5f6a4bc69 | |||
| eb857b8d03 | |||
| 712aaab720 | |||
| 778433b318 | |||
| 7440ef91b4 | |||
| 265a526c8b | |||
| 6cd5770452 | |||
| 66d2dde112 | |||
| 7974a95659 | |||
| 8b605d692f | |||
| b911a7931e | |||
| 574b2c058b | |||
| f4f69a4a25 | |||
| 640c5911f6 | |||
| be74b8caaf | |||
| be199acad3 | |||
| 3335542d54 | |||
| e008cd4d89 | |||
| 4dbffa89c2 | |||
| c89816839a | |||
| b5b1e07f3a | |||
| 340ea873ce | |||
| 1fa30bdb94 | |||
| f480a1f8c9 | |||
| fd3f3639bd | |||
| be4f0c5e6b | |||
| 46f546a0e0 | |||
| 22535fbbaf | |||
| 10cf6bba46 | |||
| f07c4ae0d3 | |||
| c1f8c704b3 | |||
| 0aa7f459dd | |||
| 15dfb83bb7 | |||
| 6b8a9a2152 | |||
| 482f1b5912 | |||
| 78277afa8a | |||
| 680454c6b2 | |||
| ec1a12e2a1 | |||
| 960af2d43b | |||
| a7e636e7a2 | |||
| 099b8e40b2 | |||
| 32bf3e0bc0 | |||
| 905de63f78 | |||
| c977f9d3a2 | |||
| bc666ecab5 | |||
| 8e0d66eff5 | |||
| c657f03912 | |||
| 2ec608c5ae | |||
| 6a3a44b2f0 | |||
| 1c96a54c52 | |||
| 30d55ebb5a | |||
| daf0ea1169 | |||
| bd20e9a29b | |||
| f8d3994ad9 | |||
| 3b376d7657 | |||
| 082f0bdcc5 | |||
| 137e3753da | |||
| c012163715 | |||
| be4b7c7d82 | |||
| 6c88dcd775 | |||
| a1f0bf30cd | |||
| 873230cfe3 | |||
| 1bf5944f11 | |||
| ff5e0d6bb2 | |||
| 795bca39f8 | |||
| 707e839517 | |||
| a9db2c09e7 | |||
| c657dae471 |
9
.gitmodules
vendored
Normal 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
|
||||||
22
.sops.yaml
@@ -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
@@ -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": {
|
||||||
|
|||||||
35
flake.nix
@@ -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)
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
11
homes/nathan/home-manager/.sops.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
keys:
|
||||||
|
- &homebox age1640eg0pnmkruc89m5xguz0m8fek44fl4tzez6qwuzlz6kmapqewsp8esxd
|
||||||
|
- &laptop age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q
|
||||||
|
- &android age12pnf36uqesjmy3e0lythfnpwam3zg5mv8m936fc4jphy4ces2fdqwn0s74
|
||||||
|
creation_rules:
|
||||||
|
- path_regex: ^secrets.yaml$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *laptop
|
||||||
|
- *homebox
|
||||||
|
- *android
|
||||||
@@ -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;
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1007 KiB After Width: | Height: | Size: 1007 KiB |
|
Before Width: | Height: | Size: 110 MiB After Width: | Height: | Size: 110 MiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 874 KiB After Width: | Height: | Size: 874 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 48 MiB After Width: | Height: | Size: 48 MiB |
|
Before Width: | Height: | Size: 203 MiB After Width: | Height: | Size: 203 MiB |
|
Before Width: | Height: | Size: 670 KiB After Width: | Height: | Size: 670 KiB |
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 273 KiB |
|
Before Width: | Height: | Size: 140 MiB After Width: | Height: | Size: 140 MiB |
|
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 36 MiB After Width: | Height: | Size: 36 MiB |
@@ -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; };
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -107,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,
|
||||||
|
|
||||||
@@ -121,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
|
||||||
@@ -142,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
|
||||||
@@ -241,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
|
||||||
@@ -259,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
|
||||||
|
|
||||||
|
|
||||||
112
homes/nathan/home-manager/dotfiles/wal/templates/ohmyposh.toml
Normal 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}"
|
||||||
119
homes/nathan/home-manager/packages/default.nix
Normal 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
|
||||||
|
];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -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 @@
|
|||||||
'')
|
'')
|
||||||
|
|
||||||
];
|
];
|
||||||
};
|
})
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
19
homes/nathan/home-manager/programs/default.nix
Normal 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";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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
|
||||||
@@ -31,8 +31,11 @@
|
|||||||
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:"
|
||||||
];
|
];
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
systemd = {
|
systemd = {
|
||||||
enable = true;
|
enable = false;
|
||||||
variables = [ "--all" ];
|
variables = [ "--all" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -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
|
||||||
26
homes/nathan/home-manager/programs/quickshell/default.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -12,5 +12,6 @@
|
|||||||
./zsh
|
./zsh
|
||||||
./ssh
|
./ssh
|
||||||
./ohmyposh
|
./ohmyposh
|
||||||
|
./opencode
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -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)"
|
||||||
|
''))
|
||||||
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -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";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||||
controlPersist = "no";
|
controlPersist = "no";
|
||||||
};
|
};
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -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;
|
||||||
|
|
||||||
1
homes/nathan/home-manager/services/custom/default.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ ... }: {}
|
||||||
9
homes/nathan/home-manager/services/default.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ ... }: {
|
||||||
|
|
||||||
|
imports = let
|
||||||
|
dir = builtins.readDir ./.;
|
||||||
|
in builtins.map (x: ./${x}) (builtins.filter
|
||||||
|
(file: (dir.${file} == "directory"))
|
||||||
|
(builtins.attrNames dir)
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -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
@@ -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
|
|
||||||
@@ -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 - -
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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
@@ -1,7 +0,0 @@
|
|||||||
keys:
|
|
||||||
- &homebox age1640eg0pnmkruc89m5xguz0m8fek44fl4tzez6qwuzlz6kmapqewsp8esxd
|
|
||||||
creation_rules:
|
|
||||||
- path_regex: ^secrets.yaml$
|
|
||||||
key_groups:
|
|
||||||
- age:
|
|
||||||
- *homebox
|
|
||||||
@@ -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. It‘s 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?
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -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
@@ -1,7 +0,0 @@
|
|||||||
keys:
|
|
||||||
- &laptop age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q
|
|
||||||
creation_rules:
|
|
||||||
- path_regex: ^secrets.yaml$
|
|
||||||
key_groups:
|
|
||||||
- age:
|
|
||||||
- *laptop
|
|
||||||
@@ -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. It‘s 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?
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||