26 Commits

Author SHA1 Message Date
2355f9e767 Add floorplan config 2025-01-05 22:06:59 +00:00
f390000e87 Enable 2025-01-05 19:18:22 +00:00
0c08d3e0bf Add pkgs 2025-01-05 19:16:34 +00:00
5fd2649cac Split out home-assistant config 2025-01-05 19:14:34 +00:00
493c4ef294 Don't repeat modules in default_config 2025-01-05 15:11:04 +00:00
66cf91aa78 Add lovelace resources 2025-01-05 14:47:53 +00:00
d056cb0cb1 Fix ha-floorplan overlay 2025-01-05 13:16:51 +00:00
c38d93f36f Extend package set 2025-01-05 12:31:07 +00:00
963e99ec8a Add overlay 2025-01-05 12:25:27 +00:00
2ef90f25c5 Use ha-floorplan 2025-01-05 12:20:10 +00:00
6c7edf43d1 Add ha-floorplan 2025-01-05 12:19:49 +00:00
fe9fe3ec51 Add more lovelace modules 2025-01-05 12:19:15 +00:00
99dd5ec1fe Add missing packages and enable nginx 2025-01-05 11:06:25 +00:00
378f2d9882 Add reverse proxy 2025-01-05 10:58:09 +00:00
f8405bf012 Update components 2025-01-05 01:14:00 +00:00
922e86a408 Fix trusted networks 2025-01-05 00:40:08 +00:00
84cd90325d Add default user to audio group 2025-01-05 00:19:14 +00:00
23c24dc6ad Add more components 2025-01-05 00:18:12 +00:00
0e4ad54430 Downgrade to rpi vendor kernel 6.1.73
All checks were successful
Check flake / build-amd64-linux (push) Successful in 3m11s
2025-01-03 00:12:02 +00:00
0763facbc4 Switch default terminal to Ptyxis
All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m56s
2025-01-02 17:26:17 +00:00
03f14d2cba Bump LICENSE year 2025-01-02 17:14:10 +00:00
5eba7a839f flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 3m38s
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3ffbbdbac0566a0977da3d2657b89cbcfe9a173b?narHash=sha256-As8I%2BebItDKtboWgDXYZSIjGlKeqiLBvjxsQHUmAf1Q%3D' (2024-12-30)
  → 'github:NixOS/nixpkgs/edf04b75c13c2ac0e54df5ec5c543e300f76f1c9?narHash=sha256-tfYRbFhMOnYaM4ippqqid3BaLOXoFNdImrfBfCp4zn0%3D' (2024-12-31)
2025-01-02 17:08:09 +00:00
b6f46aaa74 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 4m32s
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/92f4890bd150fc9d97b61b3583680c0524a8cafe?narHash=sha256-A9PxLienMYJ/WUvqFie9qXrNC2MeRRYw7TG/q7DRjZg%3D' (2024-12-23)
  → 'github:rafaelmardojai/firefox-gnome-theme/097c98cb4a7568f6f83a43e37950c08b575dd126?narHash=sha256-U9WjPisByrvw8Kt6Ufg9kLrvg7uHPsFSyG93GR3I1iE%3D' (2024-12-29)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d49da4c08359e3c39c4e27c74ac7ac9b70085966?narHash=sha256-MgdXpeX2GuJbtlBrH9EdsUeWl/yXEubyvxM1G%2ByO4Ak%3D' (2024-12-27)
  → 'github:NixOS/nixpkgs/3ffbbdbac0566a0977da3d2657b89cbcfe9a173b?narHash=sha256-As8I%2BebItDKtboWgDXYZSIjGlKeqiLBvjxsQHUmAf1Q%3D' (2024-12-30)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/634fd46801442d760e09493a794c4f15db2d0cbb?narHash=sha256-NYVcA06%2BblsLG6wpAbSPTCyLvxD/92Hy4vlY9WxFI1M%3D' (2024-12-27)
  → 'github:NixOS/nixpkgs/88195a94f390381c6afcdaa933c2f6ff93959cb4?narHash=sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs%3D' (2024-12-29)
2024-12-31 18:11:00 +00:00
8e291e7af5 Remove pano extension
All checks were successful
Check flake / build-amd64-linux (push) Successful in 10m55s
Due to: https://github.com/NixOS/nixpkgs/issues/369438
2024-12-31 18:08:16 +00:00
34a3d27cf9 Bump mutter overlay 2024-12-31 18:08:15 +00:00
f268e51c91 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/2ee76c861af3b895b3b104bae04777b61397485b?narHash=sha256-hk0roBX10j/hospoWIJIJj3i2skd7Oml6yKQBx7mTFk%3D' (2024-12-20)
  → 'github:nix-community/disko/84a5b93637cc16cbfcc61b6e1684d626df61eb21?narHash=sha256-2dt1nOe9zf9pDkf5Kn7FUFyPRo581s0n90jxYXJ94l0%3D' (2024-12-29)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/6cbc3b6eceb4195edab67daecc8daa7347c84c27?narHash=sha256-8yoUFYBtD86J2ddq1yMU0oCILp9u35/dmYi9iwiysi8%3D' (2024-12-17)
  → 'github:rafaelmardojai/firefox-gnome-theme/92f4890bd150fc9d97b61b3583680c0524a8cafe?narHash=sha256-A9PxLienMYJ/WUvqFie9qXrNC2MeRRYw7TG/q7DRjZg%3D' (2024-12-23)
• Updated input 'home-manager':
    'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f?narHash=sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw%3D' (2024-12-16)
  → 'github:nix-community/home-manager/613691f285dad87694c2ba1c9e6298d04736292d?narHash=sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM%3D' (2024-12-28)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/e8516a23524cc9083f5a02a8d64d14770e4c7c09?narHash=sha256-04xesW7HITdF5WUmNM39WD4tkEERk3Ez2W1nNvdIvIw%3D' (2024-12-22)
  → 'github:NixOS/nixos-hardware/7c674c6734f61157e321db595dbfcd8523e04e19?narHash=sha256-e5IOgjQf0SZcFCEV/gMGrsI0gCJyqOKShBQU0iiM3Kg%3D' (2024-12-28)
• Updated input 'nixos-mailserver':
    'gitlab:simple-nixos-mailserver/nixos-mailserver/c43d8c4a3ce84a7bebd110b06e69365484db6208?narHash=sha256-a8zkti1QM5Oxkdfnzr/NjrFlyqI36/kYV/X8G1jOmB4%3D' (2024-12-16)
  → 'gitlab:simple-nixos-mailserver/nixos-mailserver/dc0569066e79ae96184541da6fa28f35a33fbf7b?narHash=sha256-zgR8NTiNDPVNrfaiOlB9yHSmCqFDo7Ks2IavaJ2dZo4%3D' (2024-12-26)
• Removed input 'nixos-mailserver/nixpkgs-24_05'
• Added input 'nixos-mailserver/nixpkgs-24_11':
    'github:NixOS/nixpkgs/314e12ba369ccdb9b352a4db26ff419f7c49fa84?narHash=sha256-5fNndbndxSx5d%2BC/D0p/VF32xDiJCJzyOqorOYW4JEo%3D' (2024-12-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1c6e20d41d6a9c1d737945962160e8571df55daa?narHash=sha256-GIMyMt1pkkoXdCq9un859bX6YQZ/iYtukb9R5luazLM%3D' (2024-12-20)
  → 'github:NixOS/nixpkgs/d49da4c08359e3c39c4e27c74ac7ac9b70085966?narHash=sha256-MgdXpeX2GuJbtlBrH9EdsUeWl/yXEubyvxM1G%2ByO4Ak%3D' (2024-12-27)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/d70bd19e0a38ad4790d3913bf08fcbfc9eeca507?narHash=sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ%3D' (2024-12-19)
  → 'github:NixOS/nixpkgs/634fd46801442d760e09493a794c4f15db2d0cbb?narHash=sha256-NYVcA06%2BblsLG6wpAbSPTCyLvxD/92Hy4vlY9WxFI1M%3D' (2024-12-27)
• Updated input 'nixvim':
    'github:nix-community/nixvim/334947672f1eb05488e69657b9c412230bd658b4?narHash=sha256-uap4LcvjpTz5WTgDfQYtL3QCpGmtee7DuD5mB8AIiLw%3D' (2024-12-21)
  → 'github:nix-community/nixvim/c8fa65c6ac35dba157de0873d645ab398c370123?narHash=sha256-3co5A7PUEN%2BBm7b3/6BxFsmvplg3XYUNR2MzWnheZoE%3D' (2024-12-28)
• Updated input 'nixvim/git-hooks':
    'github:cachix/git-hooks.nix/0ddd26d0925f618c3a5d85a4fa5eb1e23a09491d?narHash=sha256-nzE5UbJ41aPEKf8R2ZFYtLkqPmF7EIUbNEdHMBLg0Ig%3D' (2024-12-17)
  → 'github:cachix/git-hooks.nix/f0f0dc4920a903c3e08f5bdb9246bb572fcae498?narHash=sha256-ulZN7ps8nBV31SE%2BdwkDvKIzvN6hroRY8sYOT0w%2BE28%3D' (2024-12-21)
• Updated input 'nixvim/home-manager':
    'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f?narHash=sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw%3D' (2024-12-16)
  → 'github:nix-community/home-manager/613691f285dad87694c2ba1c9e6298d04736292d?narHash=sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM%3D' (2024-12-28)
• Updated input 'nixvim/nix-darwin':
    'github:lnl7/nix-darwin/a35b08d09efda83625bef267eb24347b446c80b8?narHash=sha256-sQJAxY1TYWD1UyibN/FnN97paTFuwBw3Vp3DNCyKsMk%3D' (2024-12-07)
  → 'github:lnl7/nix-darwin/bc03f7818771a75716966ce8c23110b715eff2aa?narHash=sha256-MoUAbmXz9TEr7zlKDRO56DBJHe30%2B7B5X7nhXm%2BVpc8%3D' (2024-12-26)
• Updated input 'nixvim/treefmt-nix':
    'github:numtide/treefmt-nix/65712f5af67234dad91a5a4baee986a8b62dbf8f?narHash=sha256-MMi74%2BWckoyEWBRcg/oaGRvXC9BVVxDZNRMpL%2B72wBI%3D' (2024-12-20)
  → 'github:numtide/treefmt-nix/9e09d30a644c57257715902efbb3adc56c79cf28?narHash=sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q%2BT0BVeZE%3D' (2024-12-25)
• Updated input 'plasma-manager':
    'github:nix-community/plasma-manager/7e2010249529931a3848054d5ff0dbf24675ab68?narHash=sha256-h2BDIDKiqgMpA6E%2Bmu0RgMGy3FeM6k%2BEuJ9xgOQ1%2Bzw%3D' (2024-12-10)
  → 'github:nix-community/plasma-manager/d16bbded0ae452bc088489e7dca3ef58d8d1830b?narHash=sha256-fWUd9kyXdepphJ7cCzOsuSo7l0kbFCkUqfgKqZyFZzE%3D' (2024-12-24)
2024-12-29 17:45:31 +00:00
14 changed files with 647 additions and 168 deletions

View File

@ -1,4 +1,4 @@
Copyright (C) 2023 by Jordan Holt <jordan@vimium.com> Copyright (C) 2025 by Jordan Holt <jordan@vimium.com>
Permission to use, copy, modify, and/or distribute this software for any Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted. purpose with or without fee is hereby granted.

View File

@ -6,8 +6,8 @@ System and user configuration for NixOS-based systems.
|-|-| |-|-|
| **Shell:** | zsh | | **Shell:** | zsh |
| **DE:** | GNOME | | **DE:** | GNOME |
| **Theme:** | adwaita | | **Theme:** | Adwaita |
| **Terminal:** | Console | | **Terminal:** | Ptyxis |
## 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

90
flake.lock generated
View File

@ -107,11 +107,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734701201, "lastModified": 1735468753,
"narHash": "sha256-hk0roBX10j/hospoWIJIJj3i2skd7Oml6yKQBx7mTFk=", "narHash": "sha256-2dt1nOe9zf9pDkf5Kn7FUFyPRo581s0n90jxYXJ94l0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "2ee76c861af3b895b3b104bae04777b61397485b", "rev": "84a5b93637cc16cbfcc61b6e1684d626df61eb21",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -123,11 +123,11 @@
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734444121, "lastModified": 1735511798,
"narHash": "sha256-8yoUFYBtD86J2ddq1yMU0oCILp9u35/dmYi9iwiysi8=", "narHash": "sha256-U9WjPisByrvw8Kt6Ufg9kLrvg7uHPsFSyG93GR3I1iE=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "6cbc3b6eceb4195edab67daecc8daa7347c84c27", "rev": "097c98cb4a7568f6f83a43e37950c08b575dd126",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -238,11 +238,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734425854, "lastModified": 1734797603,
"narHash": "sha256-nzE5UbJ41aPEKf8R2ZFYtLkqPmF7EIUbNEdHMBLg0Ig=", "narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "0ddd26d0925f618c3a5d85a4fa5eb1e23a09491d", "rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -318,11 +318,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734366194, "lastModified": 1735344290,
"narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", "narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", "rev": "613691f285dad87694c2ba1c9e6298d04736292d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -340,11 +340,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734366194, "lastModified": 1735344290,
"narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", "narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", "rev": "613691f285dad87694c2ba1c9e6298d04736292d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -406,11 +406,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1733570843, "lastModified": 1735218083,
"narHash": "sha256-sQJAxY1TYWD1UyibN/FnN97paTFuwBw3Vp3DNCyKsMk=", "narHash": "sha256-MoUAbmXz9TEr7zlKDRO56DBJHe30+7B5X7nhXm+Vpc8=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "a35b08d09efda83625bef267eb24347b446c80b8", "rev": "bc03f7818771a75716966ce8c23110b715eff2aa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -421,11 +421,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1734862644, "lastModified": 1735388221,
"narHash": "sha256-04xesW7HITdF5WUmNM39WD4tkEERk3Ez2W1nNvdIvIw=", "narHash": "sha256-e5IOgjQf0SZcFCEV/gMGrsI0gCJyqOKShBQU0iiM3Kg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "e8516a23524cc9083f5a02a8d64d14770e4c7c09", "rev": "7c674c6734f61157e321db595dbfcd8523e04e19",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -441,14 +441,14 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-24_05": "nixpkgs-24_05" "nixpkgs-24_11": "nixpkgs-24_11"
}, },
"locked": { "locked": {
"lastModified": 1734370678, "lastModified": 1735230346,
"narHash": "sha256-a8zkti1QM5Oxkdfnzr/NjrFlyqI36/kYV/X8G1jOmB4=", "narHash": "sha256-zgR8NTiNDPVNrfaiOlB9yHSmCqFDo7Ks2IavaJ2dZo4=",
"owner": "simple-nixos-mailserver", "owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver", "repo": "nixos-mailserver",
"rev": "c43d8c4a3ce84a7bebd110b06e69365484db6208", "rev": "dc0569066e79ae96184541da6fa28f35a33fbf7b",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -473,28 +473,28 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-24_05": { "nixpkgs-24_11": {
"locked": { "locked": {
"lastModified": 1731797254, "lastModified": 1734083684,
"narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=", "narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e8c38b73aeb218e27163376a2d617e61a2ad9b59", "rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
"ref": "nixos-24.05", "ref": "nixos-24.11",
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1734649271, "lastModified": 1735471104,
"narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -521,11 +521,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1734737257, "lastModified": 1735669367,
"narHash": "sha256-GIMyMt1pkkoXdCq9un859bX6YQZ/iYtukb9R5luazLM=", "narHash": "sha256-tfYRbFhMOnYaM4ippqqid3BaLOXoFNdImrfBfCp4zn0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1c6e20d41d6a9c1d737945962160e8571df55daa", "rev": "edf04b75c13c2ac0e54df5ec5c543e300f76f1c9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -549,11 +549,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1734784342, "lastModified": 1735389157,
"narHash": "sha256-uap4LcvjpTz5WTgDfQYtL3QCpGmtee7DuD5mB8AIiLw=", "narHash": "sha256-3co5A7PUEN+Bm7b3/6BxFsmvplg3XYUNR2MzWnheZoE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "334947672f1eb05488e69657b9c412230bd658b4", "rev": "c8fa65c6ac35dba157de0873d645ab398c370123",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -596,11 +596,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1733858086, "lastModified": 1735049224,
"narHash": "sha256-h2BDIDKiqgMpA6E+mu0RgMGy3FeM6k+EuJ9xgOQ1+zw=", "narHash": "sha256-fWUd9kyXdepphJ7cCzOsuSo7l0kbFCkUqfgKqZyFZzE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "plasma-manager", "repo": "plasma-manager",
"rev": "7e2010249529931a3848054d5ff0dbf24675ab68", "rev": "d16bbded0ae452bc088489e7dca3ef58d8d1830b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -713,11 +713,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734704479, "lastModified": 1735135567,
"narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=", "narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f", "rev": "9e09d30a644c57257715902efbb3adc56c79cf28",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -108,111 +108,6 @@
pulse.enable = true; pulse.enable = true;
}; };
age.secrets."files/services/home-assistant/secrets.yaml" = {
file = "${self.inputs.secrets}/files/services/home-assistant/secrets.yaml.age";
path = "${config.services.home-assistant.configDir}/secrets.yaml";
owner = "hass";
group = "hass";
};
services.home-assistant = {
enable = true;
extraComponents = [
"api"
"alert"
"auth"
"backup"
"command_line"
"default_config"
"homekit_controller"
"homekit"
"http"
"icloud"
"jellyfin"
"metoffice"
"mqtt"
"onkyo"
"ping"
"proximity"
"radio_browser"
"scrape"
"sensor"
"system_health"
];
config = {
default_config = {};
backup = {};
homeassistant = {
name = "Home";
latitude = "!secret latitude";
longitude = "!secret longitude";
country = "GB";
temperature_unit = "C";
time_zone = config.time.timeZone;
unit_system = "metric";
};
mqtt = { };
scene = "!include scenes.yaml";
automation = "!include automations.yaml";
system_health = { };
recorder = {
purge_keep_days = 365;
};
};
};
services.mosquitto = {
enable = true;
listeners = [{
acl = [ "pattern readwrite #" ];
omitPasswordAuth = true;
port = 1883;
settings = {
allow_anonymous = true;
};
}];
};
age.secrets."files/services/zigbee2mqtt/secret.yaml" = {
file = "${self.inputs.secrets}/files/services/zigbee2mqtt/secret.yaml.age";
path = "${config.services.zigbee2mqtt.dataDir}/secret.yaml";
owner = "zigbee2mqtt";
group = "zigbee2mqtt";
};
services.zigbee2mqtt = {
package = pkgs.unstable.zigbee2mqtt;
enable = true;
dataDir = "/var/lib/zigbee2mqtt";
settings = {
homeassistant = lib.optionalAttrs config.services.home-assistant.enable {
discovery_topic = "homeassistant";
status_topic = "hass/status";
legacy_entity_attributes = true;
legacy_triggers = true;
};
availability = true;
frontend = true;
device_options = {
retain = true;
};
serial = {
port = "/dev/serial/by-id/usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus_0001-if00-port0";
};
advanced = {
channel = 20;
network_key = "!secret.yaml network_key";
pan_id = 13001;
ext_pan_id = [ 79 1 73 47 250 136 124 222 ];
transmit_power = 20;
};
mqtt = {
version = 5;
server = "mqtt://localhost:1883";
};
};
};
modules = { modules = {
networking = { networking = {
wireless = { wireless = {
@ -223,12 +118,9 @@
services = { services = {
borgmatic = { borgmatic = {
enable = true; enable = true;
directories = [
"/var/lib/mosquitto"
"/var/lib/zigbee2mqtt"
];
repoPath = "ssh://qcw86s11@qcw86s11.repo.borgbase.com/./repo"; repoPath = "ssh://qcw86s11@qcw86s11.repo.borgbase.com/./repo";
}; };
home-assistant.enable = true;
}; };
}; };

View File

@ -1,4 +1,4 @@
{ config, lib, pkgs, modulesPath, ... }: { lib, pkgs, modulesPath, ... }:
{ {
imports = [ imports = [
@ -6,6 +6,40 @@
]; ];
boot = { boot = {
kernelPackages = let
version = "6.1.73";
tag = "stable_20240124";
srcHash = "sha256-P4ExzxWqZj+9FZr9U2tmh7rfs/3+iHEv0m74PCoXVuM=";
in pkgs.linuxPackagesFor (pkgs.linux_rpi4.override {
argsOverride = {
src = pkgs.fetchFromGitHub {
owner = "raspberrypi";
repo = "linux";
rev = tag;
hash = srcHash;
};
version = version;
modDirVersion = version;
structuredExtraConfig = {};
kernelPatches = [
{
name = "drm-rp1-depends-on-instead-of-select-MFD_RP1.patch";
patch = pkgs.fetchpatch {
url = "https://github.com/peat-psuwit/rpi-linux/commit/6de0bb51929cd3ad4fa27b2a421a2af12e6468f5.patch";
hash = "sha256-9pHcbgWTiztu48SBaLPVroUnxnXMKeCGt5vEo9V8WGw=";
};
}
{
name = "iommu-bcm2712-don-t-allow-building-as-module.patch";
patch = pkgs.fetchpatch {
url = "https://github.com/peat-psuwit/rpi-linux/commit/693a5e69bddbcbe1d1b796ebc7581c3597685b1b.patch";
hash = "sha256-8BYYQDM5By8cTk48ASYKJhGVQnZBIK4PXtV70UtfS+A=";
};
}
];
};
});
# Stop ZFS kernel being built # Stop ZFS kernel being built
supportedFilesystems = lib.mkForce [ "btrfs" "cifs" "f2fs" "jfs" "ntfs" "reiserfs" "vfat" "xfs" ]; supportedFilesystems = lib.mkForce [ "btrfs" "cifs" "f2fs" "jfs" "ntfs" "reiserfs" "vfat" "xfs" ];
tmp.cleanOnBoot = true; tmp.cleanOnBoot = true;
@ -14,9 +48,24 @@
# Fix missing modules # Fix missing modules
# https://github.com/NixOS/nixpkgs/issues/154163 # https://github.com/NixOS/nixpkgs/issues/154163
nixpkgs.overlays = [ nixpkgs.overlays = [
(final: super: { (final: prev: {
makeModulesClosure = x: makeModulesClosure = x:
super.makeModulesClosure (x // { allowMissing = true; }); prev.makeModulesClosure (x // { allowMissing = true; });
})
(final: prev: {
raspberrypifw = let
version = "1.20240529";
srcHash = "sha256-KsCo7ZG6vKstxRyFljZtbQvnDSqiAPdUza32xTY/tlA=";
in pkgs.raspberrypifw.override {
argsOverride = {
src = prev.fetchFromGitHub {
owner = "raspberrypi";
repo = "firmware";
rev = "${version}";
hash = srcHash;
};
};
};
}) })
]; ];

View File

@ -43,6 +43,7 @@
./services/gitea ./services/gitea
./services/gitea-runner ./services/gitea-runner
./services/headscale ./services/headscale
./services/home-assistant
./services/mail ./services/mail
./services/matrix ./services/matrix
./services/nginx ./services/nginx

View File

@ -24,6 +24,11 @@ in {
"io/github/celluloid-player/celluloid" = { "io/github/celluloid-player/celluloid" = {
draggable-video-area-enable = true; draggable-video-area-enable = true;
}; };
"org/gnome/Console" = {
font-scale = 1.4;
use-system-font = false;
custom-font = "ComicShannsMono Nerd Font 10";
};
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
color-scheme = "prefer-dark"; color-scheme = "prefer-dark";
cursor-theme = "Adwaita"; cursor-theme = "Adwaita";
@ -61,6 +66,11 @@ in {
edge-tiling = true; edge-tiling = true;
experimental-features = [ "scale-monitor-framebuffer" ]; experimental-features = [ "scale-monitor-framebuffer" ];
}; };
"org/gnome/Ptyxis" = {
use-system-font = false;
font-name = "ComicShannsMono Nerd Font 11";
audible-bell = false;
};
"org/gnome/settings-daemon/plugins/media-keys" = { "org/gnome/settings-daemon/plugins/media-keys" = {
volume-up = [ volume-up = [
"<Shift>F12" "<Shift>F12"
@ -108,6 +118,7 @@ in {
favorite-apps = [ favorite-apps = [
"firefox.desktop" "firefox.desktop"
"org.gnome.Nautilus.desktop" "org.gnome.Nautilus.desktop"
"org.gnome.Ptyxis.desktop"
]; ];
}; };
"org/gnome/shell/extensions/blur-my-shell/panel" = { "org/gnome/shell/extensions/blur-my-shell/panel" = {
@ -181,11 +192,6 @@ in {
outer-gaps = 8; outer-gaps = 8;
enable-blur-snap-assistant = true; enable-blur-snap-assistant = true;
}; };
"org/gnome/Console" = {
font-scale = 1.4;
use-system-font = false;
custom-font = "ComicShannsMono Nerd Font 10";
};
"org/gtk/settings/file-chooser" = { "org/gtk/settings/file-chooser" = {
show-hidden = true; show-hidden = true;
sort-directories-first = true; sort-directories-first = true;
@ -228,6 +234,7 @@ in {
# mission-center # mission-center
mousam mousam
newsflash newsflash
ptyxis
# schemes # schemes
shortwave shortwave
sysprof sysprof
@ -263,7 +270,7 @@ in {
gnomeExtensions.just-perfection gnomeExtensions.just-perfection
gnomeExtensions.media-controls gnomeExtensions.media-controls
gnomeExtensions.mouse-follows-focus gnomeExtensions.mouse-follows-focus
gnomeExtensions.pano # gnomeExtensions.pano (disabled due to: https://github.com/NixOS/nixpkgs/issues/369438)
gnomeExtensions.paperwm gnomeExtensions.paperwm
gnomeExtensions.pip-on-top gnomeExtensions.pip-on-top
gnomeExtensions.search-light gnomeExtensions.search-light

View File

@ -36,7 +36,7 @@ with lib;
in { in {
inherit name; inherit name;
isNormalUser = true; isNormalUser = true;
extraGroups = [ "networkmanager" "wheel" "lxd" ]; extraGroups = [ "audio" "networkmanager" "wheel" "lxd" ];
description = "Jordan Holt"; description = "Jordan Holt";
useDefaultShell = true; useDefaultShell = true;
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [

View File

@ -0,0 +1,298 @@
{ config, lib, pkgs, self, ... }:
let
cfg = config.modules.services.home-assistant;
in {
imports = [
./floorplan/default.nix
./mqtt.nix
];
options.modules.services.home-assistant.enable = lib.mkEnableOption "home-assistant";
config = lib.mkIf cfg.enable {
age.secrets."files/services/home-assistant/secrets.yaml" = {
file = "${self.inputs.secrets}/files/services/home-assistant/secrets.yaml.age";
path = "${config.services.home-assistant.configDir}/secrets.yaml";
owner = "hass";
group = "hass";
};
services.home-assistant = {
enable = true;
config = {
automation = "!include automations.yaml";
backup = { };
binary_sensor = [ ];
default_config = { };
http = {
server_host = "::1";
trusted_proxies = [ "::1" ];
use_x_forwarded_for = true;
};
ffmpeg = { };
homeassistant = {
name = "Home";
latitude = "!secret latitude";
longitude = "!secret longitude";
country = "GB";
temperature_unit = "C";
time_zone = config.time.timeZone;
unit_system = "metric";
auth_providers = [
{
type = "trusted_networks";
trusted_networks = [
"100.64.0.0/10"
"127.0.0.1"
];
allow_bypass_login = true;
}
{
type = "homeassistant";
}
];
};
logger = {
default = "info";
logs = { };
};
lovelace = {
resources = [
{
url = "/local/nixos-lovelace-modulels/mushroom.js";
type = "module";
}
];
};
media_player = [ ];
mobile_app = { };
onkyo = { };
open_meteo = { };
recorder = {
purge_keep_days = 365;
};
scene = "!include scenes.yaml";
script = "!include scripts.yaml";
sensor = [ ];
system_health = { };
zeroconf = { };
};
configDir = "/etc/home-assistant";
extraComponents = [
"air_quality"
"airly"
"alert"
"api"
"application_credentials"
"asuswrt"
"auth"
"automation"
"bayesian"
"binary_sensor"
# "blackbird"
"blueprint"
"bluetooth_adapters"
"bluetooth_le_tracker"
"button"
"calendar"
"camera"
"cast"
"cert_expiry"
"climate"
"co2signal"
"color_extractor"
"command_line"
"compensation"
"configurator"
"counter"
"cover"
"cpuspeed"
"default_config"
"demo"
"derivative"
"device_automation"
"device_sun_light_trigger"
"device_tracker"
"dlna_dmr"
"dlna_dms"
"dnsip"
"esphome"
"fail2ban"
"fan"
"feedreader"
"ffmpeg"
"file"
"file_upload"
"filesize"
"folder"
"folder_watcher"
"forecast_solar"
"frontend"
"gdacs"
"generic"
"generic_hygrostat"
"generic_thermostat"
"geo_json_events"
"geo_location"
"geo_rss_events"
"github"
"group"
"hardware"
"hdmi_cec"
"history_stats"
"homeassistant"
"homekit"
"homekit_controller"
"html5"
"http"
"humidifier"
"icloud"
"image_processing"
"input_boolean"
"input_button"
"input_datetime"
"input_number"
"input_select"
"input_text"
"integration"
"ios"
"jellyfin"
"light"
"local_calendar"
"local_file"
"local_ip"
"local_todo"
"lock"
"logentries"
"logger"
"lovelace"
"manual"
"manual_mqtt"
"matter"
"media_player"
"min_max"
"mjpeg"
"modern_forms"
"mold_indicator"
"moon"
"mysensors"
"network"
"nmap_tracker"
"notify"
"number"
"onboarding"
"onkyo"
"panel_custom"
"persistent_notification"
"person"
"ping"
"plant"
"prometheus"
"proximity"
"push"
"proximity"
"python_script"
"radio_browser"
"random"
"recorder"
"remote"
"repairs"
"rest"
"rest_command"
"rss_feed_template"
"scene"
"schedule"
"scrape"
"script"
"search"
"season"
"select"
"sense"
"sensor"
"sensorpush"
"shell_command"
"shopping_list"
"siren"
"smtp"
"snmp"
"sql"
"statistics"
"sun"
"switch"
"switch_as_x"
"system_health"
"system_log"
"systemmonitor"
"tag"
"tailscale"
"tcp"
"template"
"text"
"thread"
"threshold"
"time_date"
"timer"
"tod"
"todo"
"tomorrowio"
"trend"
"universal"
"upb"
"update"
"upnp"
"uptime"
"utility_meter"
"vacuum"
"vlc"
"vlc_telnet"
"wake_on_lan"
"water_heater"
"weather"
"websocket_api"
"wled"
"workday"
"worldclock"
"zone"
];
extraPackages = python3Packages: with python3Packages; [
onkyo-eiscp
zeroconf
];
customLovelaceModules = with pkgs.home-assistant-custom-lovelace-modules; [
bubble-card
button-card
mushroom
sankey-chart
universal-remote-card
# zigbee2mqtt-networkmap
];
};
systemd.services.home-assistant.preStart = lib.mkForce "";
modules.services.borgmatic.directories = [
config.services.home-assistant.configDir
];
services.nginx = {
enable = true;
virtualHosts."home.mesh.vimium.net" = {
forceSSL = false;
extraConfig = ''
proxy_buffering off;
'';
locations."/" = {
proxyPass = "http://[::1]:8123";
proxyWebsockets = true;
};
};
};
};
}

View File

@ -0,0 +1,92 @@
{ config, lib, pkgs, ... }:
let
cfg = config.modules.services.home-assistant;
in {
config = lib.mkIf cfg.enable {
services.home-assistant = {
config.lovelace.resources = [{
url = "/local/nixos-lovelace-modules/floorplan.js";
type = "module";
}];
customLovelaceModules = [
pkgs.ha-floorplan
];
};
environment.etc."home-assistant/www/floorplan/style.css".source = ./style.css;
environment.etc."home-assistant/www/floorplan/config.yaml".text = builtins.toJSON {
image = {
location = "/local/floorplan/beetham.svg";
cache = false;
};
stylesheet = {
location = "/local/floorplan/style.css";
cache = false;
};
defaults = {
hover_action = "hover-info";
hold_action = "toggle";
tap_action = "more-info";
};
rules = [
{
name = "Rooms";
entities = [
{
entity = "light.bedroom_lamps";
element = "area.bedroom";
}
{
entity = "light.hallway_spots";
element = "area.hallway";
}
{
entity = "light.living_room_lamps";
element = "area.livingroom";
}
{
entity = "light.office_lamps";
element = "area.office";
}
];
tap_action = "light.toggle";
state_action = {
service = "floorplan.class_set";
service_data = ''
if (entity.state === "on") {
return "light-on";
}
return "light-off";
'';
};
}
{
name = "Temperature";
entities = [
"sensor.motion_sensor_temperature"
];
state_action = [
{
service = "floorplan.text_set";
service_data = ''
if (!isNaN(entity.state)) {
return Math.round(entity.state * 10) / 10 + "°";
}
return "Unknown";
'';
}
{
service = "floorplan.class_set";
service_data = {
class = "static-temp";
};
}
];
}
];
};
};
}

View File

@ -0,0 +1,27 @@
#floorplan {
padding: 10px;
}
svg, svg * {
vector-effect: non-scaling-stroke !important;
pointer-events: all !important;
}
path[id*="area."].light-on {
opacity: 0 !important;
}
path[id*="area."] {
opacity: 0.5 !important;
transition: opacity .25s;
-moz-transition: opacity .25s;
-webkit-transition: opacity .25s;
}
svg tspan {
fill: var(--primary-text-color);
}
.static-temp, .static-temp tspan {
fill: #ffffff;
}

View File

@ -0,0 +1,75 @@
{ config, lib, pkgs, self, ... }:
let
cfg = config.modules.services.home-assistant;
in {
config = lib.mkIf cfg.enable {
services.mosquitto = {
enable = true;
listeners = [{
acl = [ "pattern readwrite #" ];
omitPasswordAuth = true;
port = 1883;
settings = {
allow_anonymous = true;
};
}];
};
age.secrets."files/services/zigbee2mqtt/secret.yaml" = {
file = "${self.inputs.secrets}/files/services/zigbee2mqtt/secret.yaml.age";
path = "${config.services.zigbee2mqtt.dataDir}/secret.yaml";
owner = "zigbee2mqtt";
group = "zigbee2mqtt";
};
services.zigbee2mqtt = {
package = pkgs.unstable.zigbee2mqtt;
enable = true;
dataDir = "/var/lib/zigbee2mqtt";
settings = {
homeassistant = lib.optionalAttrs config.services.home-assistant.enable {
discovery_topic = "homeassistant";
status_topic = "hass/status";
legacy_entity_attributes = true;
legacy_triggers = true;
};
availability = true;
frontend = true;
device_options = {
retain = true;
};
serial = {
port = "/dev/serial/by-id/usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus_0001-if00-port0";
};
advanced = {
channel = 20;
network_key = "!secret.yaml network_key";
pan_id = 13001;
ext_pan_id = [ 79 1 73 47 250 136 124 222 ];
transmit_power = 20;
};
mqtt = {
version = 5;
server = "mqtt://localhost:1883";
};
};
};
modules.services.borgmatic.directories = [
config.services.mosquitto.dataDir
config.services.zigbee2mqtt.dataDir
];
services.home-assistant = {
config.mqtt = {};
extraComponents = [
"mqtt"
"mqtt_eventstream"
"mqtt_json"
"mqtt_room"
"mqtt_statestream"
];
};
};
}

View File

@ -9,7 +9,7 @@ final: prev:
mutter = prev.mutter.overrideAttrs (attrs: { mutter = prev.mutter.overrideAttrs (attrs: {
src = prev.fetchurl { src = prev.fetchurl {
url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-47/mutter-triple-buffering-v4-47.tar.gz"; url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-47/mutter-triple-buffering-v4-47.tar.gz";
sha256 = "U5YPJ3kfTMZWhpwsKpGcw02g+i7k+cPQdDjOYkvpwTM="; sha256 = "oeykTJRcG/SY83U8RYnyFFZ8zKqoyXvtbaS2f/s503U=";
}; };
postPatch = '' postPatch = ''

View File

@ -0,0 +1,38 @@
{
lib,
buildNpmPackage,
fetchFromGitHub
}:
buildNpmPackage rec {
pname = "floorplan";
version = "1.0.44";
src = fetchFromGitHub {
owner = "ExperienceLovelace";
repo = "ha-floorplan";
rev = "refs/tags/${version}";
hash = "sha256-ajEA47H9nFXVcuvhwkDsxc5YYQWMsUXqHQ3t6tuAaxc=";
};
npmDepsHash = "sha256-/6H3XMraD7/usZBwmQaCDpV2n1Eed+U+G0f2YnjyWgk=";
installPhase = ''
runHook preInstall
mkdir $out
cp -R dist/* $out/
runHook postInstall
'';
meta = {
description = "Floorplan for Home Assistant";
longDescription = ''
Bring new life to Home Assistant. By mapping entities to a SVG-object,
you're able to control devices, show states, calling services - and much
more. Add custom styling on top, to visualize whatever you can think of.
Your imagination just became the new limit.
'';
homepage = "https://github.com/ExperienceLovelace/ha-floorplan";
license = lib.licenses.asl20;
};
}