49 Commits

Author SHA1 Message Date
a6b2311289 treewide: format markdown
Some checks are pending
Check flake / build-amd64-linux (push) Waiting to run
2025-08-15 21:38:30 +01:00
77ca125bde flake.nix: add treefmt-nix
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m21s
2025-08-15 21:37:06 +01:00
a40e84ddb4 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m35s
Flake lock file updates:

• Updated input 'deploy-rs/nixpkgs':
    'github:NixOS/nixpkgs/bd3bac8bfb542dbde7ffffb6987a1a1f9d41699f?narHash=sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg%3D' (2025-03-26)
  → follows 'nixpkgs'
2025-08-15 21:17:58 +01:00
9653e4d9d0 flake.nix: add devshell with deploy-rs
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m22s
2025-08-15 21:05:59 +01:00
24828da373 flake.nix: add agenix-rekey and nix-topology
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m19s
2025-08-15 20:18:32 +01:00
c1016e641c flake.lock: Update
Flake lock file updates:

• Added input 'nix-topology':
    'github:oddlama/nix-topology/6a536c4b686ee4bcf07a7b0f8b823584560e2633?narHash=sha256-P0TySh6sQl1EhfxjW9ZqGxEyUBSsEpdnchOe1QB0pLA%3D' (2025-07-09)
• Added input 'nix-topology/devshell':
    'github:numtide/devshell/dd6b80932022cea34a019e2bb32f6fa9e494dfef?narHash=sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg%3D' (2024-10-07)
• Added input 'nix-topology/devshell/nixpkgs':
    follows 'nix-topology/nixpkgs'
• Added input 'nix-topology/flake-utils':
    'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a?narHash=sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ%3D' (2024-09-17)
• Added input 'nix-topology/flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e?narHash=sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768%3D' (2023-04-09)
• Added input 'nix-topology/nixpkgs':
    follows 'nixpkgs'
• Added input 'nix-topology/pre-commit-hooks':
    follows 'pre-commit-hooks'
2025-08-15 20:17:57 +01:00
db345e0a00 flake.nix: update inputs
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m24s
2025-08-15 20:07:14 +01:00
47d0f78c0a flake.lock: Update
Flake lock file updates:

• Updated input 'agenix-rekey/pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/a5a961387e75ae44cc20f0a57ae463da5e959656?narHash=sha256-3FZAG%2BpGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110%3D' (2025-01-03)
  → follows 'pre-commit-hooks'
• Removed input 'agenix-rekey/pre-commit-hooks/flake-compat'
• Removed input 'agenix-rekey/pre-commit-hooks/gitignore'
• Removed input 'agenix-rekey/pre-commit-hooks/gitignore/nixpkgs'
• Removed input 'agenix-rekey/pre-commit-hooks/nixpkgs'
• Removed input 'git-hooks-nix'
• Removed input 'git-hooks-nix/flake-compat'
• Removed input 'git-hooks-nix/gitignore'
• Removed input 'git-hooks-nix/gitignore/nixpkgs'
• Removed input 'git-hooks-nix/nixpkgs'
2025-08-15 20:06:27 +01:00
e7145bad37 flake.nix: use flake-parts
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m28s
2025-08-15 19:42:45 +01:00
75f1317346 hyprland: disable VRR
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m26s
2025-08-15 10:41:54 +01:00
ecc5218bf1 hosts/artemis: add vk-hdr-layer
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m31s
2025-08-15 10:41:17 +01:00
2c3f56c582 vk-hdr-layer: init
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m22s
2025-08-15 10:02:35 +01:00
f89304ef1f hyprland: enable wide color gamut and HDR
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m23s
2025-08-15 09:49:22 +01:00
5cc62b0312 hyprland: enable xx_color_management_v4 2025-08-15 09:48:53 +01:00
d76bcdcfd2 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m27s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/aa6a78f0a4e17c49ed4aff8b58c3f7ec7ef0408f?narHash=sha256-4HK2kvyeAO/6kNKGanvP8mg4nEeDwke%2Bd3eozz3QmOQ%3D' (2025-08-13)
  → 'github:hyprwm/Hyprland/60d769a89908c29e19100059985db15a7b6bab6a?narHash=sha256-VI%2BZPD/uIFjzYW8IcyvBgvwyDIvUe4/xh/kOHTbITX8%3D' (2025-08-14)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/984669ebb57f0d17f271598e82e1d2ab55296f20?narHash=sha256-GHN5Yq/zyexUkffW0tUPrGgHljlYfJZgzrxd/3S9ASI%3D' (2025-08-11)
  → 'github:hyprwm/hyprland-plugins/c1ddebb423acc7c88653c04de5ddafee64dac89a?narHash=sha256-wrP8TM2lb2x0%2BPyTc7Uc3yfVBeIlYW7%2BhFeG14N9Cr8%3D' (2025-08-14)
2025-08-14 18:55:37 +01:00
b837500514 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m26s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/2b6e2ceb2e66407e80b98015eb9f559f06405b2f?narHash=sha256-nSrui2v%2BEMqm1O6VcDujHS0gUX6YHFt2VlWz94LBJRs%3D' (2025-08-12)
  → 'github:hyprwm/Hyprland/aa6a78f0a4e17c49ed4aff8b58c3f7ec7ef0408f?narHash=sha256-4HK2kvyeAO/6kNKGanvP8mg4nEeDwke%2Bd3eozz3QmOQ%3D' (2025-08-13)
• Updated input 'nixos-mailserver':
    'gitlab:simple-nixos-mailserver/nixos-mailserver/53007af63fade28853408370c4c600a63dd97f41?narHash=sha256-BW3ktviEhfCN/z3%2BkEyzpDKAI8qFTwO7%2BS0NVA0C90o%3D' (2025-05-23)
  → 'gitlab:simple-nixos-mailserver/nixos-mailserver/f5936247dbdb8501221978562ab0b302dd75456c?narHash=sha256-PigqTAGkdBYXVFWsJnqcirrLeFqRFN4PFigLA8FzxeI%3D' (2025-08-13)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054?narHash=sha256-iAcj9T/Y%2B3DBy2J0N%2ByF9XQQQ8IEb5swLFzs23CdP88%3D' (2025-08-09)
  → 'github:NixOS/nixpkgs/005433b926e16227259a1843015b5b2b7f7d1fc3?narHash=sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV%2B3/aO28gXpGtMXI%3D' (2025-08-12)
2025-08-13 22:51:21 +01:00
d6734b0659 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m26s
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/545aba02960caa78a31bd9a8709a0ad4b6320a5c?narHash=sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb%2BmYCodI5uuB8%3D' (2025-07-21)
  → 'github:nix-community/disko/8246829f2e675a46919718f9a64b71afe3bfb22d?narHash=sha256-p04ZnIBGzerSyiY2dNGmookCldhldWAu03y0s3P8CB0%3D' (2025-08-12)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/584b844aaf72cd7ea6851117f1bd598b7467ffc1?narHash=sha256-QNT0yXHyjvZ%2B%2BvrJICAWFBMrcrTVbgRIZLplmOv1W7s%3D' (2025-08-10)
  → 'github:hyprwm/Hyprland/2b6e2ceb2e66407e80b98015eb9f559f06405b2f?narHash=sha256-nSrui2v%2BEMqm1O6VcDujHS0gUX6YHFt2VlWz94LBJRs%3D' (2025-08-12)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/833af8e8c6f035a53a167aff59e5e85bf0386d93?narHash=sha256-pANfQZ22RNF6sCFxrMahjE70v/HbGfA4lPZ7pTmfwUQ%3D' (2025-08-09)
  → 'github:hyprwm/hyprland-plugins/984669ebb57f0d17f271598e82e1d2ab55296f20?narHash=sha256-GHN5Yq/zyexUkffW0tUPrGgHljlYfJZgzrxd/3S9ASI%3D' (2025-08-11)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c5f08b62ed75415439d48152c2a784e36909b1bc?narHash=sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g%3D' (2025-08-09)
  → 'github:NixOS/nixpkgs/ddae11e58c0c345bf66efbddbf2192ed0e58f896?narHash=sha256-3sWA5WJybUE16kIMZ3%2BuxcxKZY/JRR4DFBqLdSLBo7w%3D' (2025-08-11)
2025-08-13 07:49:48 +01:00
9d0a5745e8 hyprland: add LG TV config
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m23s
2025-08-11 21:52:52 +01:00
aa24941273 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m32s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/afbd8796859775a50687daacb254cdd1ba22328f?narHash=sha256-UyM03UZbu5MMil/iz1dSQv1BlfmzlfGdAZcE9ZV5DwY%3D' (2025-08-07)
  → 'github:hyprwm/Hyprland/584b844aaf72cd7ea6851117f1bd598b7467ffc1?narHash=sha256-QNT0yXHyjvZ%2B%2BvrJICAWFBMrcrTVbgRIZLplmOv1W7s%3D' (2025-08-10)
• Updated input 'hyprland/hyprgraphics':
    'github:hyprwm/hyprgraphics/340494a38b5ec453dfc542c6226481f736cc8a9a?narHash=sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7%2BrbkFpSZLm/62A%3D' (2025-07-10)
  → 'github:hyprwm/hyprgraphics/4c1d63a0f22135db123fc789f174b89544c6ec2d?narHash=sha256-u%2BM2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4%3D' (2025-08-04)
• Updated input 'hyprland/hyprutils':
    'github:hyprwm/hyprutils/c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7?narHash=sha256-W0xgXsaqGa/5/7IBzKNhf0%2B23MqGPymYYfqT7ECqeTE%3D' (2025-07-29)
  → 'github:hyprwm/hyprutils/df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd?narHash=sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI%3D' (2025-08-06)
• Updated input 'hyprland/nixpkgs':
    'github:NixOS/nixpkgs/94def634a20494ee057c76998843c015909d6311?narHash=sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1%2BA4GQej/lBk5y7I%3D' (2025-07-31)
  → 'github:NixOS/nixpkgs/85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054?narHash=sha256-iAcj9T/Y%2B3DBy2J0N%2ByF9XQQQ8IEb5swLFzs23CdP88%3D' (2025-08-09)
• Updated input 'hyprland/pre-commit-hooks':
    'github:cachix/git-hooks.nix/16ec914f6fb6f599ce988427d9d94efddf25fe6d?narHash=sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg%3D' (2025-06-24)
  → 'github:cachix/git-hooks.nix/9c52372878df6911f9afc1e2a1391f55e4dfc864?narHash=sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef%2B6fRcofA%3D' (2025-08-05)
• Updated input 'hyprland/pre-commit-hooks/flake-compat':
    'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33?narHash=sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U%3D' (2023-10-04)
  → 'github:edolstra/flake-compat/9100a0f413b0c601e0533d1d94ffd501ce2e7885?narHash=sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX%2BfjA8Xf8PUmqCY%3D' (2025-05-12)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/c8dc6f3d5437d26fae625c40388ba52e97bc5fdf?narHash=sha256-zPfU6I7AqlDpoC0ZLTnayqCOyEn9Emub/ca4ATP/XxY%3D' (2025-08-06)
  → 'github:hyprwm/hyprland-plugins/833af8e8c6f035a53a167aff59e5e85bf0386d93?narHash=sha256-pANfQZ22RNF6sCFxrMahjE70v/HbGfA4lPZ7pTmfwUQ%3D' (2025-08-09)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ce01daebf8489ba97bd1609d185ea276efdeb121?narHash=sha256-1ziydHSiDuSnaiPzCQh1mRFBsM2d2yRX9I%2B5OPGEmIE%3D' (2025-08-04)
  → 'github:NixOS/nixpkgs/c5f08b62ed75415439d48152c2a784e36909b1bc?narHash=sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g%3D' (2025-08-09)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/c2ae88e026f9525daf89587f3cbee584b92b6134?narHash=sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs%3D' (2025-08-06)
  → 'github:NixOS/nixpkgs/85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054?narHash=sha256-iAcj9T/Y%2B3DBy2J0N%2ByF9XQQQ8IEb5swLFzs23CdP88%3D' (2025-08-09)
2025-08-11 09:38:31 +01:00
4c898d3035 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m26s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/6a1baa89b1652a8096b261712307e4474d36b4fc?narHash=sha256-6gDqVnHuC6F9AYIorpDW0H0iDuGJR2HIZCaSqZ5tpgQ%3D' (2025-08-07)
  → 'github:hyprwm/Hyprland/afbd8796859775a50687daacb254cdd1ba22328f?narHash=sha256-UyM03UZbu5MMil/iz1dSQv1BlfmzlfGdAZcE9ZV5DwY%3D' (2025-08-07)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/5b09dc45f24cf32316283e62aec81ffee3c3e376?narHash=sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY%3D' (2025-08-03)
  → 'github:NixOS/nixpkgs/c2ae88e026f9525daf89587f3cbee584b92b6134?narHash=sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs%3D' (2025-08-06)
2025-08-08 07:18:55 +01:00
6cf7a4ca36 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m25s
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/6d194f7522b9ed8aadb0856f1316f6d660ceb42a?narHash=sha256-qpmyMBMyksBbyXkc9kSIkY2zIuPRixQZDorec216FfM%3D' (2025-08-04)
  → 'github:ryantm/agenix/9edb1787864c4f59ae5074ad498b6272b3ec308d?narHash=sha256-NA/FT2hVhKDftbHSwVnoRTFhes62%2B7dxZbxj5Gxvghs%3D' (2025-08-05)
• Updated input 'agenix/nixpkgs':
    'github:NixOS/nixpkgs/8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7?narHash=sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo%3D' (2025-04-23)
  → 'github:NixOS/nixpkgs/59e69648d345d6e8fef86158c555730fa12af9de?narHash=sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk%3D' (2025-08-01)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/1b86d35f7ebc2c613f5ef6cba89dcd8d1ceedaa4?narHash=sha256-H33P5laxHJDoz8zSSgYTJdrZTWgGucghqcc6PtaVldE%3D' (2025-08-03)
  → 'github:hyprwm/Hyprland/6a1baa89b1652a8096b261712307e4474d36b4fc?narHash=sha256-6gDqVnHuC6F9AYIorpDW0H0iDuGJR2HIZCaSqZ5tpgQ%3D' (2025-08-07)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/ba1823c7870dc2a35e38ec09848a0294dfecc2a8?narHash=sha256-Yd8%2BiDw9FBg5agiCVs0aPwaBLSvgZFjjMJcJTAFLZcA%3D' (2025-08-01)
  → 'github:hyprwm/hyprland-plugins/c8dc6f3d5437d26fae625c40388ba52e97bc5fdf?narHash=sha256-zPfU6I7AqlDpoC0ZLTnayqCOyEn9Emub/ca4ATP/XxY%3D' (2025-08-06)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/9368056b73efb46eb14fd4667b99e0f81b805f28?narHash=sha256-Ry1gd1BQrNVJJfT11cpVP0FY8XFMx4DJV2IDp01CH9w%3D' (2025-08-04)
  → 'github:NixOS/nixos-hardware/26ed7a0d4b8741fe1ef1ee6fa64453ca056ce113?narHash=sha256-dz303vGuzWjzOPOaYkS9xSW%2BB93PSAJxvBd6CambXVA%3D' (2025-08-07)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/59e69648d345d6e8fef86158c555730fa12af9de?narHash=sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk%3D' (2025-08-01)
  → 'github:NixOS/nixpkgs/ce01daebf8489ba97bd1609d185ea276efdeb121?narHash=sha256-1ziydHSiDuSnaiPzCQh1mRFBsM2d2yRX9I%2B5OPGEmIE%3D' (2025-08-04)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/16ec914f6fb6f599ce988427d9d94efddf25fe6d?narHash=sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg%3D' (2025-06-24)
  → 'github:cachix/git-hooks.nix/9c52372878df6911f9afc1e2a1391f55e4dfc864?narHash=sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef%2B6fRcofA%3D' (2025-08-05)
• Updated input 'pre-commit-hooks/flake-compat':
    'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33?narHash=sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U%3D' (2023-10-04)
  → 'github:edolstra/flake-compat/9100a0f413b0c601e0533d1d94ffd501ce2e7885?narHash=sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX%2BfjA8Xf8PUmqCY%3D' (2025-05-12)
• Updated input 'thunderbird-gnome-theme':
    'github:rafaelmardojai/thunderbird-gnome-theme/163ab2a77ffbbc2545889d05c8ce00f56c9f727e?narHash=sha256-XBZfXgarX1QOgN2dZYtLmYdO7Q73IyALJanjd4nWn08%3D' (2025-07-20)
  → 'github:rafaelmardojai/thunderbird-gnome-theme/a9ee1a2c8a1dfce700250a4ce3ce7f88dff43300?narHash=sha256-zADBsXqIkxy519sK/2mnZ/lcTQSA/3iXwdkXCVNqUVY%3D' (2025-08-06)
2025-08-07 12:40:34 +01:00
cede48faa2 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m1s
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/531beac616433bac6f9e2a19feb8e99a22a66baf?narHash=sha256-9P1FziAwl5%2B3edkfFcr5HeGtQUtrSdk/MksX39GieoA%3D' (2025-06-17)
  → 'github:ryantm/agenix/6d194f7522b9ed8aadb0856f1316f6d660ceb42a?narHash=sha256-qpmyMBMyksBbyXkc9kSIkY2zIuPRixQZDorec216FfM%3D' (2025-08-04)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/722a3117a01600c6dcc78271aff4aeff62b7af09?narHash=sha256-KJjs4BdQ03X4jcc/aAcjO0PwHaYUYBAb6UIIL5fFslY%3D' (2025-07-27)
  → 'github:rafaelmardojai/firefox-gnome-theme/6f173d0873dd33c5653dee89a831af3e49db3e36?narHash=sha256-9veVYpPCwKNjIK5gOigl5nEUN6tmrSHXUv4bVZkRuOE%3D' (2025-08-04)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/824438949e60ad6d6fefdfa37f0af8fbe0849934?narHash=sha256-SOP9IpcrS3MsfYXUXcGpAao77sRZFovk%2B3kVjg3zmD8%3D' (2025-08-02)
  → 'github:hyprwm/Hyprland/1b86d35f7ebc2c613f5ef6cba89dcd8d1ceedaa4?narHash=sha256-H33P5laxHJDoz8zSSgYTJdrZTWgGucghqcc6PtaVldE%3D' (2025-08-03)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/cc66fddc6cb04ab479a1bb062f4d4da27c936a22?narHash=sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM%3D' (2025-07-21)
  → 'github:NixOS/nixos-hardware/9368056b73efb46eb14fd4667b99e0f81b805f28?narHash=sha256-Ry1gd1BQrNVJJfT11cpVP0FY8XFMx4DJV2IDp01CH9w%3D' (2025-08-04)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/94def634a20494ee057c76998843c015909d6311?narHash=sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1%2BA4GQej/lBk5y7I%3D' (2025-07-31)
  → 'github:NixOS/nixpkgs/5b09dc45f24cf32316283e62aec81ffee3c3e376?narHash=sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY%3D' (2025-08-03)
• Updated input 'nixvim':
    'github:nix-community/nixvim/f25f269dddf2e464f0d4a79bb42b6bfbab63b0df?narHash=sha256-U8eKkKR%2Bc70Sj%2BXuhbCzRAWJBfRLEF7Qh7gKk/7f93M%3D' (2025-07-26)
  → 'github:nix-community/nixvim/ab1b5962e1ca90b42de47e1172e0d24ca80e6256?narHash=sha256-Yz5dJ0VzGRzSRHdHldsWQbuFYmtP3NWNreCvPfCi9CI%3D' (2025-08-03)
• Updated input 'nixvim/flake-parts':
    'github:hercules-ci/flake-parts/644e0fc48951a860279da645ba77fe4a6e814c5e?narHash=sha256-TVcTNvOeWWk1DXljFxVRp%2BE0tzG1LhrVjOGGoMHuXio%3D' (2025-07-21)
  → 'github:hercules-ci/flake-parts/67df8c627c2c39c41dbec76a1f201929929ab0bd?narHash=sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM%3D' (2025-08-01)
• Updated input 'nixvim/nuschtosSearch':
    'github:NuschtOS/search/40987cc1a24feba378438d691f87c52819f7bd75?narHash=sha256-Pmpke0JtLRzgdlwDC5a%2BaiLVZ11JPUO5Bcqkj0nHE/k%3D' (2025-07-25)
  → 'github:NuschtOS/search/2a65adaf2c0c428efb0f4a2bc406aab466e96a06?narHash=sha256-Pmpke0JtLRzgdlwDC5a%2BaiLVZ11JPUO5Bcqkj0nHE/k%3D' (2025-07-29)
2025-08-04 19:23:06 +01:00
2402a33b36 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m23s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/314a0ea441e33122836965c50d4c5bcf9acd0cdd?narHash=sha256-5emAMxu7WCX4CBMvd%2B0/6zBO78uyJOezD3AK4NNGcTA%3D' (2025-08-01)
  → 'github:hyprwm/Hyprland/824438949e60ad6d6fefdfa37f0af8fbe0849934?narHash=sha256-SOP9IpcrS3MsfYXUXcGpAao77sRZFovk%2B3kVjg3zmD8%3D' (2025-08-02)
• Updated input 'hyprland/aquamarine':
    'github:hyprwm/aquamarine/e31b575d19e7cf8a8f4398e2f9cffe27a1332506?narHash=sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM%3D' (2025-07-17)
  → 'github:hyprwm/aquamarine/be166e11d86ba4186db93e10c54a141058bdce49?narHash=sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk%3D' (2025-07-22)
• Updated input 'hyprland/hyprcursor':
    'github:hyprwm/hyprcursor/45fcc10b4c282746d93ec406a740c43b48b4ef80?narHash=sha256-XR9fsI0zwLiFWfqi/pdS/VD%2BYNorKb3XIykgTg4l1nA%3D' (2025-06-05)
  → 'github:hyprwm/hyprcursor/44e91d467bdad8dcf8bbd2ac7cf49972540980a5?narHash=sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM%3D' (2025-07-31)
• Updated input 'hyprland/hyprland-qtutils':
    'github:hyprwm/hyprland-qtutils/b13c7481e37856f322177010bdf75fccacd1adc8?narHash=sha256-D868K1dVEACw17elVxRgXC6hOxY%2B54wIEjURztDWLk8%3D' (2025-06-19)
  → 'github:hyprwm/hyprland-qtutils/b308a818b9dcaa7ab8ccab891c1b84ebde2152bc?narHash=sha256-tHe6XeNeVeKapkNM3tcjW4RuD%2BtB2iwwoogWJOtsqTI%3D' (2025-07-29)
• Updated input 'hyprland/hyprlang':
    'github:hyprwm/hyprlang/cee01452bca58d6cadb3224e21e370de8bc20f0b?narHash=sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE%3D' (2025-06-19)
  → 'github:hyprwm/hyprlang/23f0debd2003f17bd65f851cd3f930cff8a8c809?narHash=sha256-0K%2BA%2BgmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA%3D' (2025-07-27)
• Updated input 'hyprland/nixpkgs':
    'github:NixOS/nixpkgs/6e987485eb2c77e5dcc5af4e3c70843711ef9251?narHash=sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo%3D' (2025-07-16)
  → 'github:NixOS/nixpkgs/94def634a20494ee057c76998843c015909d6311?narHash=sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1%2BA4GQej/lBk5y7I%3D' (2025-07-31)
• Updated input 'hyprland/xdph':
    'github:hyprwm/xdg-desktop-portal-hyprland/6115f3fdcb2c1a57b4a80a69f3c797e47607b90a?narHash=sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE%3D' (2025-06-30)
  → 'github:hyprwm/xdg-desktop-portal-hyprland/371b96bd11ad2006ed4f21229dbd1be69bed3e8a?narHash=sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0%3D' (2025-07-27)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1f08a4df998e21f4e8be8fb6fbf61d11a1a5076a?narHash=sha256-%2BjkEZxs7bfOKfBIk430K%2BtK9IvXlwzqQQnppC2ZKFj4%3D' (2025-07-29)
  → 'github:NixOS/nixpkgs/59e69648d345d6e8fef86158c555730fa12af9de?narHash=sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk%3D' (2025-08-01)
