Compare commits
128 Commits
7008650ec5
...
niri
| Author | SHA1 | Date | |
|---|---|---|---|
|
1d205d39c3
|
|||
|
12868c4272
|
|||
|
f70ed78ad0
|
|||
|
304f46923b
|
|||
|
8443f7ef9d
|
|||
|
2a977c7e42
|
|||
|
c6171c071c
|
|||
|
2057c1dccb
|
|||
|
216b8764b5
|
|||
|
3863cf4ffa
|
|||
|
4f9bb629d4
|
|||
|
e40d83b431
|
|||
|
2f6fa58b27
|
|||
|
8e7f39cec3
|
|||
|
d6ccbd46de
|
|||
|
52e6255c68
|
|||
|
227587a922
|
|||
|
9125ce9c1f
|
|||
|
3d6316e0c5
|
|||
|
99a85defee
|
|||
|
86f74d04f9
|
|||
|
57389bafc9
|
|||
|
608de80a04
|
|||
|
2fbe5a3f6a
|
|||
|
fa3eab9b27
|
|||
|
4467ed6dc7
|
|||
|
4691083a3a
|
|||
|
1ee1b5e4a7
|
|||
|
b1ed31104b
|
|||
|
210a95216e
|
|||
|
d7cfed8e7e
|
|||
|
95678ed10e
|
|||
|
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
|
|||
|
fd8adc2b21
|
|||
|
27e2c7c233
|
|||
|
e46e69ec6f
|
|||
|
75a81a6496
|
|||
|
d3cfd0a1b2
|
|||
|
3bb83f269c
|
|||
|
fab0fb48d4
|
|||
|
8dff1c604e
|
|||
|
b5904d9573
|
|||
|
8a2652d490
|
|||
|
13a2c70f97
|
|||
|
7165d6fe24
|
|||
|
ad0aa8b2cb
|
|||
|
2424f18ad7
|
|||
|
f7831723c7
|
|||
|
e43e8fcb33
|
|||
|
caced7acaf
|
|||
|
ee3d1e6683
|
|||
|
866762ef24
|
|||
|
c5bfed5a84
|
|||
|
f8dd9b73f5
|
|||
|
82d1a991ef
|
|||
|
5c65e179d3
|
|||
|
226117d989
|
|||
|
4c73dd3885
|
|||
|
be17929999
|
|||
|
18cebe871b
|
|||
|
32dae3898a
|
|||
|
67b9ec8b3e
|
|||
|
dc09ae397d
|
|||
|
cc6b63ccc1
|
|||
|
39d52d3aeb
|
|||
|
1416266821
|
|||
|
1c670390ec
|
|||
|
84bc9c6bf9
|
|||
|
c97eee9a8a
|
|||
|
26b4e86e52
|
|||
|
efcfc438cb
|
|||
|
1087c02fb6
|
|||
|
10f78d3698
|
|||
|
2659ebe5f7
|
|||
|
614fa18ef7
|
|||
|
9919d25454
|
|||
|
76712620d2
|
|||
|
853f647c94
|
|||
|
774575f447
|
|||
|
c5d3e925e7
|
|||
|
ceef998ac0
|
@@ -5,9 +5,9 @@ System and user configuration for NixOS-based systems.
|
|||||||
| | |
|
| | |
|
||||||
|-|-|
|
|-|-|
|
||||||
| **Shell:** | zsh |
|
| **Shell:** | zsh |
|
||||||
| **DE:** | GNOME |
|
| **WM:** | Hyprland |
|
||||||
| **Theme:** | Adwaita |
|
| **Theme:** | Adwaita |
|
||||||
| **Terminal:** | Ghostty |
|
| **Terminal:** | kitty |
|
||||||
|
|
||||||
## Provisioning a new host
|
## Provisioning a new host
|
||||||
|
|
||||||
|
|||||||
561
flake.lock
generated
561
flake.lock
generated
@@ -12,11 +12,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754433428,
|
"lastModified": 1762618334,
|
||||||
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
|
"narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
|
"rev": "fcdea223397448d35d9b31f798479227e80183f6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -38,11 +38,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754492276,
|
"lastModified": 1759699908,
|
||||||
"narHash": "sha256-cCtleJZQY5eWPYRGl5x63BZ2rfOik4pLveCveH+tmvM=",
|
"narHash": "sha256-kYVGY8sAfqwpNch706Fy2+/b+xbtfidhXSnzvthAhIQ=",
|
||||||
"owner": "oddlama",
|
"owner": "oddlama",
|
||||||
"repo": "agenix-rekey",
|
"repo": "agenix-rekey",
|
||||||
"rev": "69ed7833c0e4e6a677a20894d8f12876b9e2bedb",
|
"rev": "42362b12f59978aabf3ec3334834ce2f3662013d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -71,11 +71,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755946532,
|
"lastModified": 1765900596,
|
||||||
"narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=",
|
"narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada",
|
"rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -131,11 +131,11 @@
|
|||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756719547,
|
"lastModified": 1766051518,
|
||||||
"narHash": "sha256-N9gBKUmjwRKPxAafXEk1EGadfk2qDZPBQp4vXWPHINQ=",
|
"narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "125ae9e3ecf62fb2c0fd4f2d894eb971f1ecaed2",
|
"rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -172,11 +172,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1741473158,
|
"lastModified": 1764011051,
|
||||||
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
|
"narHash": "sha256-M7SZyPZiqZUR/EiiBJnmyUbOi5oE/03tCeFrTiUZchI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "devshell",
|
"repo": "devshell",
|
||||||
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
|
"rev": "17ed8d9744ebe70424659b0ef74ad6d41fc87071",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -213,11 +213,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756733629,
|
"lastModified": 1766150702,
|
||||||
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
|
"narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
|
"rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -229,11 +229,11 @@
|
|||||||
"firefox-gnome-theme": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756083905,
|
"lastModified": 1764873433,
|
||||||
"narHash": "sha256-UqYGTBgI5ypGh0Kf6zZjom/vABg7HQocB4gmxzl12uo=",
|
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "firefox-gnome-theme",
|
"repo": "firefox-gnome-theme",
|
||||||
"rev": "b655eaf16d4cbec9c3472f62eee285d4b419a808",
|
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -261,11 +261,11 @@
|
|||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1761588595,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -277,11 +277,11 @@
|
|||||||
"flake-compat_3": {
|
"flake-compat_3": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1761588595,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -293,11 +293,11 @@
|
|||||||
"flake-compat_4": {
|
"flake-compat_4": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1761588595,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -332,11 +332,11 @@
|
|||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756770412,
|
"lastModified": 1765835352,
|
||||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -353,11 +353,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754091436,
|
"lastModified": 1765835352,
|
||||||
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
|
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
|
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -415,11 +415,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742649964,
|
"lastModified": 1763319842,
|
||||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
"narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
"rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -517,16 +517,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756679287,
|
"lastModified": 1766553861,
|
||||||
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
|
"narHash": "sha256-ZbnG01yA3O8Yr1vUm3+NQ2qk9iRhS5bloAnuXHHy7+c=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
|
"rev": "0999ed8f965bbbd991437ad9c5ed3434cecbc30e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-25.05",
|
"ref": "release-25.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -576,11 +576,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755678602,
|
"lastModified": 1763733840,
|
||||||
"narHash": "sha256-uEC5O/NIUNs1zmc1aH1+G3GRACbODjk2iS0ET5hXtuk=",
|
"narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "157cc52065a104fc3b8fa542ae648b992421d1c7",
|
"rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -594,22 +594,23 @@
|
|||||||
"aquamarine": "aquamarine",
|
"aquamarine": "aquamarine",
|
||||||
"hyprcursor": "hyprcursor",
|
"hyprcursor": "hyprcursor",
|
||||||
"hyprgraphics": "hyprgraphics",
|
"hyprgraphics": "hyprgraphics",
|
||||||
|
"hyprland-guiutils": "hyprland-guiutils",
|
||||||
"hyprland-protocols": "hyprland-protocols",
|
"hyprland-protocols": "hyprland-protocols",
|
||||||
"hyprland-qtutils": "hyprland-qtutils",
|
|
||||||
"hyprlang": "hyprlang",
|
"hyprlang": "hyprlang",
|
||||||
"hyprutils": "hyprutils",
|
"hyprutils": "hyprutils",
|
||||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||||
|
"hyprwire": "hyprwire",
|
||||||
"nixpkgs": "nixpkgs",
|
"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": 1756811803,
|
"lastModified": 1766761711,
|
||||||
"narHash": "sha256-03zmDvAU+VLPWHv5uxfGVR6bs/SnCYeZ8hbedK/Eb/M=",
|
"narHash": "sha256-m9VZ9cxYUl9Q9+ROSKmYpVeyIAvz1faqNqBKZ4WamWI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "127aab815908ecbd3db4d23f127d2e96b79855f9",
|
"rev": "33df518f97b930316742736ecb07dc322da4c5d3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -618,6 +619,52 @@
|
|||||||
"type": "github"
|
"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": 1765643131,
|
||||||
|
"narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-guiutils",
|
||||||
|
"rev": "e50ae912813bdfa8372d62daf454f48d6df02297",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-guiutils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"hyprland-plugins": {
|
"hyprland-plugins": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprland": [
|
"hyprland": [
|
||||||
@@ -635,11 +682,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756806479,
|
"lastModified": 1766258034,
|
||||||
"narHash": "sha256-+RLX4BmuMw4c97npsBcjjEuy+s83POX9Yp8Nkj499lA=",
|
"narHash": "sha256-0EoL8X+sYexDBusF9XyY2WoGKRqnARA+vfh/3uAi/j0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-plugins",
|
"repo": "hyprland-plugins",
|
||||||
"rev": "b8d6d369618078b2dbb043480ca65fe3521f273b",
|
"rev": "3e29d68d5a830c542643a52d4be726661eaa85e7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -660,11 +707,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749046714,
|
"lastModified": 1765214753,
|
||||||
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
|
"narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-protocols",
|
"repo": "hyprland-protocols",
|
||||||
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
|
"rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -673,74 +720,6 @@
|
|||||||
"type": "github"
|
"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": 1753819801,
|
|
||||||
"narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-qtutils",
|
|
||||||
"rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-qtutils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprlang": {
|
"hyprlang": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprutils": [
|
"hyprutils": [
|
||||||
@@ -757,11 +736,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753622892,
|
"lastModified": 1764612430,
|
||||||
"narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
|
"narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
|
"rev": "0d00dc118981531aa731150b6ea551ef037acddd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -770,6 +749,58 @@
|
|||||||
"type": "github"
|
"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": 1764592794,
|
||||||
|
"narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprtoolkit",
|
||||||
|
"rev": "5cfe0743f0e608e1462972303778d8a0859ee63e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprtoolkit",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"hyprutils": {
|
"hyprutils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -782,11 +813,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756117388,
|
"lastModified": 1766160771,
|
||||||
"narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=",
|
"narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0",
|
"rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -807,11 +838,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755184602,
|
"lastModified": 1763640274,
|
||||||
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
|
"narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
|
"rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -820,6 +851,35 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hyprwire": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprutils": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprutils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766253200,
|
||||||
|
"narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprwire",
|
||||||
|
"rev": "1079777525b30a947c8d657fac158e00ae85de9d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprwire",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"impermanence": {
|
"impermanence": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737831083,
|
"lastModified": 1737831083,
|
||||||
@@ -849,16 +909,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748294338,
|
"lastModified": 1754860581,
|
||||||
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
|
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"repo": "ixx",
|
"repo": "ixx",
|
||||||
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
|
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"ref": "v0.0.8",
|
"ref": "v0.1.1",
|
||||||
"repo": "ixx",
|
"repo": "ixx",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -866,11 +926,11 @@
|
|||||||
"kvlibadwaita": {
|
"kvlibadwaita": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710621848,
|
"lastModified": 1757782301,
|
||||||
"narHash": "sha256-xBl6zmpqTAH5MIT5iNAdW6kdOcB5MY0Dtrb95hdYpwA=",
|
"narHash": "sha256-jCXME6mpqqWd7gWReT04a//2O83VQcOaqIIXa+Frntc=",
|
||||||
"owner": "GabePoel",
|
"owner": "GabePoel",
|
||||||
"repo": "KvLibadwaita",
|
"repo": "KvLibadwaita",
|
||||||
"rev": "87c1ef9f44ec48855fd09ddab041007277e30e37",
|
"rev": "1f4e0bec44b13dabfa1fe4047aa8eeaccf2f3557",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -879,6 +939,64 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"niri": {
|
||||||
|
"inputs": {
|
||||||
|
"niri-stable": "niri-stable",
|
||||||
|
"niri-unstable": "niri-unstable",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||||
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766765523,
|
||||||
|
"narHash": "sha256-DCk3GKdKZNjpvNuDy9ZVfVwCy3tlm96/UZnYkJO7N44=",
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"rev": "a3e638c75d07de759421e6f34bd69c3f9a0a3567",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756556321,
|
||||||
|
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"ref": "v25.08",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766751930,
|
||||||
|
"narHash": "sha256-83/YSW6c58i/iwGzAFApuMy6MCgoIaROeCcoIGh+ViU=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "b5640d5293ad8dca06cb447692ea7cbb21680eb1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-topology": {
|
"nix-topology": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell_3",
|
"devshell": "devshell_3",
|
||||||
@@ -891,11 +1009,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752093877,
|
"lastModified": 1765969653,
|
||||||
"narHash": "sha256-P0TySh6sQl1EhfxjW9ZqGxEyUBSsEpdnchOe1QB0pLA=",
|
"narHash": "sha256-qVpQxyvdByeDfb+d+jhbyNna2Ie+w85iHpt4Qu0rv/E=",
|
||||||
"owner": "oddlama",
|
"owner": "oddlama",
|
||||||
"repo": "nix-topology",
|
"repo": "nix-topology",
|
||||||
"rev": "6a536c4b686ee4bcf07a7b0f8b823584560e2633",
|
"rev": "0ed73e5a1b65eb8ed388d070ebe8dedb9182f466",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -906,11 +1024,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756750488,
|
"lastModified": 1766568855,
|
||||||
"narHash": "sha256-e4ZAu2sjOtGpvbdS5zo+Va5FUUkAnizl4wb0/JlIL2I=",
|
"narHash": "sha256-UXVtN77D7pzKmzOotFTStgZBqpOcf8cO95FcupWp4Zo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "47eb4856cfd01eaeaa7bb5944a0f27db8fb9b94a",
|
"rev": "c5db9569ac9cc70929c268ac461f4003e3e5ca80",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -926,31 +1044,30 @@
|
|||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"nixpkgs-25_05": "nixpkgs-25_05"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755110674,
|
"lastModified": 1766537863,
|
||||||
"narHash": "sha256-PigqTAGkdBYXVFWsJnqcirrLeFqRFN4PFigLA8FzxeI=",
|
"narHash": "sha256-HEt+wbazRgJYeY+lgj65bxhPyVc4x7NEB2bs5NU6DF8=",
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"rev": "f5936247dbdb8501221978562ab0b302dd75456c",
|
"rev": "23f0a53ca6e58e61e1ea2b86791c69b79c91656d",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756266583,
|
"lastModified": 1766070988,
|
||||||
"narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
|
"narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
|
"rev": "c6245e83d836d0433170a16eb185cefe0572f8b8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -960,44 +1077,44 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-25_05": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747610100,
|
"lastModified": 1765674936,
|
||||||
"narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
|
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "ca49c4304acf0973078db0a9d200fd2bae75676d",
|
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"ref": "nixos-25.05",
|
"repo": "nixpkgs.lib",
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754788789,
|
"lastModified": 1766736597,
|
||||||
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
|
"narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=",
|
||||||
"owner": "nix-community",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs",
|
||||||
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
|
"rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs.lib",
|
"ref": "nixos-25.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756787288,
|
"lastModified": 1766651565,
|
||||||
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
|
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
|
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1008,16 +1125,16 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756754095,
|
"lastModified": 1766736597,
|
||||||
"narHash": "sha256-9Rsn9XEWINExosFkKEqdp8EI6Mujr1gmQiyrEcts2ls=",
|
"narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7c815e513adbf03c9098b2bd230c1e0525c8a7f9",
|
"rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-25.11",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1031,16 +1148,16 @@
|
|||||||
"systems": "systems_6"
|
"systems": "systems_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755727480,
|
"lastModified": 1766725080,
|
||||||
"narHash": "sha256-eb9N7XFj1zirk+D2KV+rn/CjmVHDISlxhtZCWZEVpkM=",
|
"narHash": "sha256-JG0KvKmVyAQZ4PxKVDy7FGGUirt1lLhWwGwy9ExLCoI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "6df0b97b39baa1c0b3002b051f307aed68e17d1b",
|
"rev": "2d3184cd3dd31f6eb57eb4ddfe2387ebd141f1e5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -1055,11 +1172,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753771532,
|
"lastModified": 1761730856,
|
||||||
"narHash": "sha256-Pmpke0JtLRzgdlwDC5a+aiLVZ11JPUO5Bcqkj0nHE/k=",
|
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"repo": "search",
|
"repo": "search",
|
||||||
"rev": "2a65adaf2c0c428efb0f4a2bc406aab466e96a06",
|
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1078,11 +1195,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755960406,
|
"lastModified": 1765911976,
|
||||||
"narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=",
|
"narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2",
|
"rev": "b68b780b69702a090c8bb1b973bab13756cc7a27",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1100,11 +1217,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755960406,
|
"lastModified": 1765911976,
|
||||||
"narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=",
|
"narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2",
|
"rev": "b68b780b69702a090c8bb1b973bab13756cc7a27",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1128,6 +1245,7 @@
|
|||||||
"hyprland-plugins": "hyprland-plugins",
|
"hyprland-plugins": "hyprland-plugins",
|
||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"kvlibadwaita": "kvlibadwaita",
|
"kvlibadwaita": "kvlibadwaita",
|
||||||
|
"niri": "niri",
|
||||||
"nix-topology": "nix-topology",
|
"nix-topology": "nix-topology",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixos-mailserver": "nixos-mailserver",
|
"nixos-mailserver": "nixos-mailserver",
|
||||||
@@ -1143,11 +1261,11 @@
|
|||||||
"secrets": {
|
"secrets": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756051653,
|
"lastModified": 1764864420,
|
||||||
"narHash": "sha256-JJkQliqI7zn+esLnKQP82eQEuolNz8IELm/BYGPTvEw=",
|
"narHash": "sha256-14xW9M1JHKQ55DadtHCKDfvNoRtVnof8mz6hiUtqxtE=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "01cf200f61946ac9f259f9163933ea1749cb3531",
|
"rev": "b445b0d0f9261ae5500fcdc799ee638d46159691",
|
||||||
"revCount": 41,
|
"revCount": 43,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://git@git.vimium.com/jordan/nix-secrets.git"
|
"url": "ssh://git@git.vimium.com/jordan/nix-secrets.git"
|
||||||
},
|
},
|
||||||
@@ -1249,11 +1367,11 @@
|
|||||||
"thunderbird-gnome-theme": {
|
"thunderbird-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755861050,
|
"lastModified": 1757216698,
|
||||||
"narHash": "sha256-oLmw1VRrmbuLwT5errG3lT85K0jLII/aQ32VtdJ+1xM=",
|
"narHash": "sha256-aQAlgHsBAS+DdyYDlYhW/xT86xIu9FO8yJEzSCVaSBg=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "thunderbird-gnome-theme",
|
"repo": "thunderbird-gnome-theme",
|
||||||
"rev": "b1fbb41db5718c23667bd9b40268b8e7317634fd",
|
"rev": "8b9a19eb188b3ede65e8f12a11637bbd56e4f4d7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1290,11 +1408,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756662192,
|
"lastModified": 1766000401,
|
||||||
"narHash": "sha256-F1oFfV51AE259I85av+MAia221XwMHCOtZCMcZLK2Jk=",
|
"narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "1aabc6c05ccbcbf4a635fb7a90400e44282f61c4",
|
"rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1349,11 +1467,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755354946,
|
"lastModified": 1761431178,
|
||||||
"narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
|
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
|
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1361,6 +1479,39 @@
|
|||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755491097,
|
||||||
|
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"ref": "v0.7",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766429945,
|
||||||
|
"narHash": "sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd+XoTkzqF7E=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "0dde7ca1d3a8e8c5082533d76084e2aa02bef70e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
15
flake.nix
15
flake.nix
@@ -30,7 +30,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-25.05";
|
url = "github:nix-community/home-manager/release-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -62,19 +62,24 @@
|
|||||||
|
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||||
|
|
||||||
nixos-mailserver = {
|
niri = {
|
||||||
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.05";
|
url = "github:sodiboo/niri-flake";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.url = "nixpkgs/nixos-25.05";
|
nixos-mailserver = {
|
||||||
|
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.url = "nixpkgs/nixos-25.11";
|
||||||
|
|
||||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
# nixpkgs-master.url = "nixpkgs";
|
# nixpkgs-master.url = "nixpkgs";
|
||||||
|
|
||||||
nixvim = {
|
nixvim = {
|
||||||
url = "github:nix-community/nixvim/nixos-25.05";
|
url = "github:nix-community/nixvim/nixos-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,13 @@ in
|
|||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
hostPlatform = "x86_64-linux";
|
hostPlatform = "x86_64-linux";
|
||||||
|
config.permittedInsecurePackages = [
|
||||||
|
"qtwebengine-5.15.19"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||||
|
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot = {
|
systemd-boot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -100,7 +105,7 @@ in
|
|||||||
};
|
};
|
||||||
desktop = {
|
desktop = {
|
||||||
gnome.enable = lib.mkForce false;
|
gnome.enable = lib.mkForce false;
|
||||||
hyprland.enable = true;
|
hyprland.enable = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ in
|
|||||||
"amdgpu.sched_hw_submission=4"
|
"amdgpu.sched_hw_submission=4"
|
||||||
"audit=0"
|
"audit=0"
|
||||||
];
|
];
|
||||||
kernelPackages = pkgs.linuxPackages_6_15;
|
kernelPackages = pkgs.linuxPackages_6_17;
|
||||||
supportedFilesystems = [ "ntfs" ];
|
supportedFilesystems = [ "ntfs" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
1
hosts/artemis/ssh_host_ed25519_key.pub
Normal file
1
hosts/artemis/ssh_host_ed25519_key.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDXJmnp4LUE9AFjGHwvxAu4m/3PB2uYQ69F7wYv7cGGT
|
||||||
@@ -9,6 +9,8 @@
|
|||||||
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||||||
|
|
||||||
|
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||||
|
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
|
|||||||
1
hosts/atlas/ssh_host_ed25519_key.pub
Normal file
1
hosts/atlas/ssh_host_ed25519_key.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPddvpZeCUelUGsnFvx87WOqKKc+MGPU6+rx6s1ReWQl
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
overlays = [
|
overlays = [
|
||||||
inputs.agenix.overlays.default
|
inputs.agenix.overlays.default
|
||||||
|
inputs.niri.overlays.niri
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
unstable = import inputs.nixpkgs-unstable {
|
unstable = import inputs.nixpkgs-unstable {
|
||||||
config = {
|
config = {
|
||||||
@@ -117,13 +118,14 @@
|
|||||||
dates = "weekly";
|
dates = "weekly";
|
||||||
options = "-d --delete-older-than 7d";
|
options = "-d --delete-older-than 7d";
|
||||||
};
|
};
|
||||||
|
registry.unstable.flake = inputs.nixpkgs-unstable;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
sharedModules = [
|
sharedModules = [
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeModules.nixvim
|
||||||
{
|
{
|
||||||
home.stateVersion = config.system.stateVersion;
|
home.stateVersion = config.system.stateVersion;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
system.autoUpgrade = {
|
system.autoUpgrade = {
|
||||||
enable = true;
|
enable = false;
|
||||||
flake = "git+ssh://git@git.vimium.com/jordan/nix-config.git";
|
flake = "git+ssh://git@git.vimium.com/jordan/nix-config.git";
|
||||||
randomizedDelaySec = "10min";
|
randomizedDelaySec = "10min";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ in
|
|||||||
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||||||
|
|
||||||
|
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
loader.grub = {
|
loader.grub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
1
hosts/helios/ssh_host_ed25519_key.pub
Normal file
1
hosts/helios/ssh_host_ed25519_key.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL2tDij7eTDbljl6Crz4i7qrM0lgp8U2T9ZMXt7VQPT/
|
||||||
@@ -22,6 +22,8 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||||
|
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
|
|||||||
1
hosts/hypnos/ssh_host_ed25519_key.pub
Normal file
1
hosts/hypnos/ssh_host_ed25519_key.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINGlbvy+4QHbveFbS6r9S0JWUVHeI/MgYLyGtfpZqJ/3
|
||||||
@@ -4,6 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
stateDir = "/var/lib/open-webui";
|
||||||
|
in
|
||||||
{
|
{
|
||||||
age.secrets.open-webui-env = {
|
age.secrets.open-webui-env = {
|
||||||
rekeyFile = ./secrets/open-webui-env.age;
|
rekeyFile = ./secrets/open-webui-env.age;
|
||||||
@@ -13,6 +16,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.unstable.open-webui;
|
package = pkgs.unstable.open-webui;
|
||||||
port = 8081;
|
port = 8081;
|
||||||
|
host = "0.0.0.0";
|
||||||
environment =
|
environment =
|
||||||
let
|
let
|
||||||
clientId = "open-webui";
|
clientId = "open-webui";
|
||||||
@@ -28,10 +32,33 @@
|
|||||||
OFFLINE_MODE = "True";
|
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";
|
||||||
|
|
||||||
|
# Fix from https://github.com/NixOS/nixpkgs/pull/431395
|
||||||
|
STATIC_DIR = "${stateDir}/static";
|
||||||
|
DATA_DIR = "${stateDir}/data";
|
||||||
|
HF_HOME = "${stateDir}/hf_home";
|
||||||
|
SENTENCE_TRANSFORMERS_HOME = "${stateDir}/transformers_home";
|
||||||
};
|
};
|
||||||
environmentFile = config.age.secrets.open-webui-env.path;
|
environmentFile = config.age.secrets.open-webui-env.path;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Fix from https://github.com/NixOS/nixpkgs/pull/432897
|
||||||
|
systemd.services.open-webui.preStart = ''
|
||||||
|
if [ -d "${stateDir}/data" ] && [ -n "$(ls -A "${stateDir}/data" 2>/dev/null)" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "${stateDir}/data"
|
||||||
|
|
||||||
|
[ -f "${stateDir}/webui.db" ] && mv "${stateDir}/webui.db" "${stateDir}/data/"
|
||||||
|
|
||||||
|
for dir in cache uploads vector_db; do
|
||||||
|
[ -d "${stateDir}/$dir" ] && mv "${stateDir}/$dir" "${stateDir}/data/"
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
'';
|
||||||
|
|
||||||
modules.services.borgmatic.directories = [
|
modules.services.borgmatic.directories = [
|
||||||
"/var/lib/private/open-webui"
|
"/var/lib/private/open-webui"
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
vaapiVdpau
|
libva-vdpau-driver
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
services.meilisearch = {
|
services.meilisearch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.meilisearch;
|
package = pkgs.meilisearch;
|
||||||
masterKeyEnvironmentFile = config.age.secrets."files/services/meilisearch/envfile".path;
|
masterKeyFile = config.age.secrets."files/services/meilisearch/envfile".path;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.jellysearch = {
|
users.users.jellysearch = {
|
||||||
|
|||||||
@@ -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" = {
|
"jellyfin.vimium.com" = {
|
||||||
default = true;
|
default = true;
|
||||||
listen = [
|
listen = [
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||||||
|
|
||||||
|
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostId = "08ac2f14";
|
hostId = "08ac2f14";
|
||||||
firewall = {
|
firewall = {
|
||||||
|
|||||||
1
hosts/mail/ssh_host_ed25519_key.pub
Normal file
1
hosts/mail/ssh_host_ed25519_key.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGLHtC0JmFfct+lYl0EjgphutmeYY8BWDctY3+/TsO6L
|
||||||
1
hosts/odyssey/aws.env
Normal file
1
hosts/odyssey/aws.env
Normal file
@@ -0,0 +1 @@
|
|||||||
|
AWS_REGION=us-east-1
|
||||||
35
hosts/odyssey/comfyui-docker.nix
Normal file
35
hosts/odyssey/comfyui-docker.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
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";
|
||||||
|
FORCE_SAGE_ATTENTION = "1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -7,7 +7,9 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
./comfyui-docker.nix
|
||||||
./gitea-runner.nix
|
./gitea-runner.nix
|
||||||
|
./home-assistant
|
||||||
./nix-serve.nix
|
./nix-serve.nix
|
||||||
../desktop.nix
|
../desktop.nix
|
||||||
../../users/jordan
|
../../users/jordan
|
||||||
@@ -20,6 +22,8 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||||
|
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot = {
|
systemd-boot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -61,6 +65,24 @@
|
|||||||
|
|
||||||
services.pcscd.enable = true;
|
services.pcscd.enable = true;
|
||||||
|
|
||||||
|
security.acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults = {
|
||||||
|
email = "hostmaster@vimium.com";
|
||||||
|
dnsProvider = "route53";
|
||||||
|
dnsResolver = "9.9.9.9";
|
||||||
|
credentialFiles = {
|
||||||
|
AWS_SHARED_CREDENTIALS_FILE = "/home/jordan/projects/vimium/infra/credentials";
|
||||||
|
};
|
||||||
|
environmentFile = ./aws.env;
|
||||||
|
};
|
||||||
|
certs = {
|
||||||
|
"vimium.com" = {
|
||||||
|
extraDomainNames = [ "*.vimium.com" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
hardware.presonus-studio.enable = true;
|
hardware.presonus-studio.enable = true;
|
||||||
services = {
|
services = {
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
powerManagement.enable = true;
|
powerManagement.enable = true;
|
||||||
nvidiaSettings = false;
|
nvidiaSettings = false;
|
||||||
};
|
};
|
||||||
|
nvidia-container-toolkit.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = "schedutil";
|
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
|
||||||
|
*********************
|
||||||
|
*/
|
||||||
|
}
|
||||||
@@ -124,13 +124,13 @@
|
|||||||
"folder_watcher"
|
"folder_watcher"
|
||||||
"forecast_solar"
|
"forecast_solar"
|
||||||
"frontend"
|
"frontend"
|
||||||
"gdacs"
|
# "gdacs"
|
||||||
"generic"
|
"generic"
|
||||||
"generic_hygrostat"
|
"generic_hygrostat"
|
||||||
"generic_thermostat"
|
"generic_thermostat"
|
||||||
"geo_json_events"
|
"geo_json_events"
|
||||||
"geo_location"
|
"geo_location"
|
||||||
"geo_rss_events"
|
# "geo_rss_events"
|
||||||
"github"
|
"github"
|
||||||
"group"
|
"group"
|
||||||
"hardware"
|
"hardware"
|
||||||
@@ -244,6 +244,7 @@
|
|||||||
"wake_on_lan"
|
"wake_on_lan"
|
||||||
"water_heater"
|
"water_heater"
|
||||||
"weather"
|
"weather"
|
||||||
|
"webostv"
|
||||||
"websocket_api"
|
"websocket_api"
|
||||||
"wled"
|
"wled"
|
||||||
"workday"
|
"workday"
|
||||||
1
hosts/odyssey/ssh_host_ed25519_key.pub
Normal file
1
hosts/odyssey/ssh_host_ed25519_key.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJre8/cjdoUnbTu0x4ClTITcq4lq+FjpEyJBbLbOlox7
|
||||||
@@ -27,3 +27,4 @@ SD card | `/dev/mmcblk0` (ext4, NixOS Root)
|
|||||||
- HDMI to ONKYO HT-R990
|
- HDMI to ONKYO HT-R990
|
||||||
- S/PDIF to ONKYO HT-R990
|
- S/PDIF to ONKYO HT-R990
|
||||||
- Ethernet to ONKYO HT-R990
|
- Ethernet to ONKYO HT-R990
|
||||||
|
- Ethernet to LG TV
|
||||||
|
|||||||
@@ -8,13 +8,14 @@
|
|||||||
imports = [
|
imports = [
|
||||||
inputs.nixos-hardware.nixosModules.raspberry-pi-4
|
inputs.nixos-hardware.nixosModules.raspberry-pi-4
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./home-assistant
|
|
||||||
./snapcast.nix
|
./snapcast.nix
|
||||||
../server.nix
|
../server.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "aarch64-linux";
|
nixpkgs.hostPlatform = "aarch64-linux";
|
||||||
|
|
||||||
|
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
raspberry-pi."4" = {
|
raspberry-pi."4" = {
|
||||||
apply-overlays-dtmerge.enable = true;
|
apply-overlays-dtmerge.enable = true;
|
||||||
@@ -99,7 +100,7 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
firmware = with pkgs; [
|
firmware = with pkgs; [
|
||||||
firmwareLinuxNonfree
|
linux-firmware
|
||||||
wireless-regdb
|
wireless-regdb
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -129,14 +130,25 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Connection to ONKYO HT-R990
|
networking.interfaces = {
|
||||||
networking.interfaces.end0 = {
|
# Connection to ONKYO HT-R990
|
||||||
ipv4.addresses = [
|
end0 = {
|
||||||
{
|
ipv4.addresses = [
|
||||||
address = "172.16.0.1";
|
{
|
||||||
prefixLength = 30;
|
address = "172.16.0.1";
|
||||||
}
|
prefixLength = 30;
|
||||||
];
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
# Connection to LG TV
|
||||||
|
enp1s0u2 = {
|
||||||
|
ipv4.addresses = [
|
||||||
|
{
|
||||||
|
address = "172.16.1.1";
|
||||||
|
prefixLength = 30;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|||||||
@@ -18,15 +18,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
services.snapserver = {
|
services.snapserver = {
|
||||||
enable = true;
|
enable = false;
|
||||||
streams = {
|
|
||||||
default = {
|
|
||||||
type = "file";
|
|
||||||
location = "/var/lib/snapserver/test.wav";
|
|
||||||
sampleFormat = "44100:16:2";
|
|
||||||
codec = "flac";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.snapclient = {
|
systemd.services.snapclient = {
|
||||||
|
|||||||
1
hosts/pi/ssh_host_ed25519_key.pub
Normal file
1
hosts/pi/ssh_host_ed25519_key.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFYv5V6Lr1Er1dljwmunurIz1Q3Ce5FsFSxtUOW6aO9J
|
||||||
@@ -11,6 +11,8 @@
|
|||||||
|
|
||||||
nixpkgs.hostPlatform = "aarch64-linux";
|
nixpkgs.hostPlatform = "aarch64-linux";
|
||||||
|
|
||||||
|
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostId = "731d1660";
|
hostId = "731d1660";
|
||||||
firewall = {
|
firewall = {
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
firmware = with pkgs; [
|
firmware = with pkgs; [
|
||||||
firmwareLinuxNonfree
|
linux-firmware
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
1
hosts/skycam/ssh_host_ed25519_key.pub
Normal file
1
hosts/skycam/ssh_host_ed25519_key.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHv5+HwcRetBxtQZXpGbYv22S4prJu9bYCzKTSoMCl8D
|
||||||
@@ -36,7 +36,7 @@ in
|
|||||||
{
|
{
|
||||||
name = "home.mesh.vimium.net";
|
name = "home.mesh.vimium.net";
|
||||||
type = "A";
|
type = "A";
|
||||||
value = "100.64.0.7";
|
value = "100.64.0.5";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
magic_dns = true;
|
magic_dns = true;
|
||||||
@@ -60,7 +60,7 @@ in
|
|||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://localhost:${toString config.services.headscale.port}";
|
proxyPass = "http://127.0.0.1:${toString config.services.headscale.port}";
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ in
|
|||||||
uri = "https://${domain}";
|
uri = "https://${domain}";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
package = pkgs.unstable.kanidmWithSecretProvisioning;
|
package = pkgs.unstable.kanidmWithSecretProvisioning_1_7;
|
||||||
enableClient = true;
|
enableClient = true;
|
||||||
enableServer = true;
|
enableServer = true;
|
||||||
clientSettings = {
|
clientSettings = {
|
||||||
@@ -124,6 +124,7 @@ in
|
|||||||
systemd.services.kanidm = {
|
systemd.services.kanidm = {
|
||||||
requires = [ "tailscaled.service" ];
|
requires = [ "tailscaled.service" ];
|
||||||
after = [ "tailscaled.service" ];
|
after = [ "tailscaled.service" ];
|
||||||
|
serviceConfig.RestartSec = "60";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nginx.virtualHosts = {
|
services.nginx.virtualHosts = {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
inputs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
@@ -26,30 +27,31 @@ let
|
|||||||
};
|
};
|
||||||
matrixServerConfig."m.server" = "${matrixSubdomain}:443";
|
matrixServerConfig."m.server" = "${matrixSubdomain}:443";
|
||||||
commonBridgeSettings = bridge: {
|
commonBridgeSettings = bridge: {
|
||||||
appservice = {
|
database = lib.mkIf usePostgresql {
|
||||||
database = lib.mkIf usePostgresql {
|
type = "postgres";
|
||||||
type = "postgres";
|
uri = "postgresql:///${bridge}?host=/run/postgresql";
|
||||||
uri = "postgresql:///${bridge}?host=/run/postgresql";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
bridge = {
|
bridge = {
|
||||||
encryption = {
|
|
||||||
allow = true;
|
|
||||||
default = true;
|
|
||||||
require = true;
|
|
||||||
};
|
|
||||||
permissions = {
|
permissions = {
|
||||||
"${serverName}" = "user";
|
"${serverName}" = "user";
|
||||||
"@jordan:${serverName}" = "admin";
|
"@jordan:${serverName}" = "admin";
|
||||||
};
|
};
|
||||||
provisioning = {
|
};
|
||||||
shared_secret = "disable";
|
encryption = {
|
||||||
};
|
allow = true;
|
||||||
|
default = true;
|
||||||
|
require = true;
|
||||||
|
};
|
||||||
|
provisioning = {
|
||||||
|
shared_secret = "disable";
|
||||||
};
|
};
|
||||||
homeserver = {
|
homeserver = {
|
||||||
address = "https://${matrixSubdomain}";
|
address = "https://${matrixSubdomain}";
|
||||||
domain = serverName;
|
domain = serverName;
|
||||||
};
|
};
|
||||||
|
double_puppet.secrets = {
|
||||||
|
"${serverName}" = "as_token:$MAUTRIX_DOUBLEPUPPET_TOKEN";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
proxyConfig = ''
|
proxyConfig = ''
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
@@ -61,6 +63,33 @@ let
|
|||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
# Backport new options from https://github.com/NixOS/nixpkgs/pull/446155
|
||||||
|
disabledModules = [
|
||||||
|
"services/matrix/mautrix-whatsapp.nix"
|
||||||
|
];
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
(inputs.nixpkgs-unstable + /nixos/modules/services/matrix/mautrix-whatsapp.nix)
|
||||||
|
];
|
||||||
|
|
||||||
|
age.secrets = {
|
||||||
|
mautrix-doublepuppet-registration = {
|
||||||
|
rekeyFile = ./secrets/mautrix-doublepuppet-registration.age;
|
||||||
|
mode = "0440";
|
||||||
|
group = "matrix-synapse";
|
||||||
|
};
|
||||||
|
mautrix-signal-env = {
|
||||||
|
rekeyFile = ./secrets/mautrix-signal-env.age;
|
||||||
|
mode = "0440";
|
||||||
|
group = "mautrix-signal";
|
||||||
|
};
|
||||||
|
mautrix-whatsapp-env = {
|
||||||
|
rekeyFile = ./secrets/mautrix-whatsapp-env.age;
|
||||||
|
mode = "0440";
|
||||||
|
group = "mautrix-whatsapp";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
8448 # Matrix federation
|
8448 # Matrix federation
|
||||||
];
|
];
|
||||||
@@ -107,16 +136,16 @@ in
|
|||||||
];
|
];
|
||||||
locations = {
|
locations = {
|
||||||
"/" = {
|
"/" = {
|
||||||
proxyPass = "http://localhost:8008";
|
proxyPass = "http://127.0.0.1:8008";
|
||||||
extraConfig = proxyConfig;
|
extraConfig = proxyConfig;
|
||||||
};
|
};
|
||||||
"/_matrix" = {
|
"/_matrix" = {
|
||||||
proxyPass = "http://localhost:8008";
|
proxyPass = "http://127.0.0.1:8008";
|
||||||
extraConfig = proxyConfig + ''
|
extraConfig = proxyConfig + ''
|
||||||
client_max_body_size 50M;
|
client_max_body_size 50M;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
"/_synapse/client".proxyPass = "http://localhost:8008";
|
"/_synapse/client".proxyPass = "http://127.0.0.1:8008";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"${serverName}" =
|
"${serverName}" =
|
||||||
@@ -167,6 +196,9 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
enableRegistrationScript = true;
|
enableRegistrationScript = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
app_service_config_files = [
|
||||||
|
config.age.secrets.mautrix-doublepuppet-registration.path
|
||||||
|
];
|
||||||
database.name = (if usePostgresql then "psycopg2" else "sqlite3");
|
database.name = (if usePostgresql then "psycopg2" else "sqlite3");
|
||||||
enable_metrics = false;
|
enable_metrics = false;
|
||||||
enable_registration = false;
|
enable_registration = false;
|
||||||
@@ -203,23 +235,33 @@ in
|
|||||||
|
|
||||||
services.mautrix-signal = lib.mkIf bridges.signal {
|
services.mautrix-signal = lib.mkIf bridges.signal {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = commonBridgeSettings "mautrix-signal";
|
environmentFile = config.age.secrets.mautrix-signal-env.path;
|
||||||
|
settings = lib.recursiveUpdate {
|
||||||
|
encryption = {
|
||||||
|
pickle_key = "$MAUTRIX_SIGNAL_ENCRYPTION_PICKLE_KEY";
|
||||||
|
};
|
||||||
|
} (commonBridgeSettings "mautrix-signal");
|
||||||
};
|
};
|
||||||
|
|
||||||
services.mautrix-whatsapp = lib.mkIf bridges.whatsapp {
|
services.mautrix-whatsapp = lib.mkIf bridges.whatsapp {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
environmentFile = config.age.secrets.mautrix-whatsapp-env.path;
|
||||||
bridge = {
|
settings = lib.recursiveUpdate {
|
||||||
|
backfill = {
|
||||||
|
enabled = true;
|
||||||
|
max_initial_messags = 50;
|
||||||
|
};
|
||||||
|
encryption = {
|
||||||
|
pickle_key = "$MAUTRIX_WHATSAPP_ENCRYPTION_PICKLE_KEY";
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
mute_status_broadcast = true;
|
||||||
history_sync = {
|
history_sync = {
|
||||||
backfill = true;
|
|
||||||
max_initial_conversations = -1;
|
max_initial_conversations = -1;
|
||||||
message_count = 50;
|
|
||||||
request_full_sync = true;
|
request_full_sync = true;
|
||||||
};
|
};
|
||||||
mute_bridging = true;
|
|
||||||
};
|
};
|
||||||
}
|
} (commonBridgeSettings "mautrix-whatsapp");
|
||||||
// commonBridgeSettings "mautrix-whatsapp";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.persistence."/persist".directories = [
|
environment.persistence."/persist".directories = [
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ let
|
|||||||
add_header Expect-CT max-age=30 always;
|
add_header Expect-CT max-age=30 always;
|
||||||
add_header Referrer-Policy strict-origin-when-cross-origin always;
|
add_header Referrer-Policy strict-origin-when-cross-origin always;
|
||||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
|
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
|
||||||
add_header Vimium-Responding-Instance $hostname;
|
add_header Vimium-Responding-Instance edge-lhr-a0 always;
|
||||||
add_header X-XSS-Protection "1; mode=block" always;
|
add_header X-XSS-Protection "1; mode=block" always;
|
||||||
add_header X-Content-Type-Options nosniff always;
|
add_header X-Content-Type-Options nosniff always;
|
||||||
'';
|
'';
|
||||||
@@ -82,14 +82,33 @@ in
|
|||||||
maxSize = "100m";
|
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 = {
|
virtualHosts = {
|
||||||
## Static sites
|
## Proxied sites
|
||||||
"chat.ai.vimium.com" = {
|
"chat.ai.vimium.com" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
extraConfig = nginxErrorPages + nginxEdgeHeaders;
|
extraConfig = nginxErrorPages + nginxEdgeHeaders;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://localhost:8001";
|
proxyPass = "http://open-webui";
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
@@ -114,7 +133,7 @@ in
|
|||||||
enableACME = true;
|
enableACME = true;
|
||||||
extraConfig = nginxErrorPages + nginxEdgeHeaders;
|
extraConfig = nginxErrorPages + nginxEdgeHeaders;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://localhost:8000";
|
proxyPass = "http://jellyfin";
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
@@ -129,7 +148,12 @@ in
|
|||||||
proxy_set_header Connection "upgrade";
|
proxy_set_header Connection "upgrade";
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
locations."/metrics" = {
|
||||||
|
return = "404";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
## Static sites
|
||||||
"jdholt.com" = {
|
"jdholt.com" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
@@ -140,11 +164,8 @@ in
|
|||||||
};
|
};
|
||||||
locations."/skycam/snapshot.jpg" = {
|
locations."/skycam/snapshot.jpg" = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
set $backend "skycam.mesh.vimium.net:1984";
|
set $args "";
|
||||||
|
proxy_pass http://skycam/api/frame.jpeg?src=rpicam;
|
||||||
resolver 100.100.100.100;
|
|
||||||
|
|
||||||
proxy_pass http://$backend/api/frame.jpeg?src=rpicam;
|
|
||||||
proxy_cache skycam_cache;
|
proxy_cache skycam_cache;
|
||||||
proxy_cache_valid any 10s;
|
proxy_cache_valid any 10s;
|
||||||
proxy_ignore_headers Cache-Control Expires Set-Cookie;
|
proxy_ignore_headers Cache-Control Expires Set-Cookie;
|
||||||
@@ -181,6 +202,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
## Redirects
|
## Redirects
|
||||||
// (mkRedirect "h0lt.com" "jdholt.com")
|
// (mkRedirect "h0lt.com" "jdholt.com")
|
||||||
// (mkRedirect "jordanholt.xyz" "jdholt.com")
|
// (mkRedirect "jordanholt.xyz" "jdholt.com")
|
||||||
|
|||||||
BIN
hosts/vps1/secrets/mautrix-doublepuppet-registration.age
Normal file
BIN
hosts/vps1/secrets/mautrix-doublepuppet-registration.age
Normal file
Binary file not shown.
9
hosts/vps1/secrets/mautrix-signal-env.age
Normal file
9
hosts/vps1/secrets/mautrix-signal-env.age
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> piv-p256 a1N2XA AuFF7Zqic+KNiU82xDS8ItdNSnr1045DpKOyYHZgq3kE
|
||||||
|
qNK+p6I6kR2A41d/gVyCp2b3xu7g0/rCXIL22Gal3IA
|
||||||
|
-> R.kR/-r-grease 5Q54Z B.x PMjy\
|
||||||
|
3ajY8AoJzUB9fiDnHoFVSIPEfvgAk2VtJeHNOno9cxeK6uZ+Ve22pUWBN2cp+2Qz
|
||||||
|
J7J9U1zQWVSOum3dDmscAVBzf4Hw2hUBZcAnZA
|
||||||
|
--- hZ4N9mXSCS3zT9R/Axb9dWVx5Lr+mLxxXuR45oehok4
|
||||||
|
§½z󩃢âJ%ÓÍwþèðÍœŸ–ùcÛ' “«ÀK39¦´Ë¯ÀqªGøbX6<58>6±Ìšƒ¶p˜4ºmG<6D>æÕá¤ãŒÄ
|
||||||
|
ꇿë`¿8
|
||||||
BIN
hosts/vps1/secrets/mautrix-whatsapp-env.age
Normal file
BIN
hosts/vps1/secrets/mautrix-whatsapp-env.age
Normal file
Binary file not shown.
@@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
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";
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -47,7 +47,6 @@ in
|
|||||||
gnomeExtensions.dash-to-panel
|
gnomeExtensions.dash-to-panel
|
||||||
gnomeExtensions.desktop-cube
|
gnomeExtensions.desktop-cube
|
||||||
gnomeExtensions.easyScreenCast
|
gnomeExtensions.easyScreenCast
|
||||||
gnomeExtensions.espresso
|
|
||||||
gnomeExtensions.fly-pie
|
gnomeExtensions.fly-pie
|
||||||
gnomeExtensions.forge
|
gnomeExtensions.forge
|
||||||
gnomeExtensions.gsconnect
|
gnomeExtensions.gsconnect
|
||||||
|
|||||||
@@ -54,7 +54,6 @@
|
|||||||
"pi"
|
"pi"
|
||||||
"skycam"
|
"skycam"
|
||||||
"vps1"
|
"vps1"
|
||||||
"vps2"
|
|
||||||
] mkDeployNode;
|
] mkDeployNode;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 mV4Rog gj6NT+DEVJbKeGArVcbzNphmMXoXFmVPHlo+zWuI1Ek
|
||||||
|
Wt0saIoq6RnQR1jVLHI84JMDP0rCvc1kfjSQoSHly/4
|
||||||
|
-> t-grease <a`) :34)]ad /J) =]!RB~HB
|
||||||
|
m7JCE0PP2H9DkOdbj/dhZATaXfIoPmocKnGkYUXnjyo99nVMMy2FSmNdZyE0KGCR
|
||||||
|
eVkIGwJbH3HNimXst62gIxvSrFQ4a4IcO1Cv8UaMK9UjGfy731BRpg
|
||||||
|
--- bEP7E9Ajvw0pIWFF7+QakdFigo0B+0aa0ha9/Y/OADA
|
||||||
|
ZrÕ«ö‰0/^´2µB
|
||||||
|
oÒÀ’@3±¡~qSò‰–û¥H fa ¤¨Sœ0Àˆ•ŸrvŠ«ÑB+¿
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 3xQa4Q 3I7Mpt3/StzFpy8/egW+PleMsKV/YFsw1lpzt0057ns
|
||||||
|
Plc2u/sza/Fga8lnCMj4rH8midPdaFP+FZ1J8+pwRP8
|
||||||
|
-> .-grease !Yk9l62 H3@'J 9Klw
|
||||||
|
2fJgCUF22ciTm8EfYemHjA1uN1jkVGLGfcTllU8m08Ya2fUPig7ZK4fNLV3ttMc4
|
||||||
|
uLthrVZFo1HKF2wQSMeDq+ITZItvxHg2NFxqkWRCJv4
|
||||||
|
--- r3Fao3CQxFocTu4+9/Nh0zcCvTYQWpmRQD112YiAIwU
|
||||||
|
[µXG¹àÞŒ¡ÑÝ€aFa‘‹K|Å' øËdOµX§ ¨éúùGÁLHÿ€’©<>4¥<34>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 5PDipg Eic12F37CNvDBqlFV17aMYXTS/eFKEd8SYfOvKV2CGY
|
||||||
|
Co7whyv5vxJnlELVyIZJiNmj+hATpw1/QpK2t8CtcvE
|
||||||
|
-> >e`c+0-grease D[m[ *0=DB?=
|
||||||
|
uPUY90BUNR6Hm0F2Q0F+dXWkUOe4cLjrAvkcxaR79km0qMgJ/C7ribHeWpK3siOe
|
||||||
|
2zz5YA
|
||||||
|
--- XoQX1p09n36Cqyc0sEShbtcn4wbX68ULdGNrDzX5w04
|
||||||
|
üš»AñXÖÓÄÝf’³(ã=<3D>†ÒeÈuϘÆz@ V.ù~Ê_Ié#å<>¤#2Q;9DÅ$el®H<C2AE>Ã;
|
||||||
|
‘`5âÂ
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 jqV4bA 9vHES4DslQIplaJN4M+TnWzQxPwO0WOWnusIQxrQqh8
|
||||||
|
oLran53jiS0hjirGdMD/akpaNCNvKY5M0+i/6ky5HNM
|
||||||
|
-> 2ZC`)9-grease W G
|
||||||
|
ZW4ghYvlO1xs0GHJldTD1ZdM+wXYQ4dNdZsg81dTE7VxIona+puaHU9MBq/v2+Sg
|
||||||
|
qmqbacPFykJqeBG/uhJHYHgjbuHT8c0gTvWH3RCIQEPq
|
||||||
|
--- fS6Rtw7zUkvtwfx1/GIHT40nzsmh5Nfj7/SG9svMXAQ
|
||||||
|
käE8ÙÏ<EFBFBD>ôEƒrhé”@ìZ•U9›ën›¡teiŸËW6YèbjCÄ•·PÍ.rÝÁË“<C2AD>÷Ìæ>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 lOyIlA LfDvF0kXFmP4yGPz9A5uov9DbRfMeLniWQhgnYE3ZA0
|
||||||
|
9GkGo/twG1cfOHZgRGAmAcfQlrgQ86QvgehbkleKyz0
|
||||||
|
-> GEv|{-grease c)B+5+, \v$ piek
|
||||||
|
hwIw75OzOhfdScMKrNZ5i+WWh5zcfMryQXdbz81yUkEjWm9P4UVOYee+zz4/PU+t
|
||||||
|
6nEKEqvPf6RwBOzAlzx72Yi0l+onxh1CHOWRlfU
|
||||||
|
--- dkZlSoaBUqLnMu25ocR0VwgPr190ZOmcMdxQ3KApFS0
|
||||||
|
ƒþ<Ù²õŒ}M9Gdhœú’³0[ù¹ú¡²¯Ì®È¼ažjÅg–…¨:JÀ»Æ$:^èä€OÓeêø@÷žoé‡1
|
||||||
|
¤r]I>†tü?°XãQٕى¡„A¯r)ab §’”Ü$8e“ˆ<E2809C>½f¥Å<C2A5>zÍ7ÓÜÁlf)Õ|jl“%öâ
|
||||||
|
v-òá!ª‘•(ÕÙ.qR…ÚÙ*yŽÁ¿¿XªÙµ
|
||||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 lOyIlA ZQWnreUg4ob9RmEKNrdJKWGRCC1k0HWc8op8ycG5uXU
|
||||||
|
U6SEQWo1DoLxclnhkXJy3D93nuijiD4kk9qjMk61Yis
|
||||||
|
-> b(/|-grease
|
||||||
|
CUalICYuF4P5Ipe5C6gdrw
|
||||||
|
--- OmIGQ6VJYZcCIkTPapXNIMJswGczS/1bp8A+AeAj0yU
|
||||||
|
¡MÜlànY›K-ç‹ÝG·^\Žõêèk(—ZØþ•˜·Z›$-=(<28>¢å¨·ÅßHú¤Õ=4ŸÌÙ‹#ƒYÑ7òø‡tnÝ<6E>gØp>`ÄÈE©B$ Â÷0Œ<30>¥ž8BWOá°Ù<C2B0>) (ŸüU®"Ͻî54U²Gþ‰oÈ¥?¯ðu§Aôâ
|
||||||
|
z`¥d3Ij`†Ò€¬SK¤Û}$ì×ã®<03>8%Ž·Á—ë9ÈÙÀ÷½?1tZ¤Av´+ê¢Jœ”Ï<E2809D>Z¥u˜lsôkJ+-Îhœ‚–µ
|
||||||
20
users/guest/common/optional/graphical/jellyfin.nix
Normal file
20
users/guest/common/optional/graphical/jellyfin.nix
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gamescope
|
||||||
|
jellyfin-media-player
|
||||||
|
];
|
||||||
|
|
||||||
|
home.persistence."/state".directories = [
|
||||||
|
".cache/jellyfin.org"
|
||||||
|
];
|
||||||
|
|
||||||
|
home.persistence."/persist".directories = [
|
||||||
|
".config/jellyfin.org"
|
||||||
|
".local/share/jellyfinmediaplayer"
|
||||||
|
".local/share/Jellyfin Media Player"
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -8,23 +8,10 @@
|
|||||||
steam
|
steam
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.user.services.steam-big-picture = {
|
home.persistence."/persist".directories = [
|
||||||
Unit = {
|
".config/gamescope"
|
||||||
Description = "Steam Big Picture in Gamescope";
|
".local/share/Steam"
|
||||||
After = [
|
".local/share/vulkan"
|
||||||
"graphical.target"
|
".steam"
|
||||||
"default.target"
|
];
|
||||||
];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
ExecStart = ''
|
|
||||||
${pkgs.gamescope}/bin/gamescope --rt --backend drm --steam -- \
|
|
||||||
${pkgs.steam}/bin/steam -pipewire-dmabuf -tenfoot
|
|
||||||
'';
|
|
||||||
Restart = "always";
|
|
||||||
};
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "default.target" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,11 +22,13 @@ in
|
|||||||
];
|
];
|
||||||
group = "users";
|
group = "users";
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
|
password = "";
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.${name} = {
|
home-manager.users.${name} = {
|
||||||
imports = [
|
imports = [
|
||||||
|
./common/optional/graphical/jellyfin.nix
|
||||||
./common/optional/graphical/steam.nix
|
./common/optional/graphical/steam.nix
|
||||||
{
|
{
|
||||||
home.persistence."/state" = {
|
home.persistence."/state" = {
|
||||||
@@ -36,11 +38,7 @@ in
|
|||||||
};
|
};
|
||||||
home.persistence."/persist" = {
|
home.persistence."/persist" = {
|
||||||
directories = [
|
directories = [
|
||||||
".config/gamescope"
|
|
||||||
".local/share/icons"
|
".local/share/icons"
|
||||||
".local/share/Steam"
|
|
||||||
".local/share/vulkan"
|
|
||||||
".steam"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -48,17 +46,140 @@ in
|
|||||||
++ optional (builtins.pathExists hostFile) hostFile;
|
++ optional (builtins.pathExists hostFile) hostFile;
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
adwaita-fonts
|
||||||
|
];
|
||||||
username = name;
|
username = name;
|
||||||
|
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;
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.getty = {
|
services.displayManager = {
|
||||||
autologinOnce = true;
|
enable = true;
|
||||||
autologinUser = "guest";
|
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
|
# Workaround: https://github.com/nix-community/home-manager/issues/7166
|
||||||
systemd.services."home-manager-${name}".serviceConfig = {
|
systemd.services."home-manager-${name}".serviceConfig = {
|
||||||
RemainAfterExit = "yes";
|
RemainAfterExit = "yes";
|
||||||
|
|||||||
@@ -12,9 +12,9 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
jellyfin-media-player
|
# jellyfin-media-player
|
||||||
lutris
|
unstable.lutris
|
||||||
unstable.pcsx2
|
pcsx2
|
||||||
xemu
|
xemu
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
jellyfin-media-player
|
# jellyfin-media-player
|
||||||
qbittorrent
|
qbittorrent
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,18 @@
|
|||||||
{
|
{
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
aliases = {
|
settings = {
|
||||||
amend = "commit --amend";
|
aliases = {
|
||||||
lg = "log --color --graph --abbrev-commit --";
|
amend = "commit --amend";
|
||||||
ls = "ls-files";
|
lg = "log --color --graph --abbrev-commit --";
|
||||||
unadd = "reset HEAD";
|
ls = "ls-files";
|
||||||
undo-commit = "reset --soft \"HEAD^\"";
|
unadd = "reset HEAD";
|
||||||
|
undo-commit = "reset --soft \"HEAD^\"";
|
||||||
|
};
|
||||||
|
user = {
|
||||||
|
email = "jordan@vimium.com";
|
||||||
|
name = "Jordan Holt";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
ignores = [
|
ignores = [
|
||||||
".Trash-*"
|
".Trash-*"
|
||||||
@@ -27,8 +33,6 @@
|
|||||||
"[._]*.un~"
|
"[._]*.un~"
|
||||||
"cmake-build-*/"
|
"cmake-build-*/"
|
||||||
];
|
];
|
||||||
userEmail = "jordan@vimium.com";
|
|
||||||
userName = "Jordan Holt";
|
|
||||||
signing = {
|
signing = {
|
||||||
key = "B8CFFF61F1CCF520";
|
key = "B8CFFF61F1CCF520";
|
||||||
signByDefault = true;
|
signByDefault = true;
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableSshSupport = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.persistence."/persist".directories = [
|
home.persistence."/persist".directories = [
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
osConfig,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@@ -10,6 +11,17 @@
|
|||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = 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 = {
|
opts = {
|
||||||
number = true;
|
number = true;
|
||||||
tabstop = 2;
|
tabstop = 2;
|
||||||
@@ -34,14 +46,88 @@
|
|||||||
providers.wl-copy.enable = true;
|
providers.wl-copy.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
colorschemes.onedark = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
style = "darker";
|
||||||
|
transparent = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins.cmp = {
|
||||||
|
enable = true;
|
||||||
|
autoEnableSources = true;
|
||||||
|
settings = {
|
||||||
|
sources = [
|
||||||
|
{ name = "nvim_lsp"; }
|
||||||
|
{ name = "path"; }
|
||||||
|
{ name = "buffer"; }
|
||||||
|
];
|
||||||
|
mapping = {
|
||||||
|
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||||
|
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||||
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins.codecompanion = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
adapters = {
|
||||||
|
http.opts.show_defaults = false;
|
||||||
|
http.openwebui.__raw = ''
|
||||||
|
function()
|
||||||
|
return require("codecompanion.adapters").extend("openai_compatible", {
|
||||||
|
name = "openwebui",
|
||||||
|
formatted_name = "Open WebUI",
|
||||||
|
opts = {
|
||||||
|
stream = true,
|
||||||
|
tools = true,
|
||||||
|
vision = false,
|
||||||
|
},
|
||||||
|
url = "''${url}''${chat_endpoint}",
|
||||||
|
env = {
|
||||||
|
api_key = "cmd:cat ${osConfig.age.secrets.open-webui-api-key.path}",
|
||||||
|
url = "https://chat.ai.vimium.com",
|
||||||
|
chat_endpoint = "/api/chat/completions",
|
||||||
|
models_endpoint = "/api/models",
|
||||||
|
},
|
||||||
|
headers = {
|
||||||
|
["Content-Type"] = "application/json",
|
||||||
|
Authorization = "Bearer ''${api_key}",
|
||||||
|
},
|
||||||
|
schema = {
|
||||||
|
model = {
|
||||||
|
default = "openai/gpt-5-chat",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
strategies = {
|
||||||
|
chat = {
|
||||||
|
adapter = "openwebui";
|
||||||
|
};
|
||||||
|
inline = {
|
||||||
|
adapter = "openwebui";
|
||||||
|
};
|
||||||
|
cmd = {
|
||||||
|
adapter = "openwebui";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
plugins.comment.enable = true;
|
plugins.comment.enable = true;
|
||||||
|
|
||||||
plugins.hmts.enable = true;
|
plugins.hmts.enable = true;
|
||||||
|
|
||||||
plugins.lightline.enable = true;
|
plugins.lightline.enable = true;
|
||||||
|
|
||||||
plugins.luasnip.enable = true;
|
|
||||||
|
|
||||||
plugins.lsp = {
|
plugins.lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
servers = {
|
servers = {
|
||||||
@@ -63,24 +149,9 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
plugins.nvim-autopairs.enable = true;
|
plugins.luasnip.enable = true;
|
||||||
|
|
||||||
plugins.cmp = {
|
plugins.nvim-autopairs.enable = true;
|
||||||
enable = true;
|
|
||||||
autoEnableSources = true;
|
|
||||||
settings = {
|
|
||||||
sources = [
|
|
||||||
{ name = "nvim_lsp"; }
|
|
||||||
{ name = "path"; }
|
|
||||||
{ name = "buffer"; }
|
|
||||||
];
|
|
||||||
mapping = {
|
|
||||||
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
|
||||||
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
|
||||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
plugins.telescope = {
|
plugins.telescope = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -105,9 +176,9 @@
|
|||||||
|
|
||||||
plugins.treesitter-refactor = {
|
plugins.treesitter-refactor = {
|
||||||
enable = true;
|
enable = true;
|
||||||
highlightDefinitions = {
|
settings.highlight_definitions = {
|
||||||
enable = true;
|
enable = true;
|
||||||
clearOnCursorMove = false;
|
clear_on_cursor_move = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -115,18 +186,41 @@
|
|||||||
|
|
||||||
plugins.vim-surround.enable = true;
|
plugins.vim-surround.enable = true;
|
||||||
|
|
||||||
|
plugins.visual-multi.enable = true;
|
||||||
|
|
||||||
plugins.web-devicons.enable = true;
|
plugins.web-devicons.enable = true;
|
||||||
|
|
||||||
# plugins.gitsigns.enable = true;
|
plugins.yazi.enable = true;
|
||||||
# plugins.gitgutter.enable = true;
|
|
||||||
# plugins.goyo.enable = true;
|
plugins.zen-mode.enable = true;
|
||||||
|
|
||||||
|
# plugins.actions-preview.enable = true;
|
||||||
|
# plugins.aerial.enable = true;
|
||||||
|
# plugins.arrow.enable = true;
|
||||||
|
# plugins.blink.enable = true;
|
||||||
|
# plugins.bufferline.enable = true;
|
||||||
|
# plugins.fidget.enable = true;
|
||||||
|
# plugins.flash.enable = true;
|
||||||
# plugins.fugitive.enable = true;
|
# plugins.fugitive.enable = true;
|
||||||
# plugins.fzf-lua.enable = true;
|
# plugins.fzf-lua.enable = true;
|
||||||
|
# plugins.gitsigns.enable = true;
|
||||||
|
# plugins.gitgutter.enable = true;
|
||||||
|
# plugins.glance.enable = true;
|
||||||
|
# plugins.hop.enable = true;
|
||||||
|
# plugins.improved-search.enable = true;
|
||||||
|
# plugins.goto-preview.enable = true;
|
||||||
|
# plugins.kulala.enable = true;
|
||||||
# plugins.neo-tree.enable = true;
|
# plugins.neo-tree.enable = true;
|
||||||
# plugins.none-ls.enable = true;
|
# plugins.none-ls.enable = true;
|
||||||
# plugins.nvim-tree.enable = true;
|
# plugins.nvim-dap.enable = true;
|
||||||
|
# plugins.nvim-dbee.enable = true;
|
||||||
|
# plugins.nvim-neoclip.enable = true;
|
||||||
# plugins.oil.enable = true;
|
# plugins.oil.enable = true;
|
||||||
|
# plugins.persisted.enable = true;
|
||||||
|
# plugins.precognition.enable = true;
|
||||||
# plugins.project-nvim.enable = true;
|
# plugins.project-nvim.enable = true;
|
||||||
|
# plugins.tardis.enable = true;
|
||||||
|
# plugins.typescript-tools.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.sessionVariables.EDITOR = "nvim";
|
home.sessionVariables.EDITOR = "nvim";
|
||||||
|
|||||||
@@ -8,6 +8,39 @@
|
|||||||
|
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
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 = {
|
profiles.Default = {
|
||||||
search = {
|
search = {
|
||||||
default = "ddg";
|
default = "ddg";
|
||||||
@@ -47,6 +80,9 @@
|
|||||||
"browser.urlbar.suggest.calculator" = true;
|
"browser.urlbar.suggest.calculator" = true;
|
||||||
"browser.urlbar.trending.featureGate" = false;
|
"browser.urlbar.trending.featureGate" = false;
|
||||||
"browser.urlbar.unitConversion.enabled" = true;
|
"browser.urlbar.unitConversion.enabled" = true;
|
||||||
|
"browser.aboutConfig.showWarning" = false;
|
||||||
|
"browser.aboutwelcome.enabled" = false;
|
||||||
|
"browser.shell.checkDefaultBrowser" = false;
|
||||||
"cookiebanners.service.mode" = 1;
|
"cookiebanners.service.mode" = 1;
|
||||||
"cookiebanners.service.mode.privateBrowsing" = 1;
|
"cookiebanners.service.mode.privateBrowsing" = 1;
|
||||||
"network.IDN_show_punycode" = true;
|
"network.IDN_show_punycode" = true;
|
||||||
@@ -99,6 +135,7 @@
|
|||||||
## Privacy
|
## Privacy
|
||||||
"dom.private-attribution.submission.enabled" = false;
|
"dom.private-attribution.submission.enabled" = false;
|
||||||
# "privacy.resistFingerprinting" = true;
|
# "privacy.resistFingerprinting" = true;
|
||||||
|
"privacy.resistFingerprinting.randomization.daily_reset.enabled" = true;
|
||||||
"privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = false;
|
"privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = false;
|
||||||
"privacy.trackingprotection.enabled" = true;
|
"privacy.trackingprotection.enabled" = true;
|
||||||
"privacy.trackingprotection.pbmode.enabled" = true;
|
"privacy.trackingprotection.pbmode.enabled" = true;
|
||||||
@@ -135,6 +172,13 @@
|
|||||||
"dom.webnotifications.serviceworker.enabled" = false;
|
"dom.webnotifications.serviceworker.enabled" = false;
|
||||||
"permissions.default.desktop-notification" = 2;
|
"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 / JavaScript
|
||||||
# "dom.event.clipboardevents.enabled" = false;
|
# "dom.event.clipboardevents.enabled" = false;
|
||||||
"middlemouse.paste" = false;
|
"middlemouse.paste" = false;
|
||||||
@@ -202,6 +246,31 @@
|
|||||||
"plugin.state.flash" = 0;
|
"plugin.state.flash" = 0;
|
||||||
"plugin.state.java" = 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
|
## Misc
|
||||||
"browser.selfsupport.url" = "";
|
"browser.selfsupport.url" = "";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -61,13 +61,13 @@ in
|
|||||||
portalPackage =
|
portalPackage =
|
||||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
plugins = [
|
plugins = [
|
||||||
pkgs.unstable.hyprlandPlugins.hyprbars
|
# pkgs.unstable.hyprlandPlugins.hyprbars
|
||||||
pkgs.unstable.hyprlandPlugins.hypr-dynamic-cursors
|
# pkgs.unstable.hyprlandPlugins.hypr-dynamic-cursors
|
||||||
];
|
];
|
||||||
settings = {
|
settings = {
|
||||||
general = {
|
general = {
|
||||||
gaps_in = 5;
|
gaps_in = 0;
|
||||||
gaps_out = 20;
|
gaps_out = 0;
|
||||||
|
|
||||||
border_size = 2;
|
border_size = 2;
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ in
|
|||||||
|
|
||||||
plugin = {
|
plugin = {
|
||||||
dynamic-cursors = {
|
dynamic-cursors = {
|
||||||
enabled = true;
|
enabled = false;
|
||||||
mode = "none";
|
mode = "none";
|
||||||
shake = {
|
shake = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
@@ -85,7 +85,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
hyprbars = {
|
hyprbars = {
|
||||||
enabled = true;
|
enabled = false;
|
||||||
bar_height = 20;
|
bar_height = 20;
|
||||||
bar_blur = true;
|
bar_blur = true;
|
||||||
};
|
};
|
||||||
@@ -115,7 +115,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = 10;
|
rounding = 0;
|
||||||
|
|
||||||
active_opacity = 1.0;
|
active_opacity = 1.0;
|
||||||
inactive_opacity = 1.0;
|
inactive_opacity = 1.0;
|
||||||
@@ -299,7 +299,15 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
background = "#000000";
|
background = "#000000";
|
||||||
background_opacity = 0.7;
|
background_opacity = 0.8;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.neovide = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.unstable.neovide;
|
||||||
|
settings = {
|
||||||
|
font.size = 16.0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,88 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
border-radius: 1em;
|
background: linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
rgba(118, 118, 118, 0.78) 0%,
|
||||||
|
rgba(50, 50, 50, 0.78) 50%,
|
||||||
|
rgba(0, 0, 0, 0.74) 50%,
|
||||||
|
rgba(0, 0, 0, 0.76) 100%
|
||||||
|
);
|
||||||
|
border-top: 1px solid rgba(71, 71, 71, 0.90);
|
||||||
|
border-bottom: 1px solid rgba(0, 0, 0, 0.97);
|
||||||
|
box-shadow: inset 0px 1px 0px 0px rgba(158, 158, 158, 0.90);
|
||||||
|
text-shadow: black 0px 0px 2px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
margin: 2px;
|
||||||
|
background: linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
rgba(255, 255, 255, 0.35) 0%,
|
||||||
|
rgba(255, 255, 255, 0.11) 50%,
|
||||||
|
rgba(255, 255, 255, 0) 50%
|
||||||
|
);
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.37);
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.25);
|
||||||
|
text-shadow: black 0px 0px 2px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background:
|
||||||
|
linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
rgba(255, 255, 255, 0.35) 0%,
|
||||||
|
rgba(255, 255, 255, 0.17) 50%,
|
||||||
|
rgba(255, 255, 255, 0) 50%
|
||||||
|
),
|
||||||
|
radial-gradient(
|
||||||
|
ellipse 80% 80% at 50% 110%,
|
||||||
|
rgba(44, 126, 204, 1) 0%,
|
||||||
|
rgba(44, 126, 204, 0) 80%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background: linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
rgba(0, 0, 0, 0.40) 0%,
|
||||||
|
rgba(0, 0, 0, 0.38) 50%,
|
||||||
|
rgba(0, 0, 0, 0.55) 50%
|
||||||
|
);
|
||||||
|
box-shadow: inset 0px 1px 0px 0px rgb(0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active:hover {
|
||||||
|
background:
|
||||||
|
linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
rgba(0, 0, 0, 0.40) 0%,
|
||||||
|
rgba(0, 0, 0, 0.38) 50%,
|
||||||
|
rgba(0, 0, 0, 0.55) 50%
|
||||||
|
),
|
||||||
|
radial-gradient(
|
||||||
|
ellipse 80% 80% at 50% 120%,
|
||||||
|
rgba(43, 143, 189, 1) 0%,
|
||||||
|
rgba(43, 143, 189, 0) 80%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background:
|
||||||
|
linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
rgba(255, 255, 255, 0.35) 0%,
|
||||||
|
rgba(255, 255, 255, 0.11) 50%,
|
||||||
|
rgba(255, 255, 255, 0) 50%
|
||||||
|
),
|
||||||
|
radial-gradient(
|
||||||
|
ellipse 80% 80% at 50% 100%,
|
||||||
|
rgba(199, 128, 14, 1) 0%,
|
||||||
|
rgba(170, 75, 12, 0) 100%
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
.modules-left {
|
.modules-left {
|
||||||
|
|||||||
@@ -8,9 +8,8 @@
|
|||||||
settings = [
|
settings = [
|
||||||
{
|
{
|
||||||
layer = "top";
|
layer = "top";
|
||||||
position = "top";
|
position = "bottom";
|
||||||
height = 30;
|
height = 30;
|
||||||
margin = "10 20 0 20";
|
|
||||||
spacing = 10;
|
spacing = 10;
|
||||||
|
|
||||||
modules-left = [
|
modules-left = [
|
||||||
|
|||||||
261
users/jordan/common/optional/graphical/niri.nix
Normal file
261
users/jordan/common/optional/graphical/niri.nix
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib)
|
||||||
|
getExe
|
||||||
|
;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.niri.homeModules.niri
|
||||||
|
];
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
xdgOpenUsePortal = true;
|
||||||
|
config.niri = {
|
||||||
|
default = [
|
||||||
|
"gnome"
|
||||||
|
"gtk"
|
||||||
|
];
|
||||||
|
"org.freedesktop.impl.portal.Access" = "gtk";
|
||||||
|
"org.freedesktop.impl.portal.Notification" = "gtk";
|
||||||
|
"org.freedesktop.impl.portal.Secret" = "gnome-keyring";
|
||||||
|
"org.freedesktop.impl.portal.FileChooser" = "gtk";
|
||||||
|
"org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ];
|
||||||
|
"org.freedesktop.impl.portal.Screenshot" = [ "gnome" ];
|
||||||
|
};
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
xdg-desktop-portal-gnome
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.niri-unstable;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
xwayland-satellite.path = getExe pkgs.xwayland-satellite-stable;
|
||||||
|
input = {
|
||||||
|
keyboard = {
|
||||||
|
xkb = {
|
||||||
|
layout = "us";
|
||||||
|
variant = "intl";
|
||||||
|
};
|
||||||
|
|
||||||
|
repeat-delay = 235;
|
||||||
|
repeat-rate = 60;
|
||||||
|
};
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
tap = true;
|
||||||
|
dwt = true;
|
||||||
|
dwtp = true;
|
||||||
|
natural-scroll = true;
|
||||||
|
accel-profile = "flat";
|
||||||
|
};
|
||||||
|
|
||||||
|
mouse = {
|
||||||
|
accel-speed = 0.2;
|
||||||
|
accel-profile = "flat";
|
||||||
|
};
|
||||||
|
|
||||||
|
power-key-handling.enable = false;
|
||||||
|
workspace-auto-back-and-forth = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
gestures.hot-corners.enable = false;
|
||||||
|
debug.honor-xdg-activation-with-invalid-serial = true;
|
||||||
|
binds = with config.lib.niri.actions; {
|
||||||
|
"Mod+T".action = spawn "kitty";
|
||||||
|
"Mod+b".action = spawn "firefox";
|
||||||
|
"Super+Alt+L".action = spawn "systemctl suspend";
|
||||||
|
XF86AudioRaiseVolume = {
|
||||||
|
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+";
|
||||||
|
allow-when-locked = true;
|
||||||
|
};
|
||||||
|
XF86AudioLowerVolume = {
|
||||||
|
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-";
|
||||||
|
allow-when-locked = true;
|
||||||
|
};
|
||||||
|
XF86AudioMute = {
|
||||||
|
action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle";
|
||||||
|
allow-when-locked = true;
|
||||||
|
};
|
||||||
|
XF86AudioMicMute = {
|
||||||
|
action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle";
|
||||||
|
allow-when-locked = true;
|
||||||
|
};
|
||||||
|
"Mod+Q".action = close-window;
|
||||||
|
|
||||||
|
"Mod+n".action = focus-column-left;
|
||||||
|
"Mod+left".action = focus-column-left;
|
||||||
|
"Mod+Shift+n".action = move-column-left;
|
||||||
|
"Mod+Shift+left".action = move-column-left;
|
||||||
|
|
||||||
|
"Mod+r".action = focus-window-or-workspace-down;
|
||||||
|
"Mod+down".action = focus-window-or-workspace-down;
|
||||||
|
"Mod+Shift+r".action = move-window-down;
|
||||||
|
"Mod+Shift+down".action = move-window-down;
|
||||||
|
|
||||||
|
"Mod+l".action = focus-window-or-workspace-up;
|
||||||
|
"Mod+up".action = focus-window-or-workspace-up;
|
||||||
|
"Mod+Shift+l".action = move-window-up;
|
||||||
|
"Mod+Shift+up".action = move-window-up;
|
||||||
|
|
||||||
|
"Mod+s".action = focus-column-right;
|
||||||
|
"Mod+right".action = focus-column-right;
|
||||||
|
"Mod+Shift+s".action = move-column-right;
|
||||||
|
"Mod+Shift+right".action = move-column-right;
|
||||||
|
|
||||||
|
"Mod+h".action = focus-column-first;
|
||||||
|
"Mod+Shift+h".action = consume-or-expel-window-left;
|
||||||
|
"Mod+m".action = focus-column-last;
|
||||||
|
"Mod+Shift+m".action = consume-or-expel-window-right;
|
||||||
|
|
||||||
|
"Mod+Ctrl+n".action = focus-monitor-left;
|
||||||
|
"Mod+Shift+Ctrl+n".action = move-column-to-monitor-left;
|
||||||
|
"Mod+Ctrl+r".action = focus-monitor-down;
|
||||||
|
"Mod+Shift+Ctrl+r".action = move-column-to-monitor-down;
|
||||||
|
"Mod+Ctrl+l".action = focus-monitor-up;
|
||||||
|
"Mod+Shift+Ctrl+l".action = move-column-to-monitor-up;
|
||||||
|
"Mod+Ctrl+s".action = focus-monitor-right;
|
||||||
|
"Mod+Shift+Ctrl+s".action = move-column-to-monitor-right;
|
||||||
|
|
||||||
|
"Mod+Period".action = focus-workspace-down;
|
||||||
|
"Mod+Shift+Period".action = move-column-to-workspace-down;
|
||||||
|
"Mod+Ctrl+Period".action = move-workspace-down;
|
||||||
|
"Mod+comma".action = focus-workspace-up;
|
||||||
|
"Mod+Shift+comma".action = move-column-to-workspace-up;
|
||||||
|
"Mod+Ctrl+comma".action = move-workspace-up;
|
||||||
|
|
||||||
|
"Mod+WheelScrollDown" = {
|
||||||
|
action = focus-workspace-down;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+WheelScrollUp" = {
|
||||||
|
action = focus-workspace-up;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+Ctrl+WheelScrollDown" = {
|
||||||
|
action = move-column-to-workspace-down;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+Ctrl+WheelScrollUp" = {
|
||||||
|
action = move-column-to-workspace-up;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+WheelScrollRight".action = focus-column-right;
|
||||||
|
"Mod+WheelScrollLeft".action = focus-column-left;
|
||||||
|
"Mod+Ctrl+WheelScrollRight".action = move-column-right;
|
||||||
|
"Mod+Ctrl+WheelScrollLeft".action = move-column-left;
|
||||||
|
"Mod+Shift+WheelScrollDown".action = focus-column-right;
|
||||||
|
"Mod+Shift+WheelScrollUp".action = focus-column-left;
|
||||||
|
"Mod+Ctrl+Shift+WheelScrollDown".action = move-column-right;
|
||||||
|
"Mod+Ctrl+Shift+WheelScrollUp".action = move-column-left;
|
||||||
|
|
||||||
|
"Mod+V".action = maximize-column;
|
||||||
|
"Mod+Ctrl+V".action = expand-column-to-available-width;
|
||||||
|
"Mod+return".action = fullscreen-window;
|
||||||
|
"Mod+Minus".action = set-column-width "-10%";
|
||||||
|
"Mod+Shift+0".action = set-column-width "+10%";
|
||||||
|
|
||||||
|
"Mod+F".action = toggle-window-floating;
|
||||||
|
"Mod+Ctrl+F".action = switch-focus-between-floating-and-tiling;
|
||||||
|
|
||||||
|
"Mod+y".action = toggle-column-tabbed-display;
|
||||||
|
|
||||||
|
#"Print".action = screenshot;
|
||||||
|
#"Ctrl+Print".action = screenshot-screen {};
|
||||||
|
#"Alt+Print".action = screenshot-window;
|
||||||
|
|
||||||
|
"Mod+Escape" = {
|
||||||
|
action = toggle-keyboard-shortcuts-inhibit;
|
||||||
|
allow-inhibiting = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# The quit action will show a confirmation dialog to avoid accidental exits.
|
||||||
|
"Mod+Ctrl+Escape".action = quit;
|
||||||
|
# Powers off the monitors. To turn them back on, do any input like
|
||||||
|
# moving the mouse or pressing any other key.
|
||||||
|
"Mod+Shift+P".action = power-off-monitors;
|
||||||
|
};
|
||||||
|
|
||||||
|
spawn-at-startup = [
|
||||||
|
{ command = [ "firefox" ]; }
|
||||||
|
];
|
||||||
|
|
||||||
|
prefer-no-csd = true;
|
||||||
|
hotkey-overlay = {
|
||||||
|
skip-at-startup = true;
|
||||||
|
};
|
||||||
|
layout = {
|
||||||
|
gaps = 1;
|
||||||
|
center-focused-column = "never";
|
||||||
|
empty-workspace-above-first = true;
|
||||||
|
preset-column-widths = [
|
||||||
|
{ proportion = 0.33333; }
|
||||||
|
{ proportion = 0.5; }
|
||||||
|
{ proportion = 0.66667; }
|
||||||
|
];
|
||||||
|
default-column-width = {
|
||||||
|
proportion = 0.5;
|
||||||
|
};
|
||||||
|
preset-window-heights = [
|
||||||
|
{ proportion = 0.33333; }
|
||||||
|
{ proportion = 0.5; }
|
||||||
|
{ proportion = 0.66667; }
|
||||||
|
];
|
||||||
|
focus-ring = {
|
||||||
|
enable = true;
|
||||||
|
width = 2;
|
||||||
|
active.color = "#7fc8ff";
|
||||||
|
inactive.color = "#505050";
|
||||||
|
};
|
||||||
|
border = {
|
||||||
|
enable = false;
|
||||||
|
width = 2;
|
||||||
|
active.color = "#ffc87f";
|
||||||
|
inactive.color = "#505050";
|
||||||
|
};
|
||||||
|
shadow = {
|
||||||
|
# on
|
||||||
|
softness = 30;
|
||||||
|
spread = 5;
|
||||||
|
offset = {
|
||||||
|
x = 0;
|
||||||
|
y = 5;
|
||||||
|
};
|
||||||
|
draw-behind-window = true;
|
||||||
|
color = "#00000070";
|
||||||
|
# inactive-color "#00000054"
|
||||||
|
};
|
||||||
|
tab-indicator = {
|
||||||
|
# off
|
||||||
|
hide-when-single-tab = true;
|
||||||
|
place-within-column = true;
|
||||||
|
gap = 5;
|
||||||
|
width = 4;
|
||||||
|
length = {
|
||||||
|
total-proportion = 1.0;
|
||||||
|
};
|
||||||
|
position = "right";
|
||||||
|
gaps-between-tabs = 2;
|
||||||
|
corner-radius = 8;
|
||||||
|
active.color = "red";
|
||||||
|
inactive.color = "gray";
|
||||||
|
};
|
||||||
|
insert-hint = {
|
||||||
|
# off
|
||||||
|
display.color = "#ffc87f80";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -174,6 +174,7 @@ in
|
|||||||
mcfly.enable = true;
|
mcfly.enable = true;
|
||||||
navi.enable = true;
|
navi.enable = true;
|
||||||
nix-index.enable = true;
|
nix-index.enable = true;
|
||||||
|
yazi.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.persistence."/persist" = {
|
home.persistence."/persist" = {
|
||||||
@@ -189,10 +190,12 @@ in
|
|||||||
bat
|
bat
|
||||||
btop
|
btop
|
||||||
fd
|
fd
|
||||||
|
file
|
||||||
jq
|
jq
|
||||||
ncdu
|
ncdu
|
||||||
nix-zsh-completions
|
nix-zsh-completions
|
||||||
nnn
|
p7zip-rar
|
||||||
ripgrep
|
ripgrep
|
||||||
|
unzip
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,8 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
services.ssh-agent.enable = true;
|
|
||||||
|
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
addKeysToAgent = "yes";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.persistence."/state".files = [
|
home.persistence."/state".files = [
|
||||||
|
|||||||
@@ -15,6 +15,11 @@ in
|
|||||||
{
|
{
|
||||||
age.secrets."passwords/users/jordan".file = "${inputs.secrets}/passwords/users/jordan.age";
|
age.secrets."passwords/users/jordan".file = "${inputs.secrets}/passwords/users/jordan.age";
|
||||||
|
|
||||||
|
age.secrets.open-webui-api-key = {
|
||||||
|
rekeyFile = ./secrets/open-webui-api-key.age;
|
||||||
|
owner = "jordan";
|
||||||
|
};
|
||||||
|
|
||||||
users.users.${name} = {
|
users.users.${name} = {
|
||||||
description = "Jordan Holt";
|
description = "Jordan Holt";
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
|
|||||||
@@ -7,13 +7,13 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./common/optional/graphical/firefox.nix
|
./common/optional/graphical/firefox.nix
|
||||||
./common/optional/graphical/fonts.nix
|
./common/optional/graphical/fonts.nix
|
||||||
./common/optional/graphical/hyprland
|
./common/optional/graphical/niri.nix
|
||||||
./common/optional/graphical/mimeapps.nix
|
./common/optional/graphical/mimeapps.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.nh.enable = true;
|
programs.nh.enable = true;
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
jellyfin-media-player
|
# jellyfin-media-player
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,12 +22,12 @@
|
|||||||
gimp
|
gimp
|
||||||
handbrake
|
handbrake
|
||||||
inkscape
|
inkscape
|
||||||
jellyfin-media-player
|
# jellyfin-media-player
|
||||||
krita
|
krita
|
||||||
lutris
|
unstable.lutris
|
||||||
mkvtoolnix
|
mkvtoolnix
|
||||||
# obs-studio
|
# obs-studio
|
||||||
unstable.pcsx2
|
pcsx2
|
||||||
qbittorrent
|
qbittorrent
|
||||||
xemu
|
xemu
|
||||||
];
|
];
|
||||||
|
|||||||
7
users/jordan/secrets/open-webui-api-key.age
Normal file
7
users/jordan/secrets/open-webui-api-key.age
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> piv-p256 a1N2XA AnYGGZaNhtGzK2rbiM3Nfom6xfUq5qTv7fUMDVl1jb+J
|
||||||
|
gu1Rpzq2gIB6uopM3tNl3CAb0Xyweu8DA61Unku56m0
|
||||||
|
-> x]n-grease R"L{e% Q(Dh['$p ,KZz C
|
||||||
|
JKGsU9abzhI9Qly1rrkbXqYl947wcA
|
||||||
|
--- jZDJChrb2qWPWvG0aFUDNOJGx+fowthXvwyuMI77drI
|
||||||
|
Ѐ6{_ÿóÚöë´_—¼ ¹ž£S÷ Ç…ŠÝÅ+•ã!©Æö<7F>A¹„õÜ «AíyÏ
|
||||||
Reference in New Issue
Block a user