Compare commits
29 Commits
c0a14472f3
...
c58aeed984
Author | SHA1 | Date | |
---|---|---|---|
c58aeed984 | |||
62c2e68226 | |||
b9cef09507 | |||
64ccc2d064 | |||
0756463089 | |||
9225df75e1 | |||
66033bda2d | |||
e92581f2b2 | |||
76692f1924 | |||
83481a07f7 | |||
778e95a9cb | |||
07ca2a759b | |||
828c6352a5 | |||
246595dadd | |||
6a794eb46f | |||
3621c22f74 | |||
6ec018b083 | |||
fcadff53c3 | |||
f111a8a3cc | |||
68337c6411 | |||
978429f62c | |||
f14949b305 | |||
14fb167972 | |||
0225ae25aa | |||
942a8686b5 | |||
39bbb45ca3 | |||
93eda9c3e9 | |||
5fb39182c7 | |||
b3b2d2b924 |
354
flake.lock
generated
@ -8,11 +8,11 @@
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749308545,
|
||||
"narHash": "sha256-42gHr7DT2xk892STJHUF5FXDdlMg/99rr0c8a75jyO4=",
|
||||
"lastModified": 1751641756,
|
||||
"narHash": "sha256-5fXKpa5iVpsnsHUhiqMQ1gXdOGwEKc61fXhaMZn7Gb4=",
|
||||
"owner": "AtaraxiaSjel",
|
||||
"repo": "nur",
|
||||
"rev": "f76d325552b69f7cacff4e9f86ecad5586844050",
|
||||
"rev": "73e0fbc32ab305d50b84ab351c31604f003b50a8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -61,16 +61,20 @@
|
||||
"devenv"
|
||||
],
|
||||
"git-hooks": [
|
||||
"devenv"
|
||||
"devenv",
|
||||
"git-hooks"
|
||||
],
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
"nixpkgs": [
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744206633,
|
||||
"narHash": "sha256-pb5aYkE8FOoa4n123slgHiOf1UbNSnKe5pEZC+xXD5g=",
|
||||
"lastModified": 1748883665,
|
||||
"narHash": "sha256-R0W7uAg+BLoHjMRMQ8+oiSbTq8nkGz5RDpQ+ZfxxP3A=",
|
||||
"owner": "cachix",
|
||||
"repo": "cachix",
|
||||
"rev": "8a60090640b96f9df95d1ab99e5763a586be1404",
|
||||
"rev": "f707778d902af4d62d8dd92c269f8e70de09acbe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -85,11 +89,11 @@
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748080874,
|
||||
"narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=",
|
||||
"lastModified": 1750153510,
|
||||
"narHash": "sha256-NYHXXJZ9m4fJpKk9tKn/EExX87SqcBcRINOGF7hKRLI=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112",
|
||||
"rev": "4e95eaf8a351956d75cc400318579967ca2b6d0f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -98,6 +102,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"chaotic": {
|
||||
"inputs": {
|
||||
"flake-schemas": "flake-schemas",
|
||||
"home-manager": "home-manager",
|
||||
"jovian": "jovian",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751477036,
|
||||
"narHash": "sha256-0ZPQdjYMeRK/RMRagvr5a8dkjB7sQlXJsOBb40k+KYY=",
|
||||
"owner": "chaotic-cx",
|
||||
"repo": "nyx",
|
||||
"rev": "55649265bd2fd701e6758299516a69db523fb966",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "chaotic-cx",
|
||||
"ref": "nyxpkgs-unstable",
|
||||
"repo": "nyx",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"deploy-rs": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
@ -107,11 +134,11 @@
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727447169,
|
||||
"narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=",
|
||||
"lastModified": 1749105467,
|
||||
"narHash": "sha256-hXh76y/wDl15almBcqvjryB50B0BaiXJKk20f314RoE=",
|
||||
"owner": "serokell",
|
||||
"repo": "deploy-rs",
|
||||
"rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76",
|
||||
"rev": "6bc76b872374845ba9d645a2f012b764fecd765f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -175,11 +202,11 @@
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749029645,
|
||||
"narHash": "sha256-XvsmjmiOccRLuhH1lzJoF6CxLF5Hkzx5Pfdd0LwSyiA=",
|
||||
"lastModified": 1750885119,
|
||||
"narHash": "sha256-nDxZMz1uk5suHPxE9Ky68g1OKbIs5QPGuszElkPyeoc=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "14f517d8831564a421499fe10df179fcaba4cc6e",
|
||||
"rev": "8f6da8234e6bf6a501f89c4c3aa6732fdaa1a6ea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -195,11 +222,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748832438,
|
||||
"narHash": "sha256-/CtyLVfNaFP7PrOPrTEuGOJBIhcBKVQ91KiEbtXJi0A=",
|
||||
"lastModified": 1750680230,
|
||||
"narHash": "sha256-kD88T/NqmcgfOBFAwphN30ccaUdj6K6+LG0XdM2w2LA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "58d6e5a83fff9982d57e0a0a994d4e5c0af441e4",
|
||||
"rev": "8fd2d6c75009ac75f9a6fb18c33a239806778d01",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -227,11 +254,11 @@
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -243,11 +270,11 @@
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -306,11 +333,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712014858,
|
||||
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -324,11 +351,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748821116,
|
||||
"narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
|
||||
"lastModified": 1749398372,
|
||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
|
||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -353,6 +380,20 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-schemas": {
|
||||
"locked": {
|
||||
"lastModified": 1721999734,
|
||||
"narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=",
|
||||
"rev": "0a5c42297d870156d9c57d8f99e476b738dcd982",
|
||||
"revCount": 75,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
@ -389,24 +430,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flakey-profile": {
|
||||
"locked": {
|
||||
"lastModified": 1712898590,
|
||||
@ -452,7 +475,8 @@
|
||||
"git-hooks_2": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"devenv"
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore_2",
|
||||
"nixpkgs": [
|
||||
@ -461,11 +485,10 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746537231,
|
||||
"narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=",
|
||||
"lastModified": 1749636823,
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "fa466640195d38ec97cf0493d6d6882bc4d14969",
|
||||
"rev": "623c56286de5a3193aa38891a6991b28f9bab056",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -507,7 +530,6 @@
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
@ -522,15 +544,36 @@
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748665073,
|
||||
"narHash": "sha256-RMhjnPKWtCoIIHiuR9QKD7xfsKb3agxzMfJY8V9MOew=",
|
||||
"lastModified": 1751473516,
|
||||
"narHash": "sha256-nJFR4f4hh879Mm7ne4SaUihxQAwu1FdnRCaA/8pHc1k=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "282e1e029cb6ab4811114fc85110613d72771dea",
|
||||
"rev": "bafcf336870c9daca80df1c4a09ef926fc497016",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750792728,
|
||||
"narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "366f00797b1efb70f2882d3da485e3c10fd3d557",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -555,23 +598,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"libgit2": {
|
||||
"flake": false,
|
||||
"jovian": {
|
||||
"inputs": {
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1697646580,
|
||||
"narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
|
||||
"owner": "libgit2",
|
||||
"repo": "libgit2",
|
||||
"rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
|
||||
"lastModified": 1751358277,
|
||||
"narHash": "sha256-Xz2JtcO9UNLur+OhoDVyYXqBQCW2KsouLyUU/NmwBQQ=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "011d5a48d70c2a3ef35acd0e026e10b5844ce2a0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "libgit2",
|
||||
"repo": "libgit2",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"libgit2_2": {
|
||||
"libgit2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1697646580,
|
||||
@ -606,11 +655,11 @@
|
||||
"lix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1748893954,
|
||||
"narHash": "sha256-Vj1GHarIzlJI3We5KnYcAQlSjn++fx7/lKRaiIVz3tg=",
|
||||
"rev": "019b17f4e93c098f99a9bc691be1f1c4df026c7d",
|
||||
"lastModified": 1750863598,
|
||||
"narHash": "sha256-A9EwWUNC+8Fnsafi3Lcks2jNm6wjNoxfPS5TJXzpTk0=",
|
||||
"rev": "9a59106c172b7d5963e3dc2cf07ff5b19f8119d6",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/019b17f4e93c098f99a9bc691be1f1c4df026c7d.tar.gz?rev=019b17f4e93c098f99a9bc691be1f1c4df026c7d"
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/9a59106c172b7d5963e3dc2cf07ff5b19f8119d6.tar.gz?rev=9a59106c172b7d5963e3dc2cf07ff5b19f8119d6"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
@ -692,6 +741,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"jovian",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729697500,
|
||||
"narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=",
|
||||
"owner": "zhaofengli",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zhaofengli",
|
||||
"ref": "matrix-name",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-index-database": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -699,11 +771,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748751003,
|
||||
"narHash": "sha256-i4GZdKAK97S0ZMU3w4fqgEJr0cVywzqjugt2qZPrScs=",
|
||||
"lastModified": 1750565152,
|
||||
"narHash": "sha256-A6ZIoIgaPPkzIVxKuaxwEJicPOeTwC/MD9iuC3FVhDM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "2860bee699248d828c2ed9097a1cd82c2f991b43",
|
||||
"rev": "78cd697acc2e492b4e92822a4913ffad279c20e6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -720,11 +792,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749002682,
|
||||
"narHash": "sha256-v9K6RyPF/+4r/YJhjEH8y07VWE6Vj7Vl88E/K5m/uJ0=",
|
||||
"lastModified": 1750817194,
|
||||
"narHash": "sha256-9CCF4ANxZUXHwz74SeGQkFi4OYnm0BD2I3GeQvxMKPM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"rev": "46eb9c16d8ccfedf8bc648be03f9b2993fe3c994",
|
||||
"rev": "fc01ad517af163c76d4493c5959fc5c44244a97f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -735,17 +807,16 @@
|
||||
},
|
||||
"nix2container": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744699837,
|
||||
"narHash": "sha256-mJ1OgxMM2VTTjSVrMZItM8DxttzROYbWkmEPvYF/Kpg=",
|
||||
"lastModified": 1749158376,
|
||||
"narHash": "sha256-uirStFNxauh0lxzBowcp28X+Sq7JgsBIDnbwbAfZwf8=",
|
||||
"owner": "nlewo",
|
||||
"repo": "nix2container",
|
||||
"rev": "78aadfc4ee1f9c2ee256e304b180ca356eb6a045",
|
||||
"rev": "0f8974c58755dba441df03598eefd1e1cd50e341",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -757,32 +828,33 @@
|
||||
"nix_2": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"devenv"
|
||||
"devenv",
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-parts": "flake-parts_3",
|
||||
"libgit2": "libgit2_2",
|
||||
"git-hooks-nix": [
|
||||
"devenv",
|
||||
"git-hooks"
|
||||
],
|
||||
"nixpkgs": "nixpkgs_7",
|
||||
"nixpkgs-23-11": [
|
||||
"devenv"
|
||||
],
|
||||
"nixpkgs-regression": [
|
||||
"devenv"
|
||||
],
|
||||
"pre-commit-hooks": [
|
||||
"devenv"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745930071,
|
||||
"narHash": "sha256-bYyjarS3qSNqxfgc89IoVz8cAFDkF9yPE63EJr+h50s=",
|
||||
"owner": "domenkozar",
|
||||
"lastModified": 1750117611,
|
||||
"narHash": "sha256-LTwASICtyN3AjzlF9l2ZNAIVZqclio3yRcwwZy3QSJA=",
|
||||
"owner": "cachix",
|
||||
"repo": "nix",
|
||||
"rev": "b455edf3505f1bf0172b39a735caef94687d0d9c",
|
||||
"rev": "9e4fc95c388e2223d47da865503dee20d179776a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "domenkozar",
|
||||
"ref": "devenv-2.24",
|
||||
"owner": "cachix",
|
||||
"ref": "devenv-2.30",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
@ -835,11 +907,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1748929857,
|
||||
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
|
||||
"lastModified": 1750741721,
|
||||
"narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
|
||||
"rev": "4b1164c3215f018c4442463a27689d973cffd750",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -915,11 +987,11 @@
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1733212471,
|
||||
"narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
|
||||
"lastModified": 1751271578,
|
||||
"narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
|
||||
"rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -931,16 +1003,16 @@
|
||||
},
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1717432640,
|
||||
"narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
|
||||
"lastModified": 1747179050,
|
||||
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
|
||||
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-24.05",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
@ -963,11 +1035,11 @@
|
||||
},
|
||||
"nixpkgs_9": {
|
||||
"locked": {
|
||||
"lastModified": 1748889542,
|
||||
"narHash": "sha256-Hb4iMhIbjX45GcrgOp3b8xnyli+ysRPqAgZ/LZgyT5k=",
|
||||
"lastModified": 1750622754,
|
||||
"narHash": "sha256-kMhs+YzV4vPGfuTpD3mwzibWUE6jotw5Al2wczI0Pv8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "10d7f8d34e5eb9c0f9a0485186c1ca691d2c5922",
|
||||
"rev": "c7ab75210cb8cb16ddd8f290755d9558edde7ee1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -981,13 +1053,14 @@
|
||||
"inputs": {
|
||||
"ataraxiasjel-nur": "ataraxiasjel-nur",
|
||||
"catppuccin": "catppuccin",
|
||||
"chaotic": "chaotic",
|
||||
"deploy-rs": "deploy-rs",
|
||||
"devenv": "devenv_2",
|
||||
"devenv-root": "devenv-root_2",
|
||||
"disko": "disko",
|
||||
"flake-parts": "flake-parts_4",
|
||||
"flake-registry": "flake-registry",
|
||||
"home-manager": "home-manager",
|
||||
"home-manager": "home-manager_2",
|
||||
"impermanence": "impermanence",
|
||||
"lite-config": "lite-config",
|
||||
"lix": "lix",
|
||||
@ -998,7 +1071,29 @@
|
||||
"nix2container": "nix2container",
|
||||
"nixpkgs": "nixpkgs_9",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"sops-nix": "sops-nix"
|
||||
"sops-nix": "sops-nix",
|
||||
"walker": "walker"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751423951,
|
||||
"narHash": "sha256-AowKhJGplXRkAngSvb+32598DTiI6LOzhAnzgvbCtYM=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "1684ed5b15859b655caf41b467d046e29a994d04",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
@ -1008,11 +1103,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747603214,
|
||||
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
|
||||
"lastModified": 1750119275,
|
||||
"narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
|
||||
"rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1068,16 +1163,16 @@
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@ -1086,11 +1181,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1098,6 +1193,27 @@
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"walker": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751351108,
|
||||
"narHash": "sha256-C6lGn4ALRpKzdL129meWl4DaDP26Il3F7RhDzAjfKJQ=",
|
||||
"owner": "abenz1267",
|
||||
"repo": "walker",
|
||||
"rev": "94b180424d1cdfd98d513d37e5e2284c5b074140",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "abenz1267",
|
||||
"repo": "walker",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
@ -33,6 +33,7 @@
|
||||
|
||||
ataraxiasjel-nur.url = "github:AtaraxiaSjel/nur";
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
deploy-rs = {
|
||||
url = "github:serokell/deploy-rs";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@ -63,6 +64,10 @@
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
walker = {
|
||||
url = "github:abenz1267/walker";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
@ -98,6 +103,8 @@
|
||||
};
|
||||
systemModules = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
inputs.chaotic.nixosModules.nyx-cache
|
||||
inputs.chaotic.nixosModules.nyx-overlay
|
||||
./modules/nixos
|
||||
];
|
||||
homeModules = [ ./modules/home ];
|
||||
|
@ -24,8 +24,12 @@
|
||||
# };
|
||||
# };
|
||||
|
||||
services.scx.enable = true;
|
||||
services.scx.scheduler = "scx_rustland";
|
||||
|
||||
boot = {
|
||||
zfs.package = pkgs.zfs_unstable;
|
||||
kernelPackages = pkgs.linuxPackages_cachyos;
|
||||
zfs.package = pkgs.zfs_cachyos;
|
||||
|
||||
loader = {
|
||||
grub = {
|
||||
|
@ -65,6 +65,7 @@ in
|
||||
# Home-manager
|
||||
home-manager.users.${defaultUser} = {
|
||||
ataraxia.defaults.role = "desktop";
|
||||
ataraxia.programs.lutris.enable = true;
|
||||
ataraxia.programs.mangohud.enable = true;
|
||||
ataraxia.services.modprobed-db.enable = true;
|
||||
ataraxia.theme.catppuccin.enable = true;
|
||||
@ -84,9 +85,11 @@ in
|
||||
|
||||
home.packages = with pkgs; [
|
||||
devenv
|
||||
llama-cpp
|
||||
nh
|
||||
nix-diff
|
||||
nix-update
|
||||
nix-update-docker-image
|
||||
nixfmt-rfc-style
|
||||
nixos-anywhere
|
||||
|
||||
@ -115,6 +118,7 @@ in
|
||||
];
|
||||
|
||||
persist.state.directories = [
|
||||
".config/image-updater"
|
||||
".config/sops/age"
|
||||
".config/WarThunder"
|
||||
"nixos-config"
|
||||
@ -131,8 +135,13 @@ in
|
||||
wal_recycle = "off";
|
||||
};
|
||||
|
||||
# ataraxia.virtualisation.docker = true;
|
||||
ataraxia.virtualisation.libvirt = true;
|
||||
ataraxia.virtualisation.podman = true;
|
||||
|
||||
ataraxia.programs.corectrl.enable = true;
|
||||
ataraxia.programs.steam.enable = true;
|
||||
ataraxia.programs.waydroid.enable = true;
|
||||
ataraxia.vpn.sing-box.enable = true;
|
||||
ataraxia.vpn.sing-box.config = "ataraxia-singbox";
|
||||
services.tailscale = {
|
||||
@ -171,8 +180,9 @@ in
|
||||
fsType = "nfs4";
|
||||
options = [
|
||||
"nfsvers=4.2"
|
||||
"x-systemd.automount"
|
||||
"noauto"
|
||||
"x-systemd.automount"
|
||||
"x-systemd.idle-timeout=1800"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@ -109,6 +109,8 @@ in
|
||||
"font.name.monospace.x-western" = fonts.mono.family;
|
||||
"font.name.sans-serif.x-western" = fonts.sans.family;
|
||||
"font.name.serif.x-western" = fonts.serif.family;
|
||||
"font.name.sans-serif.x-cyrillic" = fonts.cyrillic.family;
|
||||
"font.name.serif.x-cyrillic" = fonts.cyrillic.family;
|
||||
"browser.display.background_color" = colors.color0;
|
||||
"browser.display.foreground_color" = colors.color5;
|
||||
"browser.anchor_color" = colors.color13;
|
||||
@ -160,6 +162,8 @@ in
|
||||
"font.name.monospace.x-western" = fonts.mono.family;
|
||||
"font.name.sans-serif.x-western" = fonts.sans.family;
|
||||
"font.name.serif.x-western" = fonts.serif.family;
|
||||
"font.name.sans-serif.x-cyrillic" = fonts.cyrillic.family;
|
||||
"font.name.serif.x-cyrillic" = fonts.cyrillic.family;
|
||||
"browser.display.background_color" = colors.color0;
|
||||
"browser.display.foreground_color" = colors.color5;
|
||||
"browser.anchor_color" = colors.color13;
|
||||
|
24
modules/home/applications/games/lutris.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
cfg = config.ataraxia.programs.lutris;
|
||||
in
|
||||
{
|
||||
options.ataraxia.programs.lutris = {
|
||||
enable = mkEnableOption "Enable lutris program";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
lutris
|
||||
wine
|
||||
];
|
||||
|
||||
persist.state.directories = [ ".local/share/lutris" ];
|
||||
};
|
||||
}
|
93
modules/home/applications/mimeapps.nix
Normal file
@ -0,0 +1,93 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
cfg = config.ataraxia.programs.mimeapps;
|
||||
apps = config.defaultApplications;
|
||||
in
|
||||
{
|
||||
options.ataraxia.programs.mimeapps = {
|
||||
enable = mkEnableOption "Enable mimeapps";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"text/html" = apps.browser.desktop;
|
||||
"x-scheme-handler/http" = apps.browser.desktop;
|
||||
"x-scheme-handler/https" = apps.browser.desktop;
|
||||
"x-scheme-handler/about" = apps.browser.desktop;
|
||||
"x-scheme-handler/unknown" = apps.browser.desktop;
|
||||
|
||||
"message/rfc822" = apps.mail.desktop;
|
||||
"x-scheme-handler/mailto" = apps.mail.desktop;
|
||||
|
||||
"x-scheme-handler/tg" = apps.messenger.desktop;
|
||||
|
||||
"application/x-bittorrent" = apps.torrent.desktop;
|
||||
|
||||
"image/jpeg" = apps.image.desktop;
|
||||
"image/png" = apps.image.desktop;
|
||||
"image/gif" = apps.image.desktop;
|
||||
"image/bmp" = apps.image.desktop;
|
||||
"image/svg+xml" = apps.image.desktop;
|
||||
"image/webp" = apps.image.desktop;
|
||||
|
||||
"application/zip" = apps.archive.desktop;
|
||||
"application/x-rar" = apps.archive.desktop;
|
||||
"application/x-7z-compressed" = apps.archive.desktop;
|
||||
"application/x-tar" = apps.archive.desktop;
|
||||
"application/gzip" = apps.archive.desktop;
|
||||
"application/x-bzip2" = apps.archive.desktop;
|
||||
|
||||
"inode/directory" = apps.fm.desktop;
|
||||
|
||||
"video/mp4" = apps.media-player.desktop;
|
||||
"video/x-matroska" = apps.media-player.desktop;
|
||||
"video/webm" = apps.media-player.desktop;
|
||||
"video/x-flv" = apps.media-player.desktop;
|
||||
"video/quicktime" = apps.media-player.desktop;
|
||||
"video/x-msvideo" = apps.media-player.desktop;
|
||||
"video/x-ms-wmv" = apps.media-player.desktop;
|
||||
"audio/mpeg" = apps.media-player.desktop;
|
||||
"audio/ogg" = apps.media-player.desktop;
|
||||
"audio/x-wav" = apps.media-player.desktop;
|
||||
"audio/flac" = apps.media-player.desktop;
|
||||
"audio/x-ms-wma" = apps.media-player.desktop;
|
||||
"audio/x-aac" = apps.media-player.desktop;
|
||||
"audio/opus" = apps.media-player.desktop;
|
||||
"video/x-m4v" = apps.media-player.desktop;
|
||||
"video/3gpp" = apps.media-player.desktop;
|
||||
"video/x-ms-asf" = apps.media-player.desktop;
|
||||
|
||||
"application/pdf" = apps.document-viewer.desktop;
|
||||
"application/epub+zip" = apps.document-viewer.desktop;
|
||||
"image/vnd.djvu" = apps.document-viewer.desktop;
|
||||
"application/postscript" = apps.document-viewer.desktop;
|
||||
|
||||
"text/plain" = apps.editor.desktop;
|
||||
"text/markdown" = apps.editor.desktop;
|
||||
"text/x-shellscript" = apps.editor.desktop;
|
||||
"text/css" = apps.editor.desktop;
|
||||
"text/csv" = apps.editor.desktop;
|
||||
"application/json" = apps.editor.desktop;
|
||||
"text/xml" = apps.editor.desktop;
|
||||
"application/xml" = apps.editor.desktop;
|
||||
"application/javascript" = apps.editor.desktop;
|
||||
"text/x-java-source" = apps.editor.desktop;
|
||||
"text/x-python" = apps.editor.desktop;
|
||||
"application/x-python-code" = apps.editor.desktop;
|
||||
"text/x-csrc" = apps.editor.desktop;
|
||||
"text/x-c++src" = apps.editor.desktop;
|
||||
"text/x-h" = apps.editor.desktop;
|
||||
"text/x-c++hdr" = apps.editor.desktop;
|
||||
"application/x-desktop" = apps.editor.desktop;
|
||||
"application/x-nix" = apps.editor.desktop;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -27,6 +27,7 @@ in
|
||||
bat
|
||||
bottom
|
||||
fd
|
||||
file
|
||||
libqalculate
|
||||
p7zip
|
||||
pinfo
|
||||
@ -39,6 +40,7 @@ in
|
||||
tldr
|
||||
translate-shell
|
||||
unrar
|
||||
xarchiver
|
||||
];
|
||||
|
||||
persist.state.directories = [
|
||||
|
@ -81,6 +81,9 @@ in
|
||||
polypus74.trusty-rusty-snippets
|
||||
rust-lang.rust-analyzer
|
||||
ext-nixpkgs.vadimcn.vscode-lldb
|
||||
# AI
|
||||
ggml-org.llama-vscode
|
||||
rooveterinaryinc.roo-cline
|
||||
];
|
||||
# mutableExtensionsDir = false;
|
||||
userSettings = {
|
||||
@ -94,6 +97,7 @@ in
|
||||
"strings" = true;
|
||||
};
|
||||
"files.autoSave" = "afterDelay";
|
||||
"files.enableTrash" = false;
|
||||
"files.exclude" = {
|
||||
"**/.classpath" = true;
|
||||
"**/.devenv" = true;
|
||||
@ -115,6 +119,11 @@ in
|
||||
"license.default" = "mit";
|
||||
"license.extension" = ".md";
|
||||
"license.year" = "auto";
|
||||
"llama-vscode.launch_chat" = "";
|
||||
"llama-vscode.launch_completion" = "${pkgs.llama-cpp}/bin/llama-server --fim-qwen-3b-default";
|
||||
"llama-vscode.launch_embeddings" = "";
|
||||
"llama-vscode.launch_training_chat" = "";
|
||||
"llama-vscode.launch_training_completion" = "";
|
||||
"nix.enableLanguageServer" = true;
|
||||
"nix.formatterPath" = getExe pkgs.nixfmt-rfc-style;
|
||||
# "nix.serverPath" = getExe pkgs.nil;
|
||||
@ -133,6 +142,11 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
"roo-cline.allowedCommands" = [
|
||||
"git log"
|
||||
"git diff"
|
||||
"git show"
|
||||
];
|
||||
"rust-analyzer.check.command" = "clippy";
|
||||
"search.exclude" = {
|
||||
"**/.devenv" = true;
|
||||
|
37
modules/home/applications/walker.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) getExe mkEnableOption mkIf;
|
||||
cfg = config.ataraxia.programs.walker;
|
||||
in
|
||||
{
|
||||
imports = [ inputs.walker.homeManagerModules.default ];
|
||||
|
||||
options.ataraxia.programs.walker = {
|
||||
enable = mkEnableOption "Enable walker program";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
defaultApplications.dmenu = {
|
||||
cmd = getExe config.programs.walker.package;
|
||||
desktop = "walker";
|
||||
};
|
||||
|
||||
programs.walker = {
|
||||
enable = true;
|
||||
package = pkgs.walker;
|
||||
runAsService = false;
|
||||
config = {
|
||||
websearch.prefix = "?";
|
||||
switcher.prefix = "/";
|
||||
};
|
||||
};
|
||||
|
||||
startupApplications = [ "${getExe config.programs.walker.package} --gapplication-service" ];
|
||||
};
|
||||
}
|
25
modules/home/applications/zathura.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) getExe mkEnableOption mkIf;
|
||||
cfg = config.ataraxia.programs.zathura;
|
||||
in
|
||||
{
|
||||
options.ataraxia.programs.zathura = {
|
||||
enable = mkEnableOption "Enable zathura program";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
defaultApplications.document-viewer = {
|
||||
cmd = getExe config.programs.zathura.package;
|
||||
desktop = "zathura";
|
||||
};
|
||||
};
|
||||
}
|
@ -8,12 +8,20 @@
|
||||
let
|
||||
inherit (lib)
|
||||
escapeShellArg
|
||||
isAttrs
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkOption
|
||||
recursiveUpdate
|
||||
;
|
||||
inherit (lib.types) listOf path str;
|
||||
inherit (lib.types)
|
||||
either
|
||||
enum
|
||||
listOf
|
||||
path
|
||||
str
|
||||
submodule
|
||||
;
|
||||
inherit (builtins) concatMap;
|
||||
cfg = config.persist;
|
||||
username = config.home.username;
|
||||
@ -25,14 +33,47 @@ in
|
||||
|
||||
options =
|
||||
let
|
||||
directoryEntryType = submodule {
|
||||
options = {
|
||||
directory = mkOption {
|
||||
type = str;
|
||||
description = "The directory path to be linked.";
|
||||
};
|
||||
method = mkOption {
|
||||
type = enum [
|
||||
"bindfs"
|
||||
"symlink"
|
||||
];
|
||||
default = config.defaultDirectoryMethod;
|
||||
description = ''
|
||||
The linking method to be used for this specific directory entry.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
common = {
|
||||
directories = mkOption {
|
||||
type = listOf str;
|
||||
type = listOf (either str directoryEntryType);
|
||||
default = [ ];
|
||||
description = ''
|
||||
List of directories to persist.
|
||||
Each element can be a string (e.g., ".cache") or an attribute set
|
||||
(e.g., { directory = ".local/share/Steam"; method = "symlink"; }).
|
||||
'';
|
||||
example = [
|
||||
".config/foo"
|
||||
{
|
||||
directory = ".config/bar";
|
||||
method = "symlink";
|
||||
}
|
||||
];
|
||||
};
|
||||
files = mkOption {
|
||||
type = listOf str;
|
||||
default = [ ];
|
||||
description = "List of files to persist.";
|
||||
example = [ ".config/foo.conf" ];
|
||||
};
|
||||
};
|
||||
in
|
||||
@ -43,12 +84,10 @@ in
|
||||
type = path;
|
||||
default = "/persist${config.home.homeDirectory}";
|
||||
};
|
||||
# Stuff that matters
|
||||
# TODO backups
|
||||
state = recursiveUpdate {
|
||||
# backup = {...};
|
||||
} common;
|
||||
# Stuff that's just there to speed up the system
|
||||
cache = recursiveUpdate {
|
||||
clean = {
|
||||
enable = mkEnableOption "cleaning the cache files and directories";
|
||||
@ -62,7 +101,6 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
# TODO: filter persist paths like in nixos module
|
||||
config =
|
||||
let
|
||||
takeAll = what: concatMap (x: x.${what});
|
||||
@ -72,6 +110,9 @@ in
|
||||
];
|
||||
allFiles = takeAll "files" persists;
|
||||
allDirs = takeAll "directories" persists;
|
||||
|
||||
# Helper function to extract path strings from the mixed list
|
||||
getPaths = map (x: if isAttrs x then x.directory else x);
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
home.persistence.${cfg.persistRoot} = {
|
||||
@ -91,8 +132,8 @@ in
|
||||
"Videos"
|
||||
".config/dconf"
|
||||
".local/share/nix"
|
||||
".local/share/systemd"
|
||||
".ssh"
|
||||
# { directory = ".ssh"; mode = "0700"; }
|
||||
];
|
||||
};
|
||||
|
||||
@ -102,14 +143,21 @@ in
|
||||
Description = "Cleaning up cache files and directories for user ${username}";
|
||||
Wants = [ "modprobed-db.timer" ];
|
||||
};
|
||||
Service = {
|
||||
Service =
|
||||
let
|
||||
# Extract only the path strings for the cleanup script
|
||||
cacheDirPaths = getPaths cfg.cache.directories;
|
||||
in
|
||||
{
|
||||
ExecStart = pkgs.writeShellScript "" ''
|
||||
${builtins.concatStringsSep "\n" (
|
||||
map (x: "rm ${escapeShellArg x}") (absoluteHomePath cfg.cache.files)
|
||||
map (x: "${pkgs.coreutils}/bin/rm ${escapeShellArg x}") (absoluteHomePath cfg.cache.files)
|
||||
)}
|
||||
|
||||
${builtins.concatStringsSep "\n" (
|
||||
map (x: "rm -rf ${escapeShellArg x}") (absoluteHomePath cfg.cache.directories)
|
||||
map (x: "${pkgs.findutils}/bin/find ${escapeShellArg x} -mindepth 1 -delete") (
|
||||
absoluteHomePath cacheDirPaths
|
||||
)
|
||||
)}
|
||||
'';
|
||||
Type = "simple";
|
||||
|
@ -47,6 +47,7 @@ in
|
||||
ataraxia.security.pass-secret-service.enable = mkDefault true;
|
||||
ataraxia.security.password-store.enable = mkDefault true;
|
||||
|
||||
programs.micro.enable = mkDefault true;
|
||||
programs.nix-index.enable = mkDefault true;
|
||||
programs.nix-index-database.comma.enable = mkDefault true;
|
||||
|
||||
@ -81,16 +82,20 @@ in
|
||||
ataraxia.programs.default.enable = mkDefault true;
|
||||
ataraxia.programs.firefox.enable = mkDefault true;
|
||||
ataraxia.programs.kitty.enable = mkDefault true;
|
||||
ataraxia.programs.mimeapps.enable = mkDefault true;
|
||||
ataraxia.programs.mpv.enable = mkDefault true;
|
||||
ataraxia.programs.rofi.enable = mkDefault true;
|
||||
ataraxia.programs.rofi.enable = mkDefault false;
|
||||
ataraxia.programs.spotify.enable = mkDefault true;
|
||||
ataraxia.programs.telegram.enable = mkDefault true;
|
||||
ataraxia.programs.thunderbird.enable = mkDefault true;
|
||||
ataraxia.programs.vscode.enable = mkDefault true;
|
||||
ataraxia.programs.walker.enable = mkDefault true;
|
||||
ataraxia.programs.zathura.enable = mkDefault true;
|
||||
ataraxia.wayland.enable = mkDefault true;
|
||||
ataraxia.wayland.hyprland.enable = mkDefault true;
|
||||
ataraxia.wayland.mako.enable = mkDefault true;
|
||||
ataraxia.wayland.waybar.enable = mkDefault true;
|
||||
ataraxia.wayland.wlogout.enable = mkDefault true;
|
||||
};
|
||||
in
|
||||
mkMerge [
|
||||
|
@ -9,9 +9,11 @@ let
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkOption
|
||||
removePrefix
|
||||
;
|
||||
inherit (lib.types) nullOr path str;
|
||||
cfg = config.ataraxia.security.password-store;
|
||||
homeDir = config.home.homeDirectory;
|
||||
in
|
||||
{
|
||||
options.ataraxia.security.password-store = {
|
||||
@ -62,6 +64,6 @@ in
|
||||
settings.PASSWORD_STORE_DIR = cfg.store;
|
||||
};
|
||||
|
||||
persist.state.directories = [ cfg.store ];
|
||||
persist.state.directories = [ (removePrefix "${homeDir}/" cfg.store) ];
|
||||
};
|
||||
}
|
||||
|
@ -136,6 +136,11 @@ in
|
||||
"gtk-4.0/gtk.css".source = "${gtk4Dir}/gtk.css";
|
||||
"gtk-4.0/gtk-dark.css".source = "${gtk4Dir}/gtk-dark.css";
|
||||
};
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = if cfg.flavor == "latte" then "default" else "prefer-dark";
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
@ -1,8 +1,4 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf unique;
|
||||
cfg = config.ataraxia.defaults.fonts;
|
||||
@ -21,6 +17,7 @@ in
|
||||
fonts.mono.package
|
||||
fonts.emoji.package
|
||||
fonts.icons.package
|
||||
fonts.cyrillic.package
|
||||
];
|
||||
|
||||
fonts = {
|
||||
@ -29,8 +26,14 @@ in
|
||||
defaultFonts = {
|
||||
emoji = [ fonts.emoji.family ];
|
||||
monospace = [ fonts.mono.family ];
|
||||
sansSerif = [ fonts.sans.family ];
|
||||
serif = [ fonts.serif.family ];
|
||||
sansSerif = [
|
||||
fonts.sans.family
|
||||
fonts.cyrillic.family
|
||||
];
|
||||
serif = [
|
||||
fonts.serif.family
|
||||
fonts.cyrillic.family
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -47,6 +47,10 @@ in
|
||||
type = submodule fontSubmodule;
|
||||
default = { };
|
||||
};
|
||||
cyrillic = mkOption {
|
||||
type = submodule fontSubmodule;
|
||||
default = { };
|
||||
};
|
||||
size = mkOption {
|
||||
type = submodule {
|
||||
options =
|
||||
@ -125,6 +129,10 @@ in
|
||||
family = "Rose-Pine";
|
||||
package = pkgs.rosepine-gtk-icons;
|
||||
};
|
||||
cyrillic = {
|
||||
family = "PT Sans";
|
||||
package = pkgs.paratype-pt-sans;
|
||||
};
|
||||
size.big = 14;
|
||||
size.normal = 12;
|
||||
size.small = 11;
|
||||
|
@ -14,6 +14,9 @@ in
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# For pinentry-gnome3
|
||||
home.packages = [ pkgs.gcr ];
|
||||
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
homedir = "${config.xdg.dataHome}/gnupg";
|
||||
@ -22,6 +25,7 @@ in
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
pinentry.package = pkgs.pinentry-gnome3;
|
||||
pinentry.program = "pinentry";
|
||||
sshKeys = [
|
||||
"7A7130ABF128CC2C32B3D6AD27515056B0193CE1"
|
||||
"E6A6377C3D0827C36428A290199FDB3B91414AFE"
|
||||
|
@ -8,6 +8,7 @@
|
||||
let
|
||||
inherit (builtins) mapAttrs;
|
||||
inherit (lib)
|
||||
getExe
|
||||
mkEnableOption
|
||||
mkDefault
|
||||
mkIf
|
||||
@ -20,6 +21,21 @@ let
|
||||
useNixosHyprland = osConfig != null && osConfig.programs.hyprland.enable;
|
||||
useWithUWSM = osConfig != null && osConfig.programs.hyprland.withUWSM;
|
||||
execApp = optionalString useWithUWSM "uwsm app --";
|
||||
|
||||
mpvExe = getExe config.programs.mpv.package;
|
||||
yt-mpv = pkgs.writeShellScript "yt-mpv" ''
|
||||
if [[ "$1" != "--no-video" ]]; then
|
||||
${getExe pkgs.libnotify} -t 3000 --icon=video-television "Playing Video" "$(${pkgs.wl-clipboard}/bin/wl-paste)"
|
||||
${mpvExe} --fs "$(${pkgs.wl-clipboard}/bin/wl-paste)"
|
||||
else
|
||||
${getExe pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(${pkgs.wl-clipboard}/bin/wl-paste)"
|
||||
${apps.term.cmd} -e ${mpvExe} --no-video "$(${pkgs.wl-clipboard}/bin/wl-paste)"
|
||||
fi
|
||||
'';
|
||||
|
||||
# screen-ocr = pkgs.writeShellScript "screen-ocr" ''
|
||||
# grim -g "$(slurp)" - | ${getExe pkgs.tesseract} -l eng - - | wl-copy
|
||||
# '';
|
||||
in
|
||||
{
|
||||
options.ataraxia.wayland.hyprland = {
|
||||
@ -105,6 +121,7 @@ in
|
||||
misc = {
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
enable_anr_dialog = false;
|
||||
mouse_move_enables_dpms = true;
|
||||
vfr = false;
|
||||
vrr = 0; # TODO: Remove after flickering is fixed
|
||||
@ -132,8 +149,8 @@ in
|
||||
|
||||
"$mod,p,exec,${execApp} wlogout -b 5"
|
||||
# "$mod,escape,exec,${execApp} ${apps.monitor.cmd}"
|
||||
"$mod,w,exec,${execApp} ${apps.dmenu.desktop} -show run"
|
||||
"$mod CTRL,w,exec,${execApp} ${apps.dmenu.desktop} -show drun -modi drun -show-icons"
|
||||
"$mod,w,exec,${execApp} ${apps.dmenu.desktop}"
|
||||
"$mod CTRL,w,exec,${execApp} ${apps.dmenu.desktop}"
|
||||
"$mod,return,exec,${execApp} ${apps.term.cmd}"
|
||||
"$mod SHIFT,return,exec,${execApp} nop kitti3"
|
||||
"$mod,e,exec,${execApp} ${apps.editor.cmd}"
|
||||
@ -150,8 +167,8 @@ in
|
||||
"$mod SHIFT,period,exec,${execApp} pamixer -i 2"
|
||||
"$mod,i,exec,${execApp} pavucontrol"
|
||||
"$mod,d,exec,${execApp} ${apps.fm.cmd}"
|
||||
# "$mod,y,exec,${execApp} ${pkgs.youtube-to-mpv}/bin/yt-mpv"
|
||||
# "$mod SHIFT,Y,exec,${execApp} ${pkgs.youtube-to-mpv}/bin/yt-mpv --no-video"
|
||||
"$mod,y,exec,${execApp} ${yt-mpv}"
|
||||
"$mod SHIFT,Y,exec,${execApp} ${yt-mpv} --no-video"
|
||||
"$mod,print,exec,${execApp} grim $(xdg-user-dir PICTURES)/Screenshots/$(date +'%Y-%m-%d+%H:%M:%S').png && notify-send 'Screenshot Saved'"
|
||||
"$mod CTRL,print,exec,${execApp} grim - | wl-copy && notify-send 'Screenshot Copied to Clipboard'"
|
||||
"$mod SHIFT,print,exec,${execApp} grim -g '$(slurp)' $(xdg-user-dir PICTURES)/Screenshots/$(date +'%Y-%m-%d+%H:%M:%S').png && notify-send 'Screenshot Saved'"
|
||||
@ -168,7 +185,7 @@ in
|
||||
"$mod,x,togglesplit,"
|
||||
"$mod,c,changegroupactive,b"
|
||||
"$mod,v,changegroupactive,f"
|
||||
"$mod,V,exec,${execApp} cliphist list | ${apps.dmenu.desktop} -dmenu | cliphist decode | wl-copy"
|
||||
"$mod,V,exec,cliphist list | ${apps.dmenu.desktop} -d -k -t 's' | cliphist decode | wl-copy"
|
||||
|
||||
"$mod,1,workspace,1"
|
||||
"$mod,2,workspace,2"
|
||||
@ -268,5 +285,9 @@ in
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
persist.state.directories = [
|
||||
".local/share/hyprland"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -22,10 +22,10 @@ in
|
||||
max-icon-size = 24;
|
||||
max-visible = 10;
|
||||
width = 500;
|
||||
backgroundColor = mkDefault "#${colors.color0}AA";
|
||||
textColor = mkDefault "#${colors.color5}";
|
||||
borderColor = mkDefault "#${colors.color13}AA";
|
||||
progressColor = mkDefault "over #${colors.color11}";
|
||||
background-color = mkDefault "#${colors.color0}";
|
||||
text-color = mkDefault "#${colors.color5}";
|
||||
border-color = mkDefault "#${colors.color13}";
|
||||
progress-color = mkDefault "over #${colors.color11}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -47,13 +47,13 @@ in
|
||||
device = "intel_backlight";
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
# min-length = 7;
|
||||
};
|
||||
@ -99,11 +99,11 @@ in
|
||||
};
|
||||
cpu = {
|
||||
interval = 4;
|
||||
format = "<span color=\"#7aa2f7\"> </span>{usage}%";
|
||||
format = "<span color=\"#7aa2f7\"> </span>{usage}%";
|
||||
};
|
||||
disk = {
|
||||
interval = 60;
|
||||
format = "<span color=\"#7aa2f7\"> </span>{free}";
|
||||
format = "<span color=\"#7aa2f7\"> </span>{free}";
|
||||
path = "/home";
|
||||
};
|
||||
"hyprland/window" = {
|
||||
@ -114,20 +114,22 @@ in
|
||||
on-click = "activate";
|
||||
disable-scroll = true;
|
||||
format-icons = {
|
||||
"10" = "0";
|
||||
"Messengers" = "Msg";
|
||||
"Music" = "Mus";
|
||||
"10" = "";
|
||||
"Email" = "";
|
||||
"Messengers" = "";
|
||||
"Music" = "";
|
||||
"Steam" = "";
|
||||
};
|
||||
};
|
||||
memory = {
|
||||
format = "<span color=\"#7aa2f7\"> </span>{used}GiB";
|
||||
format = "<span color=\"#7aa2f7\"> </span>{used}GiB";
|
||||
interval = 4;
|
||||
};
|
||||
temperature = {
|
||||
# "hwmon-path" = "/sys/class/hwmon/hwmon0/temp1_input";
|
||||
critical-threshold = 80;
|
||||
format = "<span color=\"#7aa2f7\">\uf4f5 </span>{temperatureC}°C";
|
||||
format-critical = "<span color=\"#f7768e\"> </span>{temperatureC}°C";
|
||||
format = "<span color=\"#7aa2f7\"> </span>{temperatureC}°C";
|
||||
format-critical = "<span color=\"#f7768e\"> </span>{temperatureC}°C";
|
||||
interval = 4;
|
||||
};
|
||||
tray = {
|
||||
@ -137,13 +139,13 @@ in
|
||||
wireplumber = {
|
||||
scroll-step = 5;
|
||||
format = "<span color=\"#7aa2f7\">{icon} </span>{volume}%";
|
||||
format-muted = "<span color=\"#f7768e\">\ueee8 </span>Muted";
|
||||
format-bluetooth = "<span color=\"#7aa2f7\">\uf282 </span>{volume}%";
|
||||
format-muted = "<span color=\"#f7768e\"> </span>Muted";
|
||||
format-bluetooth = "<span color=\"#7aa2f7\"> </span>{volume}%";
|
||||
on-click-right = "blueman-manager";
|
||||
format-icons = [
|
||||
"\uf026 "
|
||||
"\uf027 "
|
||||
"\uf028 "
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
|
117
modules/home/workspace/wayland/wlogout/default.nix
Normal file
@ -0,0 +1,117 @@
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
inherit (config.theme) colors fonts;
|
||||
|
||||
cfg = config.ataraxia.wayland.wlogout;
|
||||
in
|
||||
{
|
||||
options.ataraxia.wayland.wlogout = {
|
||||
enable = mkEnableOption "Enable wlogout";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.wlogout = {
|
||||
enable = true;
|
||||
layout = [
|
||||
{
|
||||
label = "lock";
|
||||
action = "";
|
||||
text = "Lock";
|
||||
}
|
||||
{
|
||||
label = "reboot";
|
||||
action = "systemctl reboot";
|
||||
text = "Reboot";
|
||||
}
|
||||
{
|
||||
label = "shutdown";
|
||||
action = "systemctl poweroff";
|
||||
text = "Shutdown";
|
||||
}
|
||||
{
|
||||
label = "logout";
|
||||
action = "hyprctl dispatch exit 0";
|
||||
text = "Logout";
|
||||
}
|
||||
{
|
||||
label = "suspend";
|
||||
action = "systemctl suspend";
|
||||
text = "Suspend";
|
||||
}
|
||||
];
|
||||
style = mkIf (!config.catppuccin.wlogout.enable) ''
|
||||
window {
|
||||
font-family: "${fonts.mono.family}";
|
||||
font-size: 18pt;
|
||||
color: ${colors.color5};
|
||||
background-color: alpha(${colors.color0}, 0.8);
|
||||
}
|
||||
button {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 25%;
|
||||
border: none;
|
||||
background-color: alpha(${colors.color0}, 0);
|
||||
color: ${colors.color14};
|
||||
}
|
||||
button:hover {
|
||||
background-color: alpha(${colors.color2}, 0.1);
|
||||
}
|
||||
button:focus {
|
||||
background-color: ${colors.color14};
|
||||
color: ${colors.color0};
|
||||
}
|
||||
#lock {
|
||||
background-image: image(url("${./lock.png}"));
|
||||
padding: 35px;
|
||||
}
|
||||
#lock:focus {
|
||||
background-image: image(url("${./lock-hover.png}"));
|
||||
padding: 35px;
|
||||
}
|
||||
#logout {
|
||||
background-image: image(url("${./logout.png}"));
|
||||
padding: 30px;
|
||||
}
|
||||
#logout:focus {
|
||||
background-image: image(url("${./logout-hover.png}"));
|
||||
padding: 30px;
|
||||
}
|
||||
#suspend {
|
||||
background-image: image(url("${./sleep.png}"));
|
||||
padding: 30px;
|
||||
}
|
||||
#suspend:focus {
|
||||
background-image: image(url("${./sleep-hover.png}"));
|
||||
padding: 30px;
|
||||
}
|
||||
#shutdown {
|
||||
background-image: image(url("${./power.png}"));
|
||||
padding: 30px;
|
||||
}
|
||||
#shutdown:focus {
|
||||
background-image: image(url("${./power-hover.png}"));
|
||||
padding: 30px;
|
||||
}
|
||||
#reboot {
|
||||
background-image: image(url("${./restart.png}"));
|
||||
padding: 30px;
|
||||
}
|
||||
#reboot:focus {
|
||||
background-image: image(url("${./restart-hover.png}"));
|
||||
padding: 30px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
catppuccin.wlogout = {
|
||||
iconStyle = "wlogout";
|
||||
extraStyle = ''
|
||||
window {
|
||||
font-family: "${fonts.mono.family}";
|
||||
font-size: 18pt;
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
BIN
modules/home/workspace/wayland/wlogout/lock-hover.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
modules/home/workspace/wayland/wlogout/lock.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
modules/home/workspace/wayland/wlogout/logout-hover.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
modules/home/workspace/wayland/wlogout/logout.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
modules/home/workspace/wayland/wlogout/power-hover.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
modules/home/workspace/wayland/wlogout/power.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
modules/home/workspace/wayland/wlogout/restart-hover.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
modules/home/workspace/wayland/wlogout/restart.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
modules/home/workspace/wayland/wlogout/sleep-hover.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
modules/home/workspace/wayland/wlogout/sleep.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
@ -16,6 +16,7 @@ in
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.gamemode.enable = true;
|
||||
programs.gamescope.enable = true;
|
||||
programs.gamescope.capSysNice = false;
|
||||
|
||||
|
36
modules/nixos/applications/waydroid.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (builtins) hasAttr;
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
cfg = config.ataraxia.programs.waydroid;
|
||||
defaultUser = config.ataraxia.defaults.users.defaultUser;
|
||||
in
|
||||
{
|
||||
options.ataraxia.programs.waydroid = {
|
||||
enable = mkEnableOption "Enable waydroid";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [ wl-clipboard ];
|
||||
virtualisation.waydroid.enable = true;
|
||||
|
||||
persist.state.directories = [ "/var/lib/waydroid" ];
|
||||
|
||||
home-manager = mkIf (hasAttr "users" config.home-manager) {
|
||||
users.${defaultUser} = {
|
||||
home.packages = with pkgs; [ waydroid-script ];
|
||||
persist.state.directories = [
|
||||
{
|
||||
directory = ".local/share/waydroid";
|
||||
method = "symlink";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -5,7 +5,12 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkDefault mkEnableOption mkIf;
|
||||
inherit (lib)
|
||||
mkDefault
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkOverride
|
||||
;
|
||||
|
||||
cfg = config.ataraxia.defaults.boot;
|
||||
in
|
||||
@ -30,7 +35,8 @@ in
|
||||
"zswap.enabled=0"
|
||||
];
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||
kernelPackages = mkOverride 900 pkgs.linuxPackages_xanmod_latest;
|
||||
zfs.package = mkOverride 900 pkgs.zfs_unstable;
|
||||
|
||||
consoleLogLevel = 3;
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
@ -8,12 +9,10 @@ let
|
||||
inherit (lib)
|
||||
escapeShellArg
|
||||
hasPrefix
|
||||
hasSuffix
|
||||
mkEnableOption
|
||||
mkDefault
|
||||
mkIf
|
||||
mkOption
|
||||
optionalString
|
||||
recursiveUpdate
|
||||
unique
|
||||
;
|
||||
@ -23,8 +22,7 @@ let
|
||||
|
||||
btrfs = config.ataraxia.filesystems.btrfs.mountpoints;
|
||||
zfs = config.ataraxia.filesystems.zfs.mountpoints;
|
||||
mountpoints = map (x: "${x}${optionalString (!(hasSuffix "/" x)) "/"}") (unique (btrfs ++ zfs));
|
||||
|
||||
mountpoints = unique (btrfs ++ zfs);
|
||||
subtractListsPrefix = a: filter (dir: !(any (pref: hasPrefix pref dir) a));
|
||||
in
|
||||
{
|
||||
@ -94,9 +92,13 @@ in
|
||||
systemd.services.persist-cache-cleanup = mkIf cfg.cache.clean.enable {
|
||||
description = "Cleaning up cache files and directories";
|
||||
script = ''
|
||||
${builtins.concatStringsSep "\n" (map (x: "rm ${escapeShellArg x}") cfg.cache.files)}
|
||||
${builtins.concatStringsSep "\n" (
|
||||
map (x: "${pkgs.coreutils}/bin/rm ${escapeShellArg x}") cfg.cache.files
|
||||
)}
|
||||
|
||||
${builtins.concatStringsSep "\n" (map (x: "rm -rf ${escapeShellArg x}") cfg.cache.directories)}
|
||||
${builtins.concatStringsSep "\n" (
|
||||
map (x: "${pkgs.findutils}/bin/find ${escapeShellArg x} -mindepth 1 -delete") cfg.cache.directories
|
||||
)}
|
||||
'';
|
||||
startAt = cfg.cache.clean.dates;
|
||||
};
|
||||
|
@ -60,7 +60,7 @@ in
|
||||
services.userborn.enable = mkDefault true;
|
||||
system.rebuild.enableNg = mkDefault true;
|
||||
system.switch.enableNg = mkDefault true;
|
||||
system.etc.overlay.enable = mkDefault true;
|
||||
system.etc.overlay.enable = mkDefault false;
|
||||
system.etc.overlay.mutable = mkDefault true;
|
||||
|
||||
systemd.services.systemd-timesyncd.wantedBy = [
|
||||
@ -84,6 +84,10 @@ in
|
||||
serverRole = recursiveUpdate baseRole {
|
||||
ataraxia.profiles.hardened = mkDefault true;
|
||||
ataraxia.profiles.minimal = mkDefault true;
|
||||
ataraxia.virtualisation.podman = mkDefault true;
|
||||
ataraxia.virtualisation.libvirt = mkDefault true;
|
||||
|
||||
boot.supportedFilesystems = [ "nfs" ];
|
||||
|
||||
time.timeZone = "Etc/UTC";
|
||||
zramSwap.memoryPercent = 100;
|
||||
@ -91,18 +95,16 @@ in
|
||||
desktopRole = recursiveUpdate baseRole {
|
||||
ataraxia.defaults.hardware.graphics = mkDefault true;
|
||||
ataraxia.defaults.sound.enable = mkDefault true;
|
||||
|
||||
ataraxia.wayland.enable = mkDefault true;
|
||||
ataraxia.wayland.hyprland.enable = mkDefault true;
|
||||
|
||||
programs.virt-manager.enable = config.ataraxia.virtualisation.libvirt;
|
||||
|
||||
boot.supportedFilesystems = [ "nfs" ];
|
||||
|
||||
# Fix some icon cache problems
|
||||
programs.gdk-pixbuf.modulePackages = with pkgs; [ librsvg ];
|
||||
services.gvfs.enable = mkDefault true;
|
||||
# saved space, but you need to recompile gvfs
|
||||
services.gvfs.package = (
|
||||
pkgs.gnome.gvfs.override {
|
||||
samba = null;
|
||||
gnomeSupport = false;
|
||||
}
|
||||
);
|
||||
services.getty.autologinUser = mkDefault defaultUser;
|
||||
|
||||
location = {
|
||||
|
110
modules/nixos/virtualisation/virtualisation.nix
Normal file
@ -0,0 +1,110 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
hasAttr
|
||||
mkEnableOption
|
||||
mkIf
|
||||
optionals
|
||||
;
|
||||
cfg = config.ataraxia.virtualisation;
|
||||
|
||||
defaultUser = config.ataraxia.defaults.users.defaultUser;
|
||||
in
|
||||
{
|
||||
options.ataraxia.virtualisation = {
|
||||
docker = mkEnableOption "Enable docker";
|
||||
libvirt = mkEnableOption "Enable libvirt";
|
||||
podman = mkEnableOption "Enable podman";
|
||||
};
|
||||
|
||||
config = mkIf (cfg.docker || cfg.libvirt || cfg.podman) {
|
||||
virtualisation = {
|
||||
oci-containers.backend = if (!cfg.podman && cfg.docker) then "docker" else "podman";
|
||||
docker = {
|
||||
enable = cfg.docker;
|
||||
daemon.settings = {
|
||||
features = {
|
||||
buildkit = true;
|
||||
};
|
||||
};
|
||||
storageDriver = "overlay2";
|
||||
};
|
||||
podman = {
|
||||
enable = cfg.podman;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
dockerSocket.enable = !config.virtualisation.docker.enable;
|
||||
};
|
||||
containers.registries.search = [
|
||||
"docker.io"
|
||||
"ghcr.io"
|
||||
"quay.io"
|
||||
];
|
||||
containers.storage.settings = {
|
||||
storage = {
|
||||
driver = "overlay";
|
||||
graphroot = "/var/lib/containers/storage";
|
||||
runroot = "/run/containers/storage";
|
||||
};
|
||||
};
|
||||
libvirtd = {
|
||||
enable = cfg.libvirt;
|
||||
qemu = {
|
||||
ovmf.enable = true;
|
||||
ovmf.packages = [
|
||||
(pkgs.OVMFFull.override {
|
||||
secureBoot = true;
|
||||
tpmSupport = true;
|
||||
}).fd
|
||||
];
|
||||
runAsRoot = false;
|
||||
swtpm.enable = true;
|
||||
};
|
||||
onBoot = "ignore";
|
||||
onShutdown = "shutdown";
|
||||
};
|
||||
|
||||
spiceUSBRedirection.enable = cfg.libvirt;
|
||||
};
|
||||
|
||||
environment.systemPackages =
|
||||
[ ]
|
||||
++ optionals cfg.docker [ pkgs.docker-compose ]
|
||||
++ optionals cfg.libvirt [ pkgs.virtiofsd ]
|
||||
++ optionals cfg.podman [ pkgs.podman-compose ];
|
||||
|
||||
users.users."qemu-libvirtd" = mkIf cfg.libvirt {
|
||||
extraGroups = lib.optionals (!config.virtualisation.libvirtd.qemu.runAsRoot) [
|
||||
"kvm"
|
||||
"input"
|
||||
];
|
||||
};
|
||||
|
||||
security.unprivilegedUsernsClone = true;
|
||||
|
||||
persist.state.directories = [
|
||||
"/var/lib/docker"
|
||||
"/var/lib/libvirt"
|
||||
"/var/lib/containers"
|
||||
];
|
||||
|
||||
home-manager = mkIf (hasAttr "users" config.home-manager) {
|
||||
users.${defaultUser} = {
|
||||
home.file.".config/containers/storage.conf".text = ''
|
||||
[storage]
|
||||
driver = "overlay"
|
||||
'';
|
||||
home.file.".config/libvirt/libvirt.conf".text = ''
|
||||
uri_default = "qemu:///system"
|
||||
'';
|
||||
persist.state.directories = [
|
||||
".config/containers"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -15,6 +15,18 @@ in
|
||||
hyprlandUnstable = unstable.hyprland;
|
||||
hyprlandPortalUnstable = unstable.xdg-desktop-portal-hyprland;
|
||||
intel-vaapi-driver = prev.intel-vaapi-driver.override { enableHybridCodec = true; };
|
||||
llama-cpp =
|
||||
(prev.llama-cpp.override {
|
||||
blasSupport = false;
|
||||
cudaSupport = false;
|
||||
openclSupport = false;
|
||||
rocmSupport = false;
|
||||
rpcSupport = false;
|
||||
vulkanSupport = true;
|
||||
}).overrideAttrs
|
||||
(_: {
|
||||
enableParallelBuilding = true;
|
||||
});
|
||||
mesaUnstable = unstable.mesa;
|
||||
mesaUnstablei686 = unstable.driversi686Linux.mesa;
|
||||
# nix-alien = inputs.nix-alien.packages.${system}.nix-alien;
|
||||
|