2025-08-02 22:06:04 +01:00
996cded9d3 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m24s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/3e35797b18d35baae82657bb0438af88156e273f?narHash=sha256-2mAFpccjpzs5p1kqZnyHeyM41hk7mRKaxW/cvfCbV3k%3D' (2025-07-30)
  → 'github:hyprwm/Hyprland/314a0ea441e33122836965c50d4c5bcf9acd0cdd?narHash=sha256-5emAMxu7WCX4CBMvd%2B0/6zBO78uyJOezD3AK4NNGcTA%3D' (2025-08-01)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/bf310cda4a09b79725c2919688881959ebf3229e?narHash=sha256-yPeP6mY5Mdozji7xZBWYy6K166RcCuJgnOXxQt7vl3s%3D' (2025-07-30)
  → 'github:hyprwm/hyprland-plugins/ba1823c7870dc2a35e38ec09848a0294dfecc2a8?narHash=sha256-Yd8%2BiDw9FBg5agiCVs0aPwaBLSvgZFjjMJcJTAFLZcA%3D' (2025-08-01)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727?narHash=sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM%3D' (2025-07-28)
  → 'github:NixOS/nixpkgs/94def634a20494ee057c76998843c015909d6311?narHash=sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1%2BA4GQej/lBk5y7I%3D' (2025-07-31)
2025-08-01 21:07:42 +01:00
3d134504af hosts/library: open-webui offline mode
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m23s
2025-08-01 11:11:49 +01:00
c36dfec8ac hosts/vps2: init
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m26s
2025-07-31 21:59:59 +01:00
595f0cc35d hosts/vps1: delete outline 2025-07-31 19:54:59 +01:00
8d4689e8c7 hosts/vps1: disable outline 2025-07-31 19:17:35 +01:00
870cb8326e flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m43s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/43966cc787c4a8844ac1e7affaadeedde8f4cc60?narHash=sha256-W5bwvvpcje6K5EOstNflIWqkAii4P2qrB5%2B0luE2lME%3D' (2025-07-29)
  → 'github:hyprwm/Hyprland/3e35797b18d35baae82657bb0438af88156e273f?narHash=sha256-2mAFpccjpzs5p1kqZnyHeyM41hk7mRKaxW/cvfCbV3k%3D' (2025-07-30)
• Updated input 'hyprland/hyprutils':
    'github:hyprwm/hyprutils/bcabcbada90ed2aacb435dc09b91001819a6dc82?narHash=sha256-06i1pIh6wb%2BsDeDmWlzuPwIdaFMxLlj1J9I5B9XqSeo%3D' (2025-07-11)
  → 'github:hyprwm/hyprutils/c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7?narHash=sha256-W0xgXsaqGa/5/7IBzKNhf0%2B23MqGPymYYfqT7ECqeTE%3D' (2025-07-29)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/14f9a444793d6dd78c29033acf9c3c974ded708d?narHash=sha256-GbfsRZWW5uBAOeddLkmrYV2XmAbI0etVUTBXFH5thcw%3D' (2025-07-20)
  → 'github:hyprwm/hyprland-plugins/bf310cda4a09b79725c2919688881959ebf3229e?narHash=sha256-yPeP6mY5Mdozji7xZBWYy6K166RcCuJgnOXxQt7vl3s%3D' (2025-07-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/13e8d35b7d6028b7198f8186bc0347c6abaa2701?narHash=sha256-uDCFHeXdRIgJpYmtcUxGEsZ%2BhYlLPBhR83fdU%2BvbC1s%3D' (2025-07-26)
  → 'github:NixOS/nixpkgs/1f08a4df998e21f4e8be8fb6fbf61d11a1a5076a?narHash=sha256-%2BjkEZxs7bfOKfBIk430K%2BtK9IvXlwzqQQnppC2ZKFj4%3D' (2025-07-29)
2025-07-31 11:56:09 +01:00
3340bd4150 hosts/artemis: bump to kernel 6.15
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m27s
2025-07-29 21:08:06 +01:00
b52678cfa9 hosts/artemis: update wifi interface name 2025-07-29 21:07:47 +01:00
69e210185b flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 18s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/c63d0003a1e5155248695f19778f815a8ad34c67?narHash=sha256-30VgiypL8l%2BLcficVPftVBfFnWG533NU99cfps/hnD0%3D' (2025-07-27)
  → 'github:hyprwm/Hyprland/43966cc787c4a8844ac1e7affaadeedde8f4cc60?narHash=sha256-W5bwvvpcje6K5EOstNflIWqkAii4P2qrB5%2B0luE2lME%3D' (2025-07-29)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3ff0e34b1383648053bba8ed03f201d3466f90c9?narHash=sha256-CdX2Rtvp5I8HGu9swBmYuq%2BILwRxpXdJwlpg8jvN4tU%3D' (2025-07-24)
  → 'github:NixOS/nixpkgs/13e8d35b7d6028b7198f8186bc0347c6abaa2701?narHash=sha256-uDCFHeXdRIgJpYmtcUxGEsZ%2BhYlLPBhR83fdU%2BvbC1s%3D' (2025-07-26)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/7fd36ee82c0275fb545775cc5e4d30542899511d?narHash=sha256-9h7%2B4/53cSfQ/uA3pSvCaBepmZaz/dLlLVJnbQ%2BSJjk%3D' (2025-07-25)
  → 'github:NixOS/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727?narHash=sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM%3D' (2025-07-28)
2025-07-29 21:01:04 +01:00
2dd9102e02 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m37s
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/2615749a60ad731a2a2bbbe45d8b468bf1d8cdf8?narHash=sha256-0q4HUdFy/dzOm0pD/TzcpkFAfA/JTaRq9oXy05yg0EE%3D' (2025-07-22)
  → 'github:rafaelmardojai/firefox-gnome-theme/722a3117a01600c6dcc78271aff4aeff62b7af09?narHash=sha256-KJjs4BdQ03X4jcc/aAcjO0PwHaYUYBAb6UIIL5fFslY%3D' (2025-07-27)
• Updated input 'home-manager':
    'github:nix-community/home-manager/0b9bf983db4d064764084cd6748efb1ab8297d1e?narHash=sha256-E/rPVh7vyPMJUFl2NAew%2BzibNGfVbANr8BP8nLRbLkQ%3D' (2025-07-25)
  → 'github:nix-community/home-manager/fc3add429f21450359369af74c2375cb34a2d204?narHash=sha256-oV695RvbAE4%2BR9pcsT9shmp6zE/%2BIZe6evHWX63f2Qg%3D' (2025-07-27)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/e1fff05d0db9c266679ec7ea1b5734c73d6b0a57?narHash=sha256-VlRatMh0YqAYP2zUUe62mafb6jEuuzXX3mQ98b1Ifbo%3D' (2025-07-26)
  → 'github:hyprwm/Hyprland/c63d0003a1e5155248695f19778f815a8ad34c67?narHash=sha256-30VgiypL8l%2BLcficVPftVBfFnWG533NU99cfps/hnD0%3D' (2025-07-27)
2025-07-28 08:45:39 +01:00
845ec96991 hosts/artemis: update earlyoom
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m22s
2025-07-26 17:37:32 +01:00
7330621bfe hosts/artemis: add ntsync driver
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m25s
2025-07-26 17:03:30 +01:00
44ab95d846 hosts/artemis: add wine binfmt 2025-07-26 17:02:59 +01:00
ccba6d46f2 hosts/artemis: bump kernel to 6.14
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m23s
2025-07-26 16:46:48 +01:00
29a269dcfb hosts/artemis: add hardware config from Jovian-NixOS
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m24s
2025-07-26 16:31:24 +01:00
ec7985bdee flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m25s
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/7b5a978e00273b8676c530c03d315f5b75fae564?narHash=sha256-WcMW9yUDfER8kz4NdCaaI/ep0Ef91L%2BNf7MetNzHZc4%3D' (2025-07-23)
  → 'github:nix-community/home-manager/0b9bf983db4d064764084cd6748efb1ab8297d1e?narHash=sha256-E/rPVh7vyPMJUFl2NAew%2BzibNGfVbANr8BP8nLRbLkQ%3D' (2025-07-25)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/5c8d675eedcd836cbb0d4eeadf203efc7f73752b?narHash=sha256-Y5KkIrfP6qM%2BXtKl3ZQSVF3oxxtMFTT/tdzq%2BanMJJY%3D' (2025-07-25)
  → 'github:hyprwm/Hyprland/e1fff05d0db9c266679ec7ea1b5734c73d6b0a57?narHash=sha256-VlRatMh0YqAYP2zUUe62mafb6jEuuzXX3mQ98b1Ifbo%3D' (2025-07-26)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/fc02ee70efb805d3b2865908a13ddd4474557ecf?narHash=sha256-i%2BCQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s%3D' (2025-07-23)
  → 'github:NixOS/nixpkgs/7fd36ee82c0275fb545775cc5e4d30542899511d?narHash=sha256-9h7%2B4/53cSfQ/uA3pSvCaBepmZaz/dLlLVJnbQ%2BSJjk%3D' (2025-07-25)
• Updated input 'nixvim':
    'github:nix-community/nixvim/9c198924557b68a7874edd7b8c9b6e24693268a7?narHash=sha256-nqKDJqATaOyKS6oMRMKD5gsQDaYBJ30ZT0XSVCj8dOg%3D' (2025-07-25)
  → 'github:nix-community/nixvim/f25f269dddf2e464f0d4a79bb42b6bfbab63b0df?narHash=sha256-U8eKkKR%2Bc70Sj%2BXuhbCzRAWJBfRLEF7Qh7gKk/7f93M%3D' (2025-07-26)
• Updated input 'nixvim/nuschtosSearch':
    'github:NuschtOS/search/8dfe5879dd009ff4742b668d9c699bc4b9761742?narHash=sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo%3D' (2025-06-12)
  → 'github:NuschtOS/search/40987cc1a24feba378438d691f87c52819f7bd75?narHash=sha256-Pmpke0JtLRzgdlwDC5a%2BaiLVZ11JPUO5Bcqkj0nHE/k%3D' (2025-07-25)
2025-07-26 15:44:22 +01:00
0815780b1f treewide: nix fmt
Some checks failed
Check flake / build-amd64-linux (push) Has been cancelled
2025-07-26 15:42:30 +01:00
f54a947855 flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m35s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/31cc7f3b87d1d9670b66e73e3720da2e2da49acd?narHash=sha256-56A/JkduXotowfl8G4jhXMGrlLgRbQLwIBOE5kM0iNU%3D' (2025-07-23)
  → 'github:hyprwm/Hyprland/5c8d675eedcd836cbb0d4eeadf203efc7f73752b?narHash=sha256-Y5KkIrfP6qM%2BXtKl3ZQSVF3oxxtMFTT/tdzq%2BanMJJY%3D' (2025-07-25)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/92c2e04a475523e723c67ef872d8037379073681?narHash=sha256-yLuz5cz5Z%2Bsn8DRAfNkrd2Z1cV6DaYO9JMrEz4KZo/c%3D' (2025-07-21)
  → 'github:NixOS/nixpkgs/3ff0e34b1383648053bba8ed03f201d3466f90c9?narHash=sha256-CdX2Rtvp5I8HGu9swBmYuq%2BILwRxpXdJwlpg8jvN4tU%3D' (2025-07-24)
• Updated input 'nixvim':
    'github:nix-community/nixvim/a11133507a930dfd235324cdf776bdb5e6ddd717?narHash=sha256-fboKrq2WeEC2Y4LaZNiiH2dptUYHtSbYhzE0FTN/u%2BM%3D' (2025-07-08)
  → 'github:nix-community/nixvim/9c198924557b68a7874edd7b8c9b6e24693268a7?narHash=sha256-nqKDJqATaOyKS6oMRMKD5gsQDaYBJ30ZT0XSVCj8dOg%3D' (2025-07-25)
• Updated input 'nixvim/flake-parts':
    'github:hercules-ci/flake-parts/9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569?narHash=sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98%3D' (2025-06-08)
  → 'github:hercules-ci/flake-parts/644e0fc48951a860279da645ba77fe4a6e814c5e?narHash=sha256-TVcTNvOeWWk1DXljFxVRp%2BE0tzG1LhrVjOGGoMHuXio%3D' (2025-07-21)
2025-07-25 21:05:32 +01:00
6969bc4f2f flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m38s
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/3db2f0476516b2758fe8f1559f70c937b9d9b16b?narHash=sha256-cw%2BvVkef8EOjzJyr94wEKk34JDJu4lkGp2tkVUWaUxk%3D' (2025-07-21)
  → 'github:nix-community/disko/545aba02960caa78a31bd9a8709a0ad4b6320a5c?narHash=sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb%2BmYCodI5uuB8%3D' (2025-07-21)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/15ac3dfeaf828a9336e7e199123f8020cf04f440?narHash=sha256-ze2bcq5RSasEwvT6PR8EMedF4o8RoBtVB5ny6Jd9tA4%3D' (2025-07-16)
  → 'github:rafaelmardojai/firefox-gnome-theme/2615749a60ad731a2a2bbbe45d8b468bf1d8cdf8?narHash=sha256-0q4HUdFy/dzOm0pD/TzcpkFAfA/JTaRq9oXy05yg0EE%3D' (2025-07-22)
• Updated input 'home-manager':
    'github:nix-community/home-manager/adf195f021a8cbb0c317f75b52e96c82616526f9?narHash=sha256-KerePGJYX47ex6OY3CWsid4AltO2gDtQROunYJ0eCEE%3D' (2025-07-20)
  → 'github:nix-community/home-manager/7b5a978e00273b8676c530c03d315f5b75fae564?narHash=sha256-WcMW9yUDfER8kz4NdCaaI/ep0Ef91L%2BNf7MetNzHZc4%3D' (2025-07-23)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/50758505d5c784052437a371a707fc2dc60bb34a?narHash=sha256-HVlkh9LSFWXSagGGpb8wWaV4VdHEvtb8jUcgpB732mA%3D' (2025-07-21)
  → 'github:hyprwm/Hyprland/31cc7f3b87d1d9670b66e73e3720da2e2da49acd?narHash=sha256-56A/JkduXotowfl8G4jhXMGrlLgRbQLwIBOE5kM0iNU%3D' (2025-07-23)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f01fe91b0108a7aff99c99f2e9abbc45db0adc2a?narHash=sha256-NV4S2Lf2hYmZQ3Qf4t/YyyBaJNuxLPyjzvDma0zPp/M%3D' (2025-07-18)
  → 'github:NixOS/nixpkgs/92c2e04a475523e723c67ef872d8037379073681?narHash=sha256-yLuz5cz5Z%2Bsn8DRAfNkrd2Z1cV6DaYO9JMrEz4KZo/c%3D' (2025-07-21)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/c87b95e25065c028d31a94f06a62927d18763fdf?narHash=sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc%3D' (2025-07-19)
  → 'github:NixOS/nixpkgs/fc02ee70efb805d3b2865908a13ddd4474557ecf?narHash=sha256-i%2BCQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s%3D' (2025-07-23)
2025-07-24 16:14:33 +01:00
78ef29b8df flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m46s
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/d5ad4485e6f2edcc06751df65c5e16572877db88?narHash=sha256-PkaR0qmyP9q/MDN3uYa%2BRLeBA0PjvEQiM0rTDDBXkL8%3D' (2025-07-17)
  → 'github:nix-community/disko/3db2f0476516b2758fe8f1559f70c937b9d9b16b?narHash=sha256-cw%2BvVkef8EOjzJyr94wEKk34JDJu4lkGp2tkVUWaUxk%3D' (2025-07-21)
• Updated input 'home-manager':
    'github:nix-community/home-manager/c718918222bdb104397762dea67e6b397a7927fe?narHash=sha256-5dn97vIYxn6VozKePOQSDxVCsrl38nDdMJXx86KIJH0%3D' (2025-07-17)
  → 'github:nix-community/home-manager/adf195f021a8cbb0c317f75b52e96c82616526f9?narHash=sha256-KerePGJYX47ex6OY3CWsid4AltO2gDtQROunYJ0eCEE%3D' (2025-07-20)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/260a13a12f6c9990c029650b615abd41cd2ab4c7?narHash=sha256-6vp2anG%2BtVFqmebNL6QsGtDIuL5yDPUPrNrnFI67TEg%3D' (2025-07-18)
  → 'github:hyprwm/Hyprland/50758505d5c784052437a371a707fc2dc60bb34a?narHash=sha256-HVlkh9LSFWXSagGGpb8wWaV4VdHEvtb8jUcgpB732mA%3D' (2025-07-21)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/d723e5b153b7990d36e62a425bda3768c41dd9eb?narHash=sha256-XJJ%2BfrO4NOxVkoSGc1Mag8ESumzx2FmVRspOgFlMqF8%3D' (2025-07-11)
  → 'github:hyprwm/hyprland-plugins/14f9a444793d6dd78c29033acf9c3c974ded708d?narHash=sha256-GbfsRZWW5uBAOeddLkmrYV2XmAbI0etVUTBXFH5thcw%3D' (2025-07-20)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/d1bfa8f6ccfb5c383e1eba609c1eb67ca24ed153?narHash=sha256-P8J72psdc/rWliIvp8jUpoQ6qRDlVzgSDDlgkaXQ0Fw%3D' (2025-07-16)
  → 'github:NixOS/nixos-hardware/cc66fddc6cb04ab479a1bb062f4d4da27c936a22?narHash=sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM%3D' (2025-07-21)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/32a4e87942101f1c9f9865e04dc3ddb175f5f32e?narHash=sha256-f3pO%2B9lg66mV7IMmmIqG4PL3223TYMlnlw%2Bpnpelbss%3D' (2025-07-15)
  → 'github:NixOS/nixpkgs/f01fe91b0108a7aff99c99f2e9abbc45db0adc2a?narHash=sha256-NV4S2Lf2hYmZQ3Qf4t/YyyBaJNuxLPyjzvDma0zPp/M%3D' (2025-07-18)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/6e987485eb2c77e5dcc5af4e3c70843711ef9251?narHash=sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo%3D' (2025-07-16)
  → 'github:NixOS/nixpkgs/c87b95e25065c028d31a94f06a62927d18763fdf?narHash=sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc%3D' (2025-07-19)
• Updated input 'thunderbird-gnome-theme':
    'github:rafaelmardojai/thunderbird-gnome-theme/28e71ed964018ed5da2cc215e391901b68847c65?narHash=sha256-oqRbjHguuilu3wB8n05O0CBBfnEmKsT9%2Bl9J4de48gU%3D' (2025-07-16)
  → 'github:rafaelmardojai/thunderbird-gnome-theme/163ab2a77ffbbc2545889d05c8ce00f56c9f727e?narHash=sha256-XBZfXgarX1QOgN2dZYtLmYdO7Q73IyALJanjd4nWn08%3D' (2025-07-20)
2025-07-21 22:20:50 +01:00
d754332fd8 users/jordan: add vista-fonts
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m21s
2025-07-20 09:14:09 +01:00
17972ff66a hosts/artemis: add amdgpu to initrd
Some checks failed
Check flake / build-amd64-linux (push) Has been cancelled
2025-07-20 09:13:39 +01:00
cb07379113 hosts/artemis: configure wifi
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m21s
2025-07-19 16:22:58 +01:00
3f0dd956f6 hosts/artemis: add to deploy-rs
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m23s
2025-07-19 16:14:20 +01:00
fb61fd10d9 hosts/artemis: permit root login 2025-07-19 16:13:32 +01:00
1421079efd hosts/artemis: add authorized SSH key for root 2025-07-19 16:05:28 +01:00
35 changed files with 1247 additions and 652 deletions

View File

@@ -10,10 +10,12 @@ System and user configuration for NixOS-based systems.
| **Terminal:** | Ghostty | | **Terminal:** | Ghostty |
## Provisioning a new host ## Provisioning a new host
> [nixos-anywhere](https://github.com/nix-community/nixos-anywhere) is the module used > [nixos-anywhere](https://github.com/nix-community/nixos-anywhere) is the module used
> for provisioning > for provisioning
Generate a new SSH host key in "$temp/etc/ssh" as per [this guide](https://nix-community.github.io/nixos-anywhere/howtos/secrets.html#example-decrypting-an-openssh-host-key-with-pass). Generate a new SSH host key in "$temp/etc/ssh" as per [this guide](https://nix-community.github.io/nixos-anywhere/howtos/secrets.html#example-decrypting-an-openssh-host-key-with-pass).
``` ```
ssh-keygen -t ed25519 -f /tmp/ssh_host_ed25519_key ssh-keygen -t ed25519 -f /tmp/ssh_host_ed25519_key
``` ```
@@ -29,6 +31,7 @@ Create a new directory under `hosts/` with a system configuration and disk layou
Boot the NixOS installer (or any Linux distribution) on the target. Boot the NixOS installer (or any Linux distribution) on the target.
Then run: Then run:
``` ```
nix run github:nix-community/nixos-anywhere -- \ nix run github:nix-community/nixos-anywhere -- \
--disk-encryption-keys /tmp/secret.key /tmp/secret.key \ --disk-encryption-keys /tmp/secret.key /tmp/secret.key \
@@ -40,15 +43,19 @@ nix run github:nix-community/nixos-anywhere -- \
### Post install ### Post install
If backups are configured, you'll need to run: If backups are configured, you'll need to run:
``` ```
borgmatic init --encryption repokey-blake2 borgmatic init --encryption repokey-blake2
``` ```
then restart `borgmatic`. then restart `borgmatic`.
To join the Tailscale network, run: To join the Tailscale network, run:
``` ```
tailscale up --login-server https://headscale.vimium.net tailscale up --login-server https://headscale.vimium.net
``` ```
then visit the URL, SSH onto `vps1` and run `headscale --user mesh nodes register --key <key>`. then visit the URL, SSH onto `vps1` and run `headscale --user mesh nodes register --key <key>`.
The new node can optionally be given a friendly name with `headscale node rename -i <index> <hostname>`. The new node can optionally be given a friendly name with `headscale node rename -i <index> <hostname>`.

489
flake.lock generated
View File

@@ -3,16 +3,20 @@
"agenix": { "agenix": {
"inputs": { "inputs": {
"darwin": "darwin", "darwin": "darwin",
"home-manager": "home-manager", "home-manager": [
"nixpkgs": "nixpkgs", "nixpkgs"
],
"nixpkgs": [
"nixpkgs"
],
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1750173260, "lastModified": 1754433428,
"narHash": "sha256-9P1FziAwl5+3edkfFcr5HeGtQUtrSdk/MksX39GieoA=", "narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "531beac616433bac6f9e2a19feb8e99a22a66baf", "rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -21,6 +25,32 @@
"type": "github" "type": "github"
} }
}, },
"agenix-rekey": {
"inputs": {
"devshell": "devshell",
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": [
"pre-commit-hooks"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1754492276,
"narHash": "sha256-cCtleJZQY5eWPYRGl5x63BZ2rfOik4pLveCveH+tmvM=",
"owner": "oddlama",
"repo": "agenix-rekey",
"rev": "69ed7833c0e4e6a677a20894d8f12876b9e2bedb",
"type": "github"
},
"original": {
"owner": "oddlama",
"repo": "agenix-rekey",
"type": "github"
}
},
"aquamarine": { "aquamarine": {
"inputs": { "inputs": {
"hyprutils": [ "hyprutils": [
@@ -41,11 +71,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752743471, "lastModified": 1753216019,
"narHash": "sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM=", "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "e31b575d19e7cf8a8f4398e2f9cffe27a1332506", "rev": "be166e11d86ba4186db93e10c54a141058bdce49",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -95,7 +125,9 @@
"deploy-rs": { "deploy-rs": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"nixpkgs": "nixpkgs_2", "nixpkgs": [
"nixpkgs"
],
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
@@ -112,6 +144,68 @@
"type": "github" "type": "github"
} }
}, },
"devshell": {
"inputs": {
"nixpkgs": [
"agenix-rekey",
"nixpkgs"
]
},
"locked": {
"lastModified": 1728330715,
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
"owner": "numtide",
"repo": "devshell",
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"devshell_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1741473158,
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
"owner": "numtide",
"repo": "devshell",
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"devshell_3": {
"inputs": {
"nixpkgs": [
"nix-topology",
"nixpkgs"
]
},
"locked": {
"lastModified": 1728330715,
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
"owner": "numtide",
"repo": "devshell",
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"disko": { "disko": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -119,11 +213,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752718651, "lastModified": 1754971456,
"narHash": "sha256-PkaR0qmyP9q/MDN3uYa+RLeBA0PjvEQiM0rTDDBXkL8=", "narHash": "sha256-p04ZnIBGzerSyiY2dNGmookCldhldWAu03y0s3P8CB0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "d5ad4485e6f2edcc06751df65c5e16572877db88", "rev": "8246829f2e675a46919718f9a64b71afe3bfb22d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -135,11 +229,11 @@
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1752677629, "lastModified": 1754312136,
"narHash": "sha256-ze2bcq5RSasEwvT6PR8EMedF4o8RoBtVB5ny6Jd9tA4=", "narHash": "sha256-9veVYpPCwKNjIK5gOigl5nEUN6tmrSHXUv4bVZkRuOE=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "15ac3dfeaf828a9336e7e199123f8020cf04f440", "rev": "6f173d0873dd33c5653dee89a831af3e49db3e36",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -167,11 +261,11 @@
"flake-compat_2": { "flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1747046372,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -199,11 +293,11 @@
"flake-compat_4": { "flake-compat_4": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1747046372,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -213,6 +307,45 @@
} }
}, },
"flake-parts": { "flake-parts": {
"inputs": {
"nixpkgs-lib": [
"agenix-rekey",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1754487366,
"narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nixvim", "nixvim",
@@ -220,11 +353,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749398372, "lastModified": 1754091436,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -237,6 +370,24 @@
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_4"
}, },
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_5"
},
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
@@ -362,36 +513,15 @@
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"agenix",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1745494811, "lastModified": 1753592768,
"narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=", "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be", "rev": "fc3add429f21450359369af74c2375cb34a2d204",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1752780124,
"narHash": "sha256-5dn97vIYxn6VozKePOQSDxVCsrl38nDdMJXx86KIJH0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c718918222bdb104397762dea67e6b397a7927fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -417,11 +547,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749155331, "lastModified": 1753964049,
"narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprcursor", "repo": "hyprcursor",
"rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -446,11 +576,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752149140, "lastModified": 1754305013,
"narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", "narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", "rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -469,17 +599,17 @@
"hyprlang": "hyprlang", "hyprlang": "hyprlang",
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_3", "systems": "systems_3",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1752852943, "lastModified": 1755277479,
"narHash": "sha256-6vp2anG+tVFqmebNL6QsGtDIuL5yDPUPrNrnFI67TEg=", "narHash": "sha256-LrXtv1RIEds93j+OiSEvYFVX4fcGk2vrEzva19oxvco=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "260a13a12f6c9990c029650b615abd41cd2ab4c7", "rev": "edc473e8b0c14e768445422080af9978d132bff6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -505,11 +635,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752254688, "lastModified": 1755183521,
"narHash": "sha256-XJJ+frO4NOxVkoSGc1Mag8ESumzx2FmVRspOgFlMqF8=", "narHash": "sha256-wrP8TM2lb2x0+PyTc7Uc3yfVBeIlYW7+hFeG14N9Cr8=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-plugins", "repo": "hyprland-plugins",
"rev": "d723e5b153b7990d36e62a425bda3768c41dd9eb", "rev": "c1ddebb423acc7c88653c04de5ddafee64dac89a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -598,11 +728,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750371812, "lastModified": 1753819801,
"narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-qtutils", "repo": "hyprland-qtutils",
"rev": "b13c7481e37856f322177010bdf75fccacd1adc8", "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -627,11 +757,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750371198, "lastModified": 1753622892,
"narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -652,11 +782,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752252310, "lastModified": 1754481650,
"narHash": "sha256-06i1pIh6wb+sDeDmWlzuPwIdaFMxLlj1J9I5B9XqSeo=", "narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "bcabcbada90ed2aacb435dc09b91001819a6dc82", "rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -749,13 +879,38 @@
"type": "github" "type": "github"
} }
}, },
"nix-topology": {
"inputs": {
"devshell": "devshell_3",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": [
"pre-commit-hooks"
]
},
"locked": {
"lastModified": 1752093877,
"narHash": "sha256-P0TySh6sQl1EhfxjW9ZqGxEyUBSsEpdnchOe1QB0pLA=",
"owner": "oddlama",
"repo": "nix-topology",
"rev": "6a536c4b686ee4bcf07a7b0f8b823584560e2633",
"type": "github"
},
"original": {
"owner": "oddlama",
"repo": "nix-topology",
"type": "github"
}
},
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1752666637, "lastModified": 1754564048,
"narHash": "sha256-P8J72psdc/rWliIvp8jUpoQ6qRDlVzgSDDlgkaXQ0Fw=", "narHash": "sha256-dz303vGuzWjzOPOaYkS9xSW+B93PSAJxvBd6CambXVA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "d1bfa8f6ccfb5c383e1eba609c1eb67ca24ed153", "rev": "26ed7a0d4b8741fe1ef1ee6fa64453ca056ce113",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -775,11 +930,11 @@
"nixpkgs-25_05": "nixpkgs-25_05" "nixpkgs-25_05": "nixpkgs-25_05"
}, },
"locked": { "locked": {
"lastModified": 1747965231, "lastModified": 1755110674,
"narHash": "sha256-BW3ktviEhfCN/z3+kEyzpDKAI8qFTwO7+S0NVA0C90o=", "narHash": "sha256-PigqTAGkdBYXVFWsJnqcirrLeFqRFN4PFigLA8FzxeI=",
"owner": "simple-nixos-mailserver", "owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver", "repo": "nixos-mailserver",
"rev": "53007af63fade28853408370c4c600a63dd97f41", "rev": "f5936247dbdb8501221978562ab0b302dd75456c",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -791,11 +946,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1745391562, "lastModified": 1754725699,
"narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=", "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7", "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -821,13 +976,28 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": {
"locked": {
"lastModified": 1753579242,
"narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1752687322, "lastModified": 1755186698,
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=", "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251", "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -838,43 +1008,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1743014863, "lastModified": 1755078291,
"narHash": "sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg=", "narHash": "sha256-Hu/gTDoi4uy6TAKISPHQusSMy8U6xUbLSDjKBYdhDIY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bd3bac8bfb542dbde7ffffb6987a1a1f9d41699f", "rev": "3385ca0cd7e14c1a1eb80401fe011705ff012323",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1752687322,
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1752620740,
"narHash": "sha256-f3pO+9lg66mV7IMmmIqG4PL3223TYMlnlw+pnpelbss=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "32a4e87942101f1c9f9865e04dc3ddb175f5f32e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -885,19 +1023,19 @@
}, },
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts_3",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nuschtosSearch": "nuschtosSearch", "nuschtosSearch": "nuschtosSearch",
"systems": "systems_5" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1752010420, "lastModified": 1754262585,
"narHash": "sha256-fboKrq2WeEC2Y4LaZNiiH2dptUYHtSbYhzE0FTN/u+M=", "narHash": "sha256-Yz5dJ0VzGRzSRHdHldsWQbuFYmtP3NWNreCvPfCi9CI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "a11133507a930dfd235324cdf776bdb5e6ddd717", "rev": "ab1b5962e1ca90b42de47e1172e0d24ca80e6256",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -909,7 +1047,7 @@
}, },
"nuschtosSearch": { "nuschtosSearch": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils_2",
"ixx": "ixx", "ixx": "ixx",
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
@@ -917,11 +1055,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749730855, "lastModified": 1753771532,
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=", "narHash": "sha256-Pmpke0JtLRzgdlwDC5a+aiLVZ11JPUO5Bcqkj0nHE/k=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "search", "repo": "search",
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742", "rev": "2a65adaf2c0c428efb0f4a2bc406aab466e96a06",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -940,11 +1078,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750779888, "lastModified": 1754416808,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -962,11 +1100,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750779888, "lastModified": 1754416808,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -978,33 +1116,38 @@
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
"agenix-rekey": "agenix-rekey",
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"devshell": "devshell_2",
"disko": "disko", "disko": "disko",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_2",
"gitea-github-theme": "gitea-github-theme", "gitea-github-theme": "gitea-github-theme",
"home-manager": "home-manager_2", "home-manager": "home-manager",
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins", "hyprland-plugins": "hyprland-plugins",
"impermanence": "impermanence", "impermanence": "impermanence",
"kvlibadwaita": "kvlibadwaita", "kvlibadwaita": "kvlibadwaita",
"nix-topology": "nix-topology",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixos-mailserver": "nixos-mailserver", "nixos-mailserver": "nixos-mailserver",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"nixvim": "nixvim", "nixvim": "nixvim",
"pre-commit-hooks": "pre-commit-hooks_2", "pre-commit-hooks": "pre-commit-hooks_2",
"secrets": "secrets", "secrets": "secrets",
"thunderbird-gnome-theme": "thunderbird-gnome-theme" "thunderbird-gnome-theme": "thunderbird-gnome-theme",
"treefmt-nix": "treefmt-nix_2"
} }
}, },
"secrets": { "secrets": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1752936308, "lastModified": 1753994653,
"narHash": "sha256-OAlj8oJpcKo9cCIwxzMolnwdfczlovvC1y1MeIpDPYM=", "narHash": "sha256-kVd17w6oo9dbZfgZXMMPEssspp8vAr32G5U8VnfuIFc=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "eddee7a0b83063ba60c0dd49fc18399b6564559d", "rev": "e0cb8c5b8de3f61fbef13c80219715f2e3e5ffb5",
"revCount": 36, "revCount": 39,
"type": "git", "type": "git",
"url": "ssh://git@git.vimium.com/jordan/nix-secrets.git" "url": "ssh://git@git.vimium.com/jordan/nix-secrets.git"
}, },
@@ -1088,14 +1231,29 @@
"type": "github" "type": "github"
} }
}, },
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"thunderbird-gnome-theme": { "thunderbird-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1752683313, "lastModified": 1754507270,
"narHash": "sha256-oqRbjHguuilu3wB8n05O0CBBfnEmKsT9+l9J4de48gU=", "narHash": "sha256-zADBsXqIkxy519sK/2mnZ/lcTQSA/3iXwdkXCVNqUVY=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "thunderbird-gnome-theme", "repo": "thunderbird-gnome-theme",
"rev": "28e71ed964018ed5da2cc215e391901b68847c65", "rev": "a9ee1a2c8a1dfce700250a4ce3ce7f88dff43300",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1104,6 +1262,47 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"agenix-rekey",
"nixpkgs"
]
},
"locked": {
"lastModified": 1735135567,
"narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "9e09d30a644c57257715902efbb3adc56c79cf28",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1754847726,
"narHash": "sha256-2vX8QjO5lRsDbNYvN9hVHXLU6oMl+V/PsmIiJREG4rE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "7d81f6fb2e19bf84f1c65135d1060d829fae2408",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_2"
@@ -1150,11 +1349,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751300244, "lastModified": 1753633878,
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=", "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a", "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a",
"type": "github" "type": "github"
}, },
"original": { "original": {

188
flake.nix
View File

@@ -2,166 +2,176 @@
description = "NixOS system configuration"; description = "NixOS system configuration";
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-25.05"; agenix = {
nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; url = "github:ryantm/agenix";
# nixpkgs-master.url = "nixpkgs"; inputs.home-manager.follows = "nixpkgs";
agenix.url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs";
deploy-rs.url = "github:serokell/deploy-rs"; };
agenix-rekey = {
url = "github:oddlama/agenix-rekey";
inputs.nixpkgs.follows = "nixpkgs";
inputs.pre-commit-hooks.follows = "pre-commit-hooks";
};
deploy-rs = {
url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs";
};
devshell = {
url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = { disko = {
url = "github:nix-community/disko"; url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-25.05"; url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
hyprland-plugins = { hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins"; url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland"; inputs.hyprland.follows = "hyprland";
}; };
firefox-gnome-theme = { firefox-gnome-theme = {
url = "github:rafaelmardojai/firefox-gnome-theme"; url = "github:rafaelmardojai/firefox-gnome-theme";
flake = false; flake = false;
}; };
flake-parts.url = "github:hercules-ci/flake-parts";
gitea-github-theme = { gitea-github-theme = {
url = "git+ssh://git@git.vimium.com/jordan/gitea-github-theme.git?ref=main"; url = "git+ssh://git@git.vimium.com/jordan/gitea-github-theme.git?ref=main";
flake = false; flake = false;
}; };
impermanence.url = "github:nix-community/impermanence"; impermanence.url = "github:nix-community/impermanence";
kvlibadwaita = { kvlibadwaita = {
url = "github:GabePoel/KvLibadwaita"; url = "github:GabePoel/KvLibadwaita";
flake = false; flake = false;
}; };
nixos-hardware.url = "github:NixOS/nixos-hardware"; nixos-hardware.url = "github:NixOS/nixos-hardware";
nixos-mailserver = { nixos-mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.05"; url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixpkgs.url = "nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
# nixpkgs-master.url = "nixpkgs";
nixvim = { nixvim = {
url = "github:nix-community/nixvim/nixos-25.05"; url = "github:nix-community/nixvim/nixos-25.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-topology = {
url = "github:oddlama/nix-topology";
inputs.nixpkgs.follows = "nixpkgs";
inputs.pre-commit-hooks.follows = "pre-commit-hooks";
};
pre-commit-hooks = { pre-commit-hooks = {
url = "github:cachix/git-hooks.nix"; url = "github:cachix/git-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
secrets = { secrets = {
url = "git+ssh://git@git.vimium.com/jordan/nix-secrets.git"; url = "git+ssh://git@git.vimium.com/jordan/nix-secrets.git";
flake = false; flake = false;
}; };
thunderbird-gnome-theme = { thunderbird-gnome-theme = {
url = "github:rafaelmardojai/thunderbird-gnome-theme"; url = "github:rafaelmardojai/thunderbird-gnome-theme";
flake = false; flake = false;
}; };
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
inputs@{ self, nixpkgs, ... }: inputs@{
let nixpkgs,
inherit (nixpkgs) lib; flake-parts,
...
domain = "mesh.vimium.net"; }:
forEachSystem = lib.genAttrs [ flake-parts.lib.mkFlake { inherit inputs; } {
"x86_64-linux" imports = [
"aarch64-linux" inputs.agenix-rekey.flakeModule
inputs.pre-commit-hooks.flakeModule
inputs.nix-topology.flakeModule
inputs.treefmt-nix.flakeModule
./nix/devshell.nix
./nix/hosts.nix
]; ];
mkDeployNode = hostName: {
hostname = "${hostName}.${domain}";
profiles.system = { flake = {
user = "root"; overlays = nixpkgs.lib.packagesFromDirectoryRecursive {
path =
inputs.deploy-rs.lib.${
self.nixosConfigurations.${hostName}.config.system.build.toplevel.system
}.activate.nixos
self.nixosConfigurations.${hostName};
};
};
in
{
overlays = lib.packagesFromDirectoryRecursive {
callPackage = path: overrides: import path; callPackage = path: overrides: import path;
directory = ./overlays; directory = ./overlays;
}; };
legacyPackages = forEachSystem (
system:
lib.packagesFromDirectoryRecursive {
callPackage = nixpkgs.legacyPackages.${system}.callPackage;
directory = ./pkgs;
}
);
nixosConfigurations = lib.pipe ./hosts [
builtins.readDir
(lib.filterAttrs (name: value: value == "directory"))
(lib.mapAttrs (
name: value:
lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
{
networking = {
inherit domain;
hostName = name;
}; };
}
./hosts/${name} systems = [
]; "aarch64-linux"
} "x86_64-linux"
))
]; ];
checks = perSystem =
builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib { pkgs, ... }:
// (forEachSystem (system: { {
pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run { formatter = pkgs.nixfmt-rfc-style;
src = ./.;
legacyPackages = pkgs.lib.packagesFromDirectoryRecursive {
callPackage = pkgs.callPackage;
directory = ./pkgs;
};
pre-commit = {
settings = {
excludes = [ "pkgs/libcamera-rpi/libcamera-rpi-ipa-priv-key.pem" ];
hooks = { hooks = {
check-case-conflicts.enable = true; check-case-conflicts.enable = true;
check-executables-have-shebangs.enable = true; check-executables-have-shebangs.enable = true;
check-merge-conflicts.enable = true; check-merge-conflicts.enable = true;
deadnix = {
enable = true;
settings = {
noLambdaArg = true;
};
};
detect-private-keys.enable = true; detect-private-keys.enable = true;
end-of-file-fixer.enable = true; end-of-file-fixer.enable = true;
fix-byte-order-marker.enable = true; fix-byte-order-marker.enable = true;
mixed-line-endings.enable = true; mixed-line-endings.enable = true;
nixfmt-rfc-style.enable = true; treefmt.enable = true;
trim-trailing-whitespace.enable = true; trim-trailing-whitespace.enable = true;
}; };
excludes = [ "pkgs/libcamera-rpi/libcamera-rpi-ipa-priv-key.pem" ];
}; };
}));
formatter = forEachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
devShells = forEachSystem (system: {
default = nixpkgs.legacyPackages.${system}.mkShell {
inherit (self.checks.${system}.pre-commit-check) shellHook;
buildInputs = [
inputs.agenix.packages.${system}.agenix
inputs.deploy-rs.packages.${system}.deploy-rs
] ++ self.checks.${system}.pre-commit-check.enabledPackages;
}; };
});
deploy = { treefmt = {
magicRollback = true; projectRootFile = "flake.nix";
autoRollback = true; programs = {
sshUser = "root"; deadnix = {
nodes = lib.genAttrs [ enable = true;
"mail" no-lambda-arg = true;
"pi" };
"skycam" mdformat.enable = true;
"vps1" nixfmt-rfc-style.enable = true;
] mkDeployNode; shellcheck.enable = true;
};
};
}; };
}; };
} }

View File

@@ -1,22 +1,26 @@
# Artemis # Artemis
## Overview ## Overview
Couch gaming PC and media centre Couch gaming PC and media centre
## Specs ## Specs
* CPU - AMD Ryzen 7 9800X3D @ 4.70GHz
* Chipset - AMD B850 - CPU - AMD Ryzen 7 9800X3D @ 4.70GHz
* Memory - 64 GB DDR5 - Chipset - AMD B850
* Motherboard - ASUS ROG STRIX B850-I Gaming WiFi - Memory - 64 GB DDR5
* GPU - AMD Radeon 7900 XTX - Motherboard - ASUS ROG STRIX B850-I Gaming WiFi
* Case - MCPRUE Apollo S v4 - GPU - AMD Radeon 7900 XTX
- Case - MCPRUE Apollo S v4
### Disks ### Disks
Device | Partitions _(filesystem, size, usage)_ Device | Partitions _(filesystem, size, usage)_
--- | --- --- | ---
WD Black SN850X | `/dev/nvme0n1p1` (EFI, 500 MiB, NixOS Boot) <br> `/dev/nvme0n1p2` (ZFS, 4 TiB, NixOS Root) WD Black SN850X | `/dev/nvme0n1p1` (EFI, 500 MiB, NixOS Boot) <br> `/dev/nvme0n1p2` (ZFS, 4 TiB, NixOS Root)
#### ZFS pool layout #### ZFS pool layout
``` ```
rpool/ rpool/
├── local ├── local
@@ -32,5 +36,6 @@ rpool/
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets. See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets.
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `artemis.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `artemis.mesh.vimium.net`.

View File

@@ -1,10 +1,17 @@
{ {
inputs, inputs,
config,
lib, lib,
pkgs, pkgs,
... ...
}: }:
let
inherit (lib)
getExe
mkForce
;
in
{ {
imports = [ imports = [
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
@@ -27,7 +34,36 @@
networking = { networking = {
hostId = "4f9a2b7e"; hostId = "4f9a2b7e";
networkmanager.enable = true; networkmanager.enable = mkForce false;
};
services.openssh.settings.PermitRootLogin = mkForce "prohibit-password";
users = {
users = {
root = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILVHTjsyMIV4THNw6yz0OxAxGnC+41gX72UrPqTzR+OS jordan@vimium.com"
];
};
};
};
services.earlyoom = {
enable = true;
extraArgs = [
"-M"
"409600,307200"
]
++ (
if config.swapDevices.zramSwap.enable or false then
[
"-S"
"409600,307200"
]
else
[ ]
);
}; };
services.sunshine = { services.sunshine = {
@@ -36,6 +72,11 @@
capSysAdmin = true; capSysAdmin = true;
}; };
environment = {
systemPackages = [ pkgs.wine ];
sessionVariables.WINE_BIN = getExe pkgs.wine;
};
modules = { modules = {
services = { services = {
borgmatic = { borgmatic = {
@@ -46,11 +87,17 @@
repoPath = "ssh://neafzrj7@neafzrj7.repo.borgbase.com/./repo"; repoPath = "ssh://neafzrj7@neafzrj7.repo.borgbase.com/./repo";
}; };
}; };
system.desktop = { system = {
wireless = {
enable = true;
interfaces = [ "wlp11s0" ];
};
desktop = {
gnome.enable = lib.mkForce false; gnome.enable = lib.mkForce false;
hyprland.enable = true; hyprland.enable = true;
}; };
}; };
};
system.stateVersion = "25.05"; system.stateVersion = "25.05";
} }

View File

@@ -6,13 +6,29 @@
... ...
}: }:
let
inherit (lib)
getExe
mkDefault
mkOverride
;
in
{ {
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
# Inspired by: https://github.com/Jovian-Experiments/Jovian-NixOS
boot = { boot = {
initrd.availableKernelModules = [ binfmt.registrations."DOSWin" = {
wrapInterpreterInShell = false;
interpreter = getExe pkgs.wine;
recognitionType = "magic";
offset = 0;
magicOrExtension = "MZ";
};
initrd = {
availableKernelModules = [
"xhci_pci" "xhci_pci"
"ehci_pci" "ehci_pci"
"nvme" "nvme"
@@ -20,10 +36,39 @@
"usb_storage" "usb_storage"
"sd_mod" "sd_mod"
]; ];
initrd.kernelModules = [ ]; kernelModules = [
initrd.supportedFilesystems = [ "zfs" ]; "amdgpu"
kernelModules = [ "kvm-amd" ]; ];
kernelPackages = pkgs.linuxPackages_6_12; supportedFilesystems = [ "zfs" ];
};
kernel.sysctl = {
"kernel.sched_cfs_bandwidth_slice_u" = mkDefault 3000;
"kernel.sched_latency_ns" = mkDefault 3000000;
"kernel.sched_min_granularity_ns" = mkDefault 300000;
"kernel.sched_wakeup_granularity_ns" = mkDefault 500000;
"kernel.sched_migration_cost_ns" = mkDefault 50000;
"kernel.sched_nr_migrate" = mkDefault 128;
"kernel.split_lock_mitigate" = mkDefault 0;
"net.ipv4.tcp_mtu_probing" = true;
"net.ipv4.tcp_fin_timeout" = mkDefault 5;
"vm.max_map_count" = mkOverride 999 2147483642;
};
kernelModules = [
"hid_nintendo"
"hid_playstation"
"kvm-amd"
"ntsync"
];
kernelParams = [
"log_buf_len=4M"
"amdgpu.lockup_timeout=5000,10000,10000,5000"
"ttm.pages_min=2097152"
"amdgpu.sched_hw_submission=4"
"audit=0"
];
kernelPackages = pkgs.linuxPackages_6_15;
supportedFilesystems = [ "ntfs" ]; supportedFilesystems = [ "ntfs" ];
}; };
@@ -31,12 +76,43 @@
bluetooth = { bluetooth = {
enable = true; enable = true;
powerOnBoot = true; powerOnBoot = true;
settings = {
General = {
MultiProfile = "multiple";
FastConnectable = true;
# enable experimental LL privacy, experimental offload codecs
KernelExperimental = "15c0a148-c273-11ea-b3de-0242ac130004";
};
LE = {
ScanIntervalSuspend = 2240;
ScanWindowSuspend = 224;
};
};
};
graphics = {
enable32Bit = true;
extraPackages = [
pkgs.gamescope-wsi
pkgs.vk-hdr-layer
];
extraPackages32 = [ pkgs.pkgsi686Linux.gamescope-wsi ];
}; };
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
enableRedistributableFirmware = true;
}; };
powerManagement.cpuFreqGovernor = "schedutil"; powerManagement.cpuFreqGovernor = "schedutil";
services.udev.packages = [
(pkgs.writeTextFile {
name = "ntsync-udev-rules";
text = ''KERNEL=="ntsync", MODE="0660", TAG+="uaccess"'';
destination = "/etc/udev/rules.d/70-ntsync.rules";
})
];
services.pulseaudio.enable = false;
services.xserver.videoDrivers = [ "amdgpu" ]; services.xserver.videoDrivers = [ "amdgpu" ];
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;

View File

@@ -1,24 +1,28 @@
# Atlas # Atlas
## Overview ## Overview
A general purpose mini computer used for web browsing and multimedia. A general purpose mini computer used for web browsing and multimedia.
## Specs ## Specs
* CPU - Intel Core i7-4790K @ 4.00GHz
* Chipset - Intel Z97 - CPU - Intel Core i7-4790K @ 4.00GHz
* Memory - 8 GB DDR3 - Chipset - Intel Z97
* Motherboard - ASRock Z97M-ITX - Memory - 8 GB DDR3
* GPU - AMD Radeon R9 290X 4GB - Motherboard - ASRock Z97M-ITX
* Case - SilverStone Sugo SG13 - GPU - AMD Radeon R9 290X 4GB
* NIC - Intel Gigabit I218-V, Broadcom BCM4360 802.11ac - Case - SilverStone Sugo SG13
- NIC - Intel Gigabit I218-V, Broadcom BCM4360 802.11ac
### Disks ### Disks
Device | Partitions _(filesystem, size, usage)_ Device | Partitions _(filesystem, size, usage)_
--- | --- --- | ---
Samsung SSD 850 | `/dev/sda1` (NTFS, 500 GiB, Windows XP) Samsung SSD 850 | `/dev/sda1` (NTFS, 500 GiB, Windows XP)
Samsung SSD 850 | `/dev/sdb1` (EFI, 500 MiB, NixOS Boot) <br> `/dev/sdb2` (ZFS, 500 GiB, NixOS Root) Samsung SSD 850 | `/dev/sdb1` (EFI, 500 MiB, NixOS Boot) <br> `/dev/sdb2` (ZFS, 500 GiB, NixOS Root)
#### ZFS pool layout #### ZFS pool layout
``` ```
rpool/ rpool/
├── local ├── local
@@ -34,5 +38,6 @@ rpool/
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets. See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets.
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `atlas.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `atlas.mesh.vimium.net`.

View File

@@ -1,18 +1,22 @@
# Eos # Eos
## Overview ## Overview
ThinkPad X220 laptop. ThinkPad X220 laptop.
## Specs ## Specs
* CPU - Intel Core i5-2520M @ 3.20GHz
* Memory - 8 GB DDR3 - CPU - Intel Core i5-2520M @ 3.20GHz
- Memory - 8 GB DDR3
### Disks ### Disks
Device | Partitions _(filesystem, usage)_ Device | Partitions _(filesystem, usage)_
--- | --- --- | ---
Solid | `/dev/sda1` (EFI, NixOS Boot) <br> `/dev/sda2` (ZFS, NixOS Root) Solid | `/dev/sda1` (EFI, NixOS Boot) <br> `/dev/sda2` (ZFS, NixOS Root)
#### ZFS pool layout #### ZFS pool layout
``` ```
rpool/ rpool/
├── local ├── local
@@ -28,5 +32,6 @@ rpool/
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets. See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets.
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `eos.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `eos.mesh.vimium.net`.

View File

@@ -1,16 +1,19 @@
# Helios # Helios
## Overview ## Overview
Dell OptiPlex 980 small form factor desktop. Dell OptiPlex 980 small form factor desktop.
## Specs ## Specs
* CPU - Intel Core i7-860 @ 2.8GHz
* Chipset - Intel Q57 Express - CPU - Intel Core i7-860 @ 2.8GHz
* Memory - 8 GB DDR2 - Chipset - Intel Q57 Express
* GPU - AMD FirePro 2460 - Memory - 8 GB DDR2
* NIC - Intel Gigabit 82578DM - GPU - AMD FirePro 2460
- NIC - Intel Gigabit 82578DM
### Disks ### Disks
Device | Partitions _(filesystem, size, usage)_ Device | Partitions _(filesystem, size, usage)_
--- | --- --- | ---
SanDisk Ultra II | `/dev/sda1` (ext2, 200 MiB, NixOS Boot) <br> `/dev/sda2` (ZFS, 480 GiB, NixOS Root) SanDisk Ultra II | `/dev/sda1` (ext2, 200 MiB, NixOS Boot) <br> `/dev/sda2` (ZFS, 480 GiB, NixOS Root)
@@ -19,6 +22,7 @@ SanDisk Ultra II | `/dev/sda1` (ext2, 200 MiB, NixOS Boot) <br> `/dev/sda2` (ZFS
> an MBR partition table. > an MBR partition table.
#### ZFS pool layout #### ZFS pool layout
``` ```
rpool/ rpool/
├── local ├── local
@@ -34,5 +38,6 @@ rpool/
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets. See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets.
### Networks ### Networks
- DHCP on `192.168.1.0/24` subnet. - DHCP on `192.168.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `helios.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `helios.mesh.vimium.net`.

View File

@@ -1,21 +1,25 @@
# Hypnos # Hypnos
## Overview ## Overview
15-inch MacBook Pro 11,3 (Mid 2014). 15-inch MacBook Pro 11,3 (Mid 2014).
## Specs ## Specs
* CPU - Intel Core i7-4870HQ @ 2.50GHz
* Memory - 16 GB DDR3 - CPU - Intel Core i7-4870HQ @ 2.50GHz
* GPU - Intel Iris Pro 5200 - Memory - 16 GB DDR3
* GPU - NVIDIA GeForce GT 750M - GPU - Intel Iris Pro 5200
* NIC - Broadcom BCM43xx 802.11ac - GPU - NVIDIA GeForce GT 750M
- NIC - Broadcom BCM43xx 802.11ac
### Disks ### Disks
Device | Partitions _(filesystem, size, usage)_ Device | Partitions _(filesystem, size, usage)_
--- | --- --- | ---
Apple SSD SM0512F | `/dev/sda1` (EFI, 256 MiB, NixOS Boot) <br> `/dev/sda2` (ZFS, 500 GiB, NixOS Root) Apple SSD SM0512F | `/dev/sda1` (EFI, 256 MiB, NixOS Boot) <br> `/dev/sda2` (ZFS, 500 GiB, NixOS Root)
#### ZFS pool layout #### ZFS pool layout
``` ```
rpool/ rpool/
├── local ├── local
@@ -31,5 +35,6 @@ rpool/
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets. See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets.
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `hypnos.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `hypnos.mesh.vimium.net`.

