Compare commits
20 Commits
61a428d955
...
9f2f82a214
Author | SHA1 | Date | |
---|---|---|---|
9f2f82a214 | |||
693f34eadc | |||
17c7753e37 | |||
cda6112353 | |||
fbb7636bff | |||
91e32fc2ae | |||
4b07379f8d | |||
efffbb907b | |||
cf10f84160 | |||
ef0fb60dc5 | |||
c3d89a6151 | |||
bdd3b64cf9 | |||
fe00a6128e | |||
49a343406f | |||
b124ad0122 | |||
618a062105 | |||
05ff9a376b | |||
55bb74d440 | |||
7422e7a335 | |||
14a0a355ed |
493
flake.lock
generated
493
flake.lock
generated
@ -8,11 +8,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734540176,
|
"lastModified": 1736877444,
|
||||||
"narHash": "sha256-msxbnOw/nh8GJ87YtBEDT1jhVldOBtxHRF2KgvYPeDA=",
|
"narHash": "sha256-K25atZ9alRsGb6TW+rRcpJTbtP5tnb3qusd762B2qWw=",
|
||||||
"owner": "ezKEa",
|
"owner": "ezKEa",
|
||||||
"repo": "aagl-gtk-on-nix",
|
"repo": "aagl-gtk-on-nix",
|
||||||
"rev": "00df3ad02364a6fb8f1105dc72ae770b748c62eb",
|
"rev": "a1f0ce3bfbe9f0cc81e8b7def5e652a021e95c98",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -41,11 +41,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734400729,
|
"lastModified": 1738456976,
|
||||||
"narHash": "sha256-Bf+oya0BuleVXYGIWsb0eWnrK6s0aiesOsI7Mpj1pMU=",
|
"narHash": "sha256-cufyHbOMnSt9V4w4OVSzNcpJ+8DwzRZRJaca2Q89KVI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "a132fa41be7ebe797ad758e84d9df068151a723b",
|
"rev": "257b2050790ab3b1eb389e0f8bdc400eb9510139",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -61,11 +61,11 @@
|
|||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734172243,
|
"lastModified": 1738238125,
|
||||||
"narHash": "sha256-WswQgnuAUZoOq8w2Ku+/XLPRx79+3houzK5pUxCba1k=",
|
"narHash": "sha256-zBtIvbR0Iqt6j7cTH2Q8Zm0a6IqXrwYv385hMUClGVQ=",
|
||||||
"owner": "AtaraxiaSjel",
|
"owner": "AtaraxiaSjel",
|
||||||
"repo": "nur",
|
"repo": "nur",
|
||||||
"rev": "1933cfa07342df15b0a081fed69f6adc0724a1c7",
|
"rev": "f22ed3758ec797f2c08108e66ca5982a37489959",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -84,11 +84,11 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731270564,
|
"lastModified": 1738524606,
|
||||||
"narHash": "sha256-6KMC/NH/VWP5Eb+hA56hz0urel3jP6Y6cF2PX6xaTkk=",
|
"narHash": "sha256-hPYEJ4juK3ph7kbjbvv7PlU1D9pAkkhl+pwx8fZY53U=",
|
||||||
"owner": "zhaofengli",
|
"owner": "zhaofengli",
|
||||||
"repo": "attic",
|
"repo": "attic",
|
||||||
"rev": "47752427561f1c34debb16728a210d378f0ece36",
|
"rev": "ff8a897d1f4408ebbf4d45fa9049c06b3e1e3f4e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -225,12 +225,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"catppuccin": {
|
"catppuccin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_7"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734671418,
|
"lastModified": 1737579274,
|
||||||
"narHash": "sha256-K2Su5hM1nEIgKJ55TB5W+UfN9zBHUxC0SjWAtjXLEnI=",
|
"narHash": "sha256-8kBIYfn8TI9jbffhDNS12SdbQHb9ITXflwcgIJBeGqw=",
|
||||||
"owner": "catppuccin",
|
"owner": "catppuccin",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "6239449c96569547af621899f44a5ea333cb2576",
|
"rev": "06f0ea19334bcc8112e6d671fd53e61f9e3ad63a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -241,7 +244,7 @@
|
|||||||
},
|
},
|
||||||
"catppuccin-vsc": {
|
"catppuccin-vsc": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": "nixpkgs_8"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733066065,
|
"lastModified": 1733066065,
|
||||||
@ -259,17 +262,18 @@
|
|||||||
},
|
},
|
||||||
"chaotic": {
|
"chaotic": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"fenix": "fenix",
|
||||||
"flake-schemas": "flake-schemas",
|
"flake-schemas": "flake-schemas",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"jovian": "jovian",
|
"jovian": "jovian",
|
||||||
"nixpkgs": "nixpkgs_8"
|
"nixpkgs": "nixpkgs_9"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734631939,
|
"lastModified": 1738552004,
|
||||||
"narHash": "sha256-ZrvI+3uXL6Y9v1+xyNVPpMav0SYPi2ZwcmkaTyarN0E=",
|
"narHash": "sha256-eYE+8F0ZrSIYvlVkgTjTBlnM1COqUdSs4GKyWnel6I4=",
|
||||||
"owner": "chaotic-cx",
|
"owner": "chaotic-cx",
|
||||||
"repo": "nyx",
|
"repo": "nyx",
|
||||||
"rev": "5694778dcfd69cc5dab9bd83c9eeb147ed3537e4",
|
"rev": "894d1db77131a4a449d1993c7ba314ee15dd4e36",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -303,7 +307,7 @@
|
|||||||
"deploy-rs": {
|
"deploy-rs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_5",
|
"flake-compat": "flake-compat_5",
|
||||||
"nixpkgs": "nixpkgs_9",
|
"nixpkgs": "nixpkgs_10",
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -423,11 +427,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734701201,
|
"lastModified": 1738148035,
|
||||||
"narHash": "sha256-hk0roBX10j/hospoWIJIJj3i2skd7Oml6yKQBx7mTFk=",
|
"narHash": "sha256-KYOATYEwaKysL3HdHdS5kbQMXvzS4iPJzJrML+3TKAo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "2ee76c861af3b895b3b104bae04777b61397485b",
|
"rev": "18d0a984cc2bc82cf61df19523a34ad463aa7f54",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -436,6 +440,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"fenix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"chaotic",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-analyzer-src": "rust-analyzer-src"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738477724,
|
||||||
|
"narHash": "sha256-S1x0F7q9cJ6EEmZsakse2Ps6Adi7NadxRtGiuWUlwT0=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"rev": "1936bb37b1d8597273e3611873dc09dd61b09818",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -455,11 +481,11 @@
|
|||||||
"flake-compat_10": {
|
"flake-compat_10": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1733328505,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -662,11 +688,11 @@
|
|||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733312601,
|
"lastModified": 1738453229,
|
||||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -704,11 +730,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733312601,
|
"lastModified": 1736143030,
|
||||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
"narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
"rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -950,11 +976,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734622158,
|
"lastModified": 1738448366,
|
||||||
"narHash": "sha256-h/fdzqlCqSa2ZCIqtDc9kshCJm6kQIoKuO0MSSmAX4A=",
|
"narHash": "sha256-4ATtQqBlgsGqkHTemta0ydY6f7JBRXz4Hf574NHQpkg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "832920a60833533eaabcc93ab729801bf586fa0c",
|
"rev": "18fa9f323d8adbb0b7b8b98a8488db308210ed93",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -970,11 +996,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734622215,
|
"lastModified": 1738610386,
|
||||||
"narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=",
|
"narHash": "sha256-yb6a5efA1e8xze1vcdN2HBxqYr340EsxFMrDUHL3WZM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be",
|
"rev": "066ba0c5cfddbc9e0dddaec73b1561ad38aa8abe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -999,11 +1025,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734364709,
|
"lastModified": 1738178255,
|
||||||
"narHash": "sha256-+2bZJL2u5hva7rSp65OfKJBK+k03T6GB/NCvpoS1OOo=",
|
"narHash": "sha256-+D6Nu2ewXbMTFzx/Q4jDOo+LAOUPr0cxQJg5k33daIE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprcursor",
|
"repo": "hyprcursor",
|
||||||
"rev": "f388aacd22be4a6e4d634fbaf6f75eb0713d239a",
|
"rev": "dcadd3398abe146d60c67e0d9ee6e27b301cae82",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1028,11 +1054,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733684019,
|
"lastModified": 1738437059,
|
||||||
"narHash": "sha256-2kYREgmSmbLsmDpLEq96hxVAU3qz8aCvVhF65yCFZHY=",
|
"narHash": "sha256-J+8ecqaP3zD9GHeN8Y4hUapoELSoggp0IZI8laTFt/0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "fb2c0268645a77403af3b8a4ce8fa7ba5917f15d",
|
"rev": "5ac80e3686a4dfa55d2bd15c81a266b89594a295",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1051,27 +1077,23 @@
|
|||||||
"hyprlang": "hyprlang",
|
"hyprlang": "hyprlang",
|
||||||
"hyprutils": "hyprutils",
|
"hyprutils": "hyprutils",
|
||||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs_11",
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"pre-commit-hooks": "pre-commit-hooks_3",
|
"pre-commit-hooks": "pre-commit-hooks_3",
|
||||||
"systems": "systems_3",
|
"systems": "systems_3",
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734639812,
|
"lastModified": 1738612394,
|
||||||
"narHash": "sha256-OxrpnYxFcnh7m6oUeD1zJnqTizTBTsPYz6PjiU1/wuk=",
|
"narHash": "sha256-MDoY6eOZPxhHNsLUfeJ07YnUEPHLQdqEik3ql+ePjwI=",
|
||||||
"ref": "refs/heads/main",
|
"owner": "hyprwm",
|
||||||
"rev": "71dc9f6128b8d2e382b2a574d2d5f15e2d907f3a",
|
"repo": "Hyprland",
|
||||||
"revCount": 5573,
|
"rev": "70cfc7cc9c4ecadbb9dd9a75f096fc70177a8ca5",
|
||||||
"submodules": true,
|
"type": "github"
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"submodules": true,
|
"owner": "hyprwm",
|
||||||
"type": "git",
|
"repo": "Hyprland",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hyprland-protocols": {
|
"hyprland-protocols": {
|
||||||
@ -1086,11 +1108,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728345020,
|
"lastModified": 1738422629,
|
||||||
"narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=",
|
"narHash": "sha256-5v+bv75wJWvahyM2xcMTSNNxmV8a7hb01Eey5zYnBJw=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-protocols",
|
"repo": "hyprland-protocols",
|
||||||
"rev": "a7c183800e74f337753de186522b9017a07a8cee",
|
"rev": "755aef8dab49d0fc4663c715fa4ad221b2aedaed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1099,10 +1121,49 @@
|
|||||||
"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": 1737634706,
|
||||||
|
"narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-qt-support",
|
||||||
|
"rev": "8810df502cdee755993cb803eba7b23f189db795",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-qt-support",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"hyprland-qtutils": {
|
"hyprland-qtutils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"hyprland-qt-support": "hyprland-qt-support",
|
||||||
|
"hyprlang": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprlang"
|
||||||
|
],
|
||||||
"hyprutils": [
|
"hyprutils": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
|
"hyprland-qtutils",
|
||||||
|
"hyprlang",
|
||||||
"hyprutils"
|
"hyprutils"
|
||||||
],
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -1115,11 +1176,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733940128,
|
"lastModified": 1737981711,
|
||||||
"narHash": "sha256-hmfXWj2GA9cj1QUkPFYtAAeohhs615zL4E3APy3FnvQ=",
|
"narHash": "sha256-lh6cL5D8nPplB3WovCQjLUZ7k7MViiBrMlpkfm4R7/c=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-qtutils",
|
"repo": "hyprland-qtutils",
|
||||||
"rev": "3833097e50473a152dd614d4b468886840b4ea78",
|
"rev": "96bf0677fa9cd13508294e3d4559dfbbc8beff73",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1144,11 +1205,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734364628,
|
"lastModified": 1737634606,
|
||||||
"narHash": "sha256-ii8fzJfI953n/EmIxVvq64ZAwhvwuuPHWfGd61/mJG8=",
|
"narHash": "sha256-W7W87Cv6wqZ9PHegI6rH1+ve3zJPiyevMFf0/HwdbCQ=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "16e59c1eb13d9fb6de066f54e7555eb5e8a4aba5",
|
"rev": "f41271d35cc0f370d300413d756c2677f386af9d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1169,11 +1230,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734384247,
|
"lastModified": 1737978343,
|
||||||
"narHash": "sha256-bl3YyJb2CgaeVKYq/l8j27vKdbkTpDNFDsnCl0dnNlY=",
|
"narHash": "sha256-TfFS0HCEJh63Kahrkp1h9hVDMdLU8a37Zz+IFucxyfA=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "e6cf45cd1845368702e03b8912f4cc44ebba3322",
|
"rev": "6a8bc9d2a4451df12f5179dc0b1d2d46518a90ab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1194,11 +1255,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734384417,
|
"lastModified": 1735493474,
|
||||||
"narHash": "sha256-noYeXcNQ15g1/gIJIYT2zdO66wzY5Z06PYz6BfKUZA8=",
|
"narHash": "sha256-fktzv4NaqKm94VAkAoVqO/nqQlw+X0/tJJNAeCSfzK4=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "90e87f7fcfcce4862826d60332cbc5e2f87e1f88",
|
"rev": "de913476b59ee88685fdc018e77b8f6637a2ae0b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1209,11 +1270,11 @@
|
|||||||
},
|
},
|
||||||
"impermanence": {
|
"impermanence": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734200366,
|
"lastModified": 1737831083,
|
||||||
"narHash": "sha256-0NursoP4BUdnc+wy+Mq3icHkXu/RgP1Sjo0MJxV2+Dw=",
|
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "impermanence",
|
"repo": "impermanence",
|
||||||
"rev": "c6323585fa0035d780e3d8906eb1b24b65d19a48",
|
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1231,11 +1292,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734591594,
|
"lastModified": 1738478597,
|
||||||
"narHash": "sha256-7Q4hXE+b9A4DebZ5Q+q3WStuMiWR5bMW0ltpzbY/zMQ=",
|
"narHash": "sha256-it7lc+HRSQiLV+3CcA+c6fkr2355HyT2GGUowHdfa/E=",
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Jovian-Experiments",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"rev": "ce2abe494524cdb389a5d31c11c41834d4362ac5",
|
"rev": "77fb0818cb42ca0db98839d47bbc6a317c286282",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1332,7 +1393,7 @@
|
|||||||
"flake-compat": "flake-compat_7",
|
"flake-compat": "flake-compat_7",
|
||||||
"flake-utils": "flake-utils_5",
|
"flake-utils": "flake-utils_5",
|
||||||
"nix": "nix_4",
|
"nix": "nix_4",
|
||||||
"nixpkgs": "nixpkgs_11"
|
"nixpkgs": "nixpkgs_13"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1669478601,
|
"lastModified": 1669478601,
|
||||||
@ -1388,11 +1449,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734239219,
|
"lastModified": 1736952083,
|
||||||
"narHash": "sha256-iKY/OGNANXpd9hXBGfx8vObpHW4IcOH0MrerLCCc7hA=",
|
"narHash": "sha256-zLhLqxc2JKvUtr0mSRRvOeKXN5dl5bn1e99z7EOp3bI=",
|
||||||
"owner": "thiagokokada",
|
"owner": "thiagokokada",
|
||||||
"repo": "nix-alien",
|
"repo": "nix-alien",
|
||||||
"rev": "a266d0f74dd4a82ec6a72b02fbf3fbc5f7105f15",
|
"rev": "7e687663d2054fa1708284bd42731c6be62b1667",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1404,15 +1465,15 @@
|
|||||||
"nix-direnv": {
|
"nix-direnv": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_5",
|
"flake-parts": "flake-parts_5",
|
||||||
"nixpkgs": "nixpkgs_12",
|
"nixpkgs": "nixpkgs_14",
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732689932,
|
"lastModified": 1737108329,
|
||||||
"narHash": "sha256-dnB8nu6ozuflg7f887Udoujx284QI6FMCSuCYIiTCYQ=",
|
"narHash": "sha256-ExqalgsgqaJhtX7VyjVPgASI2sFIcZ679/FDbMT6AYc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-direnv",
|
"repo": "nix-direnv",
|
||||||
"rev": "0357fa09ff68323c472fc0362ddc141a6aa6c3b5",
|
"rev": "38883833413a601fb64f51cd33e4fa0ffbc33320",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1430,11 +1491,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix_2"
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734716067,
|
"lastModified": 1736592044,
|
||||||
"narHash": "sha256-BCpd50t/3JU4ydiNfJxH3LzQDzyGbBI0CKWaeplnkVg=",
|
"narHash": "sha256-HkaJeIFgxncLm8MC1BaWRTkge9b1/+mjPcbzXTRshoM=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-fast-build",
|
"repo": "nix-fast-build",
|
||||||
"rev": "ed736c65a8cb58a85369f6ee1c3f4403aa904fcc",
|
"rev": "906af17fcd50c84615a4660d9c08cf89c01cef7d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1460,11 +1521,11 @@
|
|||||||
},
|
},
|
||||||
"nix-filter_2": {
|
"nix-filter_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730207686,
|
"lastModified": 1731533336,
|
||||||
"narHash": "sha256-SCHiL+1f7q9TAnxpasriP6fMarWE5H43t25F5/9e28I=",
|
"narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "nix-filter",
|
"repo": "nix-filter",
|
||||||
"rev": "776e68c1d014c3adde193a18db9d738458cd2ba4",
|
"rev": "f7653272fd234696ae94229839a99b73c9ab7de0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1552,11 +1613,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734234111,
|
"lastModified": 1736652904,
|
||||||
"narHash": "sha256-icEMqBt4HtGH52PU5FHidgBrNJvOfXH6VQKNtnD1aw8=",
|
"narHash": "sha256-8uolHABgroXqzs03QdulHp8H9e5kWQZnnhcda1MKbBM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "311d6cf3ad3f56cb051ffab1f480b2909b3f754d",
|
"rev": "271e5bd7c57e1f001693799518b10a02d1123b12",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1574,11 +1635,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734659394,
|
"lastModified": 1738547248,
|
||||||
"narHash": "sha256-rI7fcI4+J+iAiCvQ0J3hECJJGD9cAVTAFRTj1xrX6Qo=",
|
"narHash": "sha256-ALPkA9L4G0j7piorEyeQ7zf6fW4vii4ULxRZBXmeKYM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-vscode-extensions",
|
"repo": "nix-vscode-extensions",
|
||||||
"rev": "1792f1bbfccbd5ebcb745250e4fc57067c6dfd9c",
|
"rev": "bfacd5e2786caf61da0ad956728559dd6c1e8037",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1652,7 +1713,7 @@
|
|||||||
"nix_4": {
|
"nix_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"lowdown-src": "lowdown-src",
|
"lowdown-src": "lowdown-src",
|
||||||
"nixpkgs": "nixpkgs_10",
|
"nixpkgs": "nixpkgs_12",
|
||||||
"nixpkgs-regression": "nixpkgs-regression_4"
|
"nixpkgs-regression": "nixpkgs-regression_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -1671,11 +1732,11 @@
|
|||||||
},
|
},
|
||||||
"nixlib": {
|
"nixlib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734224914,
|
"lastModified": 1736643958,
|
||||||
"narHash": "sha256-hKWALzQ/RxxXdKWsLKXULru6XTag9Cc5exgVyS4a/AE=",
|
"narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "538697b664a64fade8ce628d01f35d1f1fd82d77",
|
"rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1692,11 +1753,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734570415,
|
"lastModified": 1737057290,
|
||||||
"narHash": "sha256-kcsDNcEr4hYuDc8l+ox41FvEPpmQTV3/3hgdx3tuxHw=",
|
"narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "nixos-generators",
|
||||||
"rev": "b8f266f26bb757e7aec18adeee6919db6666c4f6",
|
"rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1751,23 +1812,23 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-lib_2": {
|
"nixpkgs-lib_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733096140,
|
"lastModified": 1738452942,
|
||||||
"narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=",
|
"narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
|
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
|
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-master": {
|
"nixpkgs-master": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734718783,
|
"lastModified": 1738616884,
|
||||||
"narHash": "sha256-q8XueLYZkunMIWcDuyRouEw082Q8S6QeVXYzop4k9m0=",
|
"narHash": "sha256-6oeyCodT5uP0u/YdKOpzx/sVDyYHXjJ5DzgU6jIE0C8=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "de0a5d8fe7319752a089d71ca22c83b5ec83b351",
|
"rev": "68392b6bc4c42a2ee585e36b9ed26fd16400bb9f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1875,27 +1936,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable_3": {
|
"nixpkgs-stable_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730741070,
|
"lastModified": 1738435198,
|
||||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
"narHash": "sha256-5+Hmo4nbqw8FrW85FlNm4IIrRnZ7bn0cmXlScNsNRLo=",
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1734600368,
|
|
||||||
"narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=",
|
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca",
|
"rev": "f6687779bf4c396250831aa5a32cbfeb85bb07a3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1906,6 +1951,38 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_10": {
|
"nixpkgs_10": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1702272962,
|
||||||
|
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_11": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738410390,
|
||||||
|
"narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "3a228057f5b619feb3186e986dbe76278d707b6e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_12": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1657693803,
|
"lastModified": 1657693803,
|
||||||
"narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=",
|
"narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=",
|
||||||
@ -1921,7 +1998,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_11": {
|
"nixpkgs_13": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1669378442,
|
"lastModified": 1669378442,
|
||||||
"narHash": "sha256-nm+4PN0A4SnV0SzEchxrMyKPvI3Ld/aoom4PnHeHucs=",
|
"narHash": "sha256-nm+4PN0A4SnV0SzEchxrMyKPvI3Ld/aoom4PnHeHucs=",
|
||||||
@ -1937,7 +2014,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_12": {
|
"nixpkgs_14": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725194671,
|
"lastModified": 1725194671,
|
||||||
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=",
|
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=",
|
||||||
@ -1953,13 +2030,13 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_13": {
|
"nixpkgs_15": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734424634,
|
"lastModified": 1738546358,
|
||||||
"narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=",
|
"narHash": "sha256-nLivjIygCiqLp5QcL7l56Tca/elVqM9FG1hGd9ZSsrg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33",
|
"rev": "c6e957d81b96751a3d5967a0fd73694f303cc914",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1969,13 +2046,13 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_14": {
|
"nixpkgs_16": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730785428,
|
"lastModified": 1735834308,
|
||||||
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
"narHash": "sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
|
"rev": "6df24922a1400241dae323af55f30e4318a6ca65",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1985,6 +2062,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_17": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738136902,
|
||||||
|
"narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717432640,
|
"lastModified": 1717432640,
|
||||||
@ -2066,6 +2159,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_7": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736012469,
|
||||||
|
"narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732837521,
|
"lastModified": 1732837521,
|
||||||
"narHash": "sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE=",
|
"narHash": "sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE=",
|
||||||
@ -2081,13 +2190,13 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_8": {
|
"nixpkgs_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734424634,
|
"lastModified": 1738410390,
|
||||||
"narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=",
|
"narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33",
|
"rev": "3a228057f5b619feb3186e986dbe76278d707b6e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -2097,22 +2206,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_9": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1702272962,
|
|
||||||
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"poetry2nix": {
|
"poetry2nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
@ -2217,15 +2310,14 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"nixpkgs-stable": "nixpkgs-stable_3"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734379367,
|
"lastModified": 1737465171,
|
||||||
"narHash": "sha256-Keu8z5VgT5gnCF4pmB+g7XZFftHpfl4qOn7nqBcywdE=",
|
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "0bb4be58f21ff38fc3cdbd6c778eb67db97f0b99",
|
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -2239,14 +2331,14 @@
|
|||||||
"flake-compat": "flake-compat_10",
|
"flake-compat": "flake-compat_10",
|
||||||
"libnbtplusplus": "libnbtplusplus",
|
"libnbtplusplus": "libnbtplusplus",
|
||||||
"nix-filter": "nix-filter_2",
|
"nix-filter": "nix-filter_2",
|
||||||
"nixpkgs": "nixpkgs_14"
|
"nixpkgs": "nixpkgs_16"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731890783,
|
"lastModified": 1736610087,
|
||||||
"narHash": "sha256-U1qktPwss7ZlDMtRgbYBgLu2akFwSi5xhYOiCl3t/dg=",
|
"narHash": "sha256-ceYrz2mBJuf7pnUWbIvZBhh6SFiDLk6GWRdamGTUNY4=",
|
||||||
"owner": "AtaraxiaSjel",
|
"owner": "AtaraxiaSjel",
|
||||||
"repo": "PrismLauncher",
|
"repo": "PrismLauncher",
|
||||||
"rev": "c392334ef50a51be75c2871c095af249a67ed536",
|
"rev": "79a719295fe04e553be858f5320219be86444177",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -2281,15 +2373,32 @@
|
|||||||
"nix-fast-build": "nix-fast-build",
|
"nix-fast-build": "nix-fast-build",
|
||||||
"nix-vscode-marketplace": "nix-vscode-marketplace",
|
"nix-vscode-marketplace": "nix-vscode-marketplace",
|
||||||
"nixos-generators": "nixos-generators",
|
"nixos-generators": "nixos-generators",
|
||||||
"nixpkgs": "nixpkgs_13",
|
"nixpkgs": "nixpkgs_15",
|
||||||
"nixpkgs-master": "nixpkgs-master",
|
"nixpkgs-master": "nixpkgs-master",
|
||||||
"nixpkgs-stable": "nixpkgs-stable_4",
|
"nixpkgs-stable": "nixpkgs-stable_3",
|
||||||
"prismlauncher": "prismlauncher",
|
"prismlauncher": "prismlauncher",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"srvos": "srvos",
|
"srvos": "srvos",
|
||||||
"umu": "umu"
|
"umu": "umu"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rust-analyzer-src": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738433753,
|
||||||
|
"narHash": "sha256-lyhEsEf5FQzV+KHVkfxIApMOFWHqyls5+llcQ/uhV6Y=",
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"rev": "88b901878e684e4f68f104fdbc48749f41bcccd3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"ref": "nightly",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -2297,11 +2406,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734546875,
|
"lastModified": 1738291974,
|
||||||
"narHash": "sha256-6OvJbqQ6qPpNw3CA+W8Myo5aaLhIJY/nNFDk3zMXLfM=",
|
"narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "ed091321f4dd88afc28b5b4456e0a15bd8374b4d",
|
"rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -2317,11 +2426,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734587909,
|
"lastModified": 1738198321,
|
||||||
"narHash": "sha256-8JzxqQEYm3wKoA1TmCfnfN1uZD/YNn9OZL8xI/OSbes=",
|
"narHash": "sha256-lhnHBXO9Y8xEn92JqxjancdL8Gh16ONuxZp60iZfmX4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "srvos",
|
"repo": "srvos",
|
||||||
"rev": "758e36d85d0dd2fbb01550554e7de68514558a0b",
|
"rev": "7d5a4aaadac9ff63f9ed4347df95175aceee5079",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -2449,11 +2558,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734543842,
|
"lastModified": 1736154270,
|
||||||
"narHash": "sha256-/QceWozrNg915Db9x/Ie5k67n9wKgGdTFng+Z1Qw0kE=",
|
"narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "76159fc74eeac0599c3618e3601ac2b980a29263",
|
"rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -2464,17 +2573,15 @@
|
|||||||
},
|
},
|
||||||
"umu": {
|
"umu": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs_17"
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "packaging/nix",
|
"dir": "packaging/nix",
|
||||||
"lastModified": 1734207213,
|
"lastModified": 1738306689,
|
||||||
"narHash": "sha256-5CZPAeKm24Y1BKnN8Md3HUViCMCs7AVghRC+05Bdlkk=",
|
"narHash": "sha256-DE1+O2XSuqkTLihIhk7geI2M6tjcsrFztLiSfcDpo0A=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "6189d0d9fd062e89a375db20aeae1d1c009e9833",
|
"rev": "7a71163b79e56222fe3f3097d1e71208a91a1a3b",
|
||||||
"revCount": 869,
|
"revCount": 917,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Open-Wine-Components/umu-launcher/"
|
"url": "https://github.com/Open-Wine-Components/umu-launcher/"
|
||||||
@ -2532,11 +2639,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734422917,
|
"lastModified": 1737634991,
|
||||||
"narHash": "sha256-0y7DRaXslhfqVKV8a/talYTYAe2NHOQhMZG7KMNRCtc=",
|
"narHash": "sha256-dBAnb7Kbnier30cA7AgxVSxxARmxKZ1vHZT33THSIr8=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "3e884d941ca819c1f2e50df8bdae0debded1ed87",
|
"rev": "e09dfe2726c8008f983e45a0aa1a3b7416aaeb8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
12
flake.nix
12
flake.nix
@ -43,8 +43,9 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
hyprland = {
|
hyprland = {
|
||||||
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
url = "github:hyprwm/Hyprland";
|
||||||
inputs.nixpkgs.follows ="nixpkgs";
|
# url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||||
|
# inputs.nixpkgs.follows ="nixpkgs";
|
||||||
};
|
};
|
||||||
mms.url = "github:mkaito/nixos-modded-minecraft-servers";
|
mms.url = "github:mkaito/nixos-modded-minecraft-servers";
|
||||||
nix-alien = {
|
nix-alien = {
|
||||||
@ -75,7 +76,7 @@
|
|||||||
};
|
};
|
||||||
umu = {
|
umu = {
|
||||||
url = "git+https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging\/nix&submodules=1";
|
url = "git+https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging\/nix&submodules=1";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||||
@ -175,14 +176,11 @@
|
|||||||
|
|
||||||
shared-patches = patchesPath [ ];
|
shared-patches = patchesPath [ ];
|
||||||
unstable-patches = shared-patches ++ patchesPath [
|
unstable-patches = shared-patches ++ patchesPath [
|
||||||
"366250.patch"
|
|
||||||
# "netbird-24.11.patch"
|
# "netbird-24.11.patch"
|
||||||
"onlyoffice.patch"
|
"onlyoffice.patch"
|
||||||
# "zen-kernels.patch"
|
# "zen-kernels.patch"
|
||||||
];
|
];
|
||||||
stable-patches = shared-patches ++ patchesPath [
|
stable-patches = shared-patches ++ patchesPath [];
|
||||||
# "netbird-24.05.patch"
|
|
||||||
];
|
|
||||||
in {
|
in {
|
||||||
customModules = builtins.listToAttrs (findModules ./modules);
|
customModules = builtins.listToAttrs (findModules ./modules);
|
||||||
customProfiles = builtins.listToAttrs (findModules ./profiles);
|
customProfiles = builtins.listToAttrs (findModules ./profiles);
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
customProfiles.hoyo
|
customProfiles.hoyo
|
||||||
customProfiles.minecraft
|
customProfiles.minecraft
|
||||||
customProfiles.nicotine
|
customProfiles.nicotine
|
||||||
# customProfiles.sunshine
|
customProfiles.sunshine
|
||||||
customProfiles.wine-games
|
customProfiles.wine-games
|
||||||
|
|
||||||
customProfiles.ollama
|
customProfiles.ollama
|
||||||
@ -32,14 +32,8 @@
|
|||||||
security.pki.certificateFiles = [ ../../misc/mitmproxy-ca-cert.pem ];
|
security.pki.certificateFiles = [ ../../misc/mitmproxy-ca-cert.pem ];
|
||||||
|
|
||||||
virtualisation.libvirt.guests = {
|
virtualisation.libvirt.guests = {
|
||||||
win10 = {
|
|
||||||
autoStart = false;
|
|
||||||
user = config.mainuser;
|
|
||||||
group = "libvirtd";
|
|
||||||
xmlFile = ./vm/win10.xml;
|
|
||||||
};
|
|
||||||
win10code = {
|
win10code = {
|
||||||
autoStart = true;
|
autoStart = false;
|
||||||
user = config.mainuser;
|
user = config.mainuser;
|
||||||
group = "libvirtd";
|
group = "libvirtd";
|
||||||
xmlFile = ./vm/win10code.xml;
|
xmlFile = ./vm/win10code.xml;
|
||||||
@ -142,6 +136,7 @@
|
|||||||
|
|
||||||
pkgs.anydesk
|
pkgs.anydesk
|
||||||
pkgs.arduino-ide
|
pkgs.arduino-ide
|
||||||
|
pkgs.dbeaver-bin
|
||||||
pkgs.dig.dnsutils
|
pkgs.dig.dnsutils
|
||||||
pkgs.distrobox
|
pkgs.distrobox
|
||||||
pkgs.exercism
|
pkgs.exercism
|
||||||
@ -195,6 +190,7 @@
|
|||||||
".config/modprobed-db"
|
".config/modprobed-db"
|
||||||
".config/sops/age"
|
".config/sops/age"
|
||||||
".config/streamrip"
|
".config/streamrip"
|
||||||
|
".local/share/DBeaverData"
|
||||||
".local/share/distrobox"
|
".local/share/distrobox"
|
||||||
".local/share/maa"
|
".local/share/maa"
|
||||||
".local/share/PrismLauncher"
|
".local/share/PrismLauncher"
|
||||||
|
@ -1,227 +0,0 @@
|
|||||||
<domain type="kvm">
|
|
||||||
<name>win10</name>
|
|
||||||
<uuid>1a5ec2e0-bf62-480a-8ebd-f17f66c7c4bf</uuid>
|
|
||||||
<metadata>
|
|
||||||
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
|
|
||||||
<libosinfo:os id="http://microsoft.com/win/10"/>
|
|
||||||
</libosinfo:libosinfo>
|
|
||||||
</metadata>
|
|
||||||
<memory unit="KiB">8388608</memory>
|
|
||||||
<currentMemory unit="KiB">2097152</currentMemory>
|
|
||||||
<memoryBacking>
|
|
||||||
<source type="memfd"/>
|
|
||||||
<access mode="shared"/>
|
|
||||||
</memoryBacking>
|
|
||||||
<vcpu placement="static">8</vcpu>
|
|
||||||
<resource>
|
|
||||||
<partition>/machine</partition>
|
|
||||||
</resource>
|
|
||||||
<os>
|
|
||||||
<type arch="x86_64" machine="pc-q35-8.1">hvm</type>
|
|
||||||
<loader readonly="yes" type="pflash">/run/libvirt/nix-ovmf/OVMF_CODE.fd</loader>
|
|
||||||
<nvram template="/run/libvirt/nix-ovmf/OVMF_VARS.fd">/var/lib/libvirt/qemu/nvram/win10_VARS.fd</nvram>
|
|
||||||
<boot dev="hd"/>
|
|
||||||
</os>
|
|
||||||
<features>
|
|
||||||
<acpi/>
|
|
||||||
<apic/>
|
|
||||||
<hyperv mode="custom">
|
|
||||||
<relaxed state="on"/>
|
|
||||||
<vapic state="on"/>
|
|
||||||
<spinlocks state="on" retries="8191"/>
|
|
||||||
<vpindex state="on"/>
|
|
||||||
<synic state="on"/>
|
|
||||||
</hyperv>
|
|
||||||
<vmport state="off"/>
|
|
||||||
</features>
|
|
||||||
<cpu mode="host-passthrough" check="none" migratable="on">
|
|
||||||
<topology sockets="1" dies="1" cores="4" threads="2"/>
|
|
||||||
</cpu>
|
|
||||||
<clock offset="localtime">
|
|
||||||
<timer name="rtc" tickpolicy="catchup"/>
|
|
||||||
<timer name="pit" tickpolicy="delay"/>
|
|
||||||
<timer name="hpet" present="yes"/>
|
|
||||||
<timer name="hypervclock" present="yes"/>
|
|
||||||
</clock>
|
|
||||||
<on_poweroff>destroy</on_poweroff>
|
|
||||||
<on_reboot>restart</on_reboot>
|
|
||||||
<on_crash>destroy</on_crash>
|
|
||||||
<pm>
|
|
||||||
<suspend-to-mem enabled="no"/>
|
|
||||||
<suspend-to-disk enabled="no"/>
|
|
||||||
</pm>
|
|
||||||
<devices>
|
|
||||||
<emulator>/run/libvirt/nix-emulators/qemu-system-x86_64</emulator>
|
|
||||||
<disk type="file" device="disk">
|
|
||||||
<driver name="qemu" type="qcow2" discard="unmap"/>
|
|
||||||
<source file="/media/libvirt/images/win10.qcow2"/>
|
|
||||||
<target dev="vda" bus="virtio"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x02" slot="0x00" function="0x0"/>
|
|
||||||
</disk>
|
|
||||||
<disk type="file" device="disk">
|
|
||||||
<driver name="qemu" type="qcow2" discard="unmap"/>
|
|
||||||
<source file="/media/libvirt/images/win10-persist.qcow2"/>
|
|
||||||
<target dev="vdb" bus="virtio"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
|
|
||||||
</disk>
|
|
||||||
<disk type="file" device="cdrom">
|
|
||||||
<driver name="qemu" type="raw"/>
|
|
||||||
<target dev="sda" bus="sata"/>
|
|
||||||
<readonly/>
|
|
||||||
<address type="drive" controller="0" bus="0" target="0" unit="0"/>
|
|
||||||
</disk>
|
|
||||||
<controller type="usb" index="0" model="qemu-xhci" ports="15">
|
|
||||||
<address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="0" model="pcie-root"/>
|
|
||||||
<controller type="pci" index="1" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="1" port="0x10"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="2" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="2" port="0x11"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="3" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="3" port="0x12"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x2"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="4" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="4" port="0x13"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x3"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="5" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="5" port="0x14"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x4"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="6" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="6" port="0x15"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x5"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="7" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="7" port="0x16"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x6"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="8" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="8" port="0x17"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x7"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="9" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="9" port="0x18"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0" multifunction="on"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="10" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="10" port="0x19"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x1"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="11" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="11" port="0x1a"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x2"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="12" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="12" port="0x1b"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x3"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="13" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="13" port="0x1c"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x4"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="14" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="14" port="0x1d"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x5"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="15" model="pcie-root-port">
|
|
||||||
<model name="pcie-root-port"/>
|
|
||||||
<target chassis="15" port="0x1e"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x6"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="pci" index="16" model="pcie-to-pci-bridge">
|
|
||||||
<model name="pcie-pci-bridge"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x08" slot="0x00" function="0x0"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="sata" index="0">
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="virtio-serial" index="0">
|
|
||||||
<address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
|
|
||||||
</controller>
|
|
||||||
<controller type="scsi" index="0" model="lsilogic">
|
|
||||||
<address type="pci" domain="0x0000" bus="0x10" slot="0x01" function="0x0"/>
|
|
||||||
</controller>
|
|
||||||
<filesystem type="mount" accessmode="passthrough">
|
|
||||||
<driver type="virtiofs" queue="1024"/>
|
|
||||||
<binary path="/run/current-system/sw/bin/virtiofsd" xattr="on">
|
|
||||||
<cache mode="always"/>
|
|
||||||
</binary>
|
|
||||||
<source dir="/media/libvirt/viofs"/>
|
|
||||||
<target dir="vfio-fs"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
|
|
||||||
</filesystem>
|
|
||||||
<interface type="bridge">
|
|
||||||
<mac address="52:54:00:5c:b7:0b"/>
|
|
||||||
<source bridge="br0"/>
|
|
||||||
<model type="virtio"/>
|
|
||||||
<link state="up"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
|
|
||||||
</interface>
|
|
||||||
<serial type="pty">
|
|
||||||
<target type="isa-serial" port="0">
|
|
||||||
<model name="isa-serial"/>
|
|
||||||
</target>
|
|
||||||
</serial>
|
|
||||||
<console type="pty">
|
|
||||||
<target type="serial" port="0"/>
|
|
||||||
</console>
|
|
||||||
<channel type="spicevmc">
|
|
||||||
<target type="virtio" name="com.redhat.spice.0"/>
|
|
||||||
<address type="virtio-serial" controller="0" bus="0" port="1"/>
|
|
||||||
</channel>
|
|
||||||
<input type="tablet" bus="usb">
|
|
||||||
<address type="usb" bus="0" port="1"/>
|
|
||||||
</input>
|
|
||||||
<input type="mouse" bus="ps2"/>
|
|
||||||
<input type="keyboard" bus="ps2"/>
|
|
||||||
<graphics type="spice" port="-1" autoport="no">
|
|
||||||
<listen type="address"/>
|
|
||||||
<image compression="off"/>
|
|
||||||
<gl enable="no"/>
|
|
||||||
</graphics>
|
|
||||||
<sound model="ich9">
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
|
|
||||||
</sound>
|
|
||||||
<audio id="1" type="spice"/>
|
|
||||||
<video>
|
|
||||||
<model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
|
|
||||||
</video>
|
|
||||||
<redirdev bus="usb" type="spicevmc">
|
|
||||||
<address type="usb" bus="0" port="2"/>
|
|
||||||
</redirdev>
|
|
||||||
<redirdev bus="usb" type="spicevmc">
|
|
||||||
<address type="usb" bus="0" port="3"/>
|
|
||||||
</redirdev>
|
|
||||||
<watchdog model="itco" action="reset"/>
|
|
||||||
<memballoon model="virtio">
|
|
||||||
<address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
|
|
||||||
</memballoon>
|
|
||||||
<rng model="virtio">
|
|
||||||
<backend model="random">/dev/urandom</backend>
|
|
||||||
<address type="pci" domain="0x0000" bus="0x09" slot="0x00" function="0x0"/>
|
|
||||||
</rng>
|
|
||||||
</devices>
|
|
||||||
<seclabel type="dynamic" model="dac" relabel="yes"/>
|
|
||||||
</domain>
|
|
@ -17,9 +17,9 @@
|
|||||||
<partition>/machine</partition>
|
<partition>/machine</partition>
|
||||||
</resource>
|
</resource>
|
||||||
<os>
|
<os>
|
||||||
<type arch='x86_64' machine='pc-q35-9.1'>hvm</type>
|
<type arch='x86_64' machine='pc-q35-9.2'>hvm</type>
|
||||||
<loader readonly='yes' type='pflash'>/run/libvirt/nix-ovmf/OVMF_CODE.fd</loader>
|
<loader readonly='yes' type='pflash'>/run/libvirt/nix-ovmf/OVMF_CODE.fd</loader>
|
||||||
<nvram template='/run/libvirt/nix-ovmf/OVMF_VARS.fd'>/var/lib/libvirt/qemu/nvram/win10code_VARS.fd</nvram>
|
<nvram template='/run/libvirt/nix-ovmf/OVMF_VARS.fd' templateFormat="raw" format="raw">/var/lib/libvirt/qemu/nvram/win10code_VARS.fd</nvram>
|
||||||
</os>
|
</os>
|
||||||
<features>
|
<features>
|
||||||
<acpi/>
|
<acpi/>
|
||||||
|
@ -17,9 +17,9 @@
|
|||||||
<partition>/machine</partition>
|
<partition>/machine</partition>
|
||||||
</resource>
|
</resource>
|
||||||
<os>
|
<os>
|
||||||
<type arch='x86_64' machine='pc-q35-9.1'>hvm</type>
|
<type arch='x86_64' machine='pc-q35-9.2'>hvm</type>
|
||||||
<loader readonly='yes' type='pflash'>/run/libvirt/nix-ovmf/OVMF_CODE.fd</loader>
|
<loader readonly='yes' type='pflash'>/run/libvirt/nix-ovmf/OVMF_CODE.fd</loader>
|
||||||
<nvram template='/run/libvirt/nix-ovmf/OVMF_VARS.fd'>/var/lib/libvirt/qemu/nvram/win10ed_VARS.fd</nvram>
|
<nvram template='/run/libvirt/nix-ovmf/OVMF_VARS.fd' templateFormat="raw" format="raw">/var/lib/libvirt/qemu/nvram/win10ed_VARS.fd</nvram>
|
||||||
</os>
|
</os>
|
||||||
<features>
|
<features>
|
||||||
<acpi/>
|
<acpi/>
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
{ inputs, config, pkgs, lib, ... }:
|
{ inputs, config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
zfs_arc_max = toString (2 * 1024 * 1024 * 1024);
|
zfs_arc_max = toString (2 * 1024 * 1024 * 1024);
|
||||||
chaoticPkgs = inputs.chaotic.packages.${pkgs.hostPlatform.system};
|
|
||||||
in {
|
in {
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = chaoticPkgs.linuxPackages_cachyos;
|
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||||
zfs.package = chaoticPkgs.zfs_cachyos;
|
zfs.package = pkgs.zfs_unstable;
|
||||||
|
|
||||||
initrd = {
|
initrd = {
|
||||||
supportedFilesystems = [ "zfs" ];
|
supportedFilesystems = [ "zfs" ];
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
./services/dns.nix
|
./services/dns.nix
|
||||||
./services/tailscale.nix
|
./services/tailscale.nix
|
||||||
./services/tor-bridge.nix
|
./services/tor-bridge.nix
|
||||||
./services/wireguard.nix
|
# ./services/wireguard.nix
|
||||||
./services/xtls.nix
|
./services/xtls.nix
|
||||||
|
|
||||||
customProfiles.authentik
|
customProfiles.authentik
|
||||||
@ -138,7 +138,6 @@
|
|||||||
services.journald.extraConfig = "Compress=false";
|
services.journald.extraConfig = "Compress=false";
|
||||||
nix.optimise.automatic = false;
|
nix.optimise.automatic = false;
|
||||||
nix.distributedBuilds = lib.mkForce false;
|
nix.distributedBuilds = lib.mkForce false;
|
||||||
environment.noXlibs = lib.mkForce false;
|
|
||||||
fonts.enableDefaultPackages = lib.mkForce false;
|
fonts.enableDefaultPackages = lib.mkForce false;
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
# security.pam.enableSSHAgentAuth = true;
|
# security.pam.enableSSHAgentAuth = true;
|
||||||
|
@ -1,104 +1,101 @@
|
|||||||
{
|
{
|
||||||
headscale-list = [
|
headscale-list = [
|
||||||
{ name = "ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "api.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "api.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
# { name = "auth.ataraxiadev.com"; type = "A"; value = "100.64.0.1"; }
|
# { name = "auth.ataraxiadev.com"; type = "A"; value = "100.64.0.1"; }
|
||||||
{ name = "cache.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "cache.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
# { name = "cal.ataraxiadev.com"; type = "A"; value = "100.64.0.1"; }
|
{ name = "cal.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "code.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "code.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "docs.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "docs.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "element.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "element.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "file.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "file.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "home.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "home.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "jackett.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "jackett.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "jellyfin.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "jellyfin.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "joplin.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "joplin.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "kavita.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "kavita.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "ldap.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "ldap.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "lib.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "lib.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "matrix.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "matrix.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "medusa.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "medusa.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "net.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "net.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "openbooks.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "openbooks.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "pdf.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "pdf.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "qbit.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "qbit.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "radarr.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "radarr.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "restic.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "restic.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "s3.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "s3.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "sonarr.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "sonarr.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "stats.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "stats.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "tools.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "tools.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "turn.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "turn.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "vault.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "vault.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
# { name = "vw.ataraxiadev.com"; type = "A"; value = "100.64.0.1"; }
|
{ name = "vw.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
{ name = "wiki.ataraxiadev.com"; type = "A"; value = "100.64.0.2"; }
|
{ name = "wiki.ataraxiadev.com"; type = "A"; value = "100.64.0.3"; }
|
||||||
|
|
||||||
{ name = "ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "api.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "api.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
# { name = "auth.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::1"; }
|
# { name = "auth.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::1"; }
|
||||||
{ name = "cache.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "cache.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
# { name = "cal.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::1"; }
|
{ name = "cal.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "code.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "code.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "docs.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "docs.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "element.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "element.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "file.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "file.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "home.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "home.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "jackett.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "jackett.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "jellyfin.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "jellyfin.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "joplin.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "joplin.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "kavita.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "kavita.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "ldap.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "ldap.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "lib.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "lib.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "matrix.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "matrix.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "medusa.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "medusa.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "net.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "net.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "openbooks.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "openbooks.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "pdf.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "pdf.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "qbit.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "qbit.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "radarr.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "radarr.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "restic.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "restic.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "s3.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "s3.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "sonarr.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "sonarr.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "stats.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "stats.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "tools.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "tools.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "turn.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "turn.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "vault.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "vault.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
# { name = "vw.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::1"; }
|
{ name = "vw.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
{ name = "wiki.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::2"; }
|
{ name = "wiki.ataraxiadev.com"; type = "AAAA"; value = "fd7a:115c:a1e0::3"; }
|
||||||
];
|
];
|
||||||
dnsmasq-list = [
|
dnsmasq-list = [
|
||||||
# TODO: Fix dns resolution in blocky for unmapped subdomains of ataraxiadev.com
|
"/api.ataraxiadev.com/10.10.10.10"
|
||||||
"/element.ataraxiadev.com/10.10.10.100"
|
"/cache.ataraxiadev.com/10.10.10.10"
|
||||||
"/matrix.ataraxiadev.com/10.10.10.100"
|
"/cal.ataraxiadev.com/10.10.10.10"
|
||||||
"/turn.ataraxiadev.com/10.10.10.100"
|
"/code.ataraxiadev.com/10.10.10.10"
|
||||||
|
"/docs.ataraxiadev.com/10.10.10.10"
|
||||||
"/api.ataraxiadev.com/10.10.10.100"
|
"/element.ataraxiadev.com/10.10.10.10"
|
||||||
# "/auth.ataraxiadev.com/10.10.10.100"
|
"/file.ataraxiadev.com/10.10.10.10"
|
||||||
"/cache.ataraxiadev.com/10.10.10.100"
|
"/home.ataraxiadev.com/10.10.10.10"
|
||||||
# "/cal.ataraxiadev.com/10.10.10.100"
|
"/jackett.ataraxiadev.com/10.10.10.10"
|
||||||
"/code.ataraxiadev.com/10.10.10.100"
|
"/jellyfin.ataraxiadev.com/10.10.10.10"
|
||||||
"/docs.ataraxiadev.com/10.10.10.100"
|
"/joplin.ataraxiadev.com/10.10.10.10"
|
||||||
"/file.ataraxiadev.com/10.10.10.100"
|
"/kavita.ataraxiadev.com/10.10.10.10"
|
||||||
"/home.ataraxiadev.com/10.10.10.100"
|
"/ldap.ataraxiadev.com/10.10.10.10"
|
||||||
"/jackett.ataraxiadev.com/10.10.10.100"
|
"/lib.ataraxiadev.com/10.10.10.10"
|
||||||
"/jellyfin.ataraxiadev.com/10.10.10.100"
|
"/matrix.ataraxiadev.com/10.10.10.10"
|
||||||
"/joplin.ataraxiadev.com/10.10.10.100"
|
"/medusa.ataraxiadev.com/10.10.10.10"
|
||||||
"/kavita.ataraxiadev.com/10.10.10.100"
|
"/net.ataraxiadev.com/10.10.10.10"
|
||||||
"/ldap.ataraxiadev.com/10.10.10.100"
|
"/openbooks.ataraxiadev.com/10.10.10.10"
|
||||||
"/lib.ataraxiadev.com/10.10.10.100"
|
"/pdf.ataraxiadev.com/10.10.10.10"
|
||||||
"/medusa.ataraxiadev.com/10.10.10.100"
|
"/qbit.ataraxiadev.com/10.10.10.10"
|
||||||
"/net.ataraxiadev.com/10.10.10.100"
|
"/radarr.ataraxiadev.com/10.10.10.10"
|
||||||
"/openbooks.ataraxiadev.com/10.10.10.100"
|
"/restic.ataraxiadev.com/10.10.10.10"
|
||||||
"/pdf.ataraxiadev.com/10.10.10.100"
|
"/s3.ataraxiadev.com/10.10.10.10"
|
||||||
"/qbit.ataraxiadev.com/10.10.10.100"
|
"/sonarr.ataraxiadev.com/10.10.10.10"
|
||||||
"/radarr.ataraxiadev.com/10.10.10.100"
|
"/stats.ataraxiadev.com/10.10.10.10"
|
||||||
"/restic.ataraxiadev.com/10.10.10.100"
|
"/tools.ataraxiadev.com/10.10.10.10"
|
||||||
"/s3.ataraxiadev.com/10.10.10.100"
|
"/turn.ataraxiadev.com/10.10.10.10"
|
||||||
"/stats.ataraxiadev.com/10.10.10.100"
|
"/vault.ataraxiadev.com/10.10.10.10"
|
||||||
"/sonarr.ataraxiadev.com/10.10.10.100"
|
"/vw.ataraxiadev.com/10.10.10.10"
|
||||||
"/tools.ataraxiadev.com/10.10.10.100"
|
"/wiki.ataraxiadev.com/10.10.10.10"
|
||||||
"/vault.ataraxiadev.com/10.10.10.100"
|
|
||||||
# "/vw.ataraxiadev.com/10.10.10.100"
|
|
||||||
"/wiki.ataraxiadev.com/10.10.10.100"
|
|
||||||
];
|
];
|
||||||
}
|
}
|
@ -11,6 +11,7 @@ in {
|
|||||||
nftables.enable = false; # incompatible with tailscale and docker
|
nftables.enable = false; # incompatible with tailscale and docker
|
||||||
hostName = config.device;
|
hostName = config.device;
|
||||||
domain = domain;
|
domain = domain;
|
||||||
|
nameservers = with interfaces.main'; IPv4.dns ++ lib.optionals hasIPv6 IPv6.dns;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.network = with interfaces.main'; {
|
systemd.network = with interfaces.main'; {
|
||||||
@ -33,12 +34,6 @@ in {
|
|||||||
"fc00::1/64"
|
"fc00::1/64"
|
||||||
];
|
];
|
||||||
linkConfig.RequiredForOnline = "routable";
|
linkConfig.RequiredForOnline = "routable";
|
||||||
networkConfig = {
|
|
||||||
DHCPServer = true;
|
|
||||||
IPForward = true;
|
|
||||||
# IPv6PrivacyExtensions = "kernel";
|
|
||||||
DNS = IPv4.dns ++ lib.optionals hasIPv6 IPv6.dns;
|
|
||||||
};
|
|
||||||
routes = [{
|
routes = [{
|
||||||
routeConfig.Gateway = IPv4.gateway;
|
routeConfig.Gateway = IPv4.gateway;
|
||||||
routeConfig.GatewayOnLink = true;
|
routeConfig.GatewayOnLink = true;
|
||||||
|
@ -240,11 +240,11 @@ in {
|
|||||||
toString (sockets * cores * threads)
|
toString (sockets * cores * threads)
|
||||||
}</vcpu>
|
}</vcpu>
|
||||||
<os>
|
<os>
|
||||||
<type arch="x86_64" machine="pc-q35-7.2">hvm</type>
|
<type arch="x86_64" machine="pc-q35-9.2">hvm</type>
|
||||||
${
|
${
|
||||||
lib.optionalString guest.uefi ''
|
lib.optionalString guest.uefi ''
|
||||||
<loader readonly="yes" type="pflash">/run/libvirt/nix-ovmf/OVMF_CODE.fd</loader>
|
<loader readonly="yes" type="pflash" format="raw">/run/libvirt/nix-ovmf/OVMF_CODE.fd</loader>
|
||||||
<nvram template="/run/libvirt/nix-ovmf/OVMF_CODE.fd">/var/lib/libvirt/qemu/nvram/${name}_VARS.fd</nvram>
|
<nvram template="/run/libvirt/nix-ovmf/OVMF_CODE.fd" templateFormat="raw" format="raw">/var/lib/libvirt/qemu/nvram/${name}_VARS.fd</nvram>
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
</os>
|
</os>
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
From bdfa0f011297b749d18954e76c8eb36309e3808d Mon Sep 17 00:00:00 2001
|
|
||||||
From: benaryorg <binary@benary.org>
|
|
||||||
Date: Tue, 5 Nov 2024 13:22:10 +0000
|
|
||||||
Subject: [PATCH] python3Packages.pywebview: build fix for tests
|
|
||||||
|
|
||||||
Fixes #353686
|
|
||||||
|
|
||||||
Basically the *tests/run.sh* used upstream has a few rough edges and this replaces it with a smoother version.
|
|
||||||
An issue was also opened on the upstream project to maybe get this smoothed out generally.
|
|
||||||
|
|
||||||
Story time for those who are curious.
|
|
||||||
Basically upstream uses this as a script to call for the CI pipeline where [the builds seem to run smoothly in appveyor](https://ci.appveyor.com/project/r0x0r/pywebview/builds/50791017).
|
|
||||||
However the general structure of the script iterates over the files, which in earlier versions had been done by collecting the list of tests via pytest itself, which replaced the earliest implementation which was a file hard-coding all the tests to run.
|
|
||||||
The latter had the benefit of being able to disable tests by commenting them out on our end, however the new version, at least for our purpose, is just a more complicated version of running pytest against the entire thing.
|
|
||||||
We can't just use plain pytest however (which'd presumably be supported by nixpkgs infra already) because we still need to shove the Qt and xvfb-run shims in between.
|
|
||||||
So with running pytest as a single command we are now (with this commit) able to specifically disable tests that we know to be flakey using regular pytest means.
|
|
||||||
With the Qt wrapper function passing extra args to *makeWrapper* we can use the extra flags to pass everything we need, and with the env invocation we avoid polluting the build environment so that the *checkPhase* itself doesn't change the output.
|
|
||||||
|
|
||||||
Now on to the actual failing tests, apparently those happened to be related to relative paths which use an internal HTTP server to be served (for absolute paths this is optional), and getting rid of the cwd shenanigans which were required by the upstream version of the script (since it globbed on the current directory) means that somehow pytest now runs these tests without changing directory in a subprocess so the asset used for testing is properly accessible (before this change one could "fix" the tests by changing to an absolute path in the tests).
|
|
||||||
|
|
||||||
Signed-off-by: benaryorg <binary@benary.org>
|
|
||||||
---
|
|
||||||
.../python-modules/pywebview/default.nix | 24 ++++++++-----------
|
|
||||||
1 file changed, 10 insertions(+), 14 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pkgs/development/python-modules/pywebview/default.nix b/pkgs/development/python-modules/pywebview/default.nix
|
|
||||||
index 96b1213ca5140..6346c96c62fcc 100644
|
|
||||||
--- a/pkgs/development/python-modules/pywebview/default.nix
|
|
||||||
+++ b/pkgs/development/python-modules/pywebview/default.nix
|
|
||||||
@@ -50,21 +50,17 @@ buildPythonPackage rec {
|
|
||||||
];
|
|
||||||
|
|
||||||
checkPhase = ''
|
|
||||||
- # Cannot create directory /homeless-shelter/.... Error: FILE_ERROR_ACCESS_DENIED
|
|
||||||
- export HOME=$TMPDIR
|
|
||||||
- # QStandardPaths: XDG_RUNTIME_DIR not set
|
|
||||||
- export XDG_RUNTIME_DIR=$HOME/xdg-runtime-dir
|
|
||||||
+ # a Qt wrapper is required to run the Qt backend
|
|
||||||
+ # since the upstream script does not have a way to disable tests individually pytest is used directly instead
|
|
||||||
+ makeQtWrapper "$(command -v pytest)" tests/run.sh \
|
|
||||||
+ --set PYWEBVIEW_LOG debug \
|
|
||||||
+ --add-flags "--deselect tests/test_js_api.py::test_concurrent"
|
|
||||||
|
|
||||||
- pushd tests
|
|
||||||
- substituteInPlace run.sh \
|
|
||||||
- --replace "PYTHONPATH=.." "PYTHONPATH=$PYTHONPATH" \
|
|
||||||
- --replace "pywebviewtest test_js_api.py::test_concurrent ''${PYTEST_OPTIONS}" "# skip flaky test_js_api.py::test_concurrent"
|
|
||||||
-
|
|
||||||
- patchShebangs run.sh
|
|
||||||
- wrapQtApp run.sh
|
|
||||||
-
|
|
||||||
- xvfb-run -s '-screen 0 800x600x24' ./run.sh
|
|
||||||
- popd
|
|
||||||
+ # HOME and XDG directories are required for the tests
|
|
||||||
+ env \
|
|
||||||
+ HOME=$TMPDIR \
|
|
||||||
+ XDG_RUNTIME_DIR=$TMPDIR/xdg-runtime-dir \
|
|
||||||
+ xvfb-run -s '-screen 0 800x600x24' tests/run.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
pythonImportsCheck = [ "webview" ];
|
|
@ -1,22 +0,0 @@
|
|||||||
From d08e25d8683ebe341d2fed24523d7604793f3414 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kira Bruneau <kira.bruneau@pm.me>
|
|
||||||
Date: Thu, 7 Nov 2024 09:36:11 -0500
|
|
||||||
Subject: [PATCH] geoclue: fix placing updateScript in passthru
|
|
||||||
|
|
||||||
---
|
|
||||||
pkgs/development/libraries/geoclue/default.nix | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix
|
|
||||||
index d30c0b411796d..2b1e203c78089 100644
|
|
||||||
--- a/pkgs/development/libraries/geoclue/default.nix
|
|
||||||
+++ b/pkgs/development/libraries/geoclue/default.nix
|
|
||||||
@@ -94,7 +94,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|
||||||
patchShebangs demo/install-file.py
|
|
||||||
'';
|
|
||||||
|
|
||||||
- updateScript = nix-update-script {};
|
|
||||||
+ passthru.updateScript = nix-update-script {};
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
broken = stdenv.hostPlatform.isDarwin && withDemoAgent;
|
|
@ -1,47 +0,0 @@
|
|||||||
From 477814140bcda31e08798ce9dc5ac8f55872d64c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Petr Portnov <mrjarviscraft+nix@gmail.com>
|
|
||||||
Date: Wed, 18 Dec 2024 21:07:51 +0300
|
|
||||||
Subject: [PATCH] anydesk: add missing dependencies
|
|
||||||
|
|
||||||
---
|
|
||||||
pkgs/by-name/an/anydesk/package.nix | 13 ++++++++++---
|
|
||||||
1 file changed, 10 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pkgs/by-name/an/anydesk/package.nix b/pkgs/by-name/an/anydesk/package.nix
|
|
||||||
index 00f6c2354a45f..ceb25c775d6c8 100644
|
|
||||||
--- a/pkgs/by-name/an/anydesk/package.nix
|
|
||||||
+++ b/pkgs/by-name/an/anydesk/package.nix
|
|
||||||
@@ -11,7 +11,10 @@
|
|
||||||
gdk-pixbuf,
|
|
||||||
glib,
|
|
||||||
gnome2,
|
|
||||||
- gtk2,
|
|
||||||
+ gtk3,
|
|
||||||
+ dbus,
|
|
||||||
+ harfbuzz,
|
|
||||||
+ libz,
|
|
||||||
libGLU,
|
|
||||||
libGL,
|
|
||||||
pango,
|
|
||||||
@@ -48,7 +51,10 @@ stdenv.mkDerivation (finalAttrs: {
|
|
||||||
cairo
|
|
||||||
gdk-pixbuf
|
|
||||||
glib
|
|
||||||
- gtk2
|
|
||||||
+ gtk3
|
|
||||||
+ dbus
|
|
||||||
+ harfbuzz
|
|
||||||
+ libz
|
|
||||||
stdenv.cc.cc
|
|
||||||
pango
|
|
||||||
gnome2.gtkglext
|
|
||||||
@@ -123,7 +129,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|
||||||
lsb-release
|
|
||||||
pciutils
|
|
||||||
]
|
|
||||||
- }
|
|
||||||
+ } \
|
|
||||||
+ --prefix GDK_BACKEND : x11
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
@ -1,13 +0,0 @@
|
|||||||
diff --git a/src/libutil/current-process.cc b/src/libutil/current-process.cc
|
|
||||||
index 352a6a0..7435f58 100644
|
|
||||||
--- a/src/libutil/current-process.cc
|
|
||||||
+++ b/src/libutil/current-process.cc
|
|
||||||
@@ -35,6 +35,8 @@ unsigned int getMaxCPU()
|
|
||||||
|
|
||||||
auto cpuMax = readFile(cpuFile);
|
|
||||||
auto cpuMaxParts = tokenizeString<std::vector<std::string>>(cpuMax, " \n");
|
|
||||||
+ if (cpuMaxParts.size() != 2)
|
|
||||||
+ return 0;
|
|
||||||
auto quota = cpuMaxParts[0];
|
|
||||||
auto period = cpuMaxParts[1];
|
|
||||||
if (quota != "max")
|
|
22
patches/hyprland-tablet.patch
Normal file
22
patches/hyprland-tablet.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff --git a/src/managers/input/Tablets.cpp b/src/managers/input/Tablets.cpp
|
||||||
|
index 0952a7d..f61d818 100644
|
||||||
|
--- a/src/managers/input/Tablets.cpp
|
||||||
|
+++ b/src/managers/input/Tablets.cpp
|
||||||
|
@@ -159,13 +159,12 @@ void CInputManager::onTabletAxis(CTablet::SAxisEvent e) {
|
||||||
|
void CInputManager::onTabletTip(CTablet::STipEvent e) {
|
||||||
|
const auto PTAB = e.tablet;
|
||||||
|
const auto PTOOL = ensureTabletToolPresent(e.tool);
|
||||||
|
- const auto POS = e.tip;
|
||||||
|
- g_pPointerManager->warpAbsolute(POS, PTAB);
|
||||||
|
- refocusTablet(PTAB, PTOOL, true);
|
||||||
|
|
||||||
|
- if (e.in)
|
||||||
|
+ if (e.in) {
|
||||||
|
+ simulateMouseMovement();
|
||||||
|
+ refocusTablet(PTAB, PTOOL);
|
||||||
|
PROTO::tablet->down(PTOOL);
|
||||||
|
- else
|
||||||
|
+ } else
|
||||||
|
PROTO::tablet->up(PTOOL);
|
||||||
|
|
||||||
|
PTOOL->isDown = e.in;
|
@ -1,603 +0,0 @@
|
|||||||
diff --git a/nixos/modules/services/networking/netbird.nix b/nixos/modules/services/networking/netbird.nix
|
|
||||||
index 7add37789..0160a8964 100644
|
|
||||||
--- a/nixos/modules/services/networking/netbird.nix
|
|
||||||
+++ b/nixos/modules/services/networking/netbird.nix
|
|
||||||
@@ -1,73 +1,155 @@
|
|
||||||
-{
|
|
||||||
- config,
|
|
||||||
- lib,
|
|
||||||
- pkgs,
|
|
||||||
- ...
|
|
||||||
+{ config
|
|
||||||
+, lib
|
|
||||||
+, pkgs
|
|
||||||
+, ...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib)
|
|
||||||
- attrNames
|
|
||||||
+ attrValues
|
|
||||||
+ concatLists
|
|
||||||
+ concatStringsSep
|
|
||||||
+ escapeShellArgs
|
|
||||||
+ filterAttrs
|
|
||||||
getExe
|
|
||||||
literalExpression
|
|
||||||
maintainers
|
|
||||||
+ makeBinPath
|
|
||||||
mapAttrs'
|
|
||||||
+ mapAttrsToList
|
|
||||||
mkDefault
|
|
||||||
- mkEnableOption
|
|
||||||
mkIf
|
|
||||||
mkMerge
|
|
||||||
mkOption
|
|
||||||
+ mkOptionDefault
|
|
||||||
mkPackageOption
|
|
||||||
+ mkRemovedOptionModule
|
|
||||||
nameValuePair
|
|
||||||
optional
|
|
||||||
+ optionalString
|
|
||||||
+ toShellVars
|
|
||||||
+ versionAtLeast
|
|
||||||
versionOlder
|
|
||||||
;
|
|
||||||
|
|
||||||
inherit (lib.types)
|
|
||||||
attrsOf
|
|
||||||
+ bool
|
|
||||||
+ enum
|
|
||||||
+ package
|
|
||||||
port
|
|
||||||
str
|
|
||||||
submodule
|
|
||||||
;
|
|
||||||
|
|
||||||
- kernel = config.boot.kernelPackages;
|
|
||||||
+ inherit (config.boot) kernelPackages;
|
|
||||||
+ inherit (config.boot.kernelPackages) kernel;
|
|
||||||
|
|
||||||
cfg = config.services.netbird;
|
|
||||||
+
|
|
||||||
+ toClientList = fn: map fn (attrValues cfg.clients);
|
|
||||||
+ toClientAttrs = fn: mapAttrs' (_: fn) cfg.clients;
|
|
||||||
+
|
|
||||||
+ hardenedClients = filterAttrs (_: client: client.hardened) cfg.clients;
|
|
||||||
+ toHardenedClientList = fn: map fn (attrValues hardenedClients);
|
|
||||||
+ toHardenedClientAttrs = fn: mapAttrs' (_: fn) hardenedClients;
|
|
||||||
+
|
|
||||||
+ nixosConfig = config;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
meta.maintainers = with maintainers; [
|
|
||||||
misuzu
|
|
||||||
- thubrecht
|
|
||||||
+ nazarewk
|
|
||||||
];
|
|
||||||
meta.doc = ./netbird.md;
|
|
||||||
|
|
||||||
+ imports = [
|
|
||||||
+ (mkRemovedOptionModule [ "services" "netbird" "tunnels" ]
|
|
||||||
+ "The option `services.netbird.tunnels` has been renamed to `services.netbird.clients`")
|
|
||||||
+ ];
|
|
||||||
+
|
|
||||||
options.services.netbird = {
|
|
||||||
- enable = mkEnableOption "Netbird daemon";
|
|
||||||
+ enable = mkOption {
|
|
||||||
+ type = bool;
|
|
||||||
+ default = false;
|
|
||||||
+ description = ''
|
|
||||||
+ Enables backwards compatible Netbird client service.
|
|
||||||
+
|
|
||||||
+ This is strictly equivalent to:
|
|
||||||
+
|
|
||||||
+ ```nix
|
|
||||||
+ services.netbird.clients.wt0 = {
|
|
||||||
+ port = 51820;
|
|
||||||
+ name = "netbird";
|
|
||||||
+ interface = "wt0";
|
|
||||||
+ hardened = false;
|
|
||||||
+ };
|
|
||||||
+ ```
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
package = mkPackageOption pkgs "netbird" { };
|
|
||||||
|
|
||||||
- tunnels = mkOption {
|
|
||||||
+ ui.enable = mkOption {
|
|
||||||
+ type = bool;
|
|
||||||
+ default = config.services.displayManager.sessionPackages != [ ] || config.services.xserver.enable;
|
|
||||||
+ defaultText = literalExpression ''
|
|
||||||
+ config.services.displayManager.sessionPackages != [ ] || config.services.xserver.enable
|
|
||||||
+ '';
|
|
||||||
+ description = ''
|
|
||||||
+ Controls presence `netbird-ui` wrappers, defaults to presence of graphical sessions.
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
+ ui.package = mkPackageOption pkgs "netbird-ui" { };
|
|
||||||
+
|
|
||||||
+ clients = mkOption {
|
|
||||||
type = attrsOf (
|
|
||||||
submodule (
|
|
||||||
{ name, config, ... }:
|
|
||||||
+ let client = config; in
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
port = mkOption {
|
|
||||||
type = port;
|
|
||||||
- default = 51820;
|
|
||||||
+ example = literalExpression "51820";
|
|
||||||
description = ''
|
|
||||||
- Port for the ${name} netbird interface.
|
|
||||||
+ Port the Netbird client listens on.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
+ name = mkOption {
|
|
||||||
+ type = str;
|
|
||||||
+ default = name;
|
|
||||||
+ description = ''
|
|
||||||
+ Primary name for use (as a suffix) in:
|
|
||||||
+ - systemd service name,
|
|
||||||
+ - hardened user name and group,
|
|
||||||
+ - [systemd `*Directory=`](https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#RuntimeDirectory=) names,
|
|
||||||
+ - desktop application identification,
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ interface = mkOption {
|
|
||||||
+ type = str;
|
|
||||||
+ default = "nb-${client.name}";
|
|
||||||
+ description = ''
|
|
||||||
+ Name of the network interface managed by this client.
|
|
||||||
+ '';
|
|
||||||
+ apply = iface:
|
|
||||||
+ lib.throwIfNot (builtins.stringLength iface <= 15) "Network interface name must be 15 characters or less"
|
|
||||||
+ iface;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
environment = mkOption {
|
|
||||||
type = attrsOf str;
|
|
||||||
defaultText = literalExpression ''
|
|
||||||
{
|
|
||||||
- NB_CONFIG = "/var/lib/''${stateDir}/config.json";
|
|
||||||
- NB_LOG_FILE = "console";
|
|
||||||
- NB_WIREGUARD_PORT = builtins.toString port;
|
|
||||||
- NB_INTERFACE_NAME = name;
|
|
||||||
- NB_DAMEON_ADDR = "/var/run/''${stateDir}"
|
|
||||||
+ NB_CONFIG = "/var/lib/netbird-''${client.name}/config.json";
|
|
||||||
+ NB_DAEMON_ADDR = "unix:///var/run/netbird-''${client.name}/sock";
|
|
||||||
+ NB_INTERFACE_NAME = config.interface;
|
|
||||||
+ NB_LOG_FILE = mkOptionDefault "console";
|
|
||||||
+ NB_LOG_LEVEL = config.logLevel;
|
|
||||||
+ NB_SERVICE = "netbird-''${client.name}";
|
|
||||||
+ NB_WIREGUARD_PORT = toString config.port;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
description = ''
|
|
||||||
@@ -75,97 +157,361 @@ in
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
- stateDir = mkOption {
|
|
||||||
- type = str;
|
|
||||||
- default = "netbird-${name}";
|
|
||||||
+ autoStart = mkOption {
|
|
||||||
+ type = bool;
|
|
||||||
+ default = true;
|
|
||||||
+ description = ''
|
|
||||||
+ Start the service with the system.
|
|
||||||
+
|
|
||||||
+ As of 2024-02-13 it is not possible to start a Netbird client daemon without immediately
|
|
||||||
+ connecting to the network, but it is [planned for a near future](https://github.com/netbirdio/netbird/projects/2#card-91718018).
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ openFirewall = mkOption {
|
|
||||||
+ type = bool;
|
|
||||||
+ default = true;
|
|
||||||
+ description = ''
|
|
||||||
+ Opens up firewall `port` for communication between Netbird peers directly over LAN or public IP,
|
|
||||||
+ without using (internet-hosted) TURN servers as intermediaries.
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ hardened = mkOption {
|
|
||||||
+ type = bool;
|
|
||||||
+ default = true;
|
|
||||||
description = ''
|
|
||||||
- Directory storing the netbird configuration.
|
|
||||||
+ Hardened service:
|
|
||||||
+ - runs as a dedicated user with minimal set of permissions (see caveats),
|
|
||||||
+ - restricts daemon configuration socket access to dedicated user group
|
|
||||||
+ (you can grant access to it with `users.users."<user>".extraGroups = [ "netbird-${client.name}" ]`),
|
|
||||||
+
|
|
||||||
+ Even though the local system resources access is restricted:
|
|
||||||
+ - `CAP_NET_RAW`, `CAP_NET_ADMIN` and `CAP_BPF` still give unlimited network manipulation possibilites,
|
|
||||||
+ - older kernels don't have `CAP_BPF` and use `CAP_SYS_ADMIN` instead,
|
|
||||||
+
|
|
||||||
+ Known security features that are not (yet) integrated into the module:
|
|
||||||
+ - 2024-02-14: `rosenpass` is an experimental feature configurable solely
|
|
||||||
+ through `--enable-rosenpass` flag on the `netbird up` command,
|
|
||||||
+ see [the docs](https://docs.netbird.io/how-to/enable-post-quantum-cryptography)
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ logLevel = mkOption {
|
|
||||||
+ type = enum [
|
|
||||||
+ # logrus loglevels
|
|
||||||
+ "panic"
|
|
||||||
+ "fatal"
|
|
||||||
+ "error"
|
|
||||||
+ "warn"
|
|
||||||
+ "warning"
|
|
||||||
+ "info"
|
|
||||||
+ "debug"
|
|
||||||
+ "trace"
|
|
||||||
+ ];
|
|
||||||
+ default = "info";
|
|
||||||
+ description = "Log level of the Netbird daemon.";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ ui.enable = mkOption {
|
|
||||||
+ type = bool;
|
|
||||||
+ default = nixosConfig.services.netbird.ui.enable;
|
|
||||||
+ defaultText = literalExpression ''config.ui.enable'';
|
|
||||||
+ description = ''
|
|
||||||
+ Controls presence of `netbird-ui` wrapper for this Netbird client.
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ wrapper = mkOption {
|
|
||||||
+ type = package;
|
|
||||||
+ internal = true;
|
|
||||||
+ default =
|
|
||||||
+ let
|
|
||||||
+ makeWrapperArgs = concatLists (mapAttrsToList
|
|
||||||
+ (key: value: [ "--set-default" key value ])
|
|
||||||
+ config.environment
|
|
||||||
+ );
|
|
||||||
+ in
|
|
||||||
+ pkgs.stdenv.mkDerivation {
|
|
||||||
+ name = "${cfg.package.name}-wrapper-${client.name}";
|
|
||||||
+ meta.mainProgram = "netbird-${client.name}";
|
|
||||||
+ nativeBuildInputs = with pkgs; [ makeWrapper ];
|
|
||||||
+ phases = [ "installPhase" ];
|
|
||||||
+ installPhase = concatStringsSep "\n" [
|
|
||||||
+ ''
|
|
||||||
+ mkdir -p "$out/bin"
|
|
||||||
+ makeWrapper ${lib.getExe cfg.package} "$out/bin/netbird-${client.name}" \
|
|
||||||
+ ${escapeShellArgs makeWrapperArgs}
|
|
||||||
+ ''
|
|
||||||
+ (optionalString cfg.ui.enable ''
|
|
||||||
+ # netbird-ui doesn't support envvars
|
|
||||||
+ makeWrapper ${lib.getExe cfg.ui.package} "$out/bin/netbird-ui-${client.name}" \
|
|
||||||
+ --add-flags '--daemon-addr=${config.environment.NB_DAEMON_ADDR}'
|
|
||||||
+
|
|
||||||
+ mkdir -p "$out/share/applications"
|
|
||||||
+ substitute ${cfg.ui.package}/share/applications/netbird.desktop \
|
|
||||||
+ "$out/share/applications/netbird-${client.name}.desktop" \
|
|
||||||
+ --replace-fail 'Name=Netbird' "Name=Netbird @ netbird-${client.name}" \
|
|
||||||
+ --replace-fail '${lib.getExe cfg.ui.package}' "$out/bin/netbird-ui-${client.name}"
|
|
||||||
+ '')
|
|
||||||
+ ];
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ # see https://github.com/netbirdio/netbird/blob/88747e3e0191abc64f1e8c7ecc65e5e50a1527fd/client/internal/config.go#L49-L82
|
|
||||||
+ config = mkOption {
|
|
||||||
+ type = (pkgs.formats.json { }).type;
|
|
||||||
+ defaultText = literalExpression ''
|
|
||||||
+ {
|
|
||||||
+ DisableAutoConnect = !config.autoStart;
|
|
||||||
+ WgIface = config.interface;
|
|
||||||
+ WgPort = config.port;
|
|
||||||
+ }
|
|
||||||
+ '';
|
|
||||||
+ description = ''
|
|
||||||
+ Additional configuration that exists before the first start and
|
|
||||||
+ later overrides the existing values in `config.json`.
|
|
||||||
+
|
|
||||||
+ It is mostly helpful to manage configuration ignored/not yet implemented
|
|
||||||
+ outside of `netbird up` invocation.
|
|
||||||
+
|
|
||||||
+ WARNING: this is not an upstream feature, it could break in the future
|
|
||||||
+ (by having lower priority) after upstream implements an equivalent.
|
|
||||||
+
|
|
||||||
+ It is implemented as a `preStart` script which overrides `config.json`
|
|
||||||
+ with content of `/etc/netbird-${client.name}/config.d/*.json` files.
|
|
||||||
+ This option manages specifically `50-nixos.json` file.
|
|
||||||
+
|
|
||||||
+ Consult [the source code](https://github.com/netbirdio/netbird/blob/88747e3e0191abc64f1e8c7ecc65e5e50a1527fd/client/internal/config.go#L49-L82)
|
|
||||||
+ or inspect existing file for a complete list of available configurations.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
- config.environment = builtins.mapAttrs (_: mkDefault) {
|
|
||||||
- NB_CONFIG = "/var/lib/${config.stateDir}/config.json";
|
|
||||||
- NB_LOG_FILE = "console";
|
|
||||||
- NB_WIREGUARD_PORT = builtins.toString config.port;
|
|
||||||
- NB_INTERFACE_NAME = name;
|
|
||||||
- NB_DAEMON_ADDR = "unix:///var/run/${config.stateDir}/sock";
|
|
||||||
+ config.environment = {
|
|
||||||
+ NB_CONFIG = "/var/lib/netbird-${client.name}/config.json";
|
|
||||||
+ NB_DAEMON_ADDR = "unix:///var/run/netbird-${client.name}/sock";
|
|
||||||
+ NB_INTERFACE_NAME = config.interface;
|
|
||||||
+ NB_LOG_FILE = mkOptionDefault "console";
|
|
||||||
+ NB_LOG_LEVEL = config.logLevel;
|
|
||||||
+ NB_SERVICE = "netbird-${client.name}";
|
|
||||||
+ NB_WIREGUARD_PORT = toString config.port;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ config.config = {
|
|
||||||
+ DisableAutoConnect = !config.autoStart;
|
|
||||||
+ WgIface = config.interface;
|
|
||||||
+ WgPort = config.port;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
|
||||||
default = { };
|
|
||||||
description = ''
|
|
||||||
- Attribute set of Netbird tunnels, each one will spawn a daemon listening on ...
|
|
||||||
+ Attribute set of Netbird client daemons, by default each one will:
|
|
||||||
+
|
|
||||||
+ 1. be manageable using dedicated tooling:
|
|
||||||
+ - `netbird-<name>` script,
|
|
||||||
+ - `Netbird - netbird-<name>` graphical interface when appropriate (see `ui.enable`),
|
|
||||||
+ 2. run as a `netbird-<name>.service`,
|
|
||||||
+ 3. listen for incoming remote connections on the port `51820` (`openFirewall` by default),
|
|
||||||
+ 4. manage the `netbird-<name>` wireguard interface,
|
|
||||||
+ 5. use the `/var/lib/netbird-<name>/config.json` configuration file,
|
|
||||||
+ 6. override `/var/lib/netbird-<name>/config.json` with values from `/etc/netbird-<name>/config.d/*.json`,
|
|
||||||
+ 7. (`hardened`) be locally manageable by `netbird-<name>` system group,
|
|
||||||
+
|
|
||||||
+ With following caveats:
|
|
||||||
+
|
|
||||||
+ - multiple daemons will interfere with each other's DNS resolution of `netbird.cloud`, but
|
|
||||||
+ should remain fully operational otherwise.
|
|
||||||
+ Setting up custom (non-conflicting) DNS zone is currently possible only when self-hosting.
|
|
||||||
+ '';
|
|
||||||
+ example = lib.literalExpression ''
|
|
||||||
+ {
|
|
||||||
+ services.netbird.clients.wt0.port = 51820;
|
|
||||||
+ services.netbird.clients.personal.port = 51821;
|
|
||||||
+ services.netbird.clients.work1.port = 51822;
|
|
||||||
+ }
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
- (mkIf cfg.enable {
|
|
||||||
- # For backwards compatibility
|
|
||||||
- services.netbird.tunnels.wt0.stateDir = "netbird";
|
|
||||||
- })
|
|
||||||
+ (mkIf cfg.enable (
|
|
||||||
+ let name = "wt0"; client = cfg.clients."${name}"; in {
|
|
||||||
+ services.netbird.clients."${name}" = {
|
|
||||||
+ port = mkDefault 51820;
|
|
||||||
+ name = mkDefault "netbird";
|
|
||||||
+ interface = mkDefault "wt0";
|
|
||||||
+ hardened = mkDefault false;
|
|
||||||
+ };
|
|
||||||
|
|
||||||
- (mkIf (cfg.tunnels != { }) {
|
|
||||||
- boot.extraModulePackages = optional (versionOlder kernel.kernel.version "5.6") kernel.wireguard;
|
|
||||||
+ environment.systemPackages = [
|
|
||||||
+ (lib.hiPrio (pkgs.runCommand "${client.name}-as-default" { } ''
|
|
||||||
+ mkdir -p "$out/bin"
|
|
||||||
+ for binary in netbird ${optionalString cfg.ui.enable "netbird-ui"} ; do
|
|
||||||
+ ln -s "${client.wrapper}/bin/$binary-${client.name}" "$out/bin/$binary"
|
|
||||||
+ done
|
|
||||||
+ ''))
|
|
||||||
+ ];
|
|
||||||
+ }
|
|
||||||
+ ))
|
|
||||||
+ {
|
|
||||||
+ boot.extraModulePackages = optional
|
|
||||||
+ (cfg.clients != { } && (versionOlder kernel.version "5.6"))
|
|
||||||
+ kernelPackages.wireguard;
|
|
||||||
|
|
||||||
- environment.systemPackages = [ cfg.package ];
|
|
||||||
+ environment.systemPackages =
|
|
||||||
+ toClientList (client: client.wrapper)
|
|
||||||
+ # omitted due to https://github.com/netbirdio/netbird/issues/1562
|
|
||||||
+ #++ optional (cfg.clients != { }) cfg.package
|
|
||||||
+ # omitted due to https://github.com/netbirdio/netbird/issues/1581
|
|
||||||
+ #++ optional (cfg.clients != { } && cfg.ui.enable) cfg.ui.package
|
|
||||||
+ ;
|
|
||||||
|
|
||||||
- networking.dhcpcd.denyInterfaces = attrNames cfg.tunnels;
|
|
||||||
+ networking.dhcpcd.denyInterfaces = toClientList (client: client.interface);
|
|
||||||
+ networking.networkmanager.unmanaged = toClientList (client: "interface-name:${client.interface}");
|
|
||||||
|
|
||||||
- systemd.network.networks = mkIf config.networking.useNetworkd (
|
|
||||||
- mapAttrs'
|
|
||||||
- (
|
|
||||||
- name: _:
|
|
||||||
- nameValuePair "50-netbird-${name}" {
|
|
||||||
- matchConfig = {
|
|
||||||
- Name = name;
|
|
||||||
- };
|
|
||||||
- linkConfig = {
|
|
||||||
- Unmanaged = true;
|
|
||||||
- ActivationPolicy = "manual";
|
|
||||||
- };
|
|
||||||
- }
|
|
||||||
- )
|
|
||||||
- cfg.tunnels
|
|
||||||
- );
|
|
||||||
+ networking.firewall.allowedUDPPorts = concatLists (toClientList (client: optional client.openFirewall client.port));
|
|
||||||
|
|
||||||
- systemd.services =
|
|
||||||
- mapAttrs'
|
|
||||||
- (
|
|
||||||
- name:
|
|
||||||
- { environment, stateDir, ... }:
|
|
||||||
- nameValuePair "netbird-${name}" {
|
|
||||||
- description = "A WireGuard-based mesh network that connects your devices into a single private network";
|
|
||||||
+ systemd.network.networks = mkIf config.networking.useNetworkd (toClientAttrs (client:
|
|
||||||
+ nameValuePair "50-netbird-${client.interface}" {
|
|
||||||
+ matchConfig = {
|
|
||||||
+ Name = client.interface;
|
|
||||||
+ };
|
|
||||||
+ linkConfig = {
|
|
||||||
+ Unmanaged = true;
|
|
||||||
+ ActivationPolicy = "manual";
|
|
||||||
+ };
|
|
||||||
+ }
|
|
||||||
+ ));
|
|
||||||
|
|
||||||
- documentation = [ "https://netbird.io/docs/" ];
|
|
||||||
+ environment.etc = toClientAttrs (client: nameValuePair "netbird-${client.name}/config.d/50-nixos.json" {
|
|
||||||
+ text = builtins.toJSON client.config;
|
|
||||||
+ mode = "0444";
|
|
||||||
+ });
|
|
||||||
|
|
||||||
- after = [ "network.target" ];
|
|
||||||
- wantedBy = [ "multi-user.target" ];
|
|
||||||
+ systemd.services = toClientAttrs (client: nameValuePair "netbird-${client.name}" {
|
|
||||||
+ description = "A WireGuard-based mesh network that connects your devices into a single private network";
|
|
||||||
|
|
||||||
- path = with pkgs; [ openresolv ];
|
|
||||||
+ documentation = [ "https://netbird.io/docs/" ];
|
|
||||||
|
|
||||||
- inherit environment;
|
|
||||||
+ after = [ "network.target" ];
|
|
||||||
+ wantedBy = [ "multi-user.target" ];
|
|
||||||
|
|
||||||
- serviceConfig = {
|
|
||||||
- ExecStart = "${getExe cfg.package} service run";
|
|
||||||
- Restart = "always";
|
|
||||||
- RuntimeDirectory = stateDir;
|
|
||||||
- StateDirectory = stateDir;
|
|
||||||
- StateDirectoryMode = "0700";
|
|
||||||
- WorkingDirectory = "/var/lib/${stateDir}";
|
|
||||||
- };
|
|
||||||
+ path = optional (!config.services.resolved.enable) pkgs.openresolv;
|
|
||||||
|
|
||||||
- unitConfig = {
|
|
||||||
- StartLimitInterval = 5;
|
|
||||||
- StartLimitBurst = 10;
|
|
||||||
- };
|
|
||||||
+ serviceConfig = {
|
|
||||||
+ ExecStart = "${getExe client.wrapper} service run";
|
|
||||||
+ Restart = "always";
|
|
||||||
+
|
|
||||||
+ RuntimeDirectory = "netbird-${client.name}";
|
|
||||||
+ RuntimeDirectoryMode = mkDefault "0755";
|
|
||||||
+ ConfigurationDirectory = "netbird-${client.name}";
|
|
||||||
+ StateDirectory = "netbird-${client.name}";
|
|
||||||
+ StateDirectoryMode = "0700";
|
|
||||||
+
|
|
||||||
+ WorkingDirectory = "/var/lib/netbird-${client.name}";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ unitConfig = {
|
|
||||||
+ StartLimitInterval = 5;
|
|
||||||
+ StartLimitBurst = 10;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ stopIfChanged = false;
|
|
||||||
+ });
|
|
||||||
+ }
|
|
||||||
+ # Hardening section
|
|
||||||
+ (mkIf (hardenedClients != { }) {
|
|
||||||
+ users.groups = toHardenedClientAttrs (client: nameValuePair "netbird-${client.name}" { });
|
|
||||||
+ users.users = toHardenedClientAttrs (client: nameValuePair "netbird-${client.name}" {
|
|
||||||
+ isSystemUser = true;
|
|
||||||
+ home = "/var/lib/netbird-${client.name}";
|
|
||||||
+ group = "netbird-${client.name}";
|
|
||||||
+ });
|
|
||||||
+
|
|
||||||
+ systemd.services = toHardenedClientAttrs (client: nameValuePair "netbird-${client.name}" (mkIf client.hardened {
|
|
||||||
+ serviceConfig = {
|
|
||||||
+ RuntimeDirectoryMode = "0750";
|
|
||||||
+
|
|
||||||
+ User = "netbird-${client.name}";
|
|
||||||
+ Group = "netbird-${client.name}";
|
|
||||||
+
|
|
||||||
+ # settings implied by DynamicUser=true, without actully using it,
|
|
||||||
+ # see https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#DynamicUser=
|
|
||||||
+ RemoveIPC = true;
|
|
||||||
+ PrivateTmp = true;
|
|
||||||
+ ProtectSystem = "strict";
|
|
||||||
+ ProtectHome = "yes";
|
|
||||||
|
|
||||||
- stopIfChanged = false;
|
|
||||||
- }
|
|
||||||
- )
|
|
||||||
- cfg.tunnels;
|
|
||||||
+ AmbientCapabilities = [
|
|
||||||
+ # see https://man7.org/linux/man-pages/man7/capabilities.7.html
|
|
||||||
+ # see https://docs.netbird.io/how-to/installation#running-net-bird-in-docker
|
|
||||||
+ #
|
|
||||||
+ # seems to work fine without CAP_SYS_ADMIN and CAP_SYS_RESOURCE
|
|
||||||
+ # CAP_NET_BIND_SERVICE could be added to allow binding on low ports, but is not required,
|
|
||||||
+ # see https://github.com/netbirdio/netbird/pull/1513
|
|
||||||
+
|
|
||||||
+ # failed creating tunnel interface wt-priv: [operation not permitted
|
|
||||||
+ "CAP_NET_ADMIN"
|
|
||||||
+ # failed to pull up wgInterface [wt-priv]: failed to create ipv4 raw socket: socket: operation not permitted
|
|
||||||
+ "CAP_NET_RAW"
|
|
||||||
+ ]
|
|
||||||
+ # required for eBPF filter, used to be subset of CAP_SYS_ADMIN
|
|
||||||
+ ++ optional (versionAtLeast kernel.version "5.8") "CAP_BPF"
|
|
||||||
+ ++ optional (versionOlder kernel.version "5.8") "CAP_SYS_ADMIN"
|
|
||||||
+ ;
|
|
||||||
+ };
|
|
||||||
+ }));
|
|
||||||
+
|
|
||||||
+ # see https://github.com/systemd/systemd/blob/17f3e91e8107b2b29fe25755651b230bbc81a514/src/resolve/org.freedesktop.resolve1.policy#L43-L43
|
|
||||||
+ security.polkit.extraConfig = mkIf config.services.resolved.enable ''
|
|
||||||
+ // systemd-resolved access for Netbird clients
|
|
||||||
+ polkit.addRule(function(action, subject) {
|
|
||||||
+ var actions = [
|
|
||||||
+ "org.freedesktop.resolve1.set-dns-servers",
|
|
||||||
+ "org.freedesktop.resolve1.set-domains",
|
|
||||||
+ ];
|
|
||||||
+ var users = ${builtins.toJSON (toHardenedClientList (client: "netbird-${client.name}"))};
|
|
||||||
+
|
|
||||||
+ if (actions.indexOf(action.id) >= 0 && users.indexOf(subject.user) >= 0 ) {
|
|
||||||
+ return polkit.Result.YES;
|
|
||||||
+ }
|
|
||||||
+ });
|
|
||||||
+ '';
|
|
||||||
})
|
|
||||||
+ # migration & temporary fixups section
|
|
||||||
+ {
|
|
||||||
+ systemd.services = toClientAttrs (client: nameValuePair "netbird-${client.name}" {
|
|
||||||
+ preStart = ''
|
|
||||||
+ set -eEuo pipefail
|
|
||||||
+ ${optionalString (client.logLevel == "trace" || client.logLevel == "debug") "set -x"}
|
|
||||||
+
|
|
||||||
+ PATH="${makeBinPath (with pkgs; [coreutils jq diffutils])}:$PATH"
|
|
||||||
+ export ${toShellVars client.environment}
|
|
||||||
+
|
|
||||||
+ # merge /etc/netbird-${client.name}/config.d' into "$NB_CONFIG"
|
|
||||||
+ {
|
|
||||||
+ test -e "$NB_CONFIG" || echo -n '{}' > "$NB_CONFIG"
|
|
||||||
+
|
|
||||||
+ # merge config.d with "$NB_CONFIG" into "$NB_CONFIG.new"
|
|
||||||
+ jq -sS 'reduce .[] as $i ({}; . * $i)' \
|
|
||||||
+ "$NB_CONFIG" \
|
|
||||||
+ /etc/netbird-${client.name}/config.d/*.json \
|
|
||||||
+ > "$NB_CONFIG.new"
|
|
||||||
+
|
|
||||||
+ echo "Comparing $NB_CONFIG with $NB_CONFIG.new ..."
|
|
||||||
+ if ! diff <(jq -S <"$NB_CONFIG") "$NB_CONFIG.new" ; then
|
|
||||||
+ echo "Updating $NB_CONFIG ..."
|
|
||||||
+ mv "$NB_CONFIG.new" "$NB_CONFIG"
|
|
||||||
+ else
|
|
||||||
+ echo "Files are the same, not doing anything."
|
|
||||||
+ rm "$NB_CONFIG.new"
|
|
||||||
+ fi
|
|
||||||
+ }
|
|
||||||
+ '';
|
|
||||||
+ });
|
|
||||||
+ }
|
|
||||||
];
|
|
||||||
}
|
|
@ -1,5 +1,5 @@
|
|||||||
diff --git a/nixos/modules/services/web-apps/onlyoffice.nix b/nixos/modules/services/web-apps/onlyoffice.nix
|
diff --git a/nixos/modules/services/web-apps/onlyoffice.nix b/nixos/modules/services/web-apps/onlyoffice.nix
|
||||||
index d56a4d66283c..c3f8323a5ddf 100644
|
index f56dfd341dcc..c3f8323a5ddf 100644
|
||||||
--- a/nixos/modules/services/web-apps/onlyoffice.nix
|
--- a/nixos/modules/services/web-apps/onlyoffice.nix
|
||||||
+++ b/nixos/modules/services/web-apps/onlyoffice.nix
|
+++ b/nixos/modules/services/web-apps/onlyoffice.nix
|
||||||
@@ -82,119 +82,6 @@ in
|
@@ -82,119 +82,6 @@ in
|
||||||
@ -29,27 +29,27 @@ index d56a4d66283c..c3f8323a5ddf 100644
|
|||||||
- virtualHosts.${cfg.hostname} = {
|
- virtualHosts.${cfg.hostname} = {
|
||||||
- locations = {
|
- locations = {
|
||||||
- # /etc/nginx/includes/ds-docservice.conf
|
- # /etc/nginx/includes/ds-docservice.conf
|
||||||
- "~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(web-apps\/apps\/api\/documents\/api\.js)$".extraConfig =
|
- "~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(web-apps\\/apps\\/api\\/documents\\/api\\.js)$".extraConfig =
|
||||||
- ''
|
- ''
|
||||||
- expires -1;
|
- expires -1;
|
||||||
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2;
|
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2;
|
||||||
- '';
|
- '';
|
||||||
- "~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(web-apps)(\/.*\.json)$".extraConfig = ''
|
- "~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(web-apps)(\\/.*\\.json)$".extraConfig = ''
|
||||||
- expires 365d;
|
- expires 365d;
|
||||||
- error_log /dev/null crit;
|
- error_log /dev/null crit;
|
||||||
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
|
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
|
||||||
- '';
|
- '';
|
||||||
- "~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(sdkjs-plugins)(\/.*\.json)$".extraConfig = ''
|
- "~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(sdkjs-plugins)(\\/.*\\.json)$".extraConfig = ''
|
||||||
- expires 365d;
|
- expires 365d;
|
||||||
- error_log /dev/null crit;
|
- error_log /dev/null crit;
|
||||||
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
|
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
|
||||||
- '';
|
- '';
|
||||||
- "~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(web-apps|sdkjs|sdkjs-plugins|fonts)(\/.*)$".extraConfig =
|
- "~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(web-apps|sdkjs|sdkjs-plugins|fonts)(\\/.*)$".extraConfig =
|
||||||
- ''
|
- ''
|
||||||
- expires 365d;
|
- expires 365d;
|
||||||
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
|
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
|
||||||
- '';
|
- '';
|
||||||
- "~* ^(\/cache\/files.*)(\/.*)".extraConfig = ''
|
- "~* ^(\\/cache\\/files.*)(\\/.*)".extraConfig = ''
|
||||||
- alias /var/lib/onlyoffice/documentserver/App_Data$1;
|
- alias /var/lib/onlyoffice/documentserver/App_Data$1;
|
||||||
- add_header Content-Disposition "attachment; filename*=UTF-8''$arg_filename";
|
- add_header Content-Disposition "attachment; filename*=UTF-8''$arg_filename";
|
||||||
-
|
-
|
||||||
@ -65,12 +65,12 @@ index d56a4d66283c..c3f8323a5ddf 100644
|
|||||||
- return 410;
|
- return 410;
|
||||||
- }
|
- }
|
||||||
- '';
|
- '';
|
||||||
- "~* ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(internal)(\/.*)$".extraConfig = ''
|
- "~* ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(internal)(\\/.*)$".extraConfig = ''
|
||||||
- allow 127.0.0.1;
|
- allow 127.0.0.1;
|
||||||
- deny all;
|
- deny all;
|
||||||
- proxy_pass http://onlyoffice-docservice/$2$3;
|
- proxy_pass http://onlyoffice-docservice/$2$3;
|
||||||
- '';
|
- '';
|
||||||
- "~* ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(info)(\/.*)$".extraConfig = ''
|
- "~* ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(info)(\\/.*)$".extraConfig = ''
|
||||||
- allow 127.0.0.1;
|
- allow 127.0.0.1;
|
||||||
- deny all;
|
- deny all;
|
||||||
- proxy_pass http://onlyoffice-docservice/$2$3;
|
- proxy_pass http://onlyoffice-docservice/$2$3;
|
||||||
@ -78,19 +78,19 @@ index d56a4d66283c..c3f8323a5ddf 100644
|
|||||||
- "/".extraConfig = ''
|
- "/".extraConfig = ''
|
||||||
- proxy_pass http://onlyoffice-docservice;
|
- proxy_pass http://onlyoffice-docservice;
|
||||||
- '';
|
- '';
|
||||||
- "~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?(\/doc\/.*)".extraConfig = ''
|
- "~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?(\\/doc\\/.*)".extraConfig = ''
|
||||||
- proxy_pass http://onlyoffice-docservice$2;
|
- proxy_pass http://onlyoffice-docservice$2;
|
||||||
- proxy_http_version 1.1;
|
- proxy_http_version 1.1;
|
||||||
- '';
|
- '';
|
||||||
- "/${cfg.package.version}/".extraConfig = ''
|
- "/${cfg.package.version}/".extraConfig = ''
|
||||||
- proxy_pass http://onlyoffice-docservice/;
|
- proxy_pass http://onlyoffice-docservice/;
|
||||||
- '';
|
- '';
|
||||||
- "~ ^(\/[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(dictionaries)(\/.*)$".extraConfig = ''
|
- "~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\d]+)?\\/(dictionaries)(\\/.*)$".extraConfig = ''
|
||||||
- expires 365d;
|
- expires 365d;
|
||||||
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
|
- alias ${cfg.package}/var/www/onlyoffice/documentserver/$2$3;
|
||||||
- '';
|
- '';
|
||||||
- # /etc/nginx/includes/ds-example.conf
|
- # /etc/nginx/includes/ds-example.conf
|
||||||
- "~ ^(\/welcome\/.*)$".extraConfig = ''
|
- "~ ^(\\/welcome\\/.*)$".extraConfig = ''
|
||||||
- expires 365d;
|
- expires 365d;
|
||||||
- alias ${cfg.package}/var/www/onlyoffice/documentserver-example$1;
|
- alias ${cfg.package}/var/www/onlyoffice/documentserver-example$1;
|
||||||
- index docker.html;
|
- index docker.html;
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
diff --git a/pkgs/os-specific/linux/zfs/2_2.nix b/pkgs/os-specific/linux/zfs/2_2.nix
|
|
||||||
index 9e3fde0780f0..9165ab4d5d1b 100644
|
|
||||||
--- a/pkgs/os-specific/linux/zfs/2_2.nix
|
|
||||||
+++ b/pkgs/os-specific/linux/zfs/2_2.nix
|
|
||||||
@@ -15,9 +15,9 @@ callPackage ./generic.nix args {
|
|
||||||
# this attribute is the correct one for this package.
|
|
||||||
kernelModuleAttribute = "zfs_2_2";
|
|
||||||
# check the release notes for compatible kernels
|
|
||||||
- kernelCompatible = kernel.kernelOlder "6.10";
|
|
||||||
+ kernelCompatible = kernel.kernelOlder "6.11";
|
|
||||||
|
|
||||||
- latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_6;
|
|
||||||
+ latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_10;
|
|
||||||
|
|
||||||
# this package should point to the latest release.
|
|
||||||
version = "2.2.5";
|
|
@ -3,6 +3,22 @@
|
|||||||
programs.steam.extraCompatPackages = [
|
programs.steam.extraCompatPackages = [
|
||||||
pkgs.proton-ge-bin
|
pkgs.proton-ge-bin
|
||||||
];
|
];
|
||||||
|
programs.steam.gamescopeSession.enable = true;
|
||||||
|
programs.steam.gamescopeSession.env = {
|
||||||
|
MANGOHUD = "1";
|
||||||
|
CONNECTOR = "*,DP-3";
|
||||||
|
};
|
||||||
|
programs.steam.gamescopeSession.args = [
|
||||||
|
"-w 2560"
|
||||||
|
"-h 1440"
|
||||||
|
"-W 2560"
|
||||||
|
"-H 1440"
|
||||||
|
"-r 144"
|
||||||
|
"--hdr-enabled"
|
||||||
|
"--hdr-itm-enable"
|
||||||
|
"--adaptive-sync"
|
||||||
|
];
|
||||||
|
|
||||||
programs.gamescope.enable = true;
|
programs.gamescope.enable = true;
|
||||||
programs.gamescope.capSysNice = false;
|
programs.gamescope.capSysNice = false;
|
||||||
|
|
||||||
|
16
profiles/applications/games/sunshine.nix
Normal file
16
profiles/applications/games/sunshine.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ ... }: {
|
||||||
|
services.sunshine = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
capSysAdmin = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# boot.kernelModules = [ "uinput" ];
|
||||||
|
|
||||||
|
# services.udev.extraRules = ''
|
||||||
|
# KERNEL=="uinput", GROUP="input", MODE="0660" OPTIONS+="static_node=uinput"
|
||||||
|
# '';
|
||||||
|
|
||||||
|
persist.state.homeDirectories = [ ".config/sunshine" ];
|
||||||
|
}
|
@ -6,7 +6,7 @@
|
|||||||
pkgs.osu-lazer-bin
|
pkgs.osu-lazer-bin
|
||||||
pkgs.protonup-qt
|
pkgs.protonup-qt
|
||||||
pkgs.realrtcw
|
pkgs.realrtcw
|
||||||
pkgs.umu-launcher
|
# pkgs.umu-launcher
|
||||||
pkgs.wine
|
pkgs.wine
|
||||||
];
|
];
|
||||||
persist.state.homeDirectories = [
|
persist.state.homeDirectories = [
|
||||||
|
@ -47,6 +47,7 @@ with config.deviceSpecific; {
|
|||||||
yt-dlp
|
yt-dlp
|
||||||
# ---- gui ----
|
# ---- gui ----
|
||||||
bitwarden
|
bitwarden
|
||||||
|
foliate
|
||||||
jellyfin-mpv-shim
|
jellyfin-mpv-shim
|
||||||
jellyfin-media-player
|
jellyfin-media-player
|
||||||
obs-studio
|
obs-studio
|
||||||
@ -62,11 +63,11 @@ with config.deviceSpecific; {
|
|||||||
webcord-vencord
|
webcord-vencord
|
||||||
youtube-to-mpv
|
youtube-to-mpv
|
||||||
] ++ lib.optionals isGaming [
|
] ++ lib.optionals isGaming [
|
||||||
ceserver
|
# ceserver
|
||||||
gamescope
|
gamescope
|
||||||
protonhax
|
protonhax
|
||||||
protontricks
|
# protontricks
|
||||||
vkBasalt
|
# vkBasalt
|
||||||
# wine
|
# wine
|
||||||
# winetricks
|
# winetricks
|
||||||
];
|
];
|
||||||
@ -89,6 +90,7 @@ with config.deviceSpecific; {
|
|||||||
".config/Sonixd"
|
".config/Sonixd"
|
||||||
".config/WebCord"
|
".config/WebCord"
|
||||||
".config/xarchiver"
|
".config/xarchiver"
|
||||||
|
".local/share/com.github.johnfactotum.Foliate"
|
||||||
".local/share/jellyfinmediaplayer"
|
".local/share/jellyfinmediaplayer"
|
||||||
".local/share/tor-browser"
|
".local/share/tor-browser"
|
||||||
".android"
|
".android"
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
{ config, pkgs, ... }: {
|
|
||||||
boot.kernelModules = [ "uinput" ];
|
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
|
||||||
KERNEL=="uinput", GROUP="input", MODE="0660" OPTIONS+="static_node=uinput"
|
|
||||||
'';
|
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.sunshine ];
|
|
||||||
|
|
||||||
security.wrappers.sunshine = {
|
|
||||||
owner = "root";
|
|
||||||
group = "root";
|
|
||||||
capabilities = "cap_sys_admin+p";
|
|
||||||
source = "${pkgs.sunshine}/bin/sunshine";
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.sunshine = {
|
|
||||||
description = "sunshine";
|
|
||||||
wantedBy = [ "graphical-session.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${config.security.wrapperDir}/sunshine";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall = {
|
|
||||||
allowedTCPPorts = [ 47984 47989 47990 48010 ];
|
|
||||||
allowedUDPPorts = [ 47998 47999 48000 48002 48010 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
persist.state.homeDirectories = [ ".config/sunshine" ];
|
|
||||||
}
|
|
@ -5,7 +5,7 @@ let
|
|||||||
ApiLevel = 30
|
ApiLevel = 30
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
config = lib.mkIf config.deviceSpecific.isGaming {
|
config = {
|
||||||
environment.etc."gbinder.d/waydroid.conf".source = lib.mkForce waydroidGbinderConf;
|
environment.etc."gbinder.d/waydroid.conf".source = lib.mkForce waydroidGbinderConf;
|
||||||
virtualisation.waydroid.enable = true;
|
virtualisation.waydroid.enable = true;
|
||||||
home-manager.users.${config.mainuser}.home.packages = [ pkgs.waydroid-script ];
|
home-manager.users.${config.mainuser}.home.packages = [ pkgs.waydroid-script ];
|
||||||
|
@ -20,10 +20,12 @@ with lib; {
|
|||||||
attic-client = inputs.attic.packages.${system}.attic;
|
attic-client = inputs.attic.packages.${system}.attic;
|
||||||
attic-server = inputs.attic.packages.${system}.attic-server;
|
attic-server = inputs.attic.packages.${system}.attic-server;
|
||||||
cassowary-py = inputs.cassowary.packages.${system}.cassowary;
|
cassowary-py = inputs.cassowary.packages.${system}.cassowary;
|
||||||
heroic = (prev.heroic.override { extraPkgs = pkgs: [ final.umu-launcher ]; });
|
# heroic = (prev.heroic.override { extraPkgs = pkgs: [ final.umu-launcher ]; });
|
||||||
nix-alien = inputs.nix-alien.packages.${system}.nix-alien;
|
nix-alien = inputs.nix-alien.packages.${system}.nix-alien;
|
||||||
nix-fast-build = inputs.nix-fast-build.packages.${system}.default;
|
nix-fast-build = inputs.nix-fast-build.packages.${system}.default;
|
||||||
nix-index-update = inputs.nix-alien.packages.${system}.nix-index-update;
|
nix-index-update = inputs.nix-alien.packages.${system}.nix-index-update;
|
||||||
|
osu-lazer = master.osu-lazer;
|
||||||
|
osu-lazer-bin = master.osu-lazer-bin;
|
||||||
prismlauncher = inputs.prismlauncher.packages.${system}.prismlauncher.override {
|
prismlauncher = inputs.prismlauncher.packages.${system}.prismlauncher.override {
|
||||||
jdks = [ pkgs.temurin-bin ];
|
jdks = [ pkgs.temurin-bin ];
|
||||||
};
|
};
|
||||||
@ -35,7 +37,7 @@ with lib; {
|
|||||||
steam = prev.steam.override {
|
steam = prev.steam.override {
|
||||||
extraPkgs = pkgs: with pkgs; [ mono libkrb5 keyutils ];
|
extraPkgs = pkgs: with pkgs; [ mono libkrb5 keyutils ];
|
||||||
};
|
};
|
||||||
umu-launcher = inputs.umu.packages.${system}.umu;
|
# umu-launcher = inputs.umu.packages.${system}.umu;
|
||||||
wine = prev.wineWow64Packages.stagingFull;
|
wine = prev.wineWow64Packages.stagingFull;
|
||||||
intel-vaapi-driver = prev.intel-vaapi-driver.override { enableHybridCodec = true; };
|
intel-vaapi-driver = prev.intel-vaapi-driver.override { enableHybridCodec = true; };
|
||||||
|
|
||||||
@ -48,6 +50,15 @@ with lib; {
|
|||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hyprland = prev.hyprland.overrideAttrs (oa: {
|
||||||
|
patches = (oa.patches or []) ++ [
|
||||||
|
../patches/hyprland-tablet.patch
|
||||||
|
];
|
||||||
|
});
|
||||||
|
maa-assistant-arknights = prev.maa-assistant-arknights.overrideAttrs (_: {
|
||||||
|
env.NIX_CFLAGS_COMPILE = "-Wno-error=maybe-uninitialized";
|
||||||
|
});
|
||||||
|
|
||||||
neatvnc = prev.neatvnc.overrideAttrs (oa: {
|
neatvnc = prev.neatvnc.overrideAttrs (oa: {
|
||||||
patches = [ ../patches/neatvnc.patch ] ++ oa.patches or [ ];
|
patches = [ ../patches/neatvnc.patch ] ++ oa.patches or [ ];
|
||||||
});
|
});
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, lib, ... }: {
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
hardware.pulseaudio.enable = lib.mkForce false;
|
services.pulseaudio.enable = false;
|
||||||
services.jack.jackd.enable = lib.mkForce false;
|
services.jack.jackd.enable = lib.mkForce false;
|
||||||
|
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
|
@ -77,16 +77,5 @@ with config.deviceSpecific; {
|
|||||||
"/var/lib/libvirt"
|
"/var/lib/libvirt"
|
||||||
"/var/lib/containers"
|
"/var/lib/containers"
|
||||||
];
|
];
|
||||||
|
|
||||||
# cross compilation of aarch64 uefi currently broken
|
|
||||||
# link existing extracted from fedora package
|
|
||||||
system.activationScripts.aarch64-ovmf = lib.mkIf (!isServer) {
|
|
||||||
text = ''
|
|
||||||
rm -f /run/libvirt/nix-ovmf/AAVMF_*
|
|
||||||
mkdir -p /run/libvirt/nix-ovmf || true
|
|
||||||
${pkgs.zstd}/bin/zstd -d ${../misc/AAVMF_CODE.fd.zst} -o /run/libvirt/nix-ovmf/AAVMF_CODE.fd
|
|
||||||
${pkgs.zstd}/bin/zstd -d ${../misc/AAVMF_VARS.fd.zst} -o /run/libvirt/nix-ovmf/AAVMF_VARS.fd
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{ cfg }: { config, pkgs, lib, inputs, ... }: {
|
{ cfg }: { config, pkgs, lib, inputs, ... }: {
|
||||||
catppuccin.accent = cfg.accent;
|
catppuccin.accent = cfg.accent;
|
||||||
catppuccin.flavor = cfg.flavor;
|
catppuccin.flavor = cfg.flavor;
|
||||||
boot.loader.grub.catppuccin.enable = true;
|
catppuccin.grub.enable = true;
|
||||||
console.catppuccin.enable = true;
|
catppuccin.tty.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.libsForQt5.qtstyleplugin-kvantum
|
pkgs.libsForQt5.qtstyleplugin-kvantum
|
||||||
@ -13,25 +13,23 @@
|
|||||||
catppuccin.accent = cfg.accent;
|
catppuccin.accent = cfg.accent;
|
||||||
catppuccin.flavor = cfg.flavor;
|
catppuccin.flavor = cfg.flavor;
|
||||||
|
|
||||||
qt.style.catppuccin.enable = true;
|
catppuccin.bat.enable = true;
|
||||||
qt.style.catppuccin.apply = true;
|
catppuccin.bottom.enable = true;
|
||||||
services.mako.catppuccin.enable = true;
|
catppuccin.fzf.enable = true;
|
||||||
programs = {
|
catppuccin.gitui.enable = true;
|
||||||
bat.catppuccin.enable = true;
|
catppuccin.glamour.enable = true;
|
||||||
bottom.catppuccin.enable = true;
|
catppuccin.kitty.enable = true;
|
||||||
fzf.catppuccin.enable = true;
|
catppuccin.kvantum.apply = true;
|
||||||
gitui.catppuccin.enable = true;
|
catppuccin.kvantum.enable = true;
|
||||||
glamour.catppuccin.enable = true;
|
catppuccin.mako.enable = true;
|
||||||
kitty.catppuccin.enable = true;
|
catppuccin.micro.enable = true;
|
||||||
micro.catppuccin.enable = true;
|
catppuccin.mpv.enable = true;
|
||||||
mpv.catppuccin.enable = true;
|
catppuccin.rofi.enable = true;
|
||||||
rofi.catppuccin.enable = true;
|
catppuccin.waybar.enable = true;
|
||||||
zathura.catppuccin.enable = true;
|
catppuccin.waybar.mode = "createLink";
|
||||||
zsh.syntaxHighlighting.enable = true;
|
catppuccin.zathura.enable = true;
|
||||||
zsh.syntaxHighlighting.catppuccin.enable = true;
|
catppuccin.zsh-syntax-highlighting.enable = true;
|
||||||
waybar.catppuccin.enable = true;
|
programs.zsh.syntaxHighlighting.enable = true;
|
||||||
waybar.catppuccin.mode = "createLink";
|
|
||||||
};
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland.extraConfig = ''
|
wayland.windowManager.hyprland.extraConfig = ''
|
||||||
exec=hyprctl setcursor catppuccin-${cfg.flavor}-${cfg.accent}-cursors ${toString cfg.thm.cursorSize}
|
exec=hyprctl setcursor catppuccin-${cfg.flavor}-${cfg.accent}-cursors ${toString cfg.thm.cursorSize}
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
let
|
let
|
||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
in {
|
in {
|
||||||
environment.sessionVariables = {
|
# environment.sessionVariables = {
|
||||||
XCURSOR_PATH = lib.mkForce "/home/${config.mainuser}/.icons";
|
# XCURSOR_PATH = lib.mkForce "/home/${config.mainuser}/.icons";
|
||||||
};
|
# };
|
||||||
|
|
||||||
home-manager.users.${config.mainuser} = {
|
home-manager.users.${config.mainuser} = {
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
|
@ -3,11 +3,12 @@ with config.lib.base16.theme; {
|
|||||||
services.dbus.packages =
|
services.dbus.packages =
|
||||||
[ pkgs.systemd iconPackage ];
|
[ pkgs.systemd iconPackage ];
|
||||||
services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ];
|
services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ];
|
||||||
|
environment.variables.QT_QPA_PLATFORMTHEME = lib.mkForce "kvantum";
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = false;
|
enable = false;
|
||||||
style = "kvantum";
|
style = lib.mkForce "kvantum";
|
||||||
platformTheme = "qt5ct";
|
platformTheme = lib.mkForce "qt5ct";
|
||||||
};
|
};
|
||||||
|
|
||||||
# environment.systemPackages = with pkgs; [
|
# environment.systemPackages = with pkgs; [
|
||||||
|
@ -2,8 +2,9 @@
|
|||||||
with config.deviceSpecific; {
|
with config.deviceSpecific; {
|
||||||
|
|
||||||
environment.sessionVariables =
|
environment.sessionVariables =
|
||||||
builtins.mapAttrs (_: toString)
|
builtins.mapAttrs (_n: v: lib.mkForce (toString v))
|
||||||
config.home-manager.users.${config.mainuser}.home.sessionVariables // rec {
|
config.home-manager.users.${config.mainuser}.home.sessionVariables //
|
||||||
|
rec {
|
||||||
LESS = "MR";
|
LESS = "MR";
|
||||||
LESSHISTFILE = "~/.local/share/lesshist";
|
LESSHISTFILE = "~/.local/share/lesshist";
|
||||||
SYSTEMD_LESS = LESS;
|
SYSTEMD_LESS = LESS;
|
||||||
|
@ -50,8 +50,9 @@ in {
|
|||||||
in concatStrings [
|
in concatStrings [
|
||||||
''
|
''
|
||||||
${if config.device == "AMD-Workstation" then ''
|
${if config.device == "AMD-Workstation" then ''
|
||||||
monitor=DP-3,2560x1440@59951,0x0,1
|
monitor=DP-3,2560x1440@164.998993,0x0,1
|
||||||
monitor=HDMI-A-1,disable
|
monitor=HDMI-A-1,1920x1080@60,-1920x360,1
|
||||||
|
monitor=,highres,auto,1
|
||||||
'' else ''
|
'' else ''
|
||||||
monitor=,highres,auto,1
|
monitor=,highres,auto,1
|
||||||
''}
|
''}
|
||||||
@ -102,11 +103,18 @@ in {
|
|||||||
''}
|
''}
|
||||||
${lib.optionalString isLaptop "scroll_method=2fg"}
|
${lib.optionalString isLaptop "scroll_method=2fg"}
|
||||||
|
|
||||||
|
${lib.optionalString isLaptop ''
|
||||||
touchpad {
|
touchpad {
|
||||||
natural_scroll=true
|
natural_scroll=true
|
||||||
clickfinger_behavior=true
|
clickfinger_behavior=true
|
||||||
middle_button_emulation=true
|
middle_button_emulation=true
|
||||||
tap-to-click=true
|
tap-to-click=true
|
||||||
|
}
|
||||||
|
''}
|
||||||
|
tablet {
|
||||||
|
output=current
|
||||||
|
active_area_size=39 22
|
||||||
|
active_area_position=50 60
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gestures {
|
gestures {
|
||||||
@ -117,7 +125,12 @@ in {
|
|||||||
disable_splash_rendering=true
|
disable_splash_rendering=true
|
||||||
mouse_move_enables_dpms=true
|
mouse_move_enables_dpms=true
|
||||||
vfr=true
|
vfr=true
|
||||||
vrr=1
|
vrr=2
|
||||||
|
}
|
||||||
|
experimental {
|
||||||
|
# wide_color_gamut=true
|
||||||
|
# hdr=true
|
||||||
|
xx_color_management_v4=true
|
||||||
}
|
}
|
||||||
'' ''
|
'' ''
|
||||||
bindm=${modifier},mouse:272,movewindow
|
bindm=${modifier},mouse:272,movewindow
|
||||||
|
Loading…
x
Reference in New Issue
Block a user