Compare commits
11 Commits
feature/el
...
4bf86c7b37
| Author | SHA1 | Date | |
|---|---|---|---|
|
4bf86c7b37
|
|||
|
4b6d42d275
|
|||
|
a67a4f5826
|
|||
| 5659cceab5 | |||
| 2921f3f435 | |||
| 319d292fa0 | |||
| 1eb4476006 | |||
| 338246498d | |||
| f396b3a8fb | |||
| 15a39660eb | |||
| d64caa86ec |
1
.envrc
1
.envrc
@@ -1,4 +1,3 @@
|
|||||||
# -*- mode: sh; -*-
|
|
||||||
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
|
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
|
||||||
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
|
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
|
||||||
fi
|
fi
|
||||||
|
|||||||
147
flake.lock
generated
147
flake.lock
generated
@@ -6,8 +6,7 @@
|
|||||||
"devenv"
|
"devenv"
|
||||||
],
|
],
|
||||||
"flake-compat": [
|
"flake-compat": [
|
||||||
"devenv",
|
"devenv"
|
||||||
"flake-compat"
|
|
||||||
],
|
],
|
||||||
"git-hooks": [
|
"git-hooks": [
|
||||||
"devenv",
|
"devenv",
|
||||||
@@ -19,11 +18,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760971495,
|
"lastModified": 1748883665,
|
||||||
"narHash": "sha256-IwnNtbNVrlZIHh7h4Wz6VP0Furxg9Hh0ycighvL5cZc=",
|
"narHash": "sha256-R0W7uAg+BLoHjMRMQ8+oiSbTq8nkGz5RDpQ+ZfxxP3A=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "cachix",
|
"repo": "cachix",
|
||||||
"rev": "c5bfd933d1033672f51a863c47303fc0e093c2d2",
|
"rev": "f707778d902af4d62d8dd92c269f8e70de09acbe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -33,32 +32,10 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"claude-desktop": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1761825061,
|
|
||||||
"narHash": "sha256-AeRQZKr8+1XQer+WmbwtQaQBy05UDgeNNE7YZjNLuS0=",
|
|
||||||
"owner": "k3d3",
|
|
||||||
"repo": "claude-desktop-linux-flake",
|
|
||||||
"rev": "791cd93cfe216ad06ab740f0fdc142119b1d6ec2",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "k3d3",
|
|
||||||
"repo": "claude-desktop-linux-flake",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"devenv": {
|
"devenv": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"cachix": "cachix",
|
"cachix": "cachix",
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"nix": "nix",
|
"nix": "nix",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -66,11 +43,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761922975,
|
"lastModified": 1753300020,
|
||||||
"narHash": "sha256-j4EB5ku/gDm7h7W7A+k70RYj5nUiW/l9wQtXMJUD2hg=",
|
"narHash": "sha256-jRO3ELwG+FfYDBTDDhBJNjGuJjB4IgziuB1JWoz6l1A=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "devenv",
|
"repo": "devenv",
|
||||||
"rev": "c9f0b47815a4895fadac87812de8a4de27e0ace1",
|
"rev": "90266818017f7a6885edc75eb4a13b68862675ea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -82,11 +59,11 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761588595,
|
"lastModified": 1747046372,
|
||||||
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -99,15 +76,16 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"devenv",
|
"devenv",
|
||||||
|
"nix",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760948891,
|
"lastModified": 1733312601,
|
||||||
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
|
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
|
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -134,24 +112,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"git-hooks": {
|
"git-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": [
|
"flake-compat": [
|
||||||
@@ -165,11 +125,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760663237,
|
"lastModified": 1750779888,
|
||||||
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
|
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
|
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -207,11 +167,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761878381,
|
"lastModified": 1753373145,
|
||||||
"narHash": "sha256-lCRaipHgszaFZ1Cs8fdGJguVycCisBAf2HEFgip5+xU=",
|
"narHash": "sha256-UhuUj46dobD/POOdVNxKvAvP3luI2T0MZPm2IXl266Y=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "4ac96eb21c101a3e5b77ba105febc5641a8959aa",
|
"rev": "64796151f79e6f3834bfc55f07c5487708bb5b3f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -226,10 +186,7 @@
|
|||||||
"devenv",
|
"devenv",
|
||||||
"flake-compat"
|
"flake-compat"
|
||||||
],
|
],
|
||||||
"flake-parts": [
|
"flake-parts": "flake-parts",
|
||||||
"devenv",
|
|
||||||
"flake-parts"
|
|
||||||
],
|
|
||||||
"git-hooks-nix": [
|
"git-hooks-nix": [
|
||||||
"devenv",
|
"devenv",
|
||||||
"git-hooks"
|
"git-hooks"
|
||||||
@@ -246,16 +203,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761648602,
|
"lastModified": 1752773918,
|
||||||
"narHash": "sha256-H97KSB/luq/aGobKRuHahOvT1r7C03BgB6D5HBZsbN8=",
|
"narHash": "sha256-dOi/M6yNeuJlj88exI+7k154z+hAhFcuB8tZktiW7rg=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "3e5644da6830ef65f0a2f7ec22830c46285bfff6",
|
"rev": "031c3cf42d2e9391eee373507d8c12e0f9606779",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"ref": "devenv-2.30.6",
|
"ref": "devenv-2.30",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -267,11 +224,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761451000,
|
"lastModified": 1752985182,
|
||||||
"narHash": "sha256-qBJL6xEIjqYq9zOcG2vf2nPTeVBppNJzvO0LuQWMwMo=",
|
"narHash": "sha256-sX8Neff8lp3TCHai6QmgLr5AD8MdsQQX3b52C1DVXR8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "ed6b293161b378a7368cda38659eb8d3d9a0dac4",
|
"rev": "fafdcb505ba605157ff7a7eeea452bc6d6cbc23c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -282,11 +239,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761907660,
|
"lastModified": 1753250450,
|
||||||
"narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=",
|
"narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15",
|
"rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -298,7 +255,7 @@
|
|||||||
},
|
},
|
||||||
"pumo-system-info": {
|
"pumo-system-info": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
@@ -325,22 +282,21 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761897390,
|
"lastModified": 1753335654,
|
||||||
"narHash": "sha256-er4gYrIoThYLjlsOMTysoRfn67d1Gci+ZpqDrtQxrA0=",
|
"narHash": "sha256-XpegouCfuzYNECDpH0+J3UEdearlYhRkRgOZ97l16E8=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "fc704e6b5d445899a1565955268c91942a4f263f",
|
"rev": "f90bef2d994c88f075dbc2fcd81140e160351328",
|
||||||
"revCount": 700,
|
"revCount": 654,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.outfoxxed.me/quickshell/quickshell"
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.outfoxxed.me/quickshell/quickshell"
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"claude-desktop": "claude-desktop",
|
|
||||||
"devenv": "devenv",
|
"devenv": "devenv",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
@@ -379,11 +335,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760998189,
|
"lastModified": 1752544651,
|
||||||
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
|
"narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
|
"rev": "2c8def626f54708a9c38a5861866660395bb3461",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -407,21 +363,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -429,11 +370,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761883599,
|
"lastModified": 1752725859,
|
||||||
"narHash": "sha256-ntnfAAqSuXI/+uqXAWUjbY5arB7sRK9cpgFbHbCZgK8=",
|
"narHash": "sha256-kjpmc7Y164ajPdscAZLFQTtzXP5sEE2dR30NuHe5lQY=",
|
||||||
"owner": "youwen5",
|
"owner": "youwen5",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "5355c0dc6857a2aa34b126fb4a93a454ed702f52",
|
"rev": "2276ddce91a949e0819d9e8c4b171c40ce770390",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
51
flake.nix
51
flake.nix
@@ -25,7 +25,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
quickshell = {
|
quickshell = {
|
||||||
url = "git+https://git.outfoxxed.me/quickshell/quickshell";
|
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -34,11 +34,6 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
claude-desktop = {
|
|
||||||
url = "github:k3d3/claude-desktop-linux-flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
zen-browser = {
|
zen-browser = {
|
||||||
url = "github:youwen5/zen-browser-flake";
|
url = "github:youwen5/zen-browser-flake";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -88,33 +83,42 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
homeConfigurations = let
|
homeConfigurations = {
|
||||||
extraSpecialArgs = {inherit inputs outputs system;};
|
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
in {
|
|
||||||
"phundrak@alys" = home-manager.lib.homeManagerConfiguration {
|
"phundrak@alys" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit extraSpecialArgs pkgs;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
./users/phundrak/host/alys.nix
|
./users/phundrak/host/alys.nix
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"phundrak@marpa" = home-manager.lib.homeManagerConfiguration {
|
"phundrak@marpa" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit extraSpecialArgs pkgs;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
./users/phundrak/host/marpa.nix
|
./users/phundrak/host/marpa.nix
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"phundrak@gampo" = home-manager.lib.homeManagerConfiguration {
|
"phundrak@gampo" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit extraSpecialArgs pkgs;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
./users/phundrak/host/gampo.nix
|
./users/phundrak/host/gampo.nix
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"phundrak@tilo" = home-manager.lib.homeManagerConfiguration {
|
"phundrak@tilo" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit extraSpecialArgs pkgs;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
./users/phundrak/host/tilo.nix
|
./users/phundrak/host/tilo.nix
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
@@ -122,39 +126,30 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations = let
|
nixosConfigurations = {
|
||||||
specialArgs = {inherit inputs outputs;};
|
|
||||||
in {
|
|
||||||
alys = nixpkgs.lib.nixosSystem {
|
alys = nixpkgs.lib.nixosSystem {
|
||||||
inherit specialArgs;
|
specialArgs = {inherit inputs outputs;};
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/alys/configuration.nix
|
./hosts/alys/configuration.nix
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
elcafe = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit specialArgs;
|
|
||||||
modules = [
|
|
||||||
./hosts/elcafe/configuration.nix
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
|
||||||
];
|
|
||||||
};
|
|
||||||
gampo = nixpkgs.lib.nixosSystem {
|
gampo = nixpkgs.lib.nixosSystem {
|
||||||
inherit specialArgs;
|
specialArgs = {inherit inputs outputs;};
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/gampo/configuration.nix
|
./hosts/gampo/configuration.nix
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
marpa = nixpkgs.lib.nixosSystem {
|
marpa = nixpkgs.lib.nixosSystem {
|
||||||
inherit specialArgs;
|
specialArgs = {inherit inputs outputs;};
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/marpa/configuration.nix
|
./hosts/marpa/configuration.nix
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
tilo = nixpkgs.lib.nixosSystem {
|
tilo = nixpkgs.lib.nixosSystem {
|
||||||
inherit specialArgs;
|
specialArgs = {inherit inputs outputs;};
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/tilo/configuration.nix
|
./hosts/tilo/configuration.nix
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
../../system
|
../../system
|
||||||
];
|
];
|
||||||
|
|
||||||
mySystem = {
|
system = {
|
||||||
boot = {
|
boot = {
|
||||||
kernel.hardened = true;
|
kernel.hardened = true;
|
||||||
systemd-boot = false;
|
systemd-boot = false;
|
||||||
|
|||||||
@@ -1,74 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
./hardware-configuration.nix
|
|
||||||
inputs.home-manager.nixosModules.default
|
|
||||||
../../system
|
|
||||||
];
|
|
||||||
|
|
||||||
sops.secrets = {
|
|
||||||
"elcafe/traefik/env".restartUnits = ["traefik.service"];
|
|
||||||
"elcafe/traefik/dynamic".restartUnits = ["traefik.service"];
|
|
||||||
};
|
|
||||||
|
|
||||||
mySystem = {
|
|
||||||
boot = {
|
|
||||||
kernel = {
|
|
||||||
hardened = true;
|
|
||||||
cpuVendor = "intel";
|
|
||||||
};
|
|
||||||
zfs = {
|
|
||||||
enable = true;
|
|
||||||
pools = ["tank"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
dev.docker = {
|
|
||||||
enable = true;
|
|
||||||
extraDaemonSettings.data-root = "/tank/docker/";
|
|
||||||
};
|
|
||||||
misc.keymap = "fr";
|
|
||||||
networking = {
|
|
||||||
hostname = "elcafe";
|
|
||||||
id = "501c7fb9";
|
|
||||||
};
|
|
||||||
packages.nix = {
|
|
||||||
gc.automatic = true;
|
|
||||||
trusted-users = [
|
|
||||||
"root"
|
|
||||||
"phundrak"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
endlessh.enable = true;
|
|
||||||
plex = {
|
|
||||||
enable = true;
|
|
||||||
dataDir = "/tank/web/plex-config";
|
|
||||||
};
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
allowedUsers = ["phundrak"];
|
|
||||||
passwordAuthentication = false;
|
|
||||||
};
|
|
||||||
traefik = {
|
|
||||||
enable = true;
|
|
||||||
envFiles = [config.sops.secrets."elcafe/traefik/env".path];
|
|
||||||
dynConf = config.sops.secrets."elcafe/traefik/dynamic".path;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
root.disablePassword = true;
|
|
||||||
phundrak.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# 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.11"; # Did you read the comment?
|
|
||||||
}
|
|
||||||
@@ -1,42 +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,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
initrd = {
|
|
||||||
availableKernelModules = ["ahci" "xhci_pci" "ehci_pci" "megaraid_sas" "usbhid" "usb_storage" "sd_mod" "sr_mod"];
|
|
||||||
kernelModules = [];
|
|
||||||
};
|
|
||||||
kernelModules = ["kvm-intel"];
|
|
||||||
extraModulePackages = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/d2e703f7-90e0-43e7-9872-ce036f201c4b";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
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.eno2.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.eno3.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.eno4.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -7,10 +7,11 @@
|
|||||||
imports = [
|
imports = [
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
# ./services
|
||||||
../../system
|
../../system
|
||||||
];
|
];
|
||||||
|
|
||||||
mySystem = {
|
system = {
|
||||||
boot = {
|
boot = {
|
||||||
plymouth.enable = true;
|
plymouth.enable = true;
|
||||||
kernel = {
|
kernel = {
|
||||||
|
|||||||
15
hosts/gampo/services/default.nix
Normal file
15
hosts/gampo/services/default.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
# imports = [
|
||||||
|
# ./gnome.nix
|
||||||
|
# ];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
printing.enable = true;
|
||||||
|
openssh.enable = true;
|
||||||
|
fwupd.enable = true;
|
||||||
|
udev.extraRules = ''
|
||||||
|
ATTRS{name}=="*TPPS/2 IBM TrackPoint", ENV{ID_INPUT}="", ENV{ID_INPUT_MOUSE}="", ENV{ID_INPUT_POINTINGSTICK}=""
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
11
hosts/gampo/services/gnome.nix
Normal file
11
hosts/gampo/services/gnome.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
displayManager.gdm.enable = true;
|
||||||
|
desktopManager.gnome.enable = true;
|
||||||
|
xkb = {
|
||||||
|
layout = "fr";
|
||||||
|
variant = "bepo";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -5,11 +5,11 @@
|
|||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
./hardware-configuration.nix
|
./system/hardware-configuration.nix
|
||||||
../../system
|
../../system
|
||||||
];
|
];
|
||||||
|
|
||||||
mySystem = {
|
system = {
|
||||||
boot = {
|
boot = {
|
||||||
extraModprobeConfig = ''
|
extraModprobeConfig = ''
|
||||||
options snd_usb_audio vid=0x1235 pid=0x8212 device_setup=1
|
options snd_usb_audio vid=0x1235 pid=0x8212 device_setup=1
|
||||||
@@ -21,20 +21,16 @@
|
|||||||
desktop = {
|
desktop = {
|
||||||
hyprland.enable = true;
|
hyprland.enable = true;
|
||||||
niri.enable = true;
|
niri.enable = true;
|
||||||
waydroid.enable = true;
|
|
||||||
xserver = {
|
xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
de = "gnome";
|
de = "gnome";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
dev = {
|
dev.docker = {
|
||||||
docker = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
podman.enable = true;
|
podman.enable = true;
|
||||||
autoprune.enable = true;
|
autoprune.enable = true;
|
||||||
};
|
};
|
||||||
qemu.enable = true;
|
|
||||||
};
|
|
||||||
hardware = {
|
hardware = {
|
||||||
amdgpu.enable = true;
|
amdgpu.enable = true;
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
@@ -76,7 +72,6 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
autostart = true;
|
autostart = true;
|
||||||
};
|
};
|
||||||
languagetool.enable = true;
|
|
||||||
};
|
};
|
||||||
users = {
|
users = {
|
||||||
root.disablePassword = true;
|
root.disablePassword = true;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
./services
|
./services
|
||||||
];
|
];
|
||||||
|
|
||||||
mySystem = {
|
system = {
|
||||||
boot = {
|
boot = {
|
||||||
kernel = {
|
kernel = {
|
||||||
hardened = true;
|
hardened = true;
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
elcafe:
|
|
||||||
traefik:
|
|
||||||
env: ENC[AES256_GCM,data:Mfm4Wt/7UWrpWGGa/rmC1wY6QtI2G/a6cbZiNjZz1gOTrREehFBZxH5JJ9ZgsxCMSuh/XCQa/75cPg==,iv:nrtTmtdFfTrCYzxFHDVMuaDdoa8SDi+pn4kghP4r9xE=,tag:gjlv8ohv1aDx2PB1rwx6fQ==,type:str]
|
|
||||||
dynamic: ENC[AES256_GCM,data:AYUojopOSi2kZ4ORxs4KrWHgqXZTMVtShb7T2iQ4JDyrlrIWCTpynt8/El9uoDaSryTgqxM8z3g4DIe5nrovh7pcFGVm/QYXfsfAx4kIm//7CwL9UISiyERirJo053Ilut0/lAdw3rlqa9aBYC2fS6AlrHN1ZFzqBttTeyykvZe0qmiW4hPNZ3axXW66juXwe9cxm24bE9bJZuuV9RYbafQ2Om76p/92E42hu6twWaUz/n6QgwaE2ymCekroKaq8+Umohj1XL6UdEEcLSnmc1qRblshhhSssNEtzbKERujt2SH/ppf/LLoohp8v4VbSpVOkx+6fqvyKWvbi2RU3C7eusee+gnBe2mGxGj34Q35iU4RM6dEwwmvzfmCAYy+27SlNVffI8yo8JXACp1aLxqBxLDDU7LokoSUb62/w/mX3NlzYf5a6NeIrHzoh+qHmEXUq63+gsNJaiJPp6DxtAKByg23t1LxSpFhxW7LaYIjh+KjaYZgNYTFR1BerqDu2pyzIrzZQTdtCveX3eiEZ3p9SJxfiuBVKlfQ2FpvJ9JPl9ACTFK6AI4s61ZgiNEeXzqQwo9zt8QrruiixdxPaclOfrBrFxq1mWGBGGXaAryiuZjo4G0KlNVvg/s5YiecYi8prQxXVozti7YI0sGJdGVjDiHwXfnUn+eQD2YBrOH9FlRwO3Vd/yd+42Xf06Hv7IbbYMogcu5y9ZbiXWesVd/TgB+Hu2oWkWxBU3sn6i3rMiZ0z+V/74xCwmfElugGCQ97ga6tQ92UbSBbteoiXpZiH7Z7Wja39rWKPyypH1h71Sccy1rSWrcEVHLC9swtLcB4dzt2JvVdXQ37pmEElfusY0yEb/y0W20vxNArDy035gCXdhUyP65NfrlhcAXoiKQaayL3NO81vBLP+X9+zgKsAV/eINPzM3gsF12QJaaQSL6CIlIF7qdwX8GZwoIg60rE2ogR0XxLcN9CGdMMuILpB9UsSOoPNwgMZd3KIwEB2LJabLKtUwuyKuA0iF6ZwHSghpnkxAIkIGFsbIxslvgCLkVihoSR97lhFpOJbC6n8u408wLD6qxoS6IRAXbIbErkyNyrt9PvbwSiHyWRjF8APCZD2WuQ22GmfBK0t6lM2hF8q7vRKN+SFOvLpql6NFT4n8/Odfr7i+4JqJahRH33RnDqYtRiqgqSSZtq3DOn1aYCivfEMKZrVxP+c6COqpPELDpjBfGWjLhqE/rV48N9x7UZNQKflBlMtaGnB1uEcVuMuZfTRFYQLqYs2p8f5vVXXWF7vSP9mBSHB3oz0seEfLd65y2hppF3J/8F/+QlAyGDrAZFhCYYMRE4eY2dy2cxLNP2M9tGVZMXQSNfys5cDnkYZzvofK7b2scgC9HcCUmBKv8ZxoSa4qyIOzH9XJupY4rlemlJbJQ9paXgAiiTdvLPcncVVnlCPRbEngCDKvoplVnzH9Hd6mIgRCZLyyIeAR8FwikGuZEuQETWanbe4S60KdMpofGM/ysz6eD67q9iVKL1zHCDtpzYQAhKurFUfgcxNOXnWYi8MWdRY9CAvIUJgRgg+IHOV76Nl8ljV6wpgn0qFR0IoQPblI3W8zJ4UASSgvUkf0meR9KLN3pA1D/AnYxi+Zblcz6SuXqBBARkXfW84iJOVanbNxyZpJDEnio6cJmNXX8VJxP0zqlA80FpcMNAvNOYsKx5yEwx3MEAlP7lLU35xgMx/BOgErf9f8XfbxINXPH0an+xQqAm99gbaKamflNQqpXXV+1ViWVWlx7xwqSUq0qy7A2sjs6prZRTR1sTt4i7MONEaRN65zgaPtL8zbO3BCbUecUdzCTmBy/XVnfa2krF8dN4LjBs6/ZswW/KYqc8TU6udiCb6Y1H9kXKsg3l9/5+ftcFB/YC6LzS9ynpOYhw12BJtjEuIuwiKa5J/UTp3IULQDZ2rCKBL09GT1/DGwB5AU8Dc9E9X2OOvWowme/eyYiiX9q+B9yLMYxP6rTsq7vJ8cjwnNRCz8UJbVzTlM9MwntUnyqv1L8E8xD438m0P+soqOc99NwXsuM/aJ6ndctfFNwHYfuau7BJrMRPfjc65yMiayfCxUJmnAsp309ODNS9D6VZkf/l5cBzbd+9xsnK/WA8I7f9bTZgi2/HSNOdEAlwBfRZXrLQAbeixG4qNmRqtOjILYkSkb13Ug/Yx+IFlMIgTxiZzXMduxbloNQU4VqEVY6Qrogu4qlaCWsqICX0SabXFZXUFUHgwswkNqV0G8977QSFTyYkMNr7FZTuFegYjzZZHaOtCJ/2FAJFX/e76rWcoz8GK7lsEqvQnCrqDfGtaSDF0LcJojKXEFg2E6rwENuMumdDJzkHj5dFzGdsf2ogeHqB2+sKpaHAgVjWzfk8CevSKnPDR/6UMhNoi2luW+xbV/DmDLJ5GzO6uGdcSmaQsFcNuFsuQZkC/q3zTf/TqbfH/V/eXR6YS0Etn73/xwVh9b59KazNb7JJ+rXahVHP3aUWocpu7/92Qwh/Odf3qGBJ/KT4a2VWYfBXLq6N0H8g1SI/aRJIAe3JCq2j+ln1PRegcqmwFqJpwp3TebdJEroCZU63Cl6vXm0XHm75MVXz7kYXBnOWeYv63oVyCvRc/yoOTBsCYPiyRxaoLXHUI2e0zCrbSAmAmb5WOUqxq4dJKGZXYYzHlR+aAjBbqmLFyCm92DW0sWlXPBhEeXysOK6IP8NEHatdyCnkpiHsQZyuBITw==,iv:Ooq6tK6nMGuRFJ1ElGCJhOMQVyMNtGBSguQVFSm71fA=,tag:iJviKci+i3tif+sH8UxRZg==,type:str]
|
|
||||||
extraHosts: ENC[AES256_GCM,data:YRHvHINgAQv4z+8awMzHY1uZS/K9qSaFsk8G5J2zF5P5YOt4x62eefXgmhWeKZzJI5AIi0312iMQl5qGv+lAkP+VC7j/h1rh7peBDEBU6LvcMgFU2XqxidM/CoKfMkJF8+/4bb+3r1LC/rEeXITTUQsOmoacdyCeKe5yxLaHyic/FaZIJq13wCg/QQSLfenc2Db0Pbxv5/cbRILhKT+ssElVipA40aZpgL7QmD542vObSEa6K4fZd0rawF/nOyibfpPN7Ak8DrYvfygNMw/QAGKY2XosxC86tjxhrIBHRakqmWpV+smoUO6XBFjU2sbwalafYVFdrvYL9BVAPtMZ25Sc5QMm87RCHqzqYdQHKs8C3JpVBHWnyL+0e5DNQrFrml0/FD5nFYsT6zDKVb/rN3YmxvTvKl7FpPKpv3Kke9WG+HnPs90hPy8Jpmg52vLMhaybx6dpJxzcF+ctBSI3J78hfweOCGvNGshCKpME1dujMPctH/kfYcm2j/ixKLjl0ZSbYeI9+l9oURBDwKzmKjAqhwnjuo3sL++ZsRU5Ue1zz9gsxS40R9eYevbq7JiQPX331pY2du1SRoKOxvPpXsDqe+CY5pW2RgPszjEIuDxyoveZolXg/zjlk0Ic/cOxrbflp7bTfQCQqEC7YJ5tRmtctk2lRGQkOFIg9Tn8ReifFxfhDrPFzc8X5vZgH73aqZSd/OkVybI3vEILV5uas0fPL7AHAKnBmeDV3mBNvF8aoZhD5CG8iRd1otta/3AQ660QV8IDoauq8fySC8Kee5B3kG75sqHvwF4Gu6CpSChXkjpiIqVmW0PntJueVHifuGJYkvhkX/CTHK7xm1HhtANnGrk6cr2APjWk1vpOaCmjFNqKTOV9d1HjaNWYTz4AZ+Uq2Za3UzN3oZCtZb96,iv:Z64+4oR/AfSgA7oZ/NPDLOtcmcXO5B4OQIGjOEK1Pf4=,tag:0I/1gXnBH7u6HTbQUz5Fpw==,type:str]
|
extraHosts: ENC[AES256_GCM,data:YRHvHINgAQv4z+8awMzHY1uZS/K9qSaFsk8G5J2zF5P5YOt4x62eefXgmhWeKZzJI5AIi0312iMQl5qGv+lAkP+VC7j/h1rh7peBDEBU6LvcMgFU2XqxidM/CoKfMkJF8+/4bb+3r1LC/rEeXITTUQsOmoacdyCeKe5yxLaHyic/FaZIJq13wCg/QQSLfenc2Db0Pbxv5/cbRILhKT+ssElVipA40aZpgL7QmD542vObSEa6K4fZd0rawF/nOyibfpPN7Ak8DrYvfygNMw/QAGKY2XosxC86tjxhrIBHRakqmWpV+smoUO6XBFjU2sbwalafYVFdrvYL9BVAPtMZ25Sc5QMm87RCHqzqYdQHKs8C3JpVBHWnyL+0e5DNQrFrml0/FD5nFYsT6zDKVb/rN3YmxvTvKl7FpPKpv3Kke9WG+HnPs90hPy8Jpmg52vLMhaybx6dpJxzcF+ctBSI3J78hfweOCGvNGshCKpME1dujMPctH/kfYcm2j/ixKLjl0ZSbYeI9+l9oURBDwKzmKjAqhwnjuo3sL++ZsRU5Ue1zz9gsxS40R9eYevbq7JiQPX331pY2du1SRoKOxvPpXsDqe+CY5pW2RgPszjEIuDxyoveZolXg/zjlk0Ic/cOxrbflp7bTfQCQqEC7YJ5tRmtctk2lRGQkOFIg9Tn8ReifFxfhDrPFzc8X5vZgH73aqZSd/OkVybI3vEILV5uas0fPL7AHAKnBmeDV3mBNvF8aoZhD5CG8iRd1otta/3AQ660QV8IDoauq8fySC8Kee5B3kG75sqHvwF4Gu6CpSChXkjpiIqVmW0PntJueVHifuGJYkvhkX/CTHK7xm1HhtANnGrk6cr2APjWk1vpOaCmjFNqKTOV9d1HjaNWYTz4AZ+Uq2Za3UzN3oZCtZb96,iv:Z64+4oR/AfSgA7oZ/NPDLOtcmcXO5B4OQIGjOEK1Pf4=,tag:0I/1gXnBH7u6HTbQUz5Fpw==,type:str]
|
||||||
mopidy:
|
mopidy:
|
||||||
spotify: ENC[AES256_GCM,data:SaDT0iSWhsgVOi1s+Nzbr0Mur3t2Zd9z/KIUshGWtbPfkXXIoiJeJFtoZIz5NL/t5FooYsNfU1mGYgDeVYSD4BPibW8hiCYrX6L6OX+Q6ZEWXXx/1eBEs2/q0BrWGvy7frcurq/Px4R3ax0dXJe/YKbpAtU7+bQl,iv:F2zT+uMVBMnSEZqgcRmV8/fc3G/g2fKDuHuBzkyBRN0=,tag:CD8fuOQfe6QCrj4BUh0/xw==,type:str]
|
spotify: ENC[AES256_GCM,data:SaDT0iSWhsgVOi1s+Nzbr0Mur3t2Zd9z/KIUshGWtbPfkXXIoiJeJFtoZIz5NL/t5FooYsNfU1mGYgDeVYSD4BPibW8hiCYrX6L6OX+Q6ZEWXXx/1eBEs2/q0BrWGvy7frcurq/Px4R3ax0dXJe/YKbpAtU7+bQl,iv:F2zT+uMVBMnSEZqgcRmV8/fc3G/g2fKDuHuBzkyBRN0=,tag:CD8fuOQfe6QCrj4BUh0/xw==,type:str]
|
||||||
@@ -65,7 +61,7 @@ sops:
|
|||||||
QmJKNDJUY0RSakhwNWlkOVpib0trc1kK0tQxD9I82pjfs54eruu+IjzVUmcVBCPw
|
QmJKNDJUY0RSakhwNWlkOVpib0trc1kK0tQxD9I82pjfs54eruu+IjzVUmcVBCPw
|
||||||
9mp1xKiYRRMXt3YQn6MPiyuuX3l3UB5MH0RJMNtRq0D961rs+iiS5A==
|
9mp1xKiYRRMXt3YQn6MPiyuuX3l3UB5MH0RJMNtRq0D961rs+iiS5A==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-11-02T00:42:02Z"
|
lastmodified: "2025-08-07T09:16:46Z"
|
||||||
mac: ENC[AES256_GCM,data:0rYURFETR06JRNY/vE89jEI+dovFNxsjSOalf1Id3H+yzl4UYdsHN1T3mD1EfssFwCloBxOo+188RkUe7JlNV7hC+tvO3nBrDNuqjzFBQu/IHEz+nTI3mwB7ZsywubvFMG65dohM8H9hB2bUXSSqtEUpFEiz7Ugn2BfGyex4BbI=,iv:vFJk6mz60d6CzSetd+bNvxTEWfGBPaBS4sYj/AiYbq4=,tag:2nHBGQ5P3mxLyzllvstBqg==,type:str]
|
mac: ENC[AES256_GCM,data:3PIJps2hoavPJ6ig+943FE73lBhCfxv8vuzmgTtooH386V12/PQN+Opt/ZoIbXU9w21XelZ/C5xPr8rcuw5ADx9K/KjdMm8jyLCO6/+iBf6SjnbC3E0DyiDit50UtWxKc32ryiJ8m5hYfX6O2H8WIGFa+6wp5KISV9pkc09CNZA=,iv:xzwEhhBJQOlde8Ib+tZpv+2CHfR83dFevdwERkYTsTE=,tag:SzdcZH19kSTnNs16754IMw==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.11.0
|
version: 3.10.2
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.boot;
|
cfg = config.system.boot;
|
||||||
in {
|
in {
|
||||||
options.mySystem.boot = {
|
options.system.boot = {
|
||||||
extraModprobeConfig = mkOption {
|
extraModprobeConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
@@ -51,7 +51,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config.boot = {
|
config.boot = {
|
||||||
initrd.kernelModules = lists.optional config.mySystem.hardware.amdgpu.enable "amdgpu";
|
initrd.kernelModules = lists.optional config.system.hardware.amdgpu.enable "amdgpu";
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot.enable = cfg.systemd-boot;
|
systemd-boot.enable = cfg.systemd-boot;
|
||||||
efi.canTouchEfiVariables = cfg.systemd-boot;
|
efi.canTouchEfiVariables = cfg.systemd-boot;
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.boot.plymouth;
|
cfg = config.system.boot.plymouth;
|
||||||
in {
|
in {
|
||||||
options.mySystem.boot.plymouth.enable = mkEnableOption "Enables Plymouth at system boot";
|
options.system.boot.plymouth.enable = mkEnableOption "Enables Plymouth at system boot";
|
||||||
config.boot = mkIf cfg.enable {
|
config.boot = mkIf cfg.enable {
|
||||||
plymouth = {
|
plymouth = {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.boot.zram;
|
cfg = config.system.boot.zram;
|
||||||
in {
|
in {
|
||||||
options.mySystem.boot.zram = {
|
options.system.boot.zram = {
|
||||||
enable = mkEnableOption "Enable ZRAM";
|
enable = mkEnableOption "Enable ZRAM";
|
||||||
memoryMax = mkOption {
|
memoryMax = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.misc;
|
cfg = config.system.misc;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./boot
|
./boot
|
||||||
@@ -19,7 +19,7 @@ in {
|
|||||||
./users
|
./users
|
||||||
];
|
];
|
||||||
|
|
||||||
options.mySystem.misc = {
|
options.system.misc = {
|
||||||
timezone = mkOption {
|
timezone = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "Europe/Paris";
|
default = "Europe/Paris";
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [./hyprland.nix ./niri.nix ./xserver.nix];
|
||||||
./hyprland.nix
|
|
||||||
./niri.nix
|
|
||||||
./waydroid.nix
|
|
||||||
./xserver.nix
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.desktop.hyprland;
|
cfg = config.system.desktop.hyprland;
|
||||||
in {
|
in {
|
||||||
options.mySystem.desktop.hyprland.enable = mkEnableOption "Enables Hyprland";
|
options.system.desktop.hyprland.enable = mkEnableOption "Enables Hyprland";
|
||||||
config.programs.hyprland = mkIf cfg.enable {
|
config.programs.hyprland = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
withUWSM = true;
|
withUWSM = true;
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.desktop.niri;
|
cfg = config.system.desktop.niri;
|
||||||
in {
|
in {
|
||||||
options.mySystem.desktop.niri.enable = mkEnableOption "Enables Niri";
|
options.system.desktop.niri.enable = mkEnableOption "Enables Niri";
|
||||||
config.programs.niri = mkIf cfg.enable {
|
config.programs.niri = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.mySystem.desktop.waydroid;
|
|
||||||
in {
|
|
||||||
options.mySystem.desktop.waydroid.enable = mkEnableOption "Enables Waydroid";
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
virtualisation.waydroid.enable = cfg.enable;
|
|
||||||
environment.systemPackages = [pkgs.waydroid-helper];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.desktop.xserver;
|
cfg = config.system.desktop.xserver;
|
||||||
in {
|
in {
|
||||||
options.mySystem.desktop.xserver = {
|
options.system.desktop.xserver = {
|
||||||
enable = mkEnableOption "Enables xserver";
|
enable = mkEnableOption "Enables xserver";
|
||||||
de = mkOption {
|
de = mkOption {
|
||||||
type = types.enum ["gnome" "kde"];
|
type = types.enum ["gnome" "kde"];
|
||||||
@@ -35,7 +35,7 @@ in {
|
|||||||
|
|
||||||
xserver = {
|
xserver = {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
videoDrivers = lists.optional config.mySystem.hardware.amdgpu.enable "amdgpu";
|
videoDrivers = lists.optional config.system.hardware.amdgpu.enable "amdgpu";
|
||||||
xkb = {
|
xkb = {
|
||||||
layout = "fr";
|
layout = "fr";
|
||||||
variant = "bepo_afnor";
|
variant = "bepo_afnor";
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
imports = [./docker.nix ./qemu.nix];
|
imports = [./docker.nix];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,33 +1,21 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.dev.docker;
|
cfg = config.system.dev.docker;
|
||||||
in {
|
in {
|
||||||
options.mySystem.dev.docker = {
|
options.system.dev.docker = {
|
||||||
enable = mkEnableOption "Enable Docker";
|
enable = mkEnableOption "Enable Docker";
|
||||||
extraDaemonSettings = mkOption {
|
|
||||||
type = types.nullOr (types.attrsOf types.str);
|
|
||||||
default = {};
|
|
||||||
example = {
|
|
||||||
data-root = "/custom/path";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
podman.enable = mkEnableOption "Enable Podman rather than Docker";
|
podman.enable = mkEnableOption "Enable Podman rather than Docker";
|
||||||
nvidia.enable = mkEnableOption "Activate Nvidia support";
|
nvidia.enable = mkEnableOption "Activate Nvidia support";
|
||||||
autoprune.enable = mkEnableOption "Enable autoprune";
|
autoprune.enable = mkEnableOption "Enable autoprune";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = mkIf cfg.podman.enable [
|
virtualisation = {
|
||||||
pkgs.podman-desktop
|
docker = mkIf (cfg.enable && !cfg.podman.enable) {
|
||||||
pkgs.podman-compose
|
|
||||||
];
|
|
||||||
virtualisation = mkIf cfg.enable {
|
|
||||||
docker = mkIf (!cfg.podman.enable) {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
enableNvidia = cfg.nvidia.enable;
|
enableNvidia = cfg.nvidia.enable;
|
||||||
autoPrune.enable = cfg.autoprune.enable;
|
autoPrune.enable = cfg.autoprune.enable;
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.mySystem.dev.qemu;
|
|
||||||
in {
|
|
||||||
options.mySystem.dev.qemu = {
|
|
||||||
enable = mkEnableOption "Enable QEMU";
|
|
||||||
users = mkOption {
|
|
||||||
type = types.listOf types.str;
|
|
||||||
default = ["phundrak"];
|
|
||||||
example = ["user1" "user2"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs.virt-manager.enable = true;
|
|
||||||
users.groups.libvirtd.members = cfg.users;
|
|
||||||
virtualisation = {
|
|
||||||
libvirtd.enable = true;
|
|
||||||
spiceUSBRedirection.enable = true;
|
|
||||||
};
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
qemu
|
|
||||||
quickemu
|
|
||||||
swtpm
|
|
||||||
];
|
|
||||||
systemd.tmpfiles.rules = ["L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware"];
|
|
||||||
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -5,58 +5,18 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.hardware.amdgpu;
|
cfg = config.system.hardware.amdgpu;
|
||||||
in {
|
in {
|
||||||
options.mySystem.hardware.amdgpu.enable = mkEnableOption "Enables an AMD GPU configuration";
|
options.system.hardware.amdgpu.enable = mkEnableOption "Enables an AMD GPU configuration";
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
hardware = {
|
systemd.tmpfiles.rules = [
|
||||||
graphics = {
|
"L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
mesa # Mesa drivers for AMD GPUs
|
|
||||||
rocmPackages.clr # common language runtime for ROCm
|
|
||||||
rocmPackages.clr.icd # ROCm ICD for OpenCL
|
|
||||||
rocmPackages.rocblas # ROCm BLAS library
|
|
||||||
rocmPackages.hipblas #
|
|
||||||
rocmPackages.rpp # High-performance computer vision library
|
|
||||||
nvtopPackages.amd # GPU utilization monitoring
|
|
||||||
];
|
];
|
||||||
};
|
hardware.graphics.extraPackages = with pkgs; [rocmPackages.clr.icd];
|
||||||
amdgpu = {
|
|
||||||
initrd.enable = true;
|
|
||||||
opencl.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
clinfo
|
clinfo
|
||||||
amdgpu_top
|
amdgpu_top
|
||||||
nvtopPackages.amd
|
nvtopPackages.amd
|
||||||
];
|
];
|
||||||
systemd = {
|
|
||||||
packages = with pkgs; [lact];
|
|
||||||
services.lactd.wantedBy = ["multi-user.target"];
|
|
||||||
tmpfiles.rules = let
|
|
||||||
rocmEnv = pkgs.symlinkJoin {
|
|
||||||
name = "rocm-combined";
|
|
||||||
paths = with pkgs.rocmPackages; [
|
|
||||||
clr
|
|
||||||
clr.icd
|
|
||||||
rocblas
|
|
||||||
hipblas
|
|
||||||
rpp
|
|
||||||
];
|
|
||||||
};
|
|
||||||
in [
|
|
||||||
"L+ /opt/rocm - - - - ${rocmEnv}"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
environment.variables = {
|
|
||||||
ROCM_PATH = "/opt/rocm"; # Set ROCm path
|
|
||||||
HIP_VISIBLE_DEVICES = "1"; # Use only the eGPU (ID 1)
|
|
||||||
ROCM_VISIBLE_DEVICES = "1"; # Optional: ROCm equivalent for visibility
|
|
||||||
# LD_LIBRARY_PATH = "/opt/rocm/lib"; # Add ROCm libraries
|
|
||||||
HSA_OVERRIDE_GFX_VERSION = "10.3.0"; # Set GFX version override
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.hardware.bluetooth;
|
cfg = config.system.hardware.bluetooth;
|
||||||
in {
|
in {
|
||||||
options.mySystem.hardware.bluetooth.enable = mkEnableOption "Enable bluetooth";
|
options.system.hardware.bluetooth.enable = mkEnableOption "Enable bluetooth";
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
hardware.bluetooth.enable = cfg.enable;
|
hardware.bluetooth.enable = cfg.enable;
|
||||||
services.blueman.enable = cfg.enable;
|
services.blueman.enable = cfg.enable;
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.hardware.corne;
|
cfg = config.system.hardware.corne;
|
||||||
in {
|
in {
|
||||||
options.mySystem.hardware.corne.allowHidAccess = mkEnableOption "Enable HID access to the corne keyboard";
|
options.system.hardware.corne.allowHidAccess = mkEnableOption "Enable HID access to the corne keyboard";
|
||||||
config.services.udev = mkIf cfg.allowHidAccess {
|
config.services.udev = mkIf cfg.allowHidAccess {
|
||||||
extraRules = ''
|
extraRules = ''
|
||||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
{lib, ...}:
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./amdgpu.nix
|
./amdgpu.nix
|
||||||
@@ -8,5 +7,4 @@
|
|||||||
./opentablet.nix
|
./opentablet.nix
|
||||||
./sound.nix
|
./sound.nix
|
||||||
];
|
];
|
||||||
hardware.enableRedistributableFirmware = lib.mkDefault true;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.hardware.ibmTrackpoint;
|
cfg = config.system.hardware.ibmTrackpoint;
|
||||||
in {
|
in {
|
||||||
options.mySystem.hardware.ibmTrackpoint.disable = mkEnableOption "Disable IBM’s trackpoint on ThinkPad";
|
options.system.hardware.ibmTrackpoint.disable = mkEnableOption "Disable IBM’s trackpoint on ThinkPad";
|
||||||
config.services.udev = mkIf cfg.disable {
|
config.services.udev = mkIf cfg.disable {
|
||||||
extraRules = ''
|
extraRules = ''
|
||||||
ATTRS{name}=="*TPPS/2 IBM TrackPoint", ENV{ID_INPUT}="", ENV{ID_INPUT_MOUSE}="", ENV{ID_INPUT_POINTINGSTICK}=""
|
ATTRS{name}=="*TPPS/2 IBM TrackPoint", ENV{ID_INPUT}="", ENV{ID_INPUT_MOUSE}="", ENV{ID_INPUT_POINTINGSTICK}=""
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.hardware.opentablet;
|
cfg = config.system.hardware.opentablet;
|
||||||
in {
|
in {
|
||||||
options.mySystem.hardware.opentablet.enable = mkEnableOption "Enables OpenTablet drivers";
|
options.system.hardware.opentablet.enable = mkEnableOption "Enables OpenTablet drivers";
|
||||||
config.hardware.opentabletdriver = mkIf cfg.enable {
|
config.hardware.opentabletdriver = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
daemon.enable = true;
|
daemon.enable = true;
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.hardware.sound;
|
cfg = config.system.hardware.sound;
|
||||||
in {
|
in {
|
||||||
options.mySystem.hardware.sound = {
|
options.system.hardware.sound = {
|
||||||
enable = mkEnableOption "Whether to enable sounds with Pipewire";
|
enable = mkEnableOption "Whether to enable sounds with Pipewire";
|
||||||
scarlett.enable = mkEnableOption "Activate support for Scarlett sound card";
|
scarlett.enable = mkEnableOption "Activate support for Scarlett sound card";
|
||||||
alsa = mkOption {
|
alsa = mkOption {
|
||||||
@@ -40,8 +40,5 @@ in {
|
|||||||
};
|
};
|
||||||
jack.enable = mkDefault cfg.jack;
|
jack.enable = mkDefault cfg.jack;
|
||||||
};
|
};
|
||||||
programs.noisetorch = mkIf cfg.enable {
|
|
||||||
inherit (cfg) enable;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./tailscale.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.networking;
|
cfg = config.system.networking;
|
||||||
in {
|
in {
|
||||||
options.mySystem.networking = with types; {
|
options.system.networking = with types; {
|
||||||
hostname = mkOption {
|
hostname = mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
example = "gampo";
|
example = "gampo";
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.mySystem.network.tailscale;
|
|
||||||
in {
|
|
||||||
options.mySystem.network.tailscale = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config.services.tailscale.enable = cfg.enable;
|
|
||||||
}
|
|
||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.packages.appimage;
|
cfg = config.system.packages.appimage;
|
||||||
in {
|
in {
|
||||||
options.mySystem.packages.appimage.enable = mkEnableOption "Enables AppImage support";
|
options.system.packages.appimage.enable = mkEnableOption "Enables AppImage support";
|
||||||
config.programs.appimage = mkIf cfg.enable {
|
config.programs.appimage = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
binfmt = true;
|
binfmt = true;
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.packages.flatpak;
|
cfg = config.system.packages.flatpak;
|
||||||
in {
|
in {
|
||||||
options.mySystem.packages.flatpak = {
|
options.system.packages.flatpak = {
|
||||||
enable = mkEnableOption "Enable Flatpak support";
|
enable = mkEnableOption "Enable Flatpak support";
|
||||||
builder.enable = mkEnableOption "Enable Flatpak builder";
|
builder.enable = mkEnableOption "Enable Flatpak builder";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.packages.nix;
|
cfg = config.system.packages.nix;
|
||||||
in {
|
in {
|
||||||
options.mySystem.packages.nix = {
|
options.system.packages.nix = {
|
||||||
allowUnfree = mkEnableOption "Enable unfree packages";
|
allowUnfree = mkEnableOption "Enable unfree packages";
|
||||||
disableSandbox = mkEnableOption "Disable Nix sandbox";
|
disableSandbox = mkEnableOption "Disable Nix sandbox";
|
||||||
gc = {
|
gc = {
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.programs.steam;
|
cfg = config.system.programs.steam;
|
||||||
in {
|
in {
|
||||||
options.mySystem.programs.steam.enable = mkEnableOption "Enables Steam and Steam hardware";
|
options.system.programs.steam.enable = mkEnableOption "Enables Steam and Steam hardware";
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs = {
|
programs = {
|
||||||
steam = {
|
steam = {
|
||||||
|
|||||||
@@ -4,31 +4,31 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.services.calibre;
|
cfg = config.system.services.calibre;
|
||||||
in {
|
in {
|
||||||
options.mySystem.services.calibre = {
|
options.system.services.calibre = {
|
||||||
enable = mkEnableOption "Enable Calibre Web";
|
enable = mkEnableOption "Enable Calibre Web";
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
default = "phundrak";
|
default = "phundrak";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
default = "users";
|
default = "users";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
example = "/tank/calibre/conf";
|
example = "/tank/calibre/conf";
|
||||||
default = "/tank/calibre/conf";
|
default = "/tank/calibre/conf";
|
||||||
};
|
};
|
||||||
library = mkOption {
|
library = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
example = "/tank/calibre/library";
|
example = "/tank/calibre/library";
|
||||||
default = "/tank/calibre/library";
|
default = "/tank/calibre/library";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config.services.calibre-web = mkIf cfg.enable {
|
config.services.calibre-web = mkIf cfg.enable {
|
||||||
inherit (cfg) enable user dataDir group;
|
inherit (cfg) enable user group dataDir;
|
||||||
options = {
|
options = {
|
||||||
calibreLibrary = cfg.library;
|
calibreLibrary = cfg.library;
|
||||||
enableBookConversion = true;
|
enableBookConversion = true;
|
||||||
|
|||||||
@@ -4,11 +4,9 @@
|
|||||||
./endlessh.nix
|
./endlessh.nix
|
||||||
./fwupd.nix
|
./fwupd.nix
|
||||||
./jellyfin.nix
|
./jellyfin.nix
|
||||||
./languagetool.nix
|
|
||||||
./plex.nix
|
./plex.nix
|
||||||
./printing.nix
|
./printing.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./sunshine.nix
|
./sunshine.nix
|
||||||
./traefik.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.services.endlessh;
|
cfg = config.system.services.endlessh;
|
||||||
in {
|
in {
|
||||||
options.mySystem.services.endlessh = {
|
options.system.services.endlessh = {
|
||||||
enable = mkEnableOption "Enables endlessh.";
|
enable = mkEnableOption "Enables endlessh.";
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.services.fwupd;
|
cfg = config.system.services.fwupd;
|
||||||
in {
|
in {
|
||||||
options.mySystem.services.fwupd.enable = mkEnableOption "Enable fwupd";
|
options.system.services.fwupd.enable = mkEnableOption "Enable fwupd";
|
||||||
config.services.fwupd = mkIf cfg.enable {
|
config.services.fwupd = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,21 +4,21 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.services.jellyfin;
|
cfg = config.system.services.jellyfin;
|
||||||
in {
|
in {
|
||||||
options.mySystem.services.jellyfin = {
|
options.system.services.jellyfin = {
|
||||||
enable = mkEnableOption "Enable Jellyfin";
|
enable = mkEnableOption "Enable Jellyfin";
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
default = "/tank/jellyfin/data";
|
default = "/tank/jellyfin/data";
|
||||||
example = "/tank/jellyfin/data";
|
example = "/tank/jellyfin/data";
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
default = "phundrak";
|
default = "phundrak";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
default = "users";
|
default = "users";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.mySystem.services.languagetool;
|
|
||||||
in {
|
|
||||||
options.mySystem.services.languagetool = {
|
|
||||||
enable = mkEnableOption "Enables languagetool";
|
|
||||||
port = mkOption {
|
|
||||||
type = types.port;
|
|
||||||
default = 8081;
|
|
||||||
example = 80;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config.services.languagetool = mkIf cfg.enable {
|
|
||||||
inherit (cfg) enable port;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -4,22 +4,22 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.services.plex;
|
cfg = config.system.services.plex;
|
||||||
in {
|
in {
|
||||||
options.mySystem.services.plex = {
|
options.system.services.plex = {
|
||||||
enable = mkEnableOption "Enable Plex";
|
enable = mkEnableOption "Enable Plex";
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
default = "users";
|
default = "users";
|
||||||
example = "users";
|
example = "users";
|
||||||
description = "Group under which Plex runs";
|
description = "Group under which Plex runs";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
example = "/tank/plex-config";
|
example = "/tank/plex-config";
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.string;
|
||||||
default = "phundrak";
|
default = "phundrak";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.services.printing;
|
cfg = config.system.services.printing;
|
||||||
in {
|
in {
|
||||||
options.mySystem.services.printing.enable = mkEnableOption "Enable printing with CUPS";
|
options.system.services.printing.enable = mkEnableOption "Enable printing with CUPS";
|
||||||
config.services.printing = mkIf cfg.enable {
|
config.services.printing = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.services.ssh;
|
cfg = config.system.services.ssh;
|
||||||
in {
|
in {
|
||||||
options.mySystem.services.ssh = {
|
options.system.services.ssh = {
|
||||||
enable = mkEnableOption "Enables OpenSSH";
|
enable = mkEnableOption "Enables OpenSSH";
|
||||||
allowedUsers = mkOption {
|
allowedUsers = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.services.sunshine;
|
cfg = config.system.services.sunshine;
|
||||||
in {
|
in {
|
||||||
options.mySystem.services.sunshine = {
|
options.system.services.sunshine = {
|
||||||
enable = mkEnableOption "Enables Sunshine";
|
enable = mkEnableOption "Enables Sunshine";
|
||||||
autostart = mkEnableOption "Enables autostart";
|
autostart = mkEnableOption "Enables autostart";
|
||||||
};
|
};
|
||||||
@@ -15,34 +15,6 @@ in {
|
|||||||
autoStart = cfg.autostart;
|
autoStart = cfg.autostart;
|
||||||
capSysAdmin = true;
|
capSysAdmin = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
settings.sunshine_name = config.mySystem.networking.hostname;
|
settings.sunshine_name = config.system.networking.hostname;
|
||||||
applications.apps = [
|
|
||||||
{
|
|
||||||
name = "Desktop";
|
|
||||||
image-path = "desktop.png";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Low Res Desktop";
|
|
||||||
image-path = "desktop.png";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Steam Big Picture";
|
|
||||||
detached = ["setsid steam steam://open/bigpicture"];
|
|
||||||
prep-cmd = {
|
|
||||||
do = "";
|
|
||||||
undo = "setsid steam steam://close/bigpicture";
|
|
||||||
};
|
|
||||||
image-path = "steam.png";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "OpenTTD";
|
|
||||||
cmd = "openttd";
|
|
||||||
image-path = "/home/phundrak/.config/sunshine/covers/igdb_18074.png";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "OpenMW";
|
|
||||||
cmd = "openmw";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.mySystem.services.traefik;
|
|
||||||
in {
|
|
||||||
options.mySystem.services.traefik = {
|
|
||||||
enable = mkEnableOption "Enable Traefikse";
|
|
||||||
email = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "lucien@phundrak.com";
|
|
||||||
example = "admin@example.com";
|
|
||||||
};
|
|
||||||
envFiles = mkOption {
|
|
||||||
type = types.listOf types.path;
|
|
||||||
example = ["/run/secrets/traefik.env"];
|
|
||||||
default = [];
|
|
||||||
};
|
|
||||||
dynConf = mkOption {
|
|
||||||
type = types.path;
|
|
||||||
example = "/var/traefik/dynamic.yaml";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
networking.firewall.allowedTCPPorts = [80 443];
|
|
||||||
services.traefik = {
|
|
||||||
inherit (cfg) enable;
|
|
||||||
environmentFiles = cfg.envFiles;
|
|
||||||
dynamicConfigFile = cfg.dynConf;
|
|
||||||
staticConfigOptions = {
|
|
||||||
log = {
|
|
||||||
level = "WARN";
|
|
||||||
filePath = "/var/log/traefik/traefik.log";
|
|
||||||
};
|
|
||||||
accessLog.filePath = "/var/log/traefik/access.log";
|
|
||||||
api.dashboard = true;
|
|
||||||
entryPoints = {
|
|
||||||
web = {
|
|
||||||
address = ":80";
|
|
||||||
http.redirections.entryPoint = {
|
|
||||||
to = "websecure";
|
|
||||||
scheme = "https";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
websecure.address = ":443";
|
|
||||||
};
|
|
||||||
certificatesResolvers.cloudflare.acme = {
|
|
||||||
inherit (cfg) email;
|
|
||||||
storage = "/var/lib/traefik/acme.json";
|
|
||||||
dnsChallenge = {
|
|
||||||
provider = "cloudflare";
|
|
||||||
resolvers = ["1.1.1.1:53" "1.0.0.1:53"];
|
|
||||||
propagation.delayBeforeChecks = 60;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
providers.docker = {
|
|
||||||
endpoint = "unix:///var/run/docker.sock";
|
|
||||||
exposedByDefault = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -5,9 +5,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.mySystem.users;
|
cfg = config.system.users;
|
||||||
in {
|
in {
|
||||||
options.mySystem.users = {
|
options.system.users = {
|
||||||
root.disablePassword = mkEnableOption "Disables root password";
|
root.disablePassword = mkEnableOption "Disables root password";
|
||||||
phundrak.enable = mkEnableOption "Enables users phundrak";
|
phundrak.enable = mkEnableOption "Enables users phundrak";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ in {
|
|||||||
extraPackages = mkIf cfg.extras (with pkgs.bat-extras; [
|
extraPackages = mkIf cfg.extras (with pkgs.bat-extras; [
|
||||||
batman
|
batman
|
||||||
batpipe
|
batpipe
|
||||||
|
batgrep
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ in {
|
|||||||
emacsPkg = mkOption {
|
emacsPkg = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = config.home.dev.editors.emacs.package or pkgs.emacs;
|
default = config.home.dev.editors.emacs.package or pkgs.emacs;
|
||||||
|
# default = pkgs.emacs;
|
||||||
example = pkgs.emacs;
|
example = pkgs.emacs;
|
||||||
};
|
};
|
||||||
host = mkOption {
|
host = mkOption {
|
||||||
@@ -62,8 +63,6 @@ in {
|
|||||||
"marpa" = [
|
"marpa" = [
|
||||||
"DP-1, 3440x1440@144, 1080x550, 1"
|
"DP-1, 3440x1440@144, 1080x550, 1"
|
||||||
"DP-2, 2560x1080@60, 0x0, 1, transform, 1"
|
"DP-2, 2560x1080@60, 0x0, 1, transform, 1"
|
||||||
# "DP-2, 1366x768@60, 0x0, 1"
|
|
||||||
# "DP-2, 1829x1143@60, 0x0, 1"
|
|
||||||
];
|
];
|
||||||
"gampo" = [];
|
"gampo" = [];
|
||||||
}."${cfg.host}";
|
}."${cfg.host}";
|
||||||
@@ -273,13 +272,19 @@ in {
|
|||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
blueman-applet.enable = true;
|
blueman-applet.enable = true;
|
||||||
hyprpaper = {
|
wpaperd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
ipc = "on";
|
default = {
|
||||||
splash = false;
|
path = "/home/phundrak/Pictures/Wallpapers/nord";
|
||||||
preload = "/home/phundrak/Pictures/Wallpapers/nord/Nordic6.jpg";
|
duration = "5m";
|
||||||
wallpaper = ", /home/phundrak/Pictures/Wallpapers/nord/Nordic6.jpg";
|
sorting = "random";
|
||||||
|
mode = "center";
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
DP-3 = {
|
||||||
|
mode = "fit-border-color";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.home.dev.ai.claude;
|
|
||||||
in {
|
|
||||||
options.home.dev.ai.claude.enable = mkEnableOption "Enables Claude-related packages";
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home.packages = [inputs.claude-desktop.packages.${system}.claude-desktop-with-fhs];
|
|
||||||
programs.claude-code = {
|
|
||||||
inherit (cfg) enable;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.home.dev.ai;
|
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
./ollama.nix
|
|
||||||
./claude.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
options.home.dev.ai.enable = mkEnableOption "Enables AI features";
|
|
||||||
config.home.dev.ai = mkIf cfg.enable {
|
|
||||||
ollama.enable = mkDefault cfg.enable;
|
|
||||||
claude.enable = mkDefault cfg.enable;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -7,8 +7,8 @@ with lib; let
|
|||||||
cfg = config.home.dev;
|
cfg = config.home.dev;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./ai
|
|
||||||
./editors
|
./editors
|
||||||
|
./ollama.nix
|
||||||
./vcs
|
./vcs
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
emacsDefaultPackage = with pkgs; ((emacsPackagesFor emacs).emacsWithPackages (
|
emacsDefaultPackage = with pkgs; ((emacsPackagesFor emacsNativeComp).emacsWithPackages (
|
||||||
epkgs: [
|
epkgs: [
|
||||||
epkgs.mu4e
|
epkgs.mu4e
|
||||||
epkgs.pdf-tools
|
epkgs.pdf-tools
|
||||||
|
|||||||
@@ -4,21 +4,20 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.home.dev.ai.ollama;
|
cfg = config.home.dev.ollama;
|
||||||
in {
|
in {
|
||||||
options.home.dev.ai.ollama = {
|
options.home.dev.ollama = {
|
||||||
enable = mkEnableOption "Enables Ollama";
|
enable = mkEnableOption "Enables Ollama";
|
||||||
gpu = mkOption {
|
gpu = mkOption {
|
||||||
type = types.nullOr (types.enum [false "rocm" "cuda"]);
|
type = types.nullOr types.enum ["none" "amd" "nvidia"];
|
||||||
example = "rocm";
|
example = "amd";
|
||||||
default = null;
|
default = "none";
|
||||||
description = "Which type of GPU should be used for hardware acceleration";
|
description = "Which type of GPU should be used for hardware acceleration";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.services.ollama = mkIf cfg.enable {
|
config.services.ollama = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
acceleration = cfg.gpu;
|
|
||||||
environmentVariables = {
|
environmentVariables = {
|
||||||
OLLAMA_CONTEXT_LENGTH = "8192";
|
OLLAMA_CONTEXT_LENGTH = "8192";
|
||||||
};
|
};
|
||||||
@@ -90,47 +90,9 @@ in {
|
|||||||
else cfg.sendmail.user;
|
else cfg.sendmail.user;
|
||||||
in {
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
ignores = [
|
userEmail = cfg.email;
|
||||||
".env"
|
userName = cfg.name;
|
||||||
".direnv/"
|
extraConfig = {
|
||||||
|
|
||||||
"*~"
|
|
||||||
"\#*\#"
|
|
||||||
"*.elc"
|
|
||||||
"auto-save-list"
|
|
||||||
".\#*"
|
|
||||||
"*_flymake.*"
|
|
||||||
"/auto/"
|
|
||||||
".projectile"
|
|
||||||
".dir-locals.el"
|
|
||||||
|
|
||||||
"# Org mode files"
|
|
||||||
".org-id-locations"
|
|
||||||
"*_archive"
|
|
||||||
|
|
||||||
"*.out"
|
|
||||||
"*.o"
|
|
||||||
"*.so"
|
|
||||||
|
|
||||||
"# Archives"
|
|
||||||
"*.7zz"
|
|
||||||
"*.dmg"
|
|
||||||
"*.gz"
|
|
||||||
"*.iso"
|
|
||||||
"*.jar"
|
|
||||||
"*.rar"
|
|
||||||
"*.tar"
|
|
||||||
"*.zip"
|
|
||||||
|
|
||||||
"*.log"
|
|
||||||
"*.sqlite"
|
|
||||||
|
|
||||||
"dist/"
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
user = {
|
|
||||||
inherit (cfg) name email;
|
|
||||||
};
|
|
||||||
color.ui = "auto";
|
color.ui = "auto";
|
||||||
column.ui = "auto";
|
column.ui = "auto";
|
||||||
tag.sort = "version:refname";
|
tag.sort = "version:refname";
|
||||||
@@ -218,7 +180,45 @@ in {
|
|||||||
insteadOf = "labs:";
|
insteadOf = "labs:";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
alias = {
|
};
|
||||||
|
ignores = [
|
||||||
|
".env"
|
||||||
|
".direnv/"
|
||||||
|
|
||||||
|
"*~"
|
||||||
|
"\#*\#"
|
||||||
|
"*.elc"
|
||||||
|
"auto-save-list"
|
||||||
|
".\#*"
|
||||||
|
"*_flymake.*"
|
||||||
|
"/auto/"
|
||||||
|
".projectile"
|
||||||
|
".dir-locals.el"
|
||||||
|
|
||||||
|
"# Org mode files"
|
||||||
|
".org-id-locations"
|
||||||
|
"*_archive"
|
||||||
|
|
||||||
|
"*.out"
|
||||||
|
"*.o"
|
||||||
|
"*.so"
|
||||||
|
|
||||||
|
"# Archives"
|
||||||
|
"*.7zz"
|
||||||
|
"*.dmg"
|
||||||
|
"*.gz"
|
||||||
|
"*.iso"
|
||||||
|
"*.jar"
|
||||||
|
"*.rar"
|
||||||
|
"*.tar"
|
||||||
|
"*.zip"
|
||||||
|
|
||||||
|
"*.log"
|
||||||
|
"*.sqlite"
|
||||||
|
|
||||||
|
"dist/"
|
||||||
|
];
|
||||||
|
aliases = {
|
||||||
a = "add --all";
|
a = "add --all";
|
||||||
aca = "!git add --all && git commit --amend";
|
aca = "!git add --all && git commit --amend";
|
||||||
acan = "!git add --all && git commit --amend --no-edit";
|
acan = "!git add --all && git commit --amend --no-edit";
|
||||||
@@ -276,5 +276,4 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,9 +45,6 @@ in {
|
|||||||
default-command = "st";
|
default-command = "st";
|
||||||
pager = ":builtin";
|
pager = ":builtin";
|
||||||
show-cryptographic-signatures = true;
|
show-cryptographic-signatures = true;
|
||||||
conflict-marker-style = "git"; # Support for vc-jj.el
|
|
||||||
diff-formatter = ":git"; # Support for vc-jj.el
|
|
||||||
diff-editor = ":builtin";
|
|
||||||
inherit (cfg) editor;
|
inherit (cfg) editor;
|
||||||
};
|
};
|
||||||
signing = mkIf cfg.signing.enable {
|
signing = mkIf cfg.signing.enable {
|
||||||
@@ -58,41 +55,12 @@ in {
|
|||||||
backends."ssh.program" = "${pkgs.openssh}/bin/ssh-keygen";
|
backends."ssh.program" = "${pkgs.openssh}/bin/ssh-keygen";
|
||||||
};
|
};
|
||||||
aliases = {
|
aliases = {
|
||||||
blame = ["file" "annotate"];
|
|
||||||
consume = ["squash" "--into" "@" "--from"];
|
|
||||||
eject = ["squash" "--from" "@" "--into"];
|
|
||||||
d = ["diff"];
|
|
||||||
dm = ["desc" "-m"];
|
|
||||||
l = ["log"];
|
l = ["log"];
|
||||||
lc = ["log" "-r" "(remote_bookmarks()..@)::"];
|
lc = ["log" "-r" "(remote_bookmarks()..@)::"];
|
||||||
ll = ["log" "-T" "builtin_log_detailed"];
|
|
||||||
open = ["log" "-r" "open()"];
|
|
||||||
n = ["new"];
|
n = ["new"];
|
||||||
nd = ["new" "dev()"];
|
dm = ["desc" "-m"];
|
||||||
nt = ["new" "trunk()"];
|
|
||||||
s = ["show"];
|
|
||||||
tug = ["bookmark" "move" "--from" "heads(::@- & bookmarks())" "--to" "@-"];
|
tug = ["bookmark" "move" "--from" "heads(::@- & bookmarks())" "--to" "@-"];
|
||||||
};
|
};
|
||||||
revset-aliases = {
|
|
||||||
"user(x)" = "author(x) | committer(x)";
|
|
||||||
"gh_pages()" = "ancestors(remote_bookmarks(exact:\"gh-pages\"))";
|
|
||||||
"trunk()" = "latest((present(main) | present(master)) & remote_bookmarks())";
|
|
||||||
"dev()" = "latest((present(dev) | present(develop)) & remote_bookmarks())";
|
|
||||||
"wip()" = "description(glob:\"wip:*\")";
|
|
||||||
"private()" = "description(glob:\"private:*\")";
|
|
||||||
"blacklist()" = "wip() | private()";
|
|
||||||
# stack(x, n) is the set of mutable commits reachable from
|
|
||||||
# 'x', with 'n' parents. 'n' is often useful to customize the
|
|
||||||
# display and return set for certain operations. 'x' can be
|
|
||||||
# used to target the set of 'roots' to traverse, e.g. @ is the
|
|
||||||
# current stack.
|
|
||||||
"stack()" = "ancestors(reachable(@, mutable()), 2)";
|
|
||||||
"stack(x)" = "ancestors(reachable(x, mutable()), 2)";
|
|
||||||
"stack(x, n)" = "ancestors(reachable(x, mutable()), n)";
|
|
||||||
|
|
||||||
"open()" = "stack(dev().. & mine(), 1)";
|
|
||||||
"ready()" = "open() ~ blacklist()::";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ in {
|
|||||||
config = {
|
config = {
|
||||||
programs.ssh = mkIf cfg.enable {
|
programs.ssh = mkIf cfg.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableDefaultConfig = false;
|
|
||||||
includes = lists.optional (cfg.hosts != null) cfg.hosts;
|
includes = lists.optional (cfg.hosts != null) cfg.hosts;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
config = let
|
config = let
|
||||||
emacsPkg = with pkgs; ((emacsPackagesFor emacs).emacsWithPackages (
|
emacsPkg = with pkgs; ((emacsPackagesFor emacsNativeComp).emacsWithPackages (
|
||||||
epkgs: [
|
epkgs: [
|
||||||
epkgs.mu4e
|
epkgs.mu4e
|
||||||
epkgs.pdf-tools
|
epkgs.pdf-tools
|
||||||
@@ -37,7 +37,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
desktop.waybar.style = ./config/waybar/style.css;
|
desktop.waybar.style = ./config/waybar/style.css;
|
||||||
dev.ai.claude.enable = true;
|
dev.ollama = {
|
||||||
|
enable = true;
|
||||||
|
gpu = "amd";
|
||||||
|
};
|
||||||
fullDesktop = true;
|
fullDesktop = true;
|
||||||
shell.fish.enable = true;
|
shell.fish.enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,14 +1,11 @@
|
|||||||
{config, ...}: {
|
{config, ...}: {
|
||||||
imports = [../home.nix];
|
imports = [../home.nix];
|
||||||
home = {
|
home = {
|
||||||
cli.nh.flake = "${config.home.homeDirectory}/.dotfiles";
|
cli.nh.flake = "${config.home.homeDirectory}/nixos";
|
||||||
dev.ai.ollama = {
|
|
||||||
enable = true;
|
|
||||||
gpu = "rocm";
|
|
||||||
};
|
|
||||||
desktop.hyprland.host = "marpa";
|
desktop.hyprland.host = "marpa";
|
||||||
phundrak.sshKey = {
|
phundrak.sshKey = {
|
||||||
content = builtins.readFile ../../../keys/id_marpa.pub;
|
content = builtins.readFile ../../../keys/id_marpa.pub;
|
||||||
|
# file = "${config.home.homeDirectory}/.ssh/id_ed25519.pub";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
{
|
{config, ...}: {
|
||||||
imports = [../light-home.nix];
|
imports = [../light-home.nix];
|
||||||
home = {
|
home = {
|
||||||
cli.nh.flake = "/tank/phundrak/nixos";
|
cli.nh.flake = "/tank/phundrak/nixos";
|
||||||
phundrak.sshKey.content = builtins.readFile ../../../keys/id_tilo.pub;
|
phundrak.sshKey = {
|
||||||
|
content = builtins.readFile ../../../keys/id_tilo.pub;
|
||||||
|
# file = "${config.home.homeDirectory}/.ssh/id_ed25519.pub";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,11 +36,11 @@ with lib; {
|
|||||||
signal-desktop-bin
|
signal-desktop-bin
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
bitwarden-desktop
|
bitwarden
|
||||||
gplates
|
gplates
|
||||||
libnotify
|
libnotify
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
onlyoffice-desktopeditors
|
onlyoffice-bin
|
||||||
scrcpy
|
scrcpy
|
||||||
syncthing
|
syncthing
|
||||||
watchmate
|
watchmate
|
||||||
@@ -65,13 +65,18 @@ with lib; {
|
|||||||
# Graphics
|
# Graphics
|
||||||
inkscape
|
inkscape
|
||||||
gimp
|
gimp
|
||||||
gimpPlugins.gmic
|
gimpPlugins.fourier
|
||||||
|
gimpPlugins.farbfeld
|
||||||
|
|
||||||
# Dev
|
# Dev
|
||||||
devenv
|
devenv
|
||||||
dive # A tool for exploring each layer in a docker image
|
dive # A tool for exploring each layer in a docker image
|
||||||
grype # Vulnerability scanner for container images and filesystems
|
grype # Vulnerability scanner for container images and filesystems
|
||||||
|
kicad # Working on my custom keyboard
|
||||||
|
podman-desktop
|
||||||
|
podman-compose
|
||||||
tectonic # better LaTeX engine
|
tectonic # better LaTeX engine
|
||||||
|
virt-manager
|
||||||
zeal
|
zeal
|
||||||
|
|
||||||
## LSP servers
|
## LSP servers
|
||||||
|
|||||||
Reference in New Issue
Block a user