Compare commits
No commits in common. "b1490ec9a8fcc55fed1ebbc01a166889152ca10f" and "2f68b25e5342b0ff69858f528b6c85ef59aa3988" have entirely different histories.
b1490ec9a8
...
2f68b25e53
105 changed files with 1792 additions and 264 deletions
710
flake.lock
generated
710
flake.lock
generated
|
@ -1,12 +1,60 @@
|
|||
{
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1751562746,
|
||||
"narHash": "sha256-smpugNIkmDeicNz301Ll1bD7nFOty97T79m4GUMUczA=",
|
||||
"lastModified": 1750266157,
|
||||
"narHash": "sha256-tL42YoNg9y30u7zAqtoGDNdTyXTi8EALDeCB13FtbQA=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "aed2020fd3dc26e1e857d4107a5a67a33ab6c1fd",
|
||||
"rev": "e37c943371b73ed87faf33f7583860f81f1d5a48",
|
||||
"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"
|
||||
},
|
||||
"original": {
|
||||
|
@ -30,11 +78,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752331782,
|
||||
"narHash": "sha256-eRDO93C2dXNVoLbnNECWwGcMErDKVAXNWWy6hFMPoE8=",
|
||||
"lastModified": 1751571582,
|
||||
"narHash": "sha256-px4+H0VI5H+kzHgfoyAD0haTNiAXhiVgXqCAgAjT16A=",
|
||||
"owner": "determinatesystems",
|
||||
"repo": "determinate",
|
||||
"rev": "33ffc091037908049e9897dc8258efae81709cfd",
|
||||
"rev": "e3f21c62aee2ccd25811be574c09e1de8a57a687",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -46,37 +94,37 @@
|
|||
"determinate-nixd-aarch64-darwin": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-T/kTCi8rrh1r5XMGQBymB4Hnk/KNNGkgtgma6bXXKy0=",
|
||||
"narHash": "sha256-+O3K2pZRWkbL0DEh5HyV0+pyAkRmJ0z6NjYTvetrTtk=",
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.2/macOS"
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.7.0/macOS"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.2/macOS"
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.7.0/macOS"
|
||||
}
|
||||
},
|
||||
"determinate-nixd-aarch64-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-C+KvOykOIoXCWSsPBM2Hzy1skk2lgiKXQyb9fJdwSdQ=",
|
||||
"narHash": "sha256-r8BSSNXss3EoCUV4gYJwAS18OO7fceWXCL2SPLwls50=",
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.2/aarch64-linux"
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.7.0/aarch64-linux"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.2/aarch64-linux"
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.7.0/aarch64-linux"
|
||||
}
|
||||
},
|
||||
"determinate-nixd-x86_64-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-cENobOVn0+FtON9bmr/QoUEpNGEyxW4YpFXkLyBTYDs=",
|
||||
"narHash": "sha256-hSauxThw5pfDiiqdVeFv3QeL4e3DRI09hFYuGhTKQWU=",
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.2/x86_64-linux"
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.7.0/x86_64-linux"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.2/x86_64-linux"
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.7.0/x86_64-linux"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
|
@ -96,6 +144,22 @@
|
|||
}
|
||||
},
|
||||
"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,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
|
@ -111,6 +175,22 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
|
@ -140,11 +220,50 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751413152,
|
||||
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||
"lastModified": 1749398372,
|
||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||
"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"
|
||||
},
|
||||
"original": {
|
||||
|
@ -180,6 +299,28 @@
|
|||
}
|
||||
},
|
||||
"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": {
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
|
@ -201,6 +342,317 @@
|
|||
"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": 1751904574,
|
||||
"narHash": "sha256-jXkava/9BRiY2JEVmB68mpkFd+JU3BnNbh2RtRBXfTA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland",
|
||||
"rev": "bb958a9e139d6ae90d45fe360287d33e229f971e",
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1737831083,
|
||||
|
@ -219,7 +671,7 @@
|
|||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
|
@ -228,11 +680,11 @@
|
|||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752673703,
|
||||
"narHash": "sha256-9Cc0YqL9ZUpaybJsrRJfXex91QlPmQNqpTLgw/KvJGA=",
|
||||
"lastModified": 1751381593,
|
||||
"narHash": "sha256-js1XwtJpYhvQrrTaVzViybpztkHJVZ63aXOlFAcTENM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lanzaboote",
|
||||
"rev": "5a776450d904b7ccd377c2a759703152b2553e98",
|
||||
"rev": "f4eb75540307c2b33521322c04b7fea74e48a66f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -250,18 +702,44 @@
|
|||
"nixpkgs-regression": "nixpkgs-regression"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752329813,
|
||||
"narHash": "sha256-+PLMYzOLXmYtGUcUxIbJZpadAV/gO73EAhISc1kgvJM=",
|
||||
"rev": "04045d5add7915ea9209a09833fae1aa3a3a9be1",
|
||||
"revCount": 21488,
|
||||
"lastModified": 1751568315,
|
||||
"narHash": "sha256-52rbPxatlf/8BA3plVc87W8kyXdBr6iab+nQHe4QeJg=",
|
||||
"rev": "81672fee2a84385d052c20982307bbd86fd031c4",
|
||||
"revCount": 21102,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.8.2/0197ff19-42da-7beb-b8cf-902b39687ccf/source.tar.gz"
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.7.0/0197d1ca-253f-75ae-9f36-38c46bd107f4/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1747179050,
|
||||
|
@ -292,6 +770,18 @@
|
|||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
|
@ -311,23 +801,62 @@
|
|||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 315532800,
|
||||
"narHash": "sha256-X5WIcIkFxPhw7mS219TbEOgrugbMx/2cin09OlWobT8=",
|
||||
"rev": "dab3a6e781554f965bde3def0aa2fda4eb8f1708",
|
||||
"narHash": "sha256-5EzvWAMTAf6m6Ynab7EnYz9OfJO2wHCb/yhtP8ACQQQ=",
|
||||
"rev": "9b008d60392981ad674e04016d25619281550a9d",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre830668.dab3a6e78155/nixexprs.tar.xz"
|
||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre826760.9b008d603929/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"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": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"lanzaboote",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"gitignore": "gitignore_2",
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
|
@ -350,11 +879,13 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"determinate": "determinate",
|
||||
"hyprland": "hyprland",
|
||||
"impermanence": "impermanence",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"rust-overlay": "rust-overlay_2",
|
||||
"systems": "systems",
|
||||
"schizofox": "schizofox",
|
||||
"systems": "systems_2",
|
||||
"watt": "watt"
|
||||
}
|
||||
},
|
||||
|
@ -366,11 +897,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751769931,
|
||||
"narHash": "sha256-QR2Rp/41NkA5YxcpvZEKD1S2QE1Pb9U415aK8M/4tJc=",
|
||||
"lastModified": 1751165203,
|
||||
"narHash": "sha256-3QhlpAk2yn+ExwvRLtaixWsVW1q3OX3KXXe0l8VMLl4=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "3ac4f630e375177ea8317e22f5c804156de177e8",
|
||||
"rev": "90f547b90e73d3c6025e66c5b742d6db51c418c3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -386,11 +917,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752633862,
|
||||
"narHash": "sha256-Bj7ozT1+5P7NmvDcuAXJvj56txcXuAhk3Vd9FdWFQzk=",
|
||||
"lastModified": 1751856221,
|
||||
"narHash": "sha256-/QE1eV0ckFvgRMcKjZqgdJDoXFNwSMepwRoBjaw2MCk=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "8668ca94858206ac3db0860a9dec471de0d995f8",
|
||||
"rev": "34cae4b56929c5b340e1c5b10d9a98a425b2a51e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -399,6 +930,53 @@
|
|||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
|
@ -414,6 +992,21 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -433,6 +1026,47 @@
|
|||
"repo": "watt",
|
||||
"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",
|
||||
|
|
|
@ -48,6 +48,8 @@
|
|||
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
|
||||
schizofox.url = "github:schizofox/schizofox";
|
||||
|
||||
watt = {
|
||||
url = "github:notashelf/watt";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -59,6 +61,12 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
url = "github:hyprwm/hyprland";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.systems.follows = "systems";
|
||||
};
|
||||
|
||||
# The things rust is making me do...
|
||||
rust-overlay = {
|
||||
url = "github:oxalica/rust-overlay";
|
||||
|
|
|
@ -42,10 +42,6 @@ inputs: let
|
|||
map toString (listFilesRecursive ../modules)
|
||||
|> filter (hasSuffix "module.nix")
|
||||
)
|
||||
(
|
||||
map toString (listFilesRecursive ../modules)
|
||||
|> filter (hasSuffix ".mod.nix")
|
||||
)
|
||||
]
|
||||
|> flatten
|
||||
)
|
||||
|
|
|
@ -16,6 +16,10 @@
|
|||
};
|
||||
programs = {
|
||||
nix-ld.enable = false;
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableBashCompletion = true;
|
||||
};
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
pinentryPackage = pkgs.pinentry-qt;
|
||||
|
|
|
@ -3,7 +3,24 @@
|
|||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
inherit
|
||||
(
|
||||
pkgs.callPackage ./kernel/xanmod.nix {
|
||||
inherit lib;
|
||||
inherit
|
||||
(pkgs)
|
||||
stdenv
|
||||
fetchFromGitHub
|
||||
kernelPatches
|
||||
buildLinux
|
||||
variant
|
||||
;
|
||||
}
|
||||
)
|
||||
xanmod_blox
|
||||
;
|
||||
in {
|
||||
# Time Zone
|
||||
time.timeZone = "Europe/Zurich";
|
||||
# Select internationalisation properties.
|
||||
|
@ -12,18 +29,13 @@
|
|||
security.polkit.enable = true;
|
||||
|
||||
# boot.kernelPackages = pkgs.linuxPackagesFor xanmod_blox;
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||
programs.nix-ld.enable = true;
|
||||
services = {
|
||||
fstrim.enable = lib.mkDefault true;
|
||||
udisks2.enable = true;
|
||||
system76-scheduler = {
|
||||
enable = true;
|
||||
};
|
||||
gnome.gnome-keyring.enable = true;
|
||||
};
|
||||
security.pam.services.login.enableGnomeKeyring = true;
|
||||
environment.systemPackages = [pkgs.seahorse];
|
||||
|
||||
meta = {
|
||||
mainUser.gitSigningKey = "";
|
||||
};
|
||||
|
@ -51,6 +63,7 @@
|
|||
};
|
||||
};
|
||||
desktops.niri.enable = true;
|
||||
desktops.hyprland.enable = true;
|
||||
|
||||
theming = {
|
||||
gtk.enable = true;
|
||||
|
@ -66,8 +79,8 @@
|
|||
enable = true;
|
||||
musicDirectory = "/home/${config.modules.other.system.username}/cloud/media/Music";
|
||||
};
|
||||
# uwsm.enable = true;
|
||||
# greetd.enable = true;
|
||||
uwsm.enable = true;
|
||||
greetd.enable = true;
|
||||
};
|
||||
other = {
|
||||
system = {
|
||||
|
|
|
@ -6,13 +6,10 @@
|
|||
anki
|
||||
asciinema
|
||||
beets
|
||||
bitwarden-cli
|
||||
bitwarden-desktop
|
||||
bubblewrap
|
||||
cachix
|
||||
calc
|
||||
calibre
|
||||
carapace
|
||||
comma
|
||||
digikam
|
||||
difftastic
|
||||
|
@ -40,7 +37,6 @@
|
|||
librewolf
|
||||
libtool
|
||||
logiops
|
||||
mergiraf
|
||||
mpv
|
||||
nautilus
|
||||
nicotine-plus
|
||||
|
@ -62,17 +58,15 @@
|
|||
ruby_3_2
|
||||
signal-desktop
|
||||
spotify
|
||||
starship
|
||||
strawberry
|
||||
telegram-desktop
|
||||
texliveFull
|
||||
thunderbird
|
||||
topiary
|
||||
tor-browser
|
||||
trash-cli
|
||||
tutanota-desktop
|
||||
typst
|
||||
vesktop
|
||||
vivid
|
||||
walker
|
||||
wayneko
|
||||
wireguard-tools
|
||||
|
@ -82,13 +76,6 @@
|
|||
zathura
|
||||
zotero
|
||||
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
|
||||
(pkgs.wineWowPackages)
|
||||
|
|
|
@ -5,11 +5,35 @@
|
|||
}: let
|
||||
inherit (builtins) elemAt;
|
||||
inherit (lib.options) mkOption mkEnableOption;
|
||||
inherit (lib.types) enum listOf str nullOr bool;
|
||||
inherit (lib.types) enum listOf str nullOr bool oneOf;
|
||||
inherit (lib.lists) elem;
|
||||
|
||||
inherit (config.modules.system) systemType;
|
||||
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 = {
|
||||
mainUser = mkOption {
|
||||
type = enum config.modules.system.users;
|
7
modules/options/system/networking/default.nix
Normal file
7
modules/options/system/networking/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.options) mkEnableOption;
|
||||
in {
|
||||
options.modules.system.networking = {
|
||||
nftbles.enable = mkEnableOption "Nftables firewall";
|
||||
};
|
||||
}
|
8
modules/other/module.nix
Normal file
8
modules/other/module.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
_: {
|
||||
imports = [
|
||||
./system.nix
|
||||
./xdg.nix
|
||||
./git.nix
|
||||
./users.nix
|
||||
];
|
||||
}
|
|
@ -55,6 +55,10 @@ in {
|
|||
};
|
||||
};
|
||||
config = {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableBashCompletion = true;
|
||||
};
|
||||
users = {
|
||||
mutableUsers = true;
|
||||
users = {
|
7
modules/packages/hardware.nix
Normal file
7
modules/packages/hardware.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}
|
22
modules/packages/module.nix
Normal file
22
modules/packages/module.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{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
|
||||
;
|
||||
};
|
||||
}
|
15
modules/packages/wayland.nix
Normal file
15
modules/packages/wayland.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# These are packages I only need in wayland environments, nowhere else.
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
wl-clipboard
|
||||
grimblast
|
||||
;
|
||||
};
|
||||
}
|
6
modules/programs/cli/module.nix
Normal file
6
modules/programs/cli/module.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
_: {
|
||||
imports = [
|
||||
./nh.nix
|
||||
# ./beets.nix
|
||||
];
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
_: {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
}
|
|
@ -20,7 +20,7 @@
|
|||
"--use-angle=vulkan"
|
||||
];
|
||||
brave-wrapped = pkgs.symlinkJoin {
|
||||
name = "brave";
|
||||
name = "fish";
|
||||
paths = [
|
||||
(
|
||||
pkgs.brave.override {vulkanSupport = true;}
|
||||
|
@ -201,9 +201,7 @@ in {
|
|||
# NoScript
|
||||
"doojmbjmlfjjnbmnoijecmcbfeoakpjm"
|
||||
# KeePassXC-Browser
|
||||
# "oboonakemofpalcgghocfoadofidjkkk"
|
||||
# Bitwarden Password Manager
|
||||
"nngceckbapebfimnlniiiahkandclblb"
|
||||
"oboonakemofpalcgghocfoadofidjkkk"
|
||||
# Catppuccin Mocha
|
||||
"bkkmolkhemgaeaeggcmfbghljjjoofoh"
|
||||
# Dark Reader
|
10
modules/programs/gui/fuzzel/module.nix
Normal file
10
modules/programs/gui/fuzzel/module.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
inherit (pkgs) fuzzel;
|
||||
};
|
||||
}
|
|
@ -20,44 +20,55 @@
|
|||
else "none";
|
||||
|
||||
ghostty-settings = {
|
||||
font-size = 14;
|
||||
font-family = "JetBrainsMonoNerdFont";
|
||||
# font-style-bold = JetBrainsMono NF Regular;
|
||||
# font-style-bold-italic = JetBrainsMono NF Italic;
|
||||
font-family-bold = "JetBrainsMonoNerdFontBold";
|
||||
font-family-italic = "JetBrainsMonoNerdFontItalic";
|
||||
font-family-bold-italic = "JetBrainsMonoNerdFontBoldItalic";
|
||||
font-size = 14;
|
||||
|
||||
app-notifications = "no-clipboard-copy";
|
||||
background-opacity = 0.75;
|
||||
bold-is-bright = "true";
|
||||
confirm-close-surface = "false";
|
||||
cursor-style-blink = "false";
|
||||
window-padding-x = 8;
|
||||
window-padding-y = 8;
|
||||
background-opacity = 0.85;
|
||||
gtk-single-instance = "true";
|
||||
gtk-tabs-location = "bottom";
|
||||
gtk-wide-tabs = false;
|
||||
mouse-hide-while-typing = "true";
|
||||
resize-overlay-duration = "0s";
|
||||
shell-integration-features = "cursor,sudo,no-title";
|
||||
term = "xterm-256color";
|
||||
theme = slug;
|
||||
window-decoration = "none";
|
||||
window-padding-balance = true;
|
||||
window-padding-x = 8;
|
||||
window-padding-y = 8;
|
||||
window-decoration = "none";
|
||||
theme = slug;
|
||||
resize-overlay-duration = "0s";
|
||||
cursor-style-blink = "false";
|
||||
confirm-close-surface = "false";
|
||||
mouse-hide-while-typing = "true";
|
||||
|
||||
window-theme = "ghostty";
|
||||
bold-is-bright = "true";
|
||||
term = "xterm-256color";
|
||||
|
||||
app-notifications = "no-clipboard-copy";
|
||||
shell-integration-features = "cursor,sudo,no-title";
|
||||
# window-padding-y = 10;
|
||||
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.
|
||||
# The value clipboard will always copy text to the selection clipboard as well as the system clipboard.
|
||||
copy-on-select = "clipboard";
|
||||
inherit shell-integration;
|
||||
|
||||
inherit shell-integration;
|
||||
command = getExe package;
|
||||
};
|
||||
|
||||
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 {
|
||||
name = "ghostty-wrapped";
|
||||
paths = [pkgs.ghostty];
|
||||
paths = [ghostty];
|
||||
nativeBuildInputs = [pkgs.makeWrapper];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/ghostty --add-flags "--config-file=${settingsFile}"
|
9
modules/programs/gui/module.nix
Normal file
9
modules/programs/gui/module.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
_: {
|
||||
imports = [
|
||||
./foot.nix
|
||||
./steam.nix
|
||||
# ./schizofox.nix
|
||||
./minecraft.nix
|
||||
./miniflux.nix
|
||||
];
|
||||
}
|
117
modules/programs/gui/schizofox/module.nix
Normal file
117
modules/programs/gui/schizofox/module.nix
Normal file
|
@ -0,0 +1,117 @@
|
|||
{
|
||||
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
|
||||
loadInNixShell = true;
|
||||
|
||||
enableBashIntegration = false;
|
||||
enableFishIntegration = false;
|
||||
enableBashIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
3
modules/programs/other/module.nix
Normal file
3
modules/programs/other/module.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
_: {
|
||||
imports = [./direnv.nix ./nix-index.nix];
|
||||
}
|
3
modules/programs/tui/module.nix
Normal file
3
modules/programs/tui/module.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
_: {
|
||||
imports = [./btop.nix];
|
||||
}
|
22
modules/programs/tui/zellij/zellij-good-scrolling.patch
Normal file
22
modules/programs/tui/zellij/zellij-good-scrolling.patch
Normal file
|
@ -0,0 +1,22 @@
|
|||
--- 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,6 +26,23 @@ in {
|
|||
ExecStart = "${getExe' pkgs.owncloud-client "owncloud"}";
|
||||
Restart = "always";
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
39
modules/services/plausible/module.nix
Normal file
39
modules/services/plausible/module.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
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}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
119
modules/services/searxng/module.nix
Normal file
119
modules/services/searxng/module.nix
Normal file
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
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
|
||||
;
|
||||
|
||||
# inherit fancy-iosevka;
|
||||
inherit fancy-iosevka;
|
||||
};
|
||||
fontDir = {
|
||||
# Whether to create a directory with links to all fonts in
|
7
modules/style/module.nix
Normal file
7
modules/style/module.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
_: {
|
||||
imports = [
|
||||
./colors.nix
|
||||
./fonts.nix
|
||||
./gtk.nix
|
||||
];
|
||||
}
|
|
@ -20,9 +20,9 @@ Singleton {
|
|||
}
|
||||
|
||||
readonly property QtObject border: QtObject {
|
||||
readonly property int thickness: 0
|
||||
readonly property int thickness: 8
|
||||
readonly property color color: "#1e1e2e"
|
||||
readonly property int rounding: 0
|
||||
readonly property int rounding: 25
|
||||
}
|
||||
|
||||
readonly property QtObject catppuccin: QtObject {
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
|
||||
PanelWindow {
|
||||
id: root
|
||||
|
||||
exclusionMode: ExclusionMode.Ignore
|
||||
WlrLayershell.layer: WlrLayer.Background
|
||||
WlrLayershell.namespace: "shell:background"
|
||||
|
||||
anchors {
|
||||
top: true
|
||||
bottom: true
|
||||
left: true
|
||||
right: true
|
||||
}
|
||||
|
||||
Item {
|
||||
id: background
|
||||
anchors.fill: parent
|
||||
Image {
|
||||
id: image
|
||||
asynchronous: true
|
||||
source: "../../../wholefoods.png"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,13 +2,16 @@ pragma ComponentBehavior: Bound
|
|||
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
import Quickshell.Services.Notifications
|
||||
import QtQuick
|
||||
import QtQuick.Effects
|
||||
|
||||
import "../bar"
|
||||
import "../volume"
|
||||
import "../notifications"
|
||||
|
||||
import "../../services"
|
||||
import "../../config"
|
||||
import "../"
|
||||
|
||||
Variants {
|
||||
model: Quickshell.screens
|
||||
|
@ -46,10 +49,10 @@ Variants {
|
|||
|
||||
// Setting the intersection mode to Xor will invert the mask and make everything in the mask region not clickable and pass through clicks inside it through the window.
|
||||
intersection: Intersection.Xor
|
||||
// Region {
|
||||
// item: volume
|
||||
// intersection: Intersection.Subtract
|
||||
// }
|
||||
Region {
|
||||
item: volume
|
||||
intersection: Intersection.Subtract
|
||||
}
|
||||
}
|
||||
|
||||
anchors {
|
||||
|
@ -85,16 +88,17 @@ Variants {
|
|||
id: bar
|
||||
screen: scope.modelData
|
||||
}
|
||||
}
|
||||
BackgroundImage {
|
||||
id: backgroundimage
|
||||
screen: scope.modelData
|
||||
}
|
||||
BackgroundImage {
|
||||
id: background_overview
|
||||
screen: scope.modelData
|
||||
|
||||
WlrLayershell.namespace: "shell:background-overview"
|
||||
// VolumeSlider {
|
||||
// id: volume
|
||||
// screen: scope.modelData
|
||||
// }
|
||||
|
||||
// Hover {
|
||||
// id: hover
|
||||
// screen: scope.modelData
|
||||
// bar: bar
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 3.2 MiB |
3
modules/system/hardware/cpu/module.nix
Normal file
3
modules/system/hardware/cpu/module.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
_: {
|
||||
imports = [./intel.nix];
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
_: {
|
||||
services.irqbalance.enable = true;
|
||||
}
|
10
modules/system/hardware/module.nix
Normal file
10
modules/system/hardware/module.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
_: {
|
||||
imports = [
|
||||
./bluetooth.nix
|
||||
./keyboard
|
||||
./graphics.nix
|
||||
./power.nix
|
||||
];
|
||||
|
||||
services.irqbalance.enable = true;
|
||||
}
|
14
modules/system/module.nix
Normal file
14
modules/system/module.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{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,6 +10,8 @@
|
|||
inherit (lib.modules) mkForce;
|
||||
in {
|
||||
imports = [
|
||||
./documentation.nix # nixos documentation
|
||||
./nixpkgs.nix # global nixpkgs configuration
|
||||
inputs.determinate.nixosModules.default
|
||||
];
|
||||
|
|
@ -1,6 +1,11 @@
|
|||
{config, ...}: let
|
||||
inherit (config.modules.other.system) username;
|
||||
in {
|
||||
imports = [
|
||||
./networkmanager.nix
|
||||
./dns.nix
|
||||
./firewall.nix
|
||||
];
|
||||
networking = {
|
||||
enableIPv6 = true;
|
||||
|
|
@ -1,4 +1,8 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./sudo.nix
|
||||
];
|
||||
|
||||
security = {
|
||||
polkit = {
|
||||
enable = true;
|
125
modules/wms/wayland/hyprland/binds.nix
Normal file
125
modules/wms/wayland/hyprland/binds.nix
Normal file
|
@ -0,0 +1,125 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
};
|
||||
}
|
70
modules/wms/wayland/hyprland/decorations.nix
Normal file
70
modules/wms/wayland/hyprland/decorations.nix
Normal file
|
@ -0,0 +1,70 @@
|
|||
_: {
|
||||
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"
|
||||
];
|
||||
};
|
||||
}
|
36
modules/wms/wayland/hyprland/exec.nix
Normal file
36
modules/wms/wayland/hyprland/exec.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
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"}"
|
||||
];
|
||||
};
|
||||
}
|
58
modules/wms/wayland/hyprland/module.nix
Normal file
58
modules/wms/wayland/hyprland/module.nix
Normal file
|
@ -0,0 +1,58 @@
|
|||
{
|
||||
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"];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
89
modules/wms/wayland/hyprland/settings.nix
Normal file
89
modules/wms/wayland/hyprland/settings.nix
Normal file
|
@ -0,0 +1,89 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
48
modules/wms/wayland/hyprland/workspaces.nix
Normal file
48
modules/wms/wayland/hyprland/workspaces.nix
Normal file
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
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"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -4,9 +4,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.modules) mkForce mkIf;
|
||||
inherit (lib.options) mkEnableOption;
|
||||
inherit (lib.lists) optional;
|
||||
in {
|
||||
imports = [
|
||||
./variables.nix
|
||||
];
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
# Sets environment variable NIXOS_XDG_OPEN_USE_PORTAL to 1.
|
||||
|
@ -43,7 +48,8 @@ in {
|
|||
"org.freedesktop.impl.portal.FileChooser" = ["kde"];
|
||||
};
|
||||
};
|
||||
};
|
||||
environment.variables = {
|
||||
configPackages = [
|
||||
# pkgs.niri
|
||||
];
|
||||
};
|
||||
}
|
|
@ -66,7 +66,6 @@ layout {
|
|||
default-column-width {
|
||||
proportion 0.5
|
||||
}
|
||||
background-color "transparent"
|
||||
}
|
||||
// xwayland stuff
|
||||
spawn-at-startup "xwayland-satellite"
|
||||
|
@ -74,6 +73,8 @@ spawn-at-startup "avizo-service"
|
|||
spawn-at-startup "keepassxc"
|
||||
spawn-at-startup "startxfce4"
|
||||
spawn-at-startup "bash" "-c" "quickshell --path ~/repos/projects/nichts/modules/style/quickshell/shell"
|
||||
spawn-at-startup "swww-daemon"
|
||||
spawn-at-startup "swww-daemon" "--namespace" "overview"
|
||||
environment {
|
||||
DISPLAY ":0"
|
||||
}
|
||||
|
@ -92,8 +93,27 @@ overview {
|
|||
zoom 0.65
|
||||
backdrop-color "#777777"
|
||||
}
|
||||
workspace "main"
|
||||
workspace "scratch"
|
||||
workspace "browser"
|
||||
workspace "social"
|
||||
workspace "keepassxc"
|
||||
workspace "infra"
|
||||
workspace "multimedia"
|
||||
animations {
|
||||
// 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 {
|
||||
match app-id="unset"
|
||||
|
@ -107,14 +127,20 @@ window-rule {
|
|||
match app-id="org.freedesktop.impl.portal.desktop.kde"
|
||||
open-floating true
|
||||
}
|
||||
window-rule {
|
||||
draw-border-with-background false
|
||||
}
|
||||
|
||||
// Fix discord screencasting
|
||||
debug {
|
||||
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 {
|
||||
skip-at-startup
|
||||
}
|
||||
|
@ -127,6 +153,9 @@ binds {
|
|||
Mod+Shift+Slash {
|
||||
show-hotkey-overlay
|
||||
}
|
||||
// Mod+Return {
|
||||
// spawn "foot"
|
||||
// }
|
||||
Mod+Return {
|
||||
spawn "ghostty"
|
||||
}
|
||||
|
@ -375,6 +404,9 @@ binds {
|
|||
Mod+C {
|
||||
center-column
|
||||
}
|
||||
Mod+X {
|
||||
focus-workspace "keepassxc"
|
||||
}
|
||||
Mod+Minus {
|
||||
set-column-width "-10%"
|
||||
}
|
||||
|
@ -407,13 +439,9 @@ binds {
|
|||
Ctrl+Print {
|
||||
screenshot-screen
|
||||
}
|
||||
// Alt+Print {
|
||||
// spawn "sh" "-c" ""
|
||||
// }
|
||||
Mod+T {
|
||||
screenshot
|
||||
Alt+Print {
|
||||
screenshot
|
||||
}
|
||||
// "$mainMod, T, exec, ${getExe pkgs.grimblast} save area - | ${getExe pkgs.tesseract} - - | ${getExe' pkgs.wl-clipboard "wl-copy"}"
|
||||
Mod+Escape allow-inhibiting=false {
|
||||
toggle-keyboard-shortcuts-inhibit
|
||||
}
|
|
@ -1,15 +1,37 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkForce mkIf;
|
||||
inherit (lib.options) mkEnableOption;
|
||||
inherit (config.modules.system) isGraphical;
|
||||
|
||||
inherit (config.modules.system) isGraphical;
|
||||
cfg = config.modules.desktops.niri;
|
||||
|
||||
latestNightly = (inputs.rust-overlay.lib.mkRustBin {} pkgs).nightly.latest.default;
|
||||
rustPlatform = pkgs.makeRustPlatform {
|
||||
rustc = latestNightly;
|
||||
cargo = latestNightly;
|
||||
stdenv = pkgs.clangStdenv;
|
||||
};
|
||||
|
||||
new-swww = (pkgs.swww.override {inherit rustPlatform;}).overrideAttrs (prev: {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
inherit (prev.src) owner repo;
|
||||
rev = "805a355da574fed46e664606660e2499f02e2174";
|
||||
hash = "sha256-+sdV7NFueCeBLrsl7lrqzlG5tPNqDe/zlcIb8TYxQl8=";
|
||||
};
|
||||
doInstallCheck = false;
|
||||
|
||||
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
||||
inherit (new-swww) src;
|
||||
hash = "sha256-YH2gcy/8EtUmTHzwt38bBOFX3saN1wHIGQ5/eWqvSeM=";
|
||||
};
|
||||
});
|
||||
|
||||
patched-niri = pkgs.niri.overrideAttrs (prev: {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
inherit (prev.src) owner repo;
|
||||
|
@ -45,13 +67,8 @@ in {
|
|||
environment.etc."niri/config.kdl".source = ./config.kdl;
|
||||
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
xwayland-satellite
|
||||
avizo
|
||||
playerctl
|
||||
wl-clipboard
|
||||
;
|
||||
inherit (pkgs) xwayland-satellite avizo playerctl;
|
||||
inherit new-swww;
|
||||
};
|
||||
};
|
||||
}
|
7
modules/wms/wayland/sway/module.nix
Normal file
7
modules/wms/wayland/sway/module.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}
|
|
@ -9,7 +9,7 @@
|
|||
cfg = config.modules.wms.wayland;
|
||||
in {
|
||||
options.modules.wms.wayland.enable = mkEnableOption "wayland";
|
||||
config = mkIf true {
|
||||
config = mkIf cfg.enable {
|
||||
environment.variables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
__GL_GSYNC_ALLOWED = "0";
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue