Compare commits
No commits in common. "main" and "before-nixvim" have entirely different histories.
main
...
before-nix
456 changed files with 5760 additions and 5511 deletions
|
@ -1,90 +0,0 @@
|
|||
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
1
.ignore
|
@ -1 +0,0 @@
|
|||
.git/
|
1
.mailmap
1
.mailmap
|
@ -4,4 +4,3 @@ Oliver Davies <oliver@oliverdavies.uk> <oliver.davies@tfw.wales>
|
|||
Oliver Davies <oliver@oliverdavies.uk> <oliver@microserve.io>
|
||||
Oliver Davies <oliver@oliverdavies.uk> <oliver@oliverdavies.dev>
|
||||
Oliver Davies <oliver@oliverdavies.uk> <opdavies@gmail.com>
|
||||
Oliver Davies <oliver@oliverdavies.uk> <opdavies@noreply.code.oliverdavies.uk>
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
# 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`).
|
525
flake.lock
generated
525
flake.lock
generated
|
@ -4,17 +4,15 @@
|
|||
"inputs": {
|
||||
"darwin": "darwin",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs": "nixpkgs",
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754433428,
|
||||
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
|
||||
"lastModified": 1747575206,
|
||||
"narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
|
||||
"rev": "4835b1dc898959d8547a871ef484930675cb47f1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -23,38 +21,6 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -77,27 +43,6 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -105,11 +50,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756733629,
|
||||
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
|
||||
"lastModified": 1748225455,
|
||||
"narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
|
||||
"rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -118,41 +63,23 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"edit-alternate-vim": {
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1635180789,
|
||||
"narHash": "sha256-mEKnqYAhgrdxPRoKf4S4yYecdFIHGg8bDxpqPuC1+S4=",
|
||||
"owner": "tjdevries",
|
||||
"repo": "edit_alternate.vim",
|
||||
"rev": "ef3019115d9bb7ffd691d2859eda213dd99e0b0a",
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tjdevries",
|
||||
"repo": "edit_alternate.vim",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
|
@ -173,51 +100,6 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -246,11 +128,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756991914,
|
||||
"narHash": "sha256-4ve/3ah5H/SpL2m3qmZ9GU+VinQYp2MN1G7GamimTds=",
|
||||
"lastModified": 1748737919,
|
||||
"narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "b08f8737776f10920c330657bee8b95834b7a70f",
|
||||
"rev": "5675a9686851d9626560052a032c4e14e533c1fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -260,76 +142,13 @@
|
|||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1756925795,
|
||||
"narHash": "sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac=",
|
||||
"lastModified": 1748634340,
|
||||
"narHash": "sha256-pZH4bqbOd8S+si6UcfjHovWDiWKiIGRNRMpmRWaDIms=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "ba6fab29768007e9f2657014a6e134637100c57d",
|
||||
"rev": "daa628a725ab4948e0e2b795e8fb6f4c3e289a7a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -339,44 +158,49 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"nixos-wsl": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756787288,
|
||||
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
|
||||
"lastModified": 1746453552,
|
||||
"narHash": "sha256-r66UGha+7KVHkI7ksrcMjnw/mm9Sg4l5bQlylxHwdGU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "be618645aa0adf461f778500172b6896d5ab2d01",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"owner": "nix-community",
|
||||
"ref": "main",
|
||||
"repo": "NixOS-WSL",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1745391562,
|
||||
"narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1754788789,
|
||||
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1751274312,
|
||||
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||
"lastModified": 1748421225,
|
||||
"narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||
"rev": "78add7b7abb61689e34fc23070a8f55e1d26185b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -386,44 +210,66 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
"flake-parts"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1756946299,
|
||||
"narHash": "sha256-N4PjGA0rittpNZGscKPel+mr/dMcKF73j0yr4rbG3T0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "63496f00c681b3e200bd17878a43ec68b7139a66",
|
||||
"lastModified": 1742937945,
|
||||
"narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1757050467,
|
||||
"narHash": "sha256-Rps0Ga0g/TdY49rR2ZRBsdBYybSzPccEsaI9IvwuE98=",
|
||||
"lastModified": 1748782935,
|
||||
"narHash": "sha256-wjo1BhHoBFzdtj92LrAonR1eJ8j5dt1YhnkPpqaam38=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "985abf0197c75dd64c24691a7e5e0acf308d7f20",
|
||||
"rev": "73385c8de1fac0066f513adc9a7e59d69f2327c2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -432,84 +278,16 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"bop-scripts": "bop-scripts",
|
||||
"conf-vim": "conf-vim",
|
||||
"disko": "disko",
|
||||
"edit-alternate-vim": "edit-alternate-vim",
|
||||
"flake-parts": "flake-parts",
|
||||
"git-repo-updater": "git-repo-updater",
|
||||
"home-manager": "home-manager_2",
|
||||
"import-tree": "import-tree",
|
||||
"nix-index-database": "nix-index-database",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"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"
|
||||
"nur": "nur"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
|
@ -527,99 +305,26 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"lastModified": 1733222881,
|
||||
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"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",
|
||||
|
|
194
flake.nix
194
flake.nix
|
@ -1,106 +1,124 @@
|
|||
{
|
||||
inputs = {
|
||||
agenix = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:ryantm/agenix";
|
||||
};
|
||||
agenix.url = "github:ryantm/agenix";
|
||||
|
||||
bop-scripts = {
|
||||
flake = false;
|
||||
url = "github:breadonpenguins/scripts";
|
||||
};
|
||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||
disko.url = "github:nix-community/disko";
|
||||
|
||||
conf-vim = {
|
||||
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";
|
||||
};
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
home-manager.url = "github:nix-community/home-manager/master";
|
||||
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
|
||||
nixvim = {
|
||||
inputs.flake-parts.follows = "flake-parts";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:nix-community/nixvim";
|
||||
};
|
||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
||||
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
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";
|
||||
};
|
||||
nur.url = "github:nix-community/NUR";
|
||||
};
|
||||
|
||||
outputs =
|
||||
inputs@{ flake-parts, ... }:
|
||||
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||
flake = {
|
||||
overlays = import ./overlays { inherit inputs; };
|
||||
{ nixpkgs, self, ... }@inputs:
|
||||
let
|
||||
inherit (self) outputs;
|
||||
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
|
||||
username = "opdavies";
|
||||
|
||||
specialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
outputs
|
||||
self
|
||||
system
|
||||
username
|
||||
;
|
||||
};
|
||||
|
||||
imports = [ (inputs.import-tree ./modules) ];
|
||||
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; };
|
||||
|
||||
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 {
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./nixedo/email-filters.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
import-to-jellyfin
|
||||
vic
|
||||
yt-dlp
|
||||
];
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{ 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
|
||||
'';
|
||||
}
|
7
home/common/default.nix
Normal file
7
home/common/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ outputs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
outputs.homeManagerModules.default
|
||||
];
|
||||
}
|
52
home/opdavies/PW05CH3L.nix
Normal file
52
home/opdavies/PW05CH3L.nix
Normal file
|
@ -0,0 +1,52 @@
|
|||
{ 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
|
||||
'';
|
||||
}
|
11
home/opdavies/lemp11.nix
Normal file
11
home/opdavies/lemp11.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
imports = [ ../common ];
|
||||
|
||||
cli.zsh.enable = true;
|
||||
|
||||
desktop.media = {
|
||||
handbrake.enable = true;
|
||||
makemkv.enable = true;
|
||||
mpv.enable = true;
|
||||
};
|
||||
}
|
13
home/opdavies/nixedo.nix
Normal file
13
home/opdavies/nixedo.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
imports = [
|
||||
../common
|
||||
|
||||
./nixedo/modules/email-filters.nix
|
||||
];
|
||||
|
||||
cli = {
|
||||
fzf.enable = true;
|
||||
starship.enable = true;
|
||||
zsh.enable = true;
|
||||
};
|
||||
}
|
|
@ -12,7 +12,7 @@ in
|
|||
{
|
||||
options.nixedo.${name} = {
|
||||
configFile = lib.mkOption {
|
||||
default = "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/${name}/config.lua";
|
||||
default = "${config.home.homeDirectory}/Code/${name}/config.lua";
|
||||
internal = true;
|
||||
};
|
||||
};
|
113
home/opdavies/t480.nix
Normal file
113
home/opdavies/t480.nix
Normal file
|
@ -0,0 +1,113 @@
|
|||
{ 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
|
||||
'';
|
||||
}
|
3
home/opdavies/t490.nix
Normal file
3
home/opdavies/t490.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
imports = [ ../common ];
|
||||
}
|
32
hosts/PW05CH3L/configuration.nix
Normal file
32
hosts/PW05CH3L/configuration.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ 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,6 +15,8 @@
|
|||
./users
|
||||
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
|
||||
outputs.nixosModules.default
|
||||
];
|
||||
|
||||
nix = {
|
||||
|
@ -62,13 +64,21 @@
|
|||
users."${username}" = import ./home.nix;
|
||||
};
|
||||
|
||||
nixpkgs.overlays = [
|
||||
inputs.nur.overlays.default
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
|
||||
outputs.overlays.additions
|
||||
outputs.overlays.modifications
|
||||
outputs.overlays.stable-packages
|
||||
];
|
||||
permittedInsecurePackages = [ "electron-27.3.11" ];
|
||||
};
|
||||
|
||||
overlays = [
|
||||
inputs.nur.overlays.default
|
||||
|
||||
outputs.overlays.additions
|
||||
outputs.overlays.modifications
|
||||
outputs.overlays.stable-packages
|
||||
];
|
||||
};
|
||||
|
||||
nix.extraOptions = ''
|
||||
trusted-users = root ${username}
|
||||
|
|
|
@ -9,6 +9,8 @@ let
|
|||
pkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
|
||||
config.allowUnfree = true;
|
||||
|
||||
overlays = [
|
||||
outputs.overlays.additions
|
||||
outputs.overlays.stable-packages
|
||||
|
@ -25,6 +27,10 @@ let
|
|||
;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
outputs.homeManagerModules.default
|
||||
];
|
||||
|
||||
home.username = "opdavies";
|
||||
home.homeDirectory = "/home/${config.home.username}";
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ config, self, ... }:
|
||||
{ config, ... }:
|
||||
|
||||
{
|
||||
users.users.opdavies = { };
|
||||
|
||||
home-manager.users.opdavies = import "${self}/home-manager/opdavies/${config.networking.hostName}.nix";
|
||||
home-manager.users.opdavies = import ../../../home/opdavies/${config.networking.hostName}.nix;
|
||||
}
|
||||
|
|
65
hosts/lemp11/configuration.nix
Normal file
65
hosts/lemp11/configuration.nix
Normal file
|
@ -0,0 +1,65 @@
|
|||
{ 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
|
||||
];
|
||||
}
|
50
hosts/lemp11/hardware-configuration.nix
Normal file
50
hosts/lemp11/hardware-configuration.nix
Normal file
|
@ -0,0 +1,50 @@
|
|||
# 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;
|
||||
}
|
13
hosts/lemp11/programs.nix
Normal file
13
hosts/lemp11/programs.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
programs = {
|
||||
firefox = {
|
||||
enable = true;
|
||||
|
||||
languagePacks = [ "en-GB" ];
|
||||
preferences = {
|
||||
"intl.accept_languages" = "en-GB, en";
|
||||
"intl.regional_prefs.use_os_locales" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
32
hosts/lemp11/services.nix
Normal file
32
hosts/lemp11/services.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
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,6 +19,10 @@
|
|||
../../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?
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"jitsi-meet-1.0.8043"
|
||||
|
@ -27,7 +31,10 @@
|
|||
services.logind.lidSwitchExternalPower = "ignore";
|
||||
|
||||
boot.loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
systemd-boot.enable = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,43 +1,28 @@
|
|||
# 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,
|
||||
...
|
||||
}:
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports =
|
||||
[ (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.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/40649879-4ee6-4668-8257-fe81a7773024";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/40649879-4ee6-4668-8257-fe81a7773024";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/24B1-88CB";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/24B1-88CB";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
|
|
|
@ -8,14 +8,18 @@
|
|||
|
||||
services = {
|
||||
audiobookshelf.enable = true;
|
||||
forgejo.enable = true;
|
||||
gitea-actions-runner.enable = true;
|
||||
home-assistant.enable = true;
|
||||
homepage-dashboard.enable = true;
|
||||
immich.enable = true;
|
||||
jellyfin.enable = true;
|
||||
jitsi.enable = true;
|
||||
paperless.enable = true;
|
||||
peertube.enable = true;
|
||||
tubearchivist.enable = true;
|
||||
uptime-kuma.enable = true;
|
||||
vaultwarden.enable = false;
|
||||
vaultwarden.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
"home"
|
||||
"jellyfin"
|
||||
"luke"
|
||||
"mealie"
|
||||
"nixedo"
|
||||
"paperless"
|
||||
"photos"
|
||||
|
@ -40,6 +39,7 @@
|
|||
"rebuilding-symfony"
|
||||
"tailwindcss-demo"
|
||||
"talking-drupal-tailwindcss"
|
||||
"tome"
|
||||
"tubearchivist"
|
||||
"uptime"
|
||||
"vaultwarden"
|
||||
|
|
|
@ -1,26 +1,61 @@
|
|||
{ config, ... }:
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = homelab.services.${service};
|
||||
homelab = config.homelab;
|
||||
service = "forgejo";
|
||||
in
|
||||
{
|
||||
services.forgejo = {
|
||||
enable = true;
|
||||
stateDir = "/var/www/forgejo";
|
||||
options.homelab.services.${service} = {
|
||||
enable = mkEnableOption "Enable ${service}";
|
||||
|
||||
settings = {
|
||||
server = {
|
||||
DOMAIN = "code.oliverdavies.uk";
|
||||
LANDING_PAGE = "explore";
|
||||
ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}";
|
||||
SSH_DOMAIN = "ssh.oliverdavies.uk";
|
||||
};
|
||||
url = mkOption {
|
||||
default = "code.${homelab.domain}";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
service.DISABLE_REGISTRATION = true;
|
||||
homepage.name = mkOption {
|
||||
default = "Forgejo";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
ui.DEFAULT_THEME = "forgejo-auto";
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
services.cloudflared.tunnels.${config.homelab.cloudflared.tunnelId}.ingress = {
|
||||
"${config.services.forgejo.settings.server.DOMAIN}" =
|
||||
"http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}";
|
||||
config = mkIf cfg.enable {
|
||||
services = {
|
||||
${service} = {
|
||||
enable = true;
|
||||
stateDir = "/var/www/${service}";
|
||||
|
||||
settings = {
|
||||
server = {
|
||||
DOMAIN = cfg.url;
|
||||
ROOT_URL = "https://${cfg.url}";
|
||||
};
|
||||
|
||||
service.DISABLE_REGISTRATION = true;
|
||||
};
|
||||
};
|
||||
|
||||
cloudflared.tunnels.${homelab.cloudflared.tunnelId}.ingress = {
|
||||
${cfg.url} = "http://localhost:${toString config.services.${service}.settings.server.HTTP_PORT}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,25 +1,70 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.immich = {
|
||||
enable = true;
|
||||
group = "media";
|
||||
mediaLocation = "/mnt/media/immich";
|
||||
};
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
services.nginx.virtualHosts."photos.oliverdavies.uk" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
with lib;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${toString config.services.immich.port}";
|
||||
proxyWebsockets = true;
|
||||
recommendedProxySettings = true;
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
immich-cli
|
||||
immich-go
|
||||
];
|
||||
config = mkIf cfg.enable {
|
||||
services = {
|
||||
${service} = {
|
||||
enable = true;
|
||||
group = "media";
|
||||
mediaLocation = "/mnt/media/${service}";
|
||||
};
|
||||
|
||||
nginx.virtualHosts."${cfg.url}" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = homelab.domain;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${toString config.services.immich.port}";
|
||||
proxyWebsockets = true;
|
||||
recommendedProxySettings = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
immich-cli
|
||||
immich-go
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,23 +1,65 @@
|
|||
{
|
||||
services.jellyfin = {
|
||||
enable = true;
|
||||
{ config, lib, ... }:
|
||||
|
||||
configDir = "/mnt/media/jellyfin";
|
||||
group = "media";
|
||||
openFirewall = true;
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = homelab.services.${service};
|
||||
homelab = config.homelab;
|
||||
service = "jellyfin";
|
||||
in
|
||||
{
|
||||
options.homelab.services.${service} = {
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts."jellyfin.oliverdavies.uk" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
config = mkIf cfg.enable {
|
||||
services = {
|
||||
${service} = {
|
||||
enable = true;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:8096";
|
||||
recommendedProxySettings = true;
|
||||
configDir = "/mnt/media/${service}";
|
||||
group = "media";
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
proxy_buffering off;
|
||||
'';
|
||||
nginx.virtualHosts."${cfg.url}" = {
|
||||
forceSSL = true;
|
||||
useACMEHost = homelab.domain;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:8096";
|
||||
recommendedProxySettings = true;
|
||||
|
||||
extraConfig = ''
|
||||
proxy_buffering off;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -11,8 +11,6 @@ let
|
|||
{ inherit port root url; } // overrides;
|
||||
|
||||
sites = [
|
||||
(mkSite "books" {})
|
||||
|
||||
(mkSite "eric" {
|
||||
rootSuffix = "/public";
|
||||
|
||||
|
@ -21,31 +19,11 @@ let
|
|||
'';
|
||||
})
|
||||
|
||||
(mkSite "examples" {})
|
||||
]
|
||||
++
|
||||
map
|
||||
(
|
||||
domain:
|
||||
mkSite domain {
|
||||
extraConfig = ''
|
||||
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"
|
||||
];
|
||||
(mkSite "luke" {
|
||||
extraConfig = ''
|
||||
add_header X-Robots-Tag "noindex, nofollow";
|
||||
'';
|
||||
})
|
||||
];
|
||||
in
|
||||
sites
|
||||
|
|
|
@ -13,17 +13,15 @@ let
|
|||
|
||||
paths = [
|
||||
"archive"
|
||||
"automated-testing"
|
||||
"core"
|
||||
"daily/.+"
|
||||
"examples"
|
||||
"homelab"
|
||||
"podcast"
|
||||
"rss/bb.xml"
|
||||
"rss/daily.xml"
|
||||
"sites/default/files"
|
||||
"testing"
|
||||
"themes/custom/opdavies"
|
||||
"tome-test"
|
||||
];
|
||||
|
||||
port = ports.nginx-website-tome;
|
||||
|
@ -79,11 +77,36 @@ in
|
|||
globalRedirect = "www.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".ingress = {
|
||||
"oliverdavies.uk" = "http://localhost:${toString port}";
|
||||
"www.oliverdavies.uk" = "http://localhost:${toString port}";
|
||||
cloudflared.tunnels."e1514105-327f-4984-974e-e2fbaca76466" = {
|
||||
ingress = {
|
||||
"oliverdavies.uk" = "http://localhost:${toString port}";
|
||||
"tome.oliverdavies.uk" = "http://localhost:${toString tome.port}";
|
||||
"www.oliverdavies.uk" = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -131,10 +131,6 @@
|
|||
from = "/ansistrano-slides";
|
||||
to = "/talks/deploying-php-ansible-ansistrano";
|
||||
}
|
||||
{
|
||||
from = "/archive";
|
||||
to = "/blog";
|
||||
}
|
||||
{
|
||||
from = "/archive/2022-08-28/how-started-programming";
|
||||
to = "/daily/2022-08-28/how-started-programming";
|
||||
|
@ -2423,10 +2419,6 @@
|
|||
from = "/d7";
|
||||
to = "/drupal7";
|
||||
}
|
||||
{
|
||||
from = "/daily";
|
||||
to = "/blog";
|
||||
}
|
||||
{
|
||||
from = "/dcbristol-cfp";
|
||||
to = "https://www.papercall.io/drupalcamp-bristol-2019";
|
||||
|
|
|
@ -43,7 +43,10 @@ in
|
|||
enable = true;
|
||||
|
||||
dataDir = "/mnt/media/${service}";
|
||||
domain = "https://${cfg.url}";
|
||||
|
||||
settings = {
|
||||
PAPERLESS_URL = "https://${cfg.url}";
|
||||
};
|
||||
};
|
||||
|
||||
nginx.virtualHosts."${cfg.url}" = {
|
||||
|
|
|
@ -11,7 +11,6 @@ in
|
|||
|
||||
config.homelab.ports = {
|
||||
homepage-dashboard = 8097;
|
||||
mealie = 9001;
|
||||
pihole = 8082;
|
||||
tubearchivist = 8099;
|
||||
vaultwarden = 8022;
|
||||
|
@ -19,10 +18,8 @@ in
|
|||
nginx-website-sculpin = 8095;
|
||||
nginx-website-tome = 8098;
|
||||
|
||||
nginx-books = 9002;
|
||||
nginx-bootstrap-with-tailwind = 8081;
|
||||
nginx-eric = 8084;
|
||||
nginx-examples = 9003;
|
||||
nginx-florida-drupalcamp-tailwind-css = 8083;
|
||||
nginx-luke = 8094;
|
||||
nginx-phpsw-sculpin-demo = 8085;
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
imports = [
|
||||
./homepage
|
||||
./mastodon.nix
|
||||
./mealie.nix
|
||||
./samba.nix
|
||||
./uptime-kuma.nix
|
||||
./vaultwarden.nix
|
||||
|
@ -17,6 +16,7 @@
|
|||
|
||||
services = {
|
||||
postgresqlBackup.enable = true;
|
||||
tailscale.enable = true;
|
||||
};
|
||||
|
||||
services.gitea-actions-runner.instances.default = {
|
||||
|
@ -29,7 +29,6 @@
|
|||
gawk
|
||||
gitMinimal
|
||||
gnused
|
||||
jq
|
||||
nix
|
||||
nodejs
|
||||
wget
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
{ 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,
|
||||
inputs,
|
||||
lib,
|
||||
options,
|
||||
...
|
||||
}:
|
||||
|
||||
|
@ -20,6 +20,26 @@ in
|
|||
default = "${service}.${homelab.domain}";
|
||||
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 {
|
||||
|
@ -27,8 +47,6 @@ in
|
|||
${service} = {
|
||||
enable = true;
|
||||
|
||||
environmentFile = config.age.secrets.vaultwarden-env.path;
|
||||
|
||||
config = {
|
||||
DOMAIN = "https://${cfg.url}";
|
||||
ROCKET_ADDRESS = "127.0.0.1";
|
||||
|
@ -37,17 +55,11 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
nginx.virtualHosts.${cfg.url} = {
|
||||
forceSSL = true;
|
||||
useACMEHost = homelab.domain;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${toString config.services.${service}.config.ROCKET_PORT}";
|
||||
recommendedProxySettings = true;
|
||||
};
|
||||
cloudflared.tunnels.${homelab.cloudflared.tunnelId}.ingress = {
|
||||
"${cfg.url}" = "http://${config.services.${service}.config.ROCKET_ADDRESS}:${
|
||||
toString config.services.${service}.config.ROCKET_PORT
|
||||
}";
|
||||
};
|
||||
};
|
||||
|
||||
age.secrets.vaultwarden-env.file = "${inputs.self}/secrets/vaultwarden-env.age";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,39 +9,66 @@
|
|||
../common
|
||||
|
||||
./hardware-configuration.nix
|
||||
./cron.nix
|
||||
./neomutt.nix
|
||||
./newsboat
|
||||
./modules
|
||||
./secrets.nix
|
||||
./xserver.nix
|
||||
./services
|
||||
|
||||
../../users/opdavies.nix
|
||||
];
|
||||
|
||||
services = {
|
||||
auto-cpufreq.enable = true;
|
||||
geoclue2.enable = true;
|
||||
gvfs.enable = true;
|
||||
power-profiles-daemon.enable = false;
|
||||
printing.enable = true;
|
||||
pulseaudio.enable = false;
|
||||
thermald.enable = true;
|
||||
throttled.enable = true;
|
||||
upower.enable = true;
|
||||
cli = {
|
||||
kanata = {
|
||||
enable = true;
|
||||
|
||||
devices = [
|
||||
"/dev/input/by-path/platform-i8042-serio-0-event-kbd"
|
||||
];
|
||||
};
|
||||
|
||||
password-store = {
|
||||
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 = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
systemd-boot.configurationLimit = 10;
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 10;
|
||||
};
|
||||
|
||||
efi.canTouchEfiVariables = true;
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.settings.Manager = {
|
||||
DefaultTimeoutStopSec = "10s";
|
||||
};
|
||||
systemd.extraConfig = ''
|
||||
DefaultTimeoutStopSec=10s
|
||||
'';
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
|
@ -66,13 +93,17 @@
|
|||
abook
|
||||
acpi
|
||||
arandr
|
||||
backup-websites
|
||||
brightnessctl
|
||||
build-glove80
|
||||
cdrkit
|
||||
cpufrequtils
|
||||
displayselect
|
||||
dvdbackup
|
||||
dvdplusrwtools
|
||||
ffmpegthumbnailer
|
||||
gimp3
|
||||
gimp
|
||||
gscan2pdf
|
||||
gtypist
|
||||
hunspellDicts.en-gb-large
|
||||
isync
|
||||
|
@ -88,11 +119,15 @@
|
|||
peek
|
||||
pmutils
|
||||
shotwell
|
||||
stable.gscan2pdf
|
||||
slack
|
||||
sxiv
|
||||
tailscale
|
||||
ttyper
|
||||
upload-to-files
|
||||
xcape
|
||||
xsel
|
||||
yt-dlp
|
||||
zeroad
|
||||
zoom-us
|
||||
];
|
||||
}
|
||||
|
|
8
hosts/t480/modules/default.nix
Normal file
8
hosts/t480/modules/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
./cron.nix
|
||||
./neomutt.nix
|
||||
./newsboat
|
||||
./ollama.nix
|
||||
];
|
||||
}
|
10
hosts/t480/modules/ollama.nix
Normal file
10
hosts/t480/modules/ollama.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
services = {
|
||||
ollama = {
|
||||
enable = true;
|
||||
acceleration = "rocm";
|
||||
};
|
||||
|
||||
open-webui.enable = true;
|
||||
};
|
||||
}
|
17
hosts/t480/services/default.nix
Normal file
17
hosts/t480/services/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
}
|
18
hosts/t480/services/xserver.nix
Normal file
18
hosts/t480/services/xserver.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
|
||||
displayManager.sessionCommands = ''
|
||||
setbg &
|
||||
'';
|
||||
|
||||
displayManager.startx.enable = true;
|
||||
|
||||
xkb = {
|
||||
layout = "gb";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
|
||||
services.displayManager.ly.enable = true;
|
||||
}
|
46
hosts/t490/configuration.nix
Normal file
46
hosts/t490/configuration.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
{ 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;
|
||||
}
|
54
hosts/t490/hardware-configuration.nix
Normal file
54
hosts/t490/hardware-configuration.nix
Normal file
|
@ -0,0 +1,54 @@
|
|||
# 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;
|
||||
}
|
5
hosts/t490/hardware.nix
Normal file
5
hosts/t490/hardware.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
hardware = {
|
||||
bluetooth.enable = true;
|
||||
};
|
||||
}
|
11
hosts/t490/services/cron.nix
Normal file
11
hosts/t490/services/cron.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.cron = {
|
||||
enable = true;
|
||||
|
||||
systemCronJobs = [
|
||||
"0 8,20 * * * opdavies ${pkgs.isync}/bin/mbsync -a"
|
||||
];
|
||||
};
|
||||
}
|
30
hosts/t490/services/default.nix
Normal file
30
hosts/t490/services/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
}
|
25
hosts/t490/services/interception-tools.nix
Normal file
25
hosts/t490/services/interception-tools.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ 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]]
|
||||
'';
|
||||
};
|
||||
}
|
31
hosts/t490/services/redshift.nix
Normal file
31
hosts/t490/services/redshift.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{ 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
12
hosts/t490/services/sound.nix
Normal file
12
hosts/t490/services/sound.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
|
||||
pulse.enable = true;
|
||||
};
|
||||
}
|
9
hosts/t490/services/udev.nix
Normal file
9
hosts/t490/services/udev.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
services.udev = {
|
||||
enable = true;
|
||||
|
||||
extraRules = ''
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -2,8 +2,6 @@
|
|||
services.xserver = {
|
||||
enable = true;
|
||||
|
||||
displayManager.startx.enable = true;
|
||||
|
||||
xkb = {
|
||||
layout = "gb";
|
||||
variant = "";
|
7
justfile
7
justfile
|
@ -13,7 +13,8 @@ check:
|
|||
nix flake check
|
||||
|
||||
clean:
|
||||
nh clean all
|
||||
nix store optimise --verbose
|
||||
nix store gc --verbose
|
||||
|
||||
collect-garbage:
|
||||
nix-collect-garbage -d
|
||||
|
@ -29,7 +30,7 @@ test *args:
|
|||
@just _nixos test {{ args }}
|
||||
|
||||
update:
|
||||
nix flake update --commit-lock-file
|
||||
nix flake update
|
||||
|
||||
_nixos command *args:
|
||||
nh os {{ command }} . {{ args }}
|
||||
sudo nixos-rebuild {{ command }} --flake . {{ args }}
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
flake.modules.nixos.desktop = {
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
services.blueman.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
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: {}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
{ 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui.programs.chromium.enable = true;
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui.programs.librewolf.enable = true;
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
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
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui.programs.librewolf.languagePacks = [
|
||||
"en-GB"
|
||||
];
|
||||
}
|
|
@ -1,70 +0,0 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
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" ];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui.programs.librewolf.profiles.default.search = {
|
||||
default = "ddg";
|
||||
force = true;
|
||||
privateDefault = "ddg";
|
||||
};
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui.programs.qutebrowser.enable = true;
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
{ 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"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.qutebrowser.package = pkgs.stable.qutebrowser;
|
||||
};
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
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={}";
|
||||
};
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui.programs.qutebrowser.settings = {
|
||||
colors.webpage.darkmode.enabled = true;
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
flake.modules.nixos.pc =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [ pkgs.bc ];
|
||||
};
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.nixos.pc.programs.dconf.enable = true;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
flake.modules.nixos.desktop.imports = with config.flake.modules.nixos; [
|
||||
pc
|
||||
];
|
||||
}
|
|
@ -1,83 +0,0 @@
|
|||
{ 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.";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.base.programs.direnv.enable = true;
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.base.programs.direnv.nix-direnv.enable = true;
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.base.programs.direnv.silent = true;
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.base.programs.direnv.enableZshIntegration = true;
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
{ 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
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
{ 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}
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
{ 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}
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
{ 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" ];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui =
|
||||
{ config, ... }:
|
||||
{
|
||||
home = {
|
||||
file."${config.home.sessionVariables.XINITRC}".source = ./xinitrc;
|
||||
|
||||
sessionVariables.XINITRC = "${config.xdg.configHome}/X11/xinitrc";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
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();
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
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,3 +0,0 @@
|
|||
{
|
||||
flake.modules.nixos.desktop.services.fwupd.enable = true;
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui.services.flameshot.enable = true;
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui =
|
||||
{ config, ... }:
|
||||
{
|
||||
services.flameshot.settings.General = {
|
||||
disabledTrayIcon = false;
|
||||
saveAfterCopy = true;
|
||||
savePath = "${config.xdg.userDirs.pictures}/Screenshots";
|
||||
showHelp = false;
|
||||
uiColor = "#60a5fa";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
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
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.base.programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.base.home.sessionVariables = {
|
||||
FZF_DEFAULT_OPTS = "--reverse";
|
||||
};
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
nixpkgs.allowedUnfreePackages = [
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
];
|
||||
|
||||
flake.modules.nixos.desktop.programs.steam.enable = true;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
flake.modules.homeManager.gui =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ zeroad ];
|
||||
};
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homManager.gui.services.gammastep.enable = true;
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
flake.modules.homManager.gui.services.gammastep.provider = "geoclue2";
|
||||
}
|
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