View File

@@ -1,21 +1,25 @@
# Library # Library
## Overview ## Overview
Media and public file server. Media and public file server.
## Specs ## Specs
* CPU - AMD Ryzen 5 5600G @ 3.90GHz
* Chipset - AMD B550 - CPU - AMD Ryzen 5 5600G @ 3.90GHz
* Memory - 64 GB DDR4 - Chipset - AMD B550
* Motherboard - ASRock B550M Pro4 - Memory - 64 GB DDR4
* Case - JMCD-12S4 - Motherboard - ASRock B550M Pro4
- Case - JMCD-12S4
### Disks ### Disks
Device | Partitions _(filesystem, size, usage)_ Device | Partitions _(filesystem, size, usage)_
--- | --- --- | ---
Samsung 970 Evo Plus | `/dev/nvme0n1p1` (EFI, 512 MiB, NixOS Boot) <br> `/dev/nvme0n1p2` (ZFS `rpool`, 200 GiB, NixOS Root) Samsung 970 Evo Plus | `/dev/nvme0n1p1` (EFI, 512 MiB, NixOS Boot) <br> `/dev/nvme0n1p2` (ZFS `rpool`, 200 GiB, NixOS Root)
#### ZFS datasets #### ZFS datasets
``` ```
rpool/ rpool/
├── local ├── local
@@ -41,5 +45,6 @@ library/
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind the `rpool` datasets. See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind the `rpool` datasets.
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `library.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `library.mesh.vimium.net`.

View File

@@ -26,6 +26,7 @@
ENABLE_OAUTH_ROLE_MANAGEMENT = "True"; ENABLE_OAUTH_ROLE_MANAGEMENT = "True";
OAUTH_CLIENT_ID = clientId; OAUTH_CLIENT_ID = clientId;
OAUTH_PROVIDER_NAME = "Vimium"; OAUTH_PROVIDER_NAME = "Vimium";
OFFLINE_MODE = "True";
OPENID_PROVIDER_URL = "https://auth.vimium.com/oauth2/openid/${clientId}/.well-known/openid-configuration"; OPENID_PROVIDER_URL = "https://auth.vimium.com/oauth2/openid/${clientId}/.well-known/openid-configuration";
OPENID_REDIRECT_URI = "${publicUrl}/oauth/oidc/callback"; OPENID_REDIRECT_URI = "${publicUrl}/oauth/oidc/callback";
}; };

View File

@@ -42,9 +42,7 @@
]; ];
locations."/" = { locations."/" = {
proxyPass = "http://localhost:8081"; proxyPass = "http://localhost:8081";
extraConfig = extraConfig = proxyConfig + ''
proxyConfig
+ ''
# Disable proxy buffering for better streaming response from models # Disable proxy buffering for better streaming response from models
proxy_buffering off; proxy_buffering off;
@@ -63,8 +61,7 @@
} }
]; ];
locations."/" = { locations."/" = {
extraConfig = extraConfig = ''
''
# Proxy JellySearch first # Proxy JellySearch first
if ($arg_searchTerm) { if ($arg_searchTerm) {
proxy_pass http://localhost:5000; proxy_pass http://localhost:5000;

View File

@@ -1,17 +1,21 @@
# Mail server # Mail server
## Overview ## Overview
Mail server hosted in OVH. Mail server hosted in OVH.
## Specs ## Specs
* CPU - ??
* Memory - ?? - CPU - ??
- Memory - ??
### Disks ### Disks
Device | Partitions _(filesystem, usage)_ Device | Partitions _(filesystem, usage)_
--- | --- --- | ---
NVMe | `/dev/sda1` (ext4, NixOS Root) NVMe | `/dev/sda1` (ext4, NixOS Root)
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `mail.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `mail.mesh.vimium.net`.

View File

@@ -1,22 +1,26 @@
# Odyssey # Odyssey
## Overview ## Overview
Primary workstation. Primary workstation.
## Specs ## Specs
* CPU - AMD Ryzen 9 9950X3D @ 4.30GHz
* Chipset - AMD X870E - CPU - AMD Ryzen 9 9950X3D @ 4.30GHz
* Memory - 96 GB DDR5 - Chipset - AMD X870E
* Motherboard - ASUS ProArt X870E-Creator WiFi - Memory - 96 GB DDR5
* GPU - NVIDIA RTX 3090 - Motherboard - ASUS ProArt X870E-Creator WiFi
* Case - Thermaltake A500 - GPU - NVIDIA RTX 3090
- Case - Thermaltake A500
### Disks ### Disks
Device | Partitions _(filesystem, size, usage)_ Device | Partitions _(filesystem, size, usage)_
--- | --- --- | ---
Samsung 980 Pro | `/dev/nvme0n1p1` (EFI, 512 MiB, NixOS Boot) <br> `/dev/nvme0n1p2` (ZFS, 2 TiB, NixOS Root) Samsung 980 Pro | `/dev/nvme0n1p1` (EFI, 512 MiB, NixOS Boot) <br> `/dev/nvme0n1p2` (ZFS, 2 TiB, NixOS Root)
#### ZFS pool layout #### ZFS pool layout
``` ```
rpool/ rpool/
├── local ├── local
@@ -32,5 +36,6 @@ rpool/
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets. See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets.
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `odyssey.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `odyssey.mesh.vimium.net`.

View File

@@ -34,6 +34,9 @@
powerOnBoot = true; powerOnBoot = true;
}; };
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
graphics = {
extraPackages = [ pkgs.vk-hdr-layer ];
};
nvidia = { nvidia = {
modesetting.enable = true; modesetting.enable = true;
open = true; open = true;

View File

@@ -1,19 +1,23 @@
# Pi # Pi
## Overview ## Overview
Raspberry Pi 4 Raspberry Pi 4
## Specs ## Specs
* SoC - Broadcom BCM2711
* CPU - ARM Cortex-A72 @ 1.8 GHz - SoC - Broadcom BCM2711
* Memory - 8 GB LPDDR4 - CPU - ARM Cortex-A72 @ 1.8 GHz
- Memory - 8 GB LPDDR4
### Disks ### Disks
Device | Partitions _(filesystem, usage)_ Device | Partitions _(filesystem, usage)_
--- | --- --- | ---
SD card | `/dev/mmcblk0` (ext4, NixOS Root) SD card | `/dev/mmcblk0` (ext4, NixOS Root)
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `pi.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `pi.mesh.vimium.net`.

View File

@@ -1,26 +1,32 @@
# Skycam # Skycam
## Overview ## Overview
Raspberry Pi 4-based webcam Raspberry Pi 4-based webcam
## Specs ## Specs
* SoC - Broadcom BCM2711
* CPU - ARM Cortex-A72 @ 1.8 GHz - SoC - Broadcom BCM2711
* Memory - 8 GB LPDDR4 - CPU - ARM Cortex-A72 @ 1.8 GHz
- Memory - 8 GB LPDDR4
### Disks ### Disks
Device | Partitions _(filesystem, usage)_ Device | Partitions _(filesystem, usage)_
--- | --- --- | ---
SD card | `/dev/mmcblk0` (ext4, NixOS Root) SD card | `/dev/mmcblk0` (ext4, NixOS Root)
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `skycam.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `skycam.mesh.vimium.net`.
## Devices and connections ## Devices and connections
- Camera Module 3 with wide-angle lens - Camera Module 3 with wide-angle lens
## Building ## Building
To generate a compressed SD card image for Skycam, run: To generate a compressed SD card image for Skycam, run:
`nix build '.#nixosConfigurations.skycam.config.system.build.sdImage'` `nix build '.#nixosConfigurations.skycam.config.system.build.sdImage'`

View File

@@ -1,17 +1,21 @@
# vps1 # vps1
## Overview ## Overview
VPS hosted in OVH. VPS hosted in OVH.
## Specs ## Specs
* CPU - ??
* Memory - ?? - CPU - ??
- Memory - ??
### Disks ### Disks
Device | Partitions _(filesystem, usage)_ Device | Partitions _(filesystem, usage)_
--- | --- --- | ---
NVMe | `/dev/sda1` (ext4, NixOS Root) NVMe | `/dev/sda1` (ext4, NixOS Root)
### Networks ### Networks
- DHCP on `10.0.1.0/24` subnet. - DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `vps1.mesh.vimium.net`. - Tailscale on `100.64.0.0/10` subnet. FQDN: `vps1.mesh.vimium.net`.

View File

@@ -40,8 +40,7 @@ in
}; };
}; };
age.secrets = age.secrets = {
{
"passwords/services/coturn/static-auth-secret" = { "passwords/services/coturn/static-auth-secret" = {
file = "${inputs.secrets}/passwords/services/coturn/static-auth-secret.age"; file = "${inputs.secrets}/passwords/services/coturn/static-auth-secret.age";
owner = "turnserver"; owner = "turnserver";

View File

@@ -11,7 +11,6 @@
./kanidm.nix ./kanidm.nix
./matrix.nix ./matrix.nix
./nginx.nix ./nginx.nix
./outline.nix
./photoprism.nix ./photoprism.nix
../server.nix ../server.nix
]; ];

View File

@@ -63,8 +63,7 @@ in
}; };
}; };
services.nginx.virtualHosts = services.nginx.virtualHosts = {
{
"${matrixSubdomain}" = { "${matrixSubdomain}" = {
forceSSL = true; forceSSL = true;
enableACME = true; enableACME = true;
@@ -176,8 +175,7 @@ in
); );
services.postgresql = lib.mkIf usePostgresql { services.postgresql = lib.mkIf usePostgresql {
ensureUsers = ensureUsers = [
[
{ {
name = "matrix-synapse"; name = "matrix-synapse";
ensureDBOwnership = true; ensureDBOwnership = true;
@@ -191,8 +189,7 @@ in
name = "mautrix-whatsapp"; name = "mautrix-whatsapp";
ensureDBOwnership = true; ensureDBOwnership = true;
}); });
ensureDatabases = ensureDatabases = [
[
"matrix-synapse" "matrix-synapse"
] ]
++ (lib.optional bridges.signal "mautrix-signal") ++ (lib.optional bridges.signal "mautrix-signal")
@@ -216,6 +213,7 @@ in
}; };
mute_bridging = true; mute_bridging = true;
}; };
} // commonBridgeSettings "mautrix-whatsapp"; }
// commonBridgeSettings "mautrix-whatsapp";
}; };
} }

View File

@@ -82,8 +82,7 @@ in
maxSize = "100m"; maxSize = "100m";
}; };
}; };
virtualHosts = virtualHosts = {
{
## Static sites ## Static sites
"chat.ai.vimium.com" = { "chat.ai.vimium.com" = {
forceSSL = true; forceSSL = true;

View File

@@ -1,51 +0,0 @@
{
inputs,
config,
...
}:
let
domain = "outline.vimium.com";
in
{
services.nginx.virtualHosts = {
"${domain}" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:3000";
extraConfig = ''
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
'';
};
};
};
age.secrets."passwords/services/outline/oidc-client-secret" = {
file = "${inputs.secrets}/passwords/services/outline/oidc-client-secret.age";
owner = "outline";
group = "outline";
};
services.outline = {
enable = true;
forceHttps = false;
oidcAuthentication = {
clientId = "outline";
clientSecretFile = config.age.secrets."passwords/services/outline/oidc-client-secret".path;
displayName = "Vimium";
authUrl = "https://auth.vimium.com/ui/oauth2";
tokenUrl = "https://auth.vimium.com/oauth2/token";
userinfoUrl = "https://auth.vimium.com/oauth2/openid/outline/userinfo";
};
publicUrl = "https://${domain}";
storage.storageType = "local";
};
}

31
hosts/vps2/default.nix Normal file
View File

@@ -0,0 +1,31 @@
{
inputs,
...
}:
{
imports = [
inputs.disko.nixosModules.disko
./hardware-configuration.nix
./disko-config.nix
../server.nix
];
nixpkgs = {
hostPlatform = "x86_64-linux";
};
networking = {
hostId = "60de4af8";
firewall = {
enable = true;
allowedTCPPorts = [
22 # SSH
];
};
};
modules.services.tailscale.isExitNode = true;
system.stateVersion = "25.05";
}

View File

@@ -0,0 +1,55 @@
{ lib, ... }:
{
disko.devices = {
disk.disk1 = {
device = lib.mkDefault "/dev/sda";
type = "disk";
content = {
type = "gpt";
partitions = {
boot = {
name = "boot";
size = "2M";
type = "EF02";
};
esp = {
name = "ESP";
size = "300M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
name = "root";
size = "100%";
content = {
type = "lvm_pv";
vg = "pool";
};
};
};
};
};
lvm_vg = {
pool = {
type = "lvm_vg";
lvs = {
root = {
size = "100%FREE";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
mountOptions = [
"defaults"
];
};
};
};
};
};
};
}

View File

@@ -0,0 +1,29 @@
{
modulesPath,
...
}:
{
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot = {
initrd = {
availableKernelModules = [
"ata_piix"
"uhci_hcd"
"xen_blkfront"
"vmw_pvscsi"
];
kernelModules = [ "nvme" ];
};
loader.grub = {
efiSupport = true;
efiInstallAsRemovable = true;
};
tmp.cleanOnBoot = true;
};
zramSwap.enable = true;
}

View File

@@ -17,6 +17,14 @@ in
default = false; default = false;
example = true; example = true;
}; };
isExitNode = lib.mkOption {
default = false;
example = true;
};
useExitNode = lib.mkOption {
default = false;
example = true;
};
restrictSSH = lib.mkOption { restrictSSH = lib.mkOption {
default = true; default = true;
example = true; example = true;
@@ -37,7 +45,8 @@ in
extraUpFlags = [ extraUpFlags = [
"--login-server" "--login-server"
headscale headscale
]; ]
++ (if cfg.isExitNode then [ "--advertise-exit-node" ] else [ ]);
}; };
services.openssh.openFirewall = !cfg.restrictSSH; services.openssh.openFirewall = !cfg.restrictSSH;

24
nix/devshell.nix Normal file
View File

@@ -0,0 +1,24 @@
{ inputs, ... }:
{
imports = [
inputs.devshell.flakeModule
];
perSystem =
{ config, pkgs, ... }:
{
devshells.default = {
commands = [
{
package = config.treefmt.build.wrapper;
help = "Format all files";
}
{
package = pkgs.deploy-rs;
name = "deploy";
help = "Deploy this nix-config to remote hosts";
}
];
};
};
}

60
nix/hosts.nix Normal file
View File

@@ -0,0 +1,60 @@
{
inputs,
...
}:
{
flake =
{ config, lib, ... }:
let
domain = "mesh.vimium.net";
mkDeployNode = hostName: {
hostname = "${hostName}.${domain}";
profiles.system = {
user = "root";
path =
inputs.deploy-rs.lib.${
config.nixosConfigurations.${hostName}.config.system.build.toplevel.system
}.activate.nixos
config.nixosConfigurations.${hostName};
};
};
in
{
nixosConfigurations = lib.pipe ../hosts [
builtins.readDir
(lib.filterAttrs (name: value: value == "directory"))
(lib.mapAttrs (
name: value:
inputs.nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
{
networking = {
inherit domain;
hostName = name;
};
}
../hosts/${name}
];
}
))
];
deploy = {
magicRollback = true;
autoRollback = true;
sshUser = "root";
nodes = lib.genAttrs [
"artemis"
"mail"
"pi"
"skycam"
"vps1"
"vps2"
] mkDeployNode;
};
};
}

View File

@@ -24,9 +24,7 @@ libcamera.overrideAttrs (old: {
./patches/libcamera-no-timeout.patch ./patches/libcamera-no-timeout.patch
]; ];
postPatch = postPatch = old.postPatch + ''
old.postPatch
+ ''
patchShebangs src/py/libcamera patchShebangs src/py/libcamera
''; '';

View File

@@ -0,0 +1,44 @@
{
stdenv,
fetchFromGitHub,
lib,
meson,
ninja,
pkg-config,
vulkan-headers,
vulkan-loader,
wayland-scanner,
wayland,
xorg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vk-hdr-layer";
version = "303e0c69e1d33acd95158d92b1fc652fb5b85399";
src = fetchFromGitHub {
owner = "Zamundaaa";
repo = "VK_hdr_layer";
rev = "303e0c69e1d33acd95158d92b1fc652fb5b85399";
fetchSubmodules = true;
hash = "sha256-NsC44Ifl/fAHvFqP7NLrVZ71Y+x5mBEkv+r43HN5yn4=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
vulkan-headers
vulkan-loader
wayland
wayland-scanner
xorg.libX11
];
meta = {
description = "Vulkan layer utilizing a small color management / HDR protocol for experimentation";
homepage = "https://github.com/Zamundaaa/VK_hdr_layer";
license = lib.licenses.mit;
};
})

View File

@@ -13,5 +13,6 @@
nerd-fonts.terminess-ttf nerd-fonts.terminess-ttf
nerd-fonts.ubuntu-mono nerd-fonts.ubuntu-mono
sf-pro sf-pro
vista-fonts
]; ];
} }

View File

@@ -20,8 +20,7 @@ let
concatMapAttrsStringSep = concatMapAttrsStringSep =
sep: f: attrs: sep: f: attrs:
concatStringsSep sep (attrValues (mapAttrs f attrs)); concatStringsSep sep (attrValues (mapAttrs f attrs));
globalVariables = globalVariables = {
{
_JAVA_AWT_WM_NONREPARENTING = "1"; _JAVA_AWT_WM_NONREPARENTING = "1";
GDK_BACKEND = "wayland"; GDK_BACKEND = "wayland";
MOZ_ENABLE_WAYLAND = "1"; MOZ_ENABLE_WAYLAND = "1";
@@ -111,6 +110,10 @@ in
no_update_news = true; no_update_news = true;
}; };
experimental = {
xx_color_management_v4 = true;
};
decoration = { decoration = {
rounding = 10; rounding = 10;
@@ -161,7 +164,10 @@ in
]; ];
}; };
monitor = "desc:Dell Inc. DELL U3219Q HPTP413, preferred, auto, 1"; monitor = [
"desc:Dell Inc. DELL U3219Q HPTP413, preferred, auto, 1, vrr, 0, bitdepth, 10, cm, hdr"
"desc:LG Electronics LG TV SSCR2, 3840x2160@60, 0x0, 1, vrr, 0, bitdepth, 10, cm, hdr"
];
input = { input = {
kb_layout = "us"; kb_layout = "us";

View File

@@ -42,7 +42,8 @@ in
./common/pass.nix ./common/pass.nix
./common/shell.nix ./common/shell.nix
./common/ssh.nix ./common/ssh.nix
] ++ optional (builtins.pathExists hostFile) hostFile; ]
++ optional (builtins.pathExists hostFile) hostFile;
home = { home = {
username = name; username = name;