mirror of
https://github.com/adrlau/nix-dotfiles.git
synced 2025-12-26 20:00:20 +01:00
Compare commits
35 Commits
sway-fixes
...
2411
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a816da62a1 | ||
|
|
9f8a777294 | ||
| c611ca5235 | |||
| eff26f4ce6 | |||
| e4cbc21843 | |||
| 8ca7bb1890 | |||
| f7f492adcc | |||
| 3f6d2e3580 | |||
| e93174e665 | |||
| 71f632b421 | |||
| 9e0e69c80d | |||
|
|
5a601916a4 | ||
| 24b2e36544 | |||
| 1332d72a5c | |||
| be2a7863dc | |||
| 0f028a075a | |||
| a7277567d4 | |||
| 9fec5b56e8 | |||
| e488d6af8e | |||
| 910cd3316b | |||
| 6cdcafb03d | |||
| 935d32f35f | |||
| d2595c7fa6 | |||
| 2c00b7b718 | |||
| 663c21495b | |||
| 85028eabf2 | |||
| 5d8c8f1707 | |||
| 3c47a48c70 | |||
| eec6abf860 | |||
| 332cac2dcb | |||
| f4cce8dfff | |||
| 56459a0285 | |||
| 69da90215f | |||
| d5ad688d40 | |||
| 0ce69398e3 |
14
README.md
14
README.md
@@ -4,3 +4,17 @@ My nix dotfiles. Will not guarrante it to work as it is always a work in progres
|
||||
nix --extra-experimental-features "nix-command flakes" build ".#nixosConfigurations.galadriel.config.system.build.toplevel"
|
||||
|
||||
nixos-rebuild switch --update-input nixpkgs --update-input unstable --no-write-lock-file --refresh --flake git+https://github.com/adrlau/nix-dotfiles.git --upgrade
|
||||
|
||||
|
||||
|
||||
|
||||
show flake attrs
|
||||
```nix flake show .#```
|
||||
|
||||
|
||||
why depends:
|
||||
```nix why-depends /run/current-system /nix/store/...```
|
||||
```nix why-depends .#```
|
||||
```nix why-depends .#nixosConfigurations.galadriel nixpkgs#python312Packages.botorch```
|
||||
```nix why-depends .\#nixosConfigurations.eowyn.config.system.build.toplevel pkgs.python3.12-libarcus-4.12.0 --impure```
|
||||
|
||||
|
||||
733
flake.lock
generated
733
flake.lock
generated
@@ -1,733 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708890466,
|
||||
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "665b3c6748534eb766c777298721cece9453fdae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-fish": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1622559957,
|
||||
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696725948,
|
||||
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-foot",
|
||||
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-foot",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696727917,
|
||||
"narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-kitty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1665001328,
|
||||
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
|
||||
"owner": "kdrag0n",
|
||||
"repo": "base16-kitty",
|
||||
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "kdrag0n",
|
||||
"repo": "base16-kitty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696725902,
|
||||
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-tmux",
|
||||
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-vim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1663659192,
|
||||
"narHash": "sha256-uJvaYYDMXvoo0fhBZUhN8WBXeJ87SRgof6GEK2efFT0=",
|
||||
"owner": "chriskempson",
|
||||
"repo": "base16-vim",
|
||||
"rev": "3be3cd82cd31acfcab9a41bad853d9c68d30478d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "chriskempson",
|
||||
"repo": "base16-vim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devenv": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nix": "nix",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"pre-commit-hooks": "pre-commit-hooks"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1706018268,
|
||||
"narHash": "sha256-d24+re0t8b6HYGzAPZCIJed85n23RUFXQa2yuHoW0uQ=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "ad0ae333b210e31237e1fc4a7ddab71a01785add",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"ozai",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1706336364,
|
||||
"narHash": "sha256-mJ5i2YIVKv6jTN2+l3oOUUej2NUVjJX/H3bAq6019ks=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "eb683549b7d76b12d1a009f888b91b70ed34485f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1685518550,
|
||||
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fromYaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1689549921,
|
||||
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"ozai",
|
||||
"devenv",
|
||||
"pre-commit-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1660459072,
|
||||
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1698794309,
|
||||
"narHash": "sha256-/TIkZ8y5Wv3QHLFp79Poao9fINurKs5pa4z0CRe+F8s=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "a7c169c6c29cf02a4c392fa0acbbc5f5072823e7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "GNOME",
|
||||
"ref": "45.1",
|
||||
"repo": "gnome-shell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1716736833,
|
||||
"narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lowdown-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1633514407,
|
||||
"narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
|
||||
"owner": "kristapsdz",
|
||||
"repo": "lowdown",
|
||||
"rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "kristapsdz",
|
||||
"repo": "lowdown",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"matrix-synapse-next": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710311999,
|
||||
"narHash": "sha256-s0pT1NyrMgeolUojXXcnXQDymN7m80GTF7itCv0ZH20=",
|
||||
"owner": "dali99",
|
||||
"repo": "nixos-matrix-modules",
|
||||
"rev": "6c9b67974b839740e2a738958512c7a704481157",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "dali99",
|
||||
"repo": "nixos-matrix-modules",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix": {
|
||||
"inputs": {
|
||||
"lowdown-src": "lowdown-src",
|
||||
"nixpkgs": [
|
||||
"ozai",
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-regression": "nixpkgs-regression"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1676545802,
|
||||
"narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=",
|
||||
"owner": "domenkozar",
|
||||
"repo": "nix",
|
||||
"rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "domenkozar",
|
||||
"ref": "relaxed-flakes",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-minecraft": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1716995137,
|
||||
"narHash": "sha256-hEn9737jS0d12ubAUYh1N209LABdEgEouroPLfWpUC0=",
|
||||
"owner": "Infinidoge",
|
||||
"repo": "nix-minecraft",
|
||||
"rev": "7ae2611869c843e6f62cab97a1a8a97944984022",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Infinidoge",
|
||||
"repo": "nix-minecraft",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1725885300,
|
||||
"narHash": "sha256-5RLEnou1/GJQl+Wd+Bxaj7QY7FFQ9wjnFq1VNEaxTmc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "166dee4f88a7e3ba1b7a243edb1aca822f00680e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "master",
|
||||
"repo": "nixos-hardware",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1706098335,
|
||||
"narHash": "sha256-r3dWjT8P9/Ah5m5ul4WqIWD8muj5F+/gbCdjiNVBKmU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a77ab169a83a4175169d78684ddd2e54486ac651",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-23.11",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1685801374,
|
||||
"narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c37ca420157f4abc31e26f436c1145f8951ff373",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1716655032,
|
||||
"narHash": "sha256-kQ25DAiCGigsNR/Quxm3v+JGXAEXZ8I7RAF4U94bGzE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "59a450646ec8ee0397f5fa54a08573e8240eb91f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1715266358,
|
||||
"narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f1010e0469db743d14519a1efd37e23f8513d714",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1717090882,
|
||||
"narHash": "sha256-Up5tvtY9YlVEyVn9hfZcxFQi5qVhQ5hdVNGPQOUchNw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d24e7fdcfaecdca496ddd426cae98c9e2d12dfe8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1678875422,
|
||||
"narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ozai": {
|
||||
"inputs": {
|
||||
"devenv": "devenv",
|
||||
"fenix": "fenix",
|
||||
"nixpkgs": [
|
||||
"unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712434594,
|
||||
"narHash": "sha256-Ct0StUM5GLxtA1NGhwekDbT0JLSrjwAmsXAODrjI9G4=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "9844e6890892d22ac6c1164a6c6a18c4de6b2832",
|
||||
"revCount": 27,
|
||||
"type": "git",
|
||||
"url": "https://git.pvv.ntnu.no/Projects/ozai.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.pvv.ntnu.no/Projects/ozai.git"
|
||||
}
|
||||
},
|
||||
"ozai-webui": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1717002624,
|
||||
"narHash": "sha256-HgPu7+J2wAAil7741FovwR5h180f1mn+h3PbPsgSjwY=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "a624e3013fab375f2741957070c116638fd99fe6",
|
||||
"revCount": 18,
|
||||
"type": "git",
|
||||
"url": "https://git.pvv.ntnu.no/adriangl/ozai-webui.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.pvv.ntnu.no/adriangl/ozai-webui.git"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"ozai",
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-utils": "flake-utils_2",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"ozai",
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1704725188,
|
||||
"narHash": "sha256-qq8NbkhRZF1vVYQFt1s8Mbgo8knj+83+QlL5LBnYGpI=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "ea96f0c05924341c551a797aaba8126334c505d2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"matrix-synapse-next": "matrix-synapse-next",
|
||||
"nix-minecraft": "nix-minecraft",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"ozai": "ozai",
|
||||
"ozai-webui": "ozai-webui",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix",
|
||||
"unstable": "unstable"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1706295183,
|
||||
"narHash": "sha256-VSyMaUsXfjb31B8/uT5cM5qXC1VOHLVsCi/bQuo3O/g=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "596e5c77cf5b2b660b3ac2ce732fa0596c246d9b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rust-lang",
|
||||
"ref": "nightly",
|
||||
"repo": "rust-analyzer",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1716692524,
|
||||
"narHash": "sha256-sALodaA7Zkp/JD6ehgwc0UCBrSBfB4cX66uFGTsqeFU=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "962797a8d7f15ed7033031731d0bb77244839960",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
"base16-fish": "base16-fish",
|
||||
"base16-foot": "base16-foot",
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-kitty": "base16-kitty",
|
||||
"base16-tmux": "base16-tmux",
|
||||
"base16-vim": "base16-vim",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": [
|
||||
"home-manager"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713897030,
|
||||
"narHash": "sha256-ZPr1R0d9MVmyRX/+XpYsBdLBEBqYMtuyaAjYgWHMloU=",
|
||||
"owner": "bluskript",
|
||||
"repo": "stylix",
|
||||
"rev": "6bc871ab352c9f18d1179daab9e392a4d46393af",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "bluskript",
|
||||
"repo": "stylix",
|
||||
"rev": "6bc871ab352c9f18d1179daab9e392a4d46393af",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1716769173,
|
||||
"narHash": "sha256-7EXDb5WBw+d004Agt+JHC/Oyh/KTUglOaQ4MNjBbo5w=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9ca3f649614213b2aaf5f1e16ec06952fe4c2632",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
152
flake.nix
152
flake.nix
@@ -2,10 +2,10 @@
|
||||
description = "My System flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager.url = "github:nix-community/home-manager/release-24.05";
|
||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nix-colors.url = "github:misterio77/nix-colors";
|
||||
@@ -14,6 +14,9 @@
|
||||
# stylix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# stylix.inputs.home-manager.follows = "home-manager";
|
||||
|
||||
# NixVirt.url = "https://flakehub.com/f/AshleyYakeley/NixVirt/*.tar.gz";
|
||||
# NixVirt.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
|
||||
ozai.url = "git+https://git.pvv.ntnu.no/Projects/ozai.git";
|
||||
ozai.inputs.nixpkgs.follows = "unstable";
|
||||
@@ -67,7 +70,8 @@
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users."gunalx" = import ./home/full.nix;
|
||||
home-manager.users."gunalx" = import ./home/gunalx/full.nix;
|
||||
home-manager.users."root" = import ./home/root/base.nix;
|
||||
home-manager.backupFileExtension = "bac";
|
||||
home-manager.extraSpecialArgs = {inherit nix-colors inputs;};
|
||||
}
|
||||
@@ -78,7 +82,7 @@
|
||||
};
|
||||
|
||||
aragon = nixpkgs.lib.nixosSystem {
|
||||
system = "x84_64-linux";
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
@@ -91,7 +95,7 @@
|
||||
};
|
||||
|
||||
|
||||
galadriel = nixpkgs.lib.nixosSystem {
|
||||
galadriel = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
@@ -105,10 +109,22 @@
|
||||
ozai.nixosModules.ozai
|
||||
ozai-webui.nixosModules.ozai-webui
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
gandalf = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
modules = [
|
||||
./machines/gandalf/configuration.nix
|
||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
||||
sops-nix.nixosModules.sops
|
||||
|
||||
elrond = nixpkgs.lib.nixosSystem {
|
||||
];
|
||||
};
|
||||
|
||||
elrond = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
@@ -120,132 +136,18 @@
|
||||
inputs.ozai.nixosModules.ozai
|
||||
inputs.ozai-webui.nixosModules.ozai-webui
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
devShells.x86_64-linux = {
|
||||
default = nixpkgs.legacyPackages.x86_64-linux.callPackage ./home/shell.nix { };
|
||||
default = nixpkgs.legacyPackages.x86_64-linux.callPackage ./home/gunalx/shell.nix { };
|
||||
};
|
||||
|
||||
devShells.aarch64-linux = {
|
||||
default = nixpkgs.legacyPackages.aarch64-linux.callPackage ./home/shell.nix { };
|
||||
default = nixpkgs.legacyPackages.aarch64-linux.callPackage ./home/gunalx/shell.nix { };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
96
home/common/sshconfig.nix
Normal file
96
home/common/sshconfig.nix
Normal file
@@ -0,0 +1,96 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
openssh
|
||||
sshfs
|
||||
];
|
||||
|
||||
services.ssh-agent.enable = true;
|
||||
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
compression = true;
|
||||
|
||||
matchBlocks = {
|
||||
"*" = {
|
||||
|
||||
identityFile = [
|
||||
"~/.ssh/nixos"
|
||||
"~/.ssh/id_ed25519"
|
||||
];
|
||||
};
|
||||
|
||||
"*.pvv.ntnu.no" = {
|
||||
user="adriangl";
|
||||
};
|
||||
"*.ntnu.no !login.pvv.ntnu.no" = {
|
||||
user="adriangl";
|
||||
proxyJump="login.pvv.ntnu.no";
|
||||
};
|
||||
"snotra" = {
|
||||
user="adriangl";
|
||||
proxyJump="adriangl@login.pvv.ntnu.no";
|
||||
hostname="snotra.idi.ntnu.no";
|
||||
};
|
||||
|
||||
#pbsds
|
||||
|
||||
"garp.pbsds.net" = {
|
||||
user="adrlau";
|
||||
proxyJump = "login.pvv.ntnu.no";
|
||||
extraOptions = {
|
||||
StrictHostKeyChecking = "no";
|
||||
UserKnownHostsFile = "/dev/null";
|
||||
};
|
||||
};
|
||||
"bolle.pbsds.net" = {
|
||||
user="adrlau";
|
||||
proxyJump = "login.pvv.ntnu.no";
|
||||
};
|
||||
|
||||
#pvv
|
||||
"pvv" = {
|
||||
user="adriangl";
|
||||
hostname="login.pvv.ntnu.no";
|
||||
};
|
||||
"isvegg" = {
|
||||
user="adriangl";
|
||||
hostname="isvegg.pvv.ntnu.no";
|
||||
};
|
||||
|
||||
#home
|
||||
"aragon" = {
|
||||
port = 6969;
|
||||
user="gunalx";
|
||||
hostname="100.74.34.149";
|
||||
};
|
||||
|
||||
"galadriel" = {
|
||||
port = 6969;
|
||||
user="gunalx";
|
||||
hostname="100.84.215.84";
|
||||
};
|
||||
|
||||
"gandalf" = {
|
||||
port = 6969;
|
||||
user="gunalx";
|
||||
hostname="100.124.183.16";
|
||||
};
|
||||
|
||||
"elrond" = {
|
||||
port = 6969;
|
||||
user="gunalx";
|
||||
hostname="100.101.17.39 ";
|
||||
};
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
extraConfig = "";
|
||||
};
|
||||
}
|
||||
|
||||
6
home/common/unfree.nix
Normal file
6
home/common/unfree.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
];
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
}
|
||||
0
home/gunalx/assets/layouts/layout.xkb
Normal file
0
home/gunalx/assets/layouts/layout.xkb
Normal file
0
home/gunalx/assets/layouts/usno.xkb
Normal file
0
home/gunalx/assets/layouts/usno.xkb
Normal file
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 3.3 MiB |
@@ -1,7 +1,8 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
./sshconfig.nix
|
||||
../common/sshconfig.nix
|
||||
../common/unfree.nix
|
||||
];
|
||||
|
||||
programs.nix-index = {
|
||||
162
home/gunalx/fcitx5.nix
Normal file
162
home/gunalx/fcitx5.nix
Normal file
@@ -0,0 +1,162 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
im = config.i18n.inputMethod;
|
||||
cfg = im.fcitx5;
|
||||
fcitx5Package = pkgs.libsForQt5.fcitx5-with-addons.override { inherit (cfg) addons; };
|
||||
in
|
||||
{
|
||||
i18n.inputMethod = {
|
||||
enabled = "fcitx5";
|
||||
fcitx5.addons = with pkgs; [
|
||||
fcitx5-mozc
|
||||
fcitx5-gtk
|
||||
fcitx5-chinese-addons
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
|
||||
xdg.configFile = let
|
||||
format = pkgs.formats.iniWithGlobalSection { };
|
||||
in {
|
||||
"fcitx5/profile" = {
|
||||
force = true;
|
||||
source = format.generate "fcitx5-profile" {
|
||||
sections = {
|
||||
"Groups/0" = {
|
||||
Name = "Default";
|
||||
"Default Layout" = "us";
|
||||
DefaultIM = "mozc";
|
||||
};
|
||||
"Groups/0/Items/0" = {
|
||||
Name = "keyboard-us";
|
||||
Layout = "";
|
||||
};
|
||||
"Groups/0/Items/1" = {
|
||||
Name = "keyboard-no";
|
||||
Layout = "";
|
||||
};
|
||||
"Groups/0/Items/2" = {
|
||||
Name = "mozc";
|
||||
Layout = "";
|
||||
};
|
||||
|
||||
|
||||
"Groups/1" = {
|
||||
Name = "Default";
|
||||
"Default Layout" = "jp";
|
||||
DefaultIM = "mozc";
|
||||
};
|
||||
"Groups/1/Items/0" = {
|
||||
Name = "keyboard-us";
|
||||
Layout = "";
|
||||
};
|
||||
"Groups/1/Items/1" = {
|
||||
Name = "keyboard-no";
|
||||
Layout = "";
|
||||
};
|
||||
"Groups/1/Items/2" = {
|
||||
Name = "mozc";
|
||||
Layout = "";
|
||||
};
|
||||
|
||||
|
||||
GroupOrder = {
|
||||
"0" = "Default";
|
||||
"1" = "Secondary";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
"fcitx5/config".source = format.generate "fcitx5-config" {
|
||||
sections = {
|
||||
Hotkey = {
|
||||
# Enumerate when press trigger key repeatedly
|
||||
EnumerateWithTriggerKeys = "True";
|
||||
# Temporally switch between first and current Input Method
|
||||
AltTriggerKeys = "";
|
||||
# Enumerate Input Method Forward
|
||||
EnumerateForwardKeys = "";
|
||||
# Enumerate Input Method Backward
|
||||
EnumerateBackwardKeys = "";
|
||||
# Skip first input method while enumerating
|
||||
EnumerateSkipFirst = "False";
|
||||
};
|
||||
|
||||
"Hotkey/TriggerKeys" = {
|
||||
"0" = "Control+space";
|
||||
"1" = "Zenkaku_Hankaku";
|
||||
"2" = "Hangul";
|
||||
};
|
||||
|
||||
"Hotkey/EnumerateGroupForwardKeys"."0" = "Super+space";
|
||||
"Hotkey/EnumerateGroupBackwardKeys"."0" = "Shift+Super+space";
|
||||
"Hotkey/ActivateKeys"."0" = "Hangul_Hanja";
|
||||
"Hotkey/DeactivateKeys"."0" = "Hangul_Romaja";
|
||||
"Hotkey/PrevPage"."0" = "Up";
|
||||
"Hotkey/NextPage"."0" = "Down";
|
||||
"Hotkey/PrevCandidate"."0" = "Shift+Tab";
|
||||
"Hotkey/NextCandidate"."0" = "Tab";
|
||||
"Hotkey/TogglePreedit"."0" = "Control+Alt+P";
|
||||
|
||||
Behaviour = {
|
||||
# Active By Default
|
||||
ActiveByDefault = "False";
|
||||
# Share Input State
|
||||
ShareInputState = "All";
|
||||
# Show preedit in application
|
||||
PreeditEnabledByDefault = "True";
|
||||
# Show Input Method Information when switch input method
|
||||
ShowInputMethodInformation = "True";
|
||||
# Show Input Method Information when changing focus
|
||||
showInputMethodInformationWhenFocusIn = "False";
|
||||
# Show compact input method information
|
||||
CompactInputMethodInformation = "True";
|
||||
# Show first input method information
|
||||
ShowFirstInputMethodInformation = "True";
|
||||
# Default page size
|
||||
DefaultPageSize = 5;
|
||||
# Override Xkb Option
|
||||
OverrideXkbOption = "False";
|
||||
# Custom Xkb Option
|
||||
CustomXkbOption = "";
|
||||
# Force Enabled Addons
|
||||
EnabledAddons = "";
|
||||
# Force Disabled Addons
|
||||
DisabledAddons = "";
|
||||
# Preload input method to be used by default
|
||||
PreloadInputMethod = "True";
|
||||
# Allow input method in the password field
|
||||
AllowInputMethodForPassword = "False";
|
||||
# Show preedit text when typing password
|
||||
ShowPreeditForPassword = "False";
|
||||
# Interval of saving user data in minutes
|
||||
AutoSavePeriod = 30;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
"fcitx5/conf/classicui.conf".source = format.generate "fcitx5-classicui.conf" {
|
||||
globalSection = {
|
||||
Theme = "Material-Color";
|
||||
PerScreenDPI = "True";
|
||||
# Font = "";
|
||||
"Vertical Candidate List" = "True";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.dataFile."fcitx5/themes/Material-Color" = {
|
||||
recursive = true;
|
||||
source = "${pkgs.fcitx5-material-color}/share/fcitx5/themes/Material-Color-teal";
|
||||
};
|
||||
|
||||
systemd.user.services.fcitx5-daemon = {
|
||||
Service.Restart="on-failure";
|
||||
Service.ExecStart = lib.mkForce "${fcitx5Package}/bin/fcitx5";
|
||||
Service.ExecReload = "/bin/kill -HUP $MAINPID";
|
||||
};
|
||||
}
|
||||
|
||||
1852
home/gunalx/fuzzel-emoji
Executable file
1852
home/gunalx/fuzzel-emoji
Executable file
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,7 @@ in
|
||||
./waybar.nix
|
||||
./foot.nix
|
||||
./fonts.nix
|
||||
./fcitx5.nix
|
||||
./kanshi.nix
|
||||
./swaylock.nix
|
||||
#./assets/wallpapers
|
||||
@@ -25,10 +26,12 @@ in
|
||||
#];
|
||||
home.packages = with pkgs; [
|
||||
wl-clipboard
|
||||
libsForQt5.qt5ct
|
||||
#wl-copy
|
||||
libsForQt5.qt5ct
|
||||
qt6Packages.qt6ct
|
||||
pass-wayland
|
||||
wev
|
||||
xkb-switch
|
||||
|
||||
#term
|
||||
foot
|
||||
@@ -44,6 +47,8 @@ in
|
||||
#swaybg
|
||||
swww
|
||||
|
||||
wleave
|
||||
|
||||
#bar applets and notifications
|
||||
waybar
|
||||
networkmanagerapplet
|
||||
@@ -52,7 +57,6 @@ in
|
||||
mako
|
||||
|
||||
#lockscreen and related
|
||||
wleave
|
||||
swayidle
|
||||
#swaylock-effects
|
||||
#swaylock-fancy #migth change to this default may look prettier.
|
||||
@@ -71,6 +75,9 @@ in
|
||||
bemoji
|
||||
fuzzel
|
||||
|
||||
#for emoji picker
|
||||
emote
|
||||
unicode-emoji
|
||||
|
||||
#screenshots
|
||||
grim
|
||||
@@ -95,6 +102,8 @@ in
|
||||
];
|
||||
|
||||
|
||||
home.keyboard.layout = "us,no";
|
||||
|
||||
home.sessionVariables = {
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
MOZ_USE_XINPUT2 = "1";
|
||||
@@ -120,7 +129,9 @@ in
|
||||
};
|
||||
|
||||
|
||||
|
||||
programs.wlogout = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
wayland.windowManager.sway = let
|
||||
cfg = config.wayland.windowManager.sway;
|
||||
@@ -145,7 +156,7 @@ in {
|
||||
|
||||
#wallpaper
|
||||
{command = "swww-daemon";}
|
||||
{command = "while true; do for wallpaper in $WALLPAPER_DIR/*; do swww img \"$wallpaper\"; sleep 15; done; done;";}
|
||||
{command = "while true; do for wallpaper in $WALLPAPER_DIR/*; do swww img $wallpaper; sleep 15; done; done;";}
|
||||
|
||||
#idlelock
|
||||
{command = ''swayidle \
|
||||
@@ -258,9 +269,12 @@ in {
|
||||
"${cfg.config.modifier}+f11" = "exec grim -g \"$(slurp)\" ~/Pictures/screenshots/\"screenshot-`date +%F-%T`\".png";
|
||||
"${cfg.config.modifier}+Print" = "exec grim -g \"$(slurp)\" ~/Pictures/screenshots/\"screenshot-`date +%F-%T`\".png";
|
||||
"${cfg.config.modifier}+m" = "exec ${idlelock}";
|
||||
"ctrl+space" = "exec xkb_switch_layout next"; #TODO:verify
|
||||
"${cfg.config.modifier}+tab" = "workspace next";
|
||||
##emoji piacker
|
||||
"${cfg.config.modifier}+period" = "exec emote";
|
||||
#"ctrl+space" = "exec xkb_switch_layout next"; #TODO:verify
|
||||
"${cfg.config.modifier}+tab" = "${menu}";
|
||||
"Alt+tab" = "workspace back_and_forth";
|
||||
"XF86PowerOff" = "exec ${pkgs.wleave}/bin/wleave";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -269,8 +283,10 @@ in {
|
||||
xkb_capslock disabled
|
||||
xkb_numlock enabled
|
||||
|
||||
xkb_layout us,no
|
||||
xkb_options :
|
||||
xkb_layout us,no,jp
|
||||
xkb_options ,,
|
||||
xkb_options grp:win_space_toggle
|
||||
xkb_numlock enabled # enable numlock when logging in
|
||||
}
|
||||
|
||||
|
||||
@@ -284,10 +300,25 @@ in {
|
||||
default_floating_border pixel 2
|
||||
titlebar_border_thickness 1
|
||||
|
||||
client.focused #${palette.base0D} #${palette.base00} #${palette.base05} #${palette.base0D} #${palette.base0D}
|
||||
client.focused_inactive #${palette.base0D} #${palette.base00} #${palette.base05} #${palette.base0D} #${palette.base0D}
|
||||
client.unfocused #${palette.base0D} #${palette.base03} #${palette.base05} #${palette.base0D} #${palette.base00}
|
||||
client.urgent #${palette.base0D} #${palette.base0D} #${palette.base03} #${palette.base0D} #${palette.base00}
|
||||
###client.focused #${palette.base0D} #${palette.base00} #${palette.base05} #${palette.base0D} #${palette.base0D}
|
||||
###client.focused_inactive #${palette.base0D} #${palette.base00} #${palette.base05} #${palette.base0D} #${palette.base0D}
|
||||
###client.unfocused #${palette.base0D} #${palette.base03} #${palette.base05} #${palette.base0D} #${palette.base00}
|
||||
###client.urgent #${palette.base0D} #${palette.base0D} #${palette.base03} #${palette.base0D} #${palette.base00}
|
||||
|
||||
# # window decorations
|
||||
# # class border background text indicator child_border
|
||||
# client.focused #80a0ff #303030 #c6c6c6 #80a0ff #80a0ff
|
||||
# client.focused_inactive #80a0ff #303030 #c6c6c6 #80a0ff #80a0ff
|
||||
# client.unfocused #80a0ff #080808 #c6c6c6 #80a0ff #303030
|
||||
# client.urgent #80a0ff #80a0ff #080808 #80a0ff
|
||||
|
||||
# window decorations
|
||||
# class border background text indicator child_border
|
||||
client.focused ${palette.base0A} ${palette.base01} ${palette.base05} ${palette.base0A} ${palette.base0A}
|
||||
client.focused_inactive ${palette.base0A} ${palette.base01} ${palette.base05} ${palette.base0A} ${palette.base0A}
|
||||
client.unfocused ${palette.base0A} ${palette.base00} ${palette.base05} ${palette.base0A} ${palette.base01}
|
||||
client.urgent ${palette.base0A} ${palette.base0A} ${palette.base00} ${palette.base0A}
|
||||
|
||||
|
||||
for_window [title="(?:Open|Save) (?:File|Folder|As)"] floating enable
|
||||
for_window [title="(?:Open|Save) (?:File|Folder|As)"] resize set 1920 1080
|
||||
|
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 3.3 MiB |
83
home/root/base.nix
Normal file
83
home/root/base.nix
Normal file
@@ -0,0 +1,83 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
../common/sshconfig.nix
|
||||
../common/unfree.nix
|
||||
];
|
||||
|
||||
programs.nix-index = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = (_: true);
|
||||
};
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
"rebuild" = "sudo nixos-rebuild switch --update-input nixpkgs --update-input unstable --no-write-lock-file --refresh --flake git+https://github.com/adrlau/nix-dotfiles.git --upgrade";
|
||||
"nixedit" = "vim /etc/nixos/nix-dotfiles/.";
|
||||
"nixdir" = "cd /etc/nixos/nix-dotfiles";
|
||||
|
||||
|
||||
"," = "comma ";
|
||||
|
||||
"gst" = "git status";
|
||||
"gsw" = "git switch";
|
||||
"gcm" = "git commit -m ";
|
||||
"gca" = "git commit --amend";
|
||||
"gaa" = "git add -A";
|
||||
"gb" = "git branch";
|
||||
|
||||
"sl" = "eza";
|
||||
"ls" = "eza";
|
||||
"lls" = "ls";
|
||||
"la" = "eza -la";
|
||||
"tree" = "eza -T";
|
||||
"neofetch" = "fastfetch";
|
||||
};
|
||||
historyControl = ["ignoredups" "ignorespace" "erasedups"];
|
||||
historyIgnore = [ "ls" "cd" "exit" "cd .." ".." "la"];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
bottom
|
||||
htop
|
||||
fastfetch
|
||||
eza
|
||||
ripgrep
|
||||
foot.terminfo
|
||||
comma
|
||||
];
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
|
||||
extraConfig = {
|
||||
pull.rebase = true;
|
||||
push.autoSetupRemote = true;
|
||||
color.ui = "auto";
|
||||
init.defaultBranch = "main";
|
||||
lfs.enable = true;
|
||||
user = {
|
||||
name = "Adrian G L";
|
||||
email = "adrian@lauterer.it";
|
||||
};
|
||||
};
|
||||
ignores = [
|
||||
"*~"
|
||||
"*.swp"
|
||||
".DS_Store"
|
||||
".vscode"
|
||||
"*__PYCACHE__*"
|
||||
"*__pycache__*"
|
||||
];
|
||||
};
|
||||
|
||||
home.stateVersion = "23.05";
|
||||
}
|
||||
|
||||
33
home/root/fonts.nix
Normal file
33
home/root/fonts.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
nerdfonts
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
liberation_ttf
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
nerdfonts
|
||||
ubuntu_font_family
|
||||
zpix-pixel-font
|
||||
_0xproto
|
||||
font-awesome
|
||||
font-awesome_5
|
||||
font-awesome_4
|
||||
|
||||
];
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
fonts.fontconfig.defaultFonts = {
|
||||
emoji = ["noto-fonts-emoji font-awesome"];
|
||||
monospace = ["0xproto" "zpix" "fira-code"];
|
||||
serif = [ "Noto Serif" "Source Han Serif" ];
|
||||
sansSerif = [ "Noto Sans" "Source Han Sans" ];
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
55
home/root/foot.nix
Normal file
55
home/root/foot.nix
Normal file
@@ -0,0 +1,55 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
foot
|
||||
];
|
||||
|
||||
programs.foot.enable = true;
|
||||
programs.foot.settings = {
|
||||
|
||||
main = {
|
||||
term = "xterm-256color";
|
||||
font = "0xproto:size=12";
|
||||
#dpi-aware = "yes";
|
||||
};
|
||||
mouse = {
|
||||
hide-when-typing = "yes";
|
||||
};
|
||||
|
||||
|
||||
colors = {
|
||||
alpha = "0.7";
|
||||
#set based on https://github.com/tinted-theming/base16-foot/blob/main/colors/base16-apathy.ini and https://github.com/tinted-theming/base16-schemes/blob/main/apathy.yaml
|
||||
|
||||
foreground = "${config.colorScheme.palette.base05}";
|
||||
background = "${config.colorScheme.palette.base00}";
|
||||
|
||||
regular0 = "${config.colorScheme.palette.base00}";
|
||||
regular1 = "${config.colorScheme.palette.base08}";
|
||||
regular2 = "${config.colorScheme.palette.base0B}";
|
||||
regular3 = "${config.colorScheme.palette.base0A}";
|
||||
regular4 = "${config.colorScheme.palette.base0D}";
|
||||
regular5 = "${config.colorScheme.palette.base0E}";
|
||||
regular6 = "${config.colorScheme.palette.base0C}";
|
||||
regular7 = "${config.colorScheme.palette.base05}";
|
||||
|
||||
bright0 = "${config.colorScheme.palette.base03}";
|
||||
bright1 = "${config.colorScheme.palette.base08}";
|
||||
bright2 = "${config.colorScheme.palette.base0B}";
|
||||
bright3 = "${config.colorScheme.palette.base0A}";
|
||||
bright4 = "${config.colorScheme.palette.base0D}";
|
||||
bright5 = "${config.colorScheme.palette.base0E}";
|
||||
bright6 = "${config.colorScheme.palette.base0C}";
|
||||
bright7 = "${config.colorScheme.palette.base07}";
|
||||
selection-foreground = "${config.colorScheme.palette.base00}";
|
||||
selection-background = "${config.colorScheme.palette.base0A}";
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
openssh
|
||||
sshfs
|
||||
];
|
||||
|
||||
services.ssh-agent.enable = true;
|
||||
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
compression = true;
|
||||
|
||||
matchBlocks = {
|
||||
"*.pvv.ntnu.no" = {
|
||||
user="adriangl";
|
||||
};
|
||||
"*.ntnu.no !*.pvv.ntnu.no" = {
|
||||
user="adriangl";
|
||||
proxyJump="isvegg.pvv.ntnu.no";
|
||||
};
|
||||
"snotra" = {
|
||||
user="adriangl";
|
||||
proxyJump="adriangl@isvegg.pvv.ntnu.no";
|
||||
hostname="snotra.idi.ntnu.no";
|
||||
};
|
||||
|
||||
#pvv
|
||||
"pvv" = {
|
||||
user="adriangl";
|
||||
hostname="login.pvv.ntnu.no";
|
||||
};
|
||||
"isvegg" = {
|
||||
user="adriangl";
|
||||
hostname="isvegg.pvv.ntnu.no";
|
||||
};
|
||||
|
||||
#home
|
||||
"aragon" = {
|
||||
port = 6969;
|
||||
user="gunalx";
|
||||
hostname="100.74.34.149";
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
extraConfig = "";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
#customised applications
|
||||
../../services/podman.nix
|
||||
../../services/boinc.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
./hardware-configuration.nix
|
||||
../../profiles/webhost.nix
|
||||
../../profiles/base.nix
|
||||
../../services/gate.nix
|
||||
../../services/ozai.nix
|
||||
#../../services/ozai.nix
|
||||
./routes.nix
|
||||
];
|
||||
|
||||
|
||||
46
machines/elrond/domeneshop-dyndns.nix
Normal file
46
machines/elrond/domeneshop-dyndns.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.domeneshop-dyndns;
|
||||
in {
|
||||
options.services.domeneshop-dyndns = {
|
||||
enable = lib.mkEnableOption "Domeneshop DynDNS";
|
||||
|
||||
domain = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Domain name to configure";
|
||||
};
|
||||
|
||||
netrcFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Path to the file that contains `machine api.domeneshop.no login <DDNS_TOKEN> password <DDNS_SECRET>` from https://domene.shop/admin?view=api";
|
||||
};
|
||||
|
||||
startAt = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "*:0/10"; # Every 10 minutes
|
||||
description = "Systemd onCalendar expression for when to run the timer";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.domeneshop-dyndns = {
|
||||
serviceConfig.LoadCredential = "netrc:${cfg.netrcFile}";
|
||||
startAt = cfg.startAt;
|
||||
|
||||
script = ''
|
||||
DNSNAME="${cfg.domain}"
|
||||
NEW_IP="$(${lib.getExe pkgs.curl} --silent https://ipinfo.io/ip)"
|
||||
OLD_IP="$(${lib.getExe pkgs.getent} hosts "$DNSNAME" | ${lib.getExe pkgs.gawk} '{ print $1 }')"
|
||||
|
||||
if [[ "$NEW_IP" != "$OLD_IP" ]]; then
|
||||
echo "Old IP ($OLD_IP) does not match new IP ($NEW_IP), updating..."
|
||||
${lib.getExe pkgs.curl} --silent --netrc-file "$CREDENTIALS_DIRECTORY/netrc" "https://api.domeneshop.no/v0/dyndns/update?hostname=$DNSNAME&myip=$NEW_IP"
|
||||
else
|
||||
echo "Old IP ($OLD_IP) matches new IP ($NEW_IP), exiting..."
|
||||
fi
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
services.nginx = {
|
||||
virtualHosts."lauterer.it" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = config.networking.domain;
|
||||
locations."/" = {
|
||||
proxyWebsockets = true;
|
||||
proxyPass = "http://100.84.215.84";
|
||||
};
|
||||
};
|
||||
#virtualHosts."lauterer.it" = {
|
||||
# forceSSL = true;
|
||||
# useACMEHost = config.networking.domain;
|
||||
# locations."/" = {
|
||||
# proxyWebsockets = true;
|
||||
# proxyPass = "http://100.84.215.84";
|
||||
# };
|
||||
#};
|
||||
|
||||
virtualHosts."managment.lauterer.it" = {
|
||||
forceSSL = true;
|
||||
@@ -50,6 +50,18 @@
|
||||
#basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
};
|
||||
|
||||
# virtualHosts."hybel.lauterer.it" = {
|
||||
# forceSSL = true;
|
||||
# useACMEHost = config.networking.domain;
|
||||
# locations."/" = {
|
||||
# proxyWebsockets = true;
|
||||
# proxyPass = "http://100.109.23.4:8123";
|
||||
# };
|
||||
# # ignorerer sikkerhet for littegran for å oprettholde lettvinthet og app kompatibilitet.
|
||||
# #basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
# };
|
||||
|
||||
|
||||
virtualHosts."jellyfin.lauterer.it" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = config.networking.domain;
|
||||
@@ -69,6 +81,8 @@
|
||||
basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
};
|
||||
|
||||
|
||||
|
||||
virtualHosts."rss.lauterer.it" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = config.networking.domain;
|
||||
@@ -79,6 +93,18 @@
|
||||
#basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
};
|
||||
|
||||
|
||||
virtualHosts."ai.lauterer.it" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = config.networking.domain;
|
||||
locations."/" = {
|
||||
proxyWebsockets = true;
|
||||
proxyPass = "http://100.84.215.84:11111";
|
||||
};
|
||||
#basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
};
|
||||
|
||||
|
||||
#virtualHosts."azul.256.no" = {
|
||||
# forceSSL = true;
|
||||
# useACMEHost = config.networking.domain;
|
||||
@@ -89,15 +115,15 @@
|
||||
# #basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
#};
|
||||
|
||||
virtualHosts."azul.256.no" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = config.networking.domain;
|
||||
locations."/" = {
|
||||
proxyWebsockets = true;
|
||||
proxyPass = "http://localhost:8085";
|
||||
};
|
||||
#basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
};
|
||||
# virtualHosts."azul.256.no" = {
|
||||
# forceSSL = true;
|
||||
# useACMEHost = config.networking.domain;
|
||||
# locations."/" = {
|
||||
# proxyWebsockets = true;
|
||||
# proxyPass = "http://localhost:8095";
|
||||
# };
|
||||
# #basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
# };
|
||||
|
||||
|
||||
#virtualHosts."shiori.lauterer.it" = config.services.nginx.virtualHosts."archive.lauterer.it";
|
||||
@@ -111,7 +137,7 @@
|
||||
proxyPass = "http://100.84.215.84:8082";
|
||||
};
|
||||
#basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
./hardware-configuration.nix
|
||||
../../profiles/base.nix
|
||||
../../profiles/desktop.nix
|
||||
../../profiles/development.nix
|
||||
];
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
@@ -46,7 +47,7 @@
|
||||
users.users.gunalx = {
|
||||
isNormalUser = true;
|
||||
description = "Adrian Gunnar Lauterer";
|
||||
extraGroups = [ "networkmanager" "wheel" "video" ];
|
||||
extraGroups = [ "networkmanager" "wheel" "video" "input" "audio"];
|
||||
packages = with pkgs; [
|
||||
];
|
||||
};
|
||||
|
||||
@@ -18,10 +18,9 @@
|
||||
../../profiles/ai.nix
|
||||
../../profiles/mediaserver.nix
|
||||
|
||||
../../services/smb.nix
|
||||
#../../services/smb.nix
|
||||
../../services/wordpress.nix
|
||||
../../services/torrent.nix
|
||||
../../services/mc.nix
|
||||
#../../services/ozai.nix
|
||||
#../../services/stableDiffusion.nix
|
||||
../../services/rss.nix
|
||||
@@ -70,12 +69,11 @@
|
||||
jftui
|
||||
sonixd
|
||||
unpackerr
|
||||
qbittorrent-nox
|
||||
python3
|
||||
python3Packages.torchWithCuda
|
||||
ollama
|
||||
];
|
||||
|
||||
unstable.qbittorrent-nox
|
||||
];
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
|
||||
@@ -1,53 +1,61 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
# Enable OpenGL
|
||||
hardware.opengl = {
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
nixpkgs.config = {
|
||||
allowUnfree = true;
|
||||
cudaSupport = true;
|
||||
};
|
||||
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
#boot with nvidia kernel module
|
||||
boot.initrd.kernelModules = [ "nvidia" ];
|
||||
hardware.nvidia = {
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
#powerManagement.enable = true;
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
# Fine-grained power management. Turns off GPU when not in use. Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
#powerManagement.finegrained = true;
|
||||
|
||||
# Use the NVidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
# Use the NVidia open source kernel module (not to be confused with the independent third-party "nouveau" open source driver).
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false;
|
||||
open = false; #need proprietary for cuda.
|
||||
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
# Enable the Nvidia settings menu, accessible via `nvidia-settings`.
|
||||
#nvidiaSettings = true;
|
||||
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
|
||||
# Enable the CUDA toolkit
|
||||
#install packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
#cudaPackages.cudnn
|
||||
#cudaPackages.cudatoolkit
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
cudaPackages.cudatoolkit
|
||||
cudaPackages.cudnn
|
||||
nvtopPackages.nvidia
|
||||
gcc
|
||||
cudaPackages.nccl
|
||||
cmake
|
||||
#llama-cpp
|
||||
#python3Packages.pip
|
||||
#cudaPackages.cuda_cudart
|
||||
#xgboostWithCuda
|
||||
#libxcrypt-legacy
|
||||
#cudaPackages.setupCudaHook
|
||||
#cudaPackages.markForCudatoolkitRootHook
|
||||
#cudaPackages.cuda_cudart.static
|
||||
pkgs.cudaPackages.libcublas
|
||||
#cudaPackages.tensorrt_8_6_0 #needs to be added manually, to the store and is a pain because of the license agreement and garbage collection
|
||||
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||
"cuda_cudart"
|
||||
];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
services.zfs.autoSnapshot.enable = true;
|
||||
services.zfs.autoSnapshot.flags = "-k -p --utc";
|
||||
|
||||
|
||||
boot.zfs.extraPools = [ "Main" ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
zfs
|
||||
zfsnap
|
||||
|
||||
30
machines/gandalf/bootvm-daemon.sh
Executable file
30
machines/gandalf/bootvm-daemon.sh
Executable file
@@ -0,0 +1,30 @@
|
||||
qemu-system-x86_64 \
|
||||
-m 4G \
|
||||
-cpu host \
|
||||
-smp 2 \
|
||||
-enable-kvm \
|
||||
-device vfio-pci,host=04:00.0 \
|
||||
-device vfio-pci,host=05:00.0 \
|
||||
-device vfio-pci,host=06:00.0 \
|
||||
-device vfio-pci,host=07:00.0 \
|
||||
-device vfio-pci,host=08:00.0 \
|
||||
-device vfio-pci,host=0b:00.0 \
|
||||
-device vfio-pci,host=0b:00.1 \
|
||||
-device vfio-pci,host=0c:00.0 \
|
||||
-device vfio-pci,host=0c:00.1 \
|
||||
-drive file=/vm-images/OPNsense-24.7-nano-amd64.img,format=raw \
|
||||
-vga virtio \
|
||||
-netdev user,id=net0 -device virtio-net,netdev=net0 \
|
||||
-display none \
|
||||
-daemonize \
|
||||
|
||||
#-net none
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:04:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:05:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:06:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:07:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:08:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:0b:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:0b:00.1\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:0c:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:0c:00.1\ #
|
||||
29
machines/gandalf/bootvm.sh
Executable file
29
machines/gandalf/bootvm.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
qemu-system-x86_64 \
|
||||
-m 4G \
|
||||
-cpu host \
|
||||
-smp 2 \
|
||||
-enable-kvm \
|
||||
-device vfio-pci,host=04:00.0 \
|
||||
-device vfio-pci,host=05:00.0 \
|
||||
-device vfio-pci,host=06:00.0 \
|
||||
-device vfio-pci,host=07:00.0 \
|
||||
-device vfio-pci,host=08:00.0 \
|
||||
-device vfio-pci,host=0c:00.1 \
|
||||
-device vfio-pci,host=08:00.0 \
|
||||
-device vfio-pci,host=08:00.0 \
|
||||
-device vfio-pci,host=08:00.0 \
|
||||
-drive file=/vm-images/OPNsense-24.7-nano-amd64.img,format=raw \
|
||||
-vga virtio \
|
||||
-netdev user,id=net0 -device virtio-net,netdev=net0 \
|
||||
-nographic \
|
||||
|
||||
#-net none
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:04:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:05:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:06:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:07:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:08:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:0b:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:0b:00.1\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:0c:00.0\
|
||||
# -device hostdev,/sys/bus/pci/devices/0000:0c:00.1\ #
|
||||
86
machines/gandalf/configuration.nix
Normal file
86
machines/gandalf/configuration.nix
Normal file
@@ -0,0 +1,86 @@
|
||||
# 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, lib, ... }:
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../profiles/base.nix
|
||||
../../services/virt.nix
|
||||
./qemu.nix
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
|
||||
# Pick only one of the below networking options.
|
||||
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
|
||||
# Per-interface useDHCP will be mandatory in the future, so this generated config
|
||||
# replicates the default behaviour.
|
||||
# networking.useDHCP = true;
|
||||
networking.interfaces.wlp3s0f0.useDHCP = true; # Interface is not constant. I really only want to use dhcp att all so could remove this in favor of the old way.
|
||||
networking.hostName = "gandalf"; # Define your hostname.
|
||||
|
||||
boot.kernel.sysctl = {
|
||||
"net.ipv4.conf.all.forwarding" = true;
|
||||
"net.ipv6.conf.all.forwarding" = true;
|
||||
};
|
||||
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
wget
|
||||
tailscale
|
||||
];
|
||||
|
||||
users.users.gunalx = { # Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||
initialPassword = "pw123"; # this is changed imedeately.
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
users.users."root".openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTExYoT3+flrd2wPYiT7sFFDmAUqi2YAz0ldQg7WMop"
|
||||
];
|
||||
users.users."gunalx".openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTExYoT3+flrd2wPYiT7sFFDmAUqi2YAz0ldQg7WMop"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEj+Y0RUrSaF8gUW8m2BY6i8e7/0bUWhu8u8KW+AoHDh gunalx@nixos"
|
||||
];
|
||||
|
||||
#firewall options
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
checkReversePath = "loose";
|
||||
trustedInterfaces = [ "tailscale0" ];
|
||||
allowedUDPPorts = [
|
||||
80
|
||||
443
|
||||
25565
|
||||
config.services.tailscale.port
|
||||
#config.services.headscale.port
|
||||
];
|
||||
allowedTCPPorts = config.networking.firewall.allowedUDPPorts;
|
||||
};
|
||||
|
||||
|
||||
# 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 = "24.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
55
machines/gandalf/hardware-configuration.nix
Normal file
55
machines/gandalf/hardware-configuration.nix
Normal file
@@ -0,0 +1,55 @@
|
||||
# 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 = [ "ahci" "xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||
boot.kernelParams = [ "intel_iommu=on" "iommu=pt" ];
|
||||
boot.kernelModules = [ "kvm-intel" "vfio_pci" "drm" "drm_kms_helper"];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.extraModprobeConfig = ''
|
||||
options vfio-pci ids=8086:125c,8086:15c4
|
||||
'';
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/a12c97d6-8cbb-4853-8642-ba8760a43584";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/5526-5FF3";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/vm-images" =
|
||||
{ device = "/dev/disk/by-uuid/4f4505c3-8942-4767-b7f2-b27087aa9ec1";
|
||||
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;
|
||||
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp6s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp8s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp3s0f0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
55
machines/gandalf/qemu.nix
Normal file
55
machines/gandalf/qemu.nix
Normal file
@@ -0,0 +1,55 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
users.users.qemu = {
|
||||
isSystemUser = true;
|
||||
description = "QEMU User";
|
||||
home = "/var/lib/qemu";
|
||||
createHome = true;
|
||||
group = "qemu";
|
||||
extraGroups = [ "vfio" ]; # Add qemu to vfio group
|
||||
};
|
||||
users.groups.qemu = {};
|
||||
|
||||
services.udev.extraRules = ''
|
||||
# Set proper permissions for VFIO devices
|
||||
SUBSYSTEM=="vfio", GROUP="vfio", MODE="0660"
|
||||
'';
|
||||
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
qemu_kvm
|
||||
];
|
||||
|
||||
systemd.services.qemu-vm = {
|
||||
description = "QEMU VM Service";
|
||||
#wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
#can add ,rombar=0 to vfio devices, but it does at least run now.
|
||||
ExecStart = ''
|
||||
${pkgs.qemu_kvm}/bin/qemu-system-x86_64 \
|
||||
-m 4G \
|
||||
-cpu host \
|
||||
-smp 2 \
|
||||
-enable-kvm \
|
||||
-device vfio-pci,host=04:00.0 \
|
||||
-device vfio-pci,host=05:00.0 \
|
||||
-device vfio-pci,host=06:00.0 \
|
||||
-device vfio-pci,host=07:00.0 \
|
||||
-device vfio-pci,host=08:00.0 \
|
||||
-device vfio-pci,host=0b:00.0 \
|
||||
-device vfio-pci,host=0b:00.1 \
|
||||
-device vfio-pci,host=0c:00.0 \
|
||||
-device vfio-pci,host=0c:00.1 \
|
||||
-drive file=/vm-images/OPNsense-24.7-nano-amd64.img,format=raw \
|
||||
-vga virtio \
|
||||
-netdev user,id=net0 -device virtio-net,netdev=net0 \
|
||||
-display none \
|
||||
#-daemonize
|
||||
'';
|
||||
Restart = "on-failure";
|
||||
User = "root"; # Run as the qemu user
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
2
machines/gandalf/text.md
Normal file
2
machines/gandalf/text.md
Normal file
@@ -0,0 +1,2 @@
|
||||
qemu-img create -f qcow2 /vm-images/opnsense.qcow2 20G
|
||||
|
||||
@@ -5,44 +5,50 @@
|
||||
./base.nix
|
||||
../services/podman.nix
|
||||
../services/ollama.nix
|
||||
#../services/ollama-webui.nix
|
||||
#../services/whisper.nix
|
||||
../services/ollamaWebui.nix
|
||||
# ../services/whisper.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs.unstable; [
|
||||
# ollama
|
||||
# openai-whisper
|
||||
# openai-whisper-cpp
|
||||
# wyoming-faster-whisper
|
||||
# subtitlr
|
||||
# piper-tts
|
||||
ollama
|
||||
openai-whisper
|
||||
openai-whisper-cpp
|
||||
wyoming-faster-whisper
|
||||
wyoming-piper
|
||||
subtitlr
|
||||
piper-tts
|
||||
bark
|
||||
|
||||
# #piper-train #broken
|
||||
# wyoming-piper
|
||||
# python3
|
||||
# python3Packages.torchWithCuda
|
||||
# python3Packages.openai-whisper
|
||||
# python3Packages.faster-whisper
|
||||
# python3Packages.scipy
|
||||
python3
|
||||
python3Packages.openai-whisper
|
||||
python3Packages.faster-whisper
|
||||
python3Packages.scipy
|
||||
# python3Packages.numba-scipy
|
||||
# python3Packages.scikit-image
|
||||
# python3Packages.traittypes
|
||||
# python3Packages.statsmodels
|
||||
# python3Packages.scikits-odes
|
||||
# python3Packages.sympy
|
||||
# python3Packages.numpy
|
||||
# python3Packages.pandas
|
||||
# python3Packages.matplotlib
|
||||
python3Packages.sympy
|
||||
python3Packages.numpy
|
||||
python3Packages.pandas
|
||||
python3Packages.matplotlib
|
||||
# python3Packages.tensorflow
|
||||
# python3Packages.tensorboard
|
||||
# python3Packages.keras
|
||||
# python3Packages.transformers
|
||||
# python3Packages.torch
|
||||
python3Packages.transformers
|
||||
python3Packages.torch
|
||||
# python3Packages.torchvision-bin
|
||||
# python3Packages.torchsde
|
||||
# python3Packages.torchaudio-bin
|
||||
# python3Packages.torchWithRocm
|
||||
# python3Packages.torchWithCuda
|
||||
# python3Packages.scikit-learn-extra
|
||||
python3Packages.langchain
|
||||
python3Packages.langchain-community
|
||||
python3Packages.langchain-core
|
||||
python3Packages.langchain-chroma
|
||||
python3Packages.langchain-text-splitters
|
||||
];
|
||||
|
||||
|
||||
|
||||
@@ -4,12 +4,15 @@ imports =
|
||||
[
|
||||
../packages/vim.nix
|
||||
../services/ssh.nix
|
||||
./sops.nix
|
||||
];
|
||||
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
git
|
||||
unzip
|
||||
zip
|
||||
gnutar
|
||||
wget
|
||||
rsync
|
||||
ripgrep
|
||||
@@ -19,11 +22,12 @@ imports =
|
||||
killall
|
||||
foot.terminfo
|
||||
tailscale
|
||||
sops
|
||||
];
|
||||
|
||||
#just allow unfree, im fine with it.
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
memoryPercent = 25;
|
||||
@@ -44,6 +48,13 @@ imports =
|
||||
|
||||
#tailscale
|
||||
services.tailscale.enable = true;
|
||||
networking.firewall.interfaces."tailscale0" = let
|
||||
all = { from = 0; to = 65535; };
|
||||
in {
|
||||
allowedUDPPortRanges = [ all ];
|
||||
allowedTCPPortRanges = [ all ];
|
||||
};
|
||||
|
||||
|
||||
#system vide bash aliases. TODO: check if only one of these works so i dont need duplicates.
|
||||
programs.bash.shellAliases = config.environment.shellAliases;
|
||||
@@ -70,16 +81,97 @@ imports =
|
||||
alias lls='ls'
|
||||
'';
|
||||
|
||||
|
||||
|
||||
#some insecure packages
|
||||
## some insecure packages
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"python3.11-youtube-dl-2021.12.17"
|
||||
];
|
||||
|
||||
|
||||
sops.secrets."github/api" = {
|
||||
mode = "0444";
|
||||
group = "root";
|
||||
};
|
||||
|
||||
#nix stuff
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
nix.gc.automatic = true;
|
||||
nix = {
|
||||
extraOptions = ''
|
||||
builders-use-substitutes = true
|
||||
experimental-features = nix-command flakes impure-derivations ca-derivations
|
||||
!include ${config.sops.secrets."github/api".path}
|
||||
'';
|
||||
|
||||
settings = {
|
||||
trusted-users = [ "gunalx" "root" ];
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
substituters = [
|
||||
"https://cache.nixos.org/"
|
||||
"https://cuda-maintainers.cachix.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://nixos-rocm.cachix.org"
|
||||
"https://nixpkgs-unfree.cachix.org"
|
||||
];
|
||||
|
||||
trusted-public-keys = [
|
||||
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"nixos-rocm.cachix.org-1:VEpsf7pRIijjd8csKjFNBGzkBqOmw8H9PRmgAq14LnE="
|
||||
"nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs="
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
buildMachines = [
|
||||
# { hostName = "bob.pvv.ntnu.no";
|
||||
# system = "x86_64-linux";
|
||||
# maxJobs = 12;
|
||||
# supportedFeatures = [ "big-parallel" ];
|
||||
# speedFactor = 129270;
|
||||
# }
|
||||
{ hostName = "bolle.pbsds.net";
|
||||
system = "x86_64-linux";
|
||||
maxJobs = 6;
|
||||
speedFactor = 12857;
|
||||
}
|
||||
{ hostName = "garp.pbsds.net";
|
||||
system = "x86_64-linux";
|
||||
maxJobs = 4;
|
||||
# i7-6700
|
||||
speedFactor = 8088;
|
||||
}
|
||||
{ hostName = "aragon";
|
||||
system = "x86_64-linux";
|
||||
# if the builder supports building for multiple architectures,
|
||||
# replace the previous line by, e.g.,
|
||||
# systems = ["x86_64-linux" "aarch64-linux"];
|
||||
maxJobs = 6;
|
||||
#speedFactor = 13199;
|
||||
speedFactor = 6000;
|
||||
supportedFeatures = [ ];
|
||||
mandatoryFeatures = [ ];
|
||||
}
|
||||
{ hostName = "galadriel";
|
||||
system = "x86_64-linux";
|
||||
maxJobs = 4;
|
||||
#speedFactor = 8066;
|
||||
speedFactor = 4000;
|
||||
supportedFeatures = [ "cuda" ];
|
||||
mandatoryFeatures = [ ];
|
||||
}
|
||||
# {
|
||||
# hostName = "isvegg.pvv.ntnu.no";
|
||||
# system = "x86_64-linux";
|
||||
# maxJobs = 4;
|
||||
# speedFactor = 4961;
|
||||
# supportedFeatures = [ "big-parallel" ];
|
||||
# mandatoryFeatures = [ ];
|
||||
# }
|
||||
];
|
||||
distributedBuilds = true;
|
||||
};
|
||||
|
||||
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
flake = "git+https://github.com/adrlau/nix-dotfiles.git";
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{ unstable, config, pkgs, lib, ... } @ args:
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./base.nix
|
||||
./sound.nix
|
||||
./video.nix
|
||||
./office.nix
|
||||
./office.nix
|
||||
./development.nix
|
||||
|
||||
../packages/vim.nix
|
||||
../packages/steam.nix
|
||||
|
||||
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -18,8 +19,10 @@ imports =
|
||||
|
||||
#libsForQt5.qt5ct
|
||||
#qt6Packages.qt6ct
|
||||
|
||||
where-is-my-sddm-theme
|
||||
|
||||
swww
|
||||
|
||||
];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
@@ -35,31 +38,43 @@ imports =
|
||||
nerdfonts
|
||||
ubuntu_font_family
|
||||
|
||||
|
||||
|
||||
];
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
services.printing.enable = false; #temp off because of CVE
|
||||
|
||||
security.polkit.enable = true;
|
||||
|
||||
security.pam.services.swaylock = {};
|
||||
security.pam.services.swaylock-effects = {};
|
||||
security.pam.services.ly = {};
|
||||
|
||||
#security.pam.services.display-manager.ly = {};
|
||||
services.displayManager = {
|
||||
enable = true;
|
||||
sessionPackages = with pkgs; [ sway ];
|
||||
|
||||
sddm = {
|
||||
enable = true;
|
||||
theme = "${pkgs.where-is-my-sddm-theme}";
|
||||
wayland.enable = true;
|
||||
wayland.compositor = "kwin";
|
||||
autoNumlock = true;
|
||||
enableHidpi = true;
|
||||
};
|
||||
|
||||
### still really broken and neds 24.11
|
||||
#ly = {
|
||||
# package = pkgs.unstable.ly;
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# animation = "matrix";
|
||||
# waylandsessions = "${config.services.displayManager.sessionData.desktops}/share/wayland-sessions";
|
||||
# };
|
||||
|
||||
#};
|
||||
|
||||
};
|
||||
|
||||
|
||||
services.logind.powerKey = "ignore";
|
||||
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
services.desktopManager.plasma6.enableQt5Integration = true;
|
||||
|
||||
@@ -84,8 +99,9 @@ imports =
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us,no";
|
||||
variant = ",";
|
||||
layout = "no,us";
|
||||
variant = "";
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
imports =
|
||||
[
|
||||
./base.nix
|
||||
./ai.nix
|
||||
#./ai.nix
|
||||
|
||||
];
|
||||
|
||||
@@ -29,10 +29,14 @@ imports =
|
||||
rustup
|
||||
|
||||
|
||||
cmake
|
||||
gnumake
|
||||
mpi
|
||||
bc
|
||||
gnuplot
|
||||
ffmpeg
|
||||
|
||||
|
||||
ripes
|
||||
|
||||
];
|
||||
|
||||
|
||||
@@ -10,20 +10,22 @@
|
||||
# This will add secrets.yml to the nix store
|
||||
# You can avoid this by adding a string to the full path instead, i.e.
|
||||
# sops.defaultSopsFile = "/root/.sops/secrets/example.yaml";
|
||||
sops.defaultSopsFile = "/etc/nixos/nix-dotfiles/secrets/secrets.yaml";
|
||||
sops.validateSopsFiles = false;
|
||||
# This will automaticx-sopsally import SSH keys as age keys
|
||||
sops.age.sshKeyPaths = [
|
||||
# sops.defaultSopsFile = "/etc/nixos/nix-dotfiles/secrets/secrets.yaml";
|
||||
sops = {
|
||||
defaultSopsFile = ../secrets/secrets.yaml;
|
||||
validateSopsFiles = false;
|
||||
|
||||
# This will automaticx-sopsally import SSH keys as age keys
|
||||
age.sshKeyPaths = [
|
||||
"/etc/ssh/nixos"
|
||||
#"/$HOME/.ssh/nixos"
|
||||
#"/home/gunalx/.ssh/nixos"
|
||||
"/root/.ssh/nixos"
|
||||
];
|
||||
# This is using an age key that is expected to already be in the filesystem
|
||||
sops.age.keyFile = "/var/lib/sops-nix/key.txt";
|
||||
# This will generate a new key if the key specified above does not exist
|
||||
sops.age.generateKey = true;
|
||||
|
||||
# This is the actual specification of the secrets.
|
||||
#sops.secrets."myservice/my_subdir/my_secret" = {};
|
||||
|
||||
# This is using an age key that is expected to already be in the filesystem
|
||||
#age.keyFile = "/var/lib/sops-nix/key.txt";
|
||||
age.keyFile = "/root/.config/sops/age/key.txt";
|
||||
# This will generate a new key if the key specified above does not exist
|
||||
age.generateKey = true;
|
||||
# This is the actual specification of the secrets.
|
||||
#secrets."myservice/my_subdir/my_secret" = {};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,14 +6,12 @@ imports =
|
||||
|
||||
];
|
||||
|
||||
# Enable sound with pipewire.
|
||||
|
||||
sound.enable = true;
|
||||
#hardware.pulseaudio.enable = false;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
audio.enable = true;
|
||||
systemWide = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
@@ -21,6 +19,7 @@ imports =
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
pavucontrol
|
||||
wireplumber
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
#ENC[AES256_GCM,data:7kh9f2LAKp46UTh8LmDqvK8xOhHO9mVUD2yzLg4LRR2WU98EpztHmDcHKOF0AG60NsndYaw1en5efU0x/NVAzfdTVPJA2apDs3vtAlzGjvv593Snwb2wa4iK0tM0beMyGvzkSEPs8HOuSLvNpLHWaB1xlC0=,iv:eBoUwZfMPhBnT2+jWqT/EGh/CVNK5qiYeaspFf1VJxY=,tag:nEcuwi2nnACadGR8zw63HA==,type:comment]
|
||||
acme:
|
||||
certs: ENC[AES256_GCM,data:L9v0y/T4Vq+fZt5U8YAcyxtvMzv8w+gCwk2z5N027cYiuauuNFYDQ4WV5bTfDL1cSjp30oYvGTlgn3+8s9MA8xqaPJytCNNClRK4isvZKP1YdiVwKdxTg814LDzgPoZsyErSHb+MvgMEUpONifRxFJ7n1HHqcyfeXpV1Bx0=,iv:dnct9KU24ZVaQThA6rTTClRjT+vTi4aD+7UV+oiqoVU=,tag:vTMcHHexHVST3r4wiiTuXA==,type:str]
|
||||
github:
|
||||
api: ENC[AES256_GCM,data:QYXx+9QxXJ4WwDp6FsaSmrngs/+hBugGD8L6ZdiAgu/1/RW/ip1IEC52g49N70PGh545fAone3IiZJKGxqHeitSxTFv111cmTL4dq5s1yXEwUrsrll8n6rEVMJeHnPeAhz8MNYNxJuIfwugp7XlT61v2f/ylNVa77ZubSdNa5w==,iv:Cdnlb8LFQgsWnjEl+eQUHYIiVpXFabb70FFtnWDfIl8=,tag:vzzfJlQFQBncjLJvmFxuzw==,type:str]
|
||||
nginx:
|
||||
defaultpass: ENC[AES256_GCM,data:kbWRuL4GiHjOoy4bvDZN9etrnP9mm3Sc5+ltxXzFzU5G1cbHAa6Si9zzhoA67/MXXvOQ1mp31rQpV1K/WsrxGaajFdHgVYGUJB/RaZfZfg1THF5qvqR7vdOiVRWSIalzGMOSUyJTNg2dgQMbymVbmc/k/vZjkjjsI3oze7oN/NZnQ7nolGybQ6W8DCTRzHi5x20/zTJdXNmJf450az9sWOw7i1A6Avg2pPZ9t2N0WyuIcy1MsQICs7PE4ztrxIF82IsFLQNj6LmXXRQaZ9dCF/3h3yyNShfjgI2owYMmrRJssZCdF5dOPq+HVCEfE3jYBFcAWrvCCnYBczCx+WGl+5sQbfJtZdcDGw1bRw41I71h/W4micjo6W5XbeHVx+Rd,iv:h6gn2VKancyy6dZlON99zjRj4smArwt6I4a3PRjGfZ8=,tag:F++P/Qhh+uUUhBJYp3rGvA==,type:str]
|
||||
qbittorrent:
|
||||
@@ -30,8 +32,8 @@ sops:
|
||||
OHNBdXMzZTN0VEVTYkVSbUVRYmo3eUUKvRiPgmrCCK1F5QoSHlV89C2MPl5FvU5i
|
||||
z61NMJu68UEDsDu8qNRaW3aqpT+1GYsr1evi5imzNwr0qTM2oRwkFQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-05-18T22:06:32Z"
|
||||
mac: ENC[AES256_GCM,data:XnO6jTrgyE3/DNkYoNmTVW52NOS+8aLmINGidvWonNLH+FBurdAyYqC+Fnj7n6VrZrnKpFknPvtNV63EVcIroQeB4l12AMow2zhShy7EEwiahJW6DrpM/lbUxOct76KXItacZv+7zMS94uojOqTBhVRjqnBQSCQZgGzhvZTX5hc=,iv:7gA/O747oRu8xgpk1bLi5IgghSXCdq0Xx3KBNmfJ8aw=,tag:UhdKhWKYlTOlSlvJjmoOSg==,type:str]
|
||||
lastmodified: "2024-11-15T01:14:16Z"
|
||||
mac: ENC[AES256_GCM,data:4hqXQvlmPKuPkQEcUIpTEUudVknNVNjXjP8pB2UPnPmnr79nLWy/ZOzAcpSob1XNHyB7We5neBUEDYO56PjOM9C022XdZfaqXUC931uqLqo1iLQupApCphf/HR5bwDayv63Mr1Ys9MBdhCrYtlfy4iPiEdlpfDhLuD268EM8x0w=,iv:rgzgkB+5r/xDrN4i8O1f6CXyGxF7Peo+24kkQf96yf4=,tag:TZPaNEEYxFZ0m1CRbPQ0kA==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
||||
|
||||
12
services/boinc.nix
Normal file
12
services/boinc.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
services.boinc = {
|
||||
enable = true;
|
||||
package = pkgs.boinc-headless;
|
||||
extraEnvPackages = with pkgs ;[
|
||||
virtualbox
|
||||
ocl-icd
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
mcPort = 25565;
|
||||
configurationFile = ''
|
||||
config:
|
||||
lite:
|
||||
enabled: true
|
||||
routes:
|
||||
- host: mc.256.no
|
||||
backend: 100.84.215.84:25565
|
||||
'';
|
||||
file = pkgs.writeText "gate.yaml" configurationFile;
|
||||
in
|
||||
{
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ mcPort];
|
||||
networking.firewall.allowedUDPPorts = [ mcPort];
|
||||
|
||||
users.users.gate = {
|
||||
isSystemUser = true;
|
||||
description = "Gate Minecraft Proxy User";
|
||||
home = "/var/lib/gate";
|
||||
createHome = true;
|
||||
group = "gate";
|
||||
};
|
||||
|
||||
users.groups.gate = {
|
||||
};
|
||||
|
||||
systemd.services."gate" = {
|
||||
after = [ "network.target" ];
|
||||
wants = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.gate}/bin/gate -c ${file}";
|
||||
User = "gate";
|
||||
Group = "gate";
|
||||
Restart = "on-failure";
|
||||
ProtectKernelModules = true;
|
||||
NoNewPrivileges = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
|
||||
services.minecraft-server = {
|
||||
enable = true;
|
||||
eula = true;
|
||||
#jvmOpts = "-Xms4092M -Xmx4092M -XX:+UseG1GC -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10";
|
||||
|
||||
|
||||
# serverProperties = {
|
||||
# server-port = 25500;
|
||||
# difficulty = 3;
|
||||
# gamemode = 1;
|
||||
# max-players = 8;
|
||||
# motd = "Adrian Minecraft server!";
|
||||
# };
|
||||
openFirewall = true;
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
openWebuiImage = "ghcr.io/open-webui/open-webui:main";
|
||||
in
|
||||
{
|
||||
virtualisation.oci-containers = {
|
||||
backend = {
|
||||
image = openWebuiImage;
|
||||
cmd = [ "-d" "--network=host" "-v" "open-webui:/app/backend/data" "--name" "open-webui" "--restart" "always" ];
|
||||
volumes = [ "open-webui:/app/backend/data" ];
|
||||
environment = {
|
||||
OLLAMA_BASE_URL = "http://127.0.0.1:11434";
|
||||
};
|
||||
restart = "always";
|
||||
};
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts."chat.${config.networking.hostName}.${config.networking.domain}" = {
|
||||
forceSSL = true;
|
||||
#useACMEHost = config.networking.domain; #not sure if this will work, unless
|
||||
locations."/" = {
|
||||
proxyWebsockets = true;
|
||||
proxyPass = "http://${config.services.ollama.listenAddress}";
|
||||
};
|
||||
basicAuthFile = config.sops.secrets."nginx/defaultpass".path;
|
||||
};
|
||||
}
|
||||
@@ -1,23 +1,47 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.ollama
|
||||
pkgs.unstable.ollama
|
||||
];
|
||||
|
||||
services.ollama.enable = true;
|
||||
services.ollama.listenAddress = "0.0.0.0:11434";
|
||||
services.ollama.models = "/var/lib/ollama/models";
|
||||
services.ollama.home = "/var/lib/ollama";
|
||||
|
||||
#possibly a flawed idea.
|
||||
services.ollama = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.ollama;
|
||||
host = "0.0.0.0";
|
||||
openFirewall = true;
|
||||
port = 11434;
|
||||
home = "/var/lib/ollama";
|
||||
|
||||
loadModels = [
|
||||
"llama3.2"
|
||||
"gemma2:2b"
|
||||
"qwen2.5:3b"
|
||||
|
||||
"llama3.2-vision"
|
||||
"llava-phi3"
|
||||
"llava-llama3"
|
||||
"moondream"
|
||||
"minicpm-v"
|
||||
|
||||
"llama3.1"
|
||||
"mistral-nemo"
|
||||
"phi4"
|
||||
|
||||
"zylonai/multilingual-e5-large"
|
||||
"nomic-embed-text"
|
||||
"snowflake-arctic-embed"
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
#possibly a flawed idea, should just set cudaSupport and rocm support.
|
||||
services.ollama.acceleration = lib.mkDefault ( let
|
||||
hostname = config.networking.hostName;
|
||||
in
|
||||
if hostname == "galadriel" then "cuda"
|
||||
else if hostname == "boromir" then "cuda"
|
||||
else if hostname == "aragorn" then "rocm"
|
||||
else null);
|
||||
|
||||
|
||||
services.nginx.virtualHosts."ollama.${config.networking.hostName}.${config.networking.domain}" = {
|
||||
forceSSL = true;
|
||||
#useACMEHost = config.networking.domain; #not sure if this will work, unless
|
||||
|
||||
33
services/ollamaWebui.nix
Normal file
33
services/ollamaWebui.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.unstable.open-webui
|
||||
pkgs.gvisor
|
||||
pkgs.bash
|
||||
|
||||
];
|
||||
|
||||
services.tika = {
|
||||
enable=true;
|
||||
openFirewall=true;
|
||||
listenAddress = "localhost";
|
||||
enableOcr = true;
|
||||
};
|
||||
|
||||
services.open-webui = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.unstable.open-webui;
|
||||
port = 11111;
|
||||
host = "0.0.0.0";
|
||||
openFirewall = true;
|
||||
|
||||
environment = {
|
||||
ANONYMIZED_TELEMETRY = "False";
|
||||
DO_NOT_TRACK = "True";
|
||||
SCARF_NO_ANALYTICS = "True";
|
||||
PDF_EXTRACT_IMAGES = "False";
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
@@ -7,8 +7,9 @@
|
||||
|
||||
services.ozai-webui = {
|
||||
enable = true;
|
||||
port = 8085;
|
||||
port = 8095;
|
||||
host = "0.0.0.0";
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
180
services/searxng.nix
Normal file
180
services/searxng.nix
Normal file
@@ -0,0 +1,180 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
|
||||
];
|
||||
|
||||
|
||||
services.searx = {
|
||||
enable = false;
|
||||
redisCreateLocally = true;
|
||||
|
||||
# Rate limiting
|
||||
limiterSettings = {
|
||||
real_ip = {
|
||||
x_for = 1;
|
||||
ipv4_prefix = 32;
|
||||
ipv6_prefix = 56;
|
||||
};
|
||||
|
||||
botdetection = {
|
||||
ip_limit = {
|
||||
filter_link_local = true;
|
||||
link_token = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# UWSGI configuration should be true for non single user instances.
|
||||
runInUwsgi = false;
|
||||
|
||||
uwsgiConfig = {
|
||||
socket = "/run/searx/searx.sock";
|
||||
http = ":8888";
|
||||
chmod-socket = "660";
|
||||
};
|
||||
|
||||
# Searx configuration
|
||||
settings = {
|
||||
# Instance settings
|
||||
general = {
|
||||
debug = false;
|
||||
instance_name = "SearXNG Instance";
|
||||
donation_url = false;
|
||||
contact_url = false;
|
||||
privacypolicy_url = false;
|
||||
enable_metrics = false;
|
||||
};
|
||||
|
||||
# User interface
|
||||
ui = {
|
||||
static_use_hash = true;
|
||||
default_locale = "en";
|
||||
query_in_title = true;
|
||||
infinite_scroll = false;
|
||||
center_alignment = true;
|
||||
default_theme = "simple";
|
||||
theme_args.simple_style = "auto";
|
||||
search_on_category_select = false;
|
||||
hotkeys = "vim";
|
||||
};
|
||||
|
||||
# Search engine settings
|
||||
search = {
|
||||
safe_search = 2;
|
||||
autocomplete_min = 2;
|
||||
autocomplete = "duckduckgo";
|
||||
ban_time_on_fail = 5;
|
||||
max_ban_time_on_fail = 120;
|
||||
};
|
||||
|
||||
# Server configuration
|
||||
server = {
|
||||
base_url = "https://search.lauterer.it";
|
||||
port = 8888;
|
||||
bind_address = "127.0.0.1";
|
||||
secret_key = config.sops.secrets.searx.path;
|
||||
limiter = true;
|
||||
public_instance = false;
|
||||
image_proxy = true;
|
||||
method = "GET";
|
||||
};
|
||||
|
||||
# Search engines
|
||||
engines = lib.mapAttrsToList (name: value: { inherit name; } // value) {
|
||||
"duckduckgo".disabled = false;
|
||||
"brave".disabled = true;
|
||||
"bing".disabled = false;
|
||||
"mojeek".disabled = true;
|
||||
"mwmbl".disabled = false;
|
||||
"mwmbl".weight = 0.4;
|
||||
"qwant".disabled = true;
|
||||
"crowdview".disabled = false;
|
||||
"crowdview".weight = 0.5;
|
||||
"curlie".disabled = true;
|
||||
"ddg definitions".disabled = false;
|
||||
"ddg definitions".weight = 2;
|
||||
"wikibooks".disabled = false;
|
||||
"wikidata".disabled = false;
|
||||
"wikiquote".disabled = true;
|
||||
"wikisource".disabled = true;
|
||||
"wikispecies".disabled = false;
|
||||
"wikispecies".weight = 0.5;
|
||||
"wikiversity".disabled = false;
|
||||
"wikiversity".weight = 0.5;
|
||||
"wikivoyage".disabled = false;
|
||||
"wikivoyage".weight = 0.5;
|
||||
"currency".disabled = true;
|
||||
"dictzone".disabled = true;
|
||||
"lingva".disabled = true;
|
||||
"bing images".disabled = false;
|
||||
"brave.images".disabled = true;
|
||||
"duckduckgo images".disabled = false;
|
||||
"google images".disabled = false;
|
||||
"qwant images".disabled = true;
|
||||
"1x".disabled = true;
|
||||
"artic".disabled = false;
|
||||
"deviantart".disabled = true;
|
||||
"flickr".disabled = true;
|
||||
"imgur".disabled = false;
|
||||
"library of congress".disabled = false;
|
||||
"material icons".disabled = true;
|
||||
"material icons".weight = 0.2;
|
||||
"openverse".disabled = false;
|
||||
"pinterest".disabled = true;
|
||||
"svgrepo".disabled = false;
|
||||
"unsplash".disabled = false;
|
||||
"wallhaven".disabled = false;
|
||||
"wikicommons.images".disabled = false;
|
||||
"yacy images".disabled = true;
|
||||
"bing videos".disabled = true;
|
||||
"brave.videos".disabled = true;
|
||||
"duckduckgo videos".disabled = false;
|
||||
"google videos".disabled = false;
|
||||
"qwant videos".disabled = false;
|
||||
"dailymotion".disabled = true;
|
||||
"google play movies".disabled = true;
|
||||
"invidious".disabled = false;
|
||||
"odysee".disabled = true;
|
||||
"peertube".disabled = false;
|
||||
"piped".disabled = true;
|
||||
"rumble".disabled = false;
|
||||
"sepiasearch".disabled = false;
|
||||
"vimeo".disabled = true;
|
||||
"youtube".disabled = true;
|
||||
"brave.news".disabled = true;
|
||||
"google news".disabled = true;
|
||||
};
|
||||
|
||||
# Outgoing requests
|
||||
outgoing = {
|
||||
request_timeout = 5.0;
|
||||
max_request_timeout = 15.0;
|
||||
pool_connections = 100;
|
||||
pool_maxsize = 15;
|
||||
enable_http2 = true;
|
||||
};
|
||||
|
||||
# Enabled plugins
|
||||
enabled_plugins = [
|
||||
"Basic Calculator"
|
||||
"Hash plugin"
|
||||
"Hostnames plugin"
|
||||
"Self Information"
|
||||
"Tor check plugin"
|
||||
"Open Access DOI rewrite"
|
||||
"Hostnames plugin"
|
||||
"Unit converter plugin"
|
||||
"Tracker URL remover"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# Systemd configuration
|
||||
#systemd.services.nginx.serviceConfig.ProtectHome = false;
|
||||
|
||||
# User management
|
||||
users.groups.searx.members = ["nginx"];
|
||||
|
||||
|
||||
}
|
||||
@@ -7,43 +7,6 @@ services.samba = {
|
||||
enable = true;
|
||||
securityType = "user";
|
||||
openFirewall = true;
|
||||
extraConfig = ''
|
||||
workgroup = WORKGROUP
|
||||
server string = galadriel
|
||||
netbios name = galadriel
|
||||
security = user
|
||||
#use sendfile = yes
|
||||
#max protocol = smb2
|
||||
min protocol = SMB3_00
|
||||
server smb encrypt = required
|
||||
# note: localhost is the ipv6 localhost ::1
|
||||
hosts allow = 192.168.1. 192.168.0. 127.0.0.1 localhost 100.0.0.0/255.0.0.0
|
||||
hosts deny = 0.0.0.0/0
|
||||
guest account = nobody
|
||||
map to guest = bad user
|
||||
'';
|
||||
shares = {
|
||||
# public = {
|
||||
# path = "/mnt/Shares/Public";
|
||||
# browseable = "yes";
|
||||
# "read only" = "no";
|
||||
# "guest ok" = "yes";
|
||||
# "create mask" = "0644";
|
||||
# "directory mask" = "0755";
|
||||
# "force user" = "username";
|
||||
# "force group" = "groupname";
|
||||
# };
|
||||
Backup = {
|
||||
path = "/Main/Backup";
|
||||
browseable = "yes";
|
||||
"force user" = "gunalx";
|
||||
"force group" = "gunalx";
|
||||
"read only" = "no";
|
||||
"guest ok" = "no";
|
||||
"create mask" = "0644";
|
||||
"directory mask" = "0755";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.samba-wsdd = {
|
||||
@@ -51,11 +14,9 @@ services.samba-wsdd = {
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
#networking.firewall.enable = true;
|
||||
networking.firewall.allowPing = true;
|
||||
|
||||
|
||||
#services.avahi.openfirewall = true;
|
||||
services.avahi.openfirewall = true;
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
./podman.nix
|
||||
];
|
||||
environment.systemPackages = [
|
||||
];
|
||||
virtualisation.oci-containers.containers."stableDiffusion" = {
|
||||
#cmd = ["invokeai-web" "--host" "0.0.0.0"];
|
||||
ports = ["9090:9090" "9000:80" ];
|
||||
#enviroment = { };
|
||||
#image = "invokeai/invokeai";
|
||||
image = "goolashe/automatic1111-sd-webui";
|
||||
};
|
||||
}
|
||||
@@ -118,7 +118,7 @@ in
|
||||
|
||||
serviceConfig = {
|
||||
ExecStartPre = "${pkgs.bash}/bin/bash -c '${pkgs.coreutils}/bin/mkdir -p ${path} && ${pkgs.coreutils}/bin/chmod -R 755 ${path} && ${pkgs.coreutils}/bin/cp ${config.sops.templates."qbittorrent/configuration".path} ${path}/.config/qBittorrent/qBittorrent.conf'";
|
||||
ExecStart = "${pkgs.qbittorrent-nox}/bin/qbittorrent-nox";
|
||||
ExecStart = "${pkgs.unstable.qbittorrent-nox}/bin/qbittorrent-nox";
|
||||
User = "qbittorrent";
|
||||
Group = "media";
|
||||
Restart = "on-failure";
|
||||
|
||||
32
services/virt.nix
Normal file
32
services/virt.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
|
||||
# Enable libvirt and QEMU
|
||||
virtualisation.libvirtd.enable = true;
|
||||
virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
|
||||
|
||||
boot.kernelModules = [ "kvm-intel" "vfio_pci" "drm" "drm_kms_helper"];
|
||||
|
||||
# Add the relevant packages for virtualization, including secure boot and TPM support
|
||||
virtualisation.libvirtd.qemu = {
|
||||
runAsRoot = true;
|
||||
swtpm.enable = true;
|
||||
ovmf = {
|
||||
enable = true;
|
||||
packages = [(pkgs.OVMF.override {
|
||||
secureBoot = true;
|
||||
tpmSupport = true;
|
||||
}).fd];
|
||||
};
|
||||
};
|
||||
|
||||
# Add your user to the libvirt group to allow managing VMs without sudo
|
||||
users.users.gunalx.extraGroups = [ "libvirtd" ];
|
||||
|
||||
# Enable nested virtualization if needed
|
||||
boot.extraModprobeConfig = "options kvm_intel nested=1";
|
||||
|
||||
# (Optional) Enable the virt-manager graphical tool for managing VMs
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user