Compare commits
86 Commits
8681424692
...
kde-x11-br
| Author | SHA1 | Date | |
|---|---|---|---|
| 2a543c6e93 | |||
| 89e04df44a | |||
| d0546b20ea | |||
| a652234c7c | |||
| b867dd12c4 | |||
| 2fc09a965a | |||
| e3d7538fa3 | |||
| d64b2f8d6d | |||
| 093623dad7 | |||
| f6c2c48c7d | |||
| b7c6a2fce5 | |||
| a692c1353d | |||
| 589eefd527 | |||
| 981d351744 | |||
| 0fae6cfc06 | |||
| 0b47961483 | |||
| 01a512e3fd | |||
| 631b28d399 | |||
| 96045f57c4 | |||
| 86d717fad1 | |||
| a7392b3c30 | |||
| e72154ab65 | |||
| 47acfb12ff | |||
| 8a7229cea8 | |||
| 123b55cdf1 | |||
| e4cd967f06 | |||
| 715c3c07b5 | |||
| 64a464af49 | |||
| 5c710e0cb6 | |||
| 26554b8261 | |||
| 75cecb0386 | |||
| 3d8f717c7a | |||
| 5807e0076a | |||
| f80b6295ac | |||
| eb90b797df | |||
| ed06b07960 | |||
| bf7f6a1218 | |||
| 6d0f92fad6 | |||
| 164ed80931 | |||
| 4a9a71bad1 | |||
| b9da82b956 | |||
| bb596a794e | |||
| 476cab8c9d | |||
| d57aeb9ef3 | |||
| aaba57ee2f | |||
| 2332cc1e9d | |||
| df06c641c2 | |||
| 2880272e2a | |||
| d3896b5817 | |||
| 522d87f51d | |||
| 578f246519 | |||
| 271658bf4d | |||
| fbe9f8b3ec | |||
| 149641c87b | |||
| 21782c109e | |||
| 8ee971cbf8 | |||
| 1ed2b9c130 | |||
| 31102ae362 | |||
| 33893cafd8 | |||
| 61e41fca0a | |||
| b90bfdaed8 | |||
| 9eff6a3a6a | |||
| fbbd74bfae | |||
| fcf8efe577 | |||
| ec3d963494 | |||
| 82b9b48493 | |||
| e03b3d229d | |||
| 06a3b10079 | |||
| 613a9c5540 | |||
| 0c754590f1 | |||
| 5474251a64 | |||
| dd1aa0957e | |||
| ddce79071d | |||
| fd8f18eeec | |||
| 501e35ae45 | |||
| 65fc0ace0e | |||
| dc8f70b344 | |||
| 5cc90d85f7 | |||
| 75491e90e7 | |||
| 819b81d8d2 | |||
| fe4f291ef8 | |||
| da46fc7eca | |||
| 58206b4c80 | |||
| 1e02adf3cf | |||
| 15b75b0010 | |||
| 6d34c7dbd0 |
264
flake.lock
generated
264
flake.lock
generated
@@ -9,11 +9,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767520119,
|
||||
"narHash": "sha256-+OmNQLA9Fv5WBaxYHlPghS9XmnYWDaLt+AatCGhG+hc=",
|
||||
"lastModified": 1779903856,
|
||||
"narHash": "sha256-uRShMtD6xW3ZKZbCQ6sDzKWEnbBXUg3IGfOARYogKhg=",
|
||||
"owner": "ezKEa",
|
||||
"repo": "aagl-gtk-on-nix",
|
||||
"rev": "5720d3282844b6b23b26dfac075a5f1f58ea8844",
|
||||
"rev": "50671fc7f29d686f63ef34b603320d44ad7f2d29",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -43,6 +43,38 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cachyos-kernel": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1779781360,
|
||||
"narHash": "sha256-02SR7VL4wc57NCVMhyVgz6/SVfyGv7mc4h+SmgR2I8g=",
|
||||
"owner": "CachyOS",
|
||||
"repo": "linux-cachyos",
|
||||
"rev": "c7cb822e8ee91d993052becf2661b6f26f98eaa2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "CachyOS",
|
||||
"repo": "linux-cachyos",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cachyos-kernel-patches": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1779618819,
|
||||
"narHash": "sha256-/cGZZCyJZS1QATHi+/2Q32NkjrYN2N2PpgFP8Ak4FJc=",
|
||||
"owner": "CachyOS",
|
||||
"repo": "kernel-patches",
|
||||
"rev": "668b466fb461409329425b50c4a9d8d2c022a739",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "CachyOS",
|
||||
"repo": "kernel-patches",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1754269165,
|
||||
@@ -61,11 +93,11 @@
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1761588595,
|
||||
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -93,11 +125,27 @@
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1765121682,
|
||||
"narHash": "sha256-4VBOP18BFeiPkyhy9o4ssBNQEvfvv1kXkasAYd0+rrA=",
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_4": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "65f23138d8d09a92e30f1e5c87611b23ef451bf3",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -106,7 +154,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_4": {
|
||||
"flake-compat_5": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1650374568,
|
||||
@@ -143,6 +191,24 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1778716662,
|
||||
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
@@ -182,7 +248,7 @@
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1694529238,
|
||||
@@ -205,11 +271,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728511087,
|
||||
"narHash": "sha256-CvO74jwMjUUPySy0QCt7sPImbxKlhWcSAet93Fkt6iU=",
|
||||
"lastModified": 1771895942,
|
||||
"narHash": "sha256-2G212O6uoBCjmyIBux/Kfy/FVlsAY+3mTT4JRstYRZ0=",
|
||||
"owner": "local-interloper",
|
||||
"repo": "game-of-life",
|
||||
"rev": "c39d37e394f5da79a6a7d198e1d7e505aa5298a7",
|
||||
"rev": "dd5cba5d873ece0ca5c8a7d74243b3b0199a2194",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -247,11 +313,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768434960,
|
||||
"narHash": "sha256-cJbFn17oyg6qAraLr+NVeNJrXsrzJdrudkzI4H2iTcg=",
|
||||
"lastModified": 1779969295,
|
||||
"narHash": "sha256-HwIJ3tOcwSMiV75L7KqJXciXR9UfT+d7rwOZMX7cTnA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "b4d88c9ac42ae1a745283f6547701da43b6e9f9b",
|
||||
"rev": "61e2c9659324181e0f0ed911958c536333b1d4f6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -268,11 +334,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767104570,
|
||||
"narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=",
|
||||
"lastModified": 1778805320,
|
||||
"narHash": "sha256-nGFJ01m2CTBKD4ABtcY4vLhHrRN91LKr/pn41PcU78A=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf",
|
||||
"rev": "9846abe15e7d0d36b8acbd4d05f2b87461744c92",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -281,27 +347,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"kwin-effects-forceblur": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755098995,
|
||||
"narHash": "sha256-6FN7XEf27DenQHDIKjrjOW3tGIaJlyqRlXarmt1v+M0=",
|
||||
"owner": "taj-ny",
|
||||
"repo": "kwin-effects-forceblur",
|
||||
"rev": "51a1d49d7fd7df3ce40ccf6ba4c4410cf6f510e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "taj-ny",
|
||||
"repo": "kwin-effects-forceblur",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
@@ -328,19 +373,42 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-cachyos-kernel": {
|
||||
"inputs": {
|
||||
"cachyos-kernel": "cachyos-kernel",
|
||||
"cachyos-kernel-patches": "cachyos-kernel-patches",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1779910731,
|
||||
"narHash": "sha256-BSu/X9EyAyAPOjXsuwED4j4IeduP/5KVjTwiQSLkdik=",
|
||||
"owner": "xddxdd",
|
||||
"repo": "nix-cachyos-kernel",
|
||||
"rev": "a2cdbecf6abb1a1180bf9fe5c3028125416621f1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "xddxdd",
|
||||
"ref": "release",
|
||||
"repo": "nix-cachyos-kernel",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-wsl": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-compat": "flake-compat_4",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768404695,
|
||||
"narHash": "sha256-eT3dNE2CQYcPDHaeRZAEFrZ0BmMq2wLxMp7hCmzOZBA=",
|
||||
"lastModified": 1777732699,
|
||||
"narHash": "sha256-2uX/XtOWZ/oy2rerRynVhqVA//ZXZ3Fo60PikLHEPQc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "d0d3636b9d174c4558e3bbb18e194d970505fed8",
|
||||
"rev": "5482f113fd31ebac131d1ebeb2ae90bf0d5e41f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -352,27 +420,42 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
"lastModified": 1779894193,
|
||||
"narHash": "sha256-2PixoQSj9hdtoXTu0ZxdI0cmAE6GUUjCODG+rtC1wDc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||
"rev": "a09ffe51cfdc37950f14286593605ce64f76cc93",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"ref": "nixos-unstable-small",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1777168982,
|
||||
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1768305791,
|
||||
"narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=",
|
||||
"lastModified": 1779560665,
|
||||
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e",
|
||||
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -414,26 +497,28 @@
|
||||
"anikki": "anikki",
|
||||
"game-of-life": "game-of-life",
|
||||
"home-manager": "home-manager",
|
||||
"kwin-effects-forceblur": "kwin-effects-forceblur",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"snowfall-lib": "snowfall-lib",
|
||||
"sops-nix": "sops-nix",
|
||||
"trilium-next-pr": "trilium-next-pr",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": [
|
||||
"aagl",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764470739,
|
||||
"narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=",
|
||||
"lastModified": 1777605393,
|
||||
"narHash": "sha256-Hjp0VOOHgHcTrX23iVvnfAudPcuCmfkfpQNFwv2v/ks=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a",
|
||||
"rev": "ff88db34cfa486fc4964a6991cab1678d82eee8c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -465,7 +550,7 @@
|
||||
},
|
||||
"snowfall-lib": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_4",
|
||||
"flake-compat": "flake-compat_5",
|
||||
"flake-utils-plus": "flake-utils-plus",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
@@ -492,11 +577,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768481291,
|
||||
"narHash": "sha256-NjKtkJraCZEnLHAJxLTI+BfdU//9coAz9p5TqveZwPU=",
|
||||
"lastModified": 1777944972,
|
||||
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
|
||||
"owner": "mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "e085e303dfcce21adcb5fec535d65aacb066f101",
|
||||
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -535,55 +620,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"trilium-next-pr": {
|
||||
"locked": {
|
||||
"lastModified": 1736678965,
|
||||
"narHash": "sha256-2A687i3Rq0/wqJVvpgaiRPWcfnBBuBhPjKaT8cnd7o0=",
|
||||
"owner": "FliegendeWurst",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4fcdf706929246476e52e960760b6643cb8395c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "FliegendeWurst",
|
||||
"ref": "trilium-next",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726560853,
|
||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager_2",
|
||||
@@ -592,11 +628,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768379550,
|
||||
"narHash": "sha256-z94S29l5V86h11LZbPIMbHTJyksDG63aqISsZkTTuJY=",
|
||||
"lastModified": 1779955179,
|
||||
"narHash": "sha256-cHrbJ8pZrsFWUTJVk7AxWiEg5eiZptPQxtT0YXMIENo=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "06f61b4e4f4f6ba8027c96a5611c63dc0db12b90",
|
||||
"rev": "c341e3f6516fb1286d25b99d34b111f93028ae87",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
24
flake.nix
24
flake.nix
@@ -30,10 +30,6 @@
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
trilium-next-pr = {
|
||||
url = "github:FliegendeWurst/nixpkgs/trilium-next";
|
||||
# Don't follow nixpkgs as this repo has its own pinned nixpkgs
|
||||
};
|
||||
anikki = {
|
||||
url = "github:Hion-V/Anikki-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -42,14 +38,15 @@
|
||||
url = "github:nix-community/lanzaboote/v0.4.3";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
kwin-effects-forceblur = {
|
||||
url = "github:taj-ny/kwin-effects-forceblur";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# kwin-effects-forceblur = { Archived.
|
||||
# url = "github:taj-ny/kwin-effects-forceblur";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# };
|
||||
aagl = {
|
||||
url = "github:ezKEa/aagl-gtk-on-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
|
||||
};
|
||||
|
||||
outputs = inputs:
|
||||
@@ -88,14 +85,21 @@
|
||||
lib.mkFlake {
|
||||
inherit inputs;
|
||||
src = ./.;
|
||||
|
||||
|
||||
overlays = with inputs; [
|
||||
# Use the exact kernel versions as defined in this repo.
|
||||
# Guarantees you have binary cache.
|
||||
nix-cachyos-kernel.overlays.pinned
|
||||
];
|
||||
|
||||
nixos = with inputs; [
|
||||
|
||||
# disko.nixosModules.disko
|
||||
# impermanence.nixosModules.impermanence
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useGlobalPkgs = false; # Disabled to allow system-level overlays to work
|
||||
useUserPackages = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ in
|
||||
packages = [
|
||||
pkgs.nil
|
||||
pkgs.beeper
|
||||
pkgs.mpv
|
||||
pkgs.my-namespace.udev-steelseries
|
||||
pkgs.qbittorrent
|
||||
pkgs.hyfetch
|
||||
@@ -31,7 +32,7 @@ in
|
||||
# pkgs.vesktop
|
||||
pkgs.obsidian
|
||||
inputs.zen-browser.packages.x86_64-linux.default
|
||||
inputs.kwin-effects-forceblur.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
# inputs.kwin-effects-forceblur.packages.${pkgs.stdenv.hostPlatform.system}.default # Archived.
|
||||
];
|
||||
};
|
||||
|
||||
@@ -40,7 +41,7 @@ in
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Wallpaper Engine
|
||||
Exec=${pkgs.my-namespace.linux-wallpaperengine}/bin/linux-wallpaperengine --screen-root DP-1 --bg 2935872330 --screen-root DP-2 --bg 2935872330
|
||||
Exec=${pkgs.my-namespace.linux-wallpaperengine}/bin/linux-wallpaperengine --screen-root DP-1 --bg 2935872330 --screen-root DP-2 --bg 2935872330 -f 12
|
||||
X-KDE-autostart-after=panel
|
||||
X-KDE-StartupNotify=false
|
||||
'';
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
inherit (lib.my-namespace) enabled;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# ../modules.nix
|
||||
];
|
||||
my-namespace.home = {
|
||||
stream-tools = enabled;
|
||||
# networking = enabled;
|
||||
# personal-apps = enabled;
|
||||
# suites.laptop = enabled;
|
||||
};
|
||||
home = {
|
||||
packages = [
|
||||
pkgs.nil
|
||||
pkgs.beeper
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs
|
||||
, config
|
||||
{ config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
|
||||
@@ -34,7 +34,7 @@ in
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
inetutils
|
||||
neofetch
|
||||
hyfetch
|
||||
tmux
|
||||
# nerdfonts
|
||||
p7zip
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
cfg = config.my-namespace.home.vesktop-appimage;
|
||||
vesktopVersion = "1.6.1";
|
||||
vesktopVersion = "1.6.4";
|
||||
|
||||
vesktopAppImage = pkgs.runCommand "vesktop-appimage" { } ''
|
||||
cp ${pkgs.fetchurl {
|
||||
url = "https://github.com/Vencord/Vesktop/releases/download/v${vesktopVersion}/Vesktop-${vesktopVersion}.AppImage";
|
||||
sha256 = "sha256-zK098H7iiOEe5y5YhgsUCPYVQQPcsnZw6/6q6Nx7h+w=";
|
||||
sha256 = "sha256-o7A8DBQyutONeLp5rstq9hQko2xxbvYZvGGM8/YOQ8s=";
|
||||
}} $out
|
||||
chmod +x $out
|
||||
'';
|
||||
|
||||
24
modules/nixos/cs-tools/default.nix
Normal file
24
modules/nixos/cs-tools/default.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ lib, pkgs, config, namespace, ... }:
|
||||
|
||||
let
|
||||
cfg = config.${namespace}.cs-tools;
|
||||
in
|
||||
{
|
||||
options.${namespace}.cs-tools = {
|
||||
enable = lib.mkEnableOption "CS tools including CS Demo Manager and PostgreSQL";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ "csdm" ];
|
||||
ensureUsers = [{
|
||||
name = "csdm";
|
||||
}];
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
my-namespace.cs-demo-manager
|
||||
postgresql
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -48,17 +48,64 @@ in {
|
||||
enable = true;
|
||||
};
|
||||
services.desktopManager.gnome.enable = true;
|
||||
services.gnome.gnome-remote-desktop.enable = true;
|
||||
systemd.services.gnome-remote-desktop = {
|
||||
wantedBy = [ "graphical.target" ]; # for starting the unit automatically at boot
|
||||
};
|
||||
services.displayManager.autoLogin.enable = false;
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
3389
|
||||
3390
|
||||
];
|
||||
|
||||
# users.users.andreas.extraGroups = [ "sambashare" ];
|
||||
# Enable Avahi (mDNS/DNS-SD) for discovery
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
# Enable GNOME sharing services
|
||||
services.gnome.gnome-user-share.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome-tweaks
|
||||
gnome-software
|
||||
gnomeExtensions.pop-shell
|
||||
gnome-remote-desktop
|
||||
glib-networking # Required gnome-remote-desktop dependency
|
||||
];
|
||||
systemd.user.services.gnome-remote-desktop.environment = {
|
||||
VK_ICD_FILENAMES = "/dev/null";
|
||||
LIBGL_ALWAYS_SOFTWARE = "1";
|
||||
};
|
||||
|
||||
systemd.services.gnome-remote-desktop.environment = {
|
||||
VK_ICD_FILENAMES = "/dev/null";
|
||||
LIBGL_ALWAYS_SOFTWARE = "1";
|
||||
};
|
||||
environment.sessionVariables.XDG_DATA_DIRS = lib.mkAfter [
|
||||
"${pkgs.gnome-remote-desktop}/share"
|
||||
];
|
||||
environment.pathsToLink = [
|
||||
"/share/gsettings-schemas"
|
||||
"/share"
|
||||
];
|
||||
})
|
||||
|
||||
(lib.mkIf cfg.kde.enable {
|
||||
services.xserver.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
environment.sessionVariables = {
|
||||
# Forces KWin to use the legacy DRM interface so "Allow Tearing" actually works
|
||||
# KWIN_DRM_NO_AMS = "1";
|
||||
# Disables the new triple buffering in Plasma 6.1+ to reduce latency
|
||||
# KWIN_DRM_DISABLE_TRIPLE_BUFFERING = "1";
|
||||
# KWIN_USE_HWCURSOR = "0";
|
||||
# KWIN_DRM_USE_EGL_STREAMS = "0";
|
||||
# MESA_VK_WSI_PRESENT_MODE = "immediate";
|
||||
# vblank_mode = "0";
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
kdePackages.qtwebsockets
|
||||
kdePackages.qtwebchannel
|
||||
|
||||
23
modules/nixos/file-organization/default.nix
Normal file
23
modules/nixos/file-organization/default.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
namespace,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.${namespace}.file-organization;
|
||||
in
|
||||
{
|
||||
options.${namespace}.file-organization = {
|
||||
enable = lib.mkEnableOption "file organization software";
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
ranger
|
||||
fsearch
|
||||
qdirstat
|
||||
veracrypt
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -43,7 +43,7 @@ in
|
||||
age
|
||||
wget
|
||||
sops
|
||||
bitwarden-desktop #replaced bitwarden
|
||||
# bitwarden-desktop #replaced bitwarden
|
||||
bitwarden-cli
|
||||
cowsay
|
||||
remmina
|
||||
|
||||
23
modules/nixos/performance-tuning/default.nix
Normal file
23
modules/nixos/performance-tuning/default.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{ config, lib, pkgs, namespace, ... }:
|
||||
|
||||
let
|
||||
cfg = config.${namespace}.performance-tuning;
|
||||
in {
|
||||
options.${namespace}.performance-tuning.enable = lib.mkEnableOption "performance tuning settings for gaming and general use";
|
||||
config = lib.mkIf cfg.enable {
|
||||
boot.kernelParams = [
|
||||
"nvme_core.default_ps_max_latency_us=0"
|
||||
];
|
||||
|
||||
boot.kernel.sysctl = {
|
||||
"vm.swappiness" = 10;
|
||||
"vm.dirty_ratio" = 10;
|
||||
"vm.dirty_background_ratio" = 5;
|
||||
};
|
||||
|
||||
services.pipewire.extraConfig.pipewire."context.properties" = {
|
||||
"default.clock.quantum" = 256;
|
||||
"default.clock.min-quantum" = 128;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -33,59 +33,52 @@
|
||||
lutris
|
||||
vkd3d
|
||||
dxvk
|
||||
corefonts
|
||||
protontricks
|
||||
mangohud
|
||||
vkbasalt
|
||||
gamescope
|
||||
corefonts
|
||||
];
|
||||
|
||||
hardware.uinput.enable = true;
|
||||
users.users.andreas.extraGroups = [ "input" ];
|
||||
|
||||
programs.gamescope.enable = true;
|
||||
programs.steam.gamescopeSession = {
|
||||
enable = true;
|
||||
args = [
|
||||
"-w" "1920"
|
||||
"-h" "1080"
|
||||
"-r" "172"
|
||||
"-e" # Enable steam integration
|
||||
"--steam"
|
||||
"--prefer-outpout DP-4"
|
||||
"--prefer-vk-device 8086:e20b" # lspci -nn | grep VGA
|
||||
];
|
||||
env = {
|
||||
# WLR_RENDERER = "vulkan";
|
||||
# DXVK_HDR = "0 ";
|
||||
# ENABLE_GAMESCOPE_WSI = "0";
|
||||
# WINE_FULLSCREEN_FSR = "1";
|
||||
# SDL_VIDEODRIVER = "wayland,x11"; # Games allegedly prefer X11
|
||||
};
|
||||
};
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
package = pkgs.steam.override {
|
||||
extraPkgs = pkgs: with pkgs; [
|
||||
gamemode
|
||||
noto-fonts-color-emoji
|
||||
];
|
||||
extraEnv = {
|
||||
# SDL_VIDEODRIVER = "wayland,x11";
|
||||
# SDL_VIDEODRIVER = "x11,wayland";
|
||||
};
|
||||
};
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||
|
||||
# gamescopeSession = {
|
||||
# enable = true;
|
||||
# env = {
|
||||
# WLR_RENDERER = "vulkan";
|
||||
# DXVK_HDR = "0 ";
|
||||
# ENABLE_GAMESCOPE_WSI = "0";
|
||||
# WINE_FULLSCREEN_FSR = "1";
|
||||
# # Games allegedly prefer X11
|
||||
# SDL_VIDEODRIVER = "x11";
|
||||
# };
|
||||
# args = [
|
||||
# "--xwayland-count 1"
|
||||
# "--expose-wayland"
|
||||
|
||||
# "-e" # Enable steam integration
|
||||
# "--steam"
|
||||
|
||||
# # "--adaptive-sync"
|
||||
# # "--hdr-enabled"
|
||||
# # "--hdr-itm-enable"
|
||||
|
||||
# # External monitor
|
||||
# "--prefer-output DP-3"
|
||||
# "--output-width 1920"
|
||||
# "--output-height 1080"
|
||||
# "-r 172"
|
||||
|
||||
# # Laptop display
|
||||
# # "--prefer-output eDP-1"
|
||||
# # "--output-width 2560"
|
||||
# # "--output-height 1600"
|
||||
# # "-r 120"
|
||||
|
||||
# # "--prefer-vk-device 10de:1b81" # lspci -nn | grep VGA
|
||||
# ];
|
||||
# };
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
final: prev: {
|
||||
mbedtls_2 = prev.mbedtls_2.overrideAttrs (oldAttrs: {
|
||||
doCheck = false; # Skip failing PSA crypto tests
|
||||
});
|
||||
|
||||
haxe = prev.haxe.overrideAttrs (oldAttrs: {
|
||||
buildInputs = (oldAttrs.buildInputs or []) ++ [ final.mbedtls_2 ];
|
||||
});
|
||||
}
|
||||
38
overlays/mesa-gcc/default.nix
Normal file
38
overlays/mesa-gcc/default.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{ ... }:
|
||||
|
||||
final: prev: {
|
||||
mesa = (prev.mesa.overrideAttrs (old: rec {
|
||||
version = "git-unstable-2026-05-07";
|
||||
src = prev.fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "mesa";
|
||||
repo = "mesa";
|
||||
rev = "0f75fa5bfd29770128a412f1fcf5c4121f95e1bb";
|
||||
hash = "sha256-9sqgro3Y+yctcueHEO0hNmySLNn9F1HP3lPqcIow0+k=";
|
||||
};
|
||||
patches = [];
|
||||
buildInputs = old.buildInputs ++ (with prev.llvmPackages_21; [
|
||||
clang-unwrapped
|
||||
libclang
|
||||
]);
|
||||
|
||||
# Create symlinks to clang libraries so meson can find them
|
||||
preConfigure = (old.preConfigure or "") + ''
|
||||
mkdir -p $NIX_BUILD_TOP/clang-libs
|
||||
for lib in ${prev.llvmPackages_21.clang-unwrapped.lib}/lib/*.a; do
|
||||
ln -sf "$lib" "$NIX_BUILD_TOP/clang-libs/"
|
||||
done
|
||||
export LIBRARY_PATH="$NIX_BUILD_TOP/clang-libs:''${LIBRARY_PATH:-}"
|
||||
export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
|
||||
'';
|
||||
|
||||
mesonFlags =
|
||||
(builtins.filter (flag:
|
||||
!(prev.lib.hasPrefix "-Dclang-libdir=" flag) &&
|
||||
flag != "--sysconfdir=/etc"
|
||||
) old.mesonFlags) ++ [
|
||||
"-Dsysconfdir=${placeholder "out"}/etc"
|
||||
] ++ (if prev.stdenv.hostPlatform.is64bit then [ "-Dintel-rt=enabled" ] else [ "-Dintel-rt=disabled" ]);
|
||||
}));
|
||||
}
|
||||
|
||||
7
overlays/openldap-testfailure-fix/default.nix
Normal file
7
overlays/openldap-testfailure-fix/default.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ ... }:
|
||||
|
||||
final: prev: {
|
||||
openldap = prev.openldap.overrideAttrs {
|
||||
doCheck = !prev.stdenv.hostPlatform.isi686;
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
final: prev: {
|
||||
synergy = prev.synergy.overrideAttrs (oldAttrs: {
|
||||
postPatch = (oldAttrs.postPatch or "") + ''
|
||||
# Fix deprecated Qt endl usage in QTextStream contexts only
|
||||
# Don't touch cerr/cout which use std::endl
|
||||
find . -name "*.cpp" -type f -exec sed -i \
|
||||
's/\(outStream.*<<.*\)endl/\1Qt::endl/g; s/\(QTextStream.*<<.*\)endl/\1Qt::endl/g' {} +
|
||||
find . -name "*.h" -type f -exec sed -i \
|
||||
's/\(outStream.*<<.*\)endl/\1Qt::endl/g; s/\(QTextStream.*<<.*\)endl/\1Qt::endl/g' {} +
|
||||
|
||||
# Fix missing SIZE_MAX include
|
||||
sed -i '/#include <cstring>/a#include <cstdint>' src/lib/server/InputFilter.cpp
|
||||
'';
|
||||
});
|
||||
}
|
||||
43
packages/cs-demo-manager/default.nix
Normal file
43
packages/cs-demo-manager/default.nix
Normal file
@@ -0,0 +1,43 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, appimageTools
|
||||
, postgresql
|
||||
, procps
|
||||
, ...
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "cs-demo-manager";
|
||||
version = "3.18.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/akiver/cs-demo-manager/releases/download/v${version}/CS-Demo-Manager-${version}.AppImage";
|
||||
hash = "sha256-REEhqvfYSKD7EyIYJVlbkQu0h5FZcofc8X7Zhu1xZnA="; # You need to add the hash after first build attempt
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit pname version src;
|
||||
};
|
||||
in
|
||||
appimageTools.wrapType2 {
|
||||
inherit pname version src;
|
||||
|
||||
extraPkgs = pkgs: [ postgresql procps ];
|
||||
|
||||
extraInstallCommands = ''
|
||||
install -m 444 -D ${appimageContents}/cs-demo-manager.desktop $out/share/applications/cs-demo-manager.desktop
|
||||
install -m 444 -D ${appimageContents}/cs-demo-manager.png $out/share/icons/hicolor/512x512/apps/cs-demo-manager.png
|
||||
|
||||
substituteInPlace $out/share/applications/cs-demo-manager.desktop \
|
||||
--replace 'Exec=AppRun' 'Exec=${pname}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "An application to manage Counter-Strike demos";
|
||||
homepage = "https://github.com/akiver/cs-demo-manager";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
@@ -7,7 +7,7 @@ pkgs.mkShellNoCC {
|
||||
packages = with pkgs; [
|
||||
cowsay
|
||||
lolcat
|
||||
bitwarden-desktop #replaced bitwarden
|
||||
# bitwarden-desktop #replaced bitwarden
|
||||
bitwarden-cli
|
||||
sops
|
||||
];
|
||||
|
||||
@@ -2,16 +2,19 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware/hardware-configuration.nix
|
||||
];
|
||||
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
# boot.loader.systemd-boot.enable = true; # managed by lanzaboote
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
networking.hostName = "drivebystation-nix"; # Define your hostname.
|
||||
@@ -45,9 +48,9 @@
|
||||
services = {
|
||||
# Enable Gnome Session
|
||||
displayManager.gdm.enable = false;
|
||||
displayManager.sddm.enable = false;
|
||||
# displayManager.sddm.wayland.enable = true;
|
||||
displayManager.cosmic-greeter.enable = true;
|
||||
displayManager.sddm.enable = true;
|
||||
displayManager.sddm.wayland.enable = true;
|
||||
displayManager.cosmic-greeter.enable = false;
|
||||
displayManager.defaultSession = "gnome";
|
||||
|
||||
xserver = {
|
||||
@@ -88,7 +91,7 @@
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
@@ -125,7 +128,7 @@
|
||||
environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
(python312.withPackages (ps: with ps; [ websockets ]))
|
||||
(python3.withPackages (ps: with ps; [ websockets ]))
|
||||
sqlite
|
||||
javaPackages.compiler.openjdk25
|
||||
javaPackages.compiler.openjdk21
|
||||
@@ -135,6 +138,11 @@
|
||||
krita
|
||||
ntfs3g
|
||||
htop
|
||||
rivalcfg
|
||||
blender
|
||||
reaper
|
||||
discord
|
||||
betterdiscordctl
|
||||
];
|
||||
environment.etc."xdg/autostart/xwaylandvideobridge.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
@@ -152,6 +160,9 @@
|
||||
|
||||
services.gvfs.enable = true; # For file manager integration
|
||||
|
||||
# Enable udev rules for SteelSeries devices (rivalcfg)
|
||||
services.udev.packages = [ pkgs.rivalcfg ];
|
||||
|
||||
# Disable iBus (not needed unless using Asian input methods)
|
||||
i18n.inputMethod = {
|
||||
enable = false;
|
||||
@@ -160,13 +171,15 @@
|
||||
virtualisation.libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
package = pkgs.qemu_kvm;
|
||||
package = pkgs.qemu;
|
||||
runAsRoot = true;
|
||||
swtpm.enable = true;
|
||||
vhostUserPackages = [ pkgs.virtiofsd ];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
@@ -181,18 +194,67 @@
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# Open ports in the .
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
24800 #Synergy
|
||||
53317 #localsend
|
||||
3390 #rdp
|
||||
9090
|
||||
8000
|
||||
40122
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
24800 #Synergy
|
||||
53317 #localsend
|
||||
3390 #rdp
|
||||
9090
|
||||
8000
|
||||
40122
|
||||
];
|
||||
networking.firewall.trustedInterfaces = [ "virbr0" ];
|
||||
networking.nat = {
|
||||
enable = true;
|
||||
internalInterfaces = [ "virbr0" ];
|
||||
externalInterface = "enp75s0";
|
||||
extraCommands = ''
|
||||
# MASQUERADE forwarded traffic to VM so it knows how to route back
|
||||
iptables -t nat -A nixos-nat-post -o virbr0 -j MASQUERADE
|
||||
'';
|
||||
forwardPorts = [
|
||||
{
|
||||
sourcePort = 9090;
|
||||
proto = "tcp";
|
||||
destination = "192.168.122.113:9090";
|
||||
}
|
||||
{
|
||||
sourcePort = 9090;
|
||||
proto = "udp";
|
||||
destination = "192.168.122.113:9090";
|
||||
}
|
||||
];
|
||||
};
|
||||
services.mullvad-vpn.enable = true;
|
||||
services.mullvad-vpn.package = pkgs.mullvad-vpn;
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-color-emoji
|
||||
];
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
|
||||
defaultFonts = {
|
||||
sansSerif = [ "DejaVu Sans" "Noto Color Emoji" ];
|
||||
serif = [ "DejaVu Serif" "Noto Color Emoji" ];
|
||||
monospace = [ "DejaVu Sans Mono" "Noto Color Emoji" ];
|
||||
emoji = [ "Noto Color Emoji" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
|
||||
@@ -10,23 +10,23 @@
|
||||
inputs,
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
# The namespace used for your flake, defaulting to "internal" if not set.
|
||||
namespace,
|
||||
# namespace,
|
||||
# The system architecture for this host (eg. `x86_64-linux`).
|
||||
system,
|
||||
# system,
|
||||
# The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||
target,
|
||||
# target,
|
||||
# A normalized name for the system target (eg. `iso`).
|
||||
format,
|
||||
# format,
|
||||
# A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||
virtual,
|
||||
# virtual,
|
||||
# An attribute map of your defined hosts.
|
||||
systems,
|
||||
# systems,
|
||||
# All other arguments come from the system system.
|
||||
config
|
||||
, ...
|
||||
# config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib.my-namespace) enabled;
|
||||
# inherit (lib.my-namespace) systemPackages;
|
||||
inherit pkgs;
|
||||
installedPackages = lib.my-namespace.mkPackages pkgs;
|
||||
in
|
||||
@@ -45,10 +45,15 @@ in
|
||||
my-namespace.desktop-environment.xfce.enable = true;
|
||||
my-namespace.desktop-environment.gnome.enable = true;
|
||||
my-namespace.desktop-environment.kde.enable = true;
|
||||
my-namespace.desktop-environment.hyprland.enable = true;
|
||||
my-namespace.desktop-environment.cosmic.enable = true;
|
||||
my-namespace.performance-tuning.enable = true;
|
||||
my-namespace.file-organization.enable = true;
|
||||
# GNOME-keyring
|
||||
my-namespace.gnome-keyring.enable = true;
|
||||
|
||||
# CS Tools
|
||||
my-namespace.cs-tools.enable = true;
|
||||
|
||||
users.users.andreas = {
|
||||
isNormalUser = true;
|
||||
description = "Andreas Schaafsma";
|
||||
@@ -61,10 +66,9 @@ in
|
||||
"gamemode"
|
||||
];
|
||||
packages = with pkgs; [
|
||||
# Packages from inputs
|
||||
# Packages from inputsq
|
||||
inputs.game-of-life.packages.x86_64-linux.default
|
||||
inputs.zen-browser.packages.x86_64-linux.default
|
||||
inputs.trilium-next-pr.legacyPackages.x86_64-linux.trilium-next-desktop
|
||||
inputs.anikki.packages.x86_64-linux.default
|
||||
# We want flatpak support
|
||||
flatpak
|
||||
@@ -78,8 +82,10 @@ in
|
||||
trilium-desktop
|
||||
terraform
|
||||
virt-manager
|
||||
nil
|
||||
# thunderbird
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
programs.anime-game-launcher.enable = true; # Adds launcher and /etc/hosts rules
|
||||
@@ -93,26 +99,21 @@ in
|
||||
# Open ports in the firewall.
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
59010 #SoundWireServer
|
||||
5001
|
||||
11434
|
||||
3389 #RDP
|
||||
22 #ssh
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
59010 #SoundWireServer
|
||||
5001
|
||||
11434
|
||||
3389 #RDP
|
||||
22 #ssh
|
||||
];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
programs.gamescope.enable = true;
|
||||
programs.steam.gamescopeSession = {
|
||||
enable = true;
|
||||
args = [
|
||||
"-w" "1920"
|
||||
"-h" "1080"
|
||||
"-r" "172"
|
||||
networking.firewall.enable = false;
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
@@ -130,7 +131,6 @@ in
|
||||
mangohud
|
||||
my-namespace.udev-steelseries
|
||||
my-namespace.hello
|
||||
kde-rounded-corners
|
||||
my-namespace.linux-wallpaperengine
|
||||
|
||||
(pkgs.writeShellScriptBin "switch-to-desktop" ''
|
||||
@@ -141,26 +141,30 @@ in
|
||||
# End the session cleanly
|
||||
loginctl terminate-session "$XDG_SESSION_ID"
|
||||
'')
|
||||
|
||||
(pkgs.writeShellScriptBin "steamos-session-select" ''
|
||||
#!/bin/sh
|
||||
exec switch-to-desktop
|
||||
'')
|
||||
|
||||
# Vulkan packages for Steam
|
||||
pkgs.mesa
|
||||
pkgs.vulkan-loader
|
||||
pkgs.vulkan-validation-layers
|
||||
pkgs.vulkan-extension-layer
|
||||
pkgs.vulkan-tools
|
||||
pkgs.libva
|
||||
pkgs.libva-utils
|
||||
mesa
|
||||
vulkan-loader
|
||||
vulkan-validation-layers
|
||||
vulkan-extension-layer
|
||||
vulkan-tools
|
||||
libva
|
||||
libva-utils
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
]
|
||||
++ installedPackages.packages;
|
||||
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
package = pkgs.nix-ld; #replaces nix-ld-rs
|
||||
};
|
||||
|
||||
services.flatpak.enable = true;
|
||||
systemd.services.flatpak-repo = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@@ -188,6 +192,7 @@ in
|
||||
|
||||
# Disable the GNOME3/GDM auto-suspend feature that cannot be disabled in GUI!
|
||||
# If no user is logged in, the machine will power down after 20 minutes.
|
||||
|
||||
systemd.targets.sleep.enable = false;
|
||||
systemd.targets.suspend.enable = false;
|
||||
systemd.targets.hibernate.enable = false;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
# boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/edid.bin,DP-2:edid/edid.bin,DP-3:edid/edid.bin,DP-4:edid/edid.bin" ];
|
||||
boot.kernelParams = [ "drm.edid_firmware=DP-2:edid/edid.bin" ];
|
||||
boot.kernelParams = [
|
||||
"drm.edid_firmware=DP-2:edid/edid.bin,DP-4:edid/edid.bin"
|
||||
];
|
||||
|
||||
|
||||
hardware.firmware = [
|
||||
|
||||
Binary file not shown.
BIN
systems/x86_64-linux/drivebystation-nix/hardware/firmware/U32J59x-edid.bin
Executable file
BIN
systems/x86_64-linux/drivebystation-nix/hardware/firmware/U32J59x-edid.bin
Executable file
Binary file not shown.
@@ -18,11 +18,16 @@
|
||||
boot.kernelParams = [
|
||||
"console=tty0"
|
||||
# "efifb=off"
|
||||
# "xe.force_probe=*"
|
||||
"xe.force_probe=e20b"
|
||||
# Xe stability improvements for B580
|
||||
"xe.guc_log_level=0" # Reduce GuC logging overhead
|
||||
"xe.enable_display=1" # Ensure display is enabled
|
||||
# Memory/performance parameters
|
||||
"mitigations=off" # Disable CPU mitigations for better performance
|
||||
"module_blacklist=nouveau,nvidia,nvidia_drm,nvidia_modeset,nvidia_uvm"
|
||||
];
|
||||
|
||||
environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json";
|
||||
services.switcherooControl.enable = true;
|
||||
# environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json";
|
||||
hardware.intel-gpu-tools.enable = true;
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
@@ -33,6 +38,7 @@
|
||||
vpl-gpu-rt # oneVPL runtime
|
||||
intel-vaapi-driver # fallback
|
||||
intel-compute-runtime # OpenCL/Level Zero
|
||||
level-zero # Level Zero API for compute
|
||||
];
|
||||
};
|
||||
|
||||
@@ -47,11 +53,42 @@
|
||||
"nvidia_uvm"
|
||||
];
|
||||
|
||||
# Mark Arc B580 as a discrete Intel GPU for switcheroo-control and
|
||||
# keep runtime PCI power management enabled for the device.
|
||||
services.udev.extraRules = ''
|
||||
ACTION=="add|bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0xe20b", TEST=="power/control", ATTR{power/control}="auto"
|
||||
SUBSYSTEM=="drm", DRIVERS=="xe", ATTRS{vendor}=="0x8086", ATTRS{device}=="0xe20b", TAG+="switcheroo-discrete-gpu"
|
||||
'';
|
||||
|
||||
environment.variables = {
|
||||
# Force Intel GPU for all graphics operations
|
||||
KWIN_DRM_DEVICES = "/dev/dri/card0";
|
||||
|
||||
# Vulkan/DXVK optimizations for B580
|
||||
ANV_ENABLE_PIPELINE_CACHE = "1";
|
||||
|
||||
# Shader cache settings
|
||||
MESA_SHADER_CACHE_DISABLE = "false";
|
||||
MESA_SHADER_CACHE_MAX_SIZE = "10G";
|
||||
|
||||
# DXVK optimizations
|
||||
DXVK_HUD = "compiler"; # Monitor shader compilation
|
||||
# DXVK_ASYNC = "1"; # Enable if you want async shader compilation (may cause issues)
|
||||
|
||||
# Intel IPEX / PyTorch settings
|
||||
ZE_ENABLE_ALT_DRIVERS = "libze_intel_gpu.so.1"; # Enable Intel GPU driver for Level Zero
|
||||
SYCL_CACHE_PERSISTENT = "1"; # Enable persistent SYCL cache
|
||||
SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS = "1"; # Performance optimization
|
||||
};
|
||||
|
||||
|
||||
############################
|
||||
## LACT Settings for Overclocking
|
||||
############################
|
||||
|
||||
services.lact.enable = true;
|
||||
|
||||
|
||||
|
||||
############################
|
||||
## X / Wayland GPU Drivers
|
||||
@@ -79,4 +116,18 @@
|
||||
## User Access
|
||||
############################
|
||||
users.users.andreas.extraGroups = [ "video" "render" ];
|
||||
|
||||
############################
|
||||
## System Packages for AI/ML
|
||||
############################
|
||||
environment.systemPackages = with pkgs; [
|
||||
intel-compute-runtime
|
||||
level-zero
|
||||
# For checking GPU compute capabilities
|
||||
clinfo
|
||||
vulkan-tools
|
||||
];
|
||||
services.xserver.deviceSection = ''
|
||||
Option "TearFree" "false"
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
############################
|
||||
## Display + Mesa Settings
|
||||
############################
|
||||
|
||||
# hardware.enableRedistributableFirmware = true;
|
||||
|
||||
hardware.firmware = [
|
||||
pkgs.linux-firmware
|
||||
# pkgs.firmwareLinuxNonfree
|
||||
# pkgs.firmwareLinuxStrict
|
||||
# pkgs.firmwareLinuxLatest
|
||||
];
|
||||
|
||||
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.kernelParams = [
|
||||
"console=tty0"
|
||||
# "efifb=off"
|
||||
# "xe.force_probe=*"
|
||||
"module_blacklist=nouveau,nvidia,nvidia_drm,nvidia_modeset,nvidia_uvm"
|
||||
];
|
||||
|
||||
# environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json";
|
||||
hardware.intel-gpu-tools.enable = true;
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver # Intel VAAPI
|
||||
vpl-gpu-rt # oneVPL runtime
|
||||
intel-vaapi-driver # fallback
|
||||
intel-compute-runtime # OpenCL/Level Zero
|
||||
];
|
||||
};
|
||||
|
||||
# Ensure Arc driver is available (usually auto-loaded)
|
||||
boot.kernelModules = [ "i915" ];
|
||||
# Blacklist everything for nvidia
|
||||
boot.blacklistedKernelModules = [
|
||||
"nouveau"
|
||||
"nvidia"
|
||||
"nvidia_drm"
|
||||
"nvidia_modeset"
|
||||
"nvidia_uvm"
|
||||
"xe"
|
||||
];
|
||||
|
||||
environment.variables = {
|
||||
KWIN_DRM_DEVICES = "/dev/dri/card0";
|
||||
};
|
||||
|
||||
|
||||
############################
|
||||
## LACT Settings for Overclocking
|
||||
############################
|
||||
|
||||
services.lact.enable = true;
|
||||
|
||||
|
||||
|
||||
############################
|
||||
## X / Wayland GPU Drivers
|
||||
############################
|
||||
|
||||
# Enable modesetting driver for X11 (required for Intel Xe)
|
||||
services.xserver.videoDrivers = [
|
||||
"modesetting"
|
||||
#"intel"
|
||||
];
|
||||
|
||||
services.xserver.enable = true;
|
||||
services.xserver.autorun = false;
|
||||
services.xserver.displayManager.startx.enable = true;
|
||||
|
||||
# Xorg configuration for Intel Arc Battlemage (xe driver)
|
||||
# Based on: https://www.reddit.com/r/crtgaming/comments/1knom2t/guide_intel_arc_b580_arch_linux_xorg/
|
||||
# Intel Arc B-series at PCI 0000:03:00.0
|
||||
#services.xserver.deviceSection = ''
|
||||
# Option "AccelMethod" "glamor"
|
||||
# BusID "PCI:3:0:0"
|
||||
#'';
|
||||
|
||||
############################
|
||||
## User Access
|
||||
############################
|
||||
users.users.andreas.extraGroups = [ "video" "render" ];
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{ config, lib, system, pkgs, ... }:
|
||||
{
|
||||
boot.kernelModules = [
|
||||
"vfio"
|
||||
"vfio-pci"
|
||||
"vfio_iommu_type1"
|
||||
];
|
||||
boot.kernelParams = [
|
||||
"amd_iommu=on"
|
||||
"iommu=pt"
|
||||
];
|
||||
# Make sure vfio is available inside initrd
|
||||
boot.initrd.availableKernelModules = [
|
||||
"vfio_pci"
|
||||
];
|
||||
# Bind by IDs (cleaner via modprobe instead of kernel param)
|
||||
boot.extraModprobeConfig = ''
|
||||
options vfio-pci ids=10de:1b81,10de:10f0
|
||||
'';
|
||||
boot.initrd.systemd = {
|
||||
enable = true;
|
||||
services.initrd-vfio-pci-nvidia = {
|
||||
description = "vfio-pci predevice init";
|
||||
wantedBy = [ "initrd.target" ];
|
||||
# Match 'preDeviceCommands' by running early
|
||||
before = [ "sysroot.mount" ];
|
||||
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
serviceConfig.Type = "oneshot";
|
||||
|
||||
# Place your original shell commands here
|
||||
script = ''
|
||||
modprobe vfio-pci
|
||||
'';
|
||||
};
|
||||
};
|
||||
# # EARLY and deterministic binding
|
||||
# boot.initrd.preDeviceCommands = ''
|
||||
# echo 0000:05:00.0 > /sys/bus/pci/drivers/vfio-pci/bind
|
||||
# echo 0000:05:00.1 > /sys/bus/pci/drivers/vfio-pci/bind
|
||||
# '';
|
||||
environment.systemPackages = with pkgs; [
|
||||
pciutils
|
||||
virtiofsd
|
||||
config.virtualisation.libvirtd.qemu.package
|
||||
looking-glass-client
|
||||
virt-manager
|
||||
libguestfs-with-appliance
|
||||
];
|
||||
users.extraUsers.andreas.extraGroups = [ "libvirtd" ];
|
||||
}
|
||||
@@ -7,32 +7,71 @@
|
||||
imports =
|
||||
[
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
./graphics/intel.nix
|
||||
./graphics/intel.nix
|
||||
./graphics/passthrough_nvidia.nix
|
||||
# ./graphics/intel_i915.nix
|
||||
# ./graphics/nvidia.nix
|
||||
./acer-monitor-edid.nix
|
||||
./samsung-monitor-edid.nix
|
||||
];
|
||||
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest;
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
|
||||
# boot.kernelPackages = pkgs.linuxPackages;
|
||||
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.kernelModules = [ "kvm-amd" "r8125" "4vl2loopback" ];
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback r8125 ];
|
||||
boot.supportedFilesystems = [ "ntfs" ];
|
||||
boot.blacklistedKernelModules = [ "r8169" ];
|
||||
|
||||
systemd.services.disable-realtek-eee = {
|
||||
description = "Disable Realtek Energy Efficient Ethernet";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.ethtool}/bin/ethtool --set-eee enp10s0 eee off";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/E846-D998";
|
||||
#device = "/dev/disk/by-uuid/E846-D998";
|
||||
device = "/dev/disk/by-uuid/19BE-8BAA";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
# Mount ntfs partition
|
||||
# fileSystems."/run/media/627C3BDF7C3BAD23" = {
|
||||
# device = "/dev/disk/by-uuid/627C3BDF7C3BAD23";
|
||||
# fsType = "ntfs-3g";
|
||||
# options = [ "rw" "uid=1000"];
|
||||
# };
|
||||
|
||||
# # Mount ntfs oldfiles drive partition
|
||||
# fileSystems."/run/media/oldfiles" = {
|
||||
# device = "/dev/disk/by-uuid/E2E26FFFE26FD677";
|
||||
# fsType = "ntfs-3g";
|
||||
# options = [ "rw" "uid=1000"];
|
||||
# };
|
||||
|
||||
# # Mount The Vault
|
||||
# fileSystems."/run/media/vault" = {
|
||||
# device = "/dev/disk/by-uuid/3470646370642DB4";
|
||||
# fsType = "ntfs-3g";
|
||||
# options = [ "rw" "uid=1000"];
|
||||
# };
|
||||
|
||||
|
||||
|
||||
# Try to fix hibernation
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
# boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/edid.bin,DP-2:edid/edid.bin,DP-3:edid/edid.bin,DP-4:edid/edid.bin" ];
|
||||
boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/edid2.bin" ];
|
||||
|
||||
|
||||
hardware.firmware = [
|
||||
(
|
||||
pkgs.runCommand "edid2.bin" { } ''
|
||||
mkdir -p $out/lib/firmware/edid
|
||||
cp ${./firmware/U32J59x-edid.bin} $out/lib/firmware/edid/edid2.bin
|
||||
''
|
||||
)];
|
||||
}
|
||||
Reference in New Issue
Block a user