Compare commits

...
Sign in to create a new pull request.

71 commits

Author SHA1 Message Date
b42daccb99 Enable TreeSitter indentation
Some checks are pending
/ check (push) Waiting to run
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-10 14:57:20 +00:00
0c40dc6cff Remove ollama and Open WebUI files
Some checks are pending
/ check (push) Waiting to run
2025-11-10 00:14:09 +00:00
ba65884ae2 flake.lock: Update
Some checks are pending
/ check (push) Waiting to run
Flake lock file updates:

• Updated input 'z':
    'git+https://git.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=93936fadc7a462161d5930257b71bbc318538598' (2025-11-09)
  → 'git+https://git.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=184accfd1fadb9580f2af8873ce0f2a70eeb8b49' (2025-11-09)
2025-11-09 23:40:43 +00:00
d03ce5ecf7 flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/9ba0d85de3eaa7afeab493fed622008b6e4924f5?narHash=sha256-lsNWuj4Z%2BpE7s0bd2OKicOFq9bK86JE0ZGeKJbNqb94%3D' (2025-10-28)
  → 'github:ryantm/agenix/fcdea223397448d35d9b31f798479227e80183f6?narHash=sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L%2BVSybPfiIgzU8lbQ%3D' (2025-11-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/0562fef070a1027325dd4ea10813d64d2c967b39?narHash=sha256-33YUsWpPyeBZEWrKQ2a1gkRZ7i0XCC/2MYpU6BVeQSU%3D' (2025-11-06)
  → 'github:nix-community/home-manager/b8645b18b0f5374127bbade6de7381ef0b3d5720?narHash=sha256-E428EuouA4nFTNlLuqlL4lVR78X%2BEbBIqDqsBFnB79w%3D' (2025-11-09)
• Updated input 'nix-index-database':
    'github:nix-community/nix-index-database/359ff6333a7b0b60819d4c20ed05a3a1f726771f?narHash=sha256-Pu1v3mlFhRzZiSxVHb2/i/f5yeYyRNqr0RvEUJ4UgHo%3D' (2025-11-02)
  → 'github:nix-community/nix-index-database/15c5451c63f4c612874a43846bfe3fa828b03eee?narHash=sha256-C9F1C31ys0V7mnp4EcDy7L1cLZw/sCTEXqqTtGnvu08%3D' (2025-11-09)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/ae814fd3904b621d8ab97418f1d0f2eb0d3716f4?narHash=sha256-YRqMDEtSMbitIMj%2BJLpheSz0pwEr0Rmy5mC7myl17xs%3D' (2025-11-05)
  → 'github:nixos/nixpkgs/b6a8526db03f735b89dd5ff348f53f752e7ddc8e?narHash=sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV%2B3DSADBX7/9YQ%3D' (2025-11-08)
• Updated input 'nixvim':
    'github:nix-community/nixvim/d4b798a469248aa2b0bba4508bd8f97837566885?narHash=sha256-TUYm7Ihtl8472GPTbj/cQWUJeDNQ4a9kuz93wkEIE8M%3D' (2025-11-08)
  → 'github:nix-community/nixvim/faf1fb4b7cd069ce44469e45c3259b7bcf106f81?narHash=sha256-dyYnqvYrgViB22inBqNern/XSWtOiweP8NTfJQJeTis%3D' (2025-11-09)
• Updated input 'nur':
    'github:nix-community/NUR/84a04dd267f040a3be5a9a6cc8f1518cdb55b7c4?narHash=sha256-1%2Bs2HhAdoM72R91O3dxoLAvVeld2kINeI4EakAkIKD8%3D' (2025-11-08)
  → 'github:nix-community/NUR/efc27c839b15d0ff15d58fb09035a93dea7f85f5?narHash=sha256-B24ywaTUd9BYkK3qHfl0MubCLnO4Bk8cRSQmIvfofco%3D' (2025-11-09)
• Updated input 'z':
    'git+https://git.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=2e92d07eb740acce9ebadacd0507bda33521e04b' (2025-11-08)
  → 'git+https://git.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=93936fadc7a462161d5930257b71bbc318538598' (2025-11-09)
2025-11-09 23:32:17 +00:00
127b8a84ea Revert "Disable kanata for now"
This reverts commit 1c01838f8f.
2025-11-09 00:54:56 +00:00
e999f40b6b Revert "This reverts commit c22495a834."
This reverts commit a59daa9ae2.
2025-11-09 00:54:11 +00:00
a59daa9ae2 This reverts commit c22495a834. 2025-11-09 00:53:33 +00:00
c22495a834 Add abbreviations
Some checks are pending
/ check (push) Waiting to run
2025-11-09 00:48:02 +00:00
1c01838f8f Disable kanata for now
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-09 00:47:28 +00:00
d5cfcf2059 Always run --clear with watchexec
Some checks are pending
/ check (push) Waiting to run
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-08 18:54:09 +00:00
aae4bdcda9 Change code subdomain to git
Some checks are pending
/ check (push) Waiting to run
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-08 13:07:10 +00:00
1c1862e582 flake.lock: Update
All checks were successful
/ check (push) Successful in 43s
Flake lock file updates:

• Updated input 'nixvim':
    'github:nix-community/nixvim/3031d4ab616323f6d41704dfb46f2b801f29973d?narHash=sha256-VH4%2BfAB85irWuzxfWPfEEwDOE%2BeQsB/pljNApM0onuU%3D' (2025-11-07)
  → 'github:nix-community/nixvim/d4b798a469248aa2b0bba4508bd8f97837566885?narHash=sha256-TUYm7Ihtl8472GPTbj/cQWUJeDNQ4a9kuz93wkEIE8M%3D' (2025-11-08)
• Updated input 'nur':
    'github:nix-community/NUR/68b01383f627a75b23633abcc72f71dde622f50f?narHash=sha256-85gEriuyJY4fOVKS54rxxbrD%2BPtf1gA303mXZpV9hcM%3D' (2025-11-07)
  → 'github:nix-community/NUR/84a04dd267f040a3be5a9a6cc8f1518cdb55b7c4?narHash=sha256-1%2Bs2HhAdoM72R91O3dxoLAvVeld2kINeI4EakAkIKD8%3D' (2025-11-08)
• Updated input 'z':
    'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=50661b0ef8f2f3fd79c30729edf7009dd8220840' (2025-11-08)
  → 'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=2e92d07eb740acce9ebadacd0507bda33521e04b' (2025-11-08)
2025-11-08 12:45:31 +00:00
ba4f355193 flake.lock: Update
Flake lock file updates:

• Updated input 'z':
    'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=e43690474566c91257bf7106ec1fedb77bf73475' (2025-11-07)
  → 'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=50661b0ef8f2f3fd79c30729edf7009dd8220840' (2025-11-08)
2025-11-08 03:20:20 +00:00
361f47a2ba flake.lock: Update
All checks were successful
/ check (push) Successful in 41s
Flake lock file updates:

• Updated input 'nur':
    'github:nix-community/NUR/ea81f1a7fb100927f3608a1f33b21c64bfa0cdfc?narHash=sha256-65HoNBEFjLDyD%2B%2BNEUYIWvN6FVjeTiJnX/NFGwUCuH4%3D' (2025-11-07)
  → 'github:nix-community/NUR/68b01383f627a75b23633abcc72f71dde622f50f?narHash=sha256-85gEriuyJY4fOVKS54rxxbrD%2BPtf1gA303mXZpV9hcM%3D' (2025-11-07)
• Updated input 'z':
    'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=3e69cec58d545d9a277f7a9119de08cd92c9a525' (2025-11-07)
  → 'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=e43690474566c91257bf7106ec1fedb77bf73475' (2025-11-07)
2025-11-07 23:14:56 +00:00
6a2e5413ee Remove sudo-rs
All checks were successful
/ check (push) Successful in 42s
2025-11-07 23:14:32 +00:00
9c748220f4 flake.lock: Update
All checks were successful
/ check (push) Successful in 1m8s
Flake lock file updates:

• Updated input 'bop-scripts':
    'github:breadonpenguins/scripts/7c01cb65b5f5e06b1e80adb2d397fb972d9f9783?narHash=sha256-Gdv0vWULnVnX2JVFU7Cu/g0%2Bc%2BDYMsRy4JjTAuRc8sA%3D' (2025-11-04)
  → 'github:breadonpenguins/scripts/c1c94c3f4b89076dc8f788fae12f639dda663ddb?narHash=sha256-kvhro91rmPgSX8LYLTsesLJlOlKp1YJsIg9e%2BCb9u6o%3D' (2025-11-06)
• Updated input 'home-manager':
    'github:nix-community/home-manager/2907788315a73d3292140b4d59b5d95796565625?narHash=sha256-BFhoqL231hyTZ7piR%2B8FgDJby48oWRN8%2Bg3b1uvvtX8%3D' (2025-11-06)
  → 'github:nix-community/home-manager/0562fef070a1027325dd4ea10813d64d2c967b39?narHash=sha256-33YUsWpPyeBZEWrKQ2a1gkRZ7i0XCC/2MYpU6BVeQSU%3D' (2025-11-06)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/24084931d8098fce300fabea9e48fa96292228d7?narHash=sha256-sQJuoiqsaIvKiIOmF/3FDV5dM2TGL2jBv1PeQSt83YE%3D' (2025-11-06)
  → 'github:NixOS/nixos-hardware/52113c4f5cfd1e823001310e56d9c8d0699a6226?narHash=sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7%2B/YE%3D' (2025-11-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/b3d51a0365f6695e7dd5cdf3e180604530ed33b4?narHash=sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw%3D' (2025-11-02)
  → 'github:nixos/nixpkgs/ae814fd3904b621d8ab97418f1d0f2eb0d3716f4?narHash=sha256-YRqMDEtSMbitIMj%2BJLpheSz0pwEr0Rmy5mC7myl17xs%3D' (2025-11-05)
• Updated input 'nixvim':
    'github:nix-community/nixvim/d01e1c17e2690c10d3aa6abea28838befa1fd449?narHash=sha256-qEI9AkUwOHtM5A2yDBy0K%2BUHGLfYir81dFiTN0DXBeU%3D' (2025-11-06)
  → 'github:nix-community/nixvim/3031d4ab616323f6d41704dfb46f2b801f29973d?narHash=sha256-VH4%2BfAB85irWuzxfWPfEEwDOE%2BeQsB/pljNApM0onuU%3D' (2025-11-07)
• Updated input 'nur':
    'github:nix-community/NUR/8207b2a2d9f644dfb4fd9e87a1dd49e9d79dd0af?narHash=sha256-Pl7z0IhHpo48P75ViLfz638P68fbQ6EUwCmB4wIegF0%3D' (2025-11-06)
  → 'github:nix-community/NUR/ea81f1a7fb100927f3608a1f33b21c64bfa0cdfc?narHash=sha256-65HoNBEFjLDyD%2B%2BNEUYIWvN6FVjeTiJnX/NFGwUCuH4%3D' (2025-11-07)
• Updated input 'z':
    'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=798bfdd5ca7f7107217aa101b9cb6a205f551e12' (2025-11-06)
  → 'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=3e69cec58d545d9a277f7a9119de08cd92c9a525' (2025-11-07)
2025-11-07 21:34:16 +00:00
9afe0e9271 Enable qmk.nvim plugin
All checks were successful
/ check (push) Successful in 39s
Add the qmk.nvim plugin to automatically format and update ZMK and QMK
keyboard layouts in their configuration files.

GitHub repo: https://github.com/codethread/qmk.nvim
YouTube video by linkarzu: https://www.youtube.com/watch?v=menWdCt3Go0

Commit after formatting:
https://code.oliverdavies.uk/opdavies/glove80-zmk-config/commit/fb674

Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-06 22:14:26 +00:00
d28cc18342 Re-add oil.nvim
All checks were successful
/ check (push) Successful in 40s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-06 21:56:15 +00:00
3aad074833 flake.lock: Update
All checks were successful
/ check (push) Successful in 44s
Flake lock file updates:

• Updated input 'bop-scripts':
    'github:breadonpenguins/scripts/1396a09a206dbd6f9a08ffa7a5603e6d55ae5f00?narHash=sha256-SpQ4TMOsYCr9EoCdUZ1GeX5cOoPHfxEYyRakYznc91w%3D' (2025-10-12)
  → 'github:breadonpenguins/scripts/7c01cb65b5f5e06b1e80adb2d397fb972d9f9783?narHash=sha256-Gdv0vWULnVnX2JVFU7Cu/g0%2Bc%2BDYMsRy4JjTAuRc8sA%3D' (2025-11-04)
• Updated input 'disko':
    'github:nix-community/disko/6f4cf5abbe318e4cd1e879506f6eeafd83f7b998?narHash=sha256-XOpKBp6HLzzMCbzW50TEuXN35zN5WGQREC7n34DcNMM%3D' (2025-10-31)
  → 'github:nix-community/disko/af087d076d3860760b3323f6b583f4d828c1ac17?narHash=sha256-TtcPgPmp2f0FAnc%2BDMEw4ardEgv1SGNR3/WFGH0N19M%3D' (2025-11-04)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/864599284fc7c0ba6357ed89ed5e2cd5040f0c04?narHash=sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4%3D' (2025-10-20)
  → 'github:hercules-ci/flake-parts/26d05891e14c88eb4a5d5bee659c0db5afb609d8?narHash=sha256-xxdepIcb39UJ94%2BYydGP221rjnpkDZUlykKuF54PsqI%3D' (2025-11-06)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/a73b9c743612e4244d865a2fdee11865283c04e6?narHash=sha256-x2rJ%2BOvzq0sCMpgfgGaaqgBSwY%2BLST%2BWbZ6TytnT9Rk%3D' (2025-08-10)
  → 'github:nix-community/nixpkgs.lib/719359f4562934ae99f5443f20aa06c2ffff91fc?narHash=sha256-b0yj6kfvO8ApcSE%2BQmA6mUfu8IYG6/uU28OFn4PaC8M%3D' (2025-10-29)
• Updated input 'home-manager':
    'github:nix-community/home-manager/4ac96eb21c101a3e5b77ba105febc5641a8959aa?narHash=sha256-lCRaipHgszaFZ1Cs8fdGJguVycCisBAf2HEFgip5%2BxU%3D' (2025-10-31)
  → 'github:nix-community/home-manager/2907788315a73d3292140b4d59b5d95796565625?narHash=sha256-BFhoqL231hyTZ7piR%2B8FgDJby48oWRN8%2Bg3b1uvvtX8%3D' (2025-11-06)
• Updated input 'import-tree':
    'github:vic/import-tree/a037ed2a58fc0ebed9e93b9ef79b0646e648f719?narHash=sha256-TEbh9zISiQcU82VwVoEbmXHnSGlUxTwvjJA9g9ErSDA%3D' (2025-10-22)
  → 'github:vic/import-tree/90fa129798be99cde036b78658e89475710966a1?narHash=sha256-AJ96FNj50DU0bTyIzAPkPOjCZTHqjURVjok8qoXvmqM%3D' (2025-11-05)
• Updated input 'nix-index-database':
    'github:nix-community/nix-index-database/ed6b293161b378a7368cda38659eb8d3d9a0dac4?narHash=sha256-qBJL6xEIjqYq9zOcG2vf2nPTeVBppNJzvO0LuQWMwMo%3D' (2025-10-26)
  → 'github:nix-community/nix-index-database/359ff6333a7b0b60819d4c20ed05a3a1f726771f?narHash=sha256-Pu1v3mlFhRzZiSxVHb2/i/f5yeYyRNqr0RvEUJ4UgHo%3D' (2025-11-02)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/7467f155fcba189eb088a7601f44fbef7688669b?narHash=sha256-rNHeoG3ZrA94jczyLSjxCtu67YYPYIlXXr0uhG3wNxM%3D' (2025-10-31)
  → 'github:NixOS/nixos-hardware/24084931d8098fce300fabea9e48fa96292228d7?narHash=sha256-sQJuoiqsaIvKiIOmF/3FDV5dM2TGL2jBv1PeQSt83YE%3D' (2025-11-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15?narHash=sha256-kJ8lIZsiPOmbkJypG%2BB5sReDXSD1KGu2VEPNqhRa/ew%3D' (2025-10-31)
  → 'github:nixos/nixpkgs/b3d51a0365f6695e7dd5cdf3e180604530ed33b4?narHash=sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw%3D' (2025-11-02)
• Updated input 'nixvim':
    'github:nix-community/nixvim/fedd0e287081c0e20a45fdf3bc0e1ecc6e9a0225?narHash=sha256-yutWdFO7EkJGdQOquwHvyWZ%2B3KpPowzy%2Bv1xb8IA/K4%3D' (2025-10-31)
  → 'github:nix-community/nixvim/d01e1c17e2690c10d3aa6abea28838befa1fd449?narHash=sha256-qEI9AkUwOHtM5A2yDBy0K%2BUHGLfYir81dFiTN0DXBeU%3D' (2025-11-06)
• Updated input 'nur':
    'github:nix-community/NUR/64d040646b791571b0e3658bb934c7ce78c482bb?narHash=sha256-bdC2Y1/wTa6VbOUyCDsHbL0UAi8M/nZUEEf6Omyko88%3D' (2025-11-01)
  → 'github:nix-community/NUR/8207b2a2d9f644dfb4fd9e87a1dd49e9d79dd0af?narHash=sha256-Pl7z0IhHpo48P75ViLfz638P68fbQ6EUwCmB4wIegF0%3D' (2025-11-06)
• Updated input 'z':
    'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=c2ee61e54afabacd1571ad23fcdffaef195a8df7' (2025-11-03)
  → 'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=798bfdd5ca7f7107217aa101b9cb6a205f551e12' (2025-11-06)
2025-11-06 18:20:20 +00:00
95873b8110 Update home row mod mappings
All checks were successful
/ check (push) Successful in 38s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-06 00:36:57 +00:00
87503597e9 Add edit-command-line to zsh
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-05 23:51:40 +00:00
fa38f26bb1 Refactor homelab ports
All checks were successful
/ check (push) Successful in 38s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-05 00:27:05 +00:00
239fb86c5d Remove Homepage Dashboard
All checks were successful
/ check (push) Successful in 39s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-05 00:02:10 +00:00
6bf7a5f97a Fix evaluation warning
All checks were successful
/ check (push) Successful in 41s
Fixes:

> The option services.logind.lidSwitchExternalPower' defined in
/nix/store/xppb9ysh004vwf838dkmvsk3r033nl00-source/hosts/nixedo/configuration.nix'
has been renamed to
services.logind.settings.Login.HandleLidSwitchExternalPower'.

Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-04 23:46:18 +00:00
a7ef7eeb90 nixedo: re-add FreshRSS
All checks were successful
/ check (push) Successful in 38s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-04 21:50:55 +00:00
ac8779e9bb Remove jitsi
All checks were successful
/ check (push) Successful in 40s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-04 20:43:03 +00:00
556e5f2665 Remove newsboat
All checks were successful
/ check (push) Successful in 41s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-04 20:39:53 +00:00
4bd08a516f Rename
All checks were successful
/ check (push) Successful in 51s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-04 02:42:42 +00:00
3caf4d71c6 nixedo: pull newer images for TubeArchivist
All checks were successful
/ check (push) Successful in 54s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-04 02:25:15 +00:00
e06e46b65d Enable terraformls
All checks were successful
/ check (push) Successful in 52s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-04 02:03:40 +00:00
f7d7fc6c4d nixedo: disable sudo-rs
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-04 01:57:02 +00:00
297c8cd990 Add ponthirtaekwondo.co.uk website
All checks were successful
/ check (push) Successful in 48s
2025-11-04 00:18:55 +00:00
494b0d6edd flake.lock: Update
All checks were successful
/ check (push) Successful in 44s
Flake lock file updates:

• Updated input 'z':
    'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=a2c338e9eba3b8623b8a7fa6e9fdc871b019dfd6' (2025-11-01)
  → 'git+https://code.oliverdavies.uk/opdavies/z?ref=refs/heads/main&rev=c2ee61e54afabacd1571ad23fcdffaef195a8df7' (2025-11-03)
2025-11-03 19:27:41 +00:00
5f14c52d47 Sort vars alphabetically
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 22:13:51 +00:00
5dd2a32319 Open mpv in full-screen mode
All checks were successful
/ check (push) Successful in 41s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 17:11:04 +00:00
e71dd49af9 Move st overrides to an overlay
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 15:30:12 +00:00
d5b5a58c0c Show more suggestions
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 15:23:48 +00:00
2cd9ba171b Re-use an existing st window
All checks were successful
/ check (push) Successful in 42s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 14:41:29 +00:00
e8d92643c5 Connect to the selected session in st
All checks were successful
/ check (push) Successful in 43s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 07:40:47 +00:00
c888e88daf Make searches case-insensitive
All checks were successful
/ check (push) Successful in 42s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 06:55:02 +00:00
1b1e03619a Add dmenu_tmux
All checks were successful
/ check (push) Successful in 44s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 01:49:48 +00:00
19e930ea1f Add dmenu_mpv
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 01:45:11 +00:00
27b082045d Update z
All checks were successful
/ check (push) Successful in 43s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 01:11:55 +00:00
7b5bdeeb7b flake update
All checks were successful
/ check (push) Successful in 1m10s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-01 19:34:41 +00:00
d23ae4bdcf Fix evaluation warnings
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-01 16:07:13 +00:00
bbbda37bfc Remove configDir for Jellyfin
All checks were successful
/ check (push) Successful in 10m5s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-01 12:56:04 +00:00
db51563de7 Remove Mastodon
All checks were successful
/ check (push) Successful in 1m43s
2025-11-01 10:59:04 +00:00
aff64e31bb flake update
All checks were successful
/ check (push) Successful in 1m22s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-31 21:53:20 +00:00
583fdf5248 Update z
All checks were successful
/ check (push) Successful in 48s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-27 23:12:19 +00:00
2c5f5f266f Remove build and build-adoc
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-27 23:03:23 +00:00
6236f20202 Add keybinding to run open-repo-url
All checks were successful
/ check (push) Successful in 47s
2025-10-27 09:49:45 +00:00
e8dd94db0b flake update
All checks were successful
/ check (push) Successful in 51s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-27 02:01:25 +00:00
bbd29560ed Fix script paths
All checks were successful
/ check (push) Successful in 47s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-27 01:53:40 +00:00
53ee1662e0 Update z
All checks were successful
/ check (push) Successful in 2m2s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-27 00:54:39 +00:00
cf9f61187f Update z, shorten commands
All checks were successful
/ check (push) Successful in 1m21s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-27 00:13:15 +00:00
732db41ba1 Update z
All checks were successful
/ check (push) Successful in 1m24s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-26 22:01:12 +00:00
2b0942622b Update z
All checks were successful
/ check (push) Successful in 2m27s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-26 21:53:37 +00:00
a60fcf43d8 Update z
All checks were successful
/ check (push) Successful in 2m18s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-26 20:29:23 +00:00
d9eb51289f Fix zet path
All checks were successful
/ check (push) Successful in 50s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-25 23:16:53 +01:00
9e8ebc2201 Remove unused inputs
All checks were successful
/ check (push) Successful in 1m22s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-25 12:53:52 +01:00
dbb7ecd7d6 Update z
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-25 12:29:58 +01:00
dc510daa75 Remove scripts that are now in the z application 2025-10-25 12:29:42 +01:00
a1b3975f39 Replace zet with the z monolith
All checks were successful
/ check (push) Successful in 48s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-24 23:31:00 +01:00
2783c9811d Use start-tmux script
Some checks are pending
/ check (push) Waiting to run
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-24 16:45:50 +01:00
e2d6339ee0 Delete update-inputs.yml 2025-10-24 13:35:11 +01:00
e2e4aab391 Add start-tmux 2025-10-24 13:14:54 +01:00
bb8b5deb9f Revert "Specify the working directory"
All checks were successful
/ check (push) Successful in 54s
This reverts commit c72bd47263.
2025-10-24 00:01:07 +01:00
6dcb9cdffa Remove auto-save
Some checks are pending
/ check (push) Waiting to run
2025-10-24 00:00:09 +01:00
58ad8eefa1 Revert "flake.lock: Update"
This reverts commit 0b1eee3dec.
2025-10-23 23:59:47 +01:00
flake-bot
0b1eee3dec flake.lock: Update
Some checks are pending
/ check (push) Waiting to run
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/9edb1787864c4f59ae5074ad498b6272b3ec308d?narHash=sha256-NA/FT2hVhKDftbHSwVnoRTFhes62%2B7dxZbxj5Gxvghs%3D' (2025-08-05)
  → 'github:ryantm/agenix/2f0f812f69f3eb4140157fe15e12739adf82e32a?narHash=sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L%2BVSybPfiIgzU8lbQ%3D' (2025-10-19)
• 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/3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5?narHash=sha256-y7UhnWlER8r776JsySqsbTUh2Txf7K30smfHlqdaIQw%3D' (2025-10-17)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751?narHash=sha256-%2BuWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw%3D' (2025-09-01)
  → 'github:hercules-ci/flake-parts/864599284fc7c0ba6357ed89ed5e2cd5040f0c04?narHash=sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4%3D' (2025-10-20)
• 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/84e1adb0cdd13f5f29886091c7234365e12b1e7f?narHash=sha256-r6qbieh8iC1q1eCaWv15f4UIp8SeGffwswhNSA1Qk3s%3D' (2025-10-21)
• 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/5024e1901239a76b7bf94a4cd27f3507e639d49e?narHash=sha256-xmU8kAsRprJiTGBTaGrwmjBP3AMA9ltlrxHKFuy5JWc%3D' (2025-10-19)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/ba6fab29768007e9f2657014a6e134637100c57d?narHash=sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac%3D' (2025-09-03)
  → 'github:NixOS/nixos-hardware/d6645c340ef7d821602fd2cd199e8d1eed10afbc?narHash=sha256-2m1S4jl%2BGEDtlt2QqeHil8Ny456dcGSKJAM7q3j/BFU%3D' (2025-10-20)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d0fc30899600b9b3466ddb260fd83deb486c32f1?narHash=sha256-rw/PHa1cqiePdBxhF66V7R%2BWAP8WekQ0mCDG4CFqT8Y%3D' (2025-09-02)
  → 'github:nixos/nixpkgs/5e2a59a5b1a82f89f2c7e598302a9cacebb72a67?narHash=sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs%3D' (2025-10-19)
• Updated input 'nixvim':
    'github:nix-community/nixvim/63496f00c681b3e200bd17878a43ec68b7139a66?narHash=sha256-N4PjGA0rittpNZGscKPel%2Bmr/dMcKF73j0yr4rbG3T0%3D' (2025-09-04)
  → 'github:nix-community/nixvim/e3b77e803b2350b72f4d72c8f175ab0fbfe5a642?narHash=sha256-UP1v%2BsEkHuvD2%2BqyhxbkQpBR%2Bdl9U0ljml3/dMI2jeU%3D' (2025-10-20)
• 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/62c5aee56c07b4536f87d2a1dc1a9439ed577dc1?narHash=sha256-ieaO94BvvJR54LYFyCJB1LB4nBt9ls4TtgXBdXENHCE%3D' (2025-10-21)
• 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-21 07:01:28 +01:00
4ef41f5d05 Change wiki to notes
All checks were successful
/ check (push) Successful in 45s
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-14 07:58:39 +01:00
92 changed files with 974 additions and 1861 deletions

View file

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

224
flake.lock generated
View file

@ -10,11 +10,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1754433428,
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
"lastModified": 1762618334,
"narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
"owner": "ryantm",
"repo": "agenix",
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
"rev": "fcdea223397448d35d9b31f798479227e80183f6",
"type": "github"
},
"original": {
@ -26,11 +26,11 @@
"bop-scripts": {
"flake": false,
"locked": {
"lastModified": 1756931648,
"narHash": "sha256-bfAmJ1IY0B6eNbJvoWkUMQ7Ya4ShrIoVSdQrnE/cn40=",
"lastModified": 1762468291,
"narHash": "sha256-kvhro91rmPgSX8LYLTsesLJlOlKp1YJsIg9e+Cb9u6o=",
"owner": "breadonpenguins",
"repo": "scripts",
"rev": "d04bcbe63176e623e1ce8edc4c3840c506a28d96",
"rev": "c1c94c3f4b89076dc8f788fae12f639dda663ddb",
"type": "github"
},
"original": {
@ -39,22 +39,6 @@
"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": [
@ -98,6 +82,24 @@
"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": [
@ -105,11 +107,11 @@
]
},
"locked": {
"lastModified": 1756733629,
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
"lastModified": 1762276996,
"narHash": "sha256-TtcPgPmp2f0FAnc+DMEw4ardEgv1SGNR3/WFGH0N19M=",
"owner": "nix-community",
"repo": "disko",
"rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
"rev": "af087d076d3860760b3323f6b583f4d828c1ac17",
"type": "github"
},
"original": {
@ -118,32 +120,16 @@
"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": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"lastModified": 1762440070,
"narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
"type": "github"
},
"original": {
@ -205,17 +191,17 @@
]
},
"locked": {
"lastModified": 1757018109,
"narHash": "sha256-KfRzBPOOM5cf8mFVeWjV7TGa3p+ul/flxnUdwGW4Sds=",
"lastModified": 1757063075,
"narHash": "sha256-DpZgkdZELTZ/F/O+Xgj81E+01S5Zp2JCMa8zruEZe9o=",
"ref": "refs/heads/main",
"rev": "63235768261976efe0d9c825e69c44fff8c80e5d",
"revCount": 1,
"rev": "19591ad8e1f3c261e84b487307c8534dd67a3707",
"revCount": 37,
"type": "git",
"url": "https://code.oliverdavies.uk/opdavies/git-repo-updater"
"url": "https://git.oliverdavies.uk/opdavies/git-repo-updater"
},
"original": {
"type": "git",
"url": "https://code.oliverdavies.uk/opdavies/git-repo-updater"
"url": "https://git.oliverdavies.uk/opdavies/git-repo-updater"
}
},
"home-manager": {
@ -246,11 +232,11 @@
]
},
"locked": {
"lastModified": 1756991914,
"narHash": "sha256-4ve/3ah5H/SpL2m3qmZ9GU+VinQYp2MN1G7GamimTds=",
"lastModified": 1762721397,
"narHash": "sha256-E428EuouA4nFTNlLuqlL4lVR78X+EbBIqDqsBFnB79w=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b08f8737776f10920c330657bee8b95834b7a70f",
"rev": "b8645b18b0f5374127bbade6de7381ef0b3d5720",
"type": "github"
},
"original": {
@ -262,11 +248,11 @@
},
"import-tree": {
"locked": {
"lastModified": 1752730890,
"narHash": "sha256-GES8fapSLGz36MMPRVNkSUWXUTtqvGQNXHjRmRLfJUY=",
"lastModified": 1762327901,
"narHash": "sha256-AJ96FNj50DU0bTyIzAPkPOjCZTHqjURVjok8qoXvmqM=",
"owner": "vic",
"repo": "import-tree",
"rev": "6ebb8cb87987b20264c09296166543fd3761d274",
"rev": "90fa129798be99cde036b78658e89475710966a1",
"type": "github"
},
"original": {
@ -310,11 +296,11 @@
]
},
"locked": {
"lastModified": 1756612744,
"narHash": "sha256-/glV6VAq8Va3ghIbmhET3S1dzkbZqicsk5h+FtvwiPE=",
"lastModified": 1762660502,
"narHash": "sha256-C9F1C31ys0V7mnp4EcDy7L1cLZw/sCTEXqqTtGnvu08=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "3fe768e1f058961095b4a0d7a2ba15dc9736bdc6",
"rev": "15c5451c63f4c612874a43846bfe3fa828b03eee",
"type": "github"
},
"original": {
@ -325,11 +311,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1756925795,
"narHash": "sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac=",
"lastModified": 1762463231,
"narHash": "sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7+/YE=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "ba6fab29768007e9f2657014a6e134637100c57d",
"rev": "52113c4f5cfd1e823001310e56d9c8d0699a6226",
"type": "github"
},
"original": {
@ -341,11 +327,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1756787288,
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
"lastModified": 1762596750,
"narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
"rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e",
"type": "github"
},
"original": {
@ -357,11 +343,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1754788789,
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
"lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"type": "github"
},
"original": {
@ -386,6 +372,22 @@
"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": [
@ -398,11 +400,11 @@
"systems": "systems_3"
},
"locked": {
"lastModified": 1756946299,
"narHash": "sha256-N4PjGA0rittpNZGscKPel+mr/dMcKF73j0yr4rbG3T0=",
"lastModified": 1762691346,
"narHash": "sha256-dyYnqvYrgViB22inBqNern/XSWtOiweP8NTfJQJeTis=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "63496f00c681b3e200bd17878a43ec68b7139a66",
"rev": "faf1fb4b7cd069ce44469e45c3259b7bcf106f81",
"type": "github"
},
"original": {
@ -419,11 +421,11 @@
]
},
"locked": {
"lastModified": 1757050467,
"narHash": "sha256-Rps0Ga0g/TdY49rR2ZRBsdBYybSzPccEsaI9IvwuE98=",
"lastModified": 1762724684,
"narHash": "sha256-B24ywaTUd9BYkK3qHfl0MubCLnO4Bk8cRSQmIvfofco=",
"owner": "nix-community",
"repo": "NUR",
"rev": "985abf0197c75dd64c24691a7e5e0acf308d7f20",
"rev": "efc27c839b15d0ff15d58fb09035a93dea7f85f5",
"type": "github"
},
"original": {
@ -442,11 +444,11 @@
]
},
"locked": {
"lastModified": 1755555503,
"narHash": "sha256-WiOO7GUOsJ4/DoMy2IC5InnqRDSo2U11la48vCCIjjY=",
"lastModified": 1761730856,
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
"owner": "NuschtOS",
"repo": "search",
"rev": "6f3efef888b92e6520f10eae15b86ff537e1d2ea",
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
"type": "github"
},
"original": {
@ -459,9 +461,7 @@
"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,21 +473,19 @@
"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"
"z": "z"
}
},
"rwxrob-dot": {
"flake": false,
"locked": {
"lastModified": 1751898094,
"narHash": "sha256-kGpHL2l9p/yOtmG+AZvOb0Y5mH1d+Zoh2dd5N3Xjizc=",
"lastModified": 1758333677,
"narHash": "sha256-gSR2fOzlWA7dtWEsoVjUIdLjZU2gBAxm0JLbk7TEo+g=",
"owner": "rwxrob",
"repo": "dot",
"rev": "90794c77061f270078e847af45c376610768c6e2",
"rev": "d0d9eccb3834b1dbde2b133e811d71a05b9ac7f3",
"type": "github"
},
"original": {
@ -496,22 +494,6 @@
"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,
@ -557,22 +539,6 @@
"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": {
@ -605,20 +571,28 @@
"type": "github"
}
},
"zet": {
"flake": false,
"z": {
"inputs": {
"devshell": "devshell_2",
"flake-parts": [
"flake-parts"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1759321843,
"narHash": "sha256-rtj3J5UYpjDRmZIirGocbHMk6ol7/ijCkqjO8MO3i3E=",
"lastModified": 1762731584,
"narHash": "sha256-qSN44lGSceoqkUeksXbEAcGPeTf9yJBGQMWafh8cZuw=",
"ref": "refs/heads/main",
"rev": "665ef94ca97cf54a563e268cfcf5c447bfa6cef8",
"revCount": 62,
"rev": "184accfd1fadb9580f2af8873ce0f2a70eeb8b49",
"revCount": 165,
"type": "git",
"url": "https://code.oliverdavies.uk/opdavies/cmd-zet"
"url": "https://git.oliverdavies.uk/opdavies/z"
},
"original": {
"type": "git",
"url": "https://code.oliverdavies.uk/opdavies/cmd-zet"
"url": "https://git.oliverdavies.uk/opdavies/z"
}
}
},

View file

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

View file

@ -8,7 +8,7 @@
in
{
"wiki-push" =
"rsync -avzP ${documents}/wiki nixedo.oliverdavies.uk:${documents} --delete --delete-after";
"rsync -avzP ${documents}/notes nixedo.oliverdavies.uk:${documents} --delete --delete-after";
};
};

View file

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

View file

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

View file

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

View file

@ -15,26 +15,6 @@ 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.${service};
port = config.homelab.ports.services.${service};
in
{
virtualisation.oci-containers.containers.${service} = {

View file

@ -13,7 +13,7 @@ let
service = "tubearchivist";
homelab = config.homelab;
port = homelab.ports.${service};
port = homelab.ports.services.${service};
in
{
options.homelab.services.${service} = {
@ -23,26 +23,6 @@ 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 {
@ -53,6 +33,7 @@ in
virtualisation.oci-containers.containers."archivist-es" = {
image = "bbilly1/tubearchivist-es";
pull = "newer";
environment = {
"ES_JAVA_OPTS" = "-Xms1g -Xmx1g";
@ -155,6 +136,7 @@ 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 = "code.oliverdavies.uk";
DOMAIN = "git.oliverdavies.uk";
LANDING_PAGE = "explore";
ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}";
SSH_DOMAIN = "ssh.oliverdavies.uk";

View file

@ -0,0 +1,45 @@
{
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,26 +15,6 @@ 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,7 +2,6 @@
services.jellyfin = {
enable = true;
configDir = "/mnt/media/jellyfin";
group = "media";
openFirewall = true;
};

View file

@ -1,41 +0,0 @@
{ 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,5 +51,8 @@ in
users.users.${config.services.nginx.user}.extraGroups = [ "acme" ];
imports = [ ./www.oliverdavies.uk ];
imports = [
./oliverdavies.uk
./ponthirtaekwondo.co.uk.nix
];
}

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

@ -0,0 +1,51 @@
{ 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

@ -15,26 +15,6 @@ 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,26 +25,6 @@ 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,33 +6,37 @@ in
{
options.homelab.ports = mkOption {
internal = true;
type = types.attrsOf types.port;
type = types.attrsOf (types.attrsOf types.port);
};
config.homelab.ports = {
homepage-dashboard = 8097;
services = {
mealie = 9001;
pihole = 8082;
tubearchivist = 8099;
vaultwarden = 8022;
};
nginx-website-sculpin = 8095;
nginx-website-tome = 8098;
nginx = {
website-sculpin = 8095;
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;
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;
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;
};
};
}

View file

@ -2,5 +2,6 @@
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,8 +7,6 @@
{
imports = [
./homepage
./mastodon.nix
./mealie.nix
./samba.nix
./uptime-kuma.nix

View file

@ -1,63 +0,0 @@
{ 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

@ -1,57 +0,0 @@
{ 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

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

View file

@ -1,32 +0,0 @@
{ 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

@ -1,84 +0,0 @@
{ 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.mealie;
port = ports.services.mealie;
settings.ALLOW_SIGNUP = "false";
};

View file

@ -15,26 +15,6 @@ 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.${service};
ROCKET_PORT = homelab.ports.services.${service};
SIGNUPS_ALLOWED = false;
};
};

View file

@ -11,7 +11,6 @@
./hardware-configuration.nix
./cron.nix
./neomutt.nix
./newsboat
./secrets.nix
./xserver.nix
@ -95,4 +94,10 @@
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/code.oliverdavies.uk/opdavies/email-filters/config.lua"
"*/15 * * * * opdavies ${pkgs.imapfilter}/bin/imapfilter -c ~/Repos/git.oliverdavies.uk/opdavies/email-filters/config.lua"
"0 8,20 * * * opdavies ${pkgs.isync}/bin/mbsync -a"
];
};

View file

@ -1,30 +0,0 @@
{
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

@ -1,298 +0,0 @@
[
{ 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"; }
]

24
modules/dmenu-mpv.nix Normal file
View file

@ -0,0 +1,24 @@
{
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/${pname} $out/bin
cp $src/shortcuts-menus/sys $out/bin/${pname}
chmod +x $out/bin/${pname}
'';
})

View file

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

36
modules/dmenu-tmux.nix Normal file
View file

@ -0,0 +1,36 @@
{ 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 =
{ system, ... }:
{ pkgs, ... }:
{
environment.systemPackages = [
inputs.git-repo-updater.packages.${system}.default
inputs.git-repo-updater.packages.${pkgs.stdenv.hostPlatform.system}.default
];
};
}

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +0,0 @@
{
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 lmet)
a (tap-hold $tap-time $hold-time-slow a lsft)
s (tap-hold $tap-time $hold-time-slow s lalt)
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)
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)
l (tap-hold $tap-time $hold-time-slow l ralt)
; (tap-hold $tap-time $hold-time-slow ; rmet)
; (tap-hold $tap-time $hold-time-slow ; rsft)
)
(deflayer base

View file

@ -1,21 +0,0 @@
{
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,39 +1,6 @@
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,6 +7,7 @@
module = "php";
neon = "yaml";
pcss = "scss";
tf = "terraform";
theme = "php";
};

View file

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

View file

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

24
modules/nixvim/oil.nix Normal file
View file

@ -0,0 +1,24 @@
{
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 = "-";
}
];
};
}

18
modules/nixvim/qmk.nix Normal file
View file

@ -0,0 +1,18 @@
{
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,6 +11,7 @@
comment
css
csv
devicetree
dockerfile
gitattributes
gitignore
@ -41,7 +42,10 @@
yaml
];
settings.highlight.enable = true;
settings = {
highlight.enable = true;
indent.enable = true;
};
};
treesitter-textobjects.enable = true;

View file

@ -1,34 +0,0 @@
{ 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/wiki/2-areas/health-fitness/weight.csv"
weight
'';
};
};
flake.modules.homeManager.base =
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

@ -1,62 +0,0 @@
{
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
'';
})
];
};
}

View file

@ -1,16 +0,0 @@
{
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.tmux-sessionizer
psArgs.config.packages.start-tmux
];
text = ''
@ -20,7 +20,7 @@
domain="''${BASH_REMATCH[2]}"
if [[ "$domain" == "ssh.oliverdavies.uk" ]]; then
domain="code.oliverdavies.uk"
domain="git.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" ]] && tmux-sessionizer "$repo_path" && exit 0
[[ -d "$repo_path" ]] && start-tmux "$repo_path" && exit 0
mkdir -pv "$repo_path"
git clone "$repo_url" "$repo_path"
tmux-sessionizer "$repo_path"
start-tmux "$repo_path"
else
exit 1
fi
@ -47,7 +47,7 @@
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.system (psArgs: psArgs.config.packages.clone))
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.clone))
];
};
}

View file

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

View file

@ -1,35 +0,0 @@
{ 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}))
];
};
}

View file

@ -1,32 +0,0 @@
{ 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.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.stdenv.hostPlatform.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/code.oliverdavies.uk}"
repo_url="''${repo_url//ssh.oliverdavies.uk/git.oliverdavies.uk}"
xdg-open "$repo_url"
'';
@ -26,7 +26,7 @@ in
{ pkgs, ... }:
{
home.packages = [
(withSystem pkgs.system (psArgs: psArgs.config.packages.${name}))
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.${name}))
];
};
}

