Compare commits

..

1 commit

Author SHA1 Message Date
flake-bot
60764623a4 flake.lock: Update
Flake lock file updates:

• Updated input 'bop-scripts':
    'github:breadonpenguins/scripts/d04bcbe63176e623e1ce8edc4c3840c506a28d96?narHash=sha256-bfAmJ1IY0B6eNbJvoWkUMQ7Ya4ShrIoVSdQrnE/cn40%3D' (2025-09-03)
  → 'github:breadonpenguins/scripts/1396a09a206dbd6f9a08ffa7a5603e6d55ae5f00?narHash=sha256-SpQ4TMOsYCr9EoCdUZ1GeX5cOoPHfxEYyRakYznc91w%3D' (2025-10-12)
• Updated input 'disko':
    'github:nix-community/disko/a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1?narHash=sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8%3D' (2025-09-01)
  → 'github:nix-community/disko/67ff9807dd148e704baadbd4fd783b54282ca627?narHash=sha256-IGmaEf3Do8o5Cwp1kXBN1wQmZwQN3NLfq5t4nHtVtcU%3D' (2025-09-19)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751?narHash=sha256-%2BuWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw%3D' (2025-09-01)
  → 'github:hercules-ci/flake-parts/758cf7296bee11f1706a574c77d072b8a7baa881?narHash=sha256-wfG0S7pltlYyZTM%2BqqlhJ7GMw2fTF4mLKCIVhLii/4M%3D' (2025-10-01)
• Updated input 'git-repo-updater':
    'git+https://code.oliverdavies.uk/opdavies/git-repo-updater?ref=refs/heads/main&rev=63235768261976efe0d9c825e69c44fff8c80e5d' (2025-09-04)
  → 'git+https://code.oliverdavies.uk/opdavies/git-repo-updater?ref=refs/heads/main&rev=19591ad8e1f3c261e84b487307c8534dd67a3707' (2025-09-05)
• Updated input 'home-manager':
    'github:nix-community/home-manager/b08f8737776f10920c330657bee8b95834b7a70f?narHash=sha256-4ve/3ah5H/SpL2m3qmZ9GU%2BVinQYp2MN1G7GamimTds%3D' (2025-09-04)
  → 'github:nix-community/home-manager/722792af097dff5790f1a66d271a47759f477755?narHash=sha256-mlDqR1Ntgs9uYYEAUR1IhamKBO0lxoNS4zGLzEZaY0A%3D' (2025-10-17)
• Updated input 'nix-index-database':
    'github:nix-community/nix-index-database/3fe768e1f058961095b4a0d7a2ba15dc9736bdc6?narHash=sha256-/glV6VAq8Va3ghIbmhET3S1dzkbZqicsk5h%2BFtvwiPE%3D' (2025-08-31)
  → 'github:nix-community/nix-index-database/c9f5ea45f25652ec2f771f9426ccacb21cbbaeaa?narHash=sha256-OD7QnaGEVNdukYEbJbUNWPsvnDrpbZOZxVIk6Pt9Jhw%3D' (2025-10-12)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/ba6fab29768007e9f2657014a6e134637100c57d?narHash=sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac%3D' (2025-09-03)
  → 'github:NixOS/nixos-hardware/9ed85f8afebf2b7478f25db0a98d0e782c0ed903?narHash=sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b%2BVolKU%3D' (2025-10-10)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d0fc30899600b9b3466ddb260fd83deb486c32f1?narHash=sha256-rw/PHa1cqiePdBxhF66V7R%2BWAP8WekQ0mCDG4CFqT8Y%3D' (2025-09-02)
  → 'github:nixos/nixpkgs/544961dfcce86422ba200ed9a0b00dd4b1486ec5?narHash=sha256-EVAqOteLBFmd7pKkb0%2BFIUyzTF61VKi7YmvP1tw4nEw%3D' (2025-10-15)
• Updated input 'nixvim':
    'github:nix-community/nixvim/63496f00c681b3e200bd17878a43ec68b7139a66?narHash=sha256-N4PjGA0rittpNZGscKPel%2Bmr/dMcKF73j0yr4rbG3T0%3D' (2025-09-04)
  → 'github:nix-community/nixvim/5275e258bf89e4947409ba36e362031ca491c67c?narHash=sha256-z6%2BMKQBXfeZTdUK%2BPXbmBydaUuJK%2Bk3iFnTanRvdkXg%3D' (2025-10-16)
• Updated input 'nixvim/nuschtosSearch':
    'github:NuschtOS/search/6f3efef888b92e6520f10eae15b86ff537e1d2ea?narHash=sha256-WiOO7GUOsJ4/DoMy2IC5InnqRDSo2U11la48vCCIjjY%3D' (2025-08-18)
  → 'github:NuschtOS/search/7d4c0fc4ffe3bd64e5630417162e9e04e64b27a4?narHash=sha256-igrxT%2B/MnmcftPOHEb%2BXDwAMq3Xg1Xy7kVYQaHhPlAg%3D' (2025-09-23)
• Updated input 'nur':
    'github:nix-community/NUR/985abf0197c75dd64c24691a7e5e0acf308d7f20?narHash=sha256-Rps0Ga0g/TdY49rR2ZRBsdBYybSzPccEsaI9IvwuE98%3D' (2025-09-05)
  → 'github:nix-community/NUR/e48730db08cb5dcc07f9cc2d15865d7e2135ee2e?narHash=sha256-NSyVsKRZ/yhj4pj70lWRz4Iz7YEEEgHBAuTinyWZLcU%3D' (2025-10-17)
• Updated input 'rwxrob-dot':
    'github:rwxrob/dot/90794c77061f270078e847af45c376610768c6e2?narHash=sha256-kGpHL2l9p/yOtmG%2BAZvOb0Y5mH1d%2BZoh2dd5N3Xjizc%3D' (2025-07-07)
  → 'github:rwxrob/dot/d0d9eccb3834b1dbde2b133e811d71a05b9ac7f3?narHash=sha256-gSR2fOzlWA7dtWEsoVjUIdLjZU2gBAxm0JLbk7TEo%2Bg%3D' (2025-09-20)
• Updated input 'zet':
    'git+https://code.oliverdavies.uk/opdavies/cmd-zet?ref=refs/heads/main&rev=665ef94ca97cf54a563e268cfcf5c447bfa6cef8' (2025-10-01)
  → 'git+https://code.oliverdavies.uk/opdavies/cmd-zet?ref=refs/heads/main&rev=6763ab8a805a352bf6e8a9ee6de9e57957a87e33' (2025-10-13)
2025-10-17 07:01:27 +01:00
91 changed files with 1852 additions and 965 deletions

View 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"'"
}'

212
flake.lock generated
View file

@ -10,11 +10,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1762618334,
"narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
"lastModified": 1754433428,
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
"owner": "ryantm",
"repo": "agenix",
"rev": "fcdea223397448d35d9b31f798479227e80183f6",
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
"type": "github"
},
"original": {
@ -26,11 +26,11 @@
"bop-scripts": {
"flake": false,
"locked": {
"lastModified": 1762468291,
"narHash": "sha256-kvhro91rmPgSX8LYLTsesLJlOlKp1YJsIg9e+Cb9u6o=",
"lastModified": 1760234399,
"narHash": "sha256-SpQ4TMOsYCr9EoCdUZ1GeX5cOoPHfxEYyRakYznc91w=",
"owner": "breadonpenguins",
"repo": "scripts",
"rev": "c1c94c3f4b89076dc8f788fae12f639dda663ddb",
"rev": "1396a09a206dbd6f9a08ffa7a5603e6d55ae5f00",
"type": "github"
},
"original": {
@ -39,6 +39,22 @@
"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": [
@ -82,24 +98,6 @@
"type": "github"
}
},
"devshell_2": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"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": [
@ -107,11 +105,11 @@
]
},
"locked": {
"lastModified": 1762276996,
"narHash": "sha256-TtcPgPmp2f0FAnc+DMEw4ardEgv1SGNR3/WFGH0N19M=",
"lastModified": 1758287904,
"narHash": "sha256-IGmaEf3Do8o5Cwp1kXBN1wQmZwQN3NLfq5t4nHtVtcU=",
"owner": "nix-community",
"repo": "disko",
"rev": "af087d076d3860760b3323f6b583f4d828c1ac17",
"rev": "67ff9807dd148e704baadbd4fd783b54282ca627",
"type": "github"
},
"original": {
@ -120,16 +118,32 @@
"type": "github"
}
},
"edit-alternate-vim": {
"flake": false,
"locked": {
"lastModified": 1635180789,
"narHash": "sha256-mEKnqYAhgrdxPRoKf4S4yYecdFIHGg8bDxpqPuC1+S4=",
"owner": "tjdevries",
"repo": "edit_alternate.vim",
"rev": "ef3019115d9bb7ffd691d2859eda213dd99e0b0a",
"type": "github"
},
"original": {
"owner": "tjdevries",
"repo": "edit_alternate.vim",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1762440070,
"narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
"lastModified": 1759362264,
"narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
"rev": "758cf7296bee11f1706a574c77d072b8a7baa881",
"type": "github"
},
"original": {
@ -195,13 +209,13 @@
"narHash": "sha256-DpZgkdZELTZ/F/O+Xgj81E+01S5Zp2JCMa8zruEZe9o=",
"ref": "refs/heads/main",
"rev": "19591ad8e1f3c261e84b487307c8534dd67a3707",
"revCount": 37,
"revCount": 1,
"type": "git",
"url": "https://git.oliverdavies.uk/opdavies/git-repo-updater"
"url": "https://code.oliverdavies.uk/opdavies/git-repo-updater"
},
"original": {
"type": "git",
"url": "https://git.oliverdavies.uk/opdavies/git-repo-updater"
"url": "https://code.oliverdavies.uk/opdavies/git-repo-updater"
}
},
"home-manager": {
@ -232,11 +246,11 @@
]
},
"locked": {
"lastModified": 1762721397,
"narHash": "sha256-E428EuouA4nFTNlLuqlL4lVR78X+EbBIqDqsBFnB79w=",
"lastModified": 1760662441,
"narHash": "sha256-mlDqR1Ntgs9uYYEAUR1IhamKBO0lxoNS4zGLzEZaY0A=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b8645b18b0f5374127bbade6de7381ef0b3d5720",
"rev": "722792af097dff5790f1a66d271a47759f477755",
"type": "github"
},
"original": {
@ -248,11 +262,11 @@
},
"import-tree": {
"locked": {
"lastModified": 1762327901,
"narHash": "sha256-AJ96FNj50DU0bTyIzAPkPOjCZTHqjURVjok8qoXvmqM=",
"lastModified": 1752730890,
"narHash": "sha256-GES8fapSLGz36MMPRVNkSUWXUTtqvGQNXHjRmRLfJUY=",
"owner": "vic",
"repo": "import-tree",
"rev": "90fa129798be99cde036b78658e89475710966a1",
"rev": "6ebb8cb87987b20264c09296166543fd3761d274",
"type": "github"
},
"original": {
@ -296,11 +310,11 @@
]
},
"locked": {
"lastModified": 1762660502,
"narHash": "sha256-C9F1C31ys0V7mnp4EcDy7L1cLZw/sCTEXqqTtGnvu08=",
"lastModified": 1760241904,
"narHash": "sha256-OD7QnaGEVNdukYEbJbUNWPsvnDrpbZOZxVIk6Pt9Jhw=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "15c5451c63f4c612874a43846bfe3fa828b03eee",
"rev": "c9f5ea45f25652ec2f771f9426ccacb21cbbaeaa",
"type": "github"
},
"original": {
@ -311,11 +325,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1762463231,
"narHash": "sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7+/YE=",
"lastModified": 1760106635,
"narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "52113c4f5cfd1e823001310e56d9c8d0699a6226",
"rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903",
"type": "github"
},
"original": {
@ -327,11 +341,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1762596750,
"narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=",
"lastModified": 1760524057,
"narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e",
"rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5",
"type": "github"
},
"original": {
@ -343,11 +357,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"lastModified": 1754788789,
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
"type": "github"
},
"original": {
@ -372,22 +386,6 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1722073938,
"narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": [
@ -400,11 +398,11 @@
"systems": "systems_3"
},
"locked": {
"lastModified": 1762691346,
"narHash": "sha256-dyYnqvYrgViB22inBqNern/XSWtOiweP8NTfJQJeTis=",
"lastModified": 1760616351,
"narHash": "sha256-z6+MKQBXfeZTdUK+PXbmBydaUuJK+k3iFnTanRvdkXg=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "faf1fb4b7cd069ce44469e45c3259b7bcf106f81",
"rev": "5275e258bf89e4947409ba36e362031ca491c67c",
"type": "github"
},
"original": {
@ -421,11 +419,11 @@
]
},
"locked": {
"lastModified": 1762724684,
"narHash": "sha256-B24ywaTUd9BYkK3qHfl0MubCLnO4Bk8cRSQmIvfofco=",
"lastModified": 1760680674,
"narHash": "sha256-NSyVsKRZ/yhj4pj70lWRz4Iz7YEEEgHBAuTinyWZLcU=",
"owner": "nix-community",
"repo": "NUR",
"rev": "efc27c839b15d0ff15d58fb09035a93dea7f85f5",
"rev": "e48730db08cb5dcc07f9cc2d15865d7e2135ee2e",
"type": "github"
},
"original": {
@ -444,11 +442,11 @@
]
},
"locked": {
"lastModified": 1761730856,
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
"lastModified": 1758662783,
"narHash": "sha256-igrxT+/MnmcftPOHEb+XDwAMq3Xg1Xy7kVYQaHhPlAg=",
"owner": "NuschtOS",
"repo": "search",
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
"rev": "7d4c0fc4ffe3bd64e5630417162e9e04e64b27a4",
"type": "github"
},
"original": {
@ -461,7 +459,9 @@
"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",
@ -473,9 +473,11 @@
"nixvim": "nixvim",
"nur": "nur",
"rwxrob-dot": "rwxrob-dot",
"standard-vim": "standard-vim",
"vim-heritage": "vim-heritage",
"vim-textobj-xmlattr": "vim-textobj-xmlattr",
"voidrice": "voidrice",
"z": "z"
"zet": "zet"
}
},
"rwxrob-dot": {
@ -494,6 +496,22 @@
"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": {
"locked": {
"lastModified": 1681028828,
@ -539,6 +557,22 @@
"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": {
@ -571,28 +605,20 @@
"type": "github"
}
},
"z": {
"inputs": {
"devshell": "devshell_2",
"flake-parts": [
"flake-parts"
],
"nixpkgs": [
"nixpkgs"
]
},
"zet": {
"flake": false,
"locked": {
"lastModified": 1762731584,
"narHash": "sha256-qSN44lGSceoqkUeksXbEAcGPeTf9yJBGQMWafh8cZuw=",
"lastModified": 1760382896,
"narHash": "sha256-VMYs159/oGaA7bSYDRlIY6VgwevpyKeZ2Xxj96IAdMo=",
"ref": "refs/heads/main",
"rev": "184accfd1fadb9580f2af8873ce0f2a70eeb8b49",
"revCount": 165,
"rev": "6763ab8a805a352bf6e8a9ee6de9e57957a87e33",
"revCount": 74,
"type": "git",
"url": "https://git.oliverdavies.uk/opdavies/z"
"url": "https://code.oliverdavies.uk/opdavies/cmd-zet"
},
"original": {
"type": "git",
"url": "https://git.oliverdavies.uk/opdavies/z"
"url": "https://code.oliverdavies.uk/opdavies/cmd-zet"
}
}
},

View file

@ -10,18 +10,28 @@
url = "github:breadonpenguins/scripts";
};
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://git.oliverdavies.uk/opdavies/git-repo-updater";
url = "git+https://code.oliverdavies.uk/opdavies/git-repo-updater";
};
home-manager = {
@ -58,6 +68,16 @@
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";
@ -68,10 +88,9 @@
url = "github:lukesmithxyz/voidrice";
};
z = {
inputs.flake-parts.follows = "flake-parts";
inputs.nixpkgs.follows = "nixpkgs";
url = "git+https://git.oliverdavies.uk/opdavies/z";
zet = {
flake = false;
url = "git+https://code.oliverdavies.uk/opdavies/cmd-zet";
};
};

View file

@ -2,12 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{
inputs,
lib,
pkgs,
...
}:
{ inputs, pkgs, ... }:
{
imports = [
@ -24,7 +19,12 @@
../../users/opdavies.nix
];
services.logind.settings.Login.HandleLidSwitchExternalPower = "ignore";
# TODO: why didn't it work when adding this to jitsi.nix?
nixpkgs.config.permittedInsecurePackages = [
"jitsi-meet-1.0.8043"
];
services.logind.lidSwitchExternalPower = "ignore";
boot.loader = {
efi.canTouchEfiVariables = true;

View file

@ -9,7 +9,8 @@
services = {
audiobookshelf.enable = true;
home-assistant.enable = true;
freshrss.enable = true;
homepage-dashboard.enable = true;
jitsi.enable = true;
paperless.enable = true;
peertube.enable = true;
tubearchivist.enable = true;

View file

@ -26,8 +26,6 @@
"code"
"eric"
"florida-drupalcamp-tailwind-css"
"freshrss"
"git"
"home"
"jellyfin"
"luke"

View file

@ -15,6 +15,26 @@ in
default = "audiobookshelf.${homelab.domain}";
type = types.str;
};
homepage.name = mkOption {
default = "Audiobookshelf";
type = types.str;
};
homepage.description = mkOption {
default = "Self-hosted audiobook and podcast server";
type = types.str;
};
homepage.icon = mkOption {
default = "audiobookshelf";
type = types.str;
};
homepage.category = mkOption {
default = "Media";
type = types.str;
};
};
config = mkIf cfg.enable {

View file

@ -2,7 +2,7 @@
let
service = "pihole";
port = config.homelab.ports.services.${service};
port = config.homelab.ports.${service};
in
{
virtualisation.oci-containers.containers.${service} = {

View file

@ -13,7 +13,7 @@ let
service = "tubearchivist";
homelab = config.homelab;
port = homelab.ports.services.${service};
port = homelab.ports.${service};
in
{
options.homelab.services.${service} = {
@ -23,6 +23,26 @@ in
default = "${service}.${homelab.domain}";
type = types.str;
};
homepage.name = mkOption {
default = "Tube Archivist";
type = types.str;
};
homepage.description = mkOption {
default = "Your self hosted YouTube media server";
type = types.str;
};
homepage.icon = mkOption {
default = "tube-archivist";
type = types.str;
};
homepage.category = mkOption {
default = "Media";
type = types.str;
};
};
config = mkIf cfg.enable {
@ -33,7 +53,6 @@ in
virtualisation.oci-containers.containers."archivist-es" = {
image = "bbilly1/tubearchivist-es";
pull = "newer";
environment = {
"ES_JAVA_OPTS" = "-Xms1g -Xmx1g";
@ -136,7 +155,6 @@ in
virtualisation.oci-containers.containers."tubearchivist" = {
image = "bbilly1/tubearchivist";
pull = "newer";
environment = {
"ES_URL" = "http://archivist-es:9200";

View file

@ -23,10 +23,10 @@ with lib;
./cloudflared.nix
./containers
./forgejo.nix
./freshrss.nix
./home-assistant.nix
./immich.nix
./jellyfin.nix
./jitsi.nix
./nginx
./paperless.nix
./peertube.nix

View file

@ -7,7 +7,7 @@
settings = {
server = {
DOMAIN = "git.oliverdavies.uk";
DOMAIN = "code.oliverdavies.uk";
LANDING_PAGE = "explore";
ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}";
SSH_DOMAIN = "ssh.oliverdavies.uk";

View file

@ -1,45 +0,0 @@
{
config,
lib,
...
}:
let
inherit (lib)
mkEnableOption
mkIf
mkOption
types
;
cfg = homelab.services.${service};
homelab = config.homelab;
service = "freshrss";
in
{
options.homelab.services.${service} = {
enable = mkEnableOption "Enable ${service}";
url = mkOption {
default = "freshrss.${homelab.domain}";
type = types.str;
};
};
config = mkIf cfg.enable {
services = {
${service} = {
enable = true;
baseUrl = "https://${cfg.url}";
passwordFile = config.age.secrets.freshrss-password-file.path;
virtualHost = cfg.url;
};
nginx.virtualHosts.${cfg.url} = {
useACMEHost = homelab.domain;
forceSSL = true;
};
};
};
}

View file

@ -15,6 +15,26 @@ in
default = "home.${homelab.domain}";
type = types.str;
};
homepage.name = mkOption {
default = "Home Assisant";
type = types.str;
};
homepage.description = mkOption {
default = "Open source home automation that puts local control and privacy first.";
type = types.str;
};
homepage.icon = mkOption {
default = "home-assistant";
type = types.str;
};
homepage.category = mkOption {
default = "Services";
type = types.str;
};
};
config = mkIf cfg.enable {

View file

@ -2,6 +2,7 @@
services.jellyfin = {
enable = true;
configDir = "/mnt/media/jellyfin";
group = "media";
openFirewall = true;
};

View file

@ -0,0 +1,41 @@
{ config, lib, ... }:
let
cfg = config.homelab.services.${service};
homelab = config.homelab;
service = "jitsi";
inherit (lib) mkEnableOption mkOption types;
in
{
options.homelab.services.${service} = {
enable = mkEnableOption "Enable ${service}";
url = mkOption {
default = "meet.${homelab.domain}";
type = types.str;
};
};
config = lib.mkIf cfg.enable {
services = {
jitsi-meet = {
enable = false;
hostName = cfg.url;
secureDomain.enable = true;
};
nginx.virtualHosts.${cfg.url} = {
enableACME = false;
forceSSL = false;
};
cloudflared.tunnels.${homelab.cloudflared.tunnelId}.ingress = {
# TODO: is this the correct port?
${cfg.url} = "http://localhost:5280";
};
};
};
}

View file

@ -51,8 +51,5 @@ in
users.users.${config.services.nginx.user}.extraGroups = [ "acme" ];
imports = [
./oliverdavies.uk
./ponthirtaekwondo.co.uk.nix
];
imports = [ ./www.oliverdavies.uk ];
}

View file

@ -1,51 +0,0 @@
{ config, ... }:
let
name = "ponthirtaekwondo.co.uk";
ports = config.homelab.ports;
port = ports.nginx.ponthir-taekwondo;
in
{
security.acme.certs = {
"ponthirtaekwondo.co.uk" = {
domain = "ponthirtaekwondo.co.uk";
dnsProvider = "cloudflare";
email = "oliver@oliverdavies.uk";
environmentFile = config.age.secrets.cloudflare.path;
webroot = null;
extraDomainNames = [
"www.ponthirtaekwondo.co.uk"
];
};
};
services = {
nginx.virtualHosts = {
"www.${name}" = {
root = "/var/www/vhosts/${name}";
listen = [
{
inherit port;
addr = "localhost";
}
];
locations."/".tryFiles = "$uri $uri.html $uri/index.html =404";
extraConfig = ''
port_in_redirect off;
# Remove trailing slashes.
rewrite ^/(.*)/$ /$1 permanent;
'';
};
};
cloudflared.tunnels."e1514105-327f-4984-974e-e2fbaca76466".ingress = {
"www.ponthirtaekwondo.co.uk" = "http://localhost:${toString port}";
};
};
}

View file

@ -5,7 +5,7 @@ let
name: overrides:
let
root = "/var/www/vhosts/${name}" + (overrides.rootSuffix or "");
port = ports.nginx.${name};
port = ports."nginx-${name}";
url = "${name}.oliverdavies.uk";
in
{ inherit port root url; } // overrides;

View file

@ -2,7 +2,7 @@
let
ports = config.homelab.ports;
port = ports.nginx.website-sculpin;
port = ports.nginx-website-sculpin;
redirects = builtins.concatStringsSep "\n" (
map (r: "rewrite ^${r.from}/?$ ${r.to} redirect;") (import ./redirects.nix)
@ -26,7 +26,7 @@ let
"themes/custom/opdavies"
];
port = ports.nginx.website-tome;
port = ports.nginx-website-tome;
};
tomeLocations = builtins.listToAttrs (

View file

@ -15,6 +15,26 @@ in
default = "${service}.${homelab.domain}";
type = types.str;
};
homepage.name = mkOption {
default = "Paperless-ngx";
type = types.str;
};
homepage.description = mkOption {
default = "Document management system";
type = types.str;
};
homepage.icon = mkOption {
default = "paperless";
type = types.str;
};
homepage.category = mkOption {
default = "Services";
type = types.str;
};
};
config = mkIf cfg.enable {

View file

@ -25,6 +25,26 @@ in
default = "videos.${homelab.domain}";
type = types.str;
};
homepage.name = mkOption {
default = "Peertube";
type = types.str;
};
homepage.description = mkOption {
default = "A free and open-source, decentralized, ActivityPub federated video platform";
type = types.str;
};
homepage.icon = mkOption {
default = "peertube";
type = types.str;
};
homepage.category = mkOption {
default = "Media";
type = types.str;
};
};
config = mkIf cfg.enable {

View file

@ -6,37 +6,33 @@ in
{
options.homelab.ports = mkOption {
internal = true;
type = types.attrsOf (types.attrsOf types.port);
type = types.attrsOf types.port;
};
config.homelab.ports = {
services = {
homepage-dashboard = 8097;
mealie = 9001;
pihole = 8082;
tubearchivist = 8099;
vaultwarden = 8022;
};
nginx = {
website-sculpin = 8095;
website-tome = 8098;
nginx-website-sculpin = 8095;
nginx-website-tome = 8098;
books = 9002;
bootstrap-with-tailwind = 8081;
eric = 8084;
examples = 9003;
florida-drupalcamp-tailwind-css = 8083;
luke = 8094;
phpsw-sculpin-demo = 8085;
ponthir-taekwondo = 9004;
rebuilding-acquia = 8086;
rebuilding-bartik = 8087;
rebuilding-bristol-js = 8088;
rebuilding-symfony = 8089;
tailwindcss-demo = 8090;
talking-drupal-tailwindcss = 8093;
wp-tailwind = 8091;
zet = 8092;
};
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;
nginx-rebuilding-acquia = 8086;
nginx-rebuilding-bartik = 8087;
nginx-rebuilding-bristol-js = 8088;
nginx-rebuilding-symfony = 8089;
nginx-tailwindcss-demo = 8090;
nginx-talking-drupal-tailwindcss = 8093;
nginx-wp-tailwind = 8091;
nginx-zet = 8092;
};
}

View file

@ -2,6 +2,5 @@
age.secrets = {
cloudflare.file = ../../secrets/cloudflare.age;
cloudflared.file = ../../secrets/cloudflared-credentials.age;
freshrss-password-file.file = ../../secrets/freshrss-password-file.age;
};
}

View file

@ -7,6 +7,8 @@
{
imports = [
./homepage
./mastodon.nix
./mealie.nix
./samba.nix
./uptime-kuma.nix

View file

@ -0,0 +1,63 @@
{ config, lib, ... }:
with lib;
let
cfg = homelab.services.${service};
homelab = config.homelab;
service = "homepage-dashboard";
in
{
options.homelab.services.${service} = {
enable = mkEnableOption "Enable ${service}";
url = mkOption {
default = "${config.networking.hostName}.${homelab.domain}";
type = types.str;
};
};
config = mkIf cfg.enable {
services = {
${service} = {
enable = true;
listenPort = homelab.ports.${service};
openFirewall = true;
customCSS = ''
#information-widgets {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
div#footer {
display: none;
}
.services-group {
margin-bottom: 3rem;
}
'';
services = (import ./services.nix { inherit config lib; });
settings = {
headerStyle = "clean";
hideVersion = "true";
layout = (import ./layout.nix);
statusStyle = "dot";
};
};
glances.enable = true;
nginx.virtualHosts.${cfg.url} = {
forceSSL = true;
useACMEHost = homelab.domain;
locations."/".proxyPass =
"http://localhost:${toString config.services.homepage-dashboard.listenPort}";
};
};
};
}

View file

@ -0,0 +1,57 @@
{ config }:
{
Glances =
let
port = toString config.services.glances.port;
in
[
{
Info = {
widget = {
type = "glances";
url = "http://localhost:${port}";
metric = "info";
chart = false;
version = 4;
};
};
}
{
"CPU Temp" = {
widget = {
type = "glances";
url = "http://localhost:${port}";
metric = "sensor:Package id 0";
chart = false;
version = 4;
};
};
}
{
Processes = {
widget = {
type = "glances";
url = "http://localhost:${port}";
metric = "process";
chart = false;
version = 4;
};
};
}
{
Network = {
widget = {
type = "glances";
url = "http://localhost:${port}";
metric = "network:enp0s20f0u1";
chart = false;
version = 4;
};
};
}
];
}

View file

@ -0,0 +1,23 @@
[
{
Glances = {
columns = 4;
header = false;
style = "row";
};
}
{
Media = {
header = true;
style = "column";
};
}
{
Services = {
header = true;
style = "column";
};
}
]

View file

@ -0,0 +1,32 @@
{ config, lib }:
with lib;
let
homelab = config.homelab.services;
homepageCategories = [
"Media"
"Services"
];
homepageServices =
category:
(attrsets.filterAttrs (
name: value: value ? homepage && value.homepage.category == category
) homelab);
services = lists.forEach homepageCategories (cat: {
"${cat}" =
lib.lists.forEach (lib.attrsets.mapAttrsToList (name: value: name) (homepageServices "${cat}"))
(x: {
"${homelab.${x}.homepage.name}" = {
icon = homelab.${x}.homepage.icon;
description = homelab.${x}.homepage.description;
href = "https://${homelab.${x}.url}";
siteMonitor = "https://${homelab.${x}.url}";
};
});
});
in
services ++ [ (import ./glances.nix { inherit config; }) ]

View file

@ -0,0 +1,84 @@
{ config, lib, ... }:
with lib;
let
cfg = config.homelab.services.${service};
domain = "oliverdavies.uk";
service = "mastodon";
in
{
options.homelab.services.${service} = {
url = mkOption {
default = "social.${domain}";
internal = true;
type = types.str;
};
};
config = {
services = {
${service} = {
enable = false;
configureNginx = false;
localDomain = domain;
streamingProcesses = 3;
extraConfig = {
SINGLE_USER_MODE = "true";
WEB_DOMAIN = cfg.url;
};
smtp = {
fromAddress = "social@${domain}";
};
};
cloudflared.tunnels.${config.homelab.cloudflared.tunnelId} = {
ingress = {
"${cfg.url}" = "http://localhost";
};
};
nginx = {
upstreams.mastodon-streaming = {
extraConfig = ''
least_conn;
'';
servers = builtins.listToAttrs (
map (i: {
name = "unix:/run/mastodon-streaming/streaming-${toString i}.socket";
value = { };
}) (range 1 config.services.mastodon.streamingProcesses)
);
};
virtualHosts."social.oliverdavies.uk" = {
root = "${config.services.mastodon.package}/public/";
locations = {
"/".tryFiles = "$uri @proxy";
"/api/v1/streaming/" = {
proxyPass = "http://mastodon-streaming";
proxyWebsockets = true;
};
"/system/".alias = "/var/lib/mastodon/public-system/";
"@proxy" = {
proxyPass = "http://unix:/run/mastodon-web/web.socket";
proxyWebsockets = true;
};
};
extraConfig = ''
client_max_body_size 100m;
'';
};
};
};
};
}

View file

@ -10,7 +10,7 @@ in
database.createLocally = true;
port = ports.services.mealie;
port = ports.mealie;
settings.ALLOW_SIGNUP = "false";
};

View file

@ -15,6 +15,26 @@ in
default = "uptime.${homelab.domain}";
type = types.str;
};
homepage.name = mkOption {
default = "Uptime Kuma";
type = types.str;
};
homepage.description = mkOption {
default = "A fancy self-hosted monitoring tool";
type = types.str;
};
homepage.icon = mkOption {
default = "uptime-kuma";
type = types.str;
};
homepage.category = mkOption {
default = "Services";
type = types.str;
};
};
config = mkIf cfg.enable {

View file

@ -32,7 +32,7 @@ in
config = {
DOMAIN = "https://${cfg.url}";
ROCKET_ADDRESS = "127.0.0.1";
ROCKET_PORT = homelab.ports.services.${service};
ROCKET_PORT = homelab.ports.${service};
SIGNUPS_ALLOWED = false;
};
};

View file

@ -11,6 +11,7 @@
./hardware-configuration.nix
./cron.nix
./neomutt.nix
./newsboat
./secrets.nix
./xserver.nix
@ -94,10 +95,4 @@
xsel
yt-dlp
];
services.logind.settings.Login = {
HandleLidSwitch = "supend-then-hibernate";
HandleLidSwitchExternalPower = "ignore";
HandlePowerKey = "supend-then-hibernate";
};
}

View file

@ -5,7 +5,7 @@
enable = true;
systemCronJobs = [
"*/15 * * * * opdavies ${pkgs.imapfilter}/bin/imapfilter -c ~/Repos/git.oliverdavies.uk/opdavies/email-filters/config.lua"
"*/15 * * * * opdavies ${pkgs.imapfilter}/bin/imapfilter -c ~/Repos/code.oliverdavies.uk/opdavies/email-filters/config.lua"
"0 8,20 * * * opdavies ${pkgs.isync}/bin/mbsync -a"
];
};

View file

@ -0,0 +1,30 @@
{
home-manager.users.opdavies.programs.newsboat = {
enable = true;
extraConfig = ''
bind-key j down
bind-key k up
bind-key j next articlelist
bind-key k prev articlelist
bind-key J next-feed articlelist
bind-key K prev-feed articlelist
bind-key g home
bind-key G end
bind-key d pagedown
bind-key u pageup
bind-key a toggle-article-read
bind-key n next-unread
bind-key N prev-unread
bind-key x pb-delete
color info white black bold
'';
urls = import ./urls.nix;
};
}

View file

@ -0,0 +1,298 @@
[
{ url = "https://www.reddit.com/r/nginx/new/.rss"; }
{ url = "https://www.reddit.com/r/devops/.rss"; }
{ url = "https://medium.com/feed/@bdfinst"; }
{ url = "https://blog.system76.com/rss"; }
{ url = "https://medium.com/feed/@codemonkeymike"; }
{ url = "https://www.reddit.com/r/devops/new/.rss"; }
{ url = "https://www.reddit.com/r/sysadmin/.rss"; }
{
url = "https://www.carlpullein.com/blog?format=RSS";
title = "Carl Pullein";
tags = [ "Productivity" ];
}
{ url = "https://feeds.feedburner.com/Faildesk"; }
{ url = "https://syndication.thedailywtf.com/TheDailyWtf"; }
{ url = "https://www.sherdog.com/rss/videos2.xml"; }
{
url = "https://www.reddit.com/r/MMA/.rss";
tags = [ "MMA" ];
}
{
url = "https://mmaweekly.com/feed/rss";
tags = [ "MMA" ];
}
{
url = "https://www.sherdog.com/rss/news2.xml";
tags = [ "MMA" ];
}
{
url = "https://www.sherdog.com/rss/articles2.xml";
tags = [ "MMA" ];
}
{
url = "https://www.ufc.com/rss/news";
tags = [ "MMA" ];
}
{ url = "https://www.theregister.co.uk/headlines.atom"; }
{
url = "https://www.rbs6nations.com/en/RssLatestNews.xml";
tags = [ "Rugby" ];
}
{
url = "https://feeds.feedburner.com/rugbydump";
tags = [ "Rugby" ];
}
{
url = "https://www.telegraph.co.uk/sport/rugbyunion/rss";
tags = [ "Rugby" ];
}
{ url = "https://code.facebook.com/posts/rss"; }
{ url = "https://nginx.com/feed/rss"; }
{
url = "https://www.lornajane.net/feed";
tags = [ "Software" ];
}
{
url = "https://nginx.org/index.rss";
tags = [ "Software" ];
}
{ url = "https://www.engadget.com/rss.xml"; }
{ url = "https://rss.slashdot.org/Slashdot/slashdotIt"; }
{ url = "https://lwn.net/headlines/newrss"; }
{ url = "https://rss.slashdot.org/Slashdot/slashdotLinux"; }
{
url = "https://blog.sebastian-daschner.com/feeds/rss";
title = "Sebastian Daschner";
}
{ url = "https://www.reddit.com/r/linux/.rss"; }
{ url = "https://githubengineering.com/atom.xml"; }
{ url = "https://rss.slashdot.org/Slashdot/slashdotDevelopers"; }
{ url = "https://www.alistapart.com/rss.xml"; }
{ url = "https://www.christitus.com/index.xml"; }
{ url = "https://www.freeagentcentral.com/feed.rss"; }
{ url = "https://akrabat.com/feed Software"; }
{ url = "https://jasonmccreary.me/feed.atom"; }
{ url = "https://martinfowler.com/bliki/bliki.atom"; }
{ url = "https://lornajane.net/feed"; }
{ url = "https://christoph-rumpel.com/feed.xml"; }
{ url = "https://gdstechnology.blog.gov.uk/feed/atom"; }
{ url = "https://weierophinney.net/matthew/feeds/index.rss2"; }
{ url = "https://stitcher.io/rss"; }
{ url = "https://www.reddit.com/r/css.rss"; }
{ url = "https://www.reddit.com/r/PHP/.rss"; }
{ url = "https://whateverthing.com/atom.xml"; }
{ url = "https://mnapoli.fr/atom.xml"; }
{ url = "https://www.epicweb.dev/rss.xml?ck_subscriber_id=2498091571"; }
{ url = "https://dev.to/feed"; }
{ url = "https://localheinz.com/feed.xml"; }
{ url = "https://www.ben-morris.com/feed"; }
{ url = "https://www.jbrains.ca/rss"; }
{ url = "https://blog.thecodewhisperer.com/rss"; }
{ url = "https://odan.github.io/feed.xml"; }
{ url = "https://feeds.feedburner.com/symfony/blog"; }
{ url = "https://www.alwaysagileconsulting.com/feed"; }
{ url = "https://blog.sensiolabs.com/feed"; }
{ url = "https://pascalbaljetmedia.com/rss"; }
{ url = "https://tighten.co/blog/feed.atom"; }
{ url = "https://ryangjchandler.co.uk/feed"; }
{ url = "https://jnsgr.uk/posts/index.xml"; }
{ url = "https://timacdonald.me/feed.xml"; }
{ url = "https://phppot.com/feed"; }
{ url = "https://howtocodewell.libsyn.com/rss"; }
{ url = "https://ctankersley.com/atom.xml"; }
{ url = "https://blog.wyrihaximus.net/atom.xml"; }
{ url = "https://dotfyle.com/this-week-in-neovim/rss.xml"; }
{ url = "https://paul-m-jones.com/feed"; }
{ url = "https://www.tomasvotruba.cz/rss.xml"; }
{ url = "https://www.reddit.com/r/git/.rss"; }
{ url = "https://www.daveismyname.com/feed"; }
{
url = "https://murze.be/feed/php";
title = "freek.dev";
tags = [
"PHP"
"Laravel"
"Software"
];
}
{ url = "https://nikic.github.io/rss.xml"; }
{
url = "https://drupal.org/planet/rss.xml";
tags = [ "Drupal" ];
}
{ url = "https://www.bram.us/feed"; }
{ url = "https://feeds.feedburner.com/GiantRobotsSmashingIntoOtherGiantRobots"; }
{ url = "https://murze.be/feed/originals"; }
{ url = "https://www.patkua.com/feed"; }
{ url = "https://www.benjystanton.co.uk/feed.xml"; }
{
url = "https://drupal.org/security/rss.xml";
tags = [ "Drupal" ];
}
{
url = "https://uk.indeed.com/rss?q=symfony&l=np18";
tags = [ "Jobs" ];
}
{
url = "https://uk.indeed.com/rss?q=php&l=np18";
tags = [ "Jobs" ];
}
{
url = "https://jobs.drupal.org/all-jobs/feed";
tags = [ "Jobs" ];
}
{
url = "https://www.reed.co.uk/jobs/rss/np18?source=rss&keywords=drupal&salaryfrom=50000&sortby=DisplayDate";
tags = [ "Jobs" ];
}
{
url = "https://www.reed.co.uk/jobs/rss/np18?source=rss&keywords=php&salaryfrom=50000&sortby=DisplayDate";
tags = [ "Jobs" ];
}
{
url = "https://uk.indeed.com/rss?q=drupal&l=np18";
tags = [ "Jobs" ];
}
{
url = "https://www.reed.co.uk/jobs/rss/np18?source=rss&keywords=symfony&salaryfrom=50000&sortby=DisplayDate";
tags = [ "Jobs" ];
}
{ url = "https://emilywebber.co.uk/feed"; }
{ url = "https://introvertdear.com/feed"; }
{ url = "https://designli.co/blog/feed"; }
{ url = "https://www.oliverdavies.uk/rss/daily.xml"; }
{
url = "https://www.drupal.org/project/issues/rss/override_node_options";
tags = [ "Drupal" ];
}
{
url = "https://www.drupal.org/project/issues/rss/tailwindcss";
tags = [ "Drupal" ];
}
{
url = "https://nixos.org/blog/announcements-rss.xml";
tags = [ "Linux" ];
}
{
url = "https://laracasts.com/feed";
tags = [
"PHP"
"Laravel"
];
}
{
url = "https://feeds.feedburner.com/knpuniversity";
title = "SymfonyCasts";
tags = [
"PHP"
"Symfony"
];
}
{
url = "https://nickjanetakis.com/atom.xml";
title = "Nick Janetakis";
}
{
url = "https://www.learnlinux.tv/feed";
tags = [ "Linux" ];
}
{
url = "https://tailwindcss.com/feeds/feed.xml";
tags = [
"Software"
"CSS"
];
}
{
url = "https://monospacementor.com/feed";
tags = [
"Linux"
"Software"
];
}
{
url = "https://frontendmasters.com/blog/feed";
tags = [ "Software" ];
title = "Frontend Masters Boost";
}
{
url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC2aHRY064THg_t7JZoGSYGg";
title = "YouTube - elysse";
tags = [
"Software"
"YouTube"
];
}
{
url = "https://www.youtube.com/feeds/videos.xml?channel_id=UCSUA5RARrNt4-Ik3qtbETLQ";
title = "YouTube - Jason Swett";
tags = [
"Software"
"YouTube"
];
}
{
url = "https://www.youtube.com/feeds/videos.xml?channel_id=UCorzANoC3fX9VVefJHM5wtA";
title = "~YouTube - Nick Janetakis";
tags = [
"Software"
"YouTube"
];
}
{ url = "https://devenv.sh/feed_rss_created.xml"; }
{ url = "https://sive.rs/en.atom"; }
{ url = "https://kressle.in/feed.xml"; }
{
url = "https://github.com/sculpin/sculpin/releases.atom";
tags = [
"PHP"
"Sculpin"
"Open Source"
];
}
{ url = "https://www.theminimalists.com/feed"; }
{ url = "https://opensourcepledge.com/rss.xml"; }
{
url = "https://feeds.bbci.co.uk/sport/rugby-union/teams/ng-dragons/rss.xml";
tags = [ "Rugby" ];
title = "BBC Sport - Dragons RFC";
}
{
url = "https://openrss.org/www.twitch.tv/thealtf4stream/videos?filter=all&sort=time";
tags = [ "Twitch" ];
}
{
url = "https://openrss.org/www.twitch.tv/theprimeagen/videos?filter=all&sort=time";
tags = [ "Twitch" ];
}
{
url = "https://openrss.org/www.twitch.tv/teej_dv/videos?filter=all&sort=time";
tags = [ "Twitch" ];
}
{
url = "https://openrss.org/www.twitch.tv/monospacementor/videos?filter=all&sort=time";
tags = [ "Twitch" ];
}
{ url = "https://www.reddit.com/r/librewolf/new/.rss"; }
{
url = "https://www.youtube.com/feeds/videos.xml?channel_id=UCSJKQnpmPcdkysduL0mNktg";
title = "YouTube - teej_daily";
tags = [
"Software"
"YouTube"
];
}
{
url = "https://feeds.bbci.co.uk/sport/rugby-union/rss.xml";
tags = [ "Rugby" ];
title = "BBC Sport - Rugby Union";
}
{ url = "https://tinkerbetter.tube/feeds/videos.xml?videoChannelId=2"; }
{ url = "https://video.fosshq.org/feeds/videos.xml?videoChannelId=2"; }
{
url = "https://www.garfieldtech.com/blog/feed";
tags = [ "PHP" ];
}
{ url = "https://world.hey.com/dhh/feed.atom"; }
]

View file

@ -1,24 +0,0 @@
{
flake.modules.homeManager.gui =
{ pkgs, ... }:
{
home.packages = [
(pkgs.writeShellApplication {
name = "dmenu_mpv";
text = ''
selected="$(find "$HOME/Videos" -type f | dmenu -i -l 15)"
if [[ -n "$selected" ]]; then
mpv --fs --speed=1.5 "$selected" >/dev/null 2>&1
fi
'';
runtimeInputs = with pkgs; [
dmenu
mpv
];
})
];
};
}

View file

@ -17,7 +17,7 @@
installPhase = ''
mkdir -p $out/bin
cp $src/shortcuts-menus/sys $out/bin/${pname}
cp $src/${pname} $out/bin
chmod +x $out/bin/${pname}
'';
})

View file

@ -17,7 +17,7 @@
installPhase = ''
mkdir -p $out/bin
cp $src/statusbar/timer $out/bin/${pname}
cp $src/${pname} $out/bin
chmod +x $out/bin/${pname}
'';
})

View file

@ -1,36 +0,0 @@
{ inputs, ... }:
{
flake.modules.homeManager.gui =
{ pkgs, ... }:
{
home.packages = [
(pkgs.writeShellApplication {
name = "dmenu_tmux";
text = ''
selected="$(z tmux list | dmenu -l 40)" || exit 0
if tmux list-sessions >/dev/null 2>&1; then
if pgrep -x st >/dev/null; then
z tmux connect "$selected"
exit 0
fi
fi
pkill -x st 2>/dev/null || true
sleep 0.1
exec st -e z tmux connect "$selected"
'';
runtimeInputs = with pkgs; [
dmenu
inputs.z.packages.${pkgs.stdenv.hostPlatform.system}.default
st
];
})
];
};
}

View file

@ -2,10 +2,10 @@
{
flake.modules.nixos.base =
{ pkgs, ... }:
{ system, ... }:
{
environment.systemPackages = [
inputs.git-repo-updater.packages.${pkgs.stdenv.hostPlatform.system}.default
inputs.git-repo-updater.packages.${system}.default
];
};
}

View file

@ -1,6 +1,5 @@
{
flake.modules.homeManager.base.programs.git = {
settings.aliases = {
flake.modules.homeManager.base.programs.git.aliases = {
aa = "add --all";
assume = "update-index --assume-unchanged";
assumed = "!git ls-files -v | grep '^[hsmrck?]' | cut -c 3-";
@ -48,5 +47,4 @@
ureset = "!git reset --hard $(git upstream)";
worktrees = "worktree list";
};
};
}

View file

@ -2,7 +2,7 @@
flake.modules.homeManager.base =
{ config, ... }:
{
programs.git.settings = {
programs.git.extraConfig = {
branch = {
autosetupmerge = true;
autosetuprebase = "always";

View file

@ -2,9 +2,7 @@
{
flake.modules.homeManager.base.programs.git = {
settings.user = {
email = config.flake.meta.owner.email;
name = config.flake.meta.owner.name;
};
userName = config.flake.meta.owner.name;
userEmail = config.flake.meta.owner.email;
};
}

View file

@ -0,0 +1,3 @@
{
flake.modules.nixos.desktop.services.ollama.enable = false;
}

View file

@ -0,0 +1,5 @@
{
nixpkgs.allowedUnfreePackages = [ "open-webui" ];
flake.modules.nixos.desktop.services.open-webui.enable = false;
}

View file

@ -5,21 +5,21 @@
)
(defvar
tap-time 150
hold-time 200
hold-time-slow 300
tap-time 150
)
(defalias
escctrl (tap-hold 100 100 esc lctl)
a (tap-hold $tap-time $hold-time-slow a lsft)
a (tap-hold $tap-time $hold-time-slow a lmet)
s (tap-hold $tap-time $hold-time-slow s lalt)
d (tap-hold $tap-time $hold-time d lctl)
f (tap-hold $tap-time $hold-time f lmet)
j (tap-hold $tap-time $hold-time j rmet)
k (tap-hold $tap-time $hold-time k rctl)
d (tap-hold $tap-time $hold-time d lsft)
f (tap-hold $tap-time $hold-time f lctl)
j (tap-hold $tap-time $hold-time j rctl)
k (tap-hold $tap-time $hold-time k rsft)
l (tap-hold $tap-time $hold-time-slow l ralt)
; (tap-hold $tap-time $hold-time-slow ; rsft)
; (tap-hold $tap-time $hold-time-slow ; rmet)
)
(deflayer base

View file

@ -0,0 +1,21 @@
{
flake.modules.nixvim.custom.plugins.auto-save = {
enable = true;
settings.condition = ''
function(buf)
local excluded_filetypes = {}
local excluded_filenames = {}
if vim.tbl_contains(excluded_filetypes, vim.fn.getbufvar(buf, "&filetype"))
or vim.tbl_contains(excluded_filenames, vim.fn.expand("%:t"))
then
return false
end
return true
end
'';
};
}

View file

@ -1,6 +1,39 @@
return {
s("home_packages", fmta("home.packages = with pkgs; [ <> ];", i(0))),
s(
"homepage_options",
fmta(
[[
homepage.name = mkOption {
default = "<name>";
type = types.str;
};
homepage.description = mkOption {
default = "<description>";
type = types.str;
};
homepage.icon = mkOption {
default = "<icon>";
type = types.str;
};
homepage.category = mkOption {
default = "<finish>";
type = types.str;
};
]],
{
description = i(2),
finish = i(0),
icon = i(3),
name = i(1),
}
)
),
s(
"imports",
fmta(

View file

@ -7,7 +7,6 @@
module = "php";
neon = "yaml";
pcss = "scss";
tf = "terraform";
theme = "php";
};

View file

@ -43,7 +43,7 @@
}
{
action = "<cmd>silent !tmux new-window start-tmux<CR>";
action = "<cmd>silent !tmux new-window tmux-sessionizer<CR>";
key = "<C-f>";
options.silent = true;
}

View file

@ -1,3 +0,0 @@
{
flake.modules.nixvim.custom.lsp.servers.terraformls.enable = true;
}

View file

@ -1,24 +0,0 @@
{
flake.modules.nixvim.custom = {
plugins.oil = {
enable = true;
settings = {
delete_to_trash = true;
keymaps."-" = "actions.parent";
skip_confirm_for_simple_edits = true;
view_options.show_hidden = true;
};
};
keymaps = [
{
action = "<cmd>Oil<CR>";
key = "-";
}
];
};
}

View file

@ -1,18 +0,0 @@
{
flake.modules.nixvim.custom.plugins.qmk = {
enable = true;
settings = {
layout = [
"x x x x x _ _ _ _ _ _ _ _ _ x x x x x"
"x x x x x x _ _ _ _ _ _ _ x x x x x x"
"x x x x x x _ _ _ _ _ _ _ x x x x x x"
"x x x x x x _ _ _ _ _ _ _ x x x x x x"
"x x x x x x x x x _ x x x x x x x x x"
"x x x x x _ x x x _ x x x _ x x x x x"
];
name = "LAYOUT_glove80";
variant = "zmk";
};
};
}

View file

@ -11,7 +11,6 @@
comment
css
csv
devicetree
dockerfile
gitattributes
gitignore
@ -42,10 +41,7 @@
yaml
];
settings = {
highlight.enable = true;
indent.enable = true;
};
settings.highlight.enable = true;
};
treesitter-textobjects.enable = true;

View file

@ -0,0 +1,34 @@
{ withSystem, ... }:
let
name = "add-weight";
in
{
perSystem =
psArgs@{ pkgs, ... }:
{
packages.${name} = pkgs.writeShellApplication {
inherit name;
runtimeInputs = with pkgs; [
coreutils
psArgs.config.packages.today2
psArgs.config.packages.weight
];
text = ''
echo "$(today2),$1" >> "$XDG_DOCUMENTS_DIR/notes/2-areas/health-fitness/weight.csv"
weight
'';
};
};
flake.modules.homeManager.base =
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -0,0 +1,62 @@
{
flake.modules.homeManager.base =
{ pkgs, ... }:
{
home.packages = [
(pkgs.writeShellApplication {
name = "build-adoc";
runtimeInputs = with pkgs; [
asciidoctor-with-extensions
];
excludeShellChecks = [ "SC2034" ];
text = ''
ls book
echo ""
date=$(date '+%Y-%m-%d %H:%M:%S')
echo "The current date is $date."
pwd=$(pwd)
parent=$(basename "$(dirname "$pwd")")
name=$(basename "$pwd")
echo "The parent directory is $parent."
echo "The current directory is $name."
echo ""
echo "Generating the HTML..."
asciidoctor \
-D book \
-a "date=$date" \
-o index.html \
./book/index.adoc
echo ""
echo "Generating the EPUB..."
asciidoctor-epub3 \
-D book \
-a "date=$date" \
-o "$parent-$name.epub" \
./book/index.adoc
echo ""
echo "Generating the PDF..."
asciidoctor-pdf \
-D book \
-a "date=$date" \
-o "$parent-$name.pdf" \
./book/index.adoc
echo ""
ls book
'';
})
];
};
}

16
modules/scripts/build.nix Normal file
View file

@ -0,0 +1,16 @@
{
flake.modules.homeManager.base =
{ pkgs, ... }:
{
home.packages = [
(pkgs.writeShellApplication {
name = "build";
text = ''
test -r book/index.adoc && exec build-adoc "$@"
test -x build && exec ./build "$@"
'';
})
];
};
}

View file

@ -9,7 +9,7 @@
runtimeInputs = with pkgs; [
git
psArgs.config.packages.start-tmux
psArgs.config.packages.tmux-sessionizer
];
text = ''
@ -20,7 +20,7 @@
domain="''${BASH_REMATCH[2]}"
if [[ "$domain" == "ssh.oliverdavies.uk" ]]; then
domain="git.oliverdavies.uk"
domain="code.oliverdavies.uk"
fi
user="''${BASH_REMATCH[3]}"
@ -29,13 +29,13 @@
user_path="$XDG_REPOS_DIR/$domain/$user"
repo_path="$user_path/$name"
[[ -d "$repo_path" ]] && start-tmux "$repo_path" && exit 0
[[ -d "$repo_path" ]] && tmux-sessionizer "$repo_path" && exit 0
mkdir -pv "$repo_path"
git clone "$repo_url" "$repo_path"
start-tmux "$repo_path"
tmux-sessionizer "$repo_path"
else
exit 1
fi
@ -47,7 +47,7 @@
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.clone))
(withSystem pkgs.system (psArgs: psArgs.config.packages.clone))
];
};
}

View file

@ -20,7 +20,7 @@ in
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

35
modules/scripts/hnow.nix Normal file
View file

@ -0,0 +1,35 @@
{ lib, withSystem, ... }:
let
name = "hnow";
in
{
perSystem =
psArgs@{ pkgs, ... }:
let
now = withSystem pkgs.system (psArgs: psArgs.config.packages.now);
in
{
packages.${name} = pkgs.writeShellApplication {
inherit name;
runtimeInputs = [
psArgs.config.packages.now
];
text = ''
# Based on https://github.com/rwxrob/dot/blob/main/scripts/hnow.
echo "== $(${lib.getExe now} "$*")"
'';
};
};
flake.modules.homeManager.base =
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

32
modules/scripts/now.nix Normal file
View file

@ -0,0 +1,32 @@
{ withSystem, ... }:
let
name = "now";
in
{
perSystem =
{ pkgs, ... }:
{
packages.${name} = pkgs.writeShellApplication {
inherit name;
runtimeInputs = with pkgs; [ coreutils ];
text = ''
# Based on https://github.com/rwxrob/dot/blob/main/scripts/now.
out=$(date "+%A, %B %e, %Y, %R %Z" "-d ''${*:-now}")
echo "''${out// / }"
'';
};
};
flake.modules.homeManager.base =
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -29,7 +29,7 @@ in
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -15,7 +15,7 @@ in
text = ''
repo_url=$(git remote get-url origin | sed -E 's#(git|forgejo)@([A-Za-z0-9.-]+):#https://\2/#;s#.git$##')
repo_url="''${repo_url//ssh.oliverdavies.uk/git.oliverdavies.uk}"
repo_url="''${repo_url//ssh.oliverdavies.uk/code.oliverdavies.uk}"
xdg-open "$repo_url"
'';
@ -26,7 +26,7 @@ in
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -20,7 +20,7 @@ in
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -36,7 +36,7 @@ in
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -20,7 +20,7 @@ in
{ config, pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
home.sessionVariables.SKILLS_FILE = "${config.home.sessionVariables.NOTES_DIRECTORY}/2-areas/skills.csv";

View file

@ -1,33 +0,0 @@
{ inputs, withSystem, ... }:
let
name = "start-tmux";
in
{
perSystem =
{ pkgs, ... }:
{
packages.${name} = pkgs.writeShellApplication {
inherit name;
runtimeInputs = with pkgs; [
fzf
inputs.z.packages.${pkgs.stdenv.hostPlatform.system}.default
];
text = ''
selected="$(z tmux list | fzf)"
[[ -n $selected ]] && z tmux connect "$selected"
'';
};
};
flake.modules.homeManager.base =
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -1,36 +0,0 @@
{ withSystem, ... }:
let
name = "tmux-default-startup";
in
{
perSystem =
{ pkgs, ... }:
{
packages.${name} = pkgs.writeShellApplication {
inherit name;
text = ''
if [[ -x "$PWD/.tmux-sessionizer" ]]; then
"$PWD/.tmux-sessionizer"
fi
if [[ -x "$PWD/.tmux" ]]; then
"$PWD/.tmux"
fi
tmux new-window -d -n scratch
"$EDITOR"
'';
};
};
flake.modules.homeManager.base =
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -0,0 +1,30 @@
{
flake.modules.homeManager.base =
{ config, pkgs, ... }:
{
home.file.".tmux-sessionizer".source = "${
pkgs.writeShellApplication {
name = ".tmux-sessionizer";
runtimeInputs = with pkgs; [
tmux
];
text = ''
set +o errexit
set +o nounset
if [[ "$PWD" == "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/os" || "$PWD" == "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/personal" || "$PWD" == "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/work" ]]; then
clear
return
fi
tmux new-window -d -n scratch
nvim .
clear
'';
}
}/bin/.tmux-sessionizer";
};
}

View file

@ -83,7 +83,7 @@
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.tmux-sessionizer))
(withSystem pkgs.system (psArgs: psArgs.config.packages.tmux-sessionizer))
];
};
}

View file

@ -20,7 +20,7 @@ in
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -20,7 +20,7 @@ in
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

34
modules/scripts/todo.nix Normal file
View file

@ -0,0 +1,34 @@
{ withSystem, ... }:
let
name = "todo";
in
{
perSystem =
{ pkgs, ... }:
{
packages.${name} = pkgs.writeShellApplication {
inherit name;
runtimeInputs = with pkgs; [ coreutils ];
text = ''
"$EDITOR" +3 "$TODO_FILE"
cd "$NOTES_DIRECTORY"
git add "$TODO_FILE"
git commit -m "Update TODOs"
git push
'';
};
};
flake.modules.homeManager.base =
{ config, pkgs, ... }:
{
home.packages = [
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
home.sessionVariables.TODO_FILE = "${config.home.sessionVariables.NOTES_DIRECTORY}/todo.adoc";
};
}

View file

@ -0,0 +1,28 @@
{ withSystem, ... }:
let
name = "weight";
in
{
perSystem =
{ pkgs, ... }:
{
packages.${name} = pkgs.writeShellApplication {
inherit name;
runtimeInputs = with pkgs; [
coreutils
];
text = ''tail "$XDG_DOCUMENTS_DIR/notes/2-areas/health-fitness/weight.csv"'';
};
};
flake.modules.homeManager.base =
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

38
modules/scripts/zet.nix Normal file
View file

@ -0,0 +1,38 @@
{ inputs, withSystem, ... }:
let
name = "zet";
in
{
perSystem =
{ pkgs, ... }:
{
packages.${name} = pkgs.buildGoModule {
inherit name;
runtimeInputs = with pkgs; [
git
];
src = inputs.zet;
vendorHash = "sha256-pprnK2JKmPuR3Q+F8+vMDEdowlb3oX4BOOzW8NGOqgs=";
postInstall = ''
mv $out/bin/cmd-${name} $out/bin/${name}
'';
};
};
flake.modules.homeManager.base =
{ config, pkgs, ... }:
{
home.packages = [
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
home.sessionVariables = {
ZET_DIRECTORY = "${config.home.sessionVariables.NOTES_DIRECTORY}/${name}";
};
};
}

View file

@ -3,7 +3,363 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
st
(st.override {
conf = ''
static char *font = "MesloLGSNerdFontMono:pixelsize=16:antialias=true:autohint=true";
int disablebold = 1;
int disableitalic = 1;
int disableroman = 1;
static int borderpx = 2;
static char *shell = "/bin/sh";
char *utmp = NULL;
char *scroll = NULL;
char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
char *vtiden = "\033[?6c";
static float cwscale = 1.0;
static float chscale = 1.0;
wchar_t *worddelimiters = L" ";
static unsigned int doubleclicktimeout = 300;
static unsigned int tripleclicktimeout = 600;
int allowaltscreen = 1;
int allowwindowops = 0;
static double minlatency = 2;
static double maxlatency = 33;
static unsigned int blinktimeout = 800;
static unsigned int cursorthickness = 2;
static int bellvolume = 0;
char *termname = "st-256color";
unsigned int tabspaces = 8;
static const char *colorname[] = {
"black",
"red3",
"green3",
"yellow3",
"blue2",
"magenta3",
"cyan3",
"gray90",
"gray50",
"red",
"green",
"yellow",
"#5c5cff",
"magenta",
"cyan",
"white",
[255] = 0,
"#cccccc",
"#555555",
"gray90",
"black",
};
unsigned int defaultfg = 258;
unsigned int defaultbg = 259;
unsigned int defaultcs = 256;
static unsigned int defaultrcs = 257;
static unsigned int cursorshape = 2;
static unsigned int cols = 80;
static unsigned int rows = 24;
static unsigned int mouseshape = XC_xterm;
static unsigned int mousefg = 7;
static unsigned int mousebg = 0;
static unsigned int defaultattr = 11;
static uint forcemousemod = ShiftMask;
static MouseShortcut mshortcuts[] = {
{ XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
{ ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"} },
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"} },
};
#define MODKEY Mod1Mask
#define TERMMOD (ControlMask|ShiftMask)
static Shortcut shortcuts[] = {
{ XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} },
{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },
{ TERMMOD, XK_Prior, zoom, {.f = +1} },
{ TERMMOD, XK_Next, zoom, {.f = -1} },
{ TERMMOD, XK_Home, zoomreset, {.f = 0} },
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
{ TERMMOD, XK_D, zoom, {.f = -2} },
{ TERMMOD, XK_J, zoom, {.f = -1} },
{ TERMMOD, XK_K, zoom, {.f = +1} },
{ TERMMOD, XK_U, zoom, {.f = +2} },
{ TERMMOD, XK_V, clippaste, {.i = 0} },
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
};
static KeySym mappedkeys[] = { -1 };
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
static Key key[] = {
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0},
{ XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0},
{ XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0},
{ XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0},
{ XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0},
{ XK_KP_End, ControlMask, "\033[J", -1, 0},
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_KP_End, ShiftMask, "\033[K", -1, 0},
{ XK_KP_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_KP_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[L", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_KP_Delete, ControlMask, "\033[M", -1, 0},
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0},
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0},
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0},
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0},
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0},
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0},
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0},
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0},
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0},
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0},
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0},
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0},
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0},
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0},
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0},
{ XK_Up, Mod1Mask, "\033[1;3A", 0, 0},
{ XK_Up, ShiftMask|Mod1Mask, "\033[1;4A", 0, 0},
{ XK_Up, ControlMask, "\033[1;5A", 0, 0},
{ XK_Up, ShiftMask|ControlMask, "\033[1;6A", 0, 0},
{ XK_Up, ControlMask|Mod1Mask, "\033[1;7A", 0, 0},
{ XK_Up, ShiftMask|ControlMask|Mod1Mask, "\033[1;8A", 0, 0},
{ XK_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_Down, ShiftMask, "\033[1;2B", 0, 0},
{ XK_Down, Mod1Mask, "\033[1;3B", 0, 0},
{ XK_Down, ShiftMask|Mod1Mask, "\033[1;4B", 0, 0},
{ XK_Down, ControlMask, "\033[1;5B", 0, 0},
{ XK_Down, ShiftMask|ControlMask, "\033[1;6B", 0, 0},
{ XK_Down, ControlMask|Mod1Mask, "\033[1;7B", 0, 0},
{ XK_Down, ShiftMask|ControlMask|Mod1Mask, "\033[1;8B", 0, 0},
{ XK_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_Left, ShiftMask, "\033[1;2D", 0, 0},
{ XK_Left, Mod1Mask, "\033[1;3D", 0, 0},
{ XK_Left, ShiftMask|Mod1Mask, "\033[1;4D", 0, 0},
{ XK_Left, ControlMask, "\033[1;5D", 0, 0},
{ XK_Left, ShiftMask|ControlMask, "\033[1;6D", 0, 0},
{ XK_Left, ControlMask|Mod1Mask, "\033[1;7D", 0, 0},
{ XK_Left, ShiftMask|ControlMask|Mod1Mask, "\033[1;8D", 0, 0},
{ XK_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_Right, ShiftMask, "\033[1;2C", 0, 0},
{ XK_Right, Mod1Mask, "\033[1;3C", 0, 0},
{ XK_Right, ShiftMask|Mod1Mask, "\033[1;4C", 0, 0},
{ XK_Right, ControlMask, "\033[1;5C", 0, 0},
{ XK_Right, ShiftMask|ControlMask, "\033[1;6C", 0, 0},
{ XK_Right, ControlMask|Mod1Mask, "\033[1;7C", 0, 0},
{ XK_Right, ShiftMask|ControlMask|Mod1Mask, "\033[1;8C", 0, 0},
{ XK_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0},
{ XK_Return, Mod1Mask, "\033\r", 0, 0},
{ XK_Return, XK_ANY_MOD, "\r", 0, 0},
{ XK_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_Insert, ControlMask, "\033[L", -1, 0},
{ XK_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_Delete, ControlMask, "\033[M", -1, 0},
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_End, ControlMask, "\033[J", -1, 0},
{ XK_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_End, ShiftMask, "\033[K", -1, 0},
{ XK_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_Prior, ControlMask, "\033[5;5~", 0, 0},
{ XK_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_Next, ControlMask, "\033[6;5~", 0, 0},
{ XK_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_F1, XK_NO_MOD, "\033OP" , 0, 0},
{ XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0},
{ XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0},
{ XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0},
{ XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0},
{ XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0},
{ XK_F2, XK_NO_MOD, "\033OQ" , 0, 0},
{ XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0},
{ XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0},
{ XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0},
{ XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0},
{ XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0},
{ XK_F3, XK_NO_MOD, "\033OR" , 0, 0},
{ XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0},
{ XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0},
{ XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0},
{ XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0},
{ XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0},
{ XK_F4, XK_NO_MOD, "\033OS" , 0, 0},
{ XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0},
{ XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0},
{ XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0},
{ XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0},
{ XK_F5, XK_NO_MOD, "\033[15~", 0, 0},
{ XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0},
{ XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0},
{ XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0},
{ XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0},
{ XK_F6, XK_NO_MOD, "\033[17~", 0, 0},
{ XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0},
{ XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0},
{ XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0},
{ XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0},
{ XK_F7, XK_NO_MOD, "\033[18~", 0, 0},
{ XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0},
{ XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0},
{ XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0},
{ XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0},
{ XK_F8, XK_NO_MOD, "\033[19~", 0, 0},
{ XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0},
{ XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0},
{ XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0},
{ XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0},
{ XK_F9, XK_NO_MOD, "\033[20~", 0, 0},
{ XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0},
{ XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0},
{ XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0},
{ XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0},
{ XK_F10, XK_NO_MOD, "\033[21~", 0, 0},
{ XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0},
{ XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0},
{ XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0},
{ XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0},
{ XK_F11, XK_NO_MOD, "\033[23~", 0, 0},
{ XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0},
{ XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0},
{ XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0},
{ XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0},
{ XK_F12, XK_NO_MOD, "\033[24~", 0, 0},
{ XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0},
{ XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0},
{ XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0},
{ XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0},
{ XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0},
{ XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0},
{ XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0},
{ XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0},
{ XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0},
{ XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0},
{ XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0},
{ XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0},
{ XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0},
{ XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0},
{ XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0},
{ XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0},
{ XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0},
{ XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0},
{ XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0},
{ XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0},
{ XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0},
{ XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0},
{ XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0},
{ XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0},
{ XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0},
{ XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0},
{ XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0},
};
static uint selmasks[] = {
[SEL_RECTANGULAR] = Mod1Mask,
};
static char ascii_printable[] =
" !\"#$%&'()*+,-./0123456789:;<=>?"
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
"`abcdefghijklmnopqrstuvwxyz{|}~";
'';
patches = [
(fetchpatch {
name = "disable_bold_italic_fonts";
url = "https://st.suckless.org/patches/disable_bold_italic_fonts/st-disable-bold-italic-fonts-0.8.2.diff";
sha256 = "PG96QMqbX3Fr0EvDmF4lm/J3gj18eyBfm1bJ3M7plvQ=";
})
(fetchpatch {
name = "anysize";
url = "https://st.suckless.org/patches/anysize/st-anysize-20220718-baa9357.diff";
sha256 = "yx9VSwmPACx3EN3CAdQkxeoJKJxQ6ziC9tpBcoWuWHc=";
})
];
})
];
};
}

View file

@ -2,6 +2,8 @@
{
flake.modules.nixos.pc = {
security.sudo-rs.enable = true;
users.users.${config.flake.meta.owner.username}.extraGroups = [ "wheel" ];
};
}

View file

@ -13,8 +13,6 @@
"super + shift + i" =
"${pkgs.xdotool}/bin/xdotool type $(cat ~/.local/share/snippets.txt | grep -v '^#' | grep -v '^$' | sort | dmenu -i -l 50 | cut -d' ' -f1)";
"super + shift + p" = "${lib.getExe pkgs.passmenu-otp} -i";
"super + shift + t" = "dmenu_tmux";
"super + shift + v" = "dmenu_mpv";
"super + x; {1, 2, 3, 4}" = "st {notes, newsboat, nmtui, bluetuith}";
"{_, shift +, super +}XF86MonBrightness{Down,Up}" =
"${lib.getExe pkgs.brightnessctl} set {5%-,10%-,10%,+5%,+10%,100%} --quiet";

View file

@ -61,8 +61,7 @@
bind k select-pane -U
bind l select-pane -R
bind-key -r f run-shell "tmux new-window start-tmux"
bind-key -r g run-shell "tmux new-window open-repo-url"
bind-key -r f run-shell "tmux new-window tmux-sessionizer"
bind-key -r D new-window -c "#{pane_current_path}" "[[ -e TODO.md ]] && nvim TODO.md || nvim ~/Documents/notes/todo.txt"
bind-key -r W split-window -h -c ~/Documents/notes "nvim '+Telescope find_files'"

View file

@ -1,24 +0,0 @@
{ inputs, withSystem, ... }:
let
name = "z";
in
{
perSystem =
{ pkgs, ... }:
{
packages.${name} = inputs.${name}.packages.${pkgs.stdenv.hostPlatform.system}.default;
};
flake.modules.homeManager.base =
{ config, pkgs, ... }:
{
home.packages = [
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
];
home.sessionVariables = {
ZET_DIRECTORY = "${config.home.sessionVariables.NOTES_DIRECTORY}/zet";
};
};
}

View file

@ -28,7 +28,7 @@
g = "git";
ga = "git add";
gan = "git add -N";
gap = "git add -p";
gap = "git add . -p";
gb = "git branch";
gba = "git branch --all";
gbl = "git blame";
@ -39,16 +39,16 @@
gcm = "git commit -m";
gco = "git checkout";
gcob = "git checkout -b";
gd = "git diff";
gds = "git diff --staged";
gd = "git diff .";
gds = "git diff . --staged";
gf = "git fetch";
gfa = "git fetch --all";
gl = "git log";
glg = "git log --grep";
glo = "git log --oneline";
glog = "git log --oneline --grep";
glos = "git log --oneline -S";
gls = "git log -S";
glg = "git log --grep .";
glo = "git log --oneline .";
glog = "git log --oneline --grep .";
glos = "git log --oneline -S .";
gls = "git log . -S";
gm = "git merge";
gmf = "git merge --ff";
gmnf = "git merge --no-ff";
@ -67,9 +67,9 @@
gra = "git rebase --abort";
grc = "git rebase --continue";
gri = "git rebase -i";
gs = "git status";
gsh = "git show";
gst = "git stash";
gs = "git status .";
gsh = "git show .";
gst = "git stash .";
gstp = "git stash pop";
gt = "git tag";
@ -131,7 +131,6 @@
rduli = "run drush uli";
rdup = "run drush updatedb -y";
rpub = "run publish";
rs = "run switch";
rt = "run test";
nah = "git reset --hard; git clean -fd";
@ -169,8 +168,5 @@
sgsp = "vendor/bin/sculpin generate --server --port";
sgsw = "vendor/bin/sculpin generate --server --watch";
sgswp = "vendor/bin/sculpin generate --server --watch --port";
mnf = "man fzf";
mnt = "man tmux";
};
}

View file

@ -9,14 +9,11 @@
"..." = "cd ../..";
"...." = "cd ../../..";
"....." = "cd ../../../..";
build = "z build";
chmox = "chmod +x";
run = "./run";
tag = "tag-release";
todo = "z todo";
vss = "LC_ALL=C sort --unique ${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/nixos-config/modules/home-manager/cli/neovim/config/spell/en.utf-8.adddotfiles/nvim/spell/en.utf-8.add --output ${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/nixos-config/modules/home-manager/cli/neovim/config/spell/en.utf-8.add";
wt = "git worktree";
zet = "z zet";
};
};
}

View file

