Compare commits
48 Commits
fd8adc2b21
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
234dfcf3ca
|
|||
|
9e0b78cc3d
|
|||
|
9246c8bf0f
|
|||
|
6a2f51a874
|
|||
|
b93a73f24d
|
|||
|
009bec8774
|
|||
|
36ff8d03db
|
|||
|
db5b3adc43
|
|||
|
846a14e2f7
|
|||
|
355ef79d9f
|
|||
|
76ab42af49
|
|||
|
f1d05a0203
|
|||
|
6f9360cb76
|
|||
|
bdbaba1ffa
|
|||
|
e0b87bfa56
|
|||
|
d739473f05
|
|||
|
b6a3b1d9fc
|
|||
|
1b4cbf9b71
|
|||
|
0452a675c0
|
|||
|
b64671395e
|
|||
|
db609d40fa
|
|||
|
1fadbc491e
|
|||
|
09f1511f97
|
|||
|
d71ffd36ee
|
|||
|
172b4269d1
|
|||
|
fbd308509d
|
|||
|
0e249d90c8
|
|||
|
bc38372e69
|
|||
|
43df6a77e7
|
|||
|
ed5755678f
|
|||
|
eb4001872d
|
|||
|
a2e0adead8
|
|||
|
f4297f7bac
|
|||
|
69960cd858
|
|||
|
3723baa208
|
|||
|
278c4d8dcc
|
|||
|
2a49357357
|
|||
|
d570395dc4
|
|||
|
af304e3efe
|
|||
|
5af4dc4ac7
|
|||
|
614b22f85a
|
|||
|
e8d8581b9d
|
|||
|
cbaa4d1ca8
|
|||
|
b457eff25a
|
|||
|
50e5cef6aa
|
|||
|
212058a970
|
|||
|
5d86382303
|
|||
|
ce79503689
|
@@ -5,9 +5,9 @@ System and user configuration for NixOS-based systems.
|
||||
| | |
|
||||
|-|-|
|
||||
| **Shell:** | zsh |
|
||||
| **DE:** | GNOME |
|
||||
| **WM:** | Hyprland |
|
||||
| **Theme:** | Adwaita |
|
||||
| **Terminal:** | Ghostty |
|
||||
| **Terminal:** | kitty |
|
||||
|
||||
## Provisioning a new host
|
||||
|
||||
|
||||
332
flake.lock
generated
332
flake.lock
generated
@@ -12,11 +12,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754433428,
|
||||
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
|
||||
"lastModified": 1762618334,
|
||||
"narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
|
||||
"rev": "fcdea223397448d35d9b31f798479227e80183f6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -71,11 +71,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759499898,
|
||||
"narHash": "sha256-UNzYHLWfkSzLHDep5Ckb5tXc0fdxwPIrT+MY4kpQttM=",
|
||||
"lastModified": 1762356719,
|
||||
"narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "655e067f96fd44b3f5685e17f566b0e4d535d798",
|
||||
"rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -131,11 +131,11 @@
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756719547,
|
||||
"narHash": "sha256-N9gBKUmjwRKPxAafXEk1EGadfk2qDZPBQp4vXWPHINQ=",
|
||||
"lastModified": 1762286984,
|
||||
"narHash": "sha256-9I2H9x5We6Pl+DBYHjR1s3UT8wgwcpAH03kn9CqtdQc=",
|
||||
"owner": "serokell",
|
||||
"repo": "deploy-rs",
|
||||
"rev": "125ae9e3ecf62fb2c0fd4f2d894eb971f1ecaed2",
|
||||
"rev": "9c870f63e28ec1e83305f7f6cb73c941e699f74f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -172,11 +172,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741473158,
|
||||
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
|
||||
"lastModified": 1762521437,
|
||||
"narHash": "sha256-RXN+lcx4DEn3ZS+LqEJSUu/HH+dwGvy0syN7hTo/Chg=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
|
||||
"rev": "07bacc9531f5f4df6657c0a02a806443685f384a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -213,11 +213,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760701190,
|
||||
"narHash": "sha256-y7UhnWlER8r776JsySqsbTUh2Txf7K30smfHlqdaIQw=",
|
||||
"lastModified": 1763651264,
|
||||
"narHash": "sha256-8vvwZbw0s7YvBMJeyPVpWke6lg6ROgtts5N2/SMCcv4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5",
|
||||
"rev": "e86a89079587497174ccab6d0d142a65811a4fd9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -332,11 +332,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759362264,
|
||||
"narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=",
|
||||
"lastModified": 1763759067,
|
||||
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "758cf7296bee11f1706a574c77d072b8a7baa881",
|
||||
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -353,11 +353,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759362264,
|
||||
"narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=",
|
||||
"lastModified": 1763759067,
|
||||
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "758cf7296bee11f1706a574c77d072b8a7baa881",
|
||||
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -576,11 +576,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759490292,
|
||||
"narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=",
|
||||
"lastModified": 1762462052,
|
||||
"narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "9431db625cd9bb66ac55525479dce694101d6d7a",
|
||||
"rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -594,8 +594,8 @@
|
||||
"aquamarine": "aquamarine",
|
||||
"hyprcursor": "hyprcursor",
|
||||
"hyprgraphics": "hyprgraphics",
|
||||
"hyprland-guiutils": "hyprland-guiutils",
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"hyprland-qtutils": "hyprland-qtutils",
|
||||
"hyprlang": "hyprlang",
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
@@ -605,11 +605,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760621586,
|
||||
"narHash": "sha256-sIbe3te3RrL9PY4ASKGwv1KuJs0pyn4Zvo3xIF3jFms=",
|
||||
"lastModified": 1763912895,
|
||||
"narHash": "sha256-tTdCVeROhYTwV510tygS5AMutJGz5imM++P4+cXAy2w=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "8164b90bc2839d4d2a10c0d2b26c4a413ecf90b2",
|
||||
"rev": "2b0fd417d32278159d0ca1d23fb997588c37995b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -618,6 +618,52 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-guiutils": {
|
||||
"inputs": {
|
||||
"aquamarine": [
|
||||
"hyprland",
|
||||
"aquamarine"
|
||||
],
|
||||
"hyprgraphics": [
|
||||
"hyprland",
|
||||
"hyprgraphics"
|
||||
],
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprtoolkit": "hyprtoolkit",
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprutils"
|
||||
],
|
||||
"hyprwayland-scanner": [
|
||||
"hyprland",
|
||||
"hyprwayland-scanner"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762755186,
|
||||
"narHash": "sha256-ZjjETUHtoEhVN7JI1Cbt3p/KcXpK8ZQaPHx7UkG1OgA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-guiutils",
|
||||
"rev": "66356e20a8ed348aa49c1b9ceace786e224225b3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-guiutils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-plugins": {
|
||||
"inputs": {
|
||||
"hyprland": [
|
||||
@@ -635,11 +681,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760659005,
|
||||
"narHash": "sha256-wyS6tXYJuzbwckOeaCoRtT4qIG2UZ0YvSZx7EBNjTV0=",
|
||||
"lastModified": 1763856454,
|
||||
"narHash": "sha256-jlP442tr1Q7BynLKEb+L5lyGViJF5qUioymBCccV7/Y=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-plugins",
|
||||
"rev": "a5a6f93d72d5fb37e78b98c756cfd8b340e71a19",
|
||||
"rev": "7ffc0b314e638ca4f8ce9cb1305951a47d107ade",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -660,11 +706,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749046714,
|
||||
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
|
||||
"lastModified": 1759610243,
|
||||
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
|
||||
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -673,74 +719,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-qt-support": {
|
||||
"inputs": {
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749154592,
|
||||
"narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qt-support",
|
||||
"rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qt-support",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-qtutils": {
|
||||
"inputs": {
|
||||
"hyprland-qt-support": "hyprland-qt-support",
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang",
|
||||
"hyprutils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759080228,
|
||||
"narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
@@ -757,11 +735,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758927902,
|
||||
"narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=",
|
||||
"lastModified": 1763254292,
|
||||
"narHash": "sha256-JNgz3Fz2KMzkT7aR72wsgu/xNeJB//LSmdilh8Z/Zao=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da",
|
||||
"rev": "deea98d5b61d066bdc7a68163edd2c4bd28d3a6b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -770,6 +748,58 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprtoolkit": {
|
||||
"inputs": {
|
||||
"aquamarine": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"aquamarine"
|
||||
],
|
||||
"hyprgraphics": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprgraphics"
|
||||
],
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprutils"
|
||||
],
|
||||
"hyprwayland-scanner": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprwayland-scanner"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762463729,
|
||||
"narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprtoolkit",
|
||||
"rev": "88483bdee5329ec985f0c8f834c519cd18cfe532",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprtoolkit",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprutils": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -782,11 +812,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759619523,
|
||||
"narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=",
|
||||
"lastModified": 1763323331,
|
||||
"narHash": "sha256-+Z0OfCo1MS8/aIutSAW5aJR9zTae1wz9kcJYMgpwN6M=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef",
|
||||
"rev": "0c6411851cc779d551edc89b83966696201611aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -891,11 +921,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752093877,
|
||||
"narHash": "sha256-P0TySh6sQl1EhfxjW9ZqGxEyUBSsEpdnchOe1QB0pLA=",
|
||||
"lastModified": 1762088663,
|
||||
"narHash": "sha256-rpCvFan9Dji1Vw4HfVqYdfWesz5sKZE3uSgYR9gRreA=",
|
||||
"owner": "oddlama",
|
||||
"repo": "nix-topology",
|
||||
"rev": "6a536c4b686ee4bcf07a7b0f8b823584560e2633",
|
||||
"rev": "c15f569794a0f1a437850d0ac81675bcf23ca6cb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -906,11 +936,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1760106635,
|
||||
"narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=",
|
||||
"lastModified": 1762847253,
|
||||
"narHash": "sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR+ZdLX8IbrU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903",
|
||||
"rev": "899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -930,11 +960,11 @@
|
||||
"nixpkgs-25_05": "nixpkgs-25_05"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755110674,
|
||||
"narHash": "sha256-PigqTAGkdBYXVFWsJnqcirrLeFqRFN4PFigLA8FzxeI=",
|
||||
"lastModified": 1763302796,
|
||||
"narHash": "sha256-mEc3SBjRYfMcbNFLxmCc5tRtlu3j+1q7zRz+nRraSFE=",
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "nixos-mailserver",
|
||||
"rev": "f5936247dbdb8501221978562ab0b302dd75456c",
|
||||
"rev": "5b38fb599f50e9d78325d1d2706e36303c166047",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@@ -946,11 +976,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1759381078,
|
||||
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
|
||||
"lastModified": 1763283776,
|
||||
"narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
|
||||
"rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -978,11 +1008,11 @@
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1754788789,
|
||||
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
|
||||
"lastModified": 1761765539,
|
||||
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
|
||||
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -993,11 +1023,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1760524057,
|
||||
"narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=",
|
||||
"lastModified": 1763835633,
|
||||
"narHash": "sha256-HzxeGVID5MChuCPESuC0dlQL1/scDKu+MmzoVBJxulM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5",
|
||||
"rev": "050e09e091117c3d7328c7b2b7b577492c43c134",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1008,11 +1038,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1760580664,
|
||||
"narHash": "sha256-/YdfibIrnqXAL8p5kqCU345mzpHoOtuVIkMiI2pF4Dc=",
|
||||
"lastModified": 1763622513,
|
||||
"narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "98ff3f9af2684f6136c24beef08f5e2033fc5389",
|
||||
"rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1031,11 +1061,11 @@
|
||||
"systems": "systems_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760736138,
|
||||
"narHash": "sha256-be+mZwwpSHj43K6bqWXOGZztNpt5kkXh9FekW10nbdk=",
|
||||
"lastModified": 1763823006,
|
||||
"narHash": "sha256-OuxzqKSmzs35aRPsmdmvTwRhUZqp7uLyUIYDRDUuogs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "249d109fa88cf0d7a51737993806227c40012707",
|
||||
"rev": "370eb3d69252fa07b81d8c9979cb1a537b74ebb7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1055,11 +1085,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758662783,
|
||||
"narHash": "sha256-igrxT+/MnmcftPOHEb+XDwAMq3Xg1Xy7kVYQaHhPlAg=",
|
||||
"lastModified": 1761730856,
|
||||
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "7d4c0fc4ffe3bd64e5630417162e9e04e64b27a4",
|
||||
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1078,11 +1108,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758108966,
|
||||
"narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
|
||||
"lastModified": 1763319842,
|
||||
"narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
|
||||
"rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1100,11 +1130,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760663237,
|
||||
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
|
||||
"lastModified": 1763984553,
|
||||
"narHash": "sha256-zkbEsU9YFhz7FVzEpIETMpvzB/oKHGEFP21otHe5y5c=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
|
||||
"rev": "54a9ece994e2ad689085849d507a78e888456613",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1143,11 +1173,11 @@
|
||||
"secrets": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1756051653,
|
||||
"narHash": "sha256-JJkQliqI7zn+esLnKQP82eQEuolNz8IELm/BYGPTvEw=",
|
||||
"lastModified": 1763213908,
|
||||
"narHash": "sha256-VnsvhCOO2h1HRLG+wbmYlKrAQL5HnmvkE+aHcZ8YS/M=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "01cf200f61946ac9f259f9163933ea1749cb3531",
|
||||
"revCount": 41,
|
||||
"rev": "2a17f8af388cd87d12d6340c3601d35ca330956f",
|
||||
"revCount": 42,
|
||||
"type": "git",
|
||||
"url": "ssh://git@git.vimium.com/jordan/nix-secrets.git"
|
||||
},
|
||||
@@ -1290,11 +1320,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760120816,
|
||||
"narHash": "sha256-gq9rdocpmRZCwLS5vsHozwB6b5nrOBDNc2kkEaTXHfg=",
|
||||
"lastModified": 1762938485,
|
||||
"narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "761ae7aff00907b607125b2f57338b74177697ed",
|
||||
"rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1349,11 +1379,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755354946,
|
||||
"narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
|
||||
"lastModified": 1761431178,
|
||||
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
|
||||
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -102,7 +102,7 @@ in
|
||||
};
|
||||
desktop = {
|
||||
gnome.enable = lib.mkForce false;
|
||||
hyprland.enable = true;
|
||||
hyprland.enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -68,7 +68,7 @@ in
|
||||
"amdgpu.sched_hw_submission=4"
|
||||
"audit=0"
|
||||
];
|
||||
kernelPackages = pkgs.linuxPackages_6_16;
|
||||
kernelPackages = pkgs.linuxPackages_6_17;
|
||||
supportedFilesystems = [ "ntfs" ];
|
||||
};
|
||||
|
||||
|
||||
@@ -117,6 +117,7 @@
|
||||
dates = "weekly";
|
||||
options = "-d --delete-older-than 7d";
|
||||
};
|
||||
registry.unstable.flake = inputs.nixpkgs-unstable;
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
|
||||
@@ -16,6 +16,7 @@ in
|
||||
enable = true;
|
||||
package = pkgs.unstable.open-webui;
|
||||
port = 8081;
|
||||
host = "0.0.0.0";
|
||||
environment =
|
||||
let
|
||||
clientId = "open-webui";
|
||||
|
||||
@@ -33,25 +33,6 @@
|
||||
'';
|
||||
};
|
||||
};
|
||||
"chat.ai.vimium.com" = {
|
||||
listen = [
|
||||
{
|
||||
addr = "127.0.0.1";
|
||||
port = 8001;
|
||||
}
|
||||
];
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:8081";
|
||||
extraConfig = proxyConfig + ''
|
||||
# Disable proxy buffering for better streaming response from models
|
||||
proxy_buffering off;
|
||||
|
||||
# Increase max request size for large attachments and long audio messages
|
||||
client_max_body_size 20M;
|
||||
proxy_read_timeout 10m;
|
||||
'';
|
||||
};
|
||||
};
|
||||
"jellyfin.vimium.com" = {
|
||||
default = true;
|
||||
listen = [
|
||||
|
||||
34
hosts/odyssey/comfyui-docker.nix
Normal file
34
hosts/odyssey/comfyui-docker.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
hardware.graphics.enable32Bit = true;
|
||||
hardware.nvidia-container-toolkit.enable = true;
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
virtualisation.oci-containers = {
|
||||
backend = "docker";
|
||||
containers = {
|
||||
comfyui = {
|
||||
image = "ghcr.io/clsferguson/comfyui-docker:latest";
|
||||
autoStart = true;
|
||||
ports = [ "8188:8188" ];
|
||||
extraOptions = [
|
||||
"--device=nvidia.com/gpu=all"
|
||||
"--ipc=host"
|
||||
];
|
||||
volumes = [
|
||||
"/home/jordan/ComfyUI/user:/app/ComfyUI/user"
|
||||
"/home/jordan/ComfyUI/custom_nodes:/app/ComfyUI/custom_nodes"
|
||||
"/home/jordan/ComfyUI/models:/app/ComfyUI/models:rw"
|
||||
"/home/jordan/ComfyUI/input:/app/ComfyUI/input:rw"
|
||||
"/home/jordan/ComfyUI/output:/app/ComfyUI/output:rw"
|
||||
];
|
||||
environment = {
|
||||
TZ = "Europe/London";
|
||||
PUID = "1000";
|
||||
PGID = "1000";
|
||||
COMFY_AUTO_INSTALL = "1";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -7,7 +7,9 @@
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./comfyui-docker.nix
|
||||
./gitea-runner.nix
|
||||
./home-assistant
|
||||
./nix-serve.nix
|
||||
../desktop.nix
|
||||
../../users/jordan
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
powerManagement.enable = true;
|
||||
nvidiaSettings = false;
|
||||
};
|
||||
nvidia-container-toolkit.enable = true;
|
||||
};
|
||||
|
||||
powerManagement.cpuFreqGovernor = "schedutil";
|
||||
|
||||
63
hosts/odyssey/home-assistant/dashboards.nix
Normal file
63
hosts/odyssey/home-assistant/dashboards.nix
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
/**
|
||||
*******************
|
||||
- Service Dashboard for stats (energy usage, bandwidth etc.)
|
||||
- Dashboard fragment per room
|
||||
- Tablet in each room can display just its associated fragment
|
||||
- Per user dynamic dashboard that shows the dashboard fragment for the room
|
||||
you are in using Bluetooth presence detection
|
||||
|
||||
Rooms: [Auto, Bedroom, Kitchen, Living Room, Office]
|
||||
|
||||
Shared: Date/time, Guest Override action, Weather, Air quality
|
||||
|
||||
Bedroom:
|
||||
- Temperature
|
||||
- Minimal Lights action
|
||||
- Individual light cards
|
||||
- Sheets last changed
|
||||
- Plant last watered
|
||||
|
||||
Kitchen:
|
||||
- Temperature
|
||||
- Individual light cards
|
||||
- Water filter age
|
||||
|
||||
Living Room:
|
||||
- Temperature
|
||||
- Turn TV on action
|
||||
* dynamic card to start Movie Mode
|
||||
- Individual light cards
|
||||
- Plant last watered
|
||||
|
||||
Office:
|
||||
- Temperature
|
||||
- Individual light cards
|
||||
- Bandwidth usage
|
||||
- Computer stats
|
||||
|
||||
Primary IEEE address: 00:12:4B:00:29:E8:B1:9E
|
||||
|
||||
Random inspiration words:
|
||||
- "Temp Disable Office Motion"
|
||||
- "Main Lights {Bright,Dim,Warm}"
|
||||
- "Robot Vacuum"
|
||||
- "Living Room TV"
|
||||
- "Morning wakeup"
|
||||
- "Going to sleep early"
|
||||
- "Take out bins"
|
||||
- "Video Conference"
|
||||
- "Gaming"
|
||||
- Monitor power usage to tell when something has started/stopped
|
||||
- Vibration sensor for kitchen drawer
|
||||
- Todo list for dinner schedule
|
||||
- Air quality sensor in kitchen
|
||||
- Notification to close vents when outdoor air quality is bad
|
||||
- "TV Lights Lock" - don't auto dim-lights on play/pause
|
||||
*********************
|
||||
*/
|
||||
}
|
||||
@@ -8,7 +8,6 @@
|
||||
imports = [
|
||||
inputs.nixos-hardware.nixosModules.raspberry-pi-4
|
||||
./hardware-configuration.nix
|
||||
./home-assistant
|
||||
./snapcast.nix
|
||||
../server.nix
|
||||
];
|
||||
|
||||
@@ -36,7 +36,7 @@ in
|
||||
{
|
||||
name = "home.mesh.vimium.net";
|
||||
type = "A";
|
||||
value = "100.64.0.7";
|
||||
value = "100.64.0.5";
|
||||
}
|
||||
];
|
||||
magic_dns = true;
|
||||
@@ -60,7 +60,7 @@ in
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${toString config.services.headscale.port}";
|
||||
proxyPass = "http://127.0.0.1:${toString config.services.headscale.port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -136,16 +136,16 @@ in
|
||||
];
|
||||
locations = {
|
||||
"/" = {
|
||||
proxyPass = "http://localhost:8008";
|
||||
proxyPass = "http://127.0.0.1:8008";
|
||||
extraConfig = proxyConfig;
|
||||
};
|
||||
"/_matrix" = {
|
||||
proxyPass = "http://localhost:8008";
|
||||
proxyPass = "http://127.0.0.1:8008";
|
||||
extraConfig = proxyConfig + ''
|
||||
client_max_body_size 50M;
|
||||
'';
|
||||
};
|
||||
"/_synapse/client".proxyPass = "http://localhost:8008";
|
||||
"/_synapse/client".proxyPass = "http://127.0.0.1:8008";
|
||||
};
|
||||
};
|
||||
"${serverName}" =
|
||||
|
||||
@@ -82,14 +82,33 @@ in
|
||||
maxSize = "100m";
|
||||
};
|
||||
};
|
||||
proxyResolveWhileRunning = true;
|
||||
resolver.addresses = [ "100.100.100.100" ];
|
||||
upstreams = {
|
||||
jellyfin.servers = {
|
||||
"library.mesh.vimium.net:8096" = {
|
||||
fail_timeout = "30s";
|
||||
};
|
||||
};
|
||||
open-webui.servers = {
|
||||
"library.mesh.vimium.net:8081" = {
|
||||
fail_timeout = "30s";
|
||||
};
|
||||
};
|
||||
skycam.servers = {
|
||||
"skycam.mesh.vimium.net:1984" = {
|
||||
fail_timeout = "30s";
|
||||
};
|
||||
};
|
||||
};
|
||||
virtualHosts = {
|
||||
## Static sites
|
||||
## Proxied sites
|
||||
"chat.ai.vimium.com" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
extraConfig = nginxErrorPages + nginxEdgeHeaders;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:8001";
|
||||
proxyPass = "http://open-webui";
|
||||
extraConfig = ''
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
@@ -114,7 +133,7 @@ in
|
||||
enableACME = true;
|
||||
extraConfig = nginxErrorPages + nginxEdgeHeaders;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:8000";
|
||||
proxyPass = "http://jellyfin";
|
||||
extraConfig = ''
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
@@ -129,7 +148,12 @@ in
|
||||
proxy_set_header Connection "upgrade";
|
||||
'';
|
||||
};
|
||||
locations."/metrics" = {
|
||||
return = "404";
|
||||
};
|
||||
};
|
||||
|
||||
## Static sites
|
||||
"jdholt.com" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
@@ -140,11 +164,8 @@ in
|
||||
};
|
||||
locations."/skycam/snapshot.jpg" = {
|
||||
extraConfig = ''
|
||||
set $backend "skycam.mesh.vimium.net:1984";
|
||||
|
||||
resolver 100.100.100.100;
|
||||
|
||||
proxy_pass http://$backend/api/frame.jpeg?src=rpicam;
|
||||
set $args "";
|
||||
proxy_pass http://skycam/api/frame.jpeg?src=rpicam;
|
||||
proxy_cache skycam_cache;
|
||||
proxy_cache_valid any 10s;
|
||||
proxy_ignore_headers Cache-Control Expires Set-Cookie;
|
||||
@@ -181,6 +202,7 @@ in
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
## Redirects
|
||||
// (mkRedirect "h0lt.com" "jdholt.com")
|
||||
// (mkRedirect "jordanholt.xyz" "jdholt.com")
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
inputs.disko.nixosModules.disko
|
||||
./hardware-configuration.nix
|
||||
./disko-config.nix
|
||||
../server.nix
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
hostPlatform = "x86_64-linux";
|
||||
};
|
||||
|
||||
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||
|
||||
networking = {
|
||||
hostId = "60de4af8";
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
22 # SSH
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
modules.services.tailscale.isExitNode = true;
|
||||
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
{ 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"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
{
|
||||
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;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG1Ee9QHeGSVpmruNaMdaycYyNdTXVRWpwUk1EBEM7UW
|
||||
@@ -47,7 +47,6 @@ in
|
||||
gnomeExtensions.dash-to-panel
|
||||
gnomeExtensions.desktop-cube
|
||||
gnomeExtensions.easyScreenCast
|
||||
gnomeExtensions.espresso
|
||||
gnomeExtensions.fly-pie
|
||||
gnomeExtensions.forge
|
||||
gnomeExtensions.gsconnect
|
||||
|
||||
@@ -54,7 +54,6 @@
|
||||
"pi"
|
||||
"skycam"
|
||||
"vps1"
|
||||
"vps2"
|
||||
] mkDeployNode;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -17,24 +17,4 @@
|
||||
".local/share/jellyfinmediaplayer"
|
||||
".local/share/Jellyfin Media Player"
|
||||
];
|
||||
|
||||
systemd.user.services.jellyfin-media-player = {
|
||||
Unit = {
|
||||
Description = "Jellyfin Media Player in Gamescope";
|
||||
After = [
|
||||
"graphical.target"
|
||||
"default.target"
|
||||
];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = ''
|
||||
${pkgs.gamescope}/bin/gamescope --hdr-enabled --rt --backend drm -- \
|
||||
${pkgs.jellyfin-media-player}/bin/jellyfinmediaplayer --scale-factor 2 --tv --fullscreen
|
||||
'';
|
||||
Restart = "always";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -14,21 +14,4 @@
|
||||
".local/share/vulkan"
|
||||
".steam"
|
||||
];
|
||||
|
||||
systemd.user.services.steam-big-picture = {
|
||||
Unit = {
|
||||
Description = "Steam Big Picture in Gamescope";
|
||||
After = [
|
||||
"graphical.target"
|
||||
"default.target"
|
||||
];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = ''
|
||||
${pkgs.gamescope}/bin/gamescope --rt --backend drm --steam -- \
|
||||
${pkgs.steam}/bin/steam -pipewire-dmabuf -tenfoot
|
||||
'';
|
||||
Restart = "always";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ in
|
||||
];
|
||||
group = "users";
|
||||
isNormalUser = true;
|
||||
password = "";
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
@@ -52,10 +53,32 @@ in
|
||||
sessionVariables = {
|
||||
ZDOTDIR = "~/.config/zsh";
|
||||
};
|
||||
pointerCursor = {
|
||||
enable = true;
|
||||
size = 64;
|
||||
name = "macOS";
|
||||
package = pkgs.apple-cursor;
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles.Default = {
|
||||
search = {
|
||||
default = "ddg";
|
||||
privateDefault = "ddg";
|
||||
force = true;
|
||||
};
|
||||
settings = {
|
||||
"layout.css.devPixelsPerPx" = 1.5;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
@@ -64,11 +87,99 @@ in
|
||||
xdg.enable = true;
|
||||
};
|
||||
|
||||
services.getty = {
|
||||
autologinOnce = true;
|
||||
autologinUser = "guest";
|
||||
services.displayManager = {
|
||||
enable = true;
|
||||
sessionPackages =
|
||||
let
|
||||
firefoxDesktopFile = pkgs.writeTextFile {
|
||||
name = "firefox-desktop-entry";
|
||||
destination = "/share/wayland-sessions/firefox.desktop";
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Name=Firefox
|
||||
Comment=Desktop session for web browsing
|
||||
Exec=${pkgs.gamescope}/bin/gamescope --rt --backend drm --expose-wayland -W 3840 -H 2160 -- MOZ_ENABLE_WAYLAND=1 ${pkgs.firefox}/bin/firefox https://www.youtube.com/
|
||||
Type=Application
|
||||
'';
|
||||
};
|
||||
|
||||
jellyfinDesktopFile = pkgs.writeTextFile {
|
||||
name = "jellyfin-desktop-entry";
|
||||
destination = "/share/wayland-sessions/jellyfin.desktop";
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Name=Jellyfin
|
||||
Comment=Desktop session for music, movies, and TV
|
||||
Exec=${pkgs.gamescope}/bin/gamescope --rt --backend drm -W 3840 -H 2160 -- ${pkgs.jellyfin-media-player}/bin/jellyfinmediaplayer --scale-factor 2 --tv --fullscreen
|
||||
Type=Application
|
||||
'';
|
||||
};
|
||||
|
||||
steamDesktopFile = pkgs.writeTextFile {
|
||||
name = "steam-desktop-entry";
|
||||
destination = "/share/wayland-sessions/steam.desktop";
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Name=Steam
|
||||
Comment=Desktop session for gaming
|
||||
Exec=${pkgs.gamescope}/bin/gamescope --rt --backend drm --steam -- ${pkgs.steam}/bin/steam -pipewire-dmabuf -tenfoot
|
||||
Type=Application
|
||||
'';
|
||||
};
|
||||
|
||||
firefoxSession = pkgs.symlinkJoin {
|
||||
name = "firefox-session";
|
||||
paths = [ firefoxDesktopFile ];
|
||||
passthru.providedSessions = [ "firefox" ];
|
||||
};
|
||||
|
||||
jellyfinSession = pkgs.symlinkJoin {
|
||||
name = "jellyfin-session";
|
||||
paths = [ jellyfinDesktopFile ];
|
||||
passthru.providedSessions = [ "jellyfin" ];
|
||||
};
|
||||
|
||||
steamSession = pkgs.symlinkJoin {
|
||||
name = "steam-session";
|
||||
paths = [ steamDesktopFile ];
|
||||
passthru.providedSessions = [ "steam" ];
|
||||
};
|
||||
in
|
||||
[
|
||||
firefoxSession
|
||||
jellyfinSession
|
||||
steamSession
|
||||
];
|
||||
};
|
||||
|
||||
services.greetd =
|
||||
let
|
||||
desktops = config.services.displayManager.sessionData.desktops;
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --sessions ${desktops}/share/xsessions:${desktops}/share/wayland-sessions";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# security.pam.services = {
|
||||
# greetd.text = ''
|
||||
# auth requisite pam_nologin.so
|
||||
# auth sufficient pam_succeed_if.so user = ${name} quiet_success
|
||||
# auth required pam_unix.so
|
||||
#
|
||||
# account sufficient pam_unix.so
|
||||
#
|
||||
# password required pam_deny.so
|
||||
#
|
||||
# session optional pam_keyinit.so revoke
|
||||
# session include login
|
||||
# '';
|
||||
# };
|
||||
|
||||
# Workaround: https://github.com/nix-community/home-manager/issues/7166
|
||||
systemd.services."home-manager-${name}".serviceConfig = {
|
||||
RemainAfterExit = "yes";
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
|
||||
home.packages = with pkgs; [
|
||||
jellyfin-media-player
|
||||
lutris
|
||||
unstable.pcsx2
|
||||
unstable.lutris
|
||||
pcsx2
|
||||
xemu
|
||||
];
|
||||
}
|
||||
|
||||
@@ -11,6 +11,17 @@
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
extraConfigLua = ''
|
||||
if vim.g.neovide then
|
||||
vim.g.neovide_opacity = 0.8
|
||||
vim.g.neovide_normal_opacity = 0.8
|
||||
-- vim.g.neovide_cursor_vfx_mode = "pixiedust"
|
||||
vim.g.neovide_floating_blur_amount_x = 2.0
|
||||
vim.g.neovide_floating_blur_amount_y = 2.0
|
||||
vim.g.neovide_floating_corner_radius = 0.2
|
||||
end
|
||||
'';
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
tabstop = 2;
|
||||
@@ -35,6 +46,14 @@
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
|
||||
colorschemes.onedark = {
|
||||
enable = true;
|
||||
settings = {
|
||||
style = "darker";
|
||||
transparent = true;
|
||||
};
|
||||
};
|
||||
|
||||
plugins.cmp = {
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
|
||||
@@ -8,6 +8,39 @@
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
policies = {
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableFirefoxStudies = true;
|
||||
DisableTelemetry = true;
|
||||
DisableFeedbackCommands = true;
|
||||
DisablePocket = true;
|
||||
DisableSetDesktopBackground = true;
|
||||
DontCheckDefaultBrowser = true;
|
||||
NoDefaultBookmarks = true;
|
||||
SkipTermsOfUse = true;
|
||||
GenerativeAI = {
|
||||
Chatbot = false;
|
||||
LinkPreviews = false;
|
||||
TabGroups = false;
|
||||
};
|
||||
ExtensionSettings = {
|
||||
"uBlock0@raymondhill.net" = {
|
||||
installation_mode = "force_installed";
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||
private_browsing = true;
|
||||
};
|
||||
};
|
||||
SearchEngines = {
|
||||
Default = "DuckDuckGo";
|
||||
Remove = [
|
||||
"Amazon.com"
|
||||
"Bing"
|
||||
"eBay"
|
||||
"Google"
|
||||
"Perplexity"
|
||||
];
|
||||
};
|
||||
};
|
||||
profiles.Default = {
|
||||
search = {
|
||||
default = "ddg";
|
||||
@@ -47,6 +80,9 @@
|
||||
"browser.urlbar.suggest.calculator" = true;
|
||||
"browser.urlbar.trending.featureGate" = false;
|
||||
"browser.urlbar.unitConversion.enabled" = true;
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.aboutwelcome.enabled" = false;
|
||||
"browser.shell.checkDefaultBrowser" = false;
|
||||
"cookiebanners.service.mode" = 1;
|
||||
"cookiebanners.service.mode.privateBrowsing" = 1;
|
||||
"network.IDN_show_punycode" = true;
|
||||
@@ -99,6 +135,7 @@
|
||||
## Privacy
|
||||
"dom.private-attribution.submission.enabled" = false;
|
||||
# "privacy.resistFingerprinting" = true;
|
||||
"privacy.resistFingerprinting.randomization.daily_reset.enabled" = true;
|
||||
"privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = false;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
"privacy.trackingprotection.pbmode.enabled" = true;
|
||||
@@ -135,6 +172,13 @@
|
||||
"dom.webnotifications.serviceworker.enabled" = false;
|
||||
"permissions.default.desktop-notification" = 2;
|
||||
|
||||
## ML
|
||||
"browser.ml.enable" = false;
|
||||
"browser.ml.chat.enable" = false;
|
||||
"browser.ml.chat.menu" = false;
|
||||
"browser.ml.linkpreview.enable" = false;
|
||||
"browser.tabs.groups.smart.enabled" = false;
|
||||
|
||||
## DOM / JavaScript
|
||||
# "dom.event.clipboardevents.enabled" = false;
|
||||
"middlemouse.paste" = false;
|
||||
@@ -202,6 +246,31 @@
|
||||
"plugin.state.flash" = 0;
|
||||
"plugin.state.java" = 0;
|
||||
|
||||
# Fullscreen
|
||||
"full-screen-api.transition-duration.enter" = "0 0";
|
||||
"full-screen-api.transition-duration.leave" = "0";
|
||||
"full-screen-api.warning.timeout" = 0;
|
||||
|
||||
# Update management
|
||||
"app.update.auto" = false;
|
||||
"app.update.background.enabled" = false;
|
||||
"app.update.url" = "";
|
||||
|
||||
# Sync
|
||||
"services.sync.engine.addresses" = false;
|
||||
"services.sync.engine.creditcards" = false;
|
||||
"services.sync.engine.addons" = false;
|
||||
"services.sync.engine.bookmarks" = false;
|
||||
"services.sync.engine.history" = false;
|
||||
"services.sync.engine.passwords" = false;
|
||||
"services.sync.engine.prefs" = false;
|
||||
"services.sync.engine.tabs" = false;
|
||||
"identity.fxaccounts.enabled" = false;
|
||||
|
||||
# Notifications and CFR
|
||||
"browser.messaging-system.whatsNewPanel.enabled" = false;
|
||||
"browser.cfr.enabled" = false;
|
||||
|
||||
## Misc
|
||||
"browser.selfsupport.url" = "";
|
||||
};
|
||||
|
||||
@@ -299,7 +299,15 @@ in
|
||||
enable = true;
|
||||
settings = {
|
||||
background = "#000000";
|
||||
background_opacity = 0.7;
|
||||
background_opacity = 0.8;
|
||||
};
|
||||
};
|
||||
|
||||
programs.neovide = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.neovide;
|
||||
settings = {
|
||||
font.size = 16.0;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
inkscape
|
||||
jellyfin-media-player
|
||||
krita
|
||||
lutris
|
||||
unstable.lutris
|
||||
mkvtoolnix
|
||||
# obs-studio
|
||||
unstable.pcsx2
|
||||
pcsx2
|
||||
qbittorrent
|
||||
xemu
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user