View file

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

View file

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

View file

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

View file

@ -0,0 +1,33 @@
{ 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

@ -0,0 +1,36 @@
{ 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

@ -1,30 +0,0 @@
{
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.system (psArgs: psArgs.config.packages.tmux-sessionizer))
(withSystem pkgs.stdenv.hostPlatform.system (psArgs: psArgs.config.packages.tmux-sessionizer))
];
};
}

View file

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

View file

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

View file

@ -1,34 +0,0 @@
{ 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

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

View file

@ -1,38 +0,0 @@
{ 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,363 +3,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
(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=";
})
];
})
st
];
};
}

View file

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

View file

@ -13,6 +13,8 @@
"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,9 +61,10 @@
bind k select-pane -U
bind l select-pane -R
bind-key -r f run-shell "tmux new-window tmux-sessionizer"
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 D new-window -c "#{pane_current_path}" "[[ -e TODO.md ]] && nvim TODO.md || nvim ~/Documents/wiki/todo.txt"
bind-key -r W split-window -h -c ~/Documents/wiki "nvim '+Telescope find_files'"
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'"
'';
}

24
modules/z.nix Normal file
View file

@ -0,0 +1,24 @@
{ 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,6 +131,7 @@
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";
@ -168,5 +169,8 @@
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,11 +9,14 @@
"..." = "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,8 +1,13 @@
{ 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 &
@ -44,6 +49,10 @@
command ${pkgs.ttyper}/bin/ttyper --language english1000 --words 50 "''${@}"
}
watchexec() {
${lib.getExe pkgs.watchexec} --clear "$@"
}
weather() {
curl "https://wttr.in/''$1"
}
@ -52,13 +61,19 @@
command yt-dlp --paths ~/Videos "$@"
}
bindkey -s ^f "tmux-sessionizer\n"
bindkey -s ^f "start-tmux\n"
bindkey -s ^g "open-repo-url\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://code.oliverdavies.uk/opdavies/nix-config#neovim
nix run git+https://git.oliverdavies.uk/opdavies/nix-config#neovim
nixos-rebuild --flake .#nixedo --target-host 192.168.1.116 --sudo test

View file

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

View file

@ -0,0 +1,362 @@
{ 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,7 +28,6 @@ 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,6 +25,11 @@ in
]
++ [ users.opdavies ];
"secrets/freshrss-password-file.age".publicKeys = [
hosts.nixedo
]
++ [ users.opdavies ];
"secrets/peertube-env.age".publicKeys = [
hosts.nixedo
]

View file

@ -0,0 +1,17 @@
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