@ -1,13 +1,8 @@
{ lib, ... }:
{
flake.modules.homeManager.base =
{ config, pkgs, ... }:
{
programs.zsh.initContent = ''
# Completions
source <(z completion zsh)
background() {
for ((i=2;i<=$#;i++)); do
''${@[1]} ''${@[$i]} &> /dev/null &
@ -49,10 +44,6 @@
command ${pkgs.ttyper}/bin/ttyper --language english1000 --words 50 "''${@}"
}
watchexec() {
${lib.getExe pkgs.watchexec} --clear "$@"
}
weather() {
curl "https://wttr.in/''$1"
}
@ -61,19 +52,13 @@
command yt-dlp --paths ~/Videos "$@"
}
bindkey -s ^f "start-tmux\n"
bindkey -s ^g "open-repo-url\n"
bindkey -s ^f "tmux-sessionizer\n"
bindkey -s ^v "nvim\n"
setopt auto_cd
setopt auto_pushd
setopt pushd_ignore_dups
setopt pushdminus
autoload -U edit-command-line
bindkey '^x^e' edit-command-line
bindkey '^xe' edit-command-line
zle -N edit-command-line
'';
};
}

View file

@ -1,6 +1,6 @@
Running Neovim as a package:
nix run .#neovim
nix run git+https://git.oliverdavies.uk/opdavies/nix-config#neovim
nix run git+https://code.oliverdavies.uk/opdavies/nix-config#neovim
nixos-rebuild --flake .#nixedo --target-host 192.168.1.116 --sudo test

View file

@ -11,7 +11,6 @@
modifications = final: prev: {
dwm = import ./mods/dwm { inherit prev; };
st = import ./mods/st { inherit prev; };
};
stable-packages = final: _prev: {

View file

@ -1,362 +0,0 @@
{ prev, ... }:
let
inherit (prev) lib;
in
prev.st.override {
conf = ''
static char *font = "MesloLGSNerdFontMono:pixelsize=16:antialias=true:autohint=true";
int disablebold = 1;
int disableitalic = 1;
int disableroman = 1;
static int borderpx = 2;
static char *shell = "/bin/sh";
char *utmp = NULL;
char *scroll = NULL;
char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
char *vtiden = "\033[?6c";
static float cwscale = 1.0;
static float chscale = 1.0;
wchar_t *worddelimiters = L" ";
static unsigned int doubleclicktimeout = 300;
static unsigned int tripleclicktimeout = 600;
int allowaltscreen = 1;
int allowwindowops = 0;
static double minlatency = 2;
static double maxlatency = 33;
static unsigned int blinktimeout = 800;
static unsigned int cursorthickness = 2;
static int bellvolume = 0;
char *termname = "st-256color";
unsigned int tabspaces = 8;
static const char *colorname[] = {
"black",
"red3",
"green3",
"yellow3",
"blue2",
"magenta3",
"cyan3",
"gray90",
"gray50",
"red",
"green",
"yellow",
"#5c5cff",
"magenta",
"cyan",
"white",
[255] = 0,
"#cccccc",
"#555555",
"gray90",
"black",
};
unsigned int defaultfg = 258;
unsigned int defaultbg = 259;
unsigned int defaultcs = 256;
static unsigned int defaultrcs = 257;
static unsigned int cursorshape = 2;
static unsigned int cols = 80;
static unsigned int rows = 24;
static unsigned int mouseshape = XC_xterm;
static unsigned int mousefg = 7;
static unsigned int mousebg = 0;
static unsigned int defaultattr = 11;
static uint forcemousemod = ShiftMask;
static MouseShortcut mshortcuts[] = {
{ XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
{ ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"} },
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"} },
};
#define MODKEY Mod1Mask
#define TERMMOD (ControlMask|ShiftMask)
static Shortcut shortcuts[] = {
{ XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} },
{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },
{ TERMMOD, XK_Prior, zoom, {.f = +1} },
{ TERMMOD, XK_Next, zoom, {.f = -1} },
{ TERMMOD, XK_Home, zoomreset, {.f = 0} },
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
{ TERMMOD, XK_D, zoom, {.f = -2} },
{ TERMMOD, XK_J, zoom, {.f = -1} },
{ TERMMOD, XK_K, zoom, {.f = +1} },
{ TERMMOD, XK_U, zoom, {.f = +2} },
{ TERMMOD, XK_V, clippaste, {.i = 0} },
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
};
static KeySym mappedkeys[] = { -1 };
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
static Key key[] = {
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0},
{ XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0},
{ XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0},
{ XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0},
{ XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0},
{ XK_KP_End, ControlMask, "\033[J", -1, 0},
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_KP_End, ShiftMask, "\033[K", -1, 0},
{ XK_KP_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_KP_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[L", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_KP_Delete, ControlMask, "\033[M", -1, 0},
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0},
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0},
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0},
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0},
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0},
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0},
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0},
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0},
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0},
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0},
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0},
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0},
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0},
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0},
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0},
{ XK_Up, Mod1Mask, "\033[1;3A", 0, 0},
{ XK_Up, ShiftMask|Mod1Mask, "\033[1;4A", 0, 0},
{ XK_Up, ControlMask, "\033[1;5A", 0, 0},
{ XK_Up, ShiftMask|ControlMask, "\033[1;6A", 0, 0},
{ XK_Up, ControlMask|Mod1Mask, "\033[1;7A", 0, 0},
{ XK_Up, ShiftMask|ControlMask|Mod1Mask, "\033[1;8A", 0, 0},
{ XK_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_Down, ShiftMask, "\033[1;2B", 0, 0},
{ XK_Down, Mod1Mask, "\033[1;3B", 0, 0},
{ XK_Down, ShiftMask|Mod1Mask, "\033[1;4B", 0, 0},
{ XK_Down, ControlMask, "\033[1;5B", 0, 0},
{ XK_Down, ShiftMask|ControlMask, "\033[1;6B", 0, 0},
{ XK_Down, ControlMask|Mod1Mask, "\033[1;7B", 0, 0},
{ XK_Down, ShiftMask|ControlMask|Mod1Mask, "\033[1;8B", 0, 0},
{ XK_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_Left, ShiftMask, "\033[1;2D", 0, 0},
{ XK_Left, Mod1Mask, "\033[1;3D", 0, 0},
{ XK_Left, ShiftMask|Mod1Mask, "\033[1;4D", 0, 0},
{ XK_Left, ControlMask, "\033[1;5D", 0, 0},
{ XK_Left, ShiftMask|ControlMask, "\033[1;6D", 0, 0},
{ XK_Left, ControlMask|Mod1Mask, "\033[1;7D", 0, 0},
{ XK_Left, ShiftMask|ControlMask|Mod1Mask, "\033[1;8D", 0, 0},
{ XK_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_Right, ShiftMask, "\033[1;2C", 0, 0},
{ XK_Right, Mod1Mask, "\033[1;3C", 0, 0},
{ XK_Right, ShiftMask|Mod1Mask, "\033[1;4C", 0, 0},
{ XK_Right, ControlMask, "\033[1;5C", 0, 0},
{ XK_Right, ShiftMask|ControlMask, "\033[1;6C", 0, 0},
{ XK_Right, ControlMask|Mod1Mask, "\033[1;7C", 0, 0},
{ XK_Right, ShiftMask|ControlMask|Mod1Mask, "\033[1;8C", 0, 0},
{ XK_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0},
{ XK_Return, Mod1Mask, "\033\r", 0, 0},
{ XK_Return, XK_ANY_MOD, "\r", 0, 0},
{ XK_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_Insert, ControlMask, "\033[L", -1, 0},
{ XK_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_Delete, ControlMask, "\033[M", -1, 0},
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_End, ControlMask, "\033[J", -1, 0},
{ XK_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_End, ShiftMask, "\033[K", -1, 0},
{ XK_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_Prior, ControlMask, "\033[5;5~", 0, 0},
{ XK_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_Next, ControlMask, "\033[6;5~", 0, 0},
{ XK_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_F1, XK_NO_MOD, "\033OP" , 0, 0},
{ XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0},
{ XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0},
{ XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0},
{ XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0},
{ XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0},
{ XK_F2, XK_NO_MOD, "\033OQ" , 0, 0},
{ XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0},
{ XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0},
{ XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0},
{ XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0},
{ XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0},
{ XK_F3, XK_NO_MOD, "\033OR" , 0, 0},
{ XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0},
{ XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0},
{ XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0},
{ XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0},
{ XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0},
{ XK_F4, XK_NO_MOD, "\033OS" , 0, 0},
{ XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0},
{ XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0},
{ XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0},
{ XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0},
{ XK_F5, XK_NO_MOD, "\033[15~", 0, 0},
{ XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0},
{ XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0},
{ XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0},
{ XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0},
{ XK_F6, XK_NO_MOD, "\033[17~", 0, 0},
{ XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0},
{ XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0},
{ XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0},
{ XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0},
{ XK_F7, XK_NO_MOD, "\033[18~", 0, 0},
{ XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0},
{ XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0},
{ XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0},
{ XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0},
{ XK_F8, XK_NO_MOD, "\033[19~", 0, 0},
{ XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0},
{ XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0},
{ XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0},
{ XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0},
{ XK_F9, XK_NO_MOD, "\033[20~", 0, 0},
{ XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0},
{ XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0},
{ XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0},
{ XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0},
{ XK_F10, XK_NO_MOD, "\033[21~", 0, 0},
{ XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0},
{ XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0},
{ XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0},
{ XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0},
{ XK_F11, XK_NO_MOD, "\033[23~", 0, 0},
{ XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0},
{ XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0},
{ XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0},
{ XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0},
{ XK_F12, XK_NO_MOD, "\033[24~", 0, 0},
{ XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0},
{ XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0},
{ XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0},
{ XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0},
{ XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0},
{ XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0},
{ XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0},
{ XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0},
{ XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0},
{ XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0},
{ XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0},
{ XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0},
{ XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0},
{ XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0},
{ XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0},
{ XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0},
{ XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0},
{ XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0},
{ XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0},
{ XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0},
{ XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0},
{ XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0},
{ XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0},
{ XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0},
{ XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0},
{ XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0},
{ XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0},
};
static uint selmasks[] = {
[SEL_RECTANGULAR] = Mod1Mask,
};
static char ascii_printable[] =
" !\"#$%&'()*+,-./0123456789:;<=>?"
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
"`abcdefghijklmnopqrstuvwxyz{|}~";
'';
patches = with prev; [
(fetchpatch {
name = "disable_bold_italic_fonts";
url = "https://st.suckless.org/patches/disable_bold_italic_fonts/st-disable-bold-italic-fonts-0.8.2.diff";
sha256 = "PG96QMqbX3Fr0EvDmF4lm/J3gj18eyBfm1bJ3M7plvQ=";
})
(fetchpatch {
name = "anysize";
url = "https://st.suckless.org/patches/anysize/st-anysize-20220718-baa9357.diff";
sha256 = "yx9VSwmPACx3EN3CAdQkxeoJKJxQ6ziC9tpBcoWuWHc=";
})
];
}

View file

@ -28,6 +28,7 @@ in
tag-release = callPackage ./tag-release.nix { };
time-until = callPackage ./time-until.nix { };
timer = callPackage ./timer.nix { };
tmux-sessionizer = callPackage ./tmux-sessionizer { };
unmounter = callPackage ./unmounter.nix { };
update-all-git-repos = callPackage ./update-all-git-repos.nix { };
vic = callPackage ./vic.nix { inherit inputs; };

View file

@ -25,11 +25,6 @@ in
]
++ [ users.opdavies ];
"secrets/freshrss-password-file.age".publicKeys = [
hosts.nixedo
]
++ [ users.opdavies ];
"secrets/peertube-env.age".publicKeys = [
hosts.nixedo
]

View file

@ -1,17 +0,0 @@
age-encryption.org/v1
-> ssh-ed25519 IsVD3g qUcQuqnQVqFEa3pMKA4MCAGvBdkU55wUc9QL+CV7bEg
xFsrPc+7aZBg4AQscuf4uI+NkjHW+iDtx9+lIFGhwvM
-> ssh-rsa +vTWQw
ZsahI21WKpNepuhJFCxRLJmfJaY8ZarIlLXTyhEzPwZ8OISpHfJ4gkgk42AMFZrq
s+Pr1zYx74EZ/VhfuxkvLCTekhW5aT9fk+NsGOZwuddywTjkgoKg8JzaMTXcTJxp
uFYNfGlIUgn94SrnisJP/sNztdjluGz4fEhBo99WJb6KabHtWLllUwEkzwDeKbT4
hFvCp3ZupjHi/8bb2faAu5CJ82C1bAuHGqhlgJvhdFgi+VMinGl9zUYkQNY12O+O
z8zo5KxtNofzhkM3+Z8Xcnz1C5VaZNHtzvIDXVwA7CTuhc0H1a5uEN8keqBhN0dR
YdU4WiINZcDBq0+A6Aou+TxBZE+IQ+hLQJVuZMch6oBznP6IigD3ugbrVoQtzDGf
mdw87IXFB/tDMMSaT567XJoN7hECoZVqVc6pZKZgGZpmsScBpJBBAqSo6TLpzbsy
/u5AhuiWBZZylaJlX6OrNAwobAbs07scJyufdEJ48ga8dVQI0OHiBphJbq92nGKt
iBHW6nzjgfb4fe93LXaSAT66ffM3j5DOTx6DUkMZnHg0OqUIikWwRLBrLs1bC2oL
1YXJICCbRdA0cW1DnTGtsjBTYwv3IKk3jvYD6XEJYpBXKJC8Uqx3pV/dxuwFrrLV
Rk9U+RmwKmJasqiYFHuYJhEdPbxWT4YPgDwcHpD3vA4
--- kD476dnm+Q4VMK9oHU4wIz6JciDtOS7LKik6Q2JgDdA
˜Õb'H±n±?w°²ë@½—D-7ÊF"A j üxU<1D>â{4dšâò6âý¥¹O¯P5