Compare commits
163 Commits
d1237dab12
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 1238fa76db | |||
| 58e0b82520 | |||
| b4bac11cf9 | |||
| bb45b7b08a | |||
| 9a07fe0d59 | |||
| 5c8ebb84bb | |||
| 6dfacb91da | |||
| 128a560bb0 | |||
| 86fbc59bcf | |||
| 82e15df890 | |||
| 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 = ssh://gitea@gitea.esotericbytes.com:2222/Blunkall-Technologies/homebox
|
||||
[submodule "machines/laptop"]
|
||||
path = machines/laptop
|
||||
url = ssh://gitea@gitea.esotericbytes.com:2222/Blunkall-Technologies/laptop
|
||||
[submodule "machines/android"]
|
||||
path = machines/android
|
||||
url = ssh://gitea@gitea.esotericbytes.com:2222/Blunkall-Technologies/android
|
||||
22
.sops.yaml
@@ -3,28 +3,6 @@ keys:
|
||||
- &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/secrets.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
|
||||
50
flake.lock
generated
@@ -40,11 +40,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766150702,
|
||||
"narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=",
|
||||
"lastModified": 1768923567,
|
||||
"narHash": "sha256-GVJ0jKsyXLuBzRMXCDY6D5J8wVdwP1DuQmmvYL/Vw/Q=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378",
|
||||
"rev": "00395d188e3594a1507f214a2f15d4ce5c07cb28",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -61,11 +61,11 @@
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1767585814,
|
||||
"narHash": "sha256-7iodv57Ppq05AHVKnS9/IdhhgBYTVpTDZmz2u2enr/E=",
|
||||
"lastModified": 1769054619,
|
||||
"narHash": "sha256-LCc0gbSgjehdy41Gi1H5WNxEuW9PtRHFVaPXoFzslQU=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "66bfeb87deb83ca2f9fa2045704b72de52c6433a",
|
||||
"rev": "6509620630f68dc02ac3e99f15a67760778444ff",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@@ -212,11 +212,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767619900,
|
||||
"narHash": "sha256-KpoCBPvwHz3gAQtIUkohE2InRBFK3r0/FM6z5SPWfvM=",
|
||||
"lastModified": 1768949235,
|
||||
"narHash": "sha256-TtjKgXyg1lMfh374w5uxutd6Vx2P/hU81aEhTxrO2cg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "6bd04da47cfb48dfd15eabf08364b78ad894f5b2",
|
||||
"rev": "75ed713570ca17427119e7e204ab3590cc3bf2a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -301,11 +301,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767654014,
|
||||
"narHash": "sha256-1RG4xtr1FOX7mtSGBR9BcCsTrlRkXbygPaCSFNdT3bs=",
|
||||
"lastModified": 1769095012,
|
||||
"narHash": "sha256-vx8uFvwLPdrN7E0HgW1nc8+fTbTwcA7jkdwXoba8XUU=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "9817553c664b0b7f6776671383a6368c74ee8dee",
|
||||
"revCount": 6789,
|
||||
"rev": "82de66a030e6818ec3d21f49c8cdf9db31eebfa6",
|
||||
"revCount": 6831,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://github.com/hyprwm/Hyprland"
|
||||
@@ -584,11 +584,11 @@
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767147099,
|
||||
"narHash": "sha256-395ehjdAtaqCbKmx+PhKAqnkYLvTtAzq2qzFG9qaGDw=",
|
||||
"lastModified": 1768962252,
|
||||
"narHash": "sha256-HyWOOHcySV8rl36gs4+n0sxPinxpwWOgwXibfFPYeZ0=",
|
||||
"owner": "Infinidoge",
|
||||
"repo": "nix-minecraft",
|
||||
"rev": "01f571579edd64433f97c4294137fbc366deef4b",
|
||||
"rev": "433cf697394104123e1fd02fa689534ac1733bfa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -630,11 +630,11 @@
|
||||
},
|
||||
"nixpkgs-us": {
|
||||
"locked": {
|
||||
"lastModified": 1767379071,
|
||||
"narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
|
||||
"lastModified": 1769018530,
|
||||
"narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fb7944c166a3b630f177938e478f0378e64ce108",
|
||||
"rev": "88d3861acdd3d2f0e361767018218e51810df8a1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -662,11 +662,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1767480499,
|
||||
"narHash": "sha256-8IQQUorUGiSmFaPnLSo2+T+rjHtiNWc+OAzeHck7N48=",
|
||||
"lastModified": 1768940263,
|
||||
"narHash": "sha256-sJERJIYTKPFXkoz/gBaBtRKke82h4DkX3BBSsKbfbvI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "30a3c519afcf3f99e2c6df3b359aec5692054d92",
|
||||
"rev": "3ceaaa8bc963ced4d830e06ea2d0863b6490ff03",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -816,11 +816,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767499857,
|
||||
"narHash": "sha256-0zUU/PW09d6oBaR8x8vMHcAhg1MOvo3CwoXgHijzzNE=",
|
||||
"lastModified": 1768863606,
|
||||
"narHash": "sha256-1IHAeS8WtBiEo5XiyJBHOXMzECD6aaIOJmpQKzRRl64=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "ecc41505948ec2ab0325f14c9862a4329c2b4190",
|
||||
"rev": "c7067be8db2c09ab1884de67ef6c4f693973f4a2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
35
flake.nix
@@ -34,12 +34,14 @@
|
||||
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||
|
||||
nixvim.url = "git+https://gitea.esotericbytes.com/Blunkall-Technologies/Moirai";
|
||||
|
||||
self.submodules = true;
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, ... } @ inputs: {
|
||||
|
||||
profiles = let
|
||||
dir = builtins.readDir ./system/profiles;
|
||||
dir = builtins.readDir ./profiles;
|
||||
filtered = builtins.filter (x: dir.${x} == "directory") (builtins.attrNames dir);
|
||||
in (builtins.listToAttrs
|
||||
(builtins.map
|
||||
@@ -49,14 +51,14 @@
|
||||
value = { ... }: {
|
||||
imports = [
|
||||
./system
|
||||
./system/profiles/${name}
|
||||
./profiles/${name}
|
||||
];
|
||||
};
|
||||
})) filtered)
|
||||
);
|
||||
|
||||
homes = let
|
||||
dir = builtins.readDir ./system/users;
|
||||
dir = builtins.readDir ./homes;
|
||||
filtered = builtins.filter (x: dir.${x} == "directory") (builtins.attrNames dir);
|
||||
in (builtins.listToAttrs
|
||||
(builtins.map
|
||||
@@ -64,10 +66,9 @@
|
||||
inherit name;
|
||||
|
||||
value = { ... } @ exputs: {
|
||||
imports = [
|
||||
(./system/users/${name}/home-manager (inputs // exputs))
|
||||
];
|
||||
imports = [ (import ./homes/${name}/home-manager (exputs // inputs)) ];
|
||||
};
|
||||
|
||||
})) filtered)
|
||||
);
|
||||
|
||||
@@ -180,5 +181,27 @@
|
||||
|
||||
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 = {
|
||||
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
url = "github:nix-community/home-manager/release-25.11";
|
||||
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, ... }: {
|
||||
|
||||
imports = [
|
||||
./programs
|
||||
./services
|
||||
./packages
|
||||
./dotfiles
|
||||
];
|
||||
imports = let
|
||||
dir = builtins.readDir ./.;
|
||||
in (builtins.map (x: ./${x}) (builtins.filter
|
||||
(file: (dir.${file} == "directory"))
|
||||
(builtins.attrNames dir)
|
||||
)) ++ [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
];
|
||||
|
||||
options.homeconfig = with lib; {
|
||||
|
||||
@@ -37,7 +39,7 @@
|
||||
nh.enable = lib.mkDefault true;
|
||||
|
||||
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;
|
||||
wal.enable = lib.mkDefault config.homeconfig.graphical;
|
||||
hyprpanel.enable = lib.mkDefault config.homeconfig.hyprland.enable;
|
||||
@@ -49,8 +51,6 @@
|
||||
|
||||
home.homeDirectory = lib.mkDefault "/home/${config.home.username}";
|
||||
|
||||
programs.home-manager.enable = config.homeconfig.standalone;
|
||||
|
||||
home.stateVersion = "23.11";
|
||||
|
||||
home.pointerCursor = lib.mkIf config.homeconfig.graphical {
|
||||
@@ -60,7 +60,7 @@
|
||||
size = 16;
|
||||
};
|
||||
|
||||
gtk = lib.mkIf config.homeconfig.graphical {
|
||||
gtk = lib.mkIf (config.homeconfig.graphical && config.homeconfig.hyprland.enable) {
|
||||
enable = true;
|
||||
theme.name = "Tokyonight-Dark";
|
||||
theme.package = pkgs.tokyonight-gtk-theme;
|
||||
@@ -72,15 +72,8 @@
|
||||
age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
||||
defaultSopsFile = ./secrets.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;
|
||||
};
|
||||
#secrets."remoteBuildKey" = {};
|
||||
};
|
||||
|
||||
services.mpris-proxy.enable = true;
|
||||
@@ -90,17 +83,17 @@
|
||||
|
||||
matchBlocks = {
|
||||
"builder" = {
|
||||
hostname = "blunkall.us";
|
||||
hostname = "esotericbytes.com";
|
||||
user = "remote-builder";
|
||||
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
|
||||
port = 2222;
|
||||
port = 22;
|
||||
};
|
||||
|
||||
"remote" = {
|
||||
hostname = "blunkall.us";
|
||||
hostname = "esotericbytes.com";
|
||||
user = "nathan";
|
||||
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
|
||||
port = 2222;
|
||||
port = 22;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
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/wal/templates" = lib.mkIf config.homeconfig.wal.enable { source = ./wal/templates; 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; };
|
||||
};
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
$font = Monospace
|
||||
|
||||
source = ~/.cache/wal/colors-hypr.conf
|
||||
|
||||
general {
|
||||
hide_cursor = false
|
||||
}
|
||||
@@ -45,9 +47,9 @@ input-field {
|
||||
outline_thickness = 3
|
||||
inner_color = rgba(0, 0, 0, 0.0) # no fill
|
||||
|
||||
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
|
||||
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
|
||||
outer_color = $color1 $color5 100deg
|
||||
check_color = $color2 $color6 120deg
|
||||
fail_color = $color3 $color7 40deg
|
||||
|
||||
font_color = rgb(143, 143, 143)
|
||||
fade_on_empty = false
|
||||
@@ -10,7 +10,7 @@
|
||||
# #
|
||||
#------------------------------------------------#
|
||||
|
||||
exec-once=onSystemStart
|
||||
exec-once = hyprrun onSystemStart
|
||||
|
||||
# Some default env vars.
|
||||
env = XCURSOR_SIZE,16
|
||||
@@ -107,13 +107,11 @@ ecosystem {
|
||||
# Binds
|
||||
$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, firefox --private-window
|
||||
bind = $mainMod SHIFT, B, exec, hyprrun firefox --private-window
|
||||
|
||||
bind = $mainMod, Q, killactive,
|
||||
|
||||
@@ -121,20 +119,20 @@ bind = $mainMod, Q, killactive,
|
||||
|
||||
#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, 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 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, Z, togglesplit, # dwindle
|
||||
@@ -142,34 +140,34 @@ bind = $mainMod, Menu, exec, hyprpanel -q; hyprpanel
|
||||
bind = $mainMod, N, layoutmsg, rollnext # 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 = $mainMod, XF86Launch2, exec, prismlauncher
|
||||
bind = , XF86Launch2, exec, hyprrun steam
|
||||
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
|
||||
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 = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_SINK@ 10%-
|
||||
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle
|
||||
bind = $mainMod, F9, exec, pavucontrol
|
||||
bind = $mainMod, F9, exec, hyprrun pavucontrol
|
||||
|
||||
#screen lock key
|
||||
#bind = $mainMod, F12, exec, swaylock
|
||||
@@ -259,29 +257,29 @@ bind = $mainMod SHIFT, D, movewindow, r
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod SHIFT, mouse:272, resizewindow
|
||||
|
||||
$scratchpadsize = size 60% 80%
|
||||
$scratchpadsize = size (monitor_w*0.6) (monitor_h*0.8)
|
||||
|
||||
$kitty = class:^(scratchpad-kitty)$
|
||||
windowrulev2 = float, $kitty
|
||||
windowrulev2 = $scratchpadsize, $kitty
|
||||
windowrulev2 = workspace special silent, $kitty
|
||||
$kitty = ^(scratchpad-kitty)$
|
||||
windowrule = float on, match:class $kitty
|
||||
windowrule = $scratchpadsize, match:class $kitty
|
||||
windowrule = workspace special silent, match:class $kitty
|
||||
|
||||
$lf = class:^(scratchpad-lf)$
|
||||
windowrulev2 = float, $lf
|
||||
windowrulev2 = $scratchpadsize, $lf
|
||||
windowrulev2 = workspace special silent, $lf
|
||||
$lf = ^(scratchpad-lf)$
|
||||
windowrule = float on, match:class $lf
|
||||
windowrule = $scratchpadsize, match:class $lf
|
||||
windowrule = workspace special silent, match:class $lf
|
||||
|
||||
$cal = class:^(scratchpad-cal)$
|
||||
windowrulev2 = float, $cal
|
||||
windowrulev2 = $scratchpadsize, $cal
|
||||
windowrulev2 = workspace special silent, $cal
|
||||
$cal = ^(scratchpad-cal)$
|
||||
windowrule = float on, match:class $cal
|
||||
windowrule = $scratchpadsize, match:class $cal
|
||||
windowrule = workspace special silent, match:class $cal
|
||||
|
||||
bind = $mainMod, semicolon, exec, pypr toggle lf
|
||||
bind = $mainMod, E, exec, pypr toggle kitty
|
||||
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
|
||||
|
||||
|
||||
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 = {
|
||||
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 = [
|
||||
|
||||
#scripts
|
||||
@@ -26,24 +53,25 @@
|
||||
img=''$(realpath "''${1:-$(find ~/Pictures/Wallpaper/* | rofi -dmenu)}")
|
||||
n=''$(basename "''$img")
|
||||
ext="''${n''\#''\#*.}"
|
||||
out=''${3:-/dev/null}
|
||||
|
||||
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
|
||||
pidof mpvpaper && pkill mpvpaper
|
||||
${pkgs.swww}/bin/swww img /tmp/nathan/tmp.jpg -t wipe
|
||||
${pkgs.hyprpanel}/bin/hyprpanel sw /tmp/nathan/tmp2.jpg
|
||||
${pkgs.swww}/bin/swww img /tmp/nathan/tmp.jpg -t wipe >> ''$out
|
||||
${pkgs.hyprpanel}/bin/hyprpanel sw /tmp/nathan/tmp2.jpg >> ''$out
|
||||
sleep 0.3
|
||||
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
|
||||
else
|
||||
pidof mpvpaper && pkill mpvpaper
|
||||
hyprctl dispatch exec "${pkgs.swww}/bin/swww img ''$img -t wipe"
|
||||
${pkgs.hyprpanel}/bin/hyprpanel sw "''$img"
|
||||
hyprctl dispatch exec "${pkgs.swww}/bin/swww img ''$img -t wipe" >> ''$out
|
||||
${pkgs.hyprpanel}/bin/hyprpanel sw "''$img" >> ''$out
|
||||
fi
|
||||
|
||||
changeColors "''$img" "''$2"
|
||||
changeColors "''$img" "''$2" >> ''$out
|
||||
'')
|
||||
|
||||
(pkgs.writeShellScriptBin "changeColors" ''
|
||||
@@ -67,14 +95,14 @@
|
||||
'')
|
||||
|
||||
(pkgs.writeShellScriptBin "colorPrefix" ''
|
||||
exec -a "$0" "$@" &
|
||||
sleep 0.4
|
||||
${pkgs.pywalfox-native}/bin/pywalfox update &
|
||||
pkill -USR1 kitty
|
||||
pidof cava && pkill -USR1 cava
|
||||
pidof firefox > /dev/null && ${pkgs.pywalfox-native}/bin/pywalfox update &
|
||||
pidof kitty > /dev/null && pkill -USR1 kitty
|
||||
pidof cava > /dev/null && pkill -USR1 cava
|
||||
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>';
|
||||
done
|
||||
|
||||
eval "''$@"
|
||||
'')
|
||||
|
||||
(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
|
||||
keepassxc-browser
|
||||
pywalfox
|
||||
@@ -31,8 +31,11 @@
|
||||
init = {
|
||||
defaultBranch = "master";
|
||||
};
|
||||
|
||||
safe.directory = "/etc/nixos";
|
||||
|
||||
url = {
|
||||
"ssh://gitea@esotericbytes.com/" = {
|
||||
"ssh://gitea@gitea.esotericbytes.com/" = {
|
||||
insteadOf = [
|
||||
"server:"
|
||||
];
|
||||
@@ -32,7 +32,7 @@
|
||||
enable = true;
|
||||
|
||||
systemd = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
variables = [ "--all" ];
|
||||
};
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
config = lib.mkIf config.homeconfig.wal.enable {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
inputs.nixvim.packages.${pkgs.system}.pywal
|
||||
inputs.nixvim.packages.${pkgs.stdenv.hostPlatform.system}.pywal
|
||||
|
||||
pywal16
|
||||
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
|
||||
./ssh
|
||||
./ohmyposh
|
||||
./opencode
|
||||
];
|
||||
}
|
||||
@@ -6,12 +6,16 @@
|
||||
|
||||
programs.zsh = {
|
||||
|
||||
initContent = if config.homeconfig.wal.enable then (lib.mkBefore ''
|
||||
cat ${config.home.homeDirectory}/.cache/wal/sequences
|
||||
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.cache/wal/ohmyposh.toml)"
|
||||
'') else (lib.mkBefore ''
|
||||
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.config/ohmyposh/ohmyposh.toml)"
|
||||
'');
|
||||
initContent = with lib; mkMerge [
|
||||
(mkIf config.homeconfig.wal.enable (mkBefore ''
|
||||
cat ${config.home.homeDirectory}/.cache/wal/sequences
|
||||
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.cache/wal/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";
|
||||
controlPersist = "no";
|
||||
};
|
||||
enableDefaultConfig = false;
|
||||
|
||||
|
||||
};
|
||||
@@ -1,8 +1,12 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{ lib, ... }: {
|
||||
|
||||
programs.zsh = {
|
||||
|
||||
enable = true;
|
||||
|
||||
initContent = lib.mkOrder 1200 ''
|
||||
bindkey ' ' magic-space
|
||||
'';
|
||||
|
||||
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 = {
|
||||
homeconfig = {
|
||||
graphical = false;
|
||||
minimal = false;
|
||||
graphical = lib.mkDefault 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;
|
||||
}
|
||||