Compare commits
365 commits
before-nix
...
main
Author | SHA1 | Date | |
---|---|---|---|
4b871d332e | |||
34878a47c9 | |||
adeb41bd5b | |||
c3dc7d71c8 | |||
d204c9981a | |||
ef65f85a78 | |||
e7278f9071 | |||
61c7306237 | |||
8159826f0a | |||
aeed0327a2 | |||
471bd8ca54 | |||
586ed07ff0 | |||
0495a96ef0 | |||
9ed2ad3390 | |||
9dae5ede60 | |||
ef33a15eeb | |||
428453604f | |||
31387f282f | |||
f8d3f69001 | |||
0141ca45f0 | |||
6b1b1dddb9 | |||
f5355e7ec6 | |||
ebec70a7dc | |||
7d72d6095f | |||
![]() |
cb69792f24 | ||
c1845fe347 | |||
71b2652459 | |||
![]() |
c13a5d5029 | ||
7253c69e34 | |||
3283ed7a52 | |||
38d389eb9b | |||
f695a1f905 | |||
34e129306e | |||
f28d640795 | |||
017669069e | |||
1a1dec2a89 | |||
75ebf874f0 | |||
1936fadea5 | |||
7077dae656 | |||
7e0b650175 | |||
c79e19efe5 | |||
9d8cacf2e3 | |||
e815cdd434 | |||
4b27415d2a | |||
a4e207ed74 | |||
fcfdc8a580 | |||
21d9ca8737 | |||
b44bbef3e2 | |||
665525fb9e | |||
a4b5039da2 | |||
098d9cf8d9 | |||
ae0a1f82c9 | |||
ccac9e3fd5 | |||
![]() |
e3da2f4ab6 | ||
da2484b5ca | |||
8ad59444c7 | |||
ce005be887 | |||
43df5bcd08 | |||
37c36112e3 | |||
22ed68a46e | |||
![]() |
1f73cdeb60 | ||
40d63d1323 | |||
6028198c72 | |||
d0b4f8cdf5 | |||
![]() |
ec72053b8c | ||
1695d02b44 | |||
bcf3da42cb | |||
d735653a6f | |||
91ebd1d736 | |||
![]() |
33fda06a6f | ||
9375d5d6bf | |||
79b9fbf767 | |||
11a0e9f8c8 | |||
d1eaa83712 | |||
2d488eaa7a | |||
![]() |
5e1ef25879 | ||
936e2b5d31 | |||
8acc393fa0 | |||
79ebdaeba9 | |||
a054ca7ded | |||
bafbce7ac1 | |||
d7a9b529e3 | |||
94ec854383 | |||
8466ffcfb7 | |||
77b8ce89c8 | |||
88e8de8c30 | |||
2ef0d0015f | |||
1ac3cbc932 | |||
703bf836de | |||
a0575bdb2a | |||
403a93f951 | |||
e31e2d0048 | |||
54b49c07bb | |||
3fc67873dd | |||
e2bfa94073 | |||
02776833b4 | |||
94c349b69c | |||
f98df5ff40 | |||
7cfaea5e97 | |||
671dcfe5c2 | |||
ad1a2513a7 | |||
f970046ace | |||
8700cf0c71 | |||
61804ebc6f | |||
![]() |
03a750ca32 | ||
68f47db84e | |||
be77d86fa2 | |||
c9b82b99fe | |||
23a1745906 | |||
12adda4be4 | |||
8505535291 | |||
b9508d734f | |||
6b06d8c1dd | |||
656147c9dd | |||
c1b4c27f74 | |||
170806728c | |||
9fb33cbfac | |||
![]() |
9cb86e3fae | ||
382c453c85 | |||
![]() |
08d0d3a2d7 | ||
546341fbc9 | |||
8d08b321b3 | |||
fcc65505d0 | |||
426edf6c84 | |||
33e72c839a | |||
20455518b8 | |||
d241f687b4 | |||
87895214ba | |||
22b01f0a9b | |||
![]() |
15fe868a0c | ||
0beeb10fb0 | |||
d811cf26f5 | |||
8ddfceabc2 | |||
c75ea7c198 | |||
00b2502936 | |||
3cad85bcdf | |||
![]() |
89e7e6bd07 | ||
df4a7bf521 | |||
deae2b1055 | |||
69014b86c6 | |||
303af7a112 | |||
0ff9b934d3 | |||
2cfb196c9c | |||
865c60d557 | |||
3bcf37f394 | |||
a2e3cc96fb | |||
19359b1805 | |||
0f145a892d | |||
bf5264d963 | |||
ffbfc56d07 | |||
4c1ef1c01d | |||
3c798cba51 | |||
c437a4f892 | |||
fe5c8259c8 | |||
7f451136fc | |||
a9b0c5c2b0 | |||
b57b037e69 | |||
d0f82c028e | |||
3e7bf2721f | |||
f48b81ecea | |||
d5033260c9 | |||
f8489d5c72 | |||
a218f5623c | |||
01cc01069b | |||
60d1769903 | |||
9a86dacf5e | |||
![]() |
1c3885196d | ||
99484c6194 | |||
4d470acfad | |||
d818f3a2d7 | |||
5131641023 | |||
4ac31540af | |||
dbf5bde36b | |||
4eead1485f | |||
88fa3eb0fd | |||
48b88ff3ca | |||
491aeb0c7e | |||
451a624b76 | |||
556de5e482 | |||
cff83d9373 | |||
c36d1aeaa3 | |||
c3fa0ce6ce | |||
7cc7808154 | |||
5b00484567 | |||
3a6a2f0bcc | |||
aac84ce5b5 | |||
4271993f2f | |||
f2d2dc0a2b | |||
be98bcad26 | |||
96b431de55 | |||
e86ee0fce1 | |||
487e116bac | |||
8d7d6115e3 | |||
cff6bf0167 | |||
cbd1f99bc7 | |||
2fd69f6266 | |||
8ca7b4c806 | |||
679a090012 | |||
67609c4086 | |||
9dbf58c1b7 | |||
d19c5e6bcd | |||
1be1e2dd8d | |||
9cc208d333 | |||
fa0bad904c | |||
6c1b494e82 | |||
32e28379e2 | |||
988dac6413 | |||
96b467b7ed | |||
ccbe21a5c4 | |||
ce3270b773 | |||
d31dcb54b6 | |||
1265131377 | |||
![]() |
9568e39d2c | ||
603a310d68 | |||
ce1fa163fd | |||
ad516fd7e0 | |||
37673680cd | |||
6728f32ffc | |||
9eca4f3e7b | |||
6a12ea4b0e | |||
a3e4cd0e13 | |||
1b360709f8 | |||
c77d7e4e55 | |||
eb516819fa | |||
64b158ed2a | |||
278b9eaea1 | |||
0259ea44f0 | |||
e111506428 | |||
8947c4abd2 | |||
bf8e3628d0 | |||
9bdb9f5977 | |||
7a1b7d2e8a | |||
2a859293a9 | |||
df5834fcaf | |||
d305535b01 | |||
d9cd7821a1 | |||
374e5680e2 | |||
59403e4660 | |||
![]() |
d34e78f8ba | ||
cd41331d21 | |||
![]() |
61eeb52438 | ||
e72b417812 | |||
c832fa2958 | |||
50b6899893 | |||
d1a58fec56 | |||
ab5ae74dda | |||
198c2e9d59 | |||
ca1160b317 | |||
21e54a64ce | |||
2870a256da | |||
722a5814fa | |||
e3caa91477 | |||
7d4196e9fd | |||
caeb674cbb | |||
0cdca7d5a1 | |||
777e9a6a4c | |||
a9e3ec7ada | |||
e24f8f8f0a | |||
d4e5faf6c4 | |||
a620888277 | |||
19dbcc89f4 | |||
d10157725f | |||
21bbb4a32e | |||
adfe90c99b | |||
559d5239c5 | |||
81a939e897 | |||
839779236c | |||
2bd14ac1a8 | |||
3c76e2edea | |||
263d8e7cd3 | |||
e5ae3a4be7 | |||
c676972d0b | |||
1ba47150d1 | |||
6a87e455bd | |||
b32493780d | |||
5341b761ad | |||
7780eca7a9 | |||
1574605360 | |||
dfebe131a6 | |||
0b437adccc | |||
acb5cf654c | |||
4f4e959c07 | |||
52821346ba | |||
45433358ff | |||
34cb9db3d4 | |||
b66a493ed9 | |||
7b3ab11048 | |||
b69bc249bc | |||
27b66a9ff0 | |||
72decc18fe | |||
d18476da73 | |||
5227e82c15 | |||
93566f658c | |||
26072b5cff | |||
f02ace1040 | |||
c134aaeb1b | |||
17146923b4 | |||
099bef6fa9 | |||
a93f2ecc28 | |||
288bc80f1e | |||
ff4d3cd026 | |||
4e96379717 | |||
2c66524d18 | |||
533b8db65f | |||
8b37a1fa19 | |||
1e088c5289 | |||
fc8bdf3bce | |||
8732ff783d | |||
25843c658d | |||
776ace468b | |||
d6569a1a8b | |||
87e85adc8a | |||
aba3a5f95f | |||
fa27d1c73a | |||
0fe65b8d33 | |||
501683c5ab | |||
1fa05e8917 | |||
dde3390c3f | |||
994b2e2b87 | |||
a8c0cf5e63 | |||
acbd5f6c44 | |||
57ee43c455 | |||
2eaf0985ec | |||
9b5529337c | |||
8a9bc42458 | |||
f0f757ea77 | |||
88781bae05 | |||
1ea1cc02bb | |||
d25628813b | |||
b691b02deb | |||
b926a50119 | |||
f54d82ca22 | |||
3e4cc8eca6 | |||
140ff34900 | |||
09d8f6fbcf | |||
6683761177 | |||
9b1b29e200 | |||
7e9e3fe254 | |||
cd1b85d92d | |||
aee90917d9 | |||
003ed12e84 | |||
08d31dbdd4 | |||
2d6166477b | |||
77bce04e39 | |||
9b54b177af | |||
a068e0481f | |||
e65f3e42a5 | |||
e1bd0932f8 | |||
153b6f6f1c | |||
4af6cb9893 | |||
10a0c3d3a0 | |||
233985bc33 | |||
b5b63211dc | |||
22173cc76b | |||
3ca167aa70 | |||
d234775406 | |||
d4334296c9 | |||
8e3eceb110 | |||
9f57068259 | |||
e2b435efb1 | |||
4b90a9d63f | |||
7c929002a9 | |||
36203f79f3 | |||
ecd2869bf1 | |||
ecb2a05d60 |
456 changed files with 5505 additions and 5754 deletions
90
.forgejo/workflows/update-inputs.yml
Normal file
90
.forgejo/workflows/update-inputs.yml
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
name: update-inputs
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 6 * * 2,5" # Tue & Fri
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-flake-lock:
|
||||||
|
runs-on: nixos
|
||||||
|
|
||||||
|
env:
|
||||||
|
BASE_BRANCH: main
|
||||||
|
BRANCH_PREFIX: flake-lock-update
|
||||||
|
FJ_URL: https://code.oliverdavies.uk
|
||||||
|
GIT_AUTHOR_EMAIL: flake-bot@local
|
||||||
|
GIT_AUTHOR_NAME: flake-bot
|
||||||
|
GIT_COMMITTER_EMAIL: ${{ env.GIT_AUTHOR_EMAIL }}
|
||||||
|
GIT_COMMITTER_NAME: ${{ env.GIT_AUTHOR_NAME }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with: { fetch-depth: 0 }
|
||||||
|
|
||||||
|
- name: Update inputs & commit
|
||||||
|
id: bump
|
||||||
|
run: |
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
BRANCH="${BRANCH_PREFIX}-${GITHUB_RUN_ID}"
|
||||||
|
git switch -c "$BRANCH"
|
||||||
|
|
||||||
|
BEFORE=$(git rev-parse HEAD)
|
||||||
|
|
||||||
|
# Nix updates inputs and commits if needed
|
||||||
|
nix flake update --commit-lock-file
|
||||||
|
|
||||||
|
AFTER=$(git rev-parse HEAD)
|
||||||
|
if [ "$BEFORE" = "$AFTER" ]; then
|
||||||
|
echo "changed=false" >> "$GITHUB_OUTPUT"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── Grab commit info ────────────────────────────────────────────────
|
||||||
|
# Full message
|
||||||
|
COMMIT_RAW=$(git log -1 --pretty=%B)
|
||||||
|
|
||||||
|
# First line is the short summary; we keep lines AFTER the first blank
|
||||||
|
COMMIT_BODY=$(printf '%s\n' "$COMMIT_RAW" \
|
||||||
|
| sed '1,/^$/d' \
|
||||||
|
| sed 's/^• */* /') # nicer Markdown bullet
|
||||||
|
|
||||||
|
# Title becomes first line of the PR
|
||||||
|
COMMIT_TITLE=$(printf '%s\n' "$COMMIT_RAW" | head -n1)
|
||||||
|
|
||||||
|
# JSON-escape the body so \n etc. are valid JSON
|
||||||
|
BODY_JSON=$(printf '%s' "$COMMIT_BODY" | jq -Rs .)
|
||||||
|
|
||||||
|
echo "changed=true" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "branch=$BRANCH" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "title=$COMMIT_TITLE" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "body_json=$BODY_JSON" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
git push -u origin "$BRANCH"
|
||||||
|
|
||||||
|
- name: Open pull-request
|
||||||
|
if: steps.bump.outputs.changed == 'true'
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ secrets.FLAKE_UPDATE_PAT }}
|
||||||
|
BRANCH: ${{ steps.bump.outputs.branch }}
|
||||||
|
TITLE: ${{ steps.bump.outputs.title }}
|
||||||
|
BODY_JSON: ${{ steps.bump.outputs.body_json }}
|
||||||
|
run: |
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
|
||||||
|
OWNER="${GITHUB_REPOSITORY%%/*}"
|
||||||
|
REPO="${GITHUB_REPOSITORY#*/}"
|
||||||
|
|
||||||
|
curl -fSs -X POST "$FJ_URL/api/v1/repos/$OWNER/$REPO/pulls" \
|
||||||
|
-H "Authorization: token $TOKEN" \
|
||||||
|
--json '{
|
||||||
|
"base": "'"$BASE_BRANCH"'",
|
||||||
|
"body": '"$BODY_JSON"',
|
||||||
|
"draft": false,
|
||||||
|
"head": "'"$BRANCH"'",
|
||||||
|
"title": "'"$TITLE"'"
|
||||||
|
}'
|
1
.ignore
Normal file
1
.ignore
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.git/
|
1
.mailmap
1
.mailmap
|
@ -4,3 +4,4 @@ Oliver Davies <oliver@oliverdavies.uk> <oliver.davies@tfw.wales>
|
||||||
Oliver Davies <oliver@oliverdavies.uk> <oliver@microserve.io>
|
Oliver Davies <oliver@oliverdavies.uk> <oliver@microserve.io>
|
||||||
Oliver Davies <oliver@oliverdavies.uk> <oliver@oliverdavies.dev>
|
Oliver Davies <oliver@oliverdavies.uk> <oliver@oliverdavies.dev>
|
||||||
Oliver Davies <oliver@oliverdavies.uk> <opdavies@gmail.com>
|
Oliver Davies <oliver@oliverdavies.uk> <opdavies@gmail.com>
|
||||||
|
Oliver Davies <oliver@oliverdavies.uk> <opdavies@noreply.code.oliverdavies.uk>
|
||||||
|
|
3
README.md
Normal file
3
README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# nix-config
|
||||||
|
|
||||||
|
Originally my `dotfiles` repository, this repository contains my NixOS and Home Manager-based configurations for my personal laptop (`t480`) and home server/homelab (`nixedo`).
|
515
flake.lock
generated
515
flake.lock
generated
|
@ -4,15 +4,17 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747575206,
|
"lastModified": 1754433428,
|
||||||
"narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=",
|
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "4835b1dc898959d8547a871ef484930675cb47f1",
|
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -21,6 +23,38 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"bop-scripts": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756931648,
|
||||||
|
"narHash": "sha256-bfAmJ1IY0B6eNbJvoWkUMQ7Ya4ShrIoVSdQrnE/cn40=",
|
||||||
|
"owner": "breadonpenguins",
|
||||||
|
"repo": "scripts",
|
||||||
|
"rev": "d04bcbe63176e623e1ce8edc4c3840c506a28d96",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "breadonpenguins",
|
||||||
|
"repo": "scripts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"conf-vim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1507549264,
|
||||||
|
"narHash": "sha256-AjiTJsoim0BAnyfqk1IQzNsa6jhFM2+A66E7q9sJqz0=",
|
||||||
|
"owner": "tjdevries",
|
||||||
|
"repo": "conf.vim",
|
||||||
|
"rev": "a716df0fd5d7ba558c07dac2e07f05d5eba11afb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tjdevries",
|
||||||
|
"repo": "conf.vim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"darwin": {
|
"darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -43,6 +77,27 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"devshell": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"git-repo-updater",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1741473158,
|
||||||
|
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"disko": {
|
"disko": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -50,11 +105,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748225455,
|
"lastModified": 1756733629,
|
||||||
"narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=",
|
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba",
|
"rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -63,23 +118,41 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"edit-alternate-vim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1635180789,
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"narHash": "sha256-mEKnqYAhgrdxPRoKf4S4yYecdFIHGg8bDxpqPuC1+S4=",
|
||||||
"owner": "edolstra",
|
"owner": "tjdevries",
|
||||||
"repo": "flake-compat",
|
"repo": "edit_alternate.vim",
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
"rev": "ef3019115d9bb7ffd691d2859eda213dd99e0b0a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "edolstra",
|
"owner": "tjdevries",
|
||||||
"repo": "flake-compat",
|
"repo": "edit_alternate.vim",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756770412,
|
||||||
|
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nur",
|
"nur",
|
||||||
|
@ -100,6 +173,51 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"git-repo-updater": {
|
||||||
|
"inputs": {
|
||||||
|
"devshell": "devshell",
|
||||||
|
"flake-parts": [
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"import-tree": [
|
||||||
|
"import-tree"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757018109,
|
||||||
|
"narHash": "sha256-KfRzBPOOM5cf8mFVeWjV7TGa3p+ul/flxnUdwGW4Sds=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "63235768261976efe0d9c825e69c44fff8c80e5d",
|
||||||
|
"revCount": 1,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://code.oliverdavies.uk/opdavies/git-repo-updater"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://code.oliverdavies.uk/opdavies/git-repo-updater"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -128,11 +246,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748737919,
|
"lastModified": 1756991914,
|
||||||
"narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=",
|
"narHash": "sha256-4ve/3ah5H/SpL2m3qmZ9GU+VinQYp2MN1G7GamimTds=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "5675a9686851d9626560052a032c4e14e533c1fa",
|
"rev": "b08f8737776f10920c330657bee8b95834b7a70f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -142,13 +260,76 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"import-tree": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752730890,
|
||||||
|
"narHash": "sha256-GES8fapSLGz36MMPRVNkSUWXUTtqvGQNXHjRmRLfJUY=",
|
||||||
|
"owner": "vic",
|
||||||
|
"repo": "import-tree",
|
||||||
|
"rev": "6ebb8cb87987b20264c09296166543fd3761d274",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vic",
|
||||||
|
"repo": "import-tree",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ixx": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"nixvim",
|
||||||
|
"nuschtosSearch",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nuschtosSearch",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754860581,
|
||||||
|
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "ixx",
|
||||||
|
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"ref": "v0.1.1",
|
||||||
|
"repo": "ixx",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-index-database": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756612744,
|
||||||
|
"narHash": "sha256-/glV6VAq8Va3ghIbmhET3S1dzkbZqicsk5h+FtvwiPE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"rev": "3fe768e1f058961095b4a0d7a2ba15dc9736bdc6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748634340,
|
"lastModified": 1756925795,
|
||||||
"narHash": "sha256-pZH4bqbOd8S+si6UcfjHovWDiWKiIGRNRMpmRWaDIms=",
|
"narHash": "sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "daa628a725ab4948e0e2b795e8fb6f4c3e289a7a",
|
"rev": "ba6fab29768007e9f2657014a6e134637100c57d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -158,49 +339,44 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-wsl": {
|
"nixpkgs": {
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"nixpkgs": "nixpkgs_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746453552,
|
"lastModified": 1756787288,
|
||||||
"narHash": "sha256-r66UGha+7KVHkI7ksrcMjnw/mm9Sg4l5bQlylxHwdGU=",
|
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
|
||||||
"owner": "nix-community",
|
"owner": "nixos",
|
||||||
"repo": "NixOS-WSL",
|
"repo": "nixpkgs",
|
||||||
"rev": "be618645aa0adf461f778500172b6896d5ab2d01",
|
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nixos",
|
||||||
"ref": "main",
|
"ref": "nixos-unstable",
|
||||||
"repo": "NixOS-WSL",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745391562,
|
"lastModified": 1754788789,
|
||||||
"narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=",
|
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7",
|
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"ref": "nixos-unstable",
|
"repo": "nixpkgs.lib",
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748421225,
|
"lastModified": 1751274312,
|
||||||
"narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=",
|
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "78add7b7abb61689e34fc23070a8f55e1d26185b",
|
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -210,66 +386,44 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixvim": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": [
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742937945,
|
"lastModified": 1756946299,
|
||||||
"narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=",
|
"narHash": "sha256-N4PjGA0rittpNZGscKPel+mr/dMcKF73j0yr4rbG3T0=",
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixvim",
|
||||||
"rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7",
|
"rev": "63496f00c681b3e200bd17878a43ec68b7139a66",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"ref": "nixos-24.11",
|
"repo": "nixvim",
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1748693115,
|
|
||||||
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1748693115,
|
|
||||||
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts_2",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": [
|
||||||
"treefmt-nix": "treefmt-nix"
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748782935,
|
"lastModified": 1757050467,
|
||||||
"narHash": "sha256-wjo1BhHoBFzdtj92LrAonR1eJ8j5dt1YhnkPpqaam38=",
|
"narHash": "sha256-Rps0Ga0g/TdY49rR2ZRBsdBYybSzPccEsaI9IvwuE98=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "73385c8de1fac0066f513adc9a7e59d69f2327c2",
|
"rev": "985abf0197c75dd64c24691a7e5e0acf308d7f20",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -278,16 +432,84 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nuschtosSearch": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"ixx": "ixx",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755555503,
|
||||||
|
"narHash": "sha256-WiOO7GUOsJ4/DoMy2IC5InnqRDSo2U11la48vCCIjjY=",
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"rev": "6f3efef888b92e6520f10eae15b86ff537e1d2ea",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
|
"bop-scripts": "bop-scripts",
|
||||||
|
"conf-vim": "conf-vim",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
"edit-alternate-vim": "edit-alternate-vim",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"git-repo-updater": "git-repo-updater",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
|
"import-tree": "import-tree",
|
||||||
|
"nix-index-database": "nix-index-database",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixos-wsl": "nixos-wsl",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs": "nixpkgs_3",
|
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
"nur": "nur"
|
"nixvim": "nixvim",
|
||||||
|
"nur": "nur",
|
||||||
|
"rwxrob-dot": "rwxrob-dot",
|
||||||
|
"standard-vim": "standard-vim",
|
||||||
|
"vim-heritage": "vim-heritage",
|
||||||
|
"vim-textobj-xmlattr": "vim-textobj-xmlattr",
|
||||||
|
"voidrice": "voidrice",
|
||||||
|
"zet": "zet"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rwxrob-dot": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751898094,
|
||||||
|
"narHash": "sha256-kGpHL2l9p/yOtmG+AZvOb0Y5mH1d+Zoh2dd5N3Xjizc=",
|
||||||
|
"owner": "rwxrob",
|
||||||
|
"repo": "dot",
|
||||||
|
"rev": "90794c77061f270078e847af45c376610768c6e2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rwxrob",
|
||||||
|
"repo": "dot",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"standard-vim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1539613748,
|
||||||
|
"narHash": "sha256-9VwkvV1Dv6cE4uDkPp36DozjWJOclDR883yDMYw000E=",
|
||||||
|
"owner": "tjdevries",
|
||||||
|
"repo": "standard.vim",
|
||||||
|
"rev": "b333ef9a9cf6cf66536deda017a542843613fa75",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tjdevries",
|
||||||
|
"repo": "standard.vim",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
@ -305,26 +527,99 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix": {
|
"systems_2": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nur",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733222881,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
"owner": "numtide",
|
"owner": "nix-systems",
|
||||||
"repo": "treefmt-nix",
|
"repo": "default",
|
||||||
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "nix-systems",
|
||||||
"repo": "treefmt-nix",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vim-heritage": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1716350150,
|
||||||
|
"narHash": "sha256-YzqP2+Go8bW3heFyzzcS/91LrMkwjpZ89+ptrjjBKrM=",
|
||||||
|
"owner": "jessarcher",
|
||||||
|
"repo": "vim-heritage",
|
||||||
|
"rev": "574baeb0679681a710adce5110a0d8b2ae1c2637",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "jessarcher",
|
||||||
|
"repo": "vim-heritage",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vim-textobj-xmlattr": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1464940962,
|
||||||
|
"narHash": "sha256-+91FVP95oh00flINdltqx6qJuijYo56tHIh3J098G2Q=",
|
||||||
|
"owner": "whatyouhide",
|
||||||
|
"repo": "vim-textobj-xmlattr",
|
||||||
|
"rev": "694a297f1d75fd527e87da9769f3c6519a87ebb1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "whatyouhide",
|
||||||
|
"repo": "vim-textobj-xmlattr",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"voidrice": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744355318,
|
||||||
|
"narHash": "sha256-9U1Do0w2oT5E6uZxSKoHAzbGbSLQRQlT65KcPGzwhW8=",
|
||||||
|
"owner": "lukesmithxyz",
|
||||||
|
"repo": "voidrice",
|
||||||
|
"rev": "f853f1884a8f0c244765192dc6f5a910a7e2b8e5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lukesmithxyz",
|
||||||
|
"repo": "voidrice",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zet": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1758576585,
|
||||||
|
"narHash": "sha256-hWQE45nFaSN8agYMP8xt5kaUMfBXVj5k9zInZNs/xAI=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "23505f6c31c7cc903e63621b52b5f92eea1facc5",
|
||||||
|
"revCount": 35,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://code.oliverdavies.uk/opdavies/zet"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://code.oliverdavies.uk/opdavies/zet"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
192
flake.nix
192
flake.nix
|
@ -1,124 +1,106 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
agenix.url = "github:ryantm/agenix";
|
agenix = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:ryantm/agenix";
|
||||||
|
};
|
||||||
|
|
||||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
bop-scripts = {
|
||||||
disko.url = "github:nix-community/disko";
|
flake = false;
|
||||||
|
url = "github:breadonpenguins/scripts";
|
||||||
|
};
|
||||||
|
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
conf-vim = {
|
||||||
home-manager.url = "github:nix-community/home-manager/master";
|
flake = false;
|
||||||
|
url = "github:tjdevries/conf.vim";
|
||||||
|
};
|
||||||
|
|
||||||
|
disko = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:nix-community/disko";
|
||||||
|
};
|
||||||
|
|
||||||
|
edit-alternate-vim = {
|
||||||
|
flake = false;
|
||||||
|
url = "github:tjdevries/edit_alternate.vim";
|
||||||
|
};
|
||||||
|
|
||||||
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
|
||||||
|
git-repo-updater = {
|
||||||
|
inputs.flake-parts.follows = "flake-parts";
|
||||||
|
inputs.import-tree.follows = "import-tree";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "git+https://code.oliverdavies.uk/opdavies/git-repo-updater";
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:nix-community/home-manager/master";
|
||||||
|
};
|
||||||
|
|
||||||
|
import-tree.url = "github:vic/import-tree";
|
||||||
|
|
||||||
|
nix-index-database = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:nix-community/nix-index-database";
|
||||||
|
};
|
||||||
|
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
|
||||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
nixvim = {
|
||||||
|
inputs.flake-parts.follows = "flake-parts";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
};
|
||||||
|
|
||||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
|
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||||
|
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
nur.url = "github:nix-community/NUR";
|
nur = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:nix-community/NUR";
|
||||||
|
};
|
||||||
|
|
||||||
|
rwxrob-dot = {
|
||||||
|
flake = false;
|
||||||
|
url = "github:rwxrob/dot";
|
||||||
|
};
|
||||||
|
|
||||||
|
standard-vim = {
|
||||||
|
flake = false;
|
||||||
|
url = "github:tjdevries/standard.vim";
|
||||||
|
};
|
||||||
|
|
||||||
|
vim-heritage = {
|
||||||
|
flake = false;
|
||||||
|
url = "github:jessarcher/vim-heritage";
|
||||||
|
};
|
||||||
|
|
||||||
|
vim-textobj-xmlattr = {
|
||||||
|
flake = false;
|
||||||
|
url = "github:whatyouhide/vim-textobj-xmlattr";
|
||||||
|
};
|
||||||
|
|
||||||
|
voidrice = {
|
||||||
|
flake = false;
|
||||||
|
url = "github:lukesmithxyz/voidrice";
|
||||||
|
};
|
||||||
|
|
||||||
|
zet = {
|
||||||
|
flake = false;
|
||||||
|
url = "git+https://code.oliverdavies.uk/opdavies/zet";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{ nixpkgs, self, ... }@inputs:
|
inputs@{ flake-parts, ... }:
|
||||||
let
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
inherit (self) outputs;
|
flake = {
|
||||||
|
|
||||||
system = "x86_64-linux";
|
|
||||||
pkgs = import nixpkgs { inherit system; };
|
|
||||||
|
|
||||||
username = "opdavies";
|
|
||||||
|
|
||||||
specialArgs = {
|
|
||||||
inherit
|
|
||||||
inputs
|
|
||||||
outputs
|
|
||||||
self
|
|
||||||
system
|
|
||||||
username
|
|
||||||
;
|
|
||||||
};
|
|
||||||
|
|
||||||
inherit (pkgs) mkShell;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
devShells.${system}.default = pkgs.mkShell {
|
|
||||||
packages = with pkgs; [
|
|
||||||
just
|
|
||||||
lua-language-server
|
|
||||||
lua54Packages.luacheck
|
|
||||||
nixd
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
packages.${system} = {
|
|
||||||
default = mkShell { buildInputs = with pkgs; [ just ]; };
|
|
||||||
};
|
|
||||||
|
|
||||||
formatter.${system} = pkgs.nixfmt-rfc-style;
|
|
||||||
|
|
||||||
overlays = import ./overlays { inherit inputs; };
|
overlays = import ./overlays { inherit inputs; };
|
||||||
|
|
||||||
homeManagerModules.default = import ./modules/home-manager;
|
|
||||||
|
|
||||||
nixosModules.default = import ./modules/nixos;
|
|
||||||
|
|
||||||
nixosConfigurations = {
|
|
||||||
lemp11 = nixpkgs.lib.nixosSystem {
|
|
||||||
modules = [
|
|
||||||
./hosts/lemp11/configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
specialArgs = specialArgs // {
|
|
||||||
hostname = "lemp11";
|
|
||||||
stateVersion = "22.11";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nixedo = nixpkgs.lib.nixosSystem {
|
imports = [ (inputs.import-tree ./modules) ];
|
||||||
modules = [
|
|
||||||
./hosts/nixedo/configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
specialArgs = specialArgs // {
|
|
||||||
hostname = "nixedo";
|
|
||||||
stateVersion = "24.11";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
t480 = nixpkgs.lib.nixosSystem {
|
|
||||||
modules = [
|
|
||||||
./hosts/t480/configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
specialArgs = specialArgs // {
|
|
||||||
hostname = "t480";
|
|
||||||
stateVersion = "22.11";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
t490 = nixpkgs.lib.nixosSystem {
|
|
||||||
modules = [
|
|
||||||
./hosts/t490/configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
specialArgs = specialArgs // {
|
|
||||||
hostname = "t490";
|
|
||||||
stateVersion = "22.11";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
PW05CH3L = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
|
|
||||||
modules = [
|
|
||||||
./hosts/PW05CH3L/configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
specialArgs = specialArgs // {
|
|
||||||
hostname = "PW05CH3L";
|
|
||||||
stateVersion = "22.11";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
13
home-manager/opdavies/nixedo.nix
Normal file
13
home-manager/opdavies/nixedo.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./nixedo/email-filters.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
import-to-jellyfin
|
||||||
|
vic
|
||||||
|
yt-dlp
|
||||||
|
];
|
||||||
|
}
|
|
@ -12,7 +12,7 @@ in
|
||||||
{
|
{
|
||||||
options.nixedo.${name} = {
|
options.nixedo.${name} = {
|
||||||
configFile = lib.mkOption {
|
configFile = lib.mkOption {
|
||||||
default = "${config.home.homeDirectory}/Code/${name}/config.lua";
|
default = "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/${name}/config.lua";
|
||||||
internal = true;
|
internal = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
37
home-manager/opdavies/t480.nix
Normal file
37
home-manager/opdavies/t480.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
zsh.shellAliases =
|
||||||
|
let
|
||||||
|
inherit (config.xdg.userDirs) documents;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
"wiki-push" =
|
||||||
|
"rsync -avzP ${documents}/wiki nixedo.oliverdavies.uk:${documents} --delete --delete-after";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
backup-websites
|
||||||
|
build-glove80
|
||||||
|
count-tags
|
||||||
|
create-script
|
||||||
|
get-tags
|
||||||
|
qrencode
|
||||||
|
mounter
|
||||||
|
move-firefox-screenshots
|
||||||
|
set-background
|
||||||
|
tag-release
|
||||||
|
time-until
|
||||||
|
timer
|
||||||
|
unmounter
|
||||||
|
update-all-git-repos
|
||||||
|
vic
|
||||||
|
];
|
||||||
|
|
||||||
|
xdg.configFile."pam-gnupg".text = ''
|
||||||
|
098EE055DAD2B9CB68154C6759DD38292D2273B6
|
||||||
|
1E21B58D69FFEFAD077F152A50FEA938A3413F50
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
{ outputs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
outputs.homeManagerModules.default
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
{ config, options, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [ ../common ];
|
|
||||||
|
|
||||||
cli = {
|
|
||||||
bookmarkthis.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
fzf.enable = true;
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
user.emailAddress = "oliver.davies@tfw.wales";
|
|
||||||
};
|
|
||||||
|
|
||||||
node.enable = true;
|
|
||||||
notes.enable = true;
|
|
||||||
ranger.enable = true;
|
|
||||||
starship.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
|
|
||||||
tmux-sessionizer = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
directories =
|
|
||||||
let
|
|
||||||
inherit (config.xdg.userDirs) documents extraConfig;
|
|
||||||
|
|
||||||
repos = extraConfig.XDG_REPOS_DIR;
|
|
||||||
in
|
|
||||||
options.cli.tmux-sessionizer.directories.default
|
|
||||||
++ [
|
|
||||||
repos
|
|
||||||
"${repos}/*"
|
|
||||||
documents
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
todos.enable = true;
|
|
||||||
zsh.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
coding = {
|
|
||||||
neovim.enable = true;
|
|
||||||
phpactor.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."pam-gnupg".text = ''
|
|
||||||
C0D940F9A390F286FCAAE8439D501171E39D0A47
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
imports = [ ../common ];
|
|
||||||
|
|
||||||
cli.zsh.enable = true;
|
|
||||||
|
|
||||||
desktop.media = {
|
|
||||||
handbrake.enable = true;
|
|
||||||
makemkv.enable = true;
|
|
||||||
mpv.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
../common
|
|
||||||
|
|
||||||
./nixedo/modules/email-filters.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
cli = {
|
|
||||||
fzf.enable = true;
|
|
||||||
starship.enable = true;
|
|
||||||
zsh.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,113 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [ ../common ];
|
|
||||||
|
|
||||||
cli = {
|
|
||||||
bluetuith.enable = true;
|
|
||||||
bookmarkthis.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
fzf.enable = true;
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
user.emailAddress = "oliver@oliverdavies.uk";
|
|
||||||
};
|
|
||||||
|
|
||||||
node.enable = true;
|
|
||||||
|
|
||||||
notes = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
directory = "${config.xdg.userDirs.documents}/wiki/notes";
|
|
||||||
};
|
|
||||||
|
|
||||||
ranger.enable = true;
|
|
||||||
sxhkd.enable = true;
|
|
||||||
starship.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
|
|
||||||
tmux-sessionizer = {
|
|
||||||
enable = true;
|
|
||||||
enableDmenuIntegration = true;
|
|
||||||
|
|
||||||
directories =
|
|
||||||
let
|
|
||||||
inherit (config.xdg.userDirs) documents extraConfig;
|
|
||||||
|
|
||||||
repos = extraConfig.XDG_REPOS_DIR;
|
|
||||||
in
|
|
||||||
[
|
|
||||||
repos
|
|
||||||
"${repos}/*"
|
|
||||||
documents
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
todos.enable = true;
|
|
||||||
zsh.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
coding = {
|
|
||||||
neovim.enable = true;
|
|
||||||
phpactor.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop = {
|
|
||||||
browsers = {
|
|
||||||
firefox = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
homepageUrl = "https://nixedo.oliverdavies.uk";
|
|
||||||
};
|
|
||||||
|
|
||||||
qutebrowser.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
flameshot.enable = true;
|
|
||||||
gtk.enable = true;
|
|
||||||
|
|
||||||
media = {
|
|
||||||
handbrake.enable = true;
|
|
||||||
makemkv.enable = true;
|
|
||||||
mpv.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
dev-commit = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
repoPaths =
|
|
||||||
let
|
|
||||||
personal = "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/personal";
|
|
||||||
in
|
|
||||||
[
|
|
||||||
"${personal}/email-filters"
|
|
||||||
"${personal}/nix-config"
|
|
||||||
"${personal}/oliverdavies.uk-tome"
|
|
||||||
"${personal}/opentofu-dns"
|
|
||||||
];
|
|
||||||
|
|
||||||
schedule = {
|
|
||||||
enable = true;
|
|
||||||
time = "daily";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
zsh.shellAliases =
|
|
||||||
let
|
|
||||||
inherit (config.xdg.userDirs) documents;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
"wiki-push" =
|
|
||||||
"rsync -avzP ${documents}/wiki nixedo.oliverdavies.uk:${documents} --delete --delete-after";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."pam-gnupg".text = ''
|
|
||||||
098EE055DAD2B9CB68154C6759DD38292D2273B6
|
|
||||||
1E21B58D69FFEFAD077F152A50FEA938A3413F50
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
imports = [ ../common ];
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{ inputs, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.agenix.nixosModules.default
|
|
||||||
inputs.disko.nixosModules.disko
|
|
||||||
inputs.nixos-wsl.nixosModules.default
|
|
||||||
|
|
||||||
../common
|
|
||||||
|
|
||||||
../../users/opdavies.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
cli = {
|
|
||||||
docker.enable = true;
|
|
||||||
|
|
||||||
password-store = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
extensions = with pkgs.passExtensions; [
|
|
||||||
pass-otp
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
wsl = {
|
|
||||||
enable = true;
|
|
||||||
defaultUser = "opdavies";
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.opdavies.home.sessionVariables.WAYLAND_DISPLAY = "";
|
|
||||||
}
|
|
|
@ -15,8 +15,6 @@
|
||||||
./users
|
./users
|
||||||
|
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
|
||||||
outputs.nixosModules.default
|
|
||||||
];
|
];
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
|
@ -64,21 +62,13 @@
|
||||||
users."${username}" = import ./home.nix;
|
users."${username}" = import ./home.nix;
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs.overlays = [
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
|
|
||||||
permittedInsecurePackages = [ "electron-27.3.11" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
overlays = [
|
|
||||||
inputs.nur.overlays.default
|
inputs.nur.overlays.default
|
||||||
|
|
||||||
outputs.overlays.additions
|
outputs.overlays.additions
|
||||||
outputs.overlays.modifications
|
outputs.overlays.modifications
|
||||||
outputs.overlays.stable-packages
|
outputs.overlays.stable-packages
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
nix.extraOptions = ''
|
nix.extraOptions = ''
|
||||||
trusted-users = root ${username}
|
trusted-users = root ${username}
|
||||||
|
|
|
@ -9,8 +9,6 @@ let
|
||||||
pkgs = import inputs.nixpkgs {
|
pkgs = import inputs.nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
|
||||||
config.allowUnfree = true;
|
|
||||||
|
|
||||||
overlays = [
|
overlays = [
|
||||||
outputs.overlays.additions
|
outputs.overlays.additions
|
||||||
outputs.overlays.stable-packages
|
outputs.overlays.stable-packages
|
||||||
|
@ -27,10 +25,6 @@ let
|
||||||
;
|
;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
outputs.homeManagerModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
home.username = "opdavies";
|
home.username = "opdavies";
|
||||||
home.homeDirectory = "/home/${config.home.username}";
|
home.homeDirectory = "/home/${config.home.username}";
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, ... }:
|
{ config, self, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
users.users.opdavies = { };
|
users.users.opdavies = { };
|
||||||
|
|
||||||
home-manager.users.opdavies = import ../../../home/opdavies/${config.networking.hostName}.nix;
|
home-manager.users.opdavies = import "${self}/home-manager/opdavies/${config.networking.hostName}.nix";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
{ inputs, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.agenix.nixosModules.default
|
|
||||||
inputs.nixos-hardware.nixosModules.common-cpu-intel
|
|
||||||
inputs.nixos-hardware.nixosModules.common-gpu-intel
|
|
||||||
inputs.nixos-hardware.nixosModules.common-pc-laptop
|
|
||||||
inputs.nixos-hardware.nixosModules.common-pc-laptop-hdd
|
|
||||||
inputs.nixos-hardware.nixosModules.system76
|
|
||||||
|
|
||||||
../common
|
|
||||||
./hardware-configuration.nix
|
|
||||||
./programs.nix
|
|
||||||
./services.nix
|
|
||||||
|
|
||||||
../../users/opdavies.nix
|
|
||||||
../../users/eric.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
core = {
|
|
||||||
bluetooth.enable = true;
|
|
||||||
zram.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop.media.makemkv.enable = true;
|
|
||||||
|
|
||||||
nixpad.enable = true;
|
|
||||||
|
|
||||||
# Bootloader.
|
|
||||||
boot = {
|
|
||||||
loader = {
|
|
||||||
systemd-boot = {
|
|
||||||
enable = true;
|
|
||||||
configurationLimit = 25;
|
|
||||||
};
|
|
||||||
|
|
||||||
efi = {
|
|
||||||
canTouchEfiVariables = true;
|
|
||||||
efiSysMountPoint = "/boot/efi";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.extraConfig = ''
|
|
||||||
DefaultTimeoutStopSec=10s
|
|
||||||
'';
|
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
security = {
|
|
||||||
polkit.enable = true;
|
|
||||||
rtkit.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.eric.packages = with pkgs; [
|
|
||||||
git
|
|
||||||
vscodium
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
fastfetch
|
|
||||||
htop
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
|
||||||
"xhci_pci"
|
|
||||||
"thunderbolt"
|
|
||||||
"nvme"
|
|
||||||
"usb_storage"
|
|
||||||
"usbhid"
|
|
||||||
"sd_mod"
|
|
||||||
"sdhci_pci"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/e577c869-18a1-4830-9e00-124fcabdab89";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot/efi" = {
|
|
||||||
device = "/dev/disk/by-uuid/48FE-D346";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ { device = "/dev/disk/by-uuid/2dce327b-f18d-4727-a9a2-e79d2b5161f9"; } ];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp0s13f0u1u2u4.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
firefox = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
languagePacks = [ "en-GB" ];
|
|
||||||
preferences = {
|
|
||||||
"intl.accept_languages" = "en-GB, en";
|
|
||||||
"intl.regional_prefs.use_os_locales" = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
services = {
|
|
||||||
auto-cpufreq.enable = true;
|
|
||||||
gvfs.enable = true;
|
|
||||||
openssh.enable = true;
|
|
||||||
power-profiles-daemon.enable = false;
|
|
||||||
thermald.enable = true;
|
|
||||||
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
alsa = {
|
|
||||||
enable = true;
|
|
||||||
support32Bit = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
printing.enable = true;
|
|
||||||
pulseaudio.enable = false;
|
|
||||||
|
|
||||||
xserver = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
xkb = {
|
|
||||||
layout = "gb";
|
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -19,10 +19,6 @@
|
||||||
../../users/opdavies.nix
|
../../users/opdavies.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
core.openssh.enable = true;
|
|
||||||
cli.podman.enable = true;
|
|
||||||
desktop.dconf.enable = true;
|
|
||||||
|
|
||||||
# TODO: why didn't it work when adding this to jitsi.nix?
|
# TODO: why didn't it work when adding this to jitsi.nix?
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
"jitsi-meet-1.0.8043"
|
"jitsi-meet-1.0.8043"
|
||||||
|
@ -31,10 +27,7 @@
|
||||||
services.logind.lidSwitchExternalPower = "ignore";
|
services.logind.lidSwitchExternalPower = "ignore";
|
||||||
|
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
efi = {
|
efi.canTouchEfiVariables = true;
|
||||||
canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,42 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"thunderbolt"
|
||||||
|
"nvme"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/40649879-4ee6-4668-8257-fe81a7773024";
|
device = "/dev/disk/by-uuid/40649879-4ee6-4668-8257-fe81a7773024";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/24B1-88CB";
|
device = "/dev/disk/by-uuid/24B1-88CB";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
|
@ -8,18 +8,14 @@
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
audiobookshelf.enable = true;
|
audiobookshelf.enable = true;
|
||||||
forgejo.enable = true;
|
|
||||||
gitea-actions-runner.enable = true;
|
|
||||||
home-assistant.enable = true;
|
home-assistant.enable = true;
|
||||||
homepage-dashboard.enable = true;
|
homepage-dashboard.enable = true;
|
||||||
immich.enable = true;
|
|
||||||
jellyfin.enable = true;
|
|
||||||
jitsi.enable = true;
|
jitsi.enable = true;
|
||||||
paperless.enable = true;
|
paperless.enable = true;
|
||||||
peertube.enable = true;
|
peertube.enable = true;
|
||||||
tubearchivist.enable = true;
|
tubearchivist.enable = true;
|
||||||
uptime-kuma.enable = true;
|
uptime-kuma.enable = true;
|
||||||
vaultwarden.enable = true;
|
vaultwarden.enable = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
"home"
|
"home"
|
||||||
"jellyfin"
|
"jellyfin"
|
||||||
"luke"
|
"luke"
|
||||||
|
"mealie"
|
||||||
"nixedo"
|
"nixedo"
|
||||||
"paperless"
|
"paperless"
|
||||||
"photos"
|
"photos"
|
||||||
|
@ -39,7 +40,6 @@
|
||||||
"rebuilding-symfony"
|
"rebuilding-symfony"
|
||||||
"tailwindcss-demo"
|
"tailwindcss-demo"
|
||||||
"talking-drupal-tailwindcss"
|
"talking-drupal-tailwindcss"
|
||||||
"tome"
|
|
||||||
"tubearchivist"
|
"tubearchivist"
|
||||||
"uptime"
|
"uptime"
|
||||||
"vaultwarden"
|
"vaultwarden"
|
||||||
|
|
|
@ -1,61 +1,26 @@
|
||||||
{ config, lib, ... }:
|
{ config, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = homelab.services.${service};
|
|
||||||
homelab = config.homelab;
|
|
||||||
service = "forgejo";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.homelab.services.${service} = {
|
services.forgejo = {
|
||||||
enable = mkEnableOption "Enable ${service}";
|
|
||||||
|
|
||||||
url = mkOption {
|
|
||||||
default = "code.${homelab.domain}";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.name = mkOption {
|
|
||||||
default = "Forgejo";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.description = mkOption {
|
|
||||||
default = "Beyond coding. We forge.";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.icon = mkOption {
|
|
||||||
default = "forgejo";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.category = mkOption {
|
|
||||||
default = "Services";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services = {
|
|
||||||
${service} = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
stateDir = "/var/www/${service}";
|
stateDir = "/var/www/forgejo";
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
server = {
|
server = {
|
||||||
DOMAIN = cfg.url;
|
DOMAIN = "code.oliverdavies.uk";
|
||||||
ROOT_URL = "https://${cfg.url}";
|
LANDING_PAGE = "explore";
|
||||||
|
ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}";
|
||||||
|
SSH_DOMAIN = "ssh.oliverdavies.uk";
|
||||||
};
|
};
|
||||||
|
|
||||||
service.DISABLE_REGISTRATION = true;
|
service.DISABLE_REGISTRATION = true;
|
||||||
|
|
||||||
|
ui.DEFAULT_THEME = "forgejo-auto";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
cloudflared.tunnels.${homelab.cloudflared.tunnelId}.ingress = {
|
services.cloudflared.tunnels.${config.homelab.cloudflared.tunnelId}.ingress = {
|
||||||
${cfg.url} = "http://localhost:${toString config.services.${service}.settings.server.HTTP_PORT}";
|
"${config.services.forgejo.settings.server.DOMAIN}" =
|
||||||
};
|
"http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}";
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,58 +1,15 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
config,
|
services.immich = {
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = homelab.services.${service};
|
|
||||||
homelab = config.homelab;
|
|
||||||
service = "immich";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.homelab.services.${service} = {
|
|
||||||
enable = mkEnableOption "Enable ${service}";
|
|
||||||
|
|
||||||
url = mkOption {
|
|
||||||
default = "photos.${homelab.domain}";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.name = mkOption {
|
|
||||||
default = "Immich";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.description = mkOption {
|
|
||||||
default = "Self-hosted photo and video management solution";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.icon = mkOption {
|
|
||||||
default = "immich";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.category = mkOption {
|
|
||||||
default = "Media";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services = {
|
|
||||||
${service} = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
group = "media";
|
group = "media";
|
||||||
mediaLocation = "/mnt/media/${service}";
|
mediaLocation = "/mnt/media/immich";
|
||||||
};
|
};
|
||||||
|
|
||||||
nginx.virtualHosts."${cfg.url}" = {
|
services.nginx.virtualHosts."photos.oliverdavies.uk" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
useACMEHost = homelab.domain;
|
useACMEHost = "oliverdavies.uk";
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://localhost:${toString config.services.immich.port}";
|
proxyPass = "http://localhost:${toString config.services.immich.port}";
|
||||||
|
@ -60,11 +17,9 @@ in
|
||||||
recommendedProxySettings = true;
|
recommendedProxySettings = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
immich-cli
|
immich-cli
|
||||||
immich-go
|
immich-go
|
||||||
];
|
];
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,55 +1,15 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = homelab.services.${service};
|
|
||||||
homelab = config.homelab;
|
|
||||||
service = "jellyfin";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.homelab.services.${service} = {
|
services.jellyfin = {
|
||||||
enable = mkEnableOption "Enable ${service}";
|
|
||||||
|
|
||||||
url = mkOption {
|
|
||||||
default = "${service}.${homelab.domain}";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.name = mkOption {
|
|
||||||
default = "Jellyfin";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.description = mkOption {
|
|
||||||
default = "The Free Software Media System";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.icon = mkOption {
|
|
||||||
default = "jellyfin";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.category = mkOption {
|
|
||||||
default = "Media";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services = {
|
|
||||||
${service} = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
configDir = "/mnt/media/${service}";
|
configDir = "/mnt/media/jellyfin";
|
||||||
group = "media";
|
group = "media";
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nginx.virtualHosts."${cfg.url}" = {
|
services.nginx.virtualHosts."jellyfin.oliverdavies.uk" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
useACMEHost = homelab.domain;
|
useACMEHost = "oliverdavies.uk";
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://localhost:8096";
|
proxyPass = "http://localhost:8096";
|
||||||
|
@ -60,6 +20,4 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,8 @@ let
|
||||||
{ inherit port root url; } // overrides;
|
{ inherit port root url; } // overrides;
|
||||||
|
|
||||||
sites = [
|
sites = [
|
||||||
|
(mkSite "books" {})
|
||||||
|
|
||||||
(mkSite "eric" {
|
(mkSite "eric" {
|
||||||
rootSuffix = "/public";
|
rootSuffix = "/public";
|
||||||
|
|
||||||
|
@ -19,11 +21,31 @@ let
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkSite "luke" {
|
(mkSite "examples" {})
|
||||||
|
]
|
||||||
|
++
|
||||||
|
map
|
||||||
|
(
|
||||||
|
domain:
|
||||||
|
mkSite domain {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
add_header X-Robots-Tag "noindex, nofollow";
|
add_header X-Robots-Tag "noindex, nofollow";
|
||||||
'';
|
'';
|
||||||
})
|
}
|
||||||
|
)
|
||||||
|
[
|
||||||
|
"bootstrap-with-tailwind"
|
||||||
|
"florida-drupalcamp-tailwind-css"
|
||||||
|
"luke"
|
||||||
|
"phpsw-sculpin-demo"
|
||||||
|
"rebuilding-acquia"
|
||||||
|
"rebuilding-bartik"
|
||||||
|
"rebuilding-bristol-js"
|
||||||
|
"rebuilding-symfony"
|
||||||
|
"tailwindcss-demo"
|
||||||
|
"talking-drupal-tailwindcss"
|
||||||
|
"wp-tailwind"
|
||||||
|
"zet"
|
||||||
];
|
];
|
||||||
in
|
in
|
||||||
sites
|
sites
|
||||||
|
|
|
@ -13,15 +13,17 @@ let
|
||||||
|
|
||||||
paths = [
|
paths = [
|
||||||
"archive"
|
"archive"
|
||||||
|
"automated-testing"
|
||||||
"core"
|
"core"
|
||||||
"daily/.+"
|
"daily/.+"
|
||||||
"examples"
|
"examples"
|
||||||
"homelab"
|
"homelab"
|
||||||
"podcast"
|
"podcast"
|
||||||
|
"rss/bb.xml"
|
||||||
"rss/daily.xml"
|
"rss/daily.xml"
|
||||||
"sites/default/files"
|
"sites/default/files"
|
||||||
|
"testing"
|
||||||
"themes/custom/opdavies"
|
"themes/custom/opdavies"
|
||||||
"tome-test"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
port = ports.nginx-website-tome;
|
port = ports.nginx-website-tome;
|
||||||
|
@ -77,36 +79,11 @@ in
|
||||||
globalRedirect = "www.oliverdavies.uk";
|
globalRedirect = "www.oliverdavies.uk";
|
||||||
useACMEHost = "oliverdavies.uk";
|
useACMEHost = "oliverdavies.uk";
|
||||||
};
|
};
|
||||||
|
|
||||||
"tome.oliverdavies.uk" = {
|
|
||||||
listen = [
|
|
||||||
{
|
|
||||||
addr = "localhost";
|
|
||||||
port = tome.port;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
locations."/".tryFiles = "$uri $uri.html $uri/index.html =404";
|
|
||||||
|
|
||||||
root = tome.root;
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
add_header X-Robots-Tag "noindex, nofollow";
|
|
||||||
|
|
||||||
port_in_redirect off;
|
|
||||||
|
|
||||||
# Remove trailing slashes.
|
|
||||||
rewrite ^/(.*)/$ /$1 permanent;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
cloudflared.tunnels."e1514105-327f-4984-974e-e2fbaca76466" = {
|
cloudflared.tunnels."e1514105-327f-4984-974e-e2fbaca76466".ingress = {
|
||||||
ingress = {
|
|
||||||
"oliverdavies.uk" = "http://localhost:${toString port}";
|
"oliverdavies.uk" = "http://localhost:${toString port}";
|
||||||
"tome.oliverdavies.uk" = "http://localhost:${toString tome.port}";
|
|
||||||
"www.oliverdavies.uk" = "http://localhost:${toString port}";
|
"www.oliverdavies.uk" = "http://localhost:${toString port}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,6 +131,10 @@
|
||||||
from = "/ansistrano-slides";
|
from = "/ansistrano-slides";
|
||||||
to = "/talks/deploying-php-ansible-ansistrano";
|
to = "/talks/deploying-php-ansible-ansistrano";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
from = "/archive";
|
||||||
|
to = "/blog";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
from = "/archive/2022-08-28/how-started-programming";
|
from = "/archive/2022-08-28/how-started-programming";
|
||||||
to = "/daily/2022-08-28/how-started-programming";
|
to = "/daily/2022-08-28/how-started-programming";
|
||||||
|
@ -2419,6 +2423,10 @@
|
||||||
from = "/d7";
|
from = "/d7";
|
||||||
to = "/drupal7";
|
to = "/drupal7";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
from = "/daily";
|
||||||
|
to = "/blog";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
from = "/dcbristol-cfp";
|
from = "/dcbristol-cfp";
|
||||||
to = "https://www.papercall.io/drupalcamp-bristol-2019";
|
to = "https://www.papercall.io/drupalcamp-bristol-2019";
|
||||||
|
|
|
@ -43,10 +43,7 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
dataDir = "/mnt/media/${service}";
|
dataDir = "/mnt/media/${service}";
|
||||||
|
domain = "https://${cfg.url}";
|
||||||
settings = {
|
|
||||||
PAPERLESS_URL = "https://${cfg.url}";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nginx.virtualHosts."${cfg.url}" = {
|
nginx.virtualHosts."${cfg.url}" = {
|
||||||
|
|
|
@ -11,6 +11,7 @@ in
|
||||||
|
|
||||||
config.homelab.ports = {
|
config.homelab.ports = {
|
||||||
homepage-dashboard = 8097;
|
homepage-dashboard = 8097;
|
||||||
|
mealie = 9001;
|
||||||
pihole = 8082;
|
pihole = 8082;
|
||||||
tubearchivist = 8099;
|
tubearchivist = 8099;
|
||||||
vaultwarden = 8022;
|
vaultwarden = 8022;
|
||||||
|
@ -18,8 +19,10 @@ in
|
||||||
nginx-website-sculpin = 8095;
|
nginx-website-sculpin = 8095;
|
||||||
nginx-website-tome = 8098;
|
nginx-website-tome = 8098;
|
||||||
|
|
||||||
|
nginx-books = 9002;
|
||||||
nginx-bootstrap-with-tailwind = 8081;
|
nginx-bootstrap-with-tailwind = 8081;
|
||||||
nginx-eric = 8084;
|
nginx-eric = 8084;
|
||||||
|
nginx-examples = 9003;
|
||||||
nginx-florida-drupalcamp-tailwind-css = 8083;
|
nginx-florida-drupalcamp-tailwind-css = 8083;
|
||||||
nginx-luke = 8094;
|
nginx-luke = 8094;
|
||||||
nginx-phpsw-sculpin-demo = 8085;
|
nginx-phpsw-sculpin-demo = 8085;
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
./homepage
|
./homepage
|
||||||
./mastodon.nix
|
./mastodon.nix
|
||||||
|
./mealie.nix
|
||||||
./samba.nix
|
./samba.nix
|
||||||
./uptime-kuma.nix
|
./uptime-kuma.nix
|
||||||
./vaultwarden.nix
|
./vaultwarden.nix
|
||||||
|
@ -16,7 +17,6 @@
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
postgresqlBackup.enable = true;
|
postgresqlBackup.enable = true;
|
||||||
tailscale.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.gitea-actions-runner.instances.default = {
|
services.gitea-actions-runner.instances.default = {
|
||||||
|
@ -29,6 +29,7 @@
|
||||||
gawk
|
gawk
|
||||||
gitMinimal
|
gitMinimal
|
||||||
gnused
|
gnused
|
||||||
|
jq
|
||||||
nix
|
nix
|
||||||
nodejs
|
nodejs
|
||||||
wget
|
wget
|
||||||
|
|
27
hosts/nixedo/services/mealie.nix
Normal file
27
hosts/nixedo/services/mealie.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
ports = config.homelab.ports;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.mealie = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.stable.mealie;
|
||||||
|
|
||||||
|
database.createLocally = true;
|
||||||
|
|
||||||
|
port = ports.mealie;
|
||||||
|
|
||||||
|
settings.ALLOW_SIGNUP = "false";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts."mealie.oliverdavies.uk" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = "oliverdavies.uk";
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://localhost:${toString config.services.mealie.port}";
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
options,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -20,26 +20,6 @@ in
|
||||||
default = "${service}.${homelab.domain}";
|
default = "${service}.${homelab.domain}";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
};
|
};
|
||||||
|
|
||||||
homepage.name = mkOption {
|
|
||||||
default = "Vaultwarden";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.description = mkOption {
|
|
||||||
default = "Unofficial Bitwarden compatible server written in Rust";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.icon = mkOption {
|
|
||||||
default = "bitwarden";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
homepage.category = mkOption {
|
|
||||||
default = "Services";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
@ -47,6 +27,8 @@ in
|
||||||
${service} = {
|
${service} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
environmentFile = config.age.secrets.vaultwarden-env.path;
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
DOMAIN = "https://${cfg.url}";
|
DOMAIN = "https://${cfg.url}";
|
||||||
ROCKET_ADDRESS = "127.0.0.1";
|
ROCKET_ADDRESS = "127.0.0.1";
|
||||||
|
@ -55,11 +37,17 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
cloudflared.tunnels.${homelab.cloudflared.tunnelId}.ingress = {
|
nginx.virtualHosts.${cfg.url} = {
|
||||||
"${cfg.url}" = "http://${config.services.${service}.config.ROCKET_ADDRESS}:${
|
forceSSL = true;
|
||||||
toString config.services.${service}.config.ROCKET_PORT
|
useACMEHost = homelab.domain;
|
||||||
}";
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://localhost:${toString config.services.${service}.config.ROCKET_PORT}";
|
||||||
|
recommendedProxySettings = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
age.secrets.vaultwarden-env.file = "${inputs.self}/secrets/vaultwarden-env.age";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,66 +9,39 @@
|
||||||
../common
|
../common
|
||||||
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./modules
|
./cron.nix
|
||||||
|
./neomutt.nix
|
||||||
|
./newsboat
|
||||||
./secrets.nix
|
./secrets.nix
|
||||||
./services
|
./xserver.nix
|
||||||
|
|
||||||
../../users/opdavies.nix
|
../../users/opdavies.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
cli = {
|
services = {
|
||||||
kanata = {
|
auto-cpufreq.enable = true;
|
||||||
enable = true;
|
geoclue2.enable = true;
|
||||||
|
gvfs.enable = true;
|
||||||
devices = [
|
power-profiles-daemon.enable = false;
|
||||||
"/dev/input/by-path/platform-i8042-serio-0-event-kbd"
|
printing.enable = true;
|
||||||
];
|
pulseaudio.enable = false;
|
||||||
};
|
thermald.enable = true;
|
||||||
|
throttled.enable = true;
|
||||||
password-store = {
|
upower.enable = true;
|
||||||
enable = true;
|
|
||||||
|
|
||||||
extensions = with pkgs.passExtensions; [
|
|
||||||
pass-audit
|
|
||||||
pass-otp
|
|
||||||
pass-update
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
core = {
|
|
||||||
bluetooth.enable = true;
|
|
||||||
openssh.enable = true;
|
|
||||||
pipewire.enable = true;
|
|
||||||
xbanish.enable = true;
|
|
||||||
zram.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop = {
|
|
||||||
dconf.enable = true;
|
|
||||||
dwm.enable = true;
|
|
||||||
fonts.enable = true;
|
|
||||||
media.makemkv.enable = true;
|
|
||||||
st.enable = true;
|
|
||||||
thunar.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot = {
|
systemd-boot.enable = true;
|
||||||
enable = true;
|
systemd-boot.configurationLimit = 10;
|
||||||
configurationLimit = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
efi = {
|
efi.canTouchEfiVariables = true;
|
||||||
canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.extraConfig = ''
|
systemd.settings.Manager = {
|
||||||
DefaultTimeoutStopSec=10s
|
DefaultTimeoutStopSec = "10s";
|
||||||
'';
|
};
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
@ -93,17 +66,13 @@
|
||||||
abook
|
abook
|
||||||
acpi
|
acpi
|
||||||
arandr
|
arandr
|
||||||
backup-websites
|
|
||||||
brightnessctl
|
brightnessctl
|
||||||
build-glove80
|
|
||||||
cdrkit
|
cdrkit
|
||||||
cpufrequtils
|
cpufrequtils
|
||||||
displayselect
|
|
||||||
dvdbackup
|
dvdbackup
|
||||||
dvdplusrwtools
|
dvdplusrwtools
|
||||||
ffmpegthumbnailer
|
ffmpegthumbnailer
|
||||||
gimp
|
gimp3
|
||||||
gscan2pdf
|
|
||||||
gtypist
|
gtypist
|
||||||
hunspellDicts.en-gb-large
|
hunspellDicts.en-gb-large
|
||||||
isync
|
isync
|
||||||
|
@ -119,15 +88,11 @@
|
||||||
peek
|
peek
|
||||||
pmutils
|
pmutils
|
||||||
shotwell
|
shotwell
|
||||||
slack
|
stable.gscan2pdf
|
||||||
sxiv
|
sxiv
|
||||||
tailscale
|
|
||||||
ttyper
|
ttyper
|
||||||
upload-to-files
|
|
||||||
xcape
|
xcape
|
||||||
xsel
|
xsel
|
||||||
yt-dlp
|
yt-dlp
|
||||||
zeroad
|
|
||||||
zoom-us
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./cron.nix
|
|
||||||
./neomutt.nix
|
|
||||||
./newsboat
|
|
||||||
./ollama.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
services = {
|
|
||||||
ollama = {
|
|
||||||
enable = true;
|
|
||||||
acceleration = "rocm";
|
|
||||||
};
|
|
||||||
|
|
||||||
open-webui.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./xserver.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
services = {
|
|
||||||
auto-cpufreq.enable = true;
|
|
||||||
gvfs.enable = true;
|
|
||||||
power-profiles-daemon.enable = false;
|
|
||||||
printing.enable = true;
|
|
||||||
pulseaudio.enable = false;
|
|
||||||
tailscale.enable = true;
|
|
||||||
throttled.enable = true;
|
|
||||||
thermald.enable = true;
|
|
||||||
upower.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
displayManager.sessionCommands = ''
|
|
||||||
setbg &
|
|
||||||
'';
|
|
||||||
|
|
||||||
displayManager.startx.enable = true;
|
|
||||||
|
|
||||||
xkb = {
|
|
||||||
layout = "gb";
|
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.displayManager.ly.enable = true;
|
|
||||||
}
|
|
|
@ -2,6 +2,8 @@
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
displayManager.startx.enable = true;
|
||||||
|
|
||||||
xkb = {
|
xkb = {
|
||||||
layout = "gb";
|
layout = "gb";
|
||||||
variant = "";
|
variant = "";
|
|
@ -1,46 +0,0 @@
|
||||||
{ inputs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.agenix.nixosModules.default
|
|
||||||
inputs.nixos-hardware.nixosModules.common-gpu-intel
|
|
||||||
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t490
|
|
||||||
|
|
||||||
../common
|
|
||||||
|
|
||||||
./hardware-configuration.nix
|
|
||||||
./hardware.nix
|
|
||||||
./services
|
|
||||||
|
|
||||||
../../users/luke.nix
|
|
||||||
../../users/opdavies.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
core = {
|
|
||||||
bluetooth.enable = true;
|
|
||||||
zram.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop.dconf.enable = true;
|
|
||||||
|
|
||||||
nixpad.enable = true;
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
loader = {
|
|
||||||
systemd-boot = {
|
|
||||||
enable = true;
|
|
||||||
configurationLimit = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
efi = {
|
|
||||||
canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.extraConfig = ''
|
|
||||||
DefaultTimeoutStopSec=10s
|
|
||||||
'';
|
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
|
||||||
"xhci_pci"
|
|
||||||
"nvme"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
"rtsx_pci_sdmmc"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/001febe7-57e8-4c9a-bbaf-52c3d8305b63";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/5F0A-3374";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [
|
|
||||||
"fmask=0077"
|
|
||||||
"dmask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
hardware = {
|
|
||||||
bluetooth.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services.cron = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
systemCronJobs = [
|
|
||||||
"0 8,20 * * * opdavies ${pkgs.isync}/bin/mbsync -a"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./cron.nix
|
|
||||||
./interception-tools.nix
|
|
||||||
./sound.nix
|
|
||||||
./udev.nix
|
|
||||||
./xserver.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
services = {
|
|
||||||
auto-cpufreq.enable = true;
|
|
||||||
|
|
||||||
avahi = {
|
|
||||||
enable = true;
|
|
||||||
nssmdns4 = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
blueman.enable = true;
|
|
||||||
|
|
||||||
gvfs.enable = true;
|
|
||||||
openssh.enable = true;
|
|
||||||
power-profiles-daemon.enable = false;
|
|
||||||
printing.enable = true;
|
|
||||||
pulseaudio.enable = false;
|
|
||||||
throttled.enable = true;
|
|
||||||
thermald.enable = true;
|
|
||||||
upower.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Make Caps lock work as an Escape key on press and Ctrl on hold.
|
|
||||||
services.interception-tools =
|
|
||||||
let
|
|
||||||
dfkConfig = pkgs.writeText "dual-function-keys.yaml" ''
|
|
||||||
MAPPINGS:
|
|
||||||
- KEY: KEY_CAPSLOCK
|
|
||||||
TAP: KEY_ESC
|
|
||||||
HOLD: KEY_LEFTCTRL
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
enable = true;
|
|
||||||
plugins = pkgs.lib.mkForce [ pkgs.interception-tools-plugins.dual-function-keys ];
|
|
||||||
udevmonConfig = ''
|
|
||||||
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c ${dfkConfig} | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
|
|
||||||
DEVICE:
|
|
||||||
NAME: "AT Translated Set 2 keyboard"
|
|
||||||
EVENTS:
|
|
||||||
EV_KEY: [[KEY_CAPSLOCK, KEY_ESC, KEY_LEFTCTRL]]
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.redshift;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.redshift.enable = mkEnableOption "Enable redshift";
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
location = {
|
|
||||||
latitude = 51.48;
|
|
||||||
longitude = -3.17;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.redshift = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
brightness = {
|
|
||||||
day = "1";
|
|
||||||
night = "1";
|
|
||||||
};
|
|
||||||
|
|
||||||
temperature = {
|
|
||||||
day = 5500;
|
|
||||||
night = 3700;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
alsa = {
|
|
||||||
enable = true;
|
|
||||||
support32Bit = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
services.udev = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
extraRules = ''
|
|
||||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
7
justfile
7
justfile
|
@ -13,8 +13,7 @@ check:
|
||||||
nix flake check
|
nix flake check
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
nix store optimise --verbose
|
nh clean all
|
||||||
nix store gc --verbose
|
|
||||||
|
|
||||||
collect-garbage:
|
collect-garbage:
|
||||||
nix-collect-garbage -d
|
nix-collect-garbage -d
|
||||||
|
@ -30,7 +29,7 @@ test *args:
|
||||||
@just _nixos test {{ args }}
|
@just _nixos test {{ args }}
|
||||||
|
|
||||||
update:
|
update:
|
||||||
nix flake update
|
nix flake update --commit-lock-file
|
||||||
|
|
||||||
_nixos command *args:
|
_nixos command *args:
|
||||||
sudo nixos-rebuild {{ command }} --flake . {{ args }}
|
nh os {{ command }} . {{ args }}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
services.avahi = {
|
flake.modules.nixos.pc.services.avahi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
7
modules/bluetooth.nix
Normal file
7
modules/bluetooth.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
flake.modules.nixos.desktop = {
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
|
services.blueman.enable = true;
|
||||||
|
};
|
||||||
|
}
|
29
modules/bluetuith.nix
Normal file
29
modules/bluetuith.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.base =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
pkgs.bluetuith
|
||||||
|
];
|
||||||
|
|
||||||
|
xdg.configFile."bluetuith/bluetuith.conf" = {
|
||||||
|
text = ''
|
||||||
|
{
|
||||||
|
adapter: ""
|
||||||
|
adapter-states: ""
|
||||||
|
connect-bdaddr: ""
|
||||||
|
gsm-apn: ""
|
||||||
|
gsm-number: ""
|
||||||
|
|
||||||
|
keybindings: {
|
||||||
|
NavigateDown: j
|
||||||
|
NavigateUp: k
|
||||||
|
}
|
||||||
|
|
||||||
|
receive-dir: ""
|
||||||
|
theme: {}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
57
modules/bookmarkthis.nix
Normal file
57
modules/bookmarkthis.nix
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
options.programs.bookmarkthis.snippetsFile = lib.mkOption {
|
||||||
|
default = "${config.xdg.dataHome}/snippets.txt";
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
home = {
|
||||||
|
packages = [
|
||||||
|
(pkgs.writeShellApplication {
|
||||||
|
name = "bookmarkthis";
|
||||||
|
|
||||||
|
text = ''
|
||||||
|
message() {
|
||||||
|
if command -v ${lib.getExe pkgs.libnotify} > /dev/null; then
|
||||||
|
${lib.getExe pkgs.libnotify} "$1" "$2"
|
||||||
|
else
|
||||||
|
echo "$2"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
bookmark="$(xclip -o)"
|
||||||
|
file="$SNIPPETS_FILE"
|
||||||
|
|
||||||
|
if grep -q "^$bookmark$" "$file"; then
|
||||||
|
message "Oops." "Already bookmarked." >&2
|
||||||
|
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$bookmark" >> "$file"
|
||||||
|
|
||||||
|
message "Bookmark added!" "$bookmark is now saved to the file."
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
SNIPPETS_FILE = config.programs.bookmarkthis.snippetsFile;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh.zsh-abbr.abbreviations = lib.optionalAttrs (config.programs.zsh.enable) {
|
||||||
|
"sn" = "${config.home.sessionVariables.EDITOR} $SNIPPETS_FILE";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
3
modules/browsers/chromium.nix
Normal file
3
modules/browsers/chromium.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.chromium.enable = true;
|
||||||
|
}
|
3
modules/browsers/librewolf/enable.nix
Normal file
3
modules/browsers/librewolf/enable.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.librewolf.enable = true;
|
||||||
|
}
|
17
modules/browsers/librewolf/extensions.nix
Normal file
17
modules/browsers/librewolf/extensions.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.librewolf.profiles.default.extensions.packages =
|
||||||
|
with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
|
awesome-rss
|
||||||
|
bitwarden
|
||||||
|
darkreader
|
||||||
|
tree-style-tab
|
||||||
|
ublock-origin
|
||||||
|
videospeed
|
||||||
|
vimium
|
||||||
|
web-developer
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
5
modules/browsers/librewolf/languages.nix
Normal file
5
modules/browsers/librewolf/languages.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.librewolf.languagePacks = [
|
||||||
|
"en-GB"
|
||||||
|
];
|
||||||
|
}
|
70
modules/browsers/librewolf/policies.nix
Normal file
70
modules/browsers/librewolf/policies.nix
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.librewolf.policies = {
|
||||||
|
CaptivePortal = false;
|
||||||
|
DisableFirefoxAccounts = true;
|
||||||
|
DisableFirefoxStudies = true;
|
||||||
|
DisablePocket = true;
|
||||||
|
DisableTelemetry = true;
|
||||||
|
|
||||||
|
EnableTrackingProtection = {
|
||||||
|
Cryptomining = true;
|
||||||
|
Fingerprinting = true;
|
||||||
|
Value = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
ExtensionSettings = {
|
||||||
|
"jid1-ZAdIEUB7XOzOJw@jetpack" = {
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/duckduckgo-for-firefox/latest.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
|
||||||
|
"uBlock0@raymondhill.net" = {
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
FirefoxHome = {
|
||||||
|
Highlights = false;
|
||||||
|
Pocket = false;
|
||||||
|
Search = true;
|
||||||
|
Snippets = false;
|
||||||
|
SponsoredPocket = false;
|
||||||
|
SponsoredTopSites = false;
|
||||||
|
TopSites = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
FirefoxSuggest = {
|
||||||
|
ImproveSuggest = false;
|
||||||
|
SponsoredSuggestions = false;
|
||||||
|
WebSuggestions = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
NoDefaultBookmarks = true;
|
||||||
|
OfferToSaveLogins = false;
|
||||||
|
OfferToSaveLoginsDefault = false;
|
||||||
|
PasswordManagerEnabled = false;
|
||||||
|
|
||||||
|
Preferences = {
|
||||||
|
"browser.newtabpage.enabled" = false;
|
||||||
|
"cookiebanners.service.mode" = 2; # Block cookie banners
|
||||||
|
"cookiebanners.service.mode.privateBrowsing" = 2; # Block cookie banners in private browsing
|
||||||
|
"privacy.donottrackheader.enabled" = true;
|
||||||
|
"privacy.fingerprintingProtection" = true;
|
||||||
|
"privacy.resistFingerprinting" = true;
|
||||||
|
"privacy.trackingprotection.emailtracking.enabled" = true;
|
||||||
|
"privacy.trackingprotection.enabled" = true;
|
||||||
|
"privacy.trackingprotection.fingerprinting.enabled" = true;
|
||||||
|
"privacy.trackingprotection.socialtracking.enabled" = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
HardwareAcceleration = true;
|
||||||
|
TranslateEnabled = true;
|
||||||
|
|
||||||
|
UserMessaging = {
|
||||||
|
ExtensionRecommendations = false;
|
||||||
|
UrlbarInterventions = false;
|
||||||
|
SkipOnboarding = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
19
modules/browsers/librewolf/search-engines.nix
Normal file
19
modules/browsers/librewolf/search-engines.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.librewolf.profiles.default.search.engines = {
|
||||||
|
# TODO: Drupal.org users.
|
||||||
|
# TODO: Mastodon.
|
||||||
|
# TODO: GitHub.
|
||||||
|
# TODO: Forgejo.
|
||||||
|
drupal_projects = {
|
||||||
|
name = "Drupal.org projects";
|
||||||
|
urls = [ { template = "https://www.drupal.org/project/{searchTerms}"; } ];
|
||||||
|
definedAliases = [ "@dp" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixvim = {
|
||||||
|
name = "Nixvim options search";
|
||||||
|
urls = [ { template = "https://nix-community.github.io/nixvim/search/?query={searchTerms}"; } ];
|
||||||
|
definedAliases = [ "@nxv" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
7
modules/browsers/librewolf/search.nix
Normal file
7
modules/browsers/librewolf/search.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.librewolf.profiles.default.search = {
|
||||||
|
default = "ddg";
|
||||||
|
force = true;
|
||||||
|
privateDefault = "ddg";
|
||||||
|
};
|
||||||
|
}
|
10
modules/browsers/librewolf/settings.nix
Normal file
10
modules/browsers/librewolf/settings.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.librewolf.profiles.default.settings = {
|
||||||
|
"browser.search.isUS" = false;
|
||||||
|
"browser.search.region" = "GB";
|
||||||
|
"distribution.searchplugins.defaultLocale" = "en-GB";
|
||||||
|
"general.useragent.locale" = "en-GB";
|
||||||
|
"intl.accept_languages" = "en-GB, en";
|
||||||
|
"intl.regional_prefs.use_os_locales" = true;
|
||||||
|
};
|
||||||
|
}
|
3
modules/browsers/qutebrowser/enable.nix
Normal file
3
modules/browsers/qutebrowser/enable.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.qutebrowser.enable = true;
|
||||||
|
}
|
14
modules/browsers/qutebrowser/key-bindings.nix
Normal file
14
modules/browsers/qutebrowser/key-bindings.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.qutebrowser.keyBindings.normal = {
|
||||||
|
"<Ctrl-d>" = "config-cycle colors.webpage.darkmode.enabled true false";
|
||||||
|
|
||||||
|
"xb" = "config-cycle statusbar.show always never";
|
||||||
|
"xt" = "config-cycle tabs.show always never";
|
||||||
|
"xx" = lib.mkMerge [
|
||||||
|
"config-cycle statusbar.show always never"
|
||||||
|
"config-cycle tabs.show always never"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
7
modules/browsers/qutebrowser/package.nix
Normal file
7
modules/browsers/qutebrowser/package.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.qutebrowser.package = pkgs.stable.qutebrowser;
|
||||||
|
};
|
||||||
|
}
|
10
modules/browsers/qutebrowser/search-engines.nix
Normal file
10
modules/browsers/qutebrowser/search-engines.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.qutebrowser.searchEngines = {
|
||||||
|
dp = "https://www.drupal.org/project/{}";
|
||||||
|
du = "https://www.drupal.org/u/{}";
|
||||||
|
gh = "https://github.com/search?q={}";
|
||||||
|
mn = "https://mynixos.com/search?q={}";
|
||||||
|
nx = "https://search.nixos.org/packages?query={}";
|
||||||
|
yt = "https://www.youtube.com/results?search_query={}";
|
||||||
|
};
|
||||||
|
}
|
5
modules/browsers/qutebrowser/settings.nix
Normal file
5
modules/browsers/qutebrowser/settings.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.programs.qutebrowser.settings = {
|
||||||
|
colors.webpage.darkmode.enabled = true;
|
||||||
|
};
|
||||||
|
}
|
7
modules/calculator.nix
Normal file
7
modules/calculator.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
flake.modules.nixos.pc =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = [ pkgs.bc ];
|
||||||
|
};
|
||||||
|
}
|
3
modules/dconf.nix
Normal file
3
modules/dconf.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.nixos.pc.programs.dconf.enable = true;
|
||||||
|
}
|
7
modules/desktop.nix
Normal file
7
modules/desktop.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
flake.modules.nixos.desktop.imports = with config.flake.modules.nixos; [
|
||||||
|
pc
|
||||||
|
];
|
||||||
|
}
|
83
modules/dev-commit.nix
Normal file
83
modules/dev-commit.nix
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.base =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
options.programs.dev-commit = {
|
||||||
|
enable = lib.mkEnableOption "Enable dev-commit";
|
||||||
|
|
||||||
|
repoPaths = lib.mkOption {
|
||||||
|
default = [ ];
|
||||||
|
description = "A list of repository paths that should have automated commits";
|
||||||
|
type = lib.types.listOf lib.types.path;
|
||||||
|
};
|
||||||
|
|
||||||
|
schedule = lib.mkOption {
|
||||||
|
type = lib.types.submodule {
|
||||||
|
options = {
|
||||||
|
enable = lib.mkEnableOption "Enable automated dev commits with systemd";
|
||||||
|
|
||||||
|
time = lib.mkOption {
|
||||||
|
description = ''
|
||||||
|
Time expression for when to run the dev-commit job.
|
||||||
|
|
||||||
|
This uses systemd's `OnCalendar` syntax.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- "hourly" (once every hour)
|
||||||
|
- "daily" (once per day at midnight)
|
||||||
|
- "Mon *-*-01 12:00:00" (every Monday at 12:00 PM)
|
||||||
|
|
||||||
|
See `man systemd.time` for full syntax reference.
|
||||||
|
'';
|
||||||
|
default = "hourly";
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
default = {
|
||||||
|
enable = false;
|
||||||
|
time = "hourly";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config =
|
||||||
|
let
|
||||||
|
cfg = config.programs.dev-commit;
|
||||||
|
repoPaths = lib.concatStringsSep ":" cfg.repoPaths;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home = lib.mkIf cfg.enable {
|
||||||
|
packages = [ pkgs.dev-commit ];
|
||||||
|
|
||||||
|
sessionVariables.DEV_COMMIT_PATHS = repoPaths;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user = lib.mkIf cfg.schedule.enable {
|
||||||
|
services.dev-commit = {
|
||||||
|
Service = {
|
||||||
|
Environment = [ "DEV_COMMIT_PATHS=${repoPaths}" ];
|
||||||
|
ExecStart = "${lib.getExe pkgs.dev-commit}";
|
||||||
|
Type = "oneshot";
|
||||||
|
};
|
||||||
|
|
||||||
|
Unit.Description = "dev-commit";
|
||||||
|
};
|
||||||
|
|
||||||
|
timers.dev-commit = {
|
||||||
|
Install.WantedBy = [ "timers.target" ];
|
||||||
|
|
||||||
|
Timer = {
|
||||||
|
OnCalendar = cfg.schedule.time;
|
||||||
|
Unit = "dev-commit.service";
|
||||||
|
};
|
||||||
|
|
||||||
|
Unit.Description = "Runs automated development commits in select project repositories.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
3
modules/direnv/enable.nix
Normal file
3
modules/direnv/enable.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.base.programs.direnv.enable = true;
|
||||||
|
}
|
3
modules/direnv/nix-direnv.nix
Normal file
3
modules/direnv/nix-direnv.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.base.programs.direnv.nix-direnv.enable = true;
|
||||||
|
}
|
3
modules/direnv/silent.nix
Normal file
3
modules/direnv/silent.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.base.programs.direnv.silent = true;
|
||||||
|
}
|
3
modules/direnv/zsh.nix
Normal file
3
modules/direnv/zsh.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.base.programs.direnv.enableZshIntegration = true;
|
||||||
|
}
|
35
modules/displayselect/default.nix
Normal file
35
modules/displayselect/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
(pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "displayselect";
|
||||||
|
version = "unstable";
|
||||||
|
|
||||||
|
src = inputs.voidrice;
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
bash
|
||||||
|
xorg.xrandr
|
||||||
|
];
|
||||||
|
|
||||||
|
prePatch = ''
|
||||||
|
cp "$src/.local/bin/displayselect" displayselect
|
||||||
|
'';
|
||||||
|
|
||||||
|
patches = [ ./scaling.patch ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp displayselect $out/bin
|
||||||
|
chmod +x $out/bin/displayselect
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
26
modules/dmenu-sys.nix
Normal file
26
modules/dmenu-sys.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
(pkgs.stdenv.mkDerivation rec {
|
||||||
|
pname = "dmenu_sys";
|
||||||
|
version = "unstable";
|
||||||
|
|
||||||
|
src = inputs.bop-scripts;
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [ dmenu ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $src/${pname} $out/bin
|
||||||
|
chmod +x $out/bin/${pname}
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
26
modules/dmenu-timer.nix
Normal file
26
modules/dmenu-timer.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
(pkgs.stdenv.mkDerivation rec {
|
||||||
|
pname = "dmenu_timer";
|
||||||
|
version = "unstable";
|
||||||
|
|
||||||
|
src = inputs.bop-scripts;
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [ dmenu ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $src/${pname} $out/bin
|
||||||
|
chmod +x $out/bin/${pname}
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
24
modules/docker.nix
Normal file
24
modules/docker.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
flake.modules.nixos.pc = args: {
|
||||||
|
options.docker.enable = lib.mkEnableOption "Enable Docker";
|
||||||
|
|
||||||
|
config = lib.mkIf args.config.docker.enable {
|
||||||
|
virtualisation = {
|
||||||
|
oci-containers.backend = "docker";
|
||||||
|
|
||||||
|
docker = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
autoPrune = {
|
||||||
|
enable = true;
|
||||||
|
dates = "weekly";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.${config.flake.meta.owner.username}.extraGroups = [ "docker" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
11
modules/dwm/config.nix
Normal file
11
modules/dwm/config.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui =
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
file."${config.home.sessionVariables.XINITRC}".source = ./xinitrc;
|
||||||
|
|
||||||
|
sessionVariables.XINITRC = "${config.xdg.configHome}/X11/xinitrc";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
14
modules/dwm/dmenu-center-noop.patch
Normal file
14
modules/dwm/dmenu-center-noop.patch
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
diff --git a/dmenu.c b/dmenu.c
|
||||||
|
|
||||||
|
index fd49549..e9e2648 100644
|
||||||
|
--- a/dmenu.c
|
||||||
|
+++ b/dmenu.c
|
||||||
|
@@ -757,6 +757,8 @@ main(int argc, char *argv[])
|
||||||
|
colors[SchemeSel][ColFg] = argv[++i];
|
||||||
|
else if (!strcmp(argv[i], "-w")) /* embedding window id */
|
||||||
|
embed = argv[++i];
|
||||||
|
+ else if (!strcmp(argv[i], "-c"))
|
||||||
|
+ continue;
|
||||||
|
else
|
||||||
|
usage();
|
||||||
|
|
21
modules/dwm/packages.nix
Normal file
21
modules/dwm/packages.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
flake.modules.nixos.pc =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(dmenu.override {
|
||||||
|
patches = [
|
||||||
|
./dmenu-center-noop.patch
|
||||||
|
];
|
||||||
|
})
|
||||||
|
|
||||||
|
dmenu-bluetooth
|
||||||
|
dunst
|
||||||
|
networkmanager_dmenu
|
||||||
|
poweralertd
|
||||||
|
slock
|
||||||
|
xdotool
|
||||||
|
xwallpaper
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,7 +1,8 @@
|
||||||
systemctl --user import-environment DISPLAY
|
systemctl --user import-environment DISPLAY
|
||||||
poweralertd -s &
|
poweralertd -s &
|
||||||
setbg &
|
set-background &
|
||||||
systemctl --user start dwm-status &
|
dwmblocks &
|
||||||
|
gammastep &
|
||||||
|
|
||||||
sxhkd &
|
sxhkd &
|
||||||
|
|
3
modules/firmware.nix
Normal file
3
modules/firmware.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.nixos.desktop.services.fwupd.enable = true;
|
||||||
|
}
|
3
modules/flameshot/enable.nix
Normal file
3
modules/flameshot/enable.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui.services.flameshot.enable = true;
|
||||||
|
}
|
13
modules/flameshot/settings.nix
Normal file
13
modules/flameshot/settings.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.gui =
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
services.flameshot.settings.General = {
|
||||||
|
disabledTrayIcon = false;
|
||||||
|
saveAfterCopy = true;
|
||||||
|
savePath = "${config.xdg.userDirs.pictures}/Screenshots";
|
||||||
|
showHelp = false;
|
||||||
|
uiColor = "#60a5fa";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
16
modules/fonts.nix
Normal file
16
modules/fonts.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
flake.modules.nixos.desktop =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
fonts = {
|
||||||
|
fontconfig.enable = true;
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
nerd-fonts.jetbrains-mono
|
||||||
|
nerd-fonts.meslo-lg
|
||||||
|
terminus_font
|
||||||
|
terminus_font_ttf
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
6
modules/fzf/enable.nix
Normal file
6
modules/fzf/enable.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.base.programs.fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
}
|
5
modules/fzf/session-variables.nix
Normal file
5
modules/fzf/session-variables.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.base.home.sessionVariables = {
|
||||||
|
FZF_DEFAULT_OPTS = "--reverse";
|
||||||
|
};
|
||||||
|
}
|
8
modules/games/steam.nix
Normal file
8
modules/games/steam.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
nixpkgs.allowedUnfreePackages = [
|
||||||
|
"steam"
|
||||||
|
"steam-unwrapped"
|
||||||
|
];
|
||||||
|
|
||||||
|
flake.modules.nixos.desktop.programs.steam.enable = true;
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue