small update
This commit is contained in:
parent
c4f6785845
commit
b1490ec9a8
100 changed files with 187 additions and 1695 deletions
676
flake.lock
generated
676
flake.lock
generated
|
@ -1,60 +1,12 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"aquamarine": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprutils": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprutils"
|
|
||||||
],
|
|
||||||
"hyprwayland-scanner": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprwayland-scanner"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1751740947,
|
|
||||||
"narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "aquamarine",
|
|
||||||
"rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "aquamarine",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"crane": {
|
"crane": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750266157,
|
"lastModified": 1751562746,
|
||||||
"narHash": "sha256-tL42YoNg9y30u7zAqtoGDNdTyXTi8EALDeCB13FtbQA=",
|
"narHash": "sha256-smpugNIkmDeicNz301Ll1bD7nFOty97T79m4GUMUczA=",
|
||||||
"owner": "ipetkov",
|
"owner": "ipetkov",
|
||||||
"repo": "crane",
|
"repo": "crane",
|
||||||
"rev": "e37c943371b73ed87faf33f7583860f81f1d5a48",
|
"rev": "aed2020fd3dc26e1e857d4107a5a67a33ab6c1fd",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"crane_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1736032295,
|
|
||||||
"narHash": "sha256-QNRlMxQTT3rdgsQb3QxljO14kE8xxdDXNJ/4jIm4u3Q=",
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"rev": "9fa361afe873c740d5ca10ff526463d5807eab88",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -144,22 +96,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1696426674,
|
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_3": {
|
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1747046372,
|
||||||
|
@ -175,22 +111,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_4": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733328505,
|
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
|
@ -220,50 +140,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749398372,
|
"lastModified": 1751413152,
|
||||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_3": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"schizofox",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733312601,
|
|
||||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_4": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1735774679,
|
|
||||||
"narHash": "sha256-soePLBazJk0qQdDVhdbM98vYdssfs3WFedcq+raipRI=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "f2f7418ce0ab4a5309a4596161d154cfc877af66",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -299,28 +180,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"pre-commit-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore_2": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"lanzaboote",
|
"lanzaboote",
|
||||||
|
@ -342,317 +201,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hercules-ci-effects": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": [
|
|
||||||
"schizofox",
|
|
||||||
"nixpak",
|
|
||||||
"flake-parts"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"schizofox",
|
|
||||||
"nixpak",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733333617,
|
|
||||||
"narHash": "sha256-nMMQXREGvLOLvUa0ByhYFdaL0Jov0t1wzLbKjr05P2w=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "hercules-ci-effects",
|
|
||||||
"rev": "56f8ea8d502c87cf62444bec4ee04512e8ea24ea",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "hercules-ci-effects",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"schizofox",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1734344598,
|
|
||||||
"narHash": "sha256-wNX3hsScqDdqKWOO87wETUEi7a/QlPVgpC/Lh5rFOuA=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "83ecd50915a09dca928971139d3a102377a8d242",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprcursor": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprlang": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprlang"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1749155331,
|
|
||||||
"narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprcursor",
|
|
||||||
"rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprcursor",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprgraphics": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprutils": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprutils"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1751808145,
|
|
||||||
"narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprgraphics",
|
|
||||||
"rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprgraphics",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprland": {
|
|
||||||
"inputs": {
|
|
||||||
"aquamarine": "aquamarine",
|
|
||||||
"hyprcursor": "hyprcursor",
|
|
||||||
"hyprgraphics": "hyprgraphics",
|
|
||||||
"hyprland-protocols": "hyprland-protocols",
|
|
||||||
"hyprland-qtutils": "hyprland-qtutils",
|
|
||||||
"hyprlang": "hyprlang",
|
|
||||||
"hyprutils": "hyprutils",
|
|
||||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
|
||||||
"systems": [
|
|
||||||
"systems"
|
|
||||||
],
|
|
||||||
"xdph": "xdph"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1752337367,
|
|
||||||
"narHash": "sha256-kEumflYEdQSrZZQEr7kik2sBfFohEx0TsJB1rBVAQy4=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland",
|
|
||||||
"rev": "d0f58baf296a2cdd5df0f82212fe17dfbef8438e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprland-protocols": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1749046714,
|
|
||||||
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-protocols",
|
|
||||||
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-protocols",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprland-qt-support": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprlang": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprland-qtutils",
|
|
||||||
"hyprlang"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprland-qtutils",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprland-qtutils",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1749154592,
|
|
||||||
"narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-qt-support",
|
|
||||||
"rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-qt-support",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprland-qtutils": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprland-qt-support": "hyprland-qt-support",
|
|
||||||
"hyprlang": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprlang"
|
|
||||||
],
|
|
||||||
"hyprutils": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprland-qtutils",
|
|
||||||
"hyprlang",
|
|
||||||
"hyprutils"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1750371812,
|
|
||||||
"narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-qtutils",
|
|
||||||
"rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-qtutils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprlang": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprutils": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprutils"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1750371198,
|
|
||||||
"narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprlang",
|
|
||||||
"rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprlang",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprutils": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1751888065,
|
|
||||||
"narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprutils",
|
|
||||||
"rev": "a8229739cf36d159001cfc203871917b83fdf917",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprutils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprwayland-scanner": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1751881472,
|
|
||||||
"narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprwayland-scanner",
|
|
||||||
"rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprwayland-scanner",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"impermanence": {
|
"impermanence": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737831083,
|
"lastModified": 1737831083,
|
||||||
|
@ -671,7 +219,7 @@
|
||||||
"lanzaboote": {
|
"lanzaboote": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
@ -680,11 +228,11 @@
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751381593,
|
"lastModified": 1752673703,
|
||||||
"narHash": "sha256-js1XwtJpYhvQrrTaVzViybpztkHJVZ63aXOlFAcTENM=",
|
"narHash": "sha256-9Cc0YqL9ZUpaybJsrRJfXex91QlPmQNqpTLgw/KvJGA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "lanzaboote",
|
"repo": "lanzaboote",
|
||||||
"rev": "f4eb75540307c2b33521322c04b7fea74e48a66f",
|
"rev": "5a776450d904b7ccd377c2a759703152b2553e98",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -714,32 +262,6 @@
|
||||||
"url": "https://flakehub.com/f/DeterminateSystems/nix-src/%2A"
|
"url": "https://flakehub.com/f/DeterminateSystems/nix-src/%2A"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpak": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": [
|
|
||||||
"schizofox",
|
|
||||||
"flake-parts"
|
|
||||||
],
|
|
||||||
"hercules-ci-effects": "hercules-ci-effects",
|
|
||||||
"nixpkgs": [
|
|
||||||
"schizofox",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733970147,
|
|
||||||
"narHash": "sha256-63SguTBGenmU4jx7j44PVXlZMsWsALjaNPpRg9xlljs=",
|
|
||||||
"owner": "nixpak",
|
|
||||||
"repo": "nixpak",
|
|
||||||
"rev": "fbbb572e595decf5e749d7fbeb27e1ff09484ff8",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixpak",
|
|
||||||
"repo": "nixpak",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747179050,
|
"lastModified": 1747179050,
|
||||||
|
@ -770,18 +292,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1735774519,
|
|
||||||
"narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-regression": {
|
"nixpkgs-regression": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1643052045,
|
"lastModified": 1643052045,
|
||||||
|
@ -801,62 +311,23 @@
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 315532800,
|
"lastModified": 315532800,
|
||||||
"narHash": "sha256-gO//ypKNSAP1FU5clctmVnB9n7ad+d2SDrgRBSK9wg8=",
|
"narHash": "sha256-X5WIcIkFxPhw7mS219TbEOgrugbMx/2cin09OlWobT8=",
|
||||||
"rev": "2a2130494ad647f953593c4e84ea4df839fbd68c",
|
"rev": "dab3a6e781554f965bde3def0aa2fda4eb8f1708",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre827015.2a2130494ad6/nixexprs.tar.xz"
|
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre830668.dab3a6e78155/nixexprs.tar.xz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
|
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1736429638,
|
|
||||||
"narHash": "sha256-dDWqQqSgMQXw5eFtcyoVijv7HbYJZOIo+jWQdJtsxn4=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "f81eabd5dd7c9213516fa2d3fc1d108a751340d4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable-small",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pre-commit-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_2",
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1750779888,
|
|
||||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pre-commit-hooks-nix": {
|
"pre-commit-hooks-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": [
|
"flake-compat": [
|
||||||
"lanzaboote",
|
"lanzaboote",
|
||||||
"flake-compat"
|
"flake-compat"
|
||||||
],
|
],
|
||||||
"gitignore": "gitignore_2",
|
"gitignore": "gitignore",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"lanzaboote",
|
"lanzaboote",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
@ -879,13 +350,11 @@
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"determinate": "determinate",
|
"determinate": "determinate",
|
||||||
"hyprland": "hyprland",
|
|
||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"rust-overlay": "rust-overlay_2",
|
"rust-overlay": "rust-overlay_2",
|
||||||
"schizofox": "schizofox",
|
"systems": "systems",
|
||||||
"systems": "systems_2",
|
|
||||||
"watt": "watt"
|
"watt": "watt"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -897,11 +366,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751165203,
|
"lastModified": 1751769931,
|
||||||
"narHash": "sha256-3QhlpAk2yn+ExwvRLtaixWsVW1q3OX3KXXe0l8VMLl4=",
|
"narHash": "sha256-QR2Rp/41NkA5YxcpvZEKD1S2QE1Pb9U415aK8M/4tJc=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "90f547b90e73d3c6025e66c5b742d6db51c418c3",
|
"rev": "3ac4f630e375177ea8317e22f5c804156de177e8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -917,11 +386,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752288212,
|
"lastModified": 1752633862,
|
||||||
"narHash": "sha256-f2PMqtf61mWAM11QoIfGv3hjD2AsJrij4FCzftepuaE=",
|
"narHash": "sha256-Bj7ozT1+5P7NmvDcuAXJvj56txcXuAhk3Vd9FdWFQzk=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "678296525a4cce249c608749b171d0b2ceb8b2ff",
|
"rev": "8668ca94858206ac3db0860a9dec471de0d995f8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -930,53 +399,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"schizofox": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_4",
|
|
||||||
"flake-parts": "flake-parts_3",
|
|
||||||
"home-manager": "home-manager",
|
|
||||||
"nixpak": "nixpak",
|
|
||||||
"nixpkgs": "nixpkgs_3",
|
|
||||||
"searx-randomizer": "searx-randomizer",
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1744892989,
|
|
||||||
"narHash": "sha256-SwJiKlZSYSQhXQR4xxaItURuD+NTRbUxtoLNQFzgvUI=",
|
|
||||||
"owner": "schizofox",
|
|
||||||
"repo": "schizofox",
|
|
||||||
"rev": "e2702bd7a09fc9d6089901adb4e7ae4a9aeef5ef",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "schizofox",
|
|
||||||
"repo": "schizofox",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"searx-randomizer": {
|
|
||||||
"inputs": {
|
|
||||||
"crane": "crane_2",
|
|
||||||
"flake-parts": "flake-parts_4",
|
|
||||||
"nixpkgs": [
|
|
||||||
"schizofox",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1736054833,
|
|
||||||
"narHash": "sha256-fSvHee00LQpndvJ0N4ZahRuoAQd06g8ecdUzfNPLvLk=",
|
|
||||||
"owner": "schizofox",
|
|
||||||
"repo": "searx-randomizer",
|
|
||||||
"rev": "63d6fed21ae5a6608bac71665887a432781161c6",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "schizofox",
|
|
||||||
"repo": "searx-randomizer",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689347949,
|
"lastModified": 1689347949,
|
||||||
|
@ -992,21 +414,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689347949,
|
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"watt": {
|
"watt": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -1026,47 +433,6 @@
|
||||||
"repo": "watt",
|
"repo": "watt",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"xdph": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprland-protocols": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprland-protocols"
|
|
||||||
],
|
|
||||||
"hyprlang": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprlang"
|
|
||||||
],
|
|
||||||
"hyprutils": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprutils"
|
|
||||||
],
|
|
||||||
"hyprwayland-scanner": [
|
|
||||||
"hyprland",
|
|
||||||
"hyprwayland-scanner"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1751300244,
|
|
||||||
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
|
||||||
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
|
@ -48,8 +48,6 @@
|
||||||
|
|
||||||
impermanence.url = "github:nix-community/impermanence";
|
impermanence.url = "github:nix-community/impermanence";
|
||||||
|
|
||||||
schizofox.url = "github:schizofox/schizofox";
|
|
||||||
|
|
||||||
watt = {
|
watt = {
|
||||||
url = "github:notashelf/watt";
|
url = "github:notashelf/watt";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -61,12 +59,6 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland = {
|
|
||||||
url = "github:hyprwm/hyprland";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.systems.follows = "systems";
|
|
||||||
};
|
|
||||||
|
|
||||||
# The things rust is making me do...
|
# The things rust is making me do...
|
||||||
rust-overlay = {
|
rust-overlay = {
|
||||||
url = "github:oxalica/rust-overlay";
|
url = "github:oxalica/rust-overlay";
|
||||||
|
|
|
@ -42,6 +42,10 @@ inputs: let
|
||||||
map toString (listFilesRecursive ../modules)
|
map toString (listFilesRecursive ../modules)
|
||||||
|> filter (hasSuffix "module.nix")
|
|> filter (hasSuffix "module.nix")
|
||||||
)
|
)
|
||||||
|
(
|
||||||
|
map toString (listFilesRecursive ../modules)
|
||||||
|
|> filter (hasSuffix ".mod.nix")
|
||||||
|
)
|
||||||
]
|
]
|
||||||
|> flatten
|
|> flatten
|
||||||
)
|
)
|
||||||
|
|
|
@ -20,8 +20,10 @@
|
||||||
system76-scheduler = {
|
system76-scheduler = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
gnome.gnome-keyring.enable = true;
|
||||||
};
|
};
|
||||||
|
security.pam.services.login.enableGnomeKeyring = true;
|
||||||
|
environment.systemPackages = [pkgs.seahorse];
|
||||||
meta = {
|
meta = {
|
||||||
mainUser.gitSigningKey = "";
|
mainUser.gitSigningKey = "";
|
||||||
};
|
};
|
||||||
|
@ -49,7 +51,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
desktops.niri.enable = true;
|
desktops.niri.enable = true;
|
||||||
desktops.hyprland.enable = true;
|
|
||||||
|
|
||||||
theming = {
|
theming = {
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
anki
|
anki
|
||||||
asciinema
|
asciinema
|
||||||
beets
|
beets
|
||||||
|
bitwarden-cli
|
||||||
|
bitwarden-desktop
|
||||||
bubblewrap
|
bubblewrap
|
||||||
cachix
|
cachix
|
||||||
calc
|
calc
|
||||||
|
@ -61,10 +63,10 @@
|
||||||
signal-desktop
|
signal-desktop
|
||||||
spotify
|
spotify
|
||||||
starship
|
starship
|
||||||
strawberry
|
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
texliveFull
|
texliveFull
|
||||||
thunderbird
|
thunderbird
|
||||||
|
topiary
|
||||||
tor-browser
|
tor-browser
|
||||||
trash-cli
|
trash-cli
|
||||||
tutanota-desktop
|
tutanota-desktop
|
||||||
|
@ -80,6 +82,13 @@
|
||||||
zathura
|
zathura
|
||||||
zotero
|
zotero
|
||||||
zoxide
|
zoxide
|
||||||
|
# coreutils-full # All of the GNU coreutils
|
||||||
|
curl # I sometimes need to curl stuff
|
||||||
|
git # take a guess
|
||||||
|
wget
|
||||||
|
unzip # zipping and unzipping stuff
|
||||||
|
zip
|
||||||
|
util-linux
|
||||||
;
|
;
|
||||||
inherit
|
inherit
|
||||||
(pkgs.wineWowPackages)
|
(pkgs.wineWowPackages)
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
{lib, ...}: let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
options.modules.system.networking = {
|
|
||||||
nftbles.enable = mkEnableOption "Nftables firewall";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -5,35 +5,11 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (builtins) elemAt;
|
inherit (builtins) elemAt;
|
||||||
inherit (lib.options) mkOption mkEnableOption;
|
inherit (lib.options) mkOption mkEnableOption;
|
||||||
inherit (lib.types) enum listOf str nullOr bool oneOf;
|
inherit (lib.types) enum listOf str nullOr bool;
|
||||||
inherit (lib.lists) elem;
|
inherit (lib.lists) elem;
|
||||||
|
|
||||||
inherit (config.modules.system) systemType;
|
inherit (config.modules.system) systemType;
|
||||||
in {
|
in {
|
||||||
imports = [
|
|
||||||
# configuration options for nixos activation scripts
|
|
||||||
# ./activation.nix
|
|
||||||
|
|
||||||
# boot/impermanence mounts
|
|
||||||
# ./boot.nix
|
|
||||||
# ./impermanence.nix
|
|
||||||
|
|
||||||
# network and overall hardening
|
|
||||||
./networking
|
|
||||||
# ./security.nix
|
|
||||||
# ./encryption.nix
|
|
||||||
|
|
||||||
# filesystems
|
|
||||||
# ./fs.nix
|
|
||||||
|
|
||||||
# package and program related options
|
|
||||||
# ./services
|
|
||||||
./programs
|
|
||||||
|
|
||||||
# monitor configuration
|
|
||||||
./monitors.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
options.modules.system = {
|
options.modules.system = {
|
||||||
mainUser = mkOption {
|
mainUser = mkOption {
|
||||||
type = enum config.modules.system.users;
|
type = enum config.modules.system.users;
|
|
@ -1,8 +0,0 @@
|
||||||
_: {
|
|
||||||
imports = [
|
|
||||||
./system.nix
|
|
||||||
./xdg.nix
|
|
||||||
./git.nix
|
|
||||||
./users.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
imports = [
|
|
||||||
./hardware.nix
|
|
||||||
./wayland.nix
|
|
||||||
# ./media.nix
|
|
||||||
];
|
|
||||||
# These are some standard packages I want to have installed on every system, regardless of type or use case.
|
|
||||||
environment.systemPackages = builtins.attrValues {
|
|
||||||
inherit
|
|
||||||
(pkgs)
|
|
||||||
calc # Calculator device
|
|
||||||
# coreutils-full # All of the GNU coreutils
|
|
||||||
curl # I sometimes need to curl stuff
|
|
||||||
git # take a guess
|
|
||||||
inetutils # internet stuff I need/want on every system.
|
|
||||||
wget
|
|
||||||
unzip # zipping and unzipping stuff
|
|
||||||
zip
|
|
||||||
util-linux
|
|
||||||
;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# These are packages I only need in wayland environments, nowhere else.
|
|
||||||
environment.systemPackages = builtins.attrValues {
|
|
||||||
inherit
|
|
||||||
(pkgs)
|
|
||||||
wl-clipboard
|
|
||||||
grimblast
|
|
||||||
;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
_: {
|
|
||||||
imports = [
|
|
||||||
./nh.nix
|
|
||||||
# ./beets.nix
|
|
||||||
];
|
|
||||||
}
|
|
7
modules/programs/cli/zodide.mod.nix
Normal file
7
modules/programs/cli/zodide.mod.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
_: {
|
||||||
|
programs.zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -201,7 +201,9 @@ in {
|
||||||
# NoScript
|
# NoScript
|
||||||
"doojmbjmlfjjnbmnoijecmcbfeoakpjm"
|
"doojmbjmlfjjnbmnoijecmcbfeoakpjm"
|
||||||
# KeePassXC-Browser
|
# KeePassXC-Browser
|
||||||
"oboonakemofpalcgghocfoadofidjkkk"
|
# "oboonakemofpalcgghocfoadofidjkkk"
|
||||||
|
# Bitwarden Password Manager
|
||||||
|
"nngceckbapebfimnlniiiahkandclblb"
|
||||||
# Catppuccin Mocha
|
# Catppuccin Mocha
|
||||||
"bkkmolkhemgaeaeggcmfbghljjjoofoh"
|
"bkkmolkhemgaeaeggcmfbghljjjoofoh"
|
||||||
# Dark Reader
|
# Dark Reader
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment.systemPackages = builtins.attrValues {
|
|
||||||
inherit (pkgs) fuzzel;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -20,55 +20,44 @@
|
||||||
else "none";
|
else "none";
|
||||||
|
|
||||||
ghostty-settings = {
|
ghostty-settings = {
|
||||||
font-family = "JetBrainsMonoNerdFont";
|
|
||||||
font-family-bold = "JetBrainsMonoNerdFontBold";
|
|
||||||
font-family-italic = "JetBrainsMonoNerdFontItalic";
|
|
||||||
font-family-bold-italic = "JetBrainsMonoNerdFontBoldItalic";
|
|
||||||
font-size = 14;
|
font-size = 14;
|
||||||
|
font-family = "JetBrainsMonoNerdFont";
|
||||||
|
# font-style-bold = JetBrainsMono NF Regular;
|
||||||
|
# font-style-bold-italic = JetBrainsMono NF Italic;
|
||||||
|
|
||||||
window-padding-x = 8;
|
app-notifications = "no-clipboard-copy";
|
||||||
window-padding-y = 8;
|
background-opacity = 0.75;
|
||||||
background-opacity = 0.85;
|
bold-is-bright = "true";
|
||||||
|
confirm-close-surface = "false";
|
||||||
|
cursor-style-blink = "false";
|
||||||
gtk-single-instance = "true";
|
gtk-single-instance = "true";
|
||||||
gtk-tabs-location = "bottom";
|
gtk-tabs-location = "bottom";
|
||||||
gtk-wide-tabs = false;
|
gtk-wide-tabs = false;
|
||||||
window-padding-balance = true;
|
|
||||||
window-decoration = "none";
|
|
||||||
theme = slug;
|
|
||||||
resize-overlay-duration = "0s";
|
|
||||||
cursor-style-blink = "false";
|
|
||||||
confirm-close-surface = "false";
|
|
||||||
mouse-hide-while-typing = "true";
|
mouse-hide-while-typing = "true";
|
||||||
|
resize-overlay-duration = "0s";
|
||||||
window-theme = "ghostty";
|
|
||||||
bold-is-bright = "true";
|
|
||||||
term = "xterm-256color";
|
|
||||||
|
|
||||||
app-notifications = "no-clipboard-copy";
|
|
||||||
shell-integration-features = "cursor,sudo,no-title";
|
shell-integration-features = "cursor,sudo,no-title";
|
||||||
# window-padding-y = 10;
|
term = "xterm-256color";
|
||||||
|
theme = slug;
|
||||||
|
window-decoration = "none";
|
||||||
|
window-padding-balance = true;
|
||||||
|
window-padding-x = 8;
|
||||||
|
window-padding-y = 8;
|
||||||
|
window-theme = "ghostty";
|
||||||
cursor-style = "block";
|
cursor-style = "block";
|
||||||
|
|
||||||
# Whether to automatically copy selected text to the clipboard. true will prefer to copy to the selection clipboard, otherwise it will copy to the system clipboard.
|
# Whether to automatically copy selected text to the clipboard. true will prefer to copy to the selection clipboard, otherwise it will copy to the system clipboard.
|
||||||
# The value clipboard will always copy text to the selection clipboard as well as the system clipboard.
|
# The value clipboard will always copy text to the selection clipboard as well as the system clipboard.
|
||||||
copy-on-select = "clipboard";
|
copy-on-select = "clipboard";
|
||||||
|
|
||||||
inherit shell-integration;
|
inherit shell-integration;
|
||||||
|
|
||||||
command = getExe package;
|
command = getExe package;
|
||||||
};
|
};
|
||||||
|
|
||||||
settingsFile = pkgs.writeText "config" <| concatStringsSep "\n" <| mapAttrsToList (name: value: "${name} = ${toString value}") ghostty-settings;
|
settingsFile = pkgs.writeText "config" <| concatStringsSep "\n" <| mapAttrsToList (name: value: "${name} = ${toString value}") ghostty-settings;
|
||||||
|
|
||||||
ghostty = pkgs.ghostty.overrideAttrs (_: {
|
|
||||||
preBuild = ''
|
|
||||||
shopt -s globstar
|
|
||||||
sed -i 's/^const xev = @import("xev");$/const xev = @import("xev").Epoll;/' **/*.zig
|
|
||||||
shopt -u globstar
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
ghostty-wrapped = pkgs.symlinkJoin {
|
ghostty-wrapped = pkgs.symlinkJoin {
|
||||||
name = "ghostty-wrapped";
|
name = "ghostty-wrapped";
|
||||||
paths = [ghostty];
|
paths = [pkgs.ghostty];
|
||||||
nativeBuildInputs = [pkgs.makeWrapper];
|
nativeBuildInputs = [pkgs.makeWrapper];
|
||||||
postBuild = ''
|
postBuild = ''
|
||||||
wrapProgram $out/bin/ghostty --add-flags "--config-file=${settingsFile}"
|
wrapProgram $out/bin/ghostty --add-flags "--config-file=${settingsFile}"
|
|
@ -1,9 +0,0 @@
|
||||||
_: {
|
|
||||||
imports = [
|
|
||||||
./foot.nix
|
|
||||||
./steam.nix
|
|
||||||
# ./schizofox.nix
|
|
||||||
./minecraft.nix
|
|
||||||
./miniflux.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,117 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
inherit (builtins) listToAttrs;
|
|
||||||
|
|
||||||
cfg = config.modules.programs.schizofox;
|
|
||||||
in {
|
|
||||||
options.modules.programs.schizofox.enable = mkEnableOption "Schizofox browser";
|
|
||||||
imports = [
|
|
||||||
inputs.schizofox.nixosModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs.schizofox = {
|
|
||||||
enable = true;
|
|
||||||
theme = {
|
|
||||||
font = "Lexend";
|
|
||||||
colors = {
|
|
||||||
background-darker = "181825";
|
|
||||||
background = "1e1e2e";
|
|
||||||
foreground = "cdd6f4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security = {
|
|
||||||
sanitizeOnShutdown.enable = true;
|
|
||||||
sandbox.enable = true;
|
|
||||||
noSessionRestore = true;
|
|
||||||
userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0";
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
drm.enable = true;
|
|
||||||
disableWebgl = false;
|
|
||||||
bookmarks = [
|
|
||||||
{
|
|
||||||
Title = "Noogle";
|
|
||||||
URL = "https://noogle.dev";
|
|
||||||
Placement = "toolbar";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
Title = "Nixpkgs Manual";
|
|
||||||
URL = "https://nixos.org/manual/nixpkgs/stable";
|
|
||||||
Placement = "toolbar";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
extensions = {
|
|
||||||
simplefox.enable = true;
|
|
||||||
darkreader.enable = true;
|
|
||||||
|
|
||||||
enableDefaultExtensions = true;
|
|
||||||
enableExtraExtensions = true;
|
|
||||||
extraExtensions = let
|
|
||||||
extensions = [
|
|
||||||
{
|
|
||||||
id = "{c2c003ee-bd69-42a2-b0e9-6f34222cb046}";
|
|
||||||
name = "auto-tab-discard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "{a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad}";
|
|
||||||
name = "refined-github-";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "sponsorBlocker@ajay.app";
|
|
||||||
name = "sponsorblock";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "{446900e4-71c2-419f-a6a7-df9c091e268b}";
|
|
||||||
name = "bitwarden-password-manager";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "{74145f27-f039-47ce-a470-a662b129930a}";
|
|
||||||
name = "clearurls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "{b86e4813-687a-43e6-ab65-0bde4ab75758}";
|
|
||||||
name = "localcdn-fork-of-decentraleyes";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "smart-referer@meh.paranoid.pk";
|
|
||||||
name = "smart-referer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "skipredirect@sblask";
|
|
||||||
name = "skip-redirect";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "7esoorv3@alefvanoon.anonaddy.me";
|
|
||||||
name = "libredirect";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "DontFuckWithPaste@raim.ist";
|
|
||||||
name = "dont-fuck-with-paste";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
mappedExtensions =
|
|
||||||
map (extension: {
|
|
||||||
name = extension.id;
|
|
||||||
value = {
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/${extension.name}/latest.xpi";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
extensions;
|
|
||||||
in
|
|
||||||
listToAttrs mappedExtensions;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -10,8 +10,8 @@
|
||||||
# We want direnv to load in our nix dev shells
|
# We want direnv to load in our nix dev shells
|
||||||
loadInNixShell = true;
|
loadInNixShell = true;
|
||||||
|
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = false;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
_: {
|
|
||||||
imports = [./direnv.nix ./nix-index.nix];
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
_: {
|
|
||||||
imports = [./btop.nix];
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
--- a/zellij-server/src/panes/grid.rs
|
|
||||||
+++ b/zellij-server/src/panes/grid.rs
|
|
||||||
@@ -271,7 +271,7 @@ fn subtract_isize_from_usize(u: usize, i: isize) -> usize {
|
|
||||||
macro_rules! dump_screen {
|
|
||||||
($lines:expr) => {{
|
|
||||||
let mut is_first = true;
|
|
||||||
- let mut buf = "".to_owned();
|
|
||||||
+ let mut buf = String::with_capacity($lines.iter().map(|l| l.len()).sum());
|
|
||||||
|
|
||||||
for line in &$lines {
|
|
||||||
if line.is_canonical && !is_first {
|
|
||||||
@@ -280,8 +280,7 @@ macro_rules! dump_screen {
|
|
||||||
let s: String = (&line.columns).into_iter().map(|x| x.character).collect();
|
|
||||||
// Replace the spaces at the end of the line. Sometimes, the lines are
|
|
||||||
// collected with spaces until the end of the panel.
|
|
||||||
- let re = Regex::new("([^ ])[ ]*$").unwrap();
|
|
||||||
- buf.push_str(&(re.replace(&s, "${1}")));
|
|
||||||
+ buf.push_str(&s.trim_end_matches(' '));
|
|
||||||
is_first = false;
|
|
||||||
}
|
|
||||||
buf
|
|
||||||
|
|
|
@ -26,23 +26,6 @@ in {
|
||||||
ExecStart = "${getExe' pkgs.owncloud-client "owncloud"}";
|
ExecStart = "${getExe' pkgs.owncloud-client "owncloud"}";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
RestartSec = 30;
|
RestartSec = 30;
|
||||||
|
|
||||||
# User = "cr";
|
|
||||||
# Group = "cr";
|
|
||||||
|
|
||||||
# Keyringmode = "shared";
|
|
||||||
# DevicePolicy = "closed";
|
|
||||||
# PrivateDevices = true;
|
|
||||||
# PrivateTmp = true;
|
|
||||||
# ProtectClock = true;
|
|
||||||
# ProtectControlGroups = true;
|
|
||||||
# ProtectControlGroup = true;
|
|
||||||
# ProtectKernelLogs = true;
|
|
||||||
# ProtectKernelModules = true;
|
|
||||||
# ProtectKernelTunables = true;
|
|
||||||
|
|
||||||
# ProtectSystem = "strict";
|
|
||||||
# SystemCallFilter = "~@clock @cpu-emulation @debug @obsolete @module @mount @raw-io @reboot @swap @privileged";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
|
@ -1,39 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
cfg = config.modules.system.services.plausible;
|
|
||||||
|
|
||||||
port = 4030;
|
|
||||||
domain = "analytics.copeberg.org";
|
|
||||||
in {
|
|
||||||
options.modules.system.services.plausible.enable = mkEnableOption "Plausible, an analytics service";
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.plausible = {
|
|
||||||
enable = true;
|
|
||||||
server = {
|
|
||||||
baseUrl = "http://${domain}";
|
|
||||||
secretKeybaseFile = "/run/secrets/plausible-secret-key-base";
|
|
||||||
disableRegistration = false;
|
|
||||||
};
|
|
||||||
database.postgres = {
|
|
||||||
dbname = "plausible";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nginx = {
|
|
||||||
enable = true;
|
|
||||||
virtualHosts.${domain} = {
|
|
||||||
addSSL = true;
|
|
||||||
enableACME = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://localhost:${toString port}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,119 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (builtins) toString;
|
|
||||||
cfg = config.modules.services.searxng;
|
|
||||||
port = 4021;
|
|
||||||
in {
|
|
||||||
options.modules.services.searxng.enable = mkEnableOption "SearXNG, a private search engine";
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
networking.firewall.allowedTCPPorts = [port];
|
|
||||||
|
|
||||||
services = {
|
|
||||||
nginx.enable = true;
|
|
||||||
searx = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.searxng;
|
|
||||||
environmentFile = "/srv/data/searxng/super_secret_file";
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
name = "Copesearch";
|
|
||||||
privacypolicy_url = false;
|
|
||||||
debug = false;
|
|
||||||
enable_metrics = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
search = {
|
|
||||||
safe_search = 1;
|
|
||||||
|
|
||||||
formats = ["html" "json" "rss"];
|
|
||||||
autocomplete = "google"; # "dbpedia", "duckduckgo", "google", "startpage", "swisscows", "qwant", "wikipedia" - leave blank to turn it off by default
|
|
||||||
default_lang = "en";
|
|
||||||
};
|
|
||||||
|
|
||||||
ui = {
|
|
||||||
query_in_title = true;
|
|
||||||
theme_args.simple_style = "dark"; # auto, dark, light
|
|
||||||
results_on_new_tab = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
server = {
|
|
||||||
inherit port;
|
|
||||||
limiter = false;
|
|
||||||
image_proxy = false;
|
|
||||||
|
|
||||||
# taken from https://github.com/searx/searx/issues/715
|
|
||||||
default_http_headers = {
|
|
||||||
X-Content-Type-Options = "nosniff";
|
|
||||||
X-XSS-Protection = "1; mode=block";
|
|
||||||
X-Download-Options = "noopen";
|
|
||||||
X-Robots-Tag = "noindex, nofollow";
|
|
||||||
Referrer-Policy = "no-referrer";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# shamelessly stolen from NotAShelf
|
|
||||||
engines = [
|
|
||||||
{
|
|
||||||
name = "wikipedia";
|
|
||||||
engine = "wikipedia";
|
|
||||||
shortcut = "w";
|
|
||||||
base_url = "https://wikipedia.org/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "duckduckgo";
|
|
||||||
engine = "duckduckgo";
|
|
||||||
shortcut = "ddg";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "google";
|
|
||||||
engine = "google";
|
|
||||||
shortcut = "g";
|
|
||||||
use_mobile_ui = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "archwiki";
|
|
||||||
engine = "archlinux";
|
|
||||||
shortcut = "aw";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "github";
|
|
||||||
engine = "github";
|
|
||||||
categories = "it";
|
|
||||||
shortcut = "gh";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "nixpkgs";
|
|
||||||
shortcut = "nx";
|
|
||||||
engine = "elasticsearch";
|
|
||||||
categories = "dev,nix";
|
|
||||||
base_url = "https://nixos-search-5886075189.us-east-1.bonsaisearch.net:443";
|
|
||||||
index = "latest-31-nixos-unstable";
|
|
||||||
query_type = "match";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
nginx.virtualHosts."search.copeberg.org" = {
|
|
||||||
locations."/".proxyPass = "http://127.0.0.1:${toString port}";
|
|
||||||
extraConfig = ''
|
|
||||||
access_log /dev/null;
|
|
||||||
error_log /dev/null;
|
|
||||||
proxy_connect_timeout 60s;
|
|
||||||
proxy_send_timeout 60s;
|
|
||||||
proxy_read_timeout 60s;
|
|
||||||
'';
|
|
||||||
|
|
||||||
quic = true;
|
|
||||||
forceSSL = true;
|
|
||||||
enableACME = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
17
modules/services/spotifyd.mod.nix
Normal file
17
modules/services/spotifyd.mod.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.modules) mkIf;
|
||||||
|
inherit (config.modules.system) isGraphical;
|
||||||
|
in {
|
||||||
|
# TODO: setup
|
||||||
|
services.spotifyd = mkIf isGraphical {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -96,7 +96,7 @@ in {
|
||||||
symbols-only
|
symbols-only
|
||||||
;
|
;
|
||||||
|
|
||||||
inherit fancy-iosevka;
|
# inherit fancy-iosevka;
|
||||||
};
|
};
|
||||||
fontDir = {
|
fontDir = {
|
||||||
# Whether to create a directory with links to all fonts in
|
# Whether to create a directory with links to all fonts in
|
|
@ -1,7 +0,0 @@
|
||||||
_: {
|
|
||||||
imports = [
|
|
||||||
./colors.nix
|
|
||||||
./fonts.nix
|
|
||||||
./gtk.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -20,9 +20,9 @@ Singleton {
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly property QtObject border: QtObject {
|
readonly property QtObject border: QtObject {
|
||||||
readonly property int thickness: 8
|
readonly property int thickness: 0
|
||||||
readonly property color color: "#1e1e2e"
|
readonly property color color: "#1e1e2e"
|
||||||
readonly property int rounding: 25
|
readonly property int rounding: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly property QtObject catppuccin: QtObject {
|
readonly property QtObject catppuccin: QtObject {
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
_: {
|
|
||||||
imports = [./intel.nix];
|
|
||||||
}
|
|
3
modules/system/hardware/irqbalance.mod.nix
Normal file
3
modules/system/hardware/irqbalance.mod.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
_: {
|
||||||
|
services.irqbalance.enable = true;
|
||||||
|
}
|
|
@ -1,10 +0,0 @@
|
||||||
_: {
|
|
||||||
imports = [
|
|
||||||
./bluetooth.nix
|
|
||||||
./keyboard
|
|
||||||
./graphics.nix
|
|
||||||
./power.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
services.irqbalance.enable = true;
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{config, ...}: let
|
|
||||||
machine-id = builtins.substring 0 23 (builtins.hashString "sha256" config.networking.hostName);
|
|
||||||
in {
|
|
||||||
system = {
|
|
||||||
# faster rebuilds
|
|
||||||
# switch = {
|
|
||||||
# enable = false;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# My state version.
|
|
||||||
stateVersion = "23.11";
|
|
||||||
};
|
|
||||||
environment.etc."machine-id".text = "${machine-id}\n";
|
|
||||||
}
|
|
|
@ -10,8 +10,6 @@
|
||||||
inherit (lib.modules) mkForce;
|
inherit (lib.modules) mkForce;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./documentation.nix # nixos documentation
|
|
||||||
./nixpkgs.nix # global nixpkgs configuration
|
|
||||||
inputs.determinate.nixosModules.default
|
inputs.determinate.nixosModules.default
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
{config, ...}: let
|
{config, ...}: let
|
||||||
inherit (config.modules.other.system) username;
|
inherit (config.modules.other.system) username;
|
||||||
in {
|
in {
|
||||||
imports = [
|
|
||||||
./networkmanager.nix
|
|
||||||
./dns.nix
|
|
||||||
./firewall.nix
|
|
||||||
];
|
|
||||||
networking = {
|
networking = {
|
||||||
enableIPv6 = true;
|
enableIPv6 = true;
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
imports = [
|
|
||||||
./sudo.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
security = {
|
security = {
|
||||||
polkit = {
|
polkit = {
|
||||||
enable = true;
|
enable = true;
|
|
@ -66,6 +66,7 @@ layout {
|
||||||
default-column-width {
|
default-column-width {
|
||||||
proportion 0.5
|
proportion 0.5
|
||||||
}
|
}
|
||||||
|
background-color "transparent"
|
||||||
}
|
}
|
||||||
// xwayland stuff
|
// xwayland stuff
|
||||||
spawn-at-startup "xwayland-satellite"
|
spawn-at-startup "xwayland-satellite"
|
||||||
|
@ -91,27 +92,8 @@ overview {
|
||||||
zoom 0.65
|
zoom 0.65
|
||||||
backdrop-color "#777777"
|
backdrop-color "#777777"
|
||||||
}
|
}
|
||||||
workspace "main"
|
|
||||||
workspace "scratch"
|
|
||||||
workspace "browser"
|
|
||||||
workspace "social"
|
|
||||||
workspace "keepassxc"
|
|
||||||
workspace "infra"
|
|
||||||
workspace "multimedia"
|
|
||||||
animations {
|
animations {
|
||||||
// off
|
// off
|
||||||
|
|
||||||
}
|
|
||||||
// Open the Firefox picture-in-picture player as floating by default.
|
|
||||||
window-rule {
|
|
||||||
match app-id="librewolf$" title="^Picture-in-Picture$"
|
|
||||||
open-floating true
|
|
||||||
open-on-workspace "browser"
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
match app-id="org.keepassxc.KeePassXC"
|
|
||||||
block-out-from "screen-capture"
|
|
||||||
open-on-workspace "keepassxc"
|
|
||||||
}
|
}
|
||||||
window-rule {
|
window-rule {
|
||||||
match app-id="unset"
|
match app-id="unset"
|
||||||
|
@ -125,20 +107,14 @@ window-rule {
|
||||||
match app-id="org.freedesktop.impl.portal.desktop.kde"
|
match app-id="org.freedesktop.impl.portal.desktop.kde"
|
||||||
open-floating true
|
open-floating true
|
||||||
}
|
}
|
||||||
|
window-rule {
|
||||||
|
draw-border-with-background false
|
||||||
|
}
|
||||||
|
|
||||||
// Fix discord screencasting
|
// Fix discord screencasting
|
||||||
debug {
|
debug {
|
||||||
wait-for-frame-completion-in-pipewire
|
wait-for-frame-completion-in-pipewire
|
||||||
}
|
}
|
||||||
// Always focus the KeePassXC-Browser unlock dialog.
|
|
||||||
//
|
|
||||||
// This dialog opens parented to the KeePassXC window rather than the browser,
|
|
||||||
// so it doesn't get auto-focused by default.
|
|
||||||
window-rule {
|
|
||||||
match app-id="^org\\.keepassxc\\.KeePassXC$" title="^KeePassXC - Browser Access Request$"
|
|
||||||
match app-id="^org\\.keepassxc\\.KeePassXC$" title="^Unlock Database - KeePassXC$"
|
|
||||||
open-focused true
|
|
||||||
}
|
|
||||||
hotkey-overlay {
|
hotkey-overlay {
|
||||||
skip-at-startup
|
skip-at-startup
|
||||||
}
|
}
|
||||||
|
@ -151,9 +127,6 @@ binds {
|
||||||
Mod+Shift+Slash {
|
Mod+Shift+Slash {
|
||||||
show-hotkey-overlay
|
show-hotkey-overlay
|
||||||
}
|
}
|
||||||
// Mod+Return {
|
|
||||||
// spawn "foot"
|
|
||||||
// }
|
|
||||||
Mod+Return {
|
Mod+Return {
|
||||||
spawn "ghostty"
|
spawn "ghostty"
|
||||||
}
|
}
|
||||||
|
@ -402,9 +375,6 @@ binds {
|
||||||
Mod+C {
|
Mod+C {
|
||||||
center-column
|
center-column
|
||||||
}
|
}
|
||||||
Mod+X {
|
|
||||||
focus-workspace "keepassxc"
|
|
||||||
}
|
|
||||||
Mod+Minus {
|
Mod+Minus {
|
||||||
set-column-width "-10%"
|
set-column-width "-10%"
|
||||||
}
|
}
|
||||||
|
@ -437,9 +407,13 @@ binds {
|
||||||
Ctrl+Print {
|
Ctrl+Print {
|
||||||
screenshot-screen
|
screenshot-screen
|
||||||
}
|
}
|
||||||
Alt+Print {
|
// Alt+Print {
|
||||||
|
// spawn "sh" "-c" ""
|
||||||
|
// }
|
||||||
|
Mod+T {
|
||||||
screenshot
|
screenshot
|
||||||
}
|
}
|
||||||
|
// "$mainMod, T, exec, ${getExe pkgs.grimblast} save area - | ${getExe pkgs.tesseract} - - | ${getExe' pkgs.wl-clipboard "wl-copy"}"
|
||||||
Mod+Escape allow-inhibiting=false {
|
Mod+Escape allow-inhibiting=false {
|
||||||
toggle-keyboard-shortcuts-inhibit
|
toggle-keyboard-shortcuts-inhibit
|
||||||
}
|
}
|
|
@ -45,7 +45,13 @@ in {
|
||||||
environment.etc."niri/config.kdl".source = ./config.kdl;
|
environment.etc."niri/config.kdl".source = ./config.kdl;
|
||||||
|
|
||||||
environment.systemPackages = builtins.attrValues {
|
environment.systemPackages = builtins.attrValues {
|
||||||
inherit (pkgs) xwayland-satellite avizo playerctl;
|
inherit
|
||||||
|
(pkgs)
|
||||||
|
xwayland-satellite
|
||||||
|
avizo
|
||||||
|
playerctl
|
||||||
|
wl-clipboard
|
||||||
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -4,14 +4,9 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkForce mkIf;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
inherit (lib.lists) optional;
|
inherit (lib.lists) optional;
|
||||||
in {
|
in {
|
||||||
imports = [
|
|
||||||
./variables.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# Sets environment variable NIXOS_XDG_OPEN_USE_PORTAL to 1.
|
# Sets environment variable NIXOS_XDG_OPEN_USE_PORTAL to 1.
|
||||||
|
@ -48,8 +43,7 @@ in {
|
||||||
"org.freedesktop.impl.portal.FileChooser" = ["kde"];
|
"org.freedesktop.impl.portal.FileChooser" = ["kde"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
configPackages = [
|
};
|
||||||
# pkgs.niri
|
environment.variables = {
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -9,7 +9,7 @@
|
||||||
cfg = config.modules.wms.wayland;
|
cfg = config.modules.wms.wayland;
|
||||||
in {
|
in {
|
||||||
options.modules.wms.wayland.enable = mkEnableOption "wayland";
|
options.modules.wms.wayland.enable = mkEnableOption "wayland";
|
||||||
config = mkIf cfg.enable {
|
config = mkIf true {
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
__GL_GSYNC_ALLOWED = "0";
|
__GL_GSYNC_ALLOWED = "0";
|
|
@ -1,125 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (builtins) map genList toString;
|
|
||||||
inherit (lib.meta) getExe getExe';
|
|
||||||
in {
|
|
||||||
programs.hyprland.settings = {
|
|
||||||
# Keybinds
|
|
||||||
bind =
|
|
||||||
# workspaces
|
|
||||||
# split-workspace is because of the split-workspace plugin
|
|
||||||
map (
|
|
||||||
i: let
|
|
||||||
mod = a: b: a - (b * (a / b));
|
|
||||||
key = toString (mod i 10);
|
|
||||||
workspace = toString i;
|
|
||||||
in "$mainMod, ${key}, split:workspace, ${workspace}"
|
|
||||||
) (genList (i: i + 1) 10)
|
|
||||||
# split-movetoworkspacesilent
|
|
||||||
++ map (
|
|
||||||
i: let
|
|
||||||
mod = a: b: a - (b * (a / b));
|
|
||||||
key = toString (mod i 10);
|
|
||||||
workspace = toString i;
|
|
||||||
in "$mainMod SHIFT, ${key}, split:movetoworkspacesilent, ${workspace}"
|
|
||||||
) (genList (i: i + 1) 10)
|
|
||||||
++ [
|
|
||||||
"$mainMod, RETURN, exec, foot"
|
|
||||||
"$mainMod, Q, killactive"
|
|
||||||
"$mainMod, F, fullscreen, 0"
|
|
||||||
"$mainMod, D, exec, ${getExe' inputs.quickshell.packages.${pkgs.stdenv.system}.default "quickshell"} msg launcher open"
|
|
||||||
"$mainMod, SPACE, togglefloating, active"
|
|
||||||
"$mainMod ALT, L, exec, ${getExe pkgs.hyprlock}"
|
|
||||||
|
|
||||||
# Screenshotting
|
|
||||||
"$mainMod, S, exec, ${getExe pkgs.grimblast} copy area" # only copy
|
|
||||||
"$mainMod SHIFT, S, exec, ${getExe pkgs.grimblast} save area - | ${getExe pkgs.satty} -f -" # edit with satty
|
|
||||||
|
|
||||||
# Extract text from screen
|
|
||||||
"$mainMod, T, exec, ${getExe pkgs.grimblast} save area - | ${getExe pkgs.tesseract} - - | ${getExe' pkgs.wl-clipboard "wl-copy"}"
|
|
||||||
|
|
||||||
# File manager
|
|
||||||
"$mainMod, E, exec, ${pkgs.xfce.thunar}/bin/thunar"
|
|
||||||
|
|
||||||
# Toggle the three different special workspaces.
|
|
||||||
"$mainMod, N, togglespecialworkspace, nixos"
|
|
||||||
"$mainMod, X, togglespecialworkspace, keepassxc"
|
|
||||||
"$mainMod, V, togglespecialworkspace, audio"
|
|
||||||
|
|
||||||
# Reload hyprland
|
|
||||||
"$mainMod, R, exec, ${getExe' pkgs.hyprland "hyprctl"} reload"
|
|
||||||
|
|
||||||
# Grab rouge windows, which may persist after disconnecting a monitor.
|
|
||||||
"$mainMod, G, split:grabroguewindows"
|
|
||||||
|
|
||||||
# Restart waybar
|
|
||||||
"$mainMod CONTROL, B, exec, ${pkgs.procps}/bin/pkill waybar || ${getExe pkgs.waybar}"
|
|
||||||
"$mainMod CONTROL, Q, exec, ${pkgs.procps}/bin/pkill quickshell || ${getExe' inputs.quickshell.packages.${pkgs.stdenv.system}.default "quickshell"}"
|
|
||||||
];
|
|
||||||
|
|
||||||
binde = [
|
|
||||||
# window focus
|
|
||||||
"$mainMod, H, movefocus, l"
|
|
||||||
"$mainMod, J, movefocus, d"
|
|
||||||
"$mainMod, K, movefocus, u"
|
|
||||||
"$mainMod, L, movefocus, r"
|
|
||||||
|
|
||||||
# Move Windows
|
|
||||||
"$mainMod SHIFT, H, movewindow, l"
|
|
||||||
"$mainMod SHIFT, J, movewindow, d"
|
|
||||||
"$mainMod SHIFT, K, movewindow, u"
|
|
||||||
"$mainMod SHIFT, L, movewindow, r"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Media controls
|
|
||||||
bindl = let
|
|
||||||
volumectl = getExe' pkgs.avizo "volumectl";
|
|
||||||
playerctl = getExe pkgs.playerctl;
|
|
||||||
play-pause = "${playerctl} play-pause";
|
|
||||||
stop = "${playerctl} stop";
|
|
||||||
prev = "${playerctl} previous";
|
|
||||||
next = "${playerctl} next";
|
|
||||||
toggle-mute = "${volumectl} toggle-mute";
|
|
||||||
toggle-mic-mute = "${volumectl} toggle-mute";
|
|
||||||
in [
|
|
||||||
", XF86AudioMedia, exec, ${play-pause}"
|
|
||||||
", XF86AudioPlay, exec, ${play-pause}"
|
|
||||||
", XF86AudioStop, exec, ${stop}"
|
|
||||||
", XF86AudioPrev, exec, ${prev}"
|
|
||||||
", XF86AudioNext, exec, ${next}"
|
|
||||||
", XF86AudioMute, exec, ${toggle-mute}"
|
|
||||||
", XF86AudioMicMute, exec, ${toggle-mic-mute}"
|
|
||||||
];
|
|
||||||
|
|
||||||
# locked + repeat
|
|
||||||
bindle = let
|
|
||||||
volumectl = getExe' pkgs.avizo "volumectl";
|
|
||||||
lightctl = getExe' pkgs.avizo "lightctl";
|
|
||||||
volume_up = "${volumectl} -u up";
|
|
||||||
volume_down = "${volumectl} -u down";
|
|
||||||
brightness_up = "${lightctl} up";
|
|
||||||
brightness_down = "${lightctl} down";
|
|
||||||
in [
|
|
||||||
", XF86AudioRaiseVolume, exec, ${volume_up}"
|
|
||||||
", XF86AudioLowerVolume, exec, ${volume_down}"
|
|
||||||
", XF86MonBrightnessUp, exec, ${brightness_up}"
|
|
||||||
", XF86MonBrightnessDown, exec, ${brightness_down}"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Mouse settings
|
|
||||||
bindm = [
|
|
||||||
"$mainMod, mouse:272, movewindow"
|
|
||||||
"$mainMod, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Some more movement-related settings
|
|
||||||
binds = {
|
|
||||||
pass_mouse_when_bound = false;
|
|
||||||
movefocus_cycles_fullscreen = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,70 +0,0 @@
|
||||||
_: {
|
|
||||||
programs.hyprland.settings = {
|
|
||||||
#Decoration settings
|
|
||||||
decoration = {
|
|
||||||
rounding = 10;
|
|
||||||
rounding_power = 3;
|
|
||||||
blur = {
|
|
||||||
enabled = true;
|
|
||||||
xray = true;
|
|
||||||
size = 3;
|
|
||||||
passes = 2;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# Bezier curves for aninmations.
|
|
||||||
# Generate your own at https://www.cssportal.com/css-cubic-bezier-generator/
|
|
||||||
bezier = [
|
|
||||||
"dupa, 0.1, 0.9, 0.1, 1.05"
|
|
||||||
];
|
|
||||||
# Hyprland anomations, using the above bezier curves
|
|
||||||
animations = {
|
|
||||||
enabled = true;
|
|
||||||
};
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 4, dupa, popin"
|
|
||||||
"windowsOut, 1, 4, dupa, slide"
|
|
||||||
"border, 1, 15, default"
|
|
||||||
"fade, 1, 10, default"
|
|
||||||
"workspaces, 1, 5, dupa, slidevert"
|
|
||||||
];
|
|
||||||
|
|
||||||
cursor = {
|
|
||||||
hide_on_key_press = true;
|
|
||||||
no_hardware_cursors = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
enable_swallow = true;
|
|
||||||
swallow_regex = "foot";
|
|
||||||
focus_on_activate = true;
|
|
||||||
|
|
||||||
vrr = 1;
|
|
||||||
vfr = true;
|
|
||||||
|
|
||||||
animate_manual_resizes = false;
|
|
||||||
animate_mouse_windowdragging = false;
|
|
||||||
force_default_wallpaper = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Window rules for some programs.
|
|
||||||
windowrulev2 = [
|
|
||||||
"float, class:^(Tor Browser)$"
|
|
||||||
"float, class:^(mpv)$"
|
|
||||||
"float, class:^(imv)$"
|
|
||||||
"float, title:^(Picture-in-Picture)$"
|
|
||||||
"float, title:^(.*)(Choose User Profile)(.*)$"
|
|
||||||
"float, title:^(blob:null/)(.*)$"
|
|
||||||
"float, class:^(xdg-desktop-portal-gtk)$"
|
|
||||||
"float, class:^(code), title: ^(Open*)"
|
|
||||||
"size 70% 70%, class:^(code), title: ^(Open*)"
|
|
||||||
"center, class: ^(code), title: ^(Open*)"
|
|
||||||
"float, class:^(org.keepassxc.KeePassXC)$"
|
|
||||||
];
|
|
||||||
|
|
||||||
layerrule = [
|
|
||||||
"blur, shell:launcher"
|
|
||||||
"ignorezero, shell:launcher"
|
|
||||||
"animation popin 90%, shell:launcher"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
# inherit (config.modules.style) cursor;
|
|
||||||
inherit (lib.meta) getExe getExe';
|
|
||||||
in {
|
|
||||||
programs.hyprland.settings = {
|
|
||||||
# Hyprland settings
|
|
||||||
# Programs which get executed at Hyprland start.
|
|
||||||
exec-once = [
|
|
||||||
"uwsm finalize"
|
|
||||||
|
|
||||||
"hyprctl setcursor BreezeX-RosePine-Linux 32"
|
|
||||||
"hyprctl seterror disable"
|
|
||||||
|
|
||||||
"[workspace special:keepassxc; silent;tile] ${pkgs.keepassxc}/bin/keepassxc"
|
|
||||||
"[workspace special:audio; silent;tile] ${pkgs.pwvucontrol}/bin/pwvucontrol"
|
|
||||||
|
|
||||||
"${pkgs.swww}/bin/swww-daemon"
|
|
||||||
|
|
||||||
"${pkgs.avizo}/bin/avizo-service"
|
|
||||||
|
|
||||||
"${pkgs.wlsunset}/bin/wlsunset -S 06:00 -s 20:00"
|
|
||||||
"${pkgs.lxqt.lxqt-policykit}/bin/lxqt-policykit-agent"
|
|
||||||
"hyprctl dispatch split-workspace 1"
|
|
||||||
|
|
||||||
"${getExe pkgs.hyprlock}"
|
|
||||||
|
|
||||||
"${getExe' inputs.quickshell.packages.${pkgs.stdenv.system}.default "quickshell"}"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.options) mkOption;
|
|
||||||
inherit (lib.types) bool;
|
|
||||||
|
|
||||||
cfg = config.modules.desktops.hyprland;
|
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
./binds.nix
|
|
||||||
./decorations.nix
|
|
||||||
./exec.nix
|
|
||||||
./settings.nix
|
|
||||||
./workspaces.nix
|
|
||||||
inputs.hyprland.nixosModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
options.modules.desktops.hyprland = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Whether to enable Hyprland wayland compositor.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
package = pkgs.hyprland;
|
|
||||||
portalPackage = pkgs.xdg-desktop-portal-hyprland;
|
|
||||||
plugins = [
|
|
||||||
pkgs.hyprlandPlugins.hyprsplit
|
|
||||||
];
|
|
||||||
withUWSM = true;
|
|
||||||
};
|
|
||||||
# xdg Portal
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
xdgOpenUsePortal = true;
|
|
||||||
extraPortals = [
|
|
||||||
pkgs.xdg-desktop-portal-gtk
|
|
||||||
pkgs.xdg-desktop-portal-hyprland
|
|
||||||
];
|
|
||||||
config = {
|
|
||||||
common.default = ["*"];
|
|
||||||
hyprland.default = ["gtk" "hyprland"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (builtins) toString;
|
|
||||||
inherit (lib.attrsets) mapAttrsToList;
|
|
||||||
|
|
||||||
inherit (config.modules.style.colorScheme) colors;
|
|
||||||
inherit (config.modules.system.hardware) monitors;
|
|
||||||
in {
|
|
||||||
config = {
|
|
||||||
programs.hyprland = {
|
|
||||||
settings = {
|
|
||||||
# Hyprland settings
|
|
||||||
"$mainMod" = "SUPER";
|
|
||||||
|
|
||||||
# Monitor config
|
|
||||||
# Thanks Poz for inspiration, using an attrSet is actually much smarter
|
|
||||||
# than using a normal list.
|
|
||||||
monitor =
|
|
||||||
mapAttrsToList (
|
|
||||||
name: m: let
|
|
||||||
w = toString m.resolution.x;
|
|
||||||
h = toString m.resolution.y;
|
|
||||||
refreshRate = toString m.refreshRate;
|
|
||||||
x = toString m.position.x;
|
|
||||||
y = toString m.position.y;
|
|
||||||
scale = toString m.scale;
|
|
||||||
in "${name},${w}x${h}@${refreshRate},${x}x${y},${scale}"
|
|
||||||
)
|
|
||||||
monitors;
|
|
||||||
|
|
||||||
# Input settings
|
|
||||||
input = {
|
|
||||||
kb_layout = "us,ru";
|
|
||||||
kb_variant = ",phonetic_winkeys";
|
|
||||||
kb_options = "grp:rctrl_rshift_toggle, compose:102";
|
|
||||||
|
|
||||||
follow_mouse = true;
|
|
||||||
|
|
||||||
repeat_rate = 60;
|
|
||||||
repeat_delay = 200;
|
|
||||||
|
|
||||||
touchpad = {
|
|
||||||
disable_while_typing = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gestures = {
|
|
||||||
workspace_swipe = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
general = {
|
|
||||||
layout = "dwindle";
|
|
||||||
gaps_in = 0;
|
|
||||||
gaps_out = 0;
|
|
||||||
border_size = 2;
|
|
||||||
|
|
||||||
"col.active_border" = "0xff${colors.base07}";
|
|
||||||
no_border_on_floating = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# No annoying startup errors
|
|
||||||
debug.suppress_errors = true;
|
|
||||||
|
|
||||||
ecosystem.no_update_news = true;
|
|
||||||
|
|
||||||
plugin = {
|
|
||||||
hyprsplit = {
|
|
||||||
num_workspaces = 10;
|
|
||||||
persistent_workspaces = true;
|
|
||||||
};
|
|
||||||
dynamic-cursors = {
|
|
||||||
enabled = true;
|
|
||||||
|
|
||||||
mode = "rotate";
|
|
||||||
rotate = {
|
|
||||||
length = 20;
|
|
||||||
offset = 0.0;
|
|
||||||
};
|
|
||||||
threshhold = 2;
|
|
||||||
shake.enabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (builtins) map genList attrNames toString;
|
|
||||||
inherit (lib.lists) imap0 flatten;
|
|
||||||
inherit (lib.strings) optionalString;
|
|
||||||
|
|
||||||
inherit (config.modules.system.hardware) monitors;
|
|
||||||
in {
|
|
||||||
programs.hyprland.settings = {
|
|
||||||
# INFO: This is a custom function to map all of my monitors to workspaces.
|
|
||||||
# Since I use split-monitor-workspaces, I map 10 workspaces to each monitor
|
|
||||||
# and set the first one to be the default one.
|
|
||||||
# To be able to use this for a varying amount of monitors we do some nasty trickery.
|
|
||||||
# This was inspired by jacekpoz, whose configuration is linked in this project's README.md.
|
|
||||||
workspace =
|
|
||||||
(
|
|
||||||
# We use imap0 insted of map because imap0 starts indexing at zero as oppsed to one with map.
|
|
||||||
(imap0 (monitorIndex: monitorName: (
|
|
||||||
map (
|
|
||||||
i: let
|
|
||||||
# we define our own modulo operation for this,
|
|
||||||
# since only the first workspace on each monitor is the default workspace.
|
|
||||||
mod = a: b: a - (b * (a / b));
|
|
||||||
workspace = toString i;
|
|
||||||
isDefault = (mod i 10) == 1; # 11, 21, 31, ...
|
|
||||||
in "${workspace}, monitor:${monitorName}${optionalString isDefault ", default:true"}"
|
|
||||||
)
|
|
||||||
# we generate a list of 10 elements for each monitor. We have to add 1 each time since genList starts indexing at 0.
|
|
||||||
# also, we add the monitorIndex * 10 to get 10 workspaces for each individual monitor.
|
|
||||||
(genList (i: i + 1 + (10 * monitorIndex)) 10)
|
|
||||||
))
|
|
||||||
# our attrSet of different monitors
|
|
||||||
(attrNames monitors))
|
|
||||||
# We're creating several lists of workspace assignments, one for each monitor,
|
|
||||||
# and have to merge them into one big list.
|
|
||||||
|> flatten
|
|
||||||
)
|
|
||||||
# These are my two special workspaces
|
|
||||||
++ [
|
|
||||||
"special:nixos, decorate:false"
|
|
||||||
"special:keepassxc, decorate:false"
|
|
||||||
"special:audio, decorate:false"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
}
|
|
|
@ -46,7 +46,6 @@ builtins.attrValues {
|
||||||
inetutils
|
inetutils
|
||||||
tokei
|
tokei
|
||||||
starship
|
starship
|
||||||
onefetch
|
|
||||||
wget
|
wget
|
||||||
cpufetch
|
cpufetch
|
||||||
watchman
|
watchman
|
||||||
|
|
|
@ -1,38 +1,57 @@
|
||||||
{
|
{
|
||||||
add_newline = false;
|
add_newline = false;
|
||||||
command_timeout = 2000;
|
aws.symbol = " ";
|
||||||
format = "$hostname$username$directory$shell$nix_shell$jobs$character";
|
buf.symbol = " ";
|
||||||
scan_timeout = 1;
|
bun.symbol = " ";
|
||||||
|
c.symbol = " ";
|
||||||
character = {
|
cmake.symbol = " ";
|
||||||
error_symbol = "[λ](bold red)";
|
conda.symbol = " ";
|
||||||
success_symbol = "[λ](bold green)";
|
cpp.symbol = " ";
|
||||||
|
crystal.symbol = " ";
|
||||||
|
dart.symbol = " ";
|
||||||
|
deno.symbol = " ";
|
||||||
|
directory.read_only = " ";
|
||||||
|
docker_context.symbol = " ";
|
||||||
|
elixir.symbol = " ";
|
||||||
|
elm.symbol = " ";
|
||||||
|
fennel = {symbol = " ";};
|
||||||
|
fossil_branch = {symbol = " ";};
|
||||||
|
gcloud = {symbol = " ";};
|
||||||
|
git_branch = {symbol = " ";};
|
||||||
|
git_commit = {tag_symbol = " ";};
|
||||||
|
golang.symbol = " ";
|
||||||
|
gradle = {symbol = " ";};
|
||||||
|
guix_shell = {symbol = " ";};
|
||||||
|
haskell = {symbol = " ";};
|
||||||
|
haxe = {symbol = " ";};
|
||||||
|
hg_branch = {symbol = " ";};
|
||||||
|
hostname = {ssh_symbol = " ";};
|
||||||
|
java = {symbol = " ";};
|
||||||
|
julia = {symbol = " ";};
|
||||||
|
kotlin = {symbol = " ";};
|
||||||
|
lua = {symbol = " ";};
|
||||||
|
memory_usage = {symbol = " ";};
|
||||||
|
meson = {symbol = " ";};
|
||||||
|
nim = {symbol = " ";};
|
||||||
|
nix_shell = {symbol = " ";};
|
||||||
|
nodejs = {symbol = " ";};
|
||||||
|
ocaml = {symbol = " ";};
|
||||||
|
os = {
|
||||||
|
symbols = {
|
||||||
|
Linux = " ";
|
||||||
|
NixOS = " ";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
directory = {
|
package = {symbol = " ";};
|
||||||
format = "[](bold green) [$path]($style) ";
|
perl = {symbol = " ";};
|
||||||
truncation_length = 2;
|
php = {symbol = " ";};
|
||||||
};
|
pijul_channel = {symbol = " ";};
|
||||||
|
pixi = {symbol = " ";};
|
||||||
direnv = {
|
python = {symbol = " ";};
|
||||||
disabled = false;
|
rlang = {symbol = " ";};
|
||||||
};
|
ruby = {symbol = " ";};
|
||||||
|
rust = {symbol = " ";};
|
||||||
git_status = {
|
scala = {symbol = " ";};
|
||||||
disabled = true;
|
swift = {symbol = " ";};
|
||||||
};
|
zig = {symbol = " ";};
|
||||||
|
|
||||||
hostname = {
|
|
||||||
disabled = false;
|
|
||||||
format = "@[$hostname](bold blue) ";
|
|
||||||
ssh_only = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
c.symbol = "[ ](black)";
|
|
||||||
lua.symbol = "[ ](blue) ";
|
|
||||||
nix_shell.symbol = "[ ](blue) ";
|
|
||||||
nodejs.symbol = "[ ](yellow)";
|
|
||||||
package.symbol = "📦 ";
|
|
||||||
python.symbol = "[ ](blue) ";
|
|
||||||
rust.symbol = "[ ](red) ";
|
|
||||||
username.format = "[$user]($style) in ";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,6 +61,10 @@
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
new-deadnix = deadnix.overrideAttrs (finalAttrs: previousAttrs: {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
toml = formats.toml {};
|
toml = formats.toml {};
|
||||||
|
|
||||||
helix-languages = callPackage ./languages.nix {inherit lib;};
|
helix-languages = callPackage ./languages.nix {inherit lib;};
|
||||||
|
@ -168,7 +172,6 @@
|
||||||
|
|
||||||
kdlfmt
|
kdlfmt
|
||||||
|
|
||||||
deadnix
|
|
||||||
# zig language server
|
# zig language server
|
||||||
zls
|
zls
|
||||||
];
|
];
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
toml = formats.toml {};
|
toml = formats.toml {};
|
||||||
|
|
||||||
# a newer nil version, for pipes support.
|
# a newer nil version, for pipes support.
|
||||||
newer-nil = nil.overrideAttrs (_: {
|
new-nil = nil.overrideAttrs (_: {
|
||||||
version = "unstable-02-06-2025";
|
version = "unstable-02-06-2025";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
|
@ -38,11 +38,24 @@
|
||||||
hash = "sha256-ggXU3RHv6NgWw+vc+HO4/9n0GPufhTIUjVuLci8Za8c=";
|
hash = "sha256-ggXU3RHv6NgWw+vc+HO4/9n0GPufhTIUjVuLci8Za8c=";
|
||||||
};
|
};
|
||||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||||
inherit (newer-nil) src;
|
inherit (new-nil) src;
|
||||||
hash = "sha256-uZsLlFU9GKLvFllF7Kf5Q7HfN26KQojf4rvOb9p7Rjs=";
|
hash = "sha256-uZsLlFU9GKLvFllF7Kf5Q7HfN26KQojf4rvOb9p7Rjs=";
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
new-deadnix = deadnix.overrideAttrs (finalAttrs: previousAttrs: {
|
||||||
|
version = "unstable-15-07-2025";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "astro";
|
||||||
|
repo = "deadnix";
|
||||||
|
rev = "d75457b95d7cfa82fcd60970939f76fccfce19e5";
|
||||||
|
hash = "sha256-O/z2neAXL8JNkGosvxC+DyZnnJ8zYP9XHApxHVmlzfY=";
|
||||||
|
};
|
||||||
|
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||||
|
inherit (new-deadnix) src;
|
||||||
|
hash = "sha256-O8yhqyPflOvQXAA19k1XpbrHysgV5VNWLBX0l5Q5GkM=";
|
||||||
|
};
|
||||||
|
});
|
||||||
helix-languages = {
|
helix-languages = {
|
||||||
language = let
|
language = let
|
||||||
mark = lang: {
|
mark = lang: {
|
||||||
|
@ -205,12 +218,12 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
nil = {
|
nil = {
|
||||||
command = getExe newer-nil;
|
command = getExe new-nil;
|
||||||
# alejandro
|
# alejandro
|
||||||
config.nil.formatting.command = ["${getExe alejandra}" "-q"];
|
config.nil.formatting.command = ["${getExe alejandra}" "-q"];
|
||||||
};
|
};
|
||||||
deadnix = {
|
deadnix = {
|
||||||
command = getExe deadnix;
|
command = getExe new-deadnix;
|
||||||
};
|
};
|
||||||
|
|
||||||
scls = {
|
scls = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue