Compare commits
322 commits
1bdcc7603a
...
50be0ff152
Author | SHA1 | Date | |
---|---|---|---|
Bruno BELANYI | 50be0ff152 | ||
Bruno BELANYI | 6c1a9fbdba | ||
Bruno BELANYI | 887be08b69 | ||
Bruno BELANYI | 68ff32a6d6 | ||
Bruno BELANYI | 15d0e6bb38 | ||
Bruno BELANYI | 607aa5351c | ||
Bruno BELANYI | 61fa35093c | ||
Bruno BELANYI | 4a01a50532 | ||
Bruno BELANYI | 41e1ad3265 | ||
Bruno BELANYI | 10b4e6ce2d | ||
Bruno BELANYI | c0ef5c9275 | ||
Bruno BELANYI | 0ff8366105 | ||
Bruno BELANYI | d365aba3c0 | ||
Bruno BELANYI | b16b6a534b | ||
Bruno BELANYI | 070df03b7e | ||
Bruno BELANYI | 0108b06a02 | ||
Bruno BELANYI | 56e158f5c5 | ||
Bruno BELANYI | 4a8981c7b4 | ||
Bruno BELANYI | 07eca729f5 | ||
Bruno BELANYI | b24d299f70 | ||
Bruno BELANYI | f06e99d95b | ||
Bruno BELANYI | 3fb758028c | ||
Bruno BELANYI | 276cc7e5f2 | ||
Bruno BELANYI | b2dc051e6a | ||
Bruno BELANYI | 9749f0aa28 | ||
Bruno BELANYI | dc27b59912 | ||
Bruno BELANYI | 7a3e64f814 | ||
Bruno BELANYI | f13a6fb023 | ||
Bruno BELANYI | 30247ce3a0 | ||
Bruno BELANYI | 08f4175412 | ||
Bruno BELANYI | 6140e1c8f9 | ||
Bruno BELANYI | 5d3160fb0d | ||
Bruno BELANYI | 0f33dbd5c2 | ||
Bruno BELANYI | f3207468f9 | ||
Bruno BELANYI | b41fd9e48e | ||
Bruno BELANYI | c1ffe09631 | ||
Bruno BELANYI | 8591fb8b35 | ||
Bruno BELANYI | 22139bd69f | ||
Bruno BELANYI | 742b4c39a2 | ||
Bruno BELANYI | 97cc08d199 | ||
Bruno BELANYI | a4e742bf55 | ||
Bruno BELANYI | 84fea2f677 | ||
Bruno BELANYI | ef882a5267 | ||
Bruno BELANYI | 6a47703c08 | ||
Bruno BELANYI | d423a03663 | ||
Bruno BELANYI | 40d1b39837 | ||
Bruno BELANYI | ed15e62e1d | ||
Bruno BELANYI | 6bef924513 | ||
Bruno BELANYI | 7f0a889ccd | ||
Bruno BELANYI | 380933e69b | ||
Bruno BELANYI | a3afafd9e0 | ||
Bruno BELANYI | 4d25609b26 | ||
Bruno BELANYI | 56c0c28b02 | ||
Bruno BELANYI | b9b47fffd6 | ||
Bruno BELANYI | f9cdff8c13 | ||
Bruno BELANYI | eb668525f8 | ||
Bruno BELANYI | 6539471186 | ||
Bruno BELANYI | 5d38d94da6 | ||
Bruno BELANYI | 7e361aff9d | ||
Bruno BELANYI | c5e5bee206 | ||
Bruno BELANYI | b2a199c9a0 | ||
Bruno BELANYI | a0dde6f274 | ||
Bruno BELANYI | 3c79a373e4 | ||
Bruno BELANYI | 08f31c088b | ||
Bruno BELANYI | 8b07ff5bbe | ||
Bruno BELANYI | d6c2948135 | ||
Bruno BELANYI | c89dec2a38 | ||
Bruno BELANYI | 521522e4e9 | ||
Bruno BELANYI | c9969775da | ||
Bruno BELANYI | 0bb2be6b87 | ||
Bruno BELANYI | 7f17069998 | ||
Bruno BELANYI | 5e3bc5a8c9 | ||
Bruno BELANYI | b0aee235cd | ||
Bruno BELANYI | 9d9dba2cc2 | ||
Bruno BELANYI | cb97b0dbde | ||
Bruno BELANYI | f4c4a485d6 | ||
Bruno BELANYI | d6eceea08a | ||
Bruno BELANYI | 9e0930aca4 | ||
Bruno BELANYI | 8c03bff1cf | ||
Bruno BELANYI | 0b74332e9c | ||
Bruno BELANYI | a5aaf57e63 | ||
Bruno BELANYI | 7948dc284b | ||
Bruno BELANYI | 183f3b48c8 | ||
Bruno BELANYI | f54cee8f70 | ||
Bruno BELANYI | 5ecef0d789 | ||
Bruno BELANYI | df44786c9c | ||
Bruno BELANYI | 03dac604e9 | ||
Bruno BELANYI | b41f0890b8 | ||
Bruno BELANYI | 473be47b29 | ||
Bruno BELANYI | 05cf04a11f | ||
Bruno BELANYI | e227ad76b2 | ||
Bruno BELANYI | 3f13b3f03f | ||
Bruno BELANYI | 16f98f144e | ||
Bruno BELANYI | cc029f7933 | ||
Bruno BELANYI | 02412f2578 | ||
Bruno BELANYI | 1655afcedf | ||
Bruno BELANYI | e2ec4d3032 | ||
Bruno BELANYI | 58b22b7354 | ||
Bruno BELANYI | e2091e9e2e | ||
Bruno BELANYI | 5cb67cf040 | ||
Bruno BELANYI | b33938e825 | ||
Bruno BELANYI | 309c344a34 | ||
Bruno BELANYI | 13f20a28eb | ||
Bruno BELANYI | dca6a9018b | ||
Bruno BELANYI | 629ec539c9 | ||
Bruno BELANYI | a5c57333cf | ||
Bruno BELANYI | 136bd342ff | ||
Bruno BELANYI | 10a3055136 | ||
Bruno BELANYI | e4f8214cb2 | ||
Bruno BELANYI | b8b64bed8e | ||
Bruno BELANYI | 9546c00124 | ||
Bruno BELANYI | bddcab110d | ||
Bruno BELANYI | e02da7ec69 | ||
Bruno BELANYI | a93dc2935b | ||
Bruno BELANYI | 39eba647ac | ||
Bruno BELANYI | 932717b754 | ||
Bruno BELANYI | 71ee178510 | ||
Bruno BELANYI | 6948424b81 | ||
Bruno BELANYI | b7a4bc063f | ||
Bruno BELANYI | faa87743e5 | ||
Bruno BELANYI | 26950332c7 | ||
Bruno BELANYI | 13d85c30f9 | ||
Bruno BELANYI | a657a7742e | ||
Bruno BELANYI | 066a33587d | ||
Bruno BELANYI | 864e0a5ae6 | ||
Bruno BELANYI | 4aca698ac6 | ||
Bruno BELANYI | 7ccb8ea8b5 | ||
Bruno BELANYI | 49f695bf68 | ||
Bruno BELANYI | 49742deb18 | ||
Bruno BELANYI | ad40c1b1d2 | ||
Bruno BELANYI | c28959fe02 | ||
Bruno BELANYI | 104bc05871 | ||
Bruno BELANYI | 1d50844fa4 | ||
Bruno BELANYI | e97f295470 | ||
Bruno BELANYI | 373545ee38 | ||
Bruno BELANYI | 401972cb42 | ||
Bruno BELANYI | 90aed6b2ca | ||
Bruno BELANYI | 3a2f02f001 | ||
Bruno BELANYI | 33b94a7f9d | ||
Bruno BELANYI | 1faa8d9acf | ||
Bruno BELANYI | 9ddd59eac8 | ||
Bruno BELANYI | f23e6251ce | ||
Bruno BELANYI | 16fade92b4 | ||
Bruno BELANYI | 22fa05ca0c | ||
Bruno BELANYI | 3ed2fac3db | ||
Bruno BELANYI | bdc3e63fff | ||
Bruno BELANYI | 20ab679542 | ||
Bruno BELANYI | 3a7f4d126d | ||
Bruno BELANYI | afda437f49 | ||
Bruno BELANYI | 792d997dc9 | ||
Bruno BELANYI | 0164d12087 | ||
Bruno BELANYI | 0b9c2309da | ||
Bruno BELANYI | 8398c4350a | ||
Bruno BELANYI | 093d7a3cb8 | ||
Bruno BELANYI | e41bacc2fc | ||
Bruno BELANYI | 55362b1db8 | ||
Bruno BELANYI | 2d532f35a9 | ||
Bruno BELANYI | 15ca07bc64 | ||
Bruno BELANYI | f4cc63c711 | ||
Bruno BELANYI | ec79be2a45 | ||
Bruno BELANYI | 97f5bf504c | ||
Bruno BELANYI | 302cb907ef | ||
Bruno BELANYI | 3fb8734c56 | ||
Bruno BELANYI | b48d81451d | ||
Bruno BELANYI | 60d941b40b | ||
Bruno BELANYI | c466fd25b4 | ||
Bruno BELANYI | e04be2d130 | ||
Bruno BELANYI | 00ee4629fc | ||
Bruno BELANYI | 11c8d4623c | ||
Bruno BELANYI | 570349e80f | ||
Bruno BELANYI | 65a8f7c481 | ||
Bruno BELANYI | c856933803 | ||
Bruno BELANYI | b52e56ed08 | ||
Bruno BELANYI | 27564cad42 | ||
Bruno BELANYI | 32ec402ad0 | ||
Bruno BELANYI | cc331b73c7 | ||
Bruno BELANYI | 830e7bb865 | ||
Bruno BELANYI | 7f857ab661 | ||
Bruno BELANYI | 8ad02dd74d | ||
Bruno BELANYI | 249ee14d39 | ||
Bruno BELANYI | 9b71708e3a | ||
Bruno BELANYI | ca4fac3c54 | ||
Bruno BELANYI | 6a8f93df1f | ||
Bruno BELANYI | 42ab12179e | ||
Bruno BELANYI | 3a1ccea142 | ||
Bruno BELANYI | c01f657e8d | ||
Bruno BELANYI | bd69e28143 | ||
Bruno BELANYI | 516df86b3f | ||
Bruno BELANYI | 28187c3b8f | ||
Bruno BELANYI | 0795a3d29b | ||
Bruno BELANYI | 5248eb59f8 | ||
Bruno BELANYI | b4c2cc581b | ||
Bruno BELANYI | b4b9b54f75 | ||
Bruno BELANYI | 52413dcaf7 | ||
Bruno BELANYI | 1425c42489 | ||
Bruno BELANYI | 085c563d75 | ||
Bruno BELANYI | fcdb5ba593 | ||
Bruno BELANYI | f8a0eef4dd | ||
Bruno BELANYI | 3b3e7093be | ||
Bruno BELANYI | dae1a434d5 | ||
Bruno BELANYI | 2d36ffd96d | ||
Bruno BELANYI | a5febc40e4 | ||
Bruno BELANYI | ce19887f77 | ||
Bruno BELANYI | aca743dea7 | ||
Bruno BELANYI | e09899d59c | ||
Bruno BELANYI | fd09346526 | ||
Bruno BELANYI | f9541cbc33 | ||
Bruno BELANYI | 6ef0abd596 | ||
Bruno BELANYI | 24d41e829e | ||
Bruno BELANYI | 03a1f704aa | ||
Bruno BELANYI | e81de7faad | ||
Bruno BELANYI | 61fe480e6b | ||
Bruno BELANYI | 7b56c342ad | ||
Bruno BELANYI | f2f4b9f91e | ||
Bruno BELANYI | 3f7a062376 | ||
Bruno BELANYI | 550436eee5 | ||
Bruno BELANYI | f0b590c29e | ||
Bruno BELANYI | e979589174 | ||
Bruno BELANYI | f3f8c8fc3f | ||
Bruno BELANYI | f0e387b943 | ||
Bruno BELANYI | 96a2c62e94 | ||
Bruno BELANYI | d060978b65 | ||
Bruno BELANYI | 5926cd356d | ||
Bruno BELANYI | ac93cb0ac8 | ||
Bruno BELANYI | 6ba7a63b25 | ||
Bruno BELANYI | fc8ccb8b99 | ||
Bruno BELANYI | 14bf03e5fd | ||
Bruno BELANYI | adc4ce9d8a | ||
Bruno BELANYI | ce46f3571b | ||
Bruno BELANYI | 8bcf56fdec | ||
Bruno BELANYI | 861136c475 | ||
Bruno BELANYI | 13769429f6 | ||
Bruno BELANYI | 71a1bbd78d | ||
Bruno BELANYI | 5b59a9cf82 | ||
Bruno BELANYI | ca1d439e7a | ||
Bruno BELANYI | e4541d4ecc | ||
Bruno BELANYI | 6d9d835e1c | ||
Bruno BELANYI | 19d2916e1c | ||
Bruno BELANYI | ab59054518 | ||
Bruno BELANYI | 4571a39c25 | ||
Bruno BELANYI | a87429b067 | ||
Bruno BELANYI | 254eb0cb2d | ||
Bruno BELANYI | 330402d335 | ||
Bruno BELANYI | bcdbe45558 | ||
Bruno BELANYI | 5f42e7cc90 | ||
Bruno BELANYI | 7ace62da72 | ||
Bruno BELANYI | 7529d2b7f9 | ||
Bruno BELANYI | 3ef71cc165 | ||
Bruno BELANYI | 424bb2e7b9 | ||
Bruno BELANYI | 405965dc72 | ||
Bruno BELANYI | 761393205c | ||
Bruno BELANYI | 1b960c7449 | ||
Bruno BELANYI | 0cf6cfe39b | ||
Bruno BELANYI | 7b6779f2b5 | ||
Bruno BELANYI | 68118e8f93 | ||
Bruno BELANYI | 45c3b82606 | ||
Bruno BELANYI | 58a94bdf1b | ||
Bruno BELANYI | 868a9aa212 | ||
Bruno BELANYI | 9f7472222c | ||
Bruno BELANYI | 8f818b8611 | ||
Bruno BELANYI | 2dfc788ed4 | ||
Bruno BELANYI | 4a9a46547e | ||
Bruno BELANYI | 36c0590ae5 | ||
Bruno BELANYI | e5a1105c59 | ||
Bruno BELANYI | 850b9f792f | ||
Bruno BELANYI | f363ae71a5 | ||
Bruno BELANYI | ae8d8d75fd | ||
Bruno BELANYI | 65de9c5a0e | ||
Bruno BELANYI | fc6b221ba1 | ||
Bruno BELANYI | 47533f119e | ||
Bruno BELANYI | ae13ab0c86 | ||
Bruno BELANYI | caa8357db8 | ||
Bruno BELANYI | 493636decb | ||
Bruno BELANYI | 5ff0b62af8 | ||
Bruno BELANYI | 4bb1387376 | ||
Bruno BELANYI | 5741421604 | ||
Bruno BELANYI | c037d3844a | ||
Bruno BELANYI | 758e88e620 | ||
Bruno BELANYI | 6100a092af | ||
Bruno BELANYI | 737e9df202 | ||
Bruno BELANYI | f73be2fc4e | ||
Bruno BELANYI | cbbe371ace | ||
Bruno BELANYI | b8f8c7cfa7 | ||
Bruno BELANYI | 950940e3c7 | ||
Bruno BELANYI | ac725bd5e4 | ||
Bruno BELANYI | 89168324e7 | ||
Bruno BELANYI | 3e5fbfeb7a | ||
Bruno BELANYI | b6ccc7a18d | ||
Bruno BELANYI | 0bc31619c8 | ||
Bruno BELANYI | cecb7d9bb4 | ||
Bruno BELANYI | 2f03d92dd9 | ||
Bruno BELANYI | e44dd4c6ea | ||
Bruno BELANYI | df9b060947 | ||
Bruno BELANYI | 73fdd4622b | ||
Bruno BELANYI | 8fcb7f42a6 | ||
Bruno BELANYI | e5c27d7aa8 | ||
Bruno BELANYI | a846d19b1a | ||
Bruno BELANYI | 1807b8b88c | ||
Bruno BELANYI | 5aa136f796 | ||
Bruno BELANYI | 18c9458cfa | ||
Bruno BELANYI | c0995929c4 | ||
Bruno BELANYI | d69dbf8d62 | ||
Bruno BELANYI | 5d570dbf1e | ||
Bruno BELANYI | 4f6f483851 | ||
Bruno BELANYI | 39a512bc0a | ||
Bruno BELANYI | 5de4ee93d5 | ||
Bruno BELANYI | 7c4e0e31bc | ||
Bruno BELANYI | 908c2e39b3 | ||
Bruno BELANYI | 0321889d50 | ||
Bruno BELANYI | e26672494c | ||
Bruno BELANYI | b80053d786 | ||
Bruno BELANYI | b570cf227c | ||
Bruno BELANYI | c0a80c2503 | ||
Bruno BELANYI | e68ae26609 | ||
Bruno BELANYI | 30d01972b2 | ||
Bruno BELANYI | 175a8acde2 | ||
Bruno BELANYI | 685c571018 | ||
Bruno BELANYI | 41df5c01ad | ||
Bruno BELANYI | 153b6a43cc | ||
Bruno BELANYI | 527a85bf11 | ||
Bruno BELANYI | f3e888dadc | ||
Bruno BELANYI | d60e26c617 |
8
.envrc
8
.envrc
|
@ -1,10 +1,8 @@
|
||||||
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
|
if ! has nix_direnv_version || ! nix_direnv_version 3.0.0; then
|
||||||
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
|
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.0/direnvrc" "sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg="
|
||||||
fi
|
fi
|
||||||
|
|
||||||
use flake
|
|
||||||
|
|
||||||
watch_file ./flake/checks.nix
|
watch_file ./flake/checks.nix
|
||||||
watch_file ./flake/dev-shells.nix
|
watch_file ./flake/dev-shells.nix
|
||||||
|
|
||||||
eval "$shellHooks"
|
use flake
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
labels:
|
labels:
|
||||||
type: exec
|
backend: local
|
||||||
|
|
||||||
pipeline:
|
steps:
|
||||||
- name: nix flake check
|
- name: nix flake check
|
||||||
image: bash
|
image: bash
|
||||||
commands:
|
commands:
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env nix-shell
|
#!/usr/bin/env nix-shell
|
||||||
#! nix-shell -i bash -p bitwarden-cli git gnupg jq nix
|
#! nix-shell -i bash -p bitwarden-cli git gnupg jq nix
|
||||||
|
# shellcheck shell=bash
|
||||||
|
|
||||||
# Command failure is script failure
|
# Command failure is script failure
|
||||||
set -e
|
set -e
|
||||||
|
@ -10,7 +11,6 @@ BOLD_GREEN="\e[0;1;32m"
|
||||||
|
|
||||||
RESET="\e[0m"
|
RESET="\e[0m"
|
||||||
|
|
||||||
DEST="$HOME/.config/nixpkgs"
|
|
||||||
BW_SESSION=""
|
BW_SESSION=""
|
||||||
|
|
||||||
warn() {
|
warn() {
|
||||||
|
|
74
flake.lock
74
flake.lock
|
@ -3,16 +3,22 @@
|
||||||
"agenix": {
|
"agenix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"systems"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682101079,
|
"lastModified": 1707830867,
|
||||||
"narHash": "sha256-MdAhtjrLKnk2uiqun1FWABbKpLH090oeqCSiWemtuck=",
|
"narHash": "sha256-PAdwm5QqdlwIqGrfzzvzZubM+FXtilekQ/FA0cI49/o=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "2994d002dcff5353ca1ac48ec584c7f6589fe447",
|
"rev": "8cb01a0e717311680e0cbca06a76cbceba6f3ed6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -30,11 +36,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1673295039,
|
"lastModified": 1700795494,
|
||||||
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
|
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
|
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -47,11 +53,11 @@
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1673956053,
|
"lastModified": 1696426674,
|
||||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -67,11 +73,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1680392223,
|
"lastModified": 1709336216,
|
||||||
"narHash": "sha256-n3g7QFr85lDODKt250rkZj2IFS3i4/8HBU2yKHO3tqw=",
|
"narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "dcc36e45d054d7bb554c9cdab69093debd91a0b5",
|
"rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -83,14 +89,16 @@
|
||||||
},
|
},
|
||||||
"futils": {
|
"futils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": [
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681202837,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -108,11 +116,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1660459072,
|
"lastModified": 1709087332,
|
||||||
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "gitignore.nix",
|
"repo": "gitignore.nix",
|
||||||
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -128,11 +136,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682779989,
|
"lastModified": 1711604890,
|
||||||
"narHash": "sha256-H8AjcIBYFYrlRobYJ+n1B+ZJ6TsaaeZpuLn4iRqVvr4=",
|
"narHash": "sha256-vbI/gxRTq/gHW1Q8z6D/7JG/qGNl3JTimUDX+MwnC3A=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "3144311f31194b537808ae6848f86f3dbf977d59",
|
"rev": "3142bdcc470e1e291e1fbe942fd69e06bd00c5df",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -144,11 +152,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682879489,
|
"lastModified": 1711523803,
|
||||||
"narHash": "sha256-sASwo8gBt7JDnOOstnps90K1wxmVfyhsTPPNTGBPjjg=",
|
"narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0",
|
"rev": "2726f127c15a4cc9810843b96cad73c7eb39e443",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -160,11 +168,11 @@
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682945906,
|
"lastModified": 1711622043,
|
||||||
"narHash": "sha256-45tSf14pbq3AZSUpdos7dod4zGGxONE2MMPr8K7Ni/4=",
|
"narHash": "sha256-nCNcHYlmmPPIDRkDCvNoEog+AuG7jdmkhkU0fqoS82A=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "6e170eea820a3b7c28df56c99bb0d4be95b46dab",
|
"rev": "b7ff69e152caedbe4d0e40173d61732ac139a09c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -189,11 +197,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682596858,
|
"lastModified": 1711519547,
|
||||||
"narHash": "sha256-Hf9XVpqaGqe/4oDGr30W8HlsWvJXtMsEPHDqHZA6dDg=",
|
"narHash": "sha256-Q7YmSCUJmDl71fJv/zD9lrOCJ1/SE/okZ2DsrmRjzhY=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "fb58866e20af98779017134319b5663b8215d912",
|
"rev": "7d47a32e5cd1ea481fab33c516356ce27c8cef4a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -211,7 +219,8 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"pre-commit-hooks": "pre-commit-hooks"
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
|
"systems": "systems"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
@ -225,6 +234,7 @@
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-systems",
|
"owner": "nix-systems",
|
||||||
|
"ref": "main",
|
||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
12
flake.nix
12
flake.nix
|
@ -7,7 +7,9 @@
|
||||||
repo = "agenix";
|
repo = "agenix";
|
||||||
ref = "main";
|
ref = "main";
|
||||||
inputs = {
|
inputs = {
|
||||||
|
home-manager.follows = "home-manager";
|
||||||
nixpkgs.follows = "nixpkgs";
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
systems.follows = "systems";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -26,6 +28,9 @@
|
||||||
owner = "numtide";
|
owner = "numtide";
|
||||||
repo = "flake-utils";
|
repo = "flake-utils";
|
||||||
ref = "main";
|
ref = "main";
|
||||||
|
inputs = {
|
||||||
|
systems.follows = "systems";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
@ -63,6 +68,13 @@
|
||||||
nixpkgs-stable.follows = "nixpkgs";
|
nixpkgs-stable.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systems = {
|
||||||
|
type = "github";
|
||||||
|
owner = "nix-systems";
|
||||||
|
repo = "default";
|
||||||
|
ref = "main";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Can't eta-reduce a flake outputs...
|
# Can't eta-reduce a flake outputs...
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{ flake-parts
|
{ flake-parts
|
||||||
, futils
|
, systems
|
||||||
, ...
|
, ...
|
||||||
} @ inputs:
|
} @ inputs:
|
||||||
let
|
let
|
||||||
mySystems = futils.lib.defaultSystems;
|
mySystems = import systems;
|
||||||
in
|
in
|
||||||
flake-parts.lib.mkFlake { inherit inputs; } {
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
systems = mySystems;
|
systems = mySystems;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
{
|
{
|
||||||
perSystem = { config, pkgs, ... }: {
|
perSystem = { config, pkgs, ... }: {
|
||||||
devShells = {
|
devShells = {
|
||||||
default = pkgs.mkShell {
|
default = pkgs.mkShellNoCC {
|
||||||
name = "NixOS-config";
|
name = "NixOS-config";
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
nativeBuildInputs = with pkgs; [
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
let
|
let
|
||||||
defaultModules = [
|
defaultModules = [
|
||||||
# Include generic settings
|
# Include generic settings
|
||||||
"${self}/home"
|
"${self}/modules/home"
|
||||||
{
|
{
|
||||||
# Basic user information defaults
|
# Basic user information defaults
|
||||||
home.username = lib.mkDefault "ambroisie";
|
home.username = lib.mkDefault "ambroisie";
|
||||||
|
@ -39,8 +39,9 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hosts = {
|
homes = {
|
||||||
"ambroisie@ambroisie" = "x86_64-linux"; # Unfortunate naming here...
|
"ambroisie@bazin" = "x86_64-linux";
|
||||||
|
"ambroisie@mousqueton" = "x86_64-linux";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -49,13 +50,13 @@ in
|
||||||
legacyPackages = {
|
legacyPackages = {
|
||||||
homeConfigurations =
|
homeConfigurations =
|
||||||
let
|
let
|
||||||
filteredHosts = lib.filterAttrs (_: v: v == system) hosts;
|
filteredHomes = lib.filterAttrs (_: v: v == system) homes;
|
||||||
allHosts = filteredHosts // {
|
allHomes = filteredHomes // {
|
||||||
# Default configuration
|
# Default configuration
|
||||||
ambroisie = system;
|
ambroisie = system;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
lib.mapAttrs mkHome allHosts;
|
lib.mapAttrs mkHome allHomes;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
{ self, inputs, ... }:
|
{ self, inputs, lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (self) lib;
|
|
||||||
|
|
||||||
defaultModules = [
|
defaultModules = [
|
||||||
{
|
{
|
||||||
# Let 'nixos-version --json' know about the Git revision
|
# Let 'nixos-version --json' know about the Git revision
|
||||||
|
@ -13,9 +11,7 @@ let
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
# Include generic settings
|
# Include generic settings
|
||||||
"${self}/modules"
|
"${self}/modules/nixos"
|
||||||
# Include bundles of settings
|
|
||||||
"${self}/profiles"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
buildHost = name: system: lib.nixosSystem {
|
buildHost = name: system: lib.nixosSystem {
|
||||||
|
@ -25,7 +21,7 @@ let
|
||||||
];
|
];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
# Use my extended lib in NixOS configuration
|
# Use my extended lib in NixOS configuration
|
||||||
inherit lib;
|
inherit (self) lib;
|
||||||
# Inject inputs to use them in global registry
|
# Inject inputs to use them in global registry
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.my.home.comma;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my.home.comma = with lib; {
|
|
||||||
enable = my.mkDisableOption "comma configuration";
|
|
||||||
|
|
||||||
pkgsFlake = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "pkgs";
|
|
||||||
example = "nixpkgs";
|
|
||||||
description = ''
|
|
||||||
Which flake from the registry should be used with
|
|
||||||
<command>nix shell</command>.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
ambroisie.comma
|
|
||||||
];
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
COMMA_PKGS_FLAKE = cfg.pkgsFlake;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./aliases
|
|
||||||
./atuin
|
|
||||||
./bat
|
|
||||||
./bluetooth
|
|
||||||
./comma
|
|
||||||
./dircolors
|
|
||||||
./direnv
|
|
||||||
./discord
|
|
||||||
./documentation
|
|
||||||
./feh
|
|
||||||
./firefox
|
|
||||||
./flameshot
|
|
||||||
./fzf
|
|
||||||
./gammastep
|
|
||||||
./gdb
|
|
||||||
./git
|
|
||||||
./gpg
|
|
||||||
./gtk
|
|
||||||
./htop
|
|
||||||
./jq
|
|
||||||
./mail
|
|
||||||
./mpv
|
|
||||||
./nix
|
|
||||||
./nix-index
|
|
||||||
./nm-applet
|
|
||||||
./packages
|
|
||||||
./pager
|
|
||||||
./power-alert
|
|
||||||
./ssh
|
|
||||||
./terminal
|
|
||||||
./tmux
|
|
||||||
./udiskie
|
|
||||||
./vim
|
|
||||||
./wm
|
|
||||||
./x
|
|
||||||
./xdg
|
|
||||||
./zathura
|
|
||||||
./zsh
|
|
||||||
];
|
|
||||||
|
|
||||||
# First sane reproducible version
|
|
||||||
home.stateVersion = "20.09";
|
|
||||||
|
|
||||||
# Who am I?
|
|
||||||
home.username = "ambroisie";
|
|
||||||
|
|
||||||
# Start services automatically
|
|
||||||
systemd.user.startServices = "sd-switch";
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
#shellcheck shell=bash
|
|
||||||
|
|
||||||
use_pkgs() {
|
|
||||||
if ! has nix; then
|
|
||||||
# shellcheck disable=2016
|
|
||||||
log_error 'use_pkgs: `nix` is not in PATH'
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use user-provided default value, or fallback to nixpkgs
|
|
||||||
local DEFAULT_FLAKE="${DIRENV_DEFAULT_FLAKE:-nixpkgs}"
|
|
||||||
|
|
||||||
# Allow changing the default flake through a command line switch
|
|
||||||
if [ "$1" = "-f" ] || [ "$1" = "--flake" ]; then
|
|
||||||
DEFAULT_FLAKE="$2"
|
|
||||||
shift 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Allow specifying a full installable, or just a package name and use the default flake
|
|
||||||
local packages=()
|
|
||||||
for pkg; do
|
|
||||||
if [[ $pkg =~ .*#.* ]]; then
|
|
||||||
packages+=("$pkg")
|
|
||||||
else
|
|
||||||
packages+=("$DEFAULT_FLAKE#$pkg")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# shellcheck disable=2154
|
|
||||||
direnv_load nix shell "${packages[@]}" --command "$direnv" dump
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.my.home.ssh;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my.home.ssh = with lib; {
|
|
||||||
enable = my.mkDisableOption "ssh configuration";
|
|
||||||
};
|
|
||||||
|
|
||||||
config.programs.ssh = lib.mkIf cfg.enable {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
includes = [
|
|
||||||
# Local configuration, not-versioned
|
|
||||||
"config.local"
|
|
||||||
];
|
|
||||||
|
|
||||||
matchBlocks = {
|
|
||||||
"github.com" = {
|
|
||||||
hostname = "github.com";
|
|
||||||
identityFile = "~/.ssh/shared_rsa";
|
|
||||||
user = "git";
|
|
||||||
};
|
|
||||||
|
|
||||||
"gitlab.com" = {
|
|
||||||
hostname = "gitlab.com";
|
|
||||||
identityFile = "~/.ssh/shared_rsa";
|
|
||||||
user = "git";
|
|
||||||
};
|
|
||||||
|
|
||||||
"git.sr.ht" = {
|
|
||||||
hostname = "git.sr.ht";
|
|
||||||
identityFile = "~/.ssh/shared_rsa";
|
|
||||||
user = "git";
|
|
||||||
};
|
|
||||||
|
|
||||||
"git.belanyi.fr" = {
|
|
||||||
hostname = "git.belanyi.fr";
|
|
||||||
identityFile = "~/.ssh/shared_rsa";
|
|
||||||
user = "git";
|
|
||||||
};
|
|
||||||
|
|
||||||
porthos = {
|
|
||||||
hostname = "91.121.177.163";
|
|
||||||
identityFile = "~/.ssh/shared_rsa";
|
|
||||||
user = "ambroisie";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
AddKeysToAgent yes
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
" Use Automake filetype for `local.am` files, explicit `set` to force override
|
|
||||||
au BufNewFile,BufRead local.am set filetype=automake
|
|
|
@ -1,2 +0,0 @@
|
||||||
" Use bash filetype for `.envrc` files
|
|
||||||
au BufNewFile,BufRead .envrc setfiletype bash
|
|
|
@ -1,3 +0,0 @@
|
||||||
" Use Tiger filetype for programs and header files
|
|
||||||
au BufNewFile,BufRead *.tig setfiletype tiger
|
|
||||||
au BufNewFile,BufRead *.tih setfiletype tiger
|
|
|
@ -1,2 +0,0 @@
|
||||||
" Use LaTeX filetype for TikZ files
|
|
||||||
au BufNewFile,BufRead *.tikz setfiletype tex
|
|
|
@ -1,95 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.my.home.zsh;
|
|
||||||
|
|
||||||
# Have a nice relative path for XDG_CONFIG_HOME, without leading `/`
|
|
||||||
relativeXdgConfig =
|
|
||||||
let
|
|
||||||
noHome = lib.removePrefix config.home.homeDirectory;
|
|
||||||
noSlash = lib.removePrefix "/";
|
|
||||||
in
|
|
||||||
noSlash (noHome config.xdg.configHome);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my.home.zsh = with lib; {
|
|
||||||
enable = my.mkDisableOption "zsh configuration";
|
|
||||||
|
|
||||||
launchTmux = mkEnableOption "auto launch tmux at shell start";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
zsh-completions
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
dotDir = "${relativeXdgConfig}/zsh"; # Don't clutter $HOME
|
|
||||||
enableCompletion = true;
|
|
||||||
|
|
||||||
history = {
|
|
||||||
size = 500000;
|
|
||||||
save = 500000;
|
|
||||||
extended = true;
|
|
||||||
expireDuplicatesFirst = true;
|
|
||||||
ignoreSpace = true;
|
|
||||||
ignoreDups = true;
|
|
||||||
share = false;
|
|
||||||
path = "${config.xdg.dataHome}/zsh/zsh_history";
|
|
||||||
};
|
|
||||||
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "fast-syntax-highlighting";
|
|
||||||
file = "share/zsh/site-functions/fast-syntax-highlighting.plugin.zsh";
|
|
||||||
src = pkgs.zsh-fast-syntax-highlighting;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "agkozak-zsh-prompt";
|
|
||||||
file = "share/zsh/site-functions/agkozak-zsh-prompt.plugin.zsh";
|
|
||||||
src = pkgs.agkozak-zsh-prompt;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# Modal editing is life, but CLI benefits from emacs gymnastics
|
|
||||||
defaultKeymap = "emacs";
|
|
||||||
|
|
||||||
# Make those happen early to avoid doing double the work
|
|
||||||
initExtraFirst = ''
|
|
||||||
${
|
|
||||||
lib.optionalString cfg.launchTmux ''
|
|
||||||
# Launch tmux unless already inside one
|
|
||||||
if [ -z "$TMUX" ]; then
|
|
||||||
exec tmux new-session
|
|
||||||
fi
|
|
||||||
''
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
initExtra = ''
|
|
||||||
source ${./completion-styles.zsh}
|
|
||||||
source ${./extra-mappings.zsh}
|
|
||||||
source ${./options.zsh}
|
|
||||||
|
|
||||||
# Source local configuration
|
|
||||||
if [ -f "$ZDOTDIR/zshrc.local" ]; then
|
|
||||||
source "$ZDOTDIR/zshrc.local"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
localVariables = {
|
|
||||||
# I like having the full path
|
|
||||||
AGKOZAK_PROMPT_DIRTRIM = 0;
|
|
||||||
# Because I *am* from EPITA
|
|
||||||
AGKOZAK_PROMPT_CHAR = [ "42sh$" "42sh#" ":" ];
|
|
||||||
# Easy on the eyes
|
|
||||||
AGKOZAK_COLORS_BRANCH_STATUS = "magenta";
|
|
||||||
# I don't like moving my eyes
|
|
||||||
AGKOZAK_LEFT_PROMPT_ONLY = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable VTE integration
|
|
||||||
enableVteIntegration = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
# Google Cloudtop configuration
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
# Google specific configuration
|
|
||||||
home.homeDirectory = "/usr/local/google/home/ambroisie";
|
|
||||||
|
|
||||||
# Some tooling (e.g: SSH) need to use this library
|
|
||||||
home.sessionVariables = {
|
|
||||||
LD_PRELOAD = "/lib/x86_64-linux-gnu/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD";
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.sessionVariables = {
|
|
||||||
LD_PRELOAD = "/lib/x86_64-linux-gnu/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD";
|
|
||||||
};
|
|
||||||
}
|
|
43
hosts/homes/ambroisie@bazin/default.nix
Normal file
43
hosts/homes/ambroisie@bazin/default.nix
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
# Google Laptop configuration
|
||||||
|
{ lib, options, pkgs, ... }:
|
||||||
|
{
|
||||||
|
services.gpg-agent.enable = lib.mkForce false;
|
||||||
|
|
||||||
|
my.home = {
|
||||||
|
git = {
|
||||||
|
package = pkgs.emptyDirectory;
|
||||||
|
};
|
||||||
|
|
||||||
|
tmux = {
|
||||||
|
# I use scripts that use the passthrough sequence often on this host
|
||||||
|
enablePassthrough = true;
|
||||||
|
|
||||||
|
terminalFeatures = {
|
||||||
|
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
|
||||||
|
xterm-256color = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ssh = {
|
||||||
|
mosh = {
|
||||||
|
package = pkgs.emptyDirectory;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh = {
|
||||||
|
notify = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
exclude = options.my.home.zsh.notify.exclude.default ++ [
|
||||||
|
"adb shell$" # Only interactive shell sessions
|
||||||
|
];
|
||||||
|
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
# `notify-send` is proxied to the ChromeOS layer
|
||||||
|
useOsc777 = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
24
hosts/homes/ambroisie@mousqueton/default.nix
Normal file
24
hosts/homes/ambroisie@mousqueton/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Google Cloudtop configuration
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
# Google specific configuration
|
||||||
|
home.homeDirectory = "/usr/local/google/home/ambroisie";
|
||||||
|
|
||||||
|
services.gpg-agent.enable = lib.mkForce false;
|
||||||
|
|
||||||
|
my.home = {
|
||||||
|
git = {
|
||||||
|
package = pkgs.emptyDirectory;
|
||||||
|
};
|
||||||
|
|
||||||
|
tmux = {
|
||||||
|
# I use scripts that use the passthrough sequence often on this host
|
||||||
|
enablePassthrough = true;
|
||||||
|
|
||||||
|
terminalFeatures = {
|
||||||
|
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
|
||||||
|
xterm-256color = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -15,6 +15,7 @@
|
||||||
./secrets
|
./secrets
|
||||||
./services.nix
|
./services.nix
|
||||||
./sound.nix
|
./sound.nix
|
||||||
|
./system.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
|
|
|
@ -26,6 +26,12 @@
|
||||||
firmware = {
|
firmware = {
|
||||||
cpuFlavor = "intel";
|
cpuFlavor = "intel";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
graphics = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
gpuFlavor = "intel";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
my.home = {
|
my.home = {
|
||||||
|
# Use graphical pinentry
|
||||||
|
bitwarden.pinentry = pkgs.pinentry-gtk2;
|
||||||
|
# Ebook library
|
||||||
|
calibre.enable = true;
|
||||||
# Some amount of social life
|
# Some amount of social life
|
||||||
discord.enable = true;
|
discord.enable = true;
|
||||||
# Image viewver
|
# Image viewver
|
||||||
|
@ -10,13 +14,12 @@
|
||||||
# Blue light filter
|
# Blue light filter
|
||||||
gammastep.enable = true;
|
gammastep.enable = true;
|
||||||
# Use a small popup to enter passwords
|
# Use a small popup to enter passwords
|
||||||
gpg.pinentry = "gtk2";
|
gpg.pinentry = pkgs.pinentry-gtk2;
|
||||||
# Machine specific packages
|
# Machine specific packages
|
||||||
packages.additionalPackages = with pkgs; [
|
packages.additionalPackages = with pkgs; [
|
||||||
element-desktop # Matrix client
|
element-desktop # Matrix client
|
||||||
jellyfin-media-player # Wraps the webui and mpv together
|
jellyfin-media-player # Wraps the webui and mpv together
|
||||||
pavucontrol # Audio mixer GUI
|
pavucontrol # Audio mixer GUI
|
||||||
quasselClient # IRC client
|
|
||||||
transgui # Transmission remote
|
transgui # Transmission remote
|
||||||
];
|
];
|
||||||
# Minimal video player
|
# Minimal video player
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
# Laptop specific configuration
|
# Laptop specific configuration
|
||||||
laptop.enable = true;
|
laptop.enable = true;
|
||||||
# Printers are hell, but so is the unability to print
|
|
||||||
printing.enable = true;
|
|
||||||
# i3 configuration
|
# i3 configuration
|
||||||
wm.windowManager = "i3";
|
wm.windowManager = "i3";
|
||||||
# X configuration
|
# X configuration
|
||||||
|
|
10
hosts/nixos/aramis/system.nix
Normal file
10
hosts/nixos/aramis/system.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Core system configuration
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
my.system = {
|
||||||
|
# Printers are hell, but so is the unability to print
|
||||||
|
printing = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,16 +3,14 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
# Use the GRUB 2 boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
loader.grub = {
|
loader = {
|
||||||
enable = true;
|
systemd-boot.enable = true;
|
||||||
version = 2;
|
efi.canTouchEfiVariables = true;
|
||||||
# Define on which hard drive you want to install Grub.
|
|
||||||
device = "/dev/sda";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "uhci_hcd" "ahci" "usbhid" ];
|
availableKernelModules = [ "ahci" "xhci_pci" "ehci_pci" "usbhid" "sd_mod" ];
|
||||||
kernelModules = [ "dm-snapshot" ];
|
kernelModules = [ "dm-snapshot" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -9,17 +9,12 @@
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./secrets
|
./secrets
|
||||||
./services.nix
|
./services.nix
|
||||||
|
./system.nix
|
||||||
./users.nix
|
./users.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "Europe/Paris";
|
time.timeZone = "Europe/Paris";
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
system.stateVersion = "24.05"; # Did you read the comment?
|
||||||
# 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 = "20.09"; # Did you read the comment?
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Hardware configuration
|
# Hardware configuration
|
||||||
{ lib, modulesPath, ... }:
|
{ modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -11,9 +11,18 @@
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-label/boot";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{ device = "/dev/disk/by-label/swap"; }
|
{ device = "/dev/disk/by-label/swap"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
|
my.hardware = {
|
||||||
|
firmware = {
|
||||||
|
cpuFlavor = "intel";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,19 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
my.home = {
|
my.home = {
|
||||||
|
nix = {
|
||||||
|
cache = {
|
||||||
|
# This server is the one serving the cache, don't try to query it
|
||||||
|
selfHosted = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Allow using extended features when SSH-ing from various clients
|
||||||
|
tmux.terminalFeatures = {
|
||||||
|
# My usual terminal, e.g: on laptop
|
||||||
|
alacritty = { };
|
||||||
|
};
|
||||||
|
|
||||||
# Always start a tmux session when opening a shell session
|
# Always start a tmux session when opening a shell session
|
||||||
zsh.launchTmux = true;
|
zsh.launchTmux = true;
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
SWAP_SIZE=16GiB
|
SWAP_SIZE=16GiB
|
||||||
|
|
||||||
parted /dev/sda --script -- \
|
parted /dev/sda --script -- \
|
||||||
mklabel msdos \
|
mklabel gpt \
|
||||||
mkpart primary 512MiB -$SWAP_SIZE \
|
mkpart primary 512MiB -$SWAP_SIZE \
|
||||||
mkpart primary linux-swap -$SWAP_SIZE 100% \
|
mkpart primary linux-swap -$SWAP_SIZE 100% \
|
||||||
mkpart ESP fat32 1MiB 512MiB \
|
mkpart ESP fat32 1MiB 512MiB \
|
||||||
|
@ -11,14 +11,24 @@ parted /dev/sda --script -- \
|
||||||
|
|
||||||
parted /dev/sdb --script -- \
|
parted /dev/sdb --script -- \
|
||||||
mklabel gpt \
|
mklabel gpt \
|
||||||
mkpart primary 0MiB 100%
|
mkpart primary 0% 100%
|
||||||
|
parted /dev/sdc --script -- \
|
||||||
|
mklabel gpt \
|
||||||
|
mkpart primary 0% 100%
|
||||||
|
parted /dev/sdd --script -- \
|
||||||
|
mklabel gpt \
|
||||||
|
mkpart primary 0% 100%
|
||||||
|
|
||||||
mkfs.ext4 -L media1 /dev/sda1
|
mkfs.ext4 -L media1 /dev/sda1
|
||||||
mkfs.ext4 -L media2 /dev/sdb1
|
mkfs.ext4 -L media2 /dev/sdb1
|
||||||
|
mkfs.ext4 -L media3 /dev/sdc1
|
||||||
|
mkfs.ext4 -L media4 /dev/sdd1
|
||||||
|
|
||||||
pvcreate /dev/sda1
|
pvcreate /dev/sda1
|
||||||
pvcreate /dev/sdb1
|
pvcreate /dev/sdb1
|
||||||
vgcreate lvm /dev/sda1 /dev/sdb1
|
pvcreate /dev/sdc1
|
||||||
|
pvcreate /dev/sdd1
|
||||||
|
vgcreate lvm /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
|
||||||
lvcreate -l 100%FREE -n media lvm
|
lvcreate -l 100%FREE -n media lvm
|
||||||
|
|
||||||
mkfs.ext4 -L nixos /dev/mapper/lvm-media
|
mkfs.ext4 -L nixos /dev/mapper/lvm-media
|
||||||
|
@ -27,17 +37,18 @@ mkfs.fat -F 32 -n boot /dev/sda3
|
||||||
|
|
||||||
mount /dev/disk/by-label/nixos /mnt
|
mount /dev/disk/by-label/nixos /mnt
|
||||||
swapon /dev/sda2
|
swapon /dev/sda2
|
||||||
|
mkdir -p /mnt/boot
|
||||||
|
mount /dev/disk/by-label/boot /mnt/boot
|
||||||
|
|
||||||
apt install sudo
|
apt install sudo
|
||||||
useradd -m -G sudo setupuser
|
useradd -m -G sudo setupuser
|
||||||
su setupuser
|
|
||||||
|
|
||||||
cat << EOF
|
cat << EOF
|
||||||
# Run the following commands as setup user
|
# Run the following commands as setup user
|
||||||
curl -L https://nixos.org/nix/install | sh
|
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
|
||||||
. $HOME/.nix-profile/etc/profile.d/nix.sh
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||||
nix-channel --add https://nixos.org/channels/nixos-20.09 nixpkgs
|
nix profile install nixpkgs#nixos-install-tools
|
||||||
sudo `which nixos-generate-config` --root /mnt
|
sudo "$(which nixos-generate-config)" --root /mnt
|
||||||
|
|
||||||
# Change uuids to labels
|
# Change uuids to labels
|
||||||
vim /mnt/etc/nixos/hardware-configuration.nix
|
vim /mnt/etc/nixos/hardware-configuration.nix
|
||||||
|
@ -53,3 +64,6 @@ git crypt unlock
|
||||||
|
|
||||||
nixos-install --root /mnt --flake '.#<hostname>'
|
nixos-install --root /mnt --flake '.#<hostname>'
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# shellcheck disable=2117
|
||||||
|
su setupuser
|
||||||
|
|
|
@ -6,30 +6,17 @@
|
||||||
hostName = "porthos"; # Define your hostname.
|
hostName = "porthos"; # Define your hostname.
|
||||||
domain = "belanyi.fr"; # Define your domain.
|
domain = "belanyi.fr"; # Define your domain.
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
# Per-interface useDHCP will be mandatory in the future, so this generated config
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
# replicates the default behaviour.
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
useDHCP = false;
|
useDHCP = true;
|
||||||
|
|
||||||
interfaces = {
|
interfaces = {
|
||||||
bond0.useDHCP = true;
|
eno1.useDHCP = true;
|
||||||
bonding_masters.useDHCP = true;
|
eno2.useDHCP = true;
|
||||||
dummy0.useDHCP = true;
|
|
||||||
erspan0.useDHCP = true;
|
|
||||||
eth0.useDHCP = true;
|
|
||||||
eth1.useDHCP = true;
|
|
||||||
gre0.useDHCP = true;
|
|
||||||
gretap0.useDHCP = true;
|
|
||||||
ifb0.useDHCP = true;
|
|
||||||
ifb1.useDHCP = true;
|
|
||||||
ip6tnl0.useDHCP = true;
|
|
||||||
sit0.useDHCP = true;
|
|
||||||
teql0.useDHCP = true;
|
|
||||||
tunl0.useDHCP = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Which interface is used to connect to the internet
|
# Which interface is used to connect to the internet
|
||||||
my.hardware.networking.externalInterface = "eth0";
|
my.hardware.networking.externalInterface = "eno1";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg 0bz3W8QcGaulxy+kDmM717jTthQpFOCwV9HkenFJEyo
|
-> ssh-ed25519 cKojmg bQFr9oAnbo1rI/MpUV8wQz/Xj7iZY4ZU+Swf0nSIQFw
|
||||||
NKeh1/JkX4WAWbOjUeKLMbsyCevnDf3a70FfYUav26c
|
zama2XJ0gdvUlD2GHMhmZqHSxHe+dKSfXnHoWDcSw7Y
|
||||||
-> ssh-ed25519 jPowng Q59ybJMMteOSB6hZ5m6UPP0N2p8jrDSu5vBYwPgGcRw
|
-> ssh-ed25519 jPowng gitUwSKTNKWLSxnwa185O7x/u0ul93g8wPESdZaKRk8
|
||||||
j420on2jSsfMsv4MDtiOTMIFjaXV7sIsrS+g4iab+68
|
uvBIfAUkZp5sg6rfeEGvL5ZDV8m2uSEotW02kjPN3Hw
|
||||||
-> z}.q-grease s2W<qM_Z t
|
--- SZxe5f/CUZBvPQa2Sz/UBY3L68rMkIGGRuZPk7YE+Vg
|
||||||
n1Yfs/gmNsl/n9HtuKBIIT8iwIjYca2yxlh7Q1XAT1B+RZ8oGjW8yCPj1unbDGZL
|
¾r ú&…¥‹{~v?¨}=Ä
|
||||||
e5BfLO3zgkEZnQ
|
}+
¿SQ’M[²]Œ±kMÒAàtŒÃmMë/£µLsü|Þ…m©CÀñiYC}ƒŽ‡çxŽ€
|
||||||
--- FSgNKEdDeeTjCx9jN9UtOFl58mC/Lbu1PAYRGK0CZW4
|
|
||||||
U€¿+æ©jïÝ{gø`GŽ›ÆàˆR¾Qk]šóïdÐ6å˜ú‚y5T²$Äñs~Ùh‰Ä£òÔ<C3B2>Fº¢ç%°vöÌm<C38C>
|
|
7
hosts/nixos/porthos/secrets/aria/rpc-token.age
Normal file
7
hosts/nixos/porthos/secrets/aria/rpc-token.age
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 cKojmg fpiyZo1AR5hCfk/KtbgWCTzz+05/VOUnnaHhWgXQRwc
|
||||||
|
d2w9IX/kq/T6OwQ1zImsCmzIX2yfFD8hQDbs0IW3ZIA
|
||||||
|
-> ssh-ed25519 jPowng E9R7p9NCubUQrymjnrNfEjSNIIAXrBQLogNkWsOx8xc
|
||||||
|
MrWEE5LNtOqAjnwA6byfSa1udnbUtqBy4FhdxipuA+g
|
||||||
|
--- fKgerjgGs+brvNKnrWdpmOadl34LipMT6Msqse2g3E0
|
||||||
|
Œ¡E9³ï¬‚KYRL-‡„°¡Ç·\E–ŸK{ÃÜ7âço»ïò²XÂGx<0E>ÍT’Î)Ëœôä<C3B4>6°%ˆLO€Tðÿ*‰™*8\£É@G
|
Binary file not shown.
|
@ -1,8 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg dgS4bezgtDi44R1A8am+J6zh80kUVYTo1heaxJCtzX4
|
-> ssh-ed25519 cKojmg O3DMSSPQP9/ehXmzs0xcCGllu7VSzhd6b4Pii8t2vWQ
|
||||||
F3w/62xwtqYa40NU7OvF9pnZzYz/5hACAGJfMA4e2zw
|
Ys1nMv2384elWWGW9C8HabvwUeWu52VsQpxx9L/4/dM
|
||||||
-> ssh-ed25519 jPowng lx81CK3yeNp9RjHCUFJeKYZlRzxBmXuADVBvRc13zCI
|
-> ssh-ed25519 jPowng ft/9SX5fpG7+7gHMubaFtb+50/gfNgmaofOVq5UjRUE
|
||||||
P7e75t8xU+ZkYmeQ8mmMfyZZsRdG1J8yrvSUkiWzkFQ
|
xMwdFjFdkH0Li+PikaFt0WAZbFUu5daHgkfN8aQQumo
|
||||||
-> *z4/`-grease S/)a{e sFd";=
|
--- 7DVINvXIXdE1MRwIkeajonYsy1cp4HugCxfTeub5SXU
|
||||||
--- 15FVhqRTkoPFEeETRRyFQhsv4Fn19Ozlax0u8Zy9mNA
|
<¥ö¡Ãñ<ýØ{VÇ?ñfk/¤áI®"<22>ï×/5K"Š¸(ì¢ùiÃÔôìñ
|
||||||
õ#+¥àÎvøSÈ4èá}<7D>§Rì%‹Î¯F4fnDœ˜J¹¤Z‹¸A¥Û™,_
|
|
Binary file not shown.
|
@ -1,9 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg 1+cLlzctgcM0FnVDwMPOAqBkvMcDBRg8SvCw4djI93Y
|
-> ssh-ed25519 cKojmg 0J8FMcVRf78LYG+dTOFzu3luXwhOjdOg0sx4Jxdccj4
|
||||||
oV2XI4f1AvM9P591kZZ6NgJXa+SDtqGzCSgc4psOmxM
|
tdrCcfcYbTZYhL18RG3goiqtyhu3NTn+fJhdIAnU5uA
|
||||||
-> ssh-ed25519 jPowng Ufjfh1p350XxRPg95+/DHdmnl4lC0bbzUUlaxd1Bmxc
|
-> ssh-ed25519 jPowng qlF8nkSEg5fZgai0VP5eTSlZOHyj5IcalTf+QNWITVo
|
||||||
/RHwFDSn2ov+60r1uHUigrsn99+GmmKmlk4h4T2gbA0
|
O5aiZX0AJD76ixsu6i9xnnFBQANdsu3h6XzdTQ6KtKU
|
||||||
-> *Lc$@-grease
|
--- ByMQt9bnbzd8YO0Y93FIYF/lmdbYcOydkYdKxpRQujM
|
||||||
pzVJAHy1qRq3jUrnFV0DDO7/hwV1US4Ogf0RsrVfX0xzbr73uJ003YjieVB25LqN
|
+堍6JNm裶遁[Eb1p)vD究侖PL9捦€z逡<7A>煸!縺贿噮'嘥閍顖卷赿5︰:[控d肯峈撟M抪庱zj<7A>
|
||||||
--- ME7/iVevyiguyhXugbkVFGzJV0yDccyKNlWbEZa/FmY
|
|
||||||
YžŠXjb2uþnd;i0íýX]…§é0–þjé’L„PÔT~óú ƒÙ^kc”$D×ÚÛr¹úu³¶fr€e¸OÕ¸þ<C2B8>+p•¨<E280A2><C2A8>&ãw®öϨ
|
|
Binary file not shown.
10
hosts/nixos/porthos/secrets/forgejo/mail-password.age
Normal file
10
hosts/nixos/porthos/secrets/forgejo/mail-password.age
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 cKojmg Lhgx43wR8PtAMf5v1eJxKlUBSAoOLdOOn/QaQrwF8zA
|
||||||
|
jfUCpgNzkHCNTWCqtErDaLMmg1Oy+s9zUra1JLCi+J4
|
||||||
|
-> ssh-ed25519 jPowng kSeQ/SmMrzd8ByVu3YHWeZyKmqFZvQSBnDunkB8e6wc
|
||||||
|
WRmnfrV5xcRXA9t0ZXx6YvbRl0sX4PTrw63VVKX4Ei4
|
||||||
|
--- a+LLM1gP9g1AbUapbeeKaS4cEcRBmPo3MHU2DSWTAds
|
||||||
|
Ò,FÜÒ6”â⬘ixÌ<78>°Øe|
«
|
||||||
|
²
|
||||||
|
ÌÏœ,{†
ˆõvª!–†‰zÜ$P;ãé©TØÆÉKW
|
||||||
|
qGô
|
|
@ -1,9 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 jPowng BkIjie2KrwDLaZYYIguCs7TPA/wQy+YPguikuhfye0M
|
-> ssh-ed25519 cKojmg 46BI3ItrXRWMivmd/K8bmkKlrYFSr8cbehAkmwCskig
|
||||||
7viTA/EGYB/jRKQm6fFd86DMd4j+Jxsaw/xQ1T8ZKNo
|
gTjYquH1hDEZ2zWD5P7gN/ejTCH8JJb8bC/VLZ3koeg
|
||||||
-> ssh-ed25519 cKojmg t1Y8bZvPccNAX8vWQLTfCyOJIBXN515vyfFrEI2EVww
|
-> ssh-ed25519 jPowng 5MqfJlasDbbqlI0dX98NZzHxmYmnnpveyBxa4z48V0o
|
||||||
bJEjpIWrKeQrA/JfY7FRdB6hpHwR/aG4Vya1ChFNBKs
|
r7Yiv4+SZiDncD0Xzp5eFSP4f2yjGBOILKxEO1iT3Os
|
||||||
-> jK/-grease Oz.R ?;)G ],
|
--- l43+JtT28i1YDhNX3hE3Qb7swskOBc5ghDqiyh3rU2s
|
||||||
AuHk9TcC9kl0dg8/L6UfHIk3e9fgGwSTJAJpVgInhok
|
Ž+)´”¯ÛPô¢nåWT,.<2E>‹²eÚNW€Îñ YƱkçÿF4Ê#=˜)üîò™6Ö±ÛmȵîJ‹<4A>ª#
|
||||||
--- 47z9lol5MtpX0IsO/0ggLDMcNVfl4lNNvoHUSwOU/18
|
|
||||||
)gЪeuÞ!œš-
ÞTì¥YAðM+ˆãGbMe@|A,è&ãÆE!܆p=P²=û9¹ÙP¹!Üö’Q|Ðä r
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,9 +1,9 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg lmu3MinmydRHD0A/YVRRtopermfoBC8M8cTHfVanY1s
|
-> ssh-ed25519 cKojmg u+5VWUy7eFq4boAIOhuKXZYD4mhczaUAcjz4+coVggA
|
||||||
ygrtpZZJ7aeQTblNazpoP7DdifmDxHsE3DFJsIrWX5M
|
QlBHHgz7uY3TVgex59yZA0XgsIeHi2WN2S+UleC7bMg
|
||||||
-> ssh-ed25519 jPowng X0cihOc+fBtmtrkEivIHQngdYIobezXEF1x+pHqNzAw
|
-> ssh-ed25519 jPowng IyeI6WUjF8wxe92xD3xY++4ZqXtY8divB39eLWfAtm8
|
||||||
/+sw9x1NWY0anZhDMpAywBPrR0F4XCHaF9e8j/Yo/kI
|
eGj8w5X2ydS1LJvNSmo56xzRVoUB0iAKKs2NHX968Yc
|
||||||
-> 32;%1s-grease
|
--- hsYH9lUl3wIErJmBKzlWV+gIR5v6vgPIcNDgd0hiRGc
|
||||||
JafjuSZty6a4NSO/y4y5wHWL8Mw
|
¹Ã@Úl<C39A>ôQûsÈ„ÿ×£©Dƒ}^{ºžá¾X)¸nYóJhXhg8wƒž´ “ú°˜Ó¨Ç‚Çw–‡y(œ–aè¸ìê.0>|ÚPSlOÃ|ÈÊE‰õÂÙé°€¡<E282AC>BWó_ˆ³ÜÌ)|x4©„šºë\_F¶
|
||||||
--- dwCl66vdpsL0MR5NWWvg3JUnQ2QZQBeW0Dj0l5tvOKY
|
ZÒo0=dts –j<E28093>[ùŽõ0O+ÑÕRž8±‡ÕiüËçŽÜ»ˆõŒæÆdÀ«ß8j»â©ê
|
||||||
oi,`ÓÜ#uÄwW%PoubÚcy8<79>ó
ƒÃÉ><¿F‰Ååq…ÂKÂÇk0Çk/<2F>hÀ¥Ÿ5势ÝF+ýu‡ •e€<06>¾Ÿ²óôbãè>1QŠ2®ñwn˜WbÖ–B˜âî<C3A2>iŸ^xurâ†-/llùÒÀÀ-ã=°7;jã0»I×%Fi¼<69>í€ø‹™A;Y†ìUd]KÅI0(½ ”øAg£Ðóž^†uG:äpkJ’Ÿ:q<>¢šWSaLw¯¿Ô!ïM³4ã L/ùZŇ®¢D¶-XéUb»‘vÊbP‚ó›0ÇÅfÂ9êú<08> †âJ`ÃX°ôÐOÅ!s›{ÙÄQAšc€c;ÏÃÑ‹4öMíچݹlxH&ïéöé{é}ÁäÛzZ¦œ‚9ûÊXžÜ“g‰]Vϱ•0gt¡¿…žw·
|
‚g¹©‘–$xŒÿò¥Æbâ÷í<C3B7>˜äX·¢gÂ^¼íùG¼Êô¤Ž$UÏûB*ö°é²¡£ÈÔ)[t¶ÃHa•vŸ7<>ÌÑj£âD.z¸+¬[~–õÁÃé9Ùý<C399>àz¼øô`sé¶,_!^YÓïʯ2H¹øS‹¿¼©øÅ<C3B8>øý*âñó@êjZ^ˆôæÎv~غ¶@ò<>
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 cKojmg xRtF3XVc7yPicAV/E4U7mn0itvD0h1BWBTjwunuoe2E
|
||||||
|
OkB9sjGB3ulH4Feuyj3Ed0DBG4+mghW/Qpum9oXL/8c
|
||||||
|
-> ssh-ed25519 jPowng 1r8drqhz1yZdTq0Kvqya+ArU1C2fkN7Gg9LiWWfeUFg
|
||||||
|
cjbxntVwHvqLaJpiKs/Y8ojeb6e3/cLFcsoeuoobfFg
|
||||||
|
--- B1qA2PylJBrdZxZtCzlU2kRPvxLM+IrXTvR+ERxVtTY
|
||||||
|
"W9<57>Äbg¸©~Ì/áÕb4ãÕ†ú³ÜÔIÊ
|
||||||
|
Û}ð
§ËÅË-³²ªNó±”ÑC7vWœbºØ?¦8=œÉwÆBÃUpJClï²OÈ™³œnOÁ\
|
BIN
hosts/nixos/porthos/secrets/mealie/mail.age
Normal file
BIN
hosts/nixos/porthos/secrets/mealie/mail.age
Normal file
Binary file not shown.
Binary file not shown.
|
@ -1,10 +1,9 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg OdLtFHbHbc28rUn47vgsVvXxFNg9nF+9y9R6XOK390Y
|
-> ssh-ed25519 cKojmg l5lOlGnbvQ4D2kaSj1dd8Xr+btlNbTkT0SxSz02Vr1E
|
||||||
yQQYUPQGjN2+xrSqqBYa7/zS618KrVjX5Amw2MFuSLg
|
Cjy73yKL1N8LnjRXXLpxX+wIOFCa8wrG44VjXUND1lI
|
||||||
-> ssh-ed25519 jPowng NwUjiLtiXVi6XFmht5l1CxEs3gm0oN4vHYwDZyda7Q4
|
-> ssh-ed25519 jPowng nYHfkP9dRkxu4Fqh8MgrbdZAc8gk+VGDyxIV6RsSeEM
|
||||||
di6znVjNRO6QdqteVNkeot5Ko2NwWLe6v+zVR3f+o10
|
rKKi1NDoKMMzQ+kUs5ZX4zMqRBI0QwGY7q6K/L9+dLI
|
||||||
-> 4Vx%\(-grease ^^Z>EC91 R 2BJ d48Wip*s
|
--- Umv3UCtXlApug7uuqmwbQN38i8Lx9/b0uhLgbc3OdZM
|
||||||
yPiBgChRF31XgxccQFLO3MzRL7+5s29sfRoF3W1yUX6Bu59MpxD4D+n/jhLcxSH/
|
äBLsś ‹?ÖsÓ“s<E2809C>2Îy
|
||||||
CxW7KaiOctNmPm5tWh6qjmgQ+V4bcAji5vo4FKs40l56cfyueEJj+Q
|
R0ą‘!<fü9txB7dň<13>™ÚŠň^©ô ɇLJ&ńW
€<©e]
|
||||||
--- WUGF28zqK9E1AlOeeCtSHxFg6ikRy85gOoLtBd4m0y0
|
ţ/$$
|
||||||
.|…rr>©†ðìì1ÅÆ2SÉž.×hw<12>wqºš%i˜øé ‚*U^)Öè'qžµ›O2ÓœümòQÝ7˜¯m`
|
|
7
hosts/nixos/porthos/secrets/monitoring/secret-key.age
Normal file
7
hosts/nixos/porthos/secrets/monitoring/secret-key.age
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 cKojmg uz/Zf2uv+q7f3CVEoDuThHdqKE12lgHMDaORjZR/R2M
|
||||||
|
HqsqZouRxocuHOic08c2oURw2I95BM9CzgEv7FPsWwM
|
||||||
|
-> ssh-ed25519 jPowng N0HG0fB19MUa2fOIdpKxOZOWjdUgEmKOjIP4hkx1JFo
|
||||||
|
MAgTWh9d5d75iuzfA2eQ5P8ltSXZJ42dAT82YLGy0hs
|
||||||
|
--- g9KaXbUtmB05NWkGDSyWxEzo9woQaHHb+TtpvXfcpM4
|
||||||
|
cÓX× È§˜5 b2¡•¬-€‹Ñ"•›RSÒI¦&ÌÍQøtÒ[QZ¨F¦kô.POè ’?Lü¤StãÖ-Kj
|
Binary file not shown.
7
hosts/nixos/porthos/secrets/nix-cache/cache-key.age
Normal file
7
hosts/nixos/porthos/secrets/nix-cache/cache-key.age
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 cKojmg 8hV+BAKLsq8H/cxsklzuK2Q0/CqwjW6q8xMMJ0EaMDI
|
||||||
|
LUjA2/qZAAeYjW6TtvmifBUo/WGigKwed6p7RnGjRyA
|
||||||
|
-> ssh-ed25519 jPowng wrJBGPfY2a8HLoqO12/YIzCB40tZmbAlFTVrDrxrCnE
|
||||||
|
9ARASO4ZPEyQoBIrs/u8FovkzugQ4fIrZObUVBZ+UAs
|
||||||
|
--- WKMVJ4dhRAUelxXc7bJ6+UNOSrHxI4LhPo3i0RaHk7A
|
||||||
|
ˆÌ˯®9QŸ5
J‡i£¾)¦TS<54>¶8õ+ú®3ñŽ|“&ç"qFF+…í¬ vÉ‚’WjÏË–äÂMOßV×'¾\«àvK$„52˜î¥Ú¾í,lû,̹O§gßÚ¬L78!îQðR$«iöćͰ8>°ñBФbÑ„•ÌÃfDc/qWDÅ'›g9
|
Binary file not shown.
|
@ -1,10 +1,8 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg zhpo89xef68JoeOFWzhdFshrj2BXXUCFPMLVJzv6EyE
|
-> ssh-ed25519 cKojmg 1hbRAuAGrTy6nmkAq+UWua8weywphZsTIGF68YQEOlQ
|
||||||
fmJxJi5rmyai9qGwDo7iHg4BrObGre96KCpl+g91O6I
|
92Q7uIKv1EiO73wMh53jrTuEkzP6ziBmX9SWXCl4d3w
|
||||||
-> ssh-ed25519 jPowng INA6EZdy4J1p3QY5mfVOQXiLdOjIDaZR+CZMP+GfkXM
|
-> ssh-ed25519 jPowng aPb9v/S/mLW95Qom+swvasqY878RxpxxOkMJA2wb6nY
|
||||||
8Nf5soaxY5SEzeJca5kaJkx7ByOvc4NkJVetB7wpEmo
|
qu/dzcqciqKzNc28HqFMHA1XnrJy+/wWgbfM1+BrlkE
|
||||||
-> xjK'w-grease
|
--- 8PXOozvZzNZQD2OT4a+0XuIQauzUGSvovdfDugmp+bc
|
||||||
f5v0cvlt4JbHlAwDOob86qOInWdlN/oohTg
|
x²Ž‚ê Ã>ùý²ç¦©ðóÁÇ_ÏC9d™T5ŸûKzЄqØcZ©°É¾pŒš¾¡ ใºv
|
||||||
--- NTGv4rr+MhJ/YeZhVHOjoS1V+zCHFf2itJYfK36R+wE
|
)Œ³õ²¥
|
||||||
š×—®JÚ dő– oŞę'YFUź@
|
|
||||||
r7”ă“_N$‰˙Ź–č‡>‚ˇę]hq»-¨FŰ°qX˙?Î|?µĘ
|
|
|
@ -1,10 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg tZwn2usN6K62oS4vBa6boh9zEp/+cS4chP8boXG6SH4
|
-> ssh-ed25519 cKojmg r3ZUTfSNcHc1TS2fVtk99Y2xJMMunkwkcR0dQIdiCi4
|
||||||
Fr3kV8gUDoiDqMxPYWsHyww8umYhQEKhqbVBiVw5NeI
|
LICSnzAaooGy6x4wt0vNM6YtQ4S17QohZNt7lfVrD6Q
|
||||||
-> ssh-ed25519 jPowng wRbJl4G85obH/GluQBBsXE7MOvooEui65eqHfurvuQs
|
-> ssh-ed25519 jPowng KLU68ws4lemr0wWHxm8H8pf1SQAoUZTN4QSPzk2PyHk
|
||||||
KqVZMBSyHhkayEdwI6ocmA4qhHY9zYJvg1CEKM1SOa0
|
6pjH1pI956oaf9ZIHPPq8p3g/mZC5GxWhWkT54Wohf0
|
||||||
-> 2E"/OFW-grease o Qp3HFe^
|
--- cAQbniTwwtTftfXU/dGtA69yF/hh8iB97vHxvkIZMMo
|
||||||
bGhCNicPqt7txqxUiEWXCFs1OuQLqOqHmjHSqYQv919dqYep/xBXzi/aRf3dsdvh
|
°c#Ž=^Ì~?5ú-w—NT†Ì¡<C38C>¨+¶¨Ä!z¥<7A> "’ Zö"2ºëðù×M!pž5×V¬ÈÛjçΡѡŽâ¥âL¹ÁÌyóÐŹúš›n÷ÄŠ8zQö°+¨ËÁØ©9WSµ§<C2B5>Æ0¨u}YÚ
|
||||||
TCJCTvZG31Qxvikp
|
|
||||||
--- xKJGbdVp+Z5h0vCBleSF2zYYYd2S5i0y4szNqjRwrDY
|
|
||||||
Tª
/N¯<4E>¨¹i7m4‚#³MhiñP¹šÒÞ›Á¥-ÏgI÷ñ±%@E†(›iÿ7·ý©ýYg¦k±´"+㸠Àª(þ]o¨¸–ý†ð<E280A0>@báÊÞ§+Ï[‚Y"ÿ‘ÌBóóCR[ >-Ë.4d…¤b9v
|
|
|
@ -1,9 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg 8rcBI7fYHuA3jO6EzJNFaAj2niIApKDt1HQEv61AKTs
|
-> ssh-ed25519 cKojmg bICZUDqk/C2divEZu2lxUDsrtS1inSbDbS8hxJSJfHc
|
||||||
ANxkIX/CeI7t7Zqp6wmjt/D194Z+xpeiidb+qvYzoQU
|
FsfueyP6WCesAu5EcXIxxtvbb8RX09qNTN9GvuhYuTw
|
||||||
-> ssh-ed25519 jPowng oruewwTM9X/HjjcmOPcQVdp02rQBlgJPdzvlAffs3T0
|
-> ssh-ed25519 jPowng Uujsu6c+QTXqCNi6c+zxk5tf0UQcG+Qm/SZF4dzSKCY
|
||||||
MrO0kaNhjgOkNHuz3NrIMWXNrXOHH9dT/Fk6hoQNKyY
|
RPVNNNauz73A8kWA0VSQiMWCerUkxPoXG2MUrFly3Bc
|
||||||
-> COK%H7-grease
|
--- 8h4hGasOwZxk+i5aQfg6AzdA1G4wROhxz2rmM9u41b8
|
||||||
6yfI90QurOKlM+kgpW8KZ/iBzDYD9yhNmjG1LQ
|
{Rワ<>ラ=42<34>
y<>咨ッ眺テj嚀廁<E59A80>WQ▽隯%畊ス宅 顕褜返<E8A49C>弁K<E5BC81>ト蘊マFョモ?埴膕K歯「
|
||||||
--- uArz8eHg8sLO0sdlkM6cELFh+FHiI5BrM0+iXJxxiDo
|
|
||||||
¿vývû´ÊNÊbæ@Ÿ¡Â<C2A1>FÛMMíYËÆíÌ&‰’/%¤¹Ñm¨®ØtÁÖ“ªd†h„|¡ðŒß©8¼Ž Ú½¨9‚®<11>Cã¯/Å
|
|
7
hosts/nixos/porthos/secrets/pyload/credentials.age
Normal file
7
hosts/nixos/porthos/secrets/pyload/credentials.age
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 cKojmg nJbOfp0/wmFOZLzcWjoGB7wEB8e56aO1NntSmn5KomU
|
||||||
|
/Vio4Z/t7IPJrdzdwUPidVH3wrouSkwRzNHP0T4z3x0
|
||||||
|
-> ssh-ed25519 jPowng QXg/xqs7/VfkYQg3X77w4i53q64bL9oYeTxqb9NVhiQ
|
||||||
|
sMHIXlmrIxtIr+s0X4lBqev/PPd3AKD5P7AP5K4NeJg
|
||||||
|
--- gzTn+6+aa4Ptic1lsvSt+r3IEBysHrvMMIyONogMDF0
|
||||||
|
<EFBFBD>ÏÂ<EFBFBD>Ë®UE_í</¯çQ·Ü+U“AГMÄÿ/kï×dAL/”úÕįÍoæ\XïEDÇÑfã\ièÄ‘½àpF„`#¬n4è–x1î<31>ûÞèDëàÂË5CéЦ&fòB»q${Gg…Aqˆ³@üVu!Cc…R\ªÖ¨
|
|
@ -12,6 +12,8 @@ in
|
||||||
{
|
{
|
||||||
"acme/dns-key.age".publicKeys = all;
|
"acme/dns-key.age".publicKeys = all;
|
||||||
|
|
||||||
|
"aria/rpc-token.age".publicKeys = all;
|
||||||
|
|
||||||
"backup/password.age".publicKeys = all;
|
"backup/password.age".publicKeys = all;
|
||||||
"backup/credentials.age".publicKeys = all;
|
"backup/credentials.age".publicKeys = all;
|
||||||
|
|
||||||
|
@ -19,6 +21,11 @@ in
|
||||||
"drone/secret.age".publicKeys = all;
|
"drone/secret.age".publicKeys = all;
|
||||||
"drone/ssh/private-key.age".publicKeys = all;
|
"drone/ssh/private-key.age".publicKeys = all;
|
||||||
|
|
||||||
|
"forgejo/mail-password.age" = {
|
||||||
|
owner = "git";
|
||||||
|
publicKeys = all;
|
||||||
|
};
|
||||||
|
|
||||||
"gitea/mail-password.age" = {
|
"gitea/mail-password.age" = {
|
||||||
owner = "git";
|
owner = "git";
|
||||||
publicKeys = all;
|
publicKeys = all;
|
||||||
|
@ -35,6 +42,13 @@ in
|
||||||
owner = "matrix-synapse";
|
owner = "matrix-synapse";
|
||||||
publicKeys = all;
|
publicKeys = all;
|
||||||
};
|
};
|
||||||
|
"matrix/sliding-sync-secret.age" = {
|
||||||
|
publicKeys = all;
|
||||||
|
};
|
||||||
|
|
||||||
|
"mealie/mail.age" = {
|
||||||
|
publicKeys = all;
|
||||||
|
};
|
||||||
|
|
||||||
"miniflux/credentials.age".publicKeys = all;
|
"miniflux/credentials.age".publicKeys = all;
|
||||||
|
|
||||||
|
@ -42,25 +56,35 @@ in
|
||||||
owner = "grafana";
|
owner = "grafana";
|
||||||
publicKeys = all;
|
publicKeys = all;
|
||||||
};
|
};
|
||||||
|
"monitoring/secret-key.age" = {
|
||||||
|
owner = "grafana";
|
||||||
|
publicKeys = all;
|
||||||
|
};
|
||||||
|
|
||||||
"nextcloud/password.age" = {
|
"nextcloud/password.age" = {
|
||||||
owner = "nextcloud";
|
owner = "nextcloud";
|
||||||
publicKeys = all;
|
publicKeys = all;
|
||||||
};
|
};
|
||||||
|
|
||||||
"nix-serve/cache-key.age".publicKeys = all;
|
"nix-cache/cache-key.age".publicKeys = all;
|
||||||
|
|
||||||
"paperless/password.age".publicKeys = all;
|
"paperless/password.age".publicKeys = all;
|
||||||
"paperless/secret-key.age".publicKeys = all;
|
"paperless/secret-key.age".publicKeys = all;
|
||||||
|
|
||||||
"podgrab/password.age".publicKeys = all;
|
"podgrab/password.age".publicKeys = all;
|
||||||
|
|
||||||
|
"pyload/credentials.age".publicKeys = all;
|
||||||
|
|
||||||
"sso/auth-key.age".publicKeys = all;
|
"sso/auth-key.age".publicKeys = all;
|
||||||
"sso/ambroisie/password-hash.age".publicKeys = all;
|
"sso/ambroisie/password-hash.age".publicKeys = all;
|
||||||
"sso/ambroisie/totp-secret.age".publicKeys = all;
|
"sso/ambroisie/totp-secret.age".publicKeys = all;
|
||||||
|
|
||||||
|
"tandoor-recipes/secret-key.age".publicKeys = all;
|
||||||
|
|
||||||
"transmission/credentials.age".publicKeys = all;
|
"transmission/credentials.age".publicKeys = all;
|
||||||
|
|
||||||
|
"vikunja/mail.age".publicKeys = all;
|
||||||
|
|
||||||
"wireguard/private-key.age".publicKeys = all;
|
"wireguard/private-key.age".publicKeys = all;
|
||||||
|
|
||||||
"woodpecker/gitea.age".publicKeys = all;
|
"woodpecker/gitea.age".publicKeys = all;
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
hosts/nixos/porthos/secrets/tandoor-recipes/secret-key.age
Normal file
BIN
hosts/nixos/porthos/secrets/tandoor-recipes/secret-key.age
Normal file
Binary file not shown.
|
@ -1,10 +1,8 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg mP2H3PWJN6Pv3q6C2wci3KnXjtFAIiuGy0YH0sGIy2g
|
-> ssh-ed25519 cKojmg Froxrdh4H2Bsj4X2xicyBXHPRlbkRJAOztoTfzxItSM
|
||||||
f43QqyUQfTYznszub47kgc2Mz95zVScTDkwnG3INi9U
|
FnsLS2QYm8mJUO+c152FieLCFkALxxwQLnY4PAj8zsU
|
||||||
-> ssh-ed25519 jPowng fENbu7+FZ1mnQQHQCLm1spLHmsQGlRoJResUJtGzYkY
|
-> ssh-ed25519 jPowng pKl4p02M+U5JsiOnM2wXL5bkPwsI3IHjlTutlvez3zM
|
||||||
hX+AqCkLCca6m/aKtGCThi7/mCCz/TZQNJNOlOmlqyA
|
NSuOFsyV8JqtTq97lNzacJnJ3YZgWp53XxU3mjUlcMQ
|
||||||
-> J<-grease
|
--- 2TK2ViFblmDheaYdat/GF0ze1wVsla1EPLaeRdMM4Gs
|
||||||
n7+CPRr4oazWnE7yzpJN2ZAI4QrGsAerloP4wNeebjQDx8+IxJq1JE0g3Yi0RxzN
|
®àµÕ¨ENÜžäm›Û2uÂ~Ju¼b´´t[Ý$Tñþ^‘2–°<E28093>½jœÙÜi@xªÒ¸*Ä°g[MÞH½½Xš!”‰6Áez¼…¥DW]ÓÕ<‰–`XÛâêÁÜÄPóéý÷ÃÞ›
|
||||||
chDccuSPLYk45Ov+SD/qqqFZlQ
|
¶¥q*Îo¼½ÃÑ$‚åÓ<²
|
||||||
--- p81HYw3LFj+qz2kiZsDcevM4ZBfvN743P9Jdi7J9XkM
|
|
||||||
‚¢ìÛ±S·7 <EFBFBD>‘ý£÷ÜãV»»Bðßâø±³ˆ¶ïO‰lEt˜‹Á…šqý</Ç—Ø©9²ã(ØP†$Wƒ0h;÷‰±àJy¯feø‚ >·_D,PºVFp\æ"AM}èg?<3F>ÿ<EFBFBD>Ý/\²Ä;ùy’¬Óš(<28>ÑSñKË
|
|
9
hosts/nixos/porthos/secrets/vikunja/mail.age
Normal file
9
hosts/nixos/porthos/secrets/vikunja/mail.age
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 cKojmg o5UoCsI4rvzJ84AQsumbyEngllUcSQB0lZw9F0zK82A
|
||||||
|
xRcqV+QOqvpeMZiNCdWVhiRaEBayf3cv65xcrIKTfyI
|
||||||
|
-> ssh-ed25519 jPowng zFZTStqeaFy+HJGN3EV29+Qtf+oaXTKsZNnhetvlNz4
|
||||||
|
5dsAyBzbJ3If1KO9vvrO5UHvFfKq154xTvQbu50TFGc
|
||||||
|
--- /MjYRy6PXkzAcTMMqt84/+SkKFcuGbdFZ3BXHZ15yzY
|
||||||
|
/\œËÃQ'K0
|
||||||
|
‚¨5]QzO·\à®ÿÞ•›L<06>úf“^—÷©<˜+ÌC<C38C>ø¼Þvƒ ì†)"‚6Ú·?ésoÀô§ÂÐH<C390>ŠÿÔûxÇ÷7}õ³–Èv¸ûû’1&Ð" ¨¦FËåÙ%Á%ÕÖ|îä'„õŽ#ÛdV<64>€žUî)?€þ÷ÿ—ýð¸pþÑÅ}¬odS×Á§|ø¹T‚þ;É‹]fM˜®xä°>h3ÛÚÓ{·Wí.²1&ºLö)õß±=k0ÖSSbœ|ÊV™‹)Tìû©ïBý:ŽÅë𗯾».‹½lrI“fè8ø!~ËJe§<·3?;—òk$H¾šÈk +å6¼¤Â¯“ÿ`’#V˜ÒO<C392>»tî0à
|
||||||
|
Ó
|
|
@ -1,10 +1,8 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 cKojmg +WwRpd2MzycutQFXyLsr2+GzSgF67Z6UuvyqYZaLd3w
|
-> ssh-ed25519 cKojmg KslHl4v8yCsKZn5TduLgpTfpTi1uOInC9N2e8Ow83FI
|
||||||
sppt8HzaZP3yxnvnhzjl18Trnz8g3VyXJ6CaVBWd7jA
|
NzcJJr8kw1ykAdWRZOeWdNhx0BTgE7FwTKcge+yLJ/w
|
||||||
-> ssh-ed25519 jPowng wanoqGB7T8bim/WZ4IAYViFQoGzaIZSgeoTr3YKpeTY
|
-> ssh-ed25519 jPowng YGWcOai0A9l2HDZyV0GtD8kEbY/xTUssODFBcseWAkA
|
||||||
ihDAdGa1XVW/qQz40V1v7a7iK7tu0EHMa7ayIogpcRw
|
nJaHXkipFSHdyektoKV5y1jQrjkvnU7pwZwAymiQm7M
|
||||||
-> l-grease |PIcZ NIr >0;*
|
--- IgWkDulol1jRa+pcx7DbEy5pvC+2nrRJHsdQVPvPur0
|
||||||
4o8o0bevQZ6uDSx1WxxlDCURbFCM+yK1XPdrb9aztCSvG2a+ne78E42l5rBcoH7I
|
Bb<ÅŒb!ÏëE?:ÇÓô=÷srJC<4A>œüKz5ø®Ô{–Æ4`¾&N0€ÕÈö¹57ñüví’©+´1
|
||||||
m51A8uWS4nSj36N/76v6K4kelxKzWUg
|
+(d§á¡{ìQŠÙ
|
||||||
--- O6cGbTAVbDcdmPHf7UzfZiyiRtu1yfL4sBI+CkJA1qw
|
|
||||||
ýqýŐ$ň`żw'čS“X¸]Ąá÷ř®úî…?¤6‹Đ/ĆN(Bžň N«a”.˙ HŽ7żí•I<E280A2>ú÷Ŕoz‡/4:sK",7J
|
|
Binary file not shown.
|
@ -1,10 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 jPowng yz0I+AazPmamF7NOnwYNrPE/ArarU01jd2mVDJUPSTY
|
-> ssh-ed25519 cKojmg tAW2hbBSxsael6cdbN+vI4h1/PMNrWYct8cppCAasn0
|
||||||
6Y/YQ7gb8cAZf3zT9SKOorvfUnU7kYff+gHh8fG2mY8
|
cex/wBTviSIXc8clNm5PGltTYa1Q5PwqlX4BGsNHiyU
|
||||||
-> ssh-ed25519 cKojmg 0FZU9v8eHsVeE+EoX9Y4IgfIj/8+45waPaSnSDb961I
|
-> ssh-ed25519 jPowng YxfhtpytvuhIARQAaJ0w94aOZiGNUOBR0pF+Sp80D2k
|
||||||
L6SzJoh5xqai45scoVAa6v9zslBGFYNnZY044d470uQ
|
nMon/VdYUQTs6LFccDGeIKWeNYib1wwtFmEYZkDZxg0
|
||||||
-> I[G-grease p
|
--- giL477X0+uZ2Ocvbixt5f5kNc1laj5P79oW8P9XsNP0
|
||||||
AMRQY1alSzHi/PLL80kcvnM1Z9YNfoUo9u5alWXYMyzrRsg+vXjMuBvAXg3fmnzr
|
¨›Ãd>ò±cE?nb¹vš_²'2ûûà³<1B>Õµ¥_6P›u:ÊusºE“8õ“ØÏ“xuڶ̪…Îxù̧ïžC[†®°ˆÁ.õêŽ6‰¯ qÌÀÍîJ°Ä5GäKÌ)N<ÊyYÉ¥tX=l7T´2¨ùRÙ
|
||||||
wdOowTYMRV+jEG8vzkcQTsv+f7JIyo4DvOOaPyGfWMl1
|
|
||||||
--- ih3IAFPcN1JP3FP1vcRGnPrfk91yrnIX0m/Szkbcf7Q
|
|
||||||
ÑmW„r‚µœ_\)Í°]QŠ¦xMÃs/݃Îݪäœó‚Í6óº“k±äÅY§xïMy¶ J¿¸‹GßÃ)i2_'ÖœHF€þ.âg_Îe5³#uätñØÕ 7j„ŽPñ²'TÞ¥8´•\IàW«UùäK°1Úº9½è
|
|
Binary file not shown.
|
@ -28,12 +28,6 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
libraryPath = "/data/media/library";
|
libraryPath = "/data/media/library";
|
||||||
};
|
};
|
||||||
drone = {
|
|
||||||
enable = true;
|
|
||||||
runners = [ "docker" "exec" ];
|
|
||||||
secretFile = secrets."drone/gitea".path;
|
|
||||||
sharedSecretFile = secrets."drone/secret".path;
|
|
||||||
};
|
|
||||||
# Auto-ban spammy bots and incorrect logins
|
# Auto-ban spammy bots and incorrect logins
|
||||||
fail2ban = {
|
fail2ban = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -42,14 +36,14 @@ in
|
||||||
flood = {
|
flood = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
# Gitea forge
|
# Forgejo forge
|
||||||
gitea = {
|
forgejo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mail = {
|
mail = {
|
||||||
enable = true;
|
enable = true;
|
||||||
host = "smtp.migadu.com:465";
|
host = "smtp.migadu.com";
|
||||||
user = lib.my.mkMailAddress "gitea" "belanyi.fr";
|
user = lib.my.mkMailAddress "forgejo" "belanyi.fr";
|
||||||
passwordFile = secrets."gitea/mail-password".path;
|
passwordFile = secrets."forgejo/mail-password".path;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# Meta-indexers
|
# Meta-indexers
|
||||||
|
@ -70,6 +64,13 @@ in
|
||||||
mailConfigFile = secrets."matrix/mail".path;
|
mailConfigFile = secrets."matrix/mail".path;
|
||||||
# Only necessary when doing the initial registration
|
# Only necessary when doing the initial registration
|
||||||
secretFile = secrets."matrix/secret".path;
|
secretFile = secrets."matrix/secret".path;
|
||||||
|
slidingSync = {
|
||||||
|
secretFile = secrets."matrix/sliding-sync-secret".path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mealie = {
|
||||||
|
enable = true;
|
||||||
|
credentialsFile = secrets."mealie/mail".path;
|
||||||
};
|
};
|
||||||
miniflux = {
|
miniflux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -80,6 +81,7 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
grafana = {
|
grafana = {
|
||||||
passwordFile = secrets."monitoring/password".path;
|
passwordFile = secrets."monitoring/password".path;
|
||||||
|
secretKeyFile = secrets."monitoring/secret-key".path;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# FLOSS music streaming server
|
# FLOSS music streaming server
|
||||||
|
@ -92,9 +94,9 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
passwordFile = secrets."nextcloud/password".path;
|
passwordFile = secrets."nextcloud/password".path;
|
||||||
};
|
};
|
||||||
nix-serve = {
|
nix-cache = {
|
||||||
enable = true;
|
enable = true;
|
||||||
secretKeyFile = secrets."nix-serve/cache-key".path;
|
secretKeyFile = secrets."nix-cache/cache-key".path;
|
||||||
};
|
};
|
||||||
nginx = {
|
nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -121,7 +123,13 @@ in
|
||||||
secretKeyFile = secrets."paperless/secret-key".path;
|
secretKeyFile = secrets."paperless/secret-key".path;
|
||||||
};
|
};
|
||||||
# The whole *arr software suite
|
# The whole *arr software suite
|
||||||
pirate.enable = true;
|
pirate = {
|
||||||
|
enable = true;
|
||||||
|
# ... But not Lidarr because I don't care for music that much
|
||||||
|
lidarr = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
# Podcast automatic downloader
|
# Podcast automatic downloader
|
||||||
podgrab = {
|
podgrab = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -130,17 +138,34 @@ in
|
||||||
};
|
};
|
||||||
# Regular backups
|
# Regular backups
|
||||||
postgresql-backup.enable = true;
|
postgresql-backup.enable = true;
|
||||||
|
pyload = {
|
||||||
|
enable = true;
|
||||||
|
credentialsFile = secrets."pyload/credentials".path;
|
||||||
|
};
|
||||||
# RSS provider for websites that do not provide any feeds
|
# RSS provider for websites that do not provide any feeds
|
||||||
rss-bridge.enable = true;
|
rss-bridge.enable = true;
|
||||||
# Usenet client
|
# Usenet client
|
||||||
sabnzbd.enable = true;
|
sabnzbd.enable = true;
|
||||||
# Because I stilll need to play sysadmin
|
# Because I stilll need to play sysadmin
|
||||||
ssh-server.enable = true;
|
ssh-server.enable = true;
|
||||||
|
# Recipe manager
|
||||||
|
tandoor-recipes = {
|
||||||
|
enable = true;
|
||||||
|
secretKeyFile = secrets."tandoor-recipes/secret-key".path;
|
||||||
|
};
|
||||||
# Torrent client and webui
|
# Torrent client and webui
|
||||||
transmission = {
|
transmission = {
|
||||||
enable = true;
|
enable = true;
|
||||||
credentialsFile = secrets."transmission/credentials".path;
|
credentialsFile = secrets."transmission/credentials".path;
|
||||||
};
|
};
|
||||||
|
# Self-hosted todo app
|
||||||
|
vikunja = {
|
||||||
|
enable = true;
|
||||||
|
mail = {
|
||||||
|
enable = true;
|
||||||
|
configFile = secrets."vikunja/mail".path;
|
||||||
|
};
|
||||||
|
};
|
||||||
# Simple, in-kernel VPN
|
# Simple, in-kernel VPN
|
||||||
wireguard = {
|
wireguard = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
12
hosts/nixos/porthos/system.nix
Normal file
12
hosts/nixos/porthos/system.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# Core system configuration
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
my.system = {
|
||||||
|
nix = {
|
||||||
|
cache = {
|
||||||
|
# This server is the one serving the cache, don't try to query it
|
||||||
|
selfHosted = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -24,4 +24,10 @@ in
|
||||||
# (any -> value)
|
# (any -> value)
|
||||||
# [ any ]
|
# [ any ]
|
||||||
mapFilter = pred: f: attrs: filter pred (map f attrs);
|
mapFilter = pred: f: attrs: filter pred (map f attrs);
|
||||||
|
|
||||||
|
# Transform a nullable value into a list of zero/one element.
|
||||||
|
#
|
||||||
|
# nullableToList ::
|
||||||
|
# (nullable a) -> [ a ]
|
||||||
|
nullableToList = x: if x != null then [ x ] else [ ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,8 @@ in
|
||||||
search_mode = "skim";
|
search_mode = "skim";
|
||||||
# Show long command lines at the bottom
|
# Show long command lines at the bottom
|
||||||
show_preview = true;
|
show_preview = true;
|
||||||
|
# I like being able to edit my commands
|
||||||
|
enter_accept = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
22
modules/home/bitwarden/default.nix
Normal file
22
modules/home/bitwarden/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.home.bitwarden;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.home.bitwarden = with lib; {
|
||||||
|
enable = my.mkDisableOption "bitwarden configuration";
|
||||||
|
|
||||||
|
pinentry = mkPackageOption pkgs "pinentry" { default = [ "pinentry-tty" ]; };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
programs.rbw = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
email = lib.my.mkMailAddress "bruno" "belanyi.fr";
|
||||||
|
inherit (cfg) pinentry;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
15
modules/home/calibre/default.nix
Normal file
15
modules/home/calibre/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.home.calibre;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.home.calibre = with lib; {
|
||||||
|
enable = mkEnableOption "calibre configuration";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
calibre
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
15
modules/home/comma/default.nix
Normal file
15
modules/home/comma/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.home.comma;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.home.comma = with lib; {
|
||||||
|
enable = my.mkDisableOption "comma configuration";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
ambroisie.comma
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,29 +1,58 @@
|
||||||
{ config, inputs, lib, ... }:
|
{ ... }:
|
||||||
let
|
|
||||||
actualPath = [ "home-manager" "users" config.my.user.name "my" "home" ];
|
|
||||||
aliasPath = [ "my" "home" ];
|
|
||||||
|
|
||||||
cfg = config.my.user.home;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.home-manager.nixosModules.home-manager # enable home-manager options
|
./aliases
|
||||||
(lib.mkAliasOptionModule aliasPath actualPath) # simplify setting home options
|
./atuin
|
||||||
|
./bat
|
||||||
|
./bitwarden
|
||||||
|
./bluetooth
|
||||||
|
./calibre
|
||||||
|
./comma
|
||||||
|
./dircolors
|
||||||
|
./direnv
|
||||||
|
./discord
|
||||||
|
./documentation
|
||||||
|
./feh
|
||||||
|
./firefox
|
||||||
|
./flameshot
|
||||||
|
./fzf
|
||||||
|
./gammastep
|
||||||
|
./gdb
|
||||||
|
./git
|
||||||
|
./gpg
|
||||||
|
./gtk
|
||||||
|
./htop
|
||||||
|
./jq
|
||||||
|
./keyboard
|
||||||
|
./mail
|
||||||
|
./mpv
|
||||||
|
./nix
|
||||||
|
./nix-index
|
||||||
|
./nixpkgs
|
||||||
|
./nm-applet
|
||||||
|
./packages
|
||||||
|
./pager
|
||||||
|
./power-alert
|
||||||
|
./secrets
|
||||||
|
./ssh
|
||||||
|
./terminal
|
||||||
|
./tmux
|
||||||
|
./udiskie
|
||||||
|
./vim
|
||||||
|
./wget
|
||||||
|
./wm
|
||||||
|
./x
|
||||||
|
./xdg
|
||||||
|
./zathura
|
||||||
|
./zsh
|
||||||
];
|
];
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
# First sane reproducible version
|
||||||
home-manager = {
|
home.stateVersion = "20.09";
|
||||||
# Not a fan of out-of-directory imports, but this is a good exception
|
|
||||||
users.${config.my.user.name} = import ../../home;
|
|
||||||
|
|
||||||
# Nix Flakes compatibility
|
# Who am I?
|
||||||
useGlobalPkgs = true;
|
home.username = "ambroisie";
|
||||||
useUserPackages = true;
|
|
||||||
|
|
||||||
# Forward inputs to home-manager configuration
|
# Start services automatically
|
||||||
extraSpecialArgs = {
|
systemd.user.startServices = "sd-switch";
|
||||||
inherit inputs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
57
modules/home/direnv/lib/android.sh
Normal file
57
modules/home/direnv/lib/android.sh
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#shellcheck shell=bash
|
||||||
|
|
||||||
|
# shellcheck disable=2155
|
||||||
|
use_android() {
|
||||||
|
if [ -z "$ANDROID_HOME" ]; then
|
||||||
|
log_error "use_android: 'ANDROID_HOME' is not defined"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
_use_android_find_latest() {
|
||||||
|
local path="$1"
|
||||||
|
local version
|
||||||
|
|
||||||
|
version="$(semver_search "$path" "" "")"
|
||||||
|
if [ -z "$version" ]; then
|
||||||
|
log_error "use_android: did not find any version at '$path'"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '%s' "$version"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Default to the latest version found
|
||||||
|
local ndk_version="$(_use_android_find_latest "$ANDROID_HOME/ndk" || return 1)"
|
||||||
|
local build_tools_version="$(_use_android_find_latest "$ANDROID_HOME/build-tools" || return 1)"
|
||||||
|
|
||||||
|
unset -f _use_android_find_latest
|
||||||
|
|
||||||
|
# Allow changing the default version through a command line switch
|
||||||
|
while true; do
|
||||||
|
case "$1" in
|
||||||
|
-b|--build-tools)
|
||||||
|
build_tools_version="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-n|--ndk)
|
||||||
|
ndk_version="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$ndk_version"
|
||||||
|
export ANDROID_ROOT="$ANDROID_HOME"
|
||||||
|
export ANDROID_SDK_ROOT="$ANDROID_HOME"
|
||||||
|
export ANDROID_NDK_ROOT="$ANDROID_NDK_HOME"
|
||||||
|
|
||||||
|
PATH_add "$ANDROID_NDK_HOME"
|
||||||
|
PATH_add "$ANDROID_HOME/build-tools/$build_tools_version"
|
||||||
|
}
|
69
modules/home/direnv/lib/nix.sh
Normal file
69
modules/home/direnv/lib/nix.sh
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#shellcheck shell=bash
|
||||||
|
|
||||||
|
use_pkgs() {
|
||||||
|
if ! has nix; then
|
||||||
|
# shellcheck disable=2016
|
||||||
|
log_error 'use_pkgs: `nix` is not in PATH'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use user-provided default value, or fallback to nixpkgs
|
||||||
|
local DEFAULT_FLAKE="${DIRENV_DEFAULT_FLAKE:-nixpkgs}"
|
||||||
|
# Additional args that should be forwarded to `nix`
|
||||||
|
local args=()
|
||||||
|
|
||||||
|
# Allow changing the default flake through a command line switch
|
||||||
|
while true; do
|
||||||
|
case "$1" in
|
||||||
|
-b|--broken)
|
||||||
|
args+=(--impure)
|
||||||
|
export NIXPKGS_ALLOW_BROKEN=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-f|--flake)
|
||||||
|
DEFAULT_FLAKE="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-i|--impure)
|
||||||
|
args+=(--impure)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-s|--insecure)
|
||||||
|
args+=(--impure)
|
||||||
|
export NIXPKGS_ALLOW_INSECURE=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-u|--unfree)
|
||||||
|
args+=(--impure)
|
||||||
|
export NIXPKGS_ALLOW_UNFREE=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Allow specifying a full installable, or just a package name and use the default flake
|
||||||
|
local packages=()
|
||||||
|
for pkg; do
|
||||||
|
if [[ $pkg =~ .*#.* ]]; then
|
||||||
|
packages+=("$pkg")
|
||||||
|
else
|
||||||
|
packages+=("$DEFAULT_FLAKE#$pkg")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# shellcheck disable=2154
|
||||||
|
direnv_load nix shell "${args[@]}" "${packages[@]}" --command "$direnv" dump
|
||||||
|
|
||||||
|
# Clean-up after ourselves (assumes the user does not set them before us)
|
||||||
|
unset NIXPKGS_ALLOW_BROKEN
|
||||||
|
unset NIXPKGS_ALLOW_INSECURE
|
||||||
|
unset NIXPKGS_ALLOW_UNFREE
|
||||||
|
}
|
|
@ -33,13 +33,10 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
package = pkgs.firefox.override {
|
package = pkgs.firefox.override {
|
||||||
cfg = {
|
nativeMessagingHosts = ([ ]
|
||||||
enableTridactylNative = cfg.tridactyl.enable;
|
++ lib.optional cfg.tridactyl.enable pkgs.tridactyl-native
|
||||||
};
|
|
||||||
|
|
||||||
extraNativeMessagingHosts = with pkgs; ([ ]
|
|
||||||
# Watch videos using mpv
|
# Watch videos using mpv
|
||||||
++ lib.optional cfg.ff2mpv.enable ambroisie.ff2mpv-go
|
++ lib.optional cfg.ff2mpv.enable pkgs.ff2mpv-go
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -57,8 +54,8 @@ in
|
||||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false; # Disable pocket
|
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false; # Disable pocket
|
||||||
"extensions.pocket.enabled" = false; # Disable pocket
|
"extensions.pocket.enabled" = false; # Disable pocket
|
||||||
"media.eme.enabled" = true; # Enable DRM
|
"media.eme.enabled" = true; # Enable DRM
|
||||||
"media.gmp-widevinecdm.visible" = true; # Enable DRM
|
|
||||||
"media.gmp-widevinecdm.enabled" = true; # Enable DRM
|
"media.gmp-widevinecdm.enabled" = true; # Enable DRM
|
||||||
|
"media.gmp-widevinecdm.visible" = true; # Enable DRM
|
||||||
"signon.autofillForms" = false; # Disable built-in form-filling
|
"signon.autofillForms" = false; # Disable built-in form-filling
|
||||||
"signon.rememberSignons" = false; # Disable built-in password manager
|
"signon.rememberSignons" = false; # Disable built-in password manager
|
||||||
"ui.systemUsesDarkTheme" = true; # Dark mode
|
"ui.systemUsesDarkTheme" = true; # Dark mode
|
|
@ -22,8 +22,8 @@ bind ;c hint -Jc [class*="expand"],[class*="togg"],[class="comment_folder"]
|
||||||
bindurl reddit.com gu urlparent 3
|
bindurl reddit.com gu urlparent 3
|
||||||
|
|
||||||
" Only hint search results on Google
|
" Only hint search results on Google
|
||||||
bindurl www.google.com f hint -Jc #search div:not(.action-menu) > a
|
bindurl www.google.com f hint -Jc #search a
|
||||||
bindurl www.google.com F hint -Jbc #search div:not(.action-menu) > a
|
bindurl www.google.com F hint -Jbc #search a
|
||||||
|
|
||||||
" Only hint search results on DuckDuckGo
|
" Only hint search results on DuckDuckGo
|
||||||
bindurl ^https://duckduckgo.com f hint -Jc [data-testid="result-title-a"]
|
bindurl ^https://duckduckgo.com f hint -Jc [data-testid="result-title-a"]
|
||||||
|
@ -69,8 +69,6 @@ unbind <C-f>
|
||||||
" Redirections {{{
|
" Redirections {{{
|
||||||
" Always redirect Reddit to the old site
|
" Always redirect Reddit to the old site
|
||||||
autocmd DocStart ^http(s?)://www.reddit.com js tri.excmds.urlmodify("-t", "www", "old")
|
autocmd DocStart ^http(s?)://www.reddit.com js tri.excmds.urlmodify("-t", "www", "old")
|
||||||
" Use a better Twitter front-end
|
|
||||||
autocmd DocStart ^http(s?)://twitter.com js tri.excmds.urlmodify("-t", "twitter.com", "nitter.net")
|
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" Disabled websites {{{
|
" Disabled websites {{{
|
|
@ -20,19 +20,26 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||||
(lib.mkIf cfg.enable {
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gdb
|
gdb
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.configFile."gdb/gdbinit".source = ./gdbinit;
|
xdg = {
|
||||||
})
|
configFile."gdb/gdbinit".source = ./gdbinit;
|
||||||
|
dataFile. "gdb/.keep".text = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
GDBHISTFILE = "${config.xdg.dataHome}/gdb/gdb_history";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
(lib.mkIf cfg.rr.enable {
|
(lib.mkIf cfg.rr.enable {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
cfg.rr.package
|
cfg.rr.package
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
];
|
]);
|
||||||
}
|
}
|
|
@ -7,6 +7,9 @@ in
|
||||||
{
|
{
|
||||||
options.my.home.git = with lib; {
|
options.my.home.git = with lib; {
|
||||||
enable = my.mkDisableOption "git configuration";
|
enable = my.mkDisableOption "git configuration";
|
||||||
|
|
||||||
|
# I want the full experience by default
|
||||||
|
package = mkPackageOption pkgs "git" { default = [ "gitFull" ]; };
|
||||||
};
|
};
|
||||||
|
|
||||||
config.home.packages = with pkgs; lib.mkIf cfg.enable [
|
config.home.packages = with pkgs; lib.mkIf cfg.enable [
|
||||||
|
@ -22,8 +25,7 @@ in
|
||||||
userEmail = mkMailAddress "bruno" "belanyi.fr";
|
userEmail = mkMailAddress "bruno" "belanyi.fr";
|
||||||
userName = "Bruno BELANYI";
|
userName = "Bruno BELANYI";
|
||||||
|
|
||||||
# I want the full experience
|
inherit (cfg) package;
|
||||||
package = pkgs.gitFull;
|
|
||||||
|
|
||||||
aliases = {
|
aliases = {
|
||||||
git = "!git";
|
git = "!git";
|
||||||
|
@ -146,6 +148,10 @@ in
|
||||||
autoStash = true;
|
autoStash = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
rerere = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
url = {
|
url = {
|
||||||
"git@git.belanyi.fr:" = {
|
"git@git.belanyi.fr:" = {
|
||||||
insteadOf = "https://git.belanyi.fr/";
|
insteadOf = "https://git.belanyi.fr/";
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.my.home.gpg;
|
cfg = config.my.home.gpg;
|
||||||
in
|
in
|
||||||
|
@ -6,12 +6,7 @@ in
|
||||||
options.my.home.gpg = with lib; {
|
options.my.home.gpg = with lib; {
|
||||||
enable = my.mkDisableOption "gpg configuration";
|
enable = my.mkDisableOption "gpg configuration";
|
||||||
|
|
||||||
pinentry = mkOption {
|
pinentry = mkPackageOption pkgs "pinentry" { default = [ "pinentry-tty" ]; };
|
||||||
type = types.str;
|
|
||||||
default = "tty";
|
|
||||||
example = "gtk2";
|
|
||||||
description = "Which pinentry interface to use";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
@ -22,7 +17,7 @@ in
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableSshSupport = true; # One agent to rule them all
|
enableSshSupport = true; # One agent to rule them all
|
||||||
pinentryFlavor = cfg.pinentry;
|
pinentryPackage = cfg.pinentry;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
allow-loopback-pinentry
|
allow-loopback-pinentry
|
||||||
'';
|
'';
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue