nixosModules: new structure, new initialization process with path extraction and configuration
Some checks failed
nix / check (push) Failing after 1m37s
Some checks failed
nix / check (push) Failing after 1m37s
new: packages: bonfire-docs flake: update inputs astora: move from gnome to hyprland (incomplete)
This commit is contained in:
parent
e7626516bd
commit
92936676e8
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -1,3 +1,3 @@
|
||||
[submodule "nixosModules/bonfire/secrets"]
|
||||
path = nixosModules/bonfire/secrets
|
||||
[submodule "nixosModules/misc/bonfire/secrets"]
|
||||
path = nixosModules/misc/bonfire/secrets
|
||||
url = git@vcs.elnafo.ru:L-Nafaryus/bonfire-secrets.git
|
||||
|
@ -1,7 +1,7 @@
|
||||
[user]
|
||||
name = L-Nafaryus
|
||||
email = l.nafaryus@gmail.com
|
||||
signingKey = 9B576DE3
|
||||
signingKey = 86F1EA98B48FFB19
|
||||
[commit]
|
||||
gpgsign = true
|
||||
[tag]
|
||||
|
415
flake.lock
generated
415
flake.lock
generated
@ -32,15 +32,56 @@
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"blobs_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1604995301,
|
||||
"narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=",
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "blobs",
|
||||
"rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "blobs",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"bonfire": {
|
||||
"inputs": {
|
||||
"crane": "crane_2",
|
||||
"devenv": "devenv",
|
||||
"fenix": "fenix_2",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixgl": "nixgl",
|
||||
"nixos-mailserver": "nixos-mailserver_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"oscuro": "oscuro_2",
|
||||
"sops-nix": "sops-nix_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714133223,
|
||||
"narHash": "sha256-mappc4Lj+nVE3Xc7aw5+kqDSJdXs4ALYlRpegWtNoyY=",
|
||||
"owner": "L-Nafaryus",
|
||||
"repo": "bonfire",
|
||||
"rev": "a2f306e7fc5abcf1c05e4cbe72c23d9e53588932",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "L-Nafaryus",
|
||||
"repo": "bonfire",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"bonfire_2": {
|
||||
"inputs": {
|
||||
"crane": "crane_3",
|
||||
"devenv": "devenv",
|
||||
"fenix": "fenix_3",
|
||||
"home-manager": "home-manager_3",
|
||||
"nixgl": "nixgl_2",
|
||||
"nixos-mailserver": "nixos-mailserver_3",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"sops-nix": "sops-nix"
|
||||
},
|
||||
"locked": {
|
||||
@ -61,18 +102,24 @@
|
||||
"inputs": {
|
||||
"devenv": "devenv_2",
|
||||
"flake-compat": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
@ -93,6 +140,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"catppuccin": {
|
||||
"locked": {
|
||||
"lastModified": 1718339789,
|
||||
"narHash": "sha256-Q3fgY7huFE+uaw7BNsAl1x+FvjDAi3EDWPnlALJt5pM=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "73e06d5bd7ed34bdd0168030893ef8364fdc1d4a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -100,11 +162,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713979152,
|
||||
"narHash": "sha256-apdecPuh8SOQnkEET/kW/UcfjCRb8JbV5BKjoH+DcP4=",
|
||||
"lastModified": 1718474113,
|
||||
"narHash": "sha256-UKrfy/46YF2TRnxTtKCYzqf2f5ZPRRWwKCCJb7O5X8U=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "a5eca68a2cf11adb32787fc141cddd29ac8eb79c",
|
||||
"rev": "0095fd8ea00ae0a9e6014f39c375e40c2fbd3386",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -135,12 +197,38 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713738183,
|
||||
"narHash": "sha256-qd/MuLm7OfKQKyd4FAMqV4H6zYyOfef5lLzRrmXwKJM=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "f6c6a2fb1b8bd9b65d65ca9342dd0eb180a63f11",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devenv": {
|
||||
"inputs": {
|
||||
"cachix": "cachix",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-compat": "flake-compat_4",
|
||||
"nix": "nix_2",
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
@ -164,6 +252,8 @@
|
||||
"devenv_2": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
@ -171,9 +261,11 @@
|
||||
"flake-compat"
|
||||
],
|
||||
"nix": "nix",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"poetry2nix": "poetry2nix",
|
||||
"pre-commit-hooks": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
@ -204,11 +296,11 @@
|
||||
"rust-analyzer-src": []
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714112748,
|
||||
"narHash": "sha256-jq6Cpf/pQH85p+uTwPPrGG8Ky/zUOTwMJ7mcqc5M4So=",
|
||||
"lastModified": 1717827974,
|
||||
"narHash": "sha256-ixopuTeTouxqTxfMuzs6IaRttbT8JqRW5C9Q/57WxQw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "3ae4b908a795b6a3824d401a0702e11a7157d7e1",
|
||||
"rev": "ab655c627777ab5f9964652fe23bbb1dfbd687a8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -243,6 +335,36 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fenix_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713853552,
|
||||
"narHash": "sha256-OOXi+9cSbst7Crah6UVxHe33O6HK91WgD2yU/p5/dqs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "d596927635ddd8db224bbff6e4ccb08e42649eb5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@ -262,11 +384,11 @@
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -278,11 +400,11 @@
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -307,7 +429,38 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_5": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
@ -325,7 +478,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
@ -343,7 +496,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"flake-utils_4": {
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
@ -361,6 +514,8 @@
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
@ -389,11 +544,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714042918,
|
||||
"narHash": "sha256-4AItZA3EQIiSNAxliuYEJumw/LaVfrMv84gYyrs0r3U=",
|
||||
"lastModified": 1718526747,
|
||||
"narHash": "sha256-sKrD/utGvmtQALvuDj4j0CT3AJXP1idOAq2p+27TpeE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "0c5704eceefcb7bb238a958f532a86e3b59d76db",
|
||||
"rev": "0a7ffb28e5df5844d0e8039c9833d7075cdee792",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -424,10 +579,36 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713818326,
|
||||
"narHash": "sha256-aw3xbVPJauLk/bbrlakIYxKpeuMWzA2feGrkIpIuXd8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "67de98ae6eed5ad6f91b1142356d71a87ba97f21",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
@ -455,6 +636,8 @@
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
@ -481,12 +664,16 @@
|
||||
"nix_2": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
@ -511,7 +698,7 @@
|
||||
},
|
||||
"nixgl": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
@ -532,6 +719,31 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixgl_2": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_4",
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713543440,
|
||||
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
|
||||
"owner": "guibou",
|
||||
"repo": "nixGL",
|
||||
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "guibou",
|
||||
"repo": "nixGL",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-mailserver": {
|
||||
"inputs": {
|
||||
"blobs": "blobs",
|
||||
@ -539,6 +751,31 @@
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-24_05": "nixpkgs-24_05"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1718398369,
|
||||
"narHash": "sha256-ccOHDuTaUhD1DW6DGNXoDJNOwYx55rVNKECyqRzKRtE=",
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "nixos-mailserver",
|
||||
"rev": "54cbacb6eb9938bf1eaab7a7840fb527050c2af1",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "nixos-mailserver",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"nixos-mailserver_2": {
|
||||
"inputs": {
|
||||
"blobs": "blobs_2",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
],
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
@ -555,11 +792,13 @@
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"nixos-mailserver_2": {
|
||||
"nixos-mailserver_3": {
|
||||
"inputs": {
|
||||
"blobs": "blobs_2",
|
||||
"flake-compat": "flake-compat_4",
|
||||
"blobs": "blobs_3",
|
||||
"flake-compat": "flake-compat_5",
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
@ -582,11 +821,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1714076141,
|
||||
"narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=",
|
||||
"lastModified": 1718530797,
|
||||
"narHash": "sha256-pup6cYwtgvzDpvpSCFh1TEUjw2zkNpk8iolbKnyFmmU=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856",
|
||||
"rev": "b60ebf54c15553b393d144357375ea956f89e9a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -596,6 +835,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-24_05": {
|
||||
"locked": {
|
||||
"lastModified": 1717144377,
|
||||
"narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "805a384895c696f802a9bf5bf4720f37385df547",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-24.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
@ -676,7 +930,39 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_4": {
|
||||
"locked": {
|
||||
"lastModified": 1718478900,
|
||||
"narHash": "sha256-v43N1gZLcGkhg3PdcrKUNIZ1L0FBzB2JqhIYEyKAHEs=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c884223af91820615a6146af1ae1fea25c107005",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1713714899,
|
||||
"narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6143fc5eeb9c4f00163267708e26191d1e918932",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1692808169,
|
||||
"narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=",
|
||||
@ -692,7 +978,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1713714899,
|
||||
"narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=",
|
||||
@ -710,7 +996,30 @@
|
||||
},
|
||||
"oscuro": {
|
||||
"inputs": {
|
||||
"bonfire": "bonfire"
|
||||
"bonfire": "bonfire",
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714759244,
|
||||
"narHash": "sha256-ZDH7WTsILPEIZuo3/C4QwOXTv7r1xoUxKOQSDFpdNEE=",
|
||||
"owner": "L-Nafaryus",
|
||||
"repo": "oscuro",
|
||||
"rev": "68da7759c61b6d34f54087e3e845d8cc70702310",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "L-Nafaryus",
|
||||
"repo": "oscuro",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"oscuro_2": {
|
||||
"inputs": {
|
||||
"bonfire": "bonfire_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714131862,
|
||||
@ -728,9 +1037,11 @@
|
||||
},
|
||||
"poetry2nix": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
@ -756,14 +1067,18 @@
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-utils": "flake-utils_2",
|
||||
"flake-utils": "flake-utils_3",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"devenv",
|
||||
@ -787,18 +1102,21 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"catppuccin": "catppuccin",
|
||||
"crane": "crane",
|
||||
"fenix": "fenix",
|
||||
"home-manager": "home-manager",
|
||||
"nixos-mailserver": "nixos-mailserver",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"oscuro": "oscuro",
|
||||
"sops-nix": "sops-nix_2"
|
||||
"sops-nix": "sops-nix_3"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
@ -822,16 +1140,39 @@
|
||||
"sops-nix_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"oscuro",
|
||||
"bonfire",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713892811,
|
||||
"narHash": "sha256-uIGmA2xq41vVFETCF1WW4fFWFT2tqBln+aXnWrvjGRE=",
|
||||
"lastModified": 1713775152,
|
||||
"narHash": "sha256-xyP8h9jLQ0AmyPy40sIwL7/D03oVpXG9YHoYJ4ecYWA=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "f1b0adc27265274e3b0c9b872a8f476a098679bd",
|
||||
"rev": "4371a1301c4d36cc791069d90ae522613a3a335e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1718506969,
|
||||
"narHash": "sha256-Pm9I/BMQHbsucdWf6y9G3xBZh3TMlThGo4KBbeoeczg=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "797ce4c1f45a85df6dd3d9abdc53f2691bea9251",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
25
flake.nix
25
flake.nix
@ -29,14 +29,19 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.rust-analyzer-src.follows = "";
|
||||
};
|
||||
catppuccin = {
|
||||
url = "github:catppuccin/nix";
|
||||
};
|
||||
oscuro = {
|
||||
url = "github:L-Nafaryus/oscuro";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, nixos-mailserver, sops-nix, crane, fenix, oscuro, ... }: {
|
||||
|
||||
lib = import ./lib {};
|
||||
outputs = { self, nixpkgs, home-manager, nixos-mailserver, sops-nix, crane, fenix, catppuccin, oscuro, ... } @ inputs:
|
||||
let
|
||||
lib = import ./lib { inherit (nixpkgs) lib; };
|
||||
in {
|
||||
inherit lib;
|
||||
|
||||
nixosConfigurations = {
|
||||
astora = nixpkgs.lib.nixosSystem {
|
||||
@ -46,8 +51,9 @@
|
||||
./nixosConfigurations/astora
|
||||
self.nixosModules.bonfire
|
||||
self.nixosModules.spoofdpi
|
||||
(import ./nixosModules { lib = nixpkgs.lib; self = self; }).configModule
|
||||
];
|
||||
specialArgs = { inherit self; };
|
||||
specialArgs = { inherit self inputs; };
|
||||
};
|
||||
|
||||
catarina = nixpkgs.lib.nixosSystem {
|
||||
@ -61,20 +67,13 @@
|
||||
self.nixosModules.spoofdpi
|
||||
self.nixosModules.papermc
|
||||
self.nixosModules.qbittorrent-nox
|
||||
(import ./nixosModules { lib = nixpkgs.lib; self = self; }).configModule
|
||||
];
|
||||
specialArgs = { inherit self; };
|
||||
};
|
||||
};
|
||||
|
||||
nixosModules = {
|
||||
bonfire = import ./nixosModules/bonfire { inherit self; };
|
||||
|
||||
spoofdpi = import ./nixosModules/spoofdpi { inherit self; };
|
||||
|
||||
papermc = import ./nixosModules/papermc { inherit self; };
|
||||
|
||||
qbittorrent-nox = import ./nixosModules/qbittorrent-nox { inherit self; };
|
||||
};
|
||||
nixosModules = lib.importNamedModules (import ./nixosModules { lib = nixpkgs.lib; self = self; }).modules;
|
||||
|
||||
templates = {
|
||||
rust = {
|
||||
|
@ -1,10 +1,17 @@
|
||||
{ ... }:
|
||||
{
|
||||
{ lib, ... }:
|
||||
rec {
|
||||
maintainers = import ./maintainers.nix;
|
||||
|
||||
mkApp = { drv, name ? drv.pname, binPath ? "/bin/${name}" }:
|
||||
{
|
||||
type = "app";
|
||||
program = "${drv}${binPath}";
|
||||
};
|
||||
moduleName = path: if builtins.baseNameOf (toString path) == "default.nix" then
|
||||
builtins.baseNameOf (lib.removeSuffix "/default.nix" (toString path))
|
||||
else
|
||||
builtins.baseNameOf (lib.removeSuffix ".nix" (toString path));
|
||||
|
||||
moduleNames = pathList: map (path: moduleName path) pathList;
|
||||
|
||||
importModules = pathList: map (path: import path) pathList;
|
||||
|
||||
importNamedModules = pathList: lib.listToAttrs (
|
||||
lib.zipListsWith (name: value: { inherit name value; }) (moduleNames pathList) (importModules pathList)
|
||||
);
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
L-Nafaryus = {
|
||||
email = "l.nafaryus@gmail.com";
|
||||
email = "l.nafaryus@elnafo.ru";
|
||||
github = "L-Nafaryus";
|
||||
githubId = 37117584;
|
||||
name = "George Kusayko";
|
||||
name = "L-Nafaryus";
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
system.stateVersion = "23.11";
|
||||
|
||||
@ -45,16 +45,54 @@
|
||||
|
||||
videoDrivers = [ "nvidia" ];
|
||||
|
||||
displayManager.gdm = {
|
||||
enable = true;
|
||||
autoSuspend = false;
|
||||
};
|
||||
desktopManager.gnome.enable = true;
|
||||
windowManager.awesome.enable = true;
|
||||
#displayManager.gdm = {
|
||||
# enable = true;
|
||||
# autoSuspend = false;
|
||||
# wayland = true;
|
||||
#};
|
||||
#desktopManager.gnome.enable = true;
|
||||
#windowManager.awesome.enable = true;
|
||||
|
||||
wacom.enable = true;
|
||||
};
|
||||
|
||||
services.greetd = let
|
||||
hyprConfig = pkgs.writeText "greetd-hyprland-config" ''
|
||||
exec-once = ${lib.getExe pkgs.greetd.regreet}; hyprctl dispatch exit
|
||||
'';
|
||||
in {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${lib.getExe config.programs.hyprland.package} --config ${hyprConfig}";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.regreet = {
|
||||
enable = true;
|
||||
settings = {
|
||||
GTK = {
|
||||
application_prefer_dark_theme = true;
|
||||
# TODO: provide gtk themes
|
||||
# theme_name = "Catppuccin-Macchiato-Standard-Green-Dark";
|
||||
# icon_theme_name = "Catppuccin-Macchiato-Green-Cursors";
|
||||
# cursor_theme_name = "Papirus-Dark";
|
||||
# font_name = "";
|
||||
};
|
||||
appearance = {
|
||||
greeting_msg = "Hey, you. You're finally awake.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
services.dbus.enable = true;
|
||||
|
||||
services.printing.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
|
@ -1,10 +1,10 @@
|
||||
{ config, pkgs, lib, inputs, self, ... }:
|
||||
{ config, pkgs, lib, self, inputs, ... }:
|
||||
{
|
||||
# Users
|
||||
users.users.l-nafaryus = {
|
||||
isNormalUser = true;
|
||||
description = "L-Nafaryus";
|
||||
extraGroups = [ "networkmanager" "wheel" "audio" "libvirtd" ];
|
||||
extraGroups = [ "networkmanager" "wheel" "audio" "libvirtd" "input" ];
|
||||
group = "users";
|
||||
uid = 1000;
|
||||
initialPassword = "nixos";
|
||||
@ -13,27 +13,31 @@
|
||||
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.backupFileExtension = "hmbackup";
|
||||
|
||||
home-manager.users.l-nafaryus = { pkgs, ... }: {
|
||||
home-manager.users.l-nafaryus = { pkgs, ... }:
|
||||
let
|
||||
hmConfig = config.home-manager.users.l-nafaryus;
|
||||
in {
|
||||
home.stateVersion = "23.11";
|
||||
home.username = "l-nafaryus";
|
||||
home.homeDirectory = "/home/l-nafaryus";
|
||||
imports = [
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
gnupg
|
||||
#gnupg
|
||||
git
|
||||
nnn
|
||||
htop
|
||||
pass
|
||||
taskwarrior
|
||||
tmux
|
||||
#tmux
|
||||
|
||||
gparted
|
||||
|
||||
gnomeExtensions.appindicator
|
||||
gnomeExtensions.vitals
|
||||
xclip
|
||||
|
||||
firefox
|
||||
(firefox.override { extraNativeMessagingHosts = [ passff-host ]; })
|
||||
thunderbird
|
||||
|
||||
discord
|
||||
@ -74,13 +78,11 @@
|
||||
xtuner
|
||||
aether-lv2
|
||||
|
||||
obs-studio
|
||||
obs-studio-plugins.obs-vkcapture
|
||||
obs-studio-plugins.input-overlay
|
||||
obs-studio-plugins.obs-pipewire-audio-capture
|
||||
|
||||
|
||||
qbittorrent
|
||||
transmission-qt
|
||||
telegram-desktop
|
||||
|
||||
onlyoffice-bin
|
||||
|
||||
@ -91,12 +93,160 @@
|
||||
|
||||
steamtinkerlaunch
|
||||
|
||||
|
||||
eww
|
||||
tor
|
||||
networkmanagerapplet
|
||||
#rofi-wayland
|
||||
kgx
|
||||
dunst
|
||||
libnotify
|
||||
playerctl
|
||||
wl-gammarelay-rs
|
||||
# btop
|
||||
lua
|
||||
# bat
|
||||
musikcube
|
||||
swww
|
||||
hyprshot
|
||||
(python3.withPackages (p: [ p.click ]))
|
||||
mangohud
|
||||
gamescope
|
||||
libstrangle
|
||||
webcord
|
||||
wl-clipboard
|
||||
cliphist
|
||||
tree
|
||||
];
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
configPackages = with pkgs; [
|
||||
#xdg-desktop-portal-wlr
|
||||
xdg-desktop-portal-hyprland
|
||||
];
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
||||
catppuccin = {
|
||||
# global, for all enabled programs
|
||||
enable = true;
|
||||
flavor = "macchiato";
|
||||
accent = "green";
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
cursorTheme = {
|
||||
name = "Papirus-Dark";
|
||||
size = 16;
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting
|
||||
'';
|
||||
plugins = with pkgs.fishPlugins; map (p: { name = p.pname; src = p.src; }) [
|
||||
fzf-fish
|
||||
tide # tide configure --auto --style=Lean --prompt_colors='True color' --show_time='12-hour format' --lean_prompt_height='Two lines' --prompt_connection=Disconnected --prompt_spacing=Compact --icons='Many icons' --transient=No
|
||||
grc
|
||||
hydro
|
||||
];
|
||||
};
|
||||
bat.enable = true;
|
||||
btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cpu_bottom = true;
|
||||
proc_tree = true;
|
||||
};
|
||||
};
|
||||
fzf.enable = true;
|
||||
tmux.enable = true;
|
||||
lazygit.enable = true;
|
||||
gpg = {
|
||||
enable = true;
|
||||
homedir = "${hmConfig.xdg.configHome}/gnupg";
|
||||
mutableKeys = true;
|
||||
mutableTrust = true;
|
||||
};
|
||||
|
||||
alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
font = {
|
||||
size = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
terminal = "${lib.getExe hmConfig.programs.alacritty.package}";
|
||||
cycle = true;
|
||||
extraConfig = {
|
||||
show-icons = true;
|
||||
disable-history = false;
|
||||
};
|
||||
theme = let inherit (hmConfig.lib.formats.rasi) mkLiteral; in {
|
||||
"*" = {
|
||||
border-col = mkLiteral "#a6da95";
|
||||
};
|
||||
window = {
|
||||
border-radius = mkLiteral "5px";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
obs-vkcapture
|
||||
input-overlay
|
||||
obs-pipewire-audio-capture
|
||||
wlrobs
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
gpg-agent = {
|
||||
enable = true;
|
||||
defaultCacheTtl = 3600;
|
||||
defaultCacheTtlSsh = 3600;
|
||||
enableSshSupport = true;
|
||||
pinentryPackage = pkgs.pinentry-gtk2;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
|
||||
hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
after_sleep_cmd = "${pkgs.hyprland}/bin/hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
};
|
||||
listener = [
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "${pkgs.hyprland}/bin/hyprctl dispatch dpms off";
|
||||
on-resume = "${pkgs.hyprland}/bin/hyprctl dispatch dpms on";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# ---
|
||||
xdg = {
|
||||
enable = true;
|
||||
mime.enable = true;
|
||||
userDirs.enable = true;
|
||||
};
|
||||
|
||||
dconf.settings = {
|
||||
@ -106,11 +256,15 @@
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
HYPRSHOT_DIR = "${hmConfig.xdg.userDirs.pictures}/screenshots";
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".config/gnupg/gpg-agent.conf".text = ''
|
||||
default-cache-ttl 3600
|
||||
pinentry-program ${pkgs.pinentry.gtk2}/bin/pinentry
|
||||
'';
|
||||
#"gnupg/gpg-agent.conf".text = ''
|
||||
# default-cache-ttl 3600
|
||||
# pinentry-program ${pkgs.pinentry.gtk2}/bin/pinentry
|
||||
#'';
|
||||
|
||||
".config/git/config".source = "${config.bonfire.configDir}/git/config";
|
||||
|
||||
@ -121,11 +275,11 @@
|
||||
};
|
||||
};
|
||||
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
pinentryPackage = pkgs.pinentry-gnome3;
|
||||
};
|
||||
#programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# pinentryPackage = pkgs.pinentry-gnome3;
|
||||
#};
|
||||
|
||||
environment.variables = let
|
||||
makePluginPath = name: (lib.makeSearchPath name [
|
||||
@ -140,6 +294,11 @@
|
||||
VST3_PATH = makePluginPath "vst3";
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
# hint electron applications to use wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
|
||||
systemd.user.extraConfig = "DefaultLimitNOFILE=524288";
|
||||
|
||||
programs.virt-manager.enable = true;
|
||||
|
@ -34,6 +34,7 @@ in {
|
||||
hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
config.allowUnfree = true;
|
||||
config.cudaSupport = false;
|
||||
|
||||
config.packageOverrides = super: {
|
||||
lego = bonfire-pkgs.lego;
|
||||
};
|
||||
@ -138,11 +139,6 @@ in {
|
||||
loginAccounts = config.bonfire.secrets.catarina.mailAccounts;
|
||||
};
|
||||
|
||||
services.jellyfin = {
|
||||
enable = false;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
services.spoofdpi.enable = true;
|
||||
|
||||
services.btrfs.autoScrub = {
|
||||
@ -193,6 +189,7 @@ in {
|
||||
|
||||
virtualisation = {
|
||||
containers.enable = true;
|
||||
|
||||
podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
|
@ -137,7 +137,7 @@
|
||||
allowedTCPPorts = [ 80 443 3001 25600 8080 8085 ];
|
||||
};
|
||||
|
||||
interfaces.wlp8s0 = {
|
||||
interfaces.enp9s0 = {
|
||||
useDHCP = false;
|
||||
ipv4.addresses = [ {
|
||||
address = "192.168.156.102";
|
||||
@ -145,23 +145,10 @@
|
||||
} ];
|
||||
};
|
||||
|
||||
defaultGateway = {
|
||||
address = "192.168.156.1";
|
||||
interface = null;
|
||||
metric = null;
|
||||
};
|
||||
defaultGateway = "192.168.156.1";
|
||||
nameservers = [ "192.168.156.1" "8.8.8.8" ];
|
||||
};
|
||||
|
||||
services.resolved = {
|
||||
enable = false;
|
||||
dnssec = "true";
|
||||
extraConfig = ''
|
||||
DNSOverTLS=yes
|
||||
'';
|
||||
fallbackDns = [ "8.8.8.8" ];
|
||||
};
|
||||
|
||||
services.logind.lidSwitchExternalPower = "ignore";
|
||||
|
||||
# Common
|
||||
|
@ -1 +0,0 @@
|
||||
Subproject commit 31c9b19efdaa613e965eae25bbd2abd344a1bccf
|
20
nixosModules/default.nix
Normal file
20
nixosModules/default.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ lib, check ? true, self, ... }:
|
||||
rec {
|
||||
modules = [
|
||||
./misc/bonfire/default.nix
|
||||
./services/papermc.nix
|
||||
./services/qbittorrent-nox.nix
|
||||
./services/spoofdpi.nix
|
||||
];
|
||||
|
||||
configModule = { config, pkgs, ... }: {
|
||||
|
||||
config = {
|
||||
# Module type checking
|
||||
_module.check = check;
|
||||
#_module.args.baseModules = modules;
|
||||
#_module.args.pkgs = lib.mkDefault pkgs;
|
||||
_module.args.bonpkgs = self.packages.${pkgs.system};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,4 +1,3 @@
|
||||
{ self, ... }:
|
||||
{ config, lib, ... }:
|
||||
with lib;
|
||||
let cfg = config.bonfire;
|
||||
@ -7,7 +6,7 @@ in {
|
||||
bonfire = {
|
||||
home = mkOption {
|
||||
type = types.path;
|
||||
default = ../../.;
|
||||
default = ../../../.;
|
||||
description = "Bonfire root directory";
|
||||
};
|
||||
|
||||
@ -25,6 +24,7 @@ in {
|
||||
|
||||
secrets = mkOption {
|
||||
type = types.attrs;
|
||||
description = "Secrets will be here after evaluation";
|
||||
default = {};
|
||||
};
|
||||
};
|
9
nixosModules/misc/bonfire/secrets/.sops.yaml
Normal file
9
nixosModules/misc/bonfire/secrets/.sops.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
keys:
|
||||
- &astora age1u9xr3tmwskfsrxg6gus3hmh9eakjh2h22jklfmcu33kassaraues435vvc
|
||||
- &catarina age1wyz7cfldqe9hh8qyw2qm42hkq9s7qdwqnrnv0u3s6vstv9649v0sh0z4em
|
||||
creation_rules:
|
||||
- path_regex: catarina.(yaml|env|txt)$
|
||||
key_groups:
|
||||
- age:
|
||||
- *astora
|
||||
- *catarina
|
46
nixosModules/misc/bonfire/secrets/catarina.yaml
Normal file
46
nixosModules/misc/bonfire/secrets/catarina.yaml
Normal file
@ -0,0 +1,46 @@
|
||||
dns: ENC[AES256_GCM,data:rz909/BAd2XUjS+wRfriTriv+Dns6eXMqpZEjdln8zkjK6GrMN5p9H4tMFOHwJz5/YRD3Eix9Z8MYsEbpQeGBAFieN7b24gucV+p1ScZYpIyWo1sNLILMGPp1LH2aw==,iv:+TJJ/jB4ScP+6kJD/XkiVy/R5aPmj25PuI1RbCyaKL8=,tag:03AAg9SV4xAdTF7tn9q26Q==,type:str]
|
||||
users:
|
||||
root: ENC[AES256_GCM,data:tCyMduL4RAyqQlPngwkQBHPTQF36Lb3k9BDtEF97vwXOrsgBFxeLO3nyKi8WbDNOQ6PshiN5gq2ATBmhhWIN5mE6ZqDBb8qraA==,iv:1EfQVZkc6L7W+CeIdQruIrieBVAtp4f06O4T0CeXO4M=,tag:h7k4OufndS0UHfNy16HS6g==,type:str]
|
||||
l-nafaryus: ENC[AES256_GCM,data:5B4qaUe/8TBg9i47YpMkX/Pt0tcb5QYVhJc92liXf/3SzItaFIfH7ZNggJmu2vVXa/NS1C6Q35vNFX8I07fKqXc9n0IAyLuKRA==,iv:qSdBwmR7QdD4JODwVb8gc/A55GZ2ldlurXtaGDuhXSQ=,tag:N8kvy1SSq/f/AMcwsSUpMQ==,type:str]
|
||||
database:
|
||||
git: ENC[AES256_GCM,data:drfCQxPKXXtbmF4de50QXX8Kh+7gxI/W2bpKCmQVn0A=,iv:W/hAzkBj+vu5FQwzBs+L3m++Xf+cQVUFUCTVMhfus5A=,tag:2cmbYVpKHXVC8y51SfeUKA==,type:str]
|
||||
mail:
|
||||
l-nafaryus: ENC[AES256_GCM,data:Gp/8pSPOwkdkcSZVPZrnWs+9Kk56O0r78z11tpEExREmcX4c2MPgtlYMrkqYItsG4JU/hLxXCaXK07xx,iv:LHrLnwosaYQpBVukgqOsPDmv3U/AUE0wx227Id11S6E=,tag:CB86NR1STM728R8KHXpreQ==,type:str]
|
||||
git: ENC[AES256_GCM,data:5UF4+YdAHBzNiqRXtSc15SOg2PCN+Cz7T89o8iTuRsZ5jrdXfBl8np9rVB/uStd+Z+dhQnQ2QCT2Gfxv,iv:boncugsEKxDOLy5qLxFg5ojpb0hUYsCg5QHcJArWMfU=,tag:mjhyu4Cu0d0sD/xTbEZMtQ==,type:str]
|
||||
kirill: ENC[AES256_GCM,data:ucG5gukNlnC+rA45RstJ/IA7oxSl+B3TWOBPGyyOG2g+VMgjqefv7bL+aHJhikL/WCUgYUXfK6d18bqu,iv:mZVL1POZK3DbFJshbPEGrOdS+iaaeg4OcBqtZ14vOo4=,tag:dIGS7cXZWTM250ufyMzP1g==,type:str]
|
||||
gitea:
|
||||
mail: ENC[AES256_GCM,data:Kn1UjRsCG9KC9SKhYUXOZ5fsvvTIcfqPMppbWxAj,iv:lKsVTZdXBr8cXzizHEcf0uFdhaqxnIDKlAr++IC14m8=,tag:EwKeSjAvI7hUlMMx9N864Q==,type:str]
|
||||
gitea-runner:
|
||||
master-token: ENC[AES256_GCM,data:WIyXjGPl7FbrrJSNIR7kVS2Bo4od40YlY/RrgaKJ2XVYnpgIjbAP558PluclY3dLeg==,iv:doAMWY7uuNo4MYNOdMhn16pL1KgqtC+8eEbSL5QlOFQ=,tag:r/db0wNlLin5IQHzR/xL0g==,type:str]
|
||||
papermc:
|
||||
rcon: ENC[AES256_GCM,data:5jdkx6jpbao9,iv:arXGkrBGsfYXDU2O80QzszBmgS5H9OOPm9rvI1H4QX4=,tag:LcZhmjuj6bNqeLJViFohdw==,type:str]
|
||||
discordToken: ENC[AES256_GCM,data:qHaCz/AZWf5N2tj/utu/6eZU+id50sj7Xv4d6hU0YDcIEkrAebIO5hik+Dk1xsobuhL7YX8iuCwPDLH/lwE/beI/sbzLffsszqw=,iv:344OGivr7aFtsNMch7F/GyMhd6YC+L/r0kEybevKe08=,tag:vgbj6Kp5Vjn208kmx7Ppvg==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1u9xr3tmwskfsrxg6gus3hmh9eakjh2h22jklfmcu33kassaraues435vvc
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCdkhuV3ljWXhLSDIvMkwr
|
||||
LzBEZGhublVkNlluSkhoeGR3SjNrNkdBSUhBClV6YlNVTURwZE1kcm1YalBha1Z1
|
||||
QS96R1hHQXFTeGdyWVNsTVpZWnFpTGMKLS0tIDJRWjF4eS9XS29acFBpNVBDWGlU
|
||||
S1loWHQrWGVXcitmQmF6VWdsYUkwdmMKLgSt3DdJndwL+faxDjD3BxDjPBLHtcWg
|
||||
ZphzpRu8oMw/zMHwjoGS/l8X/KxPNyGMNBXQrK4sCh4S3S5BOeybIQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1wyz7cfldqe9hh8qyw2qm42hkq9s7qdwqnrnv0u3s6vstv9649v0sh0z4em
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlMzNWRHdNbHk5NERXb01s
|
||||
Lzltd21jUHE1WjB1LzU5dC9FdCtwSDQvUDJBCmlzNGpPcVZSTnViUGQ0RmxndWVO
|
||||
aDlXRlY2V2xta0hJa0xRVmp5VGp0ZnMKLS0tIEhsYWkwVW9pSlNxc0xZRnRqRVk0
|
||||
QzJITlJIQzVXUFZFWEljNzJmU2dZTTAK9799iq5gxCjPwBCWRzIIuOT/LDZ5Bhnv
|
||||
CszvH6QZs+HEPDqzqcik3ewbFu/mDygmB68bJe/ccUZi4pWxemRkYg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-05-05T17:02:03Z"
|
||||
mac: ENC[AES256_GCM,data:nlFMfwUt2EsDHiFSrrTYJVtpYpWYcufG+ZMXEYZNhX1ozeV0zieFccBjcaojHF77bpGtER58NEqOfS8kXGltyc2Mmg810VxcRzrK5LiJA0mMlA15oo3G+EkFcqd+MhZ5OnodAdPkJN5aUafH1BEVfC1o4ebngXMp72RGuf4kEg4=,iv:P69tDcWYWkESp2ZMUVifl5PEqVmfcs4IuvpFwJuNVDU=,tag:gAxbm/LEtFB+AO9nR0tthg==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
41
nixosModules/misc/bonfire/secrets/default.nix
Normal file
41
nixosModules/misc/bonfire/secrets/default.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{ config }:
|
||||
{
|
||||
catarina = {
|
||||
sops = {
|
||||
defaultSopsFile = ./catarina.yaml;
|
||||
age.keyFile = "/var/lib/secrets/sops-nix/catarina.txt";
|
||||
secrets = {
|
||||
"dns" = {};
|
||||
|
||||
"users/root" = { neededForUsers = true; };
|
||||
"users/l-nafaryus" = { neededForUsers = true; };
|
||||
|
||||
"database/git" = { owner = "git"; group = "gitea"; };
|
||||
|
||||
"mail/l-nafaryus" = {};
|
||||
"mail/git" = {};
|
||||
"mail/kirill" = {};
|
||||
|
||||
"gitea/mail" = { owner = "git"; group = "gitea"; };
|
||||
"gitea-runner/master-token" = {};
|
||||
|
||||
"papermc/rcon" = { owner = "papermc"; group = "papermc"; };
|
||||
|
||||
discordToken = { owner = "oscuro"; group = "oscuro"; };
|
||||
};
|
||||
};
|
||||
|
||||
mailAccounts = {
|
||||
"l.nafaryus@elnafo.ru" = {
|
||||
hashedPasswordFile = config.sops.secrets."mail/l-nafaryus".path;
|
||||
aliases = [ "l-nafaryus@elnafo.ru" ];
|
||||
};
|
||||
"kirill@elnafo.ru" = {
|
||||
hashedPasswordFile = config.sops.secrets."mail/kirill".path;
|
||||
};
|
||||
"git@elnafo.ru" = {
|
||||
hashedPasswordFile = config.sops.secrets."mail/git".path;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,4 +1,3 @@
|
||||
{ self, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
@ -12,7 +11,7 @@ let
|
||||
whitelistFile = pkgs.writeText "whitelist.json"
|
||||
(builtins.toJSON cfg.whitelist);
|
||||
|
||||
opsFile = pkgs.writeText "whitelist.json"
|
||||
opsFile = pkgs.writeText "ops.json"
|
||||
(builtins.toJSON cfg.ops);
|
||||
|
||||
cfgToString = v: if builtins.isBool v then boolToString v else toString v;
|
||||
@ -50,12 +49,12 @@ let
|
||||
|
||||
in {
|
||||
options.services.papermc = {
|
||||
enable = mkEnableOption "Enables the PaperMC service.";
|
||||
enable = mkEnableOption "PaperMC service";
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
description = ''
|
||||
Whether to open ports in the firewall for the server.
|
||||
'';
|
||||
};
|
||||
@ -63,7 +62,7 @@ in {
|
||||
eula = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
description = ''
|
||||
Whether you agree to [Mojangs EULA](https://account.mojang.com/documents/minecraft_eula).
|
||||
This option must be set to `true` to run Minecraft server.
|
||||
'';
|
||||
@ -72,7 +71,7 @@ in {
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/papermc";
|
||||
description = lib.mdDoc ''
|
||||
description = ''
|
||||
Directory to store Minecraft database and other state/data files.
|
||||
'';
|
||||
};
|
||||
@ -80,14 +79,15 @@ in {
|
||||
whitelist = mkOption {
|
||||
type = types.listOf types.attrs;
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
description = ''
|
||||
This is a mapping from Minecraft usernames to UUIDs.
|
||||
'';
|
||||
};
|
||||
|
||||
ops = mkOption {
|
||||
type = types.listOf types.attrs;
|
||||
default = {};
|
||||
description = "Whitelist with players / operators.";
|
||||
default = [];
|
||||
};
|
||||
|
||||
serverProperties = mkOption {
|
||||
@ -107,7 +107,7 @@ in {
|
||||
"rcon.password" = "hunter2";
|
||||
}
|
||||
'';
|
||||
description = lib.mdDoc ''
|
||||
description = ''
|
||||
Minecraft server properties for the server.properties file. See
|
||||
<https://minecraft.gamepedia.com/Server.properties#Java_Edition_3>
|
||||
for documentation on these values.
|
||||
@ -117,12 +117,11 @@ in {
|
||||
rconPasswordFile = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = "Path to file with rcon password.";
|
||||
example = "/var/lib/secrets/papermc/rconpw";
|
||||
};
|
||||
|
||||
package = mkPackageOption pkgs "papermc" {
|
||||
example = "papermc_6_6_6";
|
||||
};
|
||||
package = mkPackageOption pkgs "papermc" {};
|
||||
|
||||
jvmOpts = mkOption {
|
||||
type = types.separatedString " ";
|
||||
@ -131,18 +130,19 @@ in {
|
||||
example = "-Xms4092M -Xmx4092M -XX:+UseG1GC -XX:+CMSIncrementalPacing "
|
||||
+ "-XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 "
|
||||
+ "-XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10";
|
||||
description = lib.mdDoc "JVM options for the Minecraft server.";
|
||||
description = "JVM options for the Minecraft server.";
|
||||
};
|
||||
|
||||
extraPreStart = mkOption {
|
||||
type = types.lines;
|
||||
description = "Extra shell commands for service pre-start hook.";
|
||||
default = '''';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
users.users.papermc = {
|
||||
description = "Minecraft server service user";
|
||||
description = "Minecraft server service user.";
|
||||
home = cfg.dataDir;
|
||||
createHome = true;
|
||||
isSystemUser = true;
|
@ -1,61 +1,61 @@
|
||||
{ self, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.qbittorrent-nox;
|
||||
in {
|
||||
options.services.qbittorrent-nox = {
|
||||
enable = mkEnableOption "Enables the qbittorrent-nox services";
|
||||
enable = mkEnableOption "Enables the qbittorrent-nox services.";
|
||||
|
||||
port = mkOption rec {
|
||||
type = types.int;
|
||||
default = 6969;
|
||||
example = default;
|
||||
description = "Torrenting port";
|
||||
description = "Torrenting port.";
|
||||
};
|
||||
|
||||
webuiPort = mkOption rec {
|
||||
type = types.port;
|
||||
default = 8080;
|
||||
example = default;
|
||||
description = "WebUI port";
|
||||
description = "WebUI port.";
|
||||
};
|
||||
|
||||
dataDir = mkOption rec {
|
||||
type = types.path;
|
||||
default = "/var/lib/qbittorrent-nox";
|
||||
example = default;
|
||||
description = "Directory to store qbittorrent-nox data files";
|
||||
description = "Directory to store qbittorrent-nox data files.";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "qbittorrent-nox";
|
||||
description = lib.mdDoc "User account under which qbittorrent-nox runs.";
|
||||
description = "User account under which qbittorrent-nox runs.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "qbittorrent-nox";
|
||||
description = lib.mdDoc "Group under which qbittorrent-nox runs.";
|
||||
description = "Group under which qbittorrent-nox runs.";
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Open services.qbittorrent-nox.port";
|
||||
description = "Open `services.qbittorrent-nox.port`.";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.qbittorrent-nox;
|
||||
description = "The qbittorrent package to use";
|
||||
defaultText = literalExpression "pkgs.qbittorrent-nox";
|
||||
description = "The qbittorrent package to use.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
users.users.qbittorrent-nox = {
|
||||
description = "qbittorrent-nox service user";
|
||||
description = "qbittorrent-nox service user.";
|
||||
home = cfg.dataDir;
|
||||
createHome = true;
|
||||
isSystemUser = true;
|
@ -1,38 +1,43 @@
|
||||
{ self, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, bonpkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.spoofdpi;
|
||||
pkg = self.packages.${pkgs.system}.spoofdpi;
|
||||
in {
|
||||
options.services.spoofdpi = {
|
||||
enable = mkEnableOption "Enables the SpoofDPI service";
|
||||
enable = mkEnableOption "SpoofDPI service";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = bonpkgs.spoofdpi;
|
||||
defaultText = literalExpression "bonpkgs.spoofdpi";
|
||||
description = "The package to use.";
|
||||
};
|
||||
|
||||
address = mkOption rec {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
example = default;
|
||||
description = "Listen address";
|
||||
description = "Listen address.";
|
||||
};
|
||||
|
||||
port = mkOption rec {
|
||||
type = types.port;
|
||||
default = 8080;
|
||||
example = default;
|
||||
description = "Port";
|
||||
description = "Port.";
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Open services.spoofdpi.port";
|
||||
description = "Open `services.spoofdpi.port`.";
|
||||
};
|
||||
|
||||
dns = mkOption rec {
|
||||
type = types.str;
|
||||
default = "8.8.8.8";
|
||||
example = default;
|
||||
description = "DNS server";
|
||||
description = "DNS server.";
|
||||
};
|
||||
};
|
||||
|
||||
@ -42,7 +47,7 @@ in {
|
||||
after = [ "network.target" ];
|
||||
serviceConfig = {
|
||||
Restart = "on-failure";
|
||||
ExecStart = "${pkg}/bin/spoof-dpi -no-banner -addr ${cfg.address} -port ${toString cfg.port} -dns ${cfg.dns}";
|
||||
ExecStart = "${lib.getExe cfg.package} -no-banner -addr ${cfg.address} -port ${toString cfg.port} -dns ${cfg.dns}";
|
||||
DynamicUser = "yes";
|
||||
};
|
||||
};
|
16
packages/bonfire-docs/book.toml
Normal file
16
packages/bonfire-docs/book.toml
Normal file
@ -0,0 +1,16 @@
|
||||
[book]
|
||||
title = "bonfire"
|
||||
authors = ["L-Nafaryus"]
|
||||
description = "Bonfire"
|
||||
language = "en"
|
||||
multilingual = false
|
||||
src = "src"
|
||||
|
||||
[output.html]
|
||||
default-theme = "macchiato"
|
||||
preferred-dark-theme = "macchiato"
|
||||
additional-css = ["./theme/catppuccin.css"]
|
||||
no-section-label = true
|
||||
git-repository-url = "https://github.com/L-Nafaryus/bonfire"
|
||||
git-repository-icon = "fa-github"
|
||||
cname = "elnafo.ru"
|
167
packages/bonfire-docs/default.nix
Normal file
167
packages/bonfire-docs/default.nix
Normal file
@ -0,0 +1,167 @@
|
||||
{
|
||||
bonfire,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
version = bonfire.shortRev or bonfire.dirtyShortRev or "unknown";
|
||||
projectPath = ../../.;
|
||||
modulesPath = ../../nixosModules;
|
||||
|
||||
links = [
|
||||
{
|
||||
hostname = "vcs-elnafo";
|
||||
url = "https://vcs.elnafo.ru/L-Nafaryus/bonfire/blob/master";
|
||||
}
|
||||
{
|
||||
hostname = "github";
|
||||
url = "https://github.com/L-Nafaryus/bonfire/blob/master";
|
||||
}
|
||||
];
|
||||
|
||||
formatDeclaration = declaration:
|
||||
if lib.hasPrefix (toString modulesPath) (toString declaration) then
|
||||
let subpath = lib.removePrefix (toString projectPath + "/") (toString declaration);
|
||||
in map ({ hostname, url }: {
|
||||
url = "${url}/${subpath}";
|
||||
name = "<${hostname}:bonfire/${subpath}>";
|
||||
}) links
|
||||
else
|
||||
# skip external declarations
|
||||
lib.singleton declaration;
|
||||
|
||||
nixosModules = (import modulesPath { inherit lib; check = false; });
|
||||
|
||||
evaluatedModules = lib.evalModules {
|
||||
modules = nixosModules.modules ++ [ nixosModules.configModule ];
|
||||
};
|
||||
|
||||
optionsDoc = pkgs.nixosOptionsDoc {
|
||||
options = builtins.removeAttrs evaluatedModules.options [
|
||||
"_module"
|
||||
"system"
|
||||
];
|
||||
|
||||
transformOptions = option: option // {
|
||||
declarations = lib.unique (
|
||||
lib.flatten (map (declaration: formatDeclaration declaration) option.declarations) ++
|
||||
option.declarations
|
||||
);
|
||||
};
|
||||
documentType = "none";
|
||||
revision = version;
|
||||
};
|
||||
|
||||
systems = builtins.attrNames bonfire.packages;
|
||||
derivations = lib.flatten (
|
||||
map (packages: (
|
||||
map (name: packages.${name}) (builtins.attrNames packages)
|
||||
)) (map (system: bonfire.packages.${system}) systems));
|
||||
|
||||
renderMaintainers = maintainers: lib.concatStringsSep ", " (
|
||||
let
|
||||
maintainer = mt: if mt?github then "[${mt.name}](https://github.com/${mt.github})" else mt.name;
|
||||
email = mt: if mt?email then "<[${mt.email}](mailto:${mt.email})>" else "";
|
||||
in map (mt: maintainer mt + email mt) maintainers
|
||||
);
|
||||
|
||||
renderPlatforms = platforms: if platforms != lib.platforms.none then
|
||||
if platforms == lib.platforms.all then
|
||||
"all"
|
||||
else
|
||||
lib.concatStringsSep ", " (map (platform: "__${platform}__") platforms)
|
||||
else "";
|
||||
|
||||
renderPackage = drv: ''
|
||||
## ${drv.pname}
|
||||
|
||||
${lib.optionalString (drv.meta?description) drv.meta.description}
|
||||
|
||||
${lib.optionalString (drv.meta?homepage) "[Homepage](${drv.meta.homepage})"}
|
||||
|
||||
Version: __${drv.version}__
|
||||
|
||||
${lib.optionalString (drv.meta?license) "License: [${drv.meta.license.fullName}](${drv.meta.license.url})"}
|
||||
|
||||
Outputs: ${lib.concatStringsSep ", " (map (o: "__${o}__") drv.outputs)}
|
||||
|
||||
${lib.optionalString (drv.meta?mainProgram) "Provided programs: __${drv.meta.mainProgram}__"}
|
||||
|
||||
${lib.optionalString (drv.meta?maintainers) "Maintainers: ${renderMaintainers drv.meta.maintainers}"}
|
||||
|
||||
${lib.optionalString (drv.meta?platforms) "Platforms: ${renderPlatforms drv.meta.platforms}"}
|
||||
'';
|
||||
|
||||
renderImage = drv: ''
|
||||
## ${drv.imageName}
|
||||
|
||||
${lib.optionalString (drv.meta?description) drv.meta.description}
|
||||
|
||||
${lib.optionalString (drv.meta?homepage) "[Homepage](${drv.meta.homepage})"}
|
||||
|
||||
Tag: __${drv.imageTag}__
|
||||
|
||||
${lib.optionalString (drv.fromImage != null) "From: __${drv.fromImage.imageName}__"}
|
||||
|
||||
${lib.optionalString (drv.meta?license) "License: ${if lib.isList drv.meta.license then (map (license: "[${drv.meta.license.fullName}](${drv.meta.license.url})") drv.meta.license) else "[${drv.meta.license.fullName}](${drv.meta.license.url})"}"}
|
||||
|
||||
${lib.optionalString (drv.meta?maintainers) "Maintainers: ${renderMaintainers drv.meta.maintainers}"}
|
||||
|
||||
${lib.optionalString (drv.meta?platforms) "Platforms: ${renderPlatforms drv.meta.platforms}"}
|
||||
'';
|
||||
|
||||
packagesDoc = pkgs.writeText "packages.md"
|
||||
(lib.concatStringsSep "\n" (map (drv:
|
||||
if drv?imageTag then renderImage drv else renderPackage drv) derivations));
|
||||
|
||||
in
|
||||
pkgs.stdenvNoCC.mkDerivation {
|
||||
pname = "bonfire-docs";
|
||||
inherit version;
|
||||
|
||||
src = lib.fileset.toSource {
|
||||
root = ./.;
|
||||
fileset = lib.fileset.unions [
|
||||
./src
|
||||
./book.toml
|
||||
./theme
|
||||
];
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgs.mdbook ];
|
||||
dontPatch = true;
|
||||
dontConfigure = true;
|
||||
doCheck = false;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
ln -s ${../../README.md} src/README.md
|
||||
ln -s ${optionsDoc.optionsCommonMark} src/options/modules.md
|
||||
ln -s ${packagesDoc} src/packages/packages.md
|
||||
mdbook build
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mv book $out
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
serve = pkgs.writeShellApplication {
|
||||
name = "server";
|
||||
runtimeInputs = [ pkgs.python3 ];
|
||||
text = "python -m http.server --bind 127.0.0.1";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Bonfire HTML documentation.";
|
||||
license = licenses.mit;
|
||||
maintainers = with bonfire.lib.maintainers; [ L-Nafaryus ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
20
packages/bonfire-docs/src/SUMMARY.md
Normal file
20
packages/bonfire-docs/src/SUMMARY.md
Normal file
@ -0,0 +1,20 @@
|
||||
# Summary
|
||||
|
||||
[Introduction](README.md)
|
||||
|
||||
- [Getting started](getting-started/README.md)
|
||||
- [Stable Nix](getting-started/stable-nix.md)
|
||||
- [Flakes](getting-started/flakes.md)
|
||||
|
||||
- [Packages](packages/README.md)
|
||||
- [packages](packages/packages.md)
|
||||
|
||||
- [Module options](options/README.md)
|
||||
- [nixosModules](options/modules.md)
|
||||
|
||||
- [FAQ](faq.md)
|
||||
|
||||
- [Changelog](NEWS.md)
|
||||
|
||||
- [Contributing](CONTRIBUTING.md)
|
||||
|
27
packages/bonfire-docs/src/options/README.md
Normal file
27
packages/bonfire-docs/src/options/README.md
Normal file
@ -0,0 +1,27 @@
|
||||
# Module options
|
||||
|
||||
First, you need to add this project to your flake inputs:
|
||||
|
||||
```nix
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
bonfire.url = "github:L-Nafaryus/bonfire";
|
||||
};
|
||||
outputs = { nixpkgs, bonfire, ... }:
|
||||
{ ... }
|
||||
}
|
||||
```
|
||||
|
||||
After, you can use in a NixOS configuration like so
|
||||
|
||||
```nix
|
||||
{
|
||||
nixosConfigurations.foo = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
bonfire.nixosModules.bonfire
|
||||
...
|
||||
];
|
||||
};
|
||||
}
|
0
packages/bonfire-docs/src/packages/README.md
Normal file
0
packages/bonfire-docs/src/packages/README.md
Normal file
788
packages/bonfire-docs/theme/catppuccin.css
Normal file
788
packages/bonfire-docs/theme/catppuccin.css
Normal file
@ -0,0 +1,788 @@
|
||||
.mocha.hljs {
|
||||
color: #cdd6f4;
|
||||
background: #1e1e2e;
|
||||
}
|
||||
.mocha .hljs-keyword {
|
||||
color: #cba6f7;
|
||||
}
|
||||
.mocha .hljs-built_in {
|
||||
color: #f38ba8;
|
||||
}
|
||||
.mocha .hljs-type {
|
||||
color: #f9e2af;
|
||||
}
|
||||
.mocha .hljs-literal {
|
||||
color: #fab387;
|
||||
}
|
||||
.mocha .hljs-number {
|
||||
color: #fab387;
|
||||
}
|
||||
.mocha .hljs-operator {
|
||||
color: #94e2d5;
|
||||
}
|
||||
.mocha .hljs-punctuation {
|
||||
color: #bac2de;
|
||||
}
|
||||
.mocha .hljs-property {
|
||||
color: #94e2d5;
|
||||
}
|
||||
.mocha .hljs-regexp {
|
||||
color: #f5c2e7;
|
||||
}
|
||||
.mocha .hljs-string {
|
||||
color: #a6e3a1;
|
||||
}
|
||||
.mocha .hljs-char.escape_ {
|
||||
color: #a6e3a1;
|
||||
}
|
||||
.mocha .hljs-subst {
|
||||
color: #a6adc8;
|
||||
}
|
||||
.mocha .hljs-symbol {
|
||||
color: #f2cdcd;
|
||||
}
|
||||
.mocha .hljs-variable {
|
||||
color: #cba6f7;
|
||||
}
|
||||
.mocha .hljs-variable.language_ {
|
||||
color: #cba6f7;
|
||||
}
|
||||
.mocha .hljs-variable.constant_ {
|
||||
color: #fab387;
|
||||
}
|
||||
.mocha .hljs-title {
|
||||
color: #89b4fa;
|
||||
}
|
||||
.mocha .hljs-title.class_ {
|
||||
color: #f9e2af;
|
||||
}
|
||||
.mocha .hljs-title.function_ {
|
||||
color: #89b4fa;
|
||||
}
|
||||
.mocha .hljs-params {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
.mocha .hljs-comment {
|
||||
color: #585b70;
|
||||
}
|
||||
.mocha .hljs-doctag {
|
||||
color: #f38ba8;
|
||||
}
|
||||
.mocha .hljs-meta {
|
||||
color: #fab387;
|
||||
}
|
||||
.mocha .hljs-section {
|
||||
color: #89b4fa;
|
||||
}
|
||||
.mocha .hljs-tag {
|
||||
color: #a6adc8;
|
||||
}
|
||||
.mocha .hljs-name {
|
||||
color: #cba6f7;
|
||||
}
|
||||
.mocha .hljs-attr {
|
||||
color: #89b4fa;
|
||||
}
|
||||
.mocha .hljs-attribute {
|
||||
color: #a6e3a1;
|
||||
}
|
||||
.mocha .hljs-bullet {
|
||||
color: #94e2d5;
|
||||
}
|
||||
.mocha .hljs-code {
|
||||
color: #a6e3a1;
|
||||
}
|
||||
.mocha .hljs-emphasis {
|
||||
color: #f38ba8;
|
||||
font-style: italic;
|
||||
}
|
||||
.mocha .hljs-strong {
|
||||
color: #f38ba8;
|
||||
font-weight: bold;
|
||||
}
|
||||
.mocha .hljs-formula {
|
||||
color: #94e2d5;
|
||||
}
|
||||
.mocha .hljs-link {
|
||||
color: #74c7ec;
|
||||
font-style: italic;
|
||||
}
|
||||
.mocha .hljs-quote {
|
||||
color: #a6e3a1;
|
||||
font-style: italic;
|
||||
}
|
||||
.mocha .hljs-selector-tag {
|
||||
color: #f9e2af;
|
||||
}
|
||||
.mocha .hljs-selector-id {
|
||||
color: #89b4fa;
|
||||
}
|
||||
.mocha .hljs-selector-class {
|
||||
color: #94e2d5;
|
||||
}
|
||||
.mocha .hljs-selector-attr {
|
||||
color: #cba6f7;
|
||||
}
|
||||
.mocha .hljs-selector-pseudo {
|
||||
color: #94e2d5;
|
||||
}
|
||||
.mocha .hljs-template-tag {
|
||||
color: #f2cdcd;
|
||||
}
|
||||
.mocha .hljs-template-variable {
|
||||
color: #f2cdcd;
|
||||
}
|
||||
.mocha .hljs-addition {
|
||||
color: #a6e3a1;
|
||||
background: rgba(166, 227, 161, 0.15);
|
||||
}
|
||||
.mocha .hljs-deletion {
|
||||
color: #f38ba8;
|
||||
background: rgba(243, 139, 168, 0.15);
|
||||
}
|
||||
.mocha code {
|
||||
color: #cdd6f4;
|
||||
background: #181825;
|
||||
}
|
||||
.mocha blockquote blockquote {
|
||||
border-top: 0.1em solid #585b70;
|
||||
border-bottom: 0.1em solid #585b70;
|
||||
}
|
||||
.mocha hr {
|
||||
color: #585b70;
|
||||
}
|
||||
.mocha del {
|
||||
color: #9399b2;
|
||||
}
|
||||
.mocha .ace_gutter {
|
||||
color: #7f849c;
|
||||
background: #181825;
|
||||
}
|
||||
.mocha .ace_gutter-active-line.ace_gutter-cell {
|
||||
color: #f5c2e7;
|
||||
background: #181825;
|
||||
}
|
||||
|
||||
.macchiato.hljs {
|
||||
color: #cad3f5;
|
||||
background: #24273a;
|
||||
}
|
||||
.macchiato .hljs-keyword {
|
||||
color: #c6a0f6;
|
||||
}
|
||||
.macchiato .hljs-built_in {
|
||||
color: #ed8796;
|
||||
}
|
||||
.macchiato .hljs-type {
|
||||
color: #eed49f;
|
||||
}
|
||||
.macchiato .hljs-literal {
|
||||
color: #f5a97f;
|
||||
}
|
||||
.macchiato .hljs-number {
|
||||
color: #f5a97f;
|
||||
}
|
||||
.macchiato .hljs-operator {
|
||||
color: #8bd5ca;
|
||||
}
|
||||
.macchiato .hljs-punctuation {
|
||||
color: #b8c0e0;
|
||||
}
|
||||
.macchiato .hljs-property {
|
||||
color: #8bd5ca;
|
||||
}
|
||||
.macchiato .hljs-regexp {
|
||||
color: #f5bde6;
|
||||
}
|
||||
.macchiato .hljs-string {
|
||||
color: #a6da95;
|
||||
}
|
||||
.macchiato .hljs-char.escape_ {
|
||||
color: #a6da95;
|
||||
}
|
||||
.macchiato .hljs-subst {
|
||||
color: #a5adcb;
|
||||
}
|
||||
.macchiato .hljs-symbol {
|
||||
color: #f0c6c6;
|
||||
}
|
||||
.macchiato .hljs-variable {
|
||||
color: #c6a0f6;
|
||||
}
|
||||
.macchiato .hljs-variable.language_ {
|
||||
color: #c6a0f6;
|
||||
}
|
||||
.macchiato .hljs-variable.constant_ {
|
||||
color: #f5a97f;
|
||||
}
|
||||
.macchiato .hljs-title {
|
||||
color: #8aadf4;
|
||||
}
|
||||
.macchiato .hljs-title.class_ {
|
||||
color: #eed49f;
|
||||
}
|
||||
.macchiato .hljs-title.function_ {
|
||||
color: #8aadf4;
|
||||
}
|
||||
.macchiato .hljs-params {
|
||||
color: #cad3f5;
|
||||
}
|
||||
.macchiato .hljs-comment {
|
||||
color: #5b6078;
|
||||
}
|
||||
.macchiato .hljs-doctag {
|
||||
color: #ed8796;
|
||||
}
|
||||
.macchiato .hljs-meta {
|
||||
color: #f5a97f;
|
||||
}
|
||||
.macchiato .hljs-section {
|
||||
color: #8aadf4;
|
||||
}
|
||||
.macchiato .hljs-tag {
|
||||
color: #a5adcb;
|
||||
}
|
||||
.macchiato .hljs-name {
|
||||
color: #c6a0f6;
|
||||
}
|
||||
.macchiato .hljs-attr {
|
||||
color: #8aadf4;
|
||||
}
|
||||
.macchiato .hljs-attribute {
|
||||
color: #a6da95;
|
||||
}
|
||||
.macchiato .hljs-bullet {
|
||||
color: #8bd5ca;
|
||||
}
|
||||
.macchiato .hljs-code {
|
||||
color: #a6da95;
|
||||
}
|
||||
.macchiato .hljs-emphasis {
|
||||
color: #ed8796;
|
||||
font-style: italic;
|
||||
}
|
||||
.macchiato .hljs-strong {
|
||||
color: #ed8796;
|
||||
font-weight: bold;
|
||||
}
|
||||
.macchiato .hljs-formula {
|
||||
color: #8bd5ca;
|
||||
}
|
||||
.macchiato .hljs-link {
|
||||
color: #7dc4e4;
|
||||
font-style: italic;
|
||||
}
|
||||
.macchiato .hljs-quote {
|
||||
color: #a6da95;
|
||||
font-style: italic;
|
||||
}
|
||||
.macchiato .hljs-selector-tag {
|
||||
color: #eed49f;
|
||||
}
|
||||
.macchiato .hljs-selector-id {
|
||||
color: #8aadf4;
|
||||
}
|
||||
.macchiato .hljs-selector-class {
|
||||
color: #8bd5ca;
|
||||
}
|
||||
.macchiato .hljs-selector-attr {
|
||||
color: #c6a0f6;
|
||||
}
|
||||
.macchiato .hljs-selector-pseudo {
|
||||
color: #8bd5ca;
|
||||
}
|
||||
.macchiato .hljs-template-tag {
|
||||
color: #f0c6c6;
|
||||
}
|
||||
.macchiato .hljs-template-variable {
|
||||
color: #f0c6c6;
|
||||
}
|
||||
.macchiato .hljs-addition {
|
||||
color: #a6da95;
|
||||
background: rgba(166, 218, 149, 0.15);
|
||||
}
|
||||
.macchiato .hljs-deletion {
|
||||
color: #ed8796;
|
||||
background: rgba(237, 135, 150, 0.15);
|
||||
}
|
||||
.macchiato code {
|
||||
color: #cad3f5;
|
||||
background: #1e2030;
|
||||
}
|
||||
.macchiato blockquote blockquote {
|
||||
border-top: 0.1em solid #5b6078;
|
||||
border-bottom: 0.1em solid #5b6078;
|
||||
}
|
||||
.macchiato hr {
|
||||
color: #5b6078;
|
||||
}
|
||||
.macchiato del {
|
||||
color: #939ab7;
|
||||
}
|
||||
.macchiato .ace_gutter {
|
||||
color: #8087a2;
|
||||
background: #1e2030;
|
||||
}
|
||||
.macchiato .ace_gutter-active-line.ace_gutter-cell {
|
||||
color: #f5bde6;
|
||||
background: #1e2030;
|
||||
}
|
||||
|
||||
.frappe.hljs {
|
||||
color: #c6d0f5;
|
||||
background: #303446;
|
||||
}
|
||||
.frappe .hljs-keyword {
|
||||
color: #ca9ee6;
|
||||
}
|
||||
.frappe .hljs-built_in {
|
||||
color: #e78284;
|
||||
}
|
||||
.frappe .hljs-type {
|
||||
color: #e5c890;
|
||||
}
|
||||
.frappe .hljs-literal {
|
||||
color: #ef9f76;
|
||||
}
|
||||
.frappe .hljs-number {
|
||||
color: #ef9f76;
|
||||
}
|
||||
.frappe .hljs-operator {
|
||||
color: #81c8be;
|
||||
}
|
||||
.frappe .hljs-punctuation {
|
||||
color: #b5bfe2;
|
||||
}
|
||||
.frappe .hljs-property {
|
||||
color: #81c8be;
|
||||
}
|
||||
.frappe .hljs-regexp {
|
||||
color: #f4b8e4;
|
||||
}
|
||||
.frappe .hljs-string {
|
||||
color: #a6d189;
|
||||
}
|
||||
.frappe .hljs-char.escape_ {
|
||||
color: #a6d189;
|
||||
}
|
||||
.frappe .hljs-subst {
|
||||
color: #a5adce;
|
||||
}
|
||||
.frappe .hljs-symbol {
|
||||
color: #eebebe;
|
||||
}
|
||||
.frappe .hljs-variable {
|
||||
color: #ca9ee6;
|
||||
}
|
||||
.frappe .hljs-variable.language_ {
|
||||
color: #ca9ee6;
|
||||
}
|
||||
.frappe .hljs-variable.constant_ {
|
||||
color: #ef9f76;
|
||||
}
|
||||
.frappe .hljs-title {
|
||||
color: #8caaee;
|
||||
}
|
||||
.frappe .hljs-title.class_ {
|
||||
color: #e5c890;
|
||||
}
|
||||
.frappe .hljs-title.function_ {
|
||||
color: #8caaee;
|
||||
}
|
||||
.frappe .hljs-params {
|
||||
color: #c6d0f5;
|
||||
}
|
||||
.frappe .hljs-comment {
|
||||
color: #626880;
|
||||
}
|
||||
.frappe .hljs-doctag {
|
||||
color: #e78284;
|
||||
}
|
||||
.frappe .hljs-meta {
|
||||
color: #ef9f76;
|
||||
}
|
||||
.frappe .hljs-section {
|
||||
color: #8caaee;
|
||||
}
|
||||
.frappe .hljs-tag {
|
||||
color: #a5adce;
|
||||
}
|
||||
.frappe .hljs-name {
|
||||
color: #ca9ee6;
|
||||
}
|
||||
.frappe .hljs-attr {
|
||||
color: #8caaee;
|
||||
}
|
||||
.frappe .hljs-attribute {
|
||||
color: #a6d189;
|
||||
}
|
||||
.frappe .hljs-bullet {
|
||||
color: #81c8be;
|
||||
}
|
||||
.frappe .hljs-code {
|
||||
color: #a6d189;
|
||||
}
|
||||
.frappe .hljs-emphasis {
|
||||
color: #e78284;
|
||||
font-style: italic;
|
||||
}
|
||||
.frappe .hljs-strong {
|
||||
color: #e78284;
|
||||
font-weight: bold;
|
||||
}
|
||||
.frappe .hljs-formula {
|
||||
color: #81c8be;
|
||||
}
|
||||
.frappe .hljs-link {
|
||||
color: #85c1dc;
|
||||
font-style: italic;
|
||||
}
|
||||
.frappe .hljs-quote {
|
||||
color: #a6d189;
|
||||
font-style: italic;
|
||||
}
|
||||
.frappe .hljs-selector-tag {
|
||||
color: #e5c890;
|
||||
}
|
||||
.frappe .hljs-selector-id {
|
||||
color: #8caaee;
|
||||
}
|
||||
.frappe .hljs-selector-class {
|
||||
color: #81c8be;
|
||||
}
|
||||
.frappe .hljs-selector-attr {
|
||||
color: #ca9ee6;
|
||||
}
|
||||
.frappe .hljs-selector-pseudo {
|
||||
color: #81c8be;
|
||||
}
|
||||
.frappe .hljs-template-tag {
|
||||
color: #eebebe;
|
||||
}
|
||||
.frappe .hljs-template-variable {
|
||||
color: #eebebe;
|
||||
}
|
||||
.frappe .hljs-addition {
|
||||
color: #a6d189;
|
||||
background: rgba(166, 209, 137, 0.15);
|
||||
}
|
||||
.frappe .hljs-deletion {
|
||||
color: #e78284;
|
||||
background: rgba(231, 130, 132, 0.15);
|
||||
}
|
||||
.frappe code {
|
||||
color: #c6d0f5;
|
||||
background: #292c3c;
|
||||
}
|
||||
.frappe blockquote blockquote {
|
||||
border-top: 0.1em solid #626880;
|
||||
border-bottom: 0.1em solid #626880;
|
||||
}
|
||||
.frappe hr {
|
||||
color: #626880;
|
||||
}
|
||||
.frappe del {
|
||||
color: #949cbb;
|
||||
}
|
||||
.frappe .ace_gutter {
|
||||
color: #838ba7;
|
||||
background: #292c3c;
|
||||
}
|
||||
.frappe .ace_gutter-active-line.ace_gutter-cell {
|
||||
color: #f4b8e4;
|
||||
background: #292c3c;
|
||||
}
|
||||
|
||||
.latte.hljs {
|
||||
color: #4c4f69;
|
||||
background: #eff1f5;
|
||||
}
|
||||
.latte .hljs-keyword {
|
||||
color: #8839ef;
|
||||
}
|
||||
.latte .hljs-built_in {
|
||||
color: #d20f39;
|
||||
}
|
||||
.latte .hljs-type {
|
||||
color: #df8e1d;
|
||||
}
|
||||
.latte .hljs-literal {
|
||||
color: #fe640b;
|
||||
}
|
||||
.latte .hljs-number {
|
||||
color: #fe640b;
|
||||
}
|
||||
.latte .hljs-operator {
|
||||
color: #179299;
|
||||
}
|
||||
.latte .hljs-punctuation {
|
||||
color: #5c5f77;
|
||||
}
|
||||
.latte .hljs-property {
|
||||
color: #179299;
|
||||
}
|
||||
.latte .hljs-regexp {
|
||||
color: #ea76cb;
|
||||
}
|
||||
.latte .hljs-string {
|
||||
color: #40a02b;
|
||||
}
|
||||
.latte .hljs-char.escape_ {
|
||||
color: #40a02b;
|
||||
}
|
||||
.latte .hljs-subst {
|
||||
color: #6c6f85;
|
||||
}
|
||||
.latte .hljs-symbol {
|
||||
color: #dd7878;
|
||||
}
|
||||
.latte .hljs-variable {
|
||||
color: #8839ef;
|
||||
}
|
||||
.latte .hljs-variable.language_ {
|
||||
color: #8839ef;
|
||||
}
|
||||
.latte .hljs-variable.constant_ {
|
||||
color: #fe640b;
|
||||
}
|
||||
.latte .hljs-title {
|
||||
color: #1e66f5;
|
||||
}
|
||||
.latte .hljs-title.class_ {
|
||||
color: #df8e1d;
|
||||
}
|
||||
.latte .hljs-title.function_ {
|
||||
color: #1e66f5;
|
||||
}
|
||||
.latte .hljs-params {
|
||||
color: #4c4f69;
|
||||
}
|
||||
.latte .hljs-comment {
|
||||
color: #acb0be;
|
||||
}
|
||||
.latte .hljs-doctag {
|
||||
color: #d20f39;
|
||||
}
|
||||
.latte .hljs-meta {
|
||||
color: #fe640b;
|
||||
}
|
||||
.latte .hljs-section {
|
||||
color: #1e66f5;
|
||||
}
|
||||
.latte .hljs-tag {
|
||||
color: #6c6f85;
|
||||
}
|
||||
.latte .hljs-name {
|
||||
color: #8839ef;
|
||||
}
|
||||
.latte .hljs-attr {
|
||||
color: #1e66f5;
|
||||
}
|
||||
.latte .hljs-attribute {
|
||||
color: #40a02b;
|
||||
}
|
||||
.latte .hljs-bullet {
|
||||
color: #179299;
|
||||
}
|
||||
.latte .hljs-code {
|
||||
color: #40a02b;
|
||||
}
|
||||
.latte .hljs-emphasis {
|
||||
color: #d20f39;
|
||||
font-style: italic;
|
||||
}
|
||||
.latte .hljs-strong {
|
||||
color: #d20f39;
|
||||
font-weight: bold;
|
||||
}
|
||||
.latte .hljs-formula {
|
||||
color: #179299;
|
||||
}
|
||||
.latte .hljs-link {
|
||||
color: #209fb5;
|
||||
font-style: italic;
|
||||
}
|
||||
.latte .hljs-quote {
|
||||
color: #40a02b;
|
||||
font-style: italic;
|
||||
}
|
||||
.latte .hljs-selector-tag {
|
||||
color: #df8e1d;
|
||||
}
|
||||
.latte .hljs-selector-id {
|
||||
color: #1e66f5;
|
||||
}
|
||||
.latte .hljs-selector-class {
|
||||
color: #179299;
|
||||
}
|
||||
.latte .hljs-selector-attr {
|
||||
color: #8839ef;
|
||||
}
|
||||
.latte .hljs-selector-pseudo {
|
||||
color: #179299;
|
||||
}
|
||||
.latte .hljs-template-tag {
|
||||
color: #dd7878;
|
||||
}
|
||||
.latte .hljs-template-variable {
|
||||
color: #dd7878;
|
||||
}
|
||||
.latte .hljs-addition {
|
||||
color: #40a02b;
|
||||
background: rgba(64, 160, 43, 0.15);
|
||||
}
|
||||
.latte .hljs-deletion {
|
||||
color: #d20f39;
|
||||
background: rgba(210, 15, 57, 0.15);
|
||||
}
|
||||
.latte code {
|
||||
color: #4c4f69;
|
||||
background: #e6e9ef;
|
||||
}
|
||||
.latte blockquote blockquote {
|
||||
border-top: 0.1em solid #acb0be;
|
||||
border-bottom: 0.1em solid #acb0be;
|
||||
}
|
||||
.latte hr {
|
||||
color: #acb0be;
|
||||
}
|
||||
.latte del {
|
||||
color: #7c7f93;
|
||||
}
|
||||
.latte .ace_gutter {
|
||||
color: #8c8fa1;
|
||||
background: #e6e9ef;
|
||||
}
|
||||
.latte .ace_gutter-active-line.ace_gutter-cell {
|
||||
color: #ea76cb;
|
||||
background: #e6e9ef;
|
||||
}
|
||||
|
||||
.mocha {
|
||||
--bg: #1e1e2e;
|
||||
--fg: #cdd6f4;
|
||||
--sidebar-bg: #181825;
|
||||
--sidebar-fg: #cdd6f4;
|
||||
--sidebar-non-existant: #6c7086;
|
||||
--sidebar-active: #89b4fa;
|
||||
--sidebar-spacer: #6c7086;
|
||||
--scrollbar: #6c7086;
|
||||
--icons: #6c7086;
|
||||
--icons-hover: #7f849c;
|
||||
--links: #89b4fa;
|
||||
--inline-code-color: #fab387;
|
||||
--theme-popup-bg: #181825;
|
||||
--theme-popup-border: #6c7086;
|
||||
--theme-hover: #6c7086;
|
||||
--quote-bg: #181825;
|
||||
--quote-border: #11111b;
|
||||
--table-border-color: #11111b;
|
||||
--table-header-bg: #181825;
|
||||
--table-alternate-bg: #181825;
|
||||
--searchbar-border-color: #11111b;
|
||||
--searchbar-bg: #181825;
|
||||
--searchbar-fg: #cdd6f4;
|
||||
--searchbar-shadow-color: #11111b;
|
||||
--searchresults-header-fg: #cdd6f4;
|
||||
--searchresults-border-color: #11111b;
|
||||
--searchresults-li-bg: #1e1e2e;
|
||||
--search-mark-bg: #fab387;
|
||||
--warning-border: #fab387;
|
||||
}
|
||||
|
||||
.macchiato {
|
||||
--bg: #24273a;
|
||||
--fg: #cad3f5;
|
||||
--sidebar-bg: #1e2030;
|
||||
--sidebar-fg: #cad3f5;
|
||||
--sidebar-non-existant: #6e738d;
|
||||
--sidebar-active: #8aadf4;
|
||||
--sidebar-spacer: #6e738d;
|
||||
--scrollbar: #6e738d;
|
||||
--icons: #6e738d;
|
||||
--icons-hover: #8087a2;
|
||||
--links: #8aadf4;
|
||||
--inline-code-color: #f5a97f;
|
||||
--theme-popup-bg: #1e2030;
|
||||
--theme-popup-border: #6e738d;
|
||||
--theme-hover: #6e738d;
|
||||
--quote-bg: #1e2030;
|
||||
--quote-border: #181926;
|
||||
--table-border-color: #181926;
|
||||
--table-header-bg: #1e2030;
|
||||
--table-alternate-bg: #1e2030;
|
||||
--searchbar-border-color: #181926;
|
||||
--searchbar-bg: #1e2030;
|
||||
--searchbar-fg: #cad3f5;
|
||||
--searchbar-shadow-color: #181926;
|
||||
--searchresults-header-fg: #cad3f5;
|
||||
--searchresults-border-color: #181926;
|
||||
--searchresults-li-bg: #24273a;
|
||||
--search-mark-bg: #f5a97f;
|
||||
--warning-border: #f5a97f;
|
||||
}
|
||||
|
||||
.frappe {
|
||||
--bg: #303446;
|
||||
--fg: #c6d0f5;
|
||||
--sidebar-bg: #292c3c;
|
||||
--sidebar-fg: #c6d0f5;
|
||||
--sidebar-non-existant: #737994;
|
||||
--sidebar-active: #8caaee;
|
||||
--sidebar-spacer: #737994;
|
||||
--scrollbar: #737994;
|
||||
--icons: #737994;
|
||||
--icons-hover: #838ba7;
|
||||
--links: #8caaee;
|
||||
--inline-code-color: #ef9f76;
|
||||
--theme-popup-bg: #292c3c;
|
||||
--theme-popup-border: #737994;
|
||||
--theme-hover: #737994;
|
||||
--quote-bg: #292c3c;
|
||||
--quote-border: #232634;
|
||||
--table-border-color: #232634;
|
||||
--table-header-bg: #292c3c;
|
||||
--table-alternate-bg: #292c3c;
|
||||
--searchbar-border-color: #232634;
|
||||
--searchbar-bg: #292c3c;
|
||||
--searchbar-fg: #c6d0f5;
|
||||
--searchbar-shadow-color: #232634;
|
||||
--searchresults-header-fg: #c6d0f5;
|
||||
--searchresults-border-color: #232634;
|
||||
--searchresults-li-bg: #303446;
|
||||
--search-mark-bg: #ef9f76;
|
||||
--warning-border: #ef9f76;
|
||||
}
|
||||
|
||||
.latte {
|
||||
--bg: #eff1f5;
|
||||
--fg: #4c4f69;
|
||||
--sidebar-bg: #e6e9ef;
|
||||
--sidebar-fg: #4c4f69;
|
||||
--sidebar-non-existant: #9ca0b0;
|
||||
--sidebar-active: #1e66f5;
|
||||
--sidebar-spacer: #9ca0b0;
|
||||
--scrollbar: #9ca0b0;
|
||||
--icons: #9ca0b0;
|
||||
--icons-hover: #8c8fa1;
|
||||
--links: #1e66f5;
|
||||
--inline-code-color: #fe640b;
|
||||
--theme-popup-bg: #e6e9ef;
|
||||
--theme-popup-border: #9ca0b0;
|
||||
--theme-hover: #9ca0b0;
|
||||
--quote-bg: #e6e9ef;
|
||||
--quote-border: #dce0e8;
|
||||
--table-border-color: #dce0e8;
|
||||
--table-header-bg: #e6e9ef;
|
||||
--table-alternate-bg: #e6e9ef;
|
||||
--searchbar-border-color: #dce0e8;
|
||||
--searchbar-bg: #e6e9ef;
|
||||
--searchbar-fg: #4c4f69;
|
||||
--searchbar-shadow-color: #dce0e8;
|
||||
--searchresults-header-fg: #4c4f69;
|
||||
--searchresults-border-color: #dce0e8;
|
||||
--searchresults-li-bg: #eff1f5;
|
||||
--search-mark-bg: #fe640b;
|
||||
--warning-border: #fe640b;
|
||||
}
|
||||
|
348
packages/bonfire-docs/theme/index.hbs
Normal file
348
packages/bonfire-docs/theme/index.hbs
Normal file
@ -0,0 +1,348 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="{{ language }}" class="{{ default_theme }}" dir="{{ text_direction }}">
|
||||
<head>
|
||||
<!-- Book generated using mdBook -->
|
||||
<meta charset="UTF-8">
|
||||
<title>{{ title }}</title>
|
||||
{{#if is_print }}
|
||||
<meta name="robots" content="noindex">
|
||||
{{/if}}
|
||||
{{#if base_url}}
|
||||
<base href="{{ base_url }}">
|
||||
{{/if}}
|
||||
|
||||
|
||||
<!-- Custom HTML head -->
|
||||
{{> head}}
|
||||
|
||||
<meta name="description" content="{{ description }}">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
{{#if favicon_svg}}
|
||||
<link rel="icon" href="{{ path_to_root }}favicon.svg">
|
||||
{{/if}}
|
||||
{{#if favicon_png}}
|
||||
<link rel="shortcut icon" href="{{ path_to_root }}favicon.png">
|
||||
{{/if}}
|
||||
<link rel="stylesheet" href="{{ path_to_root }}css/variables.css">
|
||||
<link rel="stylesheet" href="{{ path_to_root }}css/general.css">
|
||||
<link rel="stylesheet" href="{{ path_to_root }}css/chrome.css">
|
||||
{{#if print_enable}}
|
||||
<link rel="stylesheet" href="{{ path_to_root }}css/print.css" media="print">
|
||||
{{/if}}
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="stylesheet" href="{{ path_to_root }}FontAwesome/css/font-awesome.css">
|
||||
{{#if copy_fonts}}
|
||||
<link rel="stylesheet" href="{{ path_to_root }}fonts/fonts.css">
|
||||
{{/if}}
|
||||
|
||||
<!-- Highlight.js Stylesheets -->
|
||||
<link rel="stylesheet" href="{{ path_to_root }}highlight.css">
|
||||
<link rel="stylesheet" href="{{ path_to_root }}tomorrow-night.css">
|
||||
<link rel="stylesheet" href="{{ path_to_root }}ayu-highlight.css">
|
||||
|
||||
<!-- Custom theme stylesheets -->
|
||||
{{#each additional_css}}
|
||||
<link rel="stylesheet" href="{{ ../path_to_root }}{{ this }}">
|
||||
{{/each}}
|
||||
|
||||
{{#if mathjax_support}}
|
||||
<!-- MathJax -->
|
||||
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
{{/if}}
|
||||
</head>
|
||||
<body class="sidebar-visible no-js">
|
||||
<div id="body-container">
|
||||
<!-- Provide site root to javascript -->
|
||||
<script>
|
||||
var path_to_root = "{{ path_to_root }}";
|
||||
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}";
|
||||
</script>
|
||||
|
||||
<!-- Work around some values being stored in localStorage wrapped in quotes -->
|
||||
<script>
|
||||
try {
|
||||
var theme = localStorage.getItem('mdbook-theme');
|
||||
var sidebar = localStorage.getItem('mdbook-sidebar');
|
||||
|
||||
if (theme.startsWith('"') && theme.endsWith('"')) {
|
||||
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
|
||||
}
|
||||
|
||||
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
|
||||
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
|
||||
}
|
||||
} catch (e) { }
|
||||
</script>
|
||||
|
||||
<!-- Set the theme before any content is loaded, prevents flash -->
|
||||
<script>
|
||||
var theme;
|
||||
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
|
||||
if (theme === null || theme === undefined) { theme = default_theme; }
|
||||
var html = document.querySelector('html');
|
||||
html.classList.remove('{{ default_theme }}')
|
||||
html.classList.add(theme);
|
||||
var body = document.querySelector('body');
|
||||
body.classList.remove('no-js')
|
||||
body.classList.add('js');
|
||||
</script>
|
||||
|
||||
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
|
||||
|
||||
<!-- Hide / unhide sidebar before it is displayed -->
|
||||
<script>
|
||||
var body = document.querySelector('body');
|
||||
var sidebar = null;
|
||||
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
|
||||
if (document.body.clientWidth >= 1080) {
|
||||
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
|
||||
sidebar = sidebar || 'visible';
|
||||
} else {
|
||||
sidebar = 'hidden';
|
||||
}
|
||||
sidebar_toggle.checked = sidebar === 'visible';
|
||||
body.classList.remove('sidebar-visible');
|
||||
body.classList.add("sidebar-" + sidebar);
|
||||
</script>
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
{{#toc}}{{/toc}}
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
|
||||
<!-- Track and set sidebar scroll position -->
|
||||
<script>
|
||||
var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');
|
||||
sidebarScrollbox.addEventListener('click', function(e) {
|
||||
if (e.target.tagName === 'A') {
|
||||
sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);
|
||||
}
|
||||
}, { passive: true });
|
||||
var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');
|
||||
sessionStorage.removeItem('sidebar-scroll');
|
||||
if (sidebarScrollTop) {
|
||||
// preserve sidebar scroll position when navigating via links within sidebar
|
||||
sidebarScrollbox.scrollTop = sidebarScrollTop;
|
||||
} else {
|
||||
// scroll sidebar to current active section when navigating via "next/previous chapter" buttons
|
||||
var activeSection = document.querySelector('#sidebar .active');
|
||||
if (activeSection) {
|
||||
activeSection.scrollIntoView({ block: 'center' });
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div id="page-wrapper" class="page-wrapper">
|
||||
|
||||
<div class="page">
|
||||
{{> header}}
|
||||
<div id="menu-bar-hover-placeholder"></div>
|
||||
<div id="menu-bar" class="menu-bar sticky">
|
||||
<div class="left-buttons">
|
||||
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
|
||||
<i class="fa fa-bars"></i>
|
||||
</label>
|
||||
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
|
||||
<i class="fa fa-paint-brush"></i>
|
||||
</button>
|
||||
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
||||
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
|
||||
</ul>
|
||||
{{#if search_enabled}}
|
||||
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
||||
<i class="fa fa-search"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<h1 class="menu-title">{{ book_title }}</h1>
|
||||
|
||||
<div class="right-buttons">
|
||||
{{#if print_enable}}
|
||||
<a href="{{ path_to_root }}print.html" title="Print this book" aria-label="Print this book">
|
||||
<i id="print-button" class="fa fa-print"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{#if git_repository_url}}
|
||||
<a href="{{git_repository_url}}" title="Git repository" aria-label="Git repository">
|
||||
<i id="git-repository-button" class="fa {{git_repository_icon}}"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{#if git_repository_edit_url}}
|
||||
<a href="{{git_repository_edit_url}}" title="Suggest an edit" aria-label="Suggest an edit">
|
||||
<i id="git-edit-button" class="fa fa-edit"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#if search_enabled}}
|
||||
<div id="search-wrapper" class="hidden">
|
||||
<form id="searchbar-outer" class="searchbar-outer">
|
||||
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
|
||||
</form>
|
||||
<div id="searchresults-outer" class="searchresults-outer hidden">
|
||||
<div id="searchresults-header" class="searchresults-header"></div>
|
||||
<ul id="searchresults">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
|
||||
<script>
|
||||
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
|
||||
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
|
||||
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
|
||||
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
|
||||
});
|
||||
</script>
|
||||
|
||||
<div id="content" class="content">
|
||||
<main>
|
||||
{{{ content }}}
|
||||
</main>
|
||||
|
||||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||||
<!-- Mobile navigation buttons -->
|
||||
{{#previous}}
|
||||
<a rel="prev" href="{{ path_to_root }}{{link}}" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
{{/previous}}
|
||||
|
||||
{{#next}}
|
||||
<a rel="next prefetch" href="{{ path_to_root }}{{link}}" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
{{/next}}
|
||||
|
||||
<div style="clear: both"></div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||||
{{#previous}}
|
||||
<a rel="prev" href="{{ path_to_root }}{{link}}" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
{{/previous}}
|
||||
|
||||
{{#next}}
|
||||
<a rel="next prefetch" href="{{ path_to_root }}{{link}}" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
{{/next}}
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
|
||||
{{#if live_reload_endpoint}}
|
||||
<!-- Livereload script (if served using the cli tool) -->
|
||||
<script>
|
||||
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
|
||||
const wsAddress = wsProtocol + "//" + location.host + "/" + "{{{live_reload_endpoint}}}";
|
||||
const socket = new WebSocket(wsAddress);
|
||||
socket.onmessage = function (event) {
|
||||
if (event.data === "reload") {
|
||||
socket.close();
|
||||
location.reload();
|
||||
}
|
||||
};
|
||||
|
||||
window.onbeforeunload = function() {
|
||||
socket.close();
|
||||
}
|
||||
</script>
|
||||
{{/if}}
|
||||
|
||||
{{#if google_analytics}}
|
||||
<!-- Google Analytics Tag -->
|
||||
<script>
|
||||
var localAddrs = ["localhost", "127.0.0.1", ""];
|
||||
|
||||
// make sure we don't activate google analytics if the developer is
|
||||
// inspecting the book locally...
|
||||
if (localAddrs.indexOf(document.location.hostname) === -1) {
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{google_analytics}}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
}
|
||||
</script>
|
||||
{{/if}}
|
||||
|
||||
{{#if playground_line_numbers}}
|
||||
<script>
|
||||
window.playground_line_numbers = true;
|
||||
</script>
|
||||
{{/if}}
|
||||
|
||||
{{#if playground_copyable}}
|
||||
<script>
|
||||
window.playground_copyable = true;
|
||||
</script>
|
||||
{{/if}}
|
||||
|
||||
{{#if playground_js}}
|
||||
<script src="{{ path_to_root }}ace.js"></script>
|
||||
<script src="{{ path_to_root }}editor.js"></script>
|
||||
<script src="{{ path_to_root }}mode-rust.js"></script>
|
||||
<script src="{{ path_to_root }}theme-dawn.js"></script>
|
||||
<script src="{{ path_to_root }}theme-tomorrow_night.js"></script>
|
||||
{{/if}}
|
||||
|
||||
{{#if search_js}}
|
||||
<script src="{{ path_to_root }}elasticlunr.min.js"></script>
|
||||
<script src="{{ path_to_root }}mark.min.js"></script>
|
||||
<script src="{{ path_to_root }}searcher.js"></script>
|
||||
{{/if}}
|
||||
|
||||
<script src="{{ path_to_root }}clipboard.min.js"></script>
|
||||
<script src="{{ path_to_root }}highlight.js"></script>
|
||||
<script src="{{ path_to_root }}book.js"></script>
|
||||
|
||||
<!-- Custom JS scripts -->
|
||||
{{#each additional_js}}
|
||||
<script src="{{ ../path_to_root }}{{this}}"></script>
|
||||
{{/each}}
|
||||
|
||||
{{#if is_print}}
|
||||
{{#if mathjax_support}}
|
||||
<script>
|
||||
window.addEventListener('load', function() {
|
||||
MathJax.Hub.Register.StartupHook('End', function() {
|
||||
window.setTimeout(window.print, 100);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{{else}}
|
||||
<script>
|
||||
window.addEventListener('load', function() {
|
||||
window.setTimeout(window.print, 100);
|
||||
});
|
||||
</script>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -14,11 +14,13 @@ in forAllSystems(system:
|
||||
bonpkgs = self.packages.${system};
|
||||
|
||||
crane = self.inputs.crane;
|
||||
crane-lib = self.inputs.crane.lib.${system};
|
||||
crane-lib = self.inputs.crane.mkLib pkgs;
|
||||
|
||||
fenix = self.inputs.fenix;
|
||||
in {
|
||||
|
||||
bonfire-docs = pkgs.callPackage ./bonfire-docs { inherit bonfire; };
|
||||
|
||||
netgen = pkgs.callPackage ./netgen { inherit bonfire; };
|
||||
|
||||
dearpygui = pkgs.callPackage ./dearpygui { inherit bonfire; };
|
||||
@ -37,3 +39,4 @@ in forAllSystems(system:
|
||||
|
||||
nix-runner = pkgs.callPackage ./nix-runner { inherit bonpkgs bonlib; };
|
||||
})
|
||||
# map (ps: (map (p: { name = p; systems = [ ps.${p}.system ]; type = if ps.${p}?imageTag then "image" else "package"; }) (builtins.attrNames ps))) (map (s: bf.packages.${s}) (builtins.attrNames bf.packages))
|
||||
|
Loading…
Reference in New Issue
Block a user