Compare commits

..

No commits in common. "c58aeed9847e7edad3ff043c4a33d4e859b18b63" and "c0a14472f398f5e7ff3bd5bcaf24cbfc3d23f50d" have entirely different histories.

39 changed files with 191 additions and 911 deletions

354
flake.lock generated
View File

@ -8,11 +8,11 @@
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1751641756, "lastModified": 1749308545,
"narHash": "sha256-5fXKpa5iVpsnsHUhiqMQ1gXdOGwEKc61fXhaMZn7Gb4=", "narHash": "sha256-42gHr7DT2xk892STJHUF5FXDdlMg/99rr0c8a75jyO4=",
"owner": "AtaraxiaSjel", "owner": "AtaraxiaSjel",
"repo": "nur", "repo": "nur",
"rev": "73e0fbc32ab305d50b84ab351c31604f003b50a8", "rev": "f76d325552b69f7cacff4e9f86ecad5586844050",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -61,20 +61,16 @@
"devenv" "devenv"
], ],
"git-hooks": [ "git-hooks": [
"devenv", "devenv"
"git-hooks"
], ],
"nixpkgs": [ "nixpkgs": "nixpkgs_6"
"devenv",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1748883665, "lastModified": 1744206633,
"narHash": "sha256-R0W7uAg+BLoHjMRMQ8+oiSbTq8nkGz5RDpQ+ZfxxP3A=", "narHash": "sha256-pb5aYkE8FOoa4n123slgHiOf1UbNSnKe5pEZC+xXD5g=",
"owner": "cachix", "owner": "cachix",
"repo": "cachix", "repo": "cachix",
"rev": "f707778d902af4d62d8dd92c269f8e70de09acbe", "rev": "8a60090640b96f9df95d1ab99e5763a586be1404",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -89,11 +85,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1750153510, "lastModified": 1748080874,
"narHash": "sha256-NYHXXJZ9m4fJpKk9tKn/EExX87SqcBcRINOGF7hKRLI=", "narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "4e95eaf8a351956d75cc400318579967ca2b6d0f", "rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -102,29 +98,6 @@
"type": "github" "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": { "deploy-rs": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
@ -134,11 +107,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1749105467, "lastModified": 1727447169,
"narHash": "sha256-hXh76y/wDl15almBcqvjryB50B0BaiXJKk20f314RoE=", "narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=",
"owner": "serokell", "owner": "serokell",
"repo": "deploy-rs", "repo": "deploy-rs",
"rev": "6bc76b872374845ba9d645a2f012b764fecd765f", "rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -202,11 +175,11 @@
"nixpkgs": "nixpkgs_8" "nixpkgs": "nixpkgs_8"
}, },
"locked": { "locked": {
"lastModified": 1750885119, "lastModified": 1749029645,
"narHash": "sha256-nDxZMz1uk5suHPxE9Ky68g1OKbIs5QPGuszElkPyeoc=", "narHash": "sha256-XvsmjmiOccRLuhH1lzJoF6CxLF5Hkzx5Pfdd0LwSyiA=",
"owner": "cachix", "owner": "cachix",
"repo": "devenv", "repo": "devenv",
"rev": "8f6da8234e6bf6a501f89c4c3aa6732fdaa1a6ea", "rev": "14f517d8831564a421499fe10df179fcaba4cc6e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -222,11 +195,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750680230, "lastModified": 1748832438,
"narHash": "sha256-kD88T/NqmcgfOBFAwphN30ccaUdj6K6+LG0XdM2w2LA=", "narHash": "sha256-/CtyLVfNaFP7PrOPrTEuGOJBIhcBKVQ91KiEbtXJi0A=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "8fd2d6c75009ac75f9a6fb18c33a239806778d01", "rev": "58d6e5a83fff9982d57e0a0a994d4e5c0af441e4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -254,11 +227,11 @@
"flake-compat_2": { "flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1696426674,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -270,11 +243,11 @@
"flake-compat_3": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1747046372, "lastModified": 1733328505,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -333,11 +306,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1733312601, "lastModified": 1712014858,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -351,11 +324,11 @@
"nixpkgs-lib": "nixpkgs-lib_2" "nixpkgs-lib": "nixpkgs-lib_2"
}, },
"locked": { "locked": {
"lastModified": 1749398372, "lastModified": 1748821116,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", "narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", "rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -380,20 +353,6 @@
"type": "github" "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": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_2"
@ -430,6 +389,24 @@
"type": "github" "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": { "flakey-profile": {
"locked": { "locked": {
"lastModified": 1712898590, "lastModified": 1712898590,
@ -475,8 +452,7 @@
"git-hooks_2": { "git-hooks_2": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
"devenv", "devenv"
"flake-compat"
], ],
"gitignore": "gitignore_2", "gitignore": "gitignore_2",
"nixpkgs": [ "nixpkgs": [
@ -485,10 +461,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749636823, "lastModified": 1746537231,
"narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "623c56286de5a3193aa38891a6991b28f9bab056", "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -530,6 +507,7 @@
}, },
"locked": { "locked": {
"lastModified": 1709087332, "lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "gitignore.nix", "repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
@ -544,36 +522,15 @@
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"chaotic",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1751473516, "lastModified": 1748665073,
"narHash": "sha256-nJFR4f4hh879Mm7ne4SaUihxQAwu1FdnRCaA/8pHc1k=", "narHash": "sha256-RMhjnPKWtCoIIHiuR9QKD7xfsKb3agxzMfJY8V9MOew=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "bafcf336870c9daca80df1c4a09ef926fc497016", "rev": "282e1e029cb6ab4811114fc85110613d72771dea",
"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" "type": "github"
}, },
"original": { "original": {
@ -598,29 +555,23 @@
"type": "github" "type": "github"
} }
}, },
"jovian": { "libgit2": {
"inputs": { "flake": false,
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"chaotic",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1751358277, "lastModified": 1697646580,
"narHash": "sha256-Xz2JtcO9UNLur+OhoDVyYXqBQCW2KsouLyUU/NmwBQQ=", "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
"owner": "Jovian-Experiments", "owner": "libgit2",
"repo": "Jovian-NixOS", "repo": "libgit2",
"rev": "011d5a48d70c2a3ef35acd0e026e10b5844ce2a0", "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "Jovian-Experiments", "owner": "libgit2",
"repo": "Jovian-NixOS", "repo": "libgit2",
"type": "github" "type": "github"
} }
}, },
"libgit2": { "libgit2_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1697646580, "lastModified": 1697646580,
@ -655,11 +606,11 @@
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1750863598, "lastModified": 1748893954,
"narHash": "sha256-A9EwWUNC+8Fnsafi3Lcks2jNm6wjNoxfPS5TJXzpTk0=", "narHash": "sha256-Vj1GHarIzlJI3We5KnYcAQlSjn++fx7/lKRaiIVz3tg=",
"rev": "9a59106c172b7d5963e3dc2cf07ff5b19f8119d6", "rev": "019b17f4e93c098f99a9bc691be1f1c4df026c7d",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/9a59106c172b7d5963e3dc2cf07ff5b19f8119d6.tar.gz?rev=9a59106c172b7d5963e3dc2cf07ff5b19f8119d6" "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/019b17f4e93c098f99a9bc691be1f1c4df026c7d.tar.gz?rev=019b17f4e93c098f99a9bc691be1f1c4df026c7d"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -741,29 +692,6 @@
"type": "github" "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": { "nix-index-database": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -771,11 +699,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750565152, "lastModified": 1748751003,
"narHash": "sha256-A6ZIoIgaPPkzIVxKuaxwEJicPOeTwC/MD9iuC3FVhDM=", "narHash": "sha256-i4GZdKAK97S0ZMU3w4fqgEJr0cVywzqjugt2qZPrScs=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "78cd697acc2e492b4e92822a4913ffad279c20e6", "rev": "2860bee699248d828c2ed9097a1cd82c2f991b43",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -792,11 +720,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750817194, "lastModified": 1749002682,
"narHash": "sha256-9CCF4ANxZUXHwz74SeGQkFi4OYnm0BD2I3GeQvxMKPM=", "narHash": "sha256-v9K6RyPF/+4r/YJhjEH8y07VWE6Vj7Vl88E/K5m/uJ0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-vscode-extensions", "repo": "nix-vscode-extensions",
"rev": "fc01ad517af163c76d4493c5959fc5c44244a97f", "rev": "46eb9c16d8ccfedf8bc648be03f9b2993fe3c994",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -807,16 +735,17 @@
}, },
"nix2container": { "nix2container": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1749158376, "lastModified": 1744699837,
"narHash": "sha256-uirStFNxauh0lxzBowcp28X+Sq7JgsBIDnbwbAfZwf8=", "narHash": "sha256-mJ1OgxMM2VTTjSVrMZItM8DxttzROYbWkmEPvYF/Kpg=",
"owner": "nlewo", "owner": "nlewo",
"repo": "nix2container", "repo": "nix2container",
"rev": "0f8974c58755dba441df03598eefd1e1cd50e341", "rev": "78aadfc4ee1f9c2ee256e304b180ca356eb6a045",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -828,33 +757,32 @@
"nix_2": { "nix_2": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
"devenv", "devenv"
"flake-compat"
], ],
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
"git-hooks-nix": [ "libgit2": "libgit2_2",
"devenv",
"git-hooks"
],
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_7",
"nixpkgs-23-11": [ "nixpkgs-23-11": [
"devenv" "devenv"
], ],
"nixpkgs-regression": [ "nixpkgs-regression": [
"devenv" "devenv"
],
"pre-commit-hooks": [
"devenv"
] ]
}, },
"locked": { "locked": {
"lastModified": 1750117611, "lastModified": 1745930071,
"narHash": "sha256-LTwASICtyN3AjzlF9l2ZNAIVZqclio3yRcwwZy3QSJA=", "narHash": "sha256-bYyjarS3qSNqxfgc89IoVz8cAFDkF9yPE63EJr+h50s=",
"owner": "cachix", "owner": "domenkozar",
"repo": "nix", "repo": "nix",
"rev": "9e4fc95c388e2223d47da865503dee20d179776a", "rev": "b455edf3505f1bf0172b39a735caef94687d0d9c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "cachix", "owner": "domenkozar",
"ref": "devenv-2.30", "ref": "devenv-2.24",
"repo": "nix", "repo": "nix",
"type": "github" "type": "github"
} }
@ -907,11 +835,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1750741721, "lastModified": 1748929857,
"narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=", "narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4b1164c3215f018c4442463a27689d973cffd750", "rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -987,11 +915,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1751271578, "lastModified": 1733212471,
"narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=", "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df", "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1003,16 +931,16 @@
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1747179050, "lastModified": 1717432640,
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "release-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -1035,11 +963,11 @@
}, },
"nixpkgs_9": { "nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1750622754, "lastModified": 1748889542,
"narHash": "sha256-kMhs+YzV4vPGfuTpD3mwzibWUE6jotw5Al2wczI0Pv8=", "narHash": "sha256-Hb4iMhIbjX45GcrgOp3b8xnyli+ysRPqAgZ/LZgyT5k=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c7ab75210cb8cb16ddd8f290755d9558edde7ee1", "rev": "10d7f8d34e5eb9c0f9a0485186c1ca691d2c5922",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1053,14 +981,13 @@
"inputs": { "inputs": {
"ataraxiasjel-nur": "ataraxiasjel-nur", "ataraxiasjel-nur": "ataraxiasjel-nur",
"catppuccin": "catppuccin", "catppuccin": "catppuccin",
"chaotic": "chaotic",
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"devenv": "devenv_2", "devenv": "devenv_2",
"devenv-root": "devenv-root_2", "devenv-root": "devenv-root_2",
"disko": "disko", "disko": "disko",
"flake-parts": "flake-parts_4", "flake-parts": "flake-parts_4",
"flake-registry": "flake-registry", "flake-registry": "flake-registry",
"home-manager": "home-manager_2", "home-manager": "home-manager",
"impermanence": "impermanence", "impermanence": "impermanence",
"lite-config": "lite-config", "lite-config": "lite-config",
"lix": "lix", "lix": "lix",
@ -1071,29 +998,7 @@
"nix2container": "nix2container", "nix2container": "nix2container",
"nixpkgs": "nixpkgs_9", "nixpkgs": "nixpkgs_9",
"nixpkgs-unstable": "nixpkgs-unstable", "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": { "sops-nix": {
@ -1103,11 +1008,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750119275, "lastModified": 1747603214,
"narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=", "narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2", "rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1163,16 +1068,16 @@
}, },
"systems_4": { "systems_4": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1681028828,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default-linux", "repo": "default",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default-linux", "repo": "default",
"type": "github" "type": "github"
} }
}, },
@ -1181,11 +1086,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1701680307,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1193,27 +1098,6 @@
"repo": "flake-utils", "repo": "flake-utils",
"type": "github" "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", "root": "root",

View File

@ -33,7 +33,6 @@
ataraxiasjel-nur.url = "github:AtaraxiaSjel/nur"; ataraxiasjel-nur.url = "github:AtaraxiaSjel/nur";
catppuccin.url = "github:catppuccin/nix"; catppuccin.url = "github:catppuccin/nix";
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
deploy-rs = { deploy-rs = {
url = "github:serokell/deploy-rs"; url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -64,10 +63,6 @@
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
walker = {
url = "github:abenz1267/walker";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
@ -103,8 +98,6 @@
}; };
systemModules = [ systemModules = [
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
inputs.chaotic.nixosModules.nyx-cache
inputs.chaotic.nixosModules.nyx-overlay
./modules/nixos ./modules/nixos
]; ];
homeModules = [ ./modules/home ]; homeModules = [ ./modules/home ];

View File

@ -24,12 +24,8 @@
# }; # };
# }; # };
services.scx.enable = true;
services.scx.scheduler = "scx_rustland";
boot = { boot = {
kernelPackages = pkgs.linuxPackages_cachyos; zfs.package = pkgs.zfs_unstable;
zfs.package = pkgs.zfs_cachyos;
loader = { loader = {
grub = { grub = {

View File

@ -65,7 +65,6 @@ in
# Home-manager # Home-manager
home-manager.users.${defaultUser} = { home-manager.users.${defaultUser} = {
ataraxia.defaults.role = "desktop"; ataraxia.defaults.role = "desktop";
ataraxia.programs.lutris.enable = true;
ataraxia.programs.mangohud.enable = true; ataraxia.programs.mangohud.enable = true;
ataraxia.services.modprobed-db.enable = true; ataraxia.services.modprobed-db.enable = true;
ataraxia.theme.catppuccin.enable = true; ataraxia.theme.catppuccin.enable = true;
@ -85,11 +84,9 @@ in
home.packages = with pkgs; [ home.packages = with pkgs; [
devenv devenv
llama-cpp
nh nh
nix-diff nix-diff
nix-update nix-update
nix-update-docker-image
nixfmt-rfc-style nixfmt-rfc-style
nixos-anywhere nixos-anywhere
@ -118,7 +115,6 @@ in
]; ];
persist.state.directories = [ persist.state.directories = [
".config/image-updater"
".config/sops/age" ".config/sops/age"
".config/WarThunder" ".config/WarThunder"
"nixos-config" "nixos-config"
@ -135,13 +131,8 @@ in
wal_recycle = "off"; wal_recycle = "off";
}; };
# ataraxia.virtualisation.docker = true;
ataraxia.virtualisation.libvirt = true;
ataraxia.virtualisation.podman = true;
ataraxia.programs.corectrl.enable = true; ataraxia.programs.corectrl.enable = true;
ataraxia.programs.steam.enable = true; ataraxia.programs.steam.enable = true;
ataraxia.programs.waydroid.enable = true;
ataraxia.vpn.sing-box.enable = true; ataraxia.vpn.sing-box.enable = true;
ataraxia.vpn.sing-box.config = "ataraxia-singbox"; ataraxia.vpn.sing-box.config = "ataraxia-singbox";
services.tailscale = { services.tailscale = {
@ -180,9 +171,8 @@ in
fsType = "nfs4"; fsType = "nfs4";
options = [ options = [
"nfsvers=4.2" "nfsvers=4.2"
"noauto"
"x-systemd.automount" "x-systemd.automount"
"x-systemd.idle-timeout=1800" "noauto"
]; ];
}; };
}; };

View File

@ -109,8 +109,6 @@ in
"font.name.monospace.x-western" = fonts.mono.family; "font.name.monospace.x-western" = fonts.mono.family;
"font.name.sans-serif.x-western" = fonts.sans.family; "font.name.sans-serif.x-western" = fonts.sans.family;
"font.name.serif.x-western" = fonts.serif.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.background_color" = colors.color0;
"browser.display.foreground_color" = colors.color5; "browser.display.foreground_color" = colors.color5;
"browser.anchor_color" = colors.color13; "browser.anchor_color" = colors.color13;
@ -162,8 +160,6 @@ in
"font.name.monospace.x-western" = fonts.mono.family; "font.name.monospace.x-western" = fonts.mono.family;
"font.name.sans-serif.x-western" = fonts.sans.family; "font.name.sans-serif.x-western" = fonts.sans.family;
"font.name.serif.x-western" = fonts.serif.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.background_color" = colors.color0;
"browser.display.foreground_color" = colors.color5; "browser.display.foreground_color" = colors.color5;
"browser.anchor_color" = colors.color13; "browser.anchor_color" = colors.color13;

View File

@ -1,24 +0,0 @@
{
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" ];
};
}

View File

@ -1,93 +0,0 @@
{
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;
};
};
};
}

View File

@ -27,7 +27,6 @@ in
bat bat
bottom bottom
fd fd
file
libqalculate libqalculate
p7zip p7zip
pinfo pinfo
@ -40,7 +39,6 @@ in
tldr tldr
translate-shell translate-shell
unrar unrar
xarchiver
]; ];
persist.state.directories = [ persist.state.directories = [

View File

@ -81,9 +81,6 @@ in
polypus74.trusty-rusty-snippets polypus74.trusty-rusty-snippets
rust-lang.rust-analyzer rust-lang.rust-analyzer
ext-nixpkgs.vadimcn.vscode-lldb ext-nixpkgs.vadimcn.vscode-lldb
# AI
ggml-org.llama-vscode
rooveterinaryinc.roo-cline
]; ];
# mutableExtensionsDir = false; # mutableExtensionsDir = false;
userSettings = { userSettings = {
@ -97,7 +94,6 @@ in
"strings" = true; "strings" = true;
}; };
"files.autoSave" = "afterDelay"; "files.autoSave" = "afterDelay";
"files.enableTrash" = false;
"files.exclude" = { "files.exclude" = {
"**/.classpath" = true; "**/.classpath" = true;
"**/.devenv" = true; "**/.devenv" = true;
@ -119,11 +115,6 @@ in
"license.default" = "mit"; "license.default" = "mit";
"license.extension" = ".md"; "license.extension" = ".md";
"license.year" = "auto"; "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.enableLanguageServer" = true;
"nix.formatterPath" = getExe pkgs.nixfmt-rfc-style; "nix.formatterPath" = getExe pkgs.nixfmt-rfc-style;
# "nix.serverPath" = getExe pkgs.nil; # "nix.serverPath" = getExe pkgs.nil;
@ -142,11 +133,6 @@ in
}; };
}; };
}; };
"roo-cline.allowedCommands" = [
"git log"
"git diff"
"git show"
];
"rust-analyzer.check.command" = "clippy"; "rust-analyzer.check.command" = "clippy";
"search.exclude" = { "search.exclude" = {
"**/.devenv" = true; "**/.devenv" = true;

View File

@ -1,37 +0,0 @@
{
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" ];
};
}

View File

@ -1,25 +0,0 @@
{
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";
};
};
}

View File

@ -8,20 +8,12 @@
let let
inherit (lib) inherit (lib)
escapeShellArg escapeShellArg
isAttrs
mkEnableOption mkEnableOption
mkIf mkIf
mkOption mkOption
recursiveUpdate recursiveUpdate
; ;
inherit (lib.types) inherit (lib.types) listOf path str;
either
enum
listOf
path
str
submodule
;
inherit (builtins) concatMap; inherit (builtins) concatMap;
cfg = config.persist; cfg = config.persist;
username = config.home.username; username = config.home.username;
@ -33,47 +25,14 @@ in
options = options =
let 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 = { common = {
directories = mkOption { directories = mkOption {
type = listOf (either str directoryEntryType); type = listOf str;
default = [ ]; 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 { files = mkOption {
type = listOf str; type = listOf str;
default = [ ]; default = [ ];
description = "List of files to persist.";
example = [ ".config/foo.conf" ];
}; };
}; };
in in
@ -84,10 +43,12 @@ in
type = path; type = path;
default = "/persist${config.home.homeDirectory}"; default = "/persist${config.home.homeDirectory}";
}; };
# Stuff that matters
# TODO backups # TODO backups
state = recursiveUpdate { state = recursiveUpdate {
# backup = {...}; # backup = {...};
} common; } common;
# Stuff that's just there to speed up the system
cache = recursiveUpdate { cache = recursiveUpdate {
clean = { clean = {
enable = mkEnableOption "cleaning the cache files and directories"; enable = mkEnableOption "cleaning the cache files and directories";
@ -101,6 +62,7 @@ in
}; };
}; };
# TODO: filter persist paths like in nixos module
config = config =
let let
takeAll = what: concatMap (x: x.${what}); takeAll = what: concatMap (x: x.${what});
@ -110,9 +72,6 @@ in
]; ];
allFiles = takeAll "files" persists; allFiles = takeAll "files" persists;
allDirs = takeAll "directories" 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 in
mkIf cfg.enable { mkIf cfg.enable {
home.persistence.${cfg.persistRoot} = { home.persistence.${cfg.persistRoot} = {
@ -132,8 +91,8 @@ in
"Videos" "Videos"
".config/dconf" ".config/dconf"
".local/share/nix" ".local/share/nix"
".local/share/systemd"
".ssh" ".ssh"
# { directory = ".ssh"; mode = "0700"; }
]; ];
}; };
@ -143,25 +102,18 @@ in
Description = "Cleaning up cache files and directories for user ${username}"; Description = "Cleaning up cache files and directories for user ${username}";
Wants = [ "modprobed-db.timer" ]; Wants = [ "modprobed-db.timer" ];
}; };
Service = Service = {
let ExecStart = pkgs.writeShellScript "" ''
# Extract only the path strings for the cleanup script
cacheDirPaths = getPaths cfg.cache.directories;
in
{
ExecStart = pkgs.writeShellScript "" ''
${builtins.concatStringsSep "\n" ( ${builtins.concatStringsSep "\n" (
map (x: "${pkgs.coreutils}/bin/rm ${escapeShellArg x}") (absoluteHomePath cfg.cache.files) map (x: "rm ${escapeShellArg x}") (absoluteHomePath cfg.cache.files)
)} )}
${builtins.concatStringsSep "\n" ( ${builtins.concatStringsSep "\n" (
map (x: "${pkgs.findutils}/bin/find ${escapeShellArg x} -mindepth 1 -delete") ( map (x: "rm -rf ${escapeShellArg x}") (absoluteHomePath cfg.cache.directories)
absoluteHomePath cacheDirPaths )}
) '';
)} Type = "simple";
''; };
Type = "simple";
};
Install.WantedBy = [ "default.target" ]; Install.WantedBy = [ "default.target" ];
}; };
timers."persist-cache-cleanup-${username}" = { timers."persist-cache-cleanup-${username}" = {

View File

@ -47,7 +47,6 @@ in
ataraxia.security.pass-secret-service.enable = mkDefault true; ataraxia.security.pass-secret-service.enable = mkDefault true;
ataraxia.security.password-store.enable = mkDefault true; ataraxia.security.password-store.enable = mkDefault true;
programs.micro.enable = mkDefault true;
programs.nix-index.enable = mkDefault true; programs.nix-index.enable = mkDefault true;
programs.nix-index-database.comma.enable = mkDefault true; programs.nix-index-database.comma.enable = mkDefault true;
@ -82,20 +81,16 @@ in
ataraxia.programs.default.enable = mkDefault true; ataraxia.programs.default.enable = mkDefault true;
ataraxia.programs.firefox.enable = mkDefault true; ataraxia.programs.firefox.enable = mkDefault true;
ataraxia.programs.kitty.enable = mkDefault true; ataraxia.programs.kitty.enable = mkDefault true;
ataraxia.programs.mimeapps.enable = mkDefault true;
ataraxia.programs.mpv.enable = mkDefault true; ataraxia.programs.mpv.enable = mkDefault true;
ataraxia.programs.rofi.enable = mkDefault false; ataraxia.programs.rofi.enable = mkDefault true;
ataraxia.programs.spotify.enable = mkDefault true; ataraxia.programs.spotify.enable = mkDefault true;
ataraxia.programs.telegram.enable = mkDefault true; ataraxia.programs.telegram.enable = mkDefault true;
ataraxia.programs.thunderbird.enable = mkDefault true; ataraxia.programs.thunderbird.enable = mkDefault true;
ataraxia.programs.vscode.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.enable = mkDefault true;
ataraxia.wayland.hyprland.enable = mkDefault true; ataraxia.wayland.hyprland.enable = mkDefault true;
ataraxia.wayland.mako.enable = mkDefault true; ataraxia.wayland.mako.enable = mkDefault true;
ataraxia.wayland.waybar.enable = mkDefault true; ataraxia.wayland.waybar.enable = mkDefault true;
ataraxia.wayland.wlogout.enable = mkDefault true;
}; };
in in
mkMerge [ mkMerge [

View File

@ -9,11 +9,9 @@ let
mkEnableOption mkEnableOption
mkIf mkIf
mkOption mkOption
removePrefix
; ;
inherit (lib.types) nullOr path str; inherit (lib.types) nullOr path str;
cfg = config.ataraxia.security.password-store; cfg = config.ataraxia.security.password-store;
homeDir = config.home.homeDirectory;
in in
{ {
options.ataraxia.security.password-store = { options.ataraxia.security.password-store = {
@ -64,6 +62,6 @@ in
settings.PASSWORD_STORE_DIR = cfg.store; settings.PASSWORD_STORE_DIR = cfg.store;
}; };
persist.state.directories = [ (removePrefix "${homeDir}/" cfg.store) ]; persist.state.directories = [ cfg.store ];
}; };
} }

View File

@ -136,11 +136,6 @@ in
"gtk-4.0/gtk.css".source = "${gtk4Dir}/gtk.css"; "gtk-4.0/gtk.css".source = "${gtk4Dir}/gtk.css";
"gtk-4.0/gtk-dark.css".source = "${gtk4Dir}/gtk-dark.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";
};
};
}) })
]; ];
} }

View File

@ -1,4 +1,8 @@
{ config, lib, ... }: {
config,
lib,
...
}:
let let
inherit (lib) mkEnableOption mkIf unique; inherit (lib) mkEnableOption mkIf unique;
cfg = config.ataraxia.defaults.fonts; cfg = config.ataraxia.defaults.fonts;
@ -17,7 +21,6 @@ in
fonts.mono.package fonts.mono.package
fonts.emoji.package fonts.emoji.package
fonts.icons.package fonts.icons.package
fonts.cyrillic.package
]; ];
fonts = { fonts = {
@ -26,14 +29,8 @@ in
defaultFonts = { defaultFonts = {
emoji = [ fonts.emoji.family ]; emoji = [ fonts.emoji.family ];
monospace = [ fonts.mono.family ]; monospace = [ fonts.mono.family ];
sansSerif = [ sansSerif = [ fonts.sans.family ];
fonts.sans.family serif = [ fonts.serif.family ];
fonts.cyrillic.family
];
serif = [
fonts.serif.family
fonts.cyrillic.family
];
}; };
}; };
}; };

View File

@ -47,10 +47,6 @@ in
type = submodule fontSubmodule; type = submodule fontSubmodule;
default = { }; default = { };
}; };
cyrillic = mkOption {
type = submodule fontSubmodule;
default = { };
};
size = mkOption { size = mkOption {
type = submodule { type = submodule {
options = options =
@ -129,10 +125,6 @@ in
family = "Rose-Pine"; family = "Rose-Pine";
package = pkgs.rosepine-gtk-icons; package = pkgs.rosepine-gtk-icons;
}; };
cyrillic = {
family = "PT Sans";
package = pkgs.paratype-pt-sans;
};
size.big = 14; size.big = 14;
size.normal = 12; size.normal = 12;
size.small = 11; size.small = 11;

View File

@ -14,9 +14,6 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
# For pinentry-gnome3
home.packages = [ pkgs.gcr ];
programs.gpg = { programs.gpg = {
enable = true; enable = true;
homedir = "${config.xdg.dataHome}/gnupg"; homedir = "${config.xdg.dataHome}/gnupg";
@ -25,7 +22,6 @@ in
enable = true; enable = true;
enableSshSupport = true; enableSshSupport = true;
pinentry.package = pkgs.pinentry-gnome3; pinentry.package = pkgs.pinentry-gnome3;
pinentry.program = "pinentry";
sshKeys = [ sshKeys = [
"7A7130ABF128CC2C32B3D6AD27515056B0193CE1" "7A7130ABF128CC2C32B3D6AD27515056B0193CE1"
"E6A6377C3D0827C36428A290199FDB3B91414AFE" "E6A6377C3D0827C36428A290199FDB3B91414AFE"

View File

@ -8,7 +8,6 @@
let let
inherit (builtins) mapAttrs; inherit (builtins) mapAttrs;
inherit (lib) inherit (lib)
getExe
mkEnableOption mkEnableOption
mkDefault mkDefault
mkIf mkIf
@ -21,21 +20,6 @@ let
useNixosHyprland = osConfig != null && osConfig.programs.hyprland.enable; useNixosHyprland = osConfig != null && osConfig.programs.hyprland.enable;
useWithUWSM = osConfig != null && osConfig.programs.hyprland.withUWSM; useWithUWSM = osConfig != null && osConfig.programs.hyprland.withUWSM;
execApp = optionalString useWithUWSM "uwsm app --"; 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 in
{ {
options.ataraxia.wayland.hyprland = { options.ataraxia.wayland.hyprland = {
@ -121,7 +105,6 @@ in
misc = { misc = {
disable_hyprland_logo = true; disable_hyprland_logo = true;
disable_splash_rendering = true; disable_splash_rendering = true;
enable_anr_dialog = false;
mouse_move_enables_dpms = true; mouse_move_enables_dpms = true;
vfr = false; vfr = false;
vrr = 0; # TODO: Remove after flickering is fixed vrr = 0; # TODO: Remove after flickering is fixed
@ -149,8 +132,8 @@ in
"$mod,p,exec,${execApp} wlogout -b 5" "$mod,p,exec,${execApp} wlogout -b 5"
# "$mod,escape,exec,${execApp} ${apps.monitor.cmd}" # "$mod,escape,exec,${execApp} ${apps.monitor.cmd}"
"$mod,w,exec,${execApp} ${apps.dmenu.desktop}" "$mod,w,exec,${execApp} ${apps.dmenu.desktop} -show run"
"$mod CTRL,w,exec,${execApp} ${apps.dmenu.desktop}" "$mod CTRL,w,exec,${execApp} ${apps.dmenu.desktop} -show drun -modi drun -show-icons"
"$mod,return,exec,${execApp} ${apps.term.cmd}" "$mod,return,exec,${execApp} ${apps.term.cmd}"
"$mod SHIFT,return,exec,${execApp} nop kitti3" "$mod SHIFT,return,exec,${execApp} nop kitti3"
"$mod,e,exec,${execApp} ${apps.editor.cmd}" "$mod,e,exec,${execApp} ${apps.editor.cmd}"
@ -167,8 +150,8 @@ in
"$mod SHIFT,period,exec,${execApp} pamixer -i 2" "$mod SHIFT,period,exec,${execApp} pamixer -i 2"
"$mod,i,exec,${execApp} pavucontrol" "$mod,i,exec,${execApp} pavucontrol"
"$mod,d,exec,${execApp} ${apps.fm.cmd}" "$mod,d,exec,${execApp} ${apps.fm.cmd}"
"$mod,y,exec,${execApp} ${yt-mpv}" # "$mod,y,exec,${execApp} ${pkgs.youtube-to-mpv}/bin/yt-mpv"
"$mod SHIFT,Y,exec,${execApp} ${yt-mpv} --no-video" # "$mod SHIFT,Y,exec,${execApp} ${pkgs.youtube-to-mpv}/bin/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,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 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'" "$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'"
@ -185,7 +168,7 @@ in
"$mod,x,togglesplit," "$mod,x,togglesplit,"
"$mod,c,changegroupactive,b" "$mod,c,changegroupactive,b"
"$mod,v,changegroupactive,f" "$mod,v,changegroupactive,f"
"$mod,V,exec,cliphist list | ${apps.dmenu.desktop} -d -k -t 's' | cliphist decode | wl-copy" "$mod,V,exec,${execApp} cliphist list | ${apps.dmenu.desktop} -dmenu | cliphist decode | wl-copy"
"$mod,1,workspace,1" "$mod,1,workspace,1"
"$mod,2,workspace,2" "$mod,2,workspace,2"
@ -285,9 +268,5 @@ in
]; ];
}; };
}; };
persist.state.directories = [
".local/share/hyprland"
];
}; };
} }

View File

@ -22,10 +22,10 @@ in
max-icon-size = 24; max-icon-size = 24;
max-visible = 10; max-visible = 10;
width = 500; width = 500;
background-color = mkDefault "#${colors.color0}"; backgroundColor = mkDefault "#${colors.color0}AA";
text-color = mkDefault "#${colors.color5}"; textColor = mkDefault "#${colors.color5}";
border-color = mkDefault "#${colors.color13}"; borderColor = mkDefault "#${colors.color13}AA";
progress-color = mkDefault "over #${colors.color11}"; progressColor = mkDefault "over #${colors.color11}";
}; };
}; };
}; };

View File

@ -47,13 +47,13 @@ in
device = "intel_backlight"; device = "intel_backlight";
format = "{percent}% {icon}"; format = "{percent}% {icon}";
format-icons = [ format-icons = [
"󰃚" ""
"󰃛" ""
"󰃜" ""
"󰃝" ""
"󰃞" ""
"󰃟" ""
"󰃠" ""
]; ];
# min-length = 7; # min-length = 7;
}; };
@ -99,11 +99,11 @@ in
}; };
cpu = { cpu = {
interval = 4; interval = 4;
format = "<span color=\"#7aa2f7\"></span>{usage}%"; format = "<span color=\"#7aa2f7\"></span>{usage}%";
}; };
disk = { disk = {
interval = 60; interval = 60;
format = "<span color=\"#7aa2f7\"></span>{free}"; format = "<span color=\"#7aa2f7\"></span>{free}";
path = "/home"; path = "/home";
}; };
"hyprland/window" = { "hyprland/window" = {
@ -114,22 +114,20 @@ in
on-click = "activate"; on-click = "activate";
disable-scroll = true; disable-scroll = true;
format-icons = { format-icons = {
"10" = ""; "10" = "0";
"Email" = ""; "Messengers" = "Msg";
"Messengers" = ""; "Music" = "Mus";
"Music" = "";
"Steam" = "";
}; };
}; };
memory = { memory = {
format = "<span color=\"#7aa2f7\">󰍛</span>{used}GiB"; format = "<span color=\"#7aa2f7\"></span>{used}GiB";
interval = 4; interval = 4;
}; };
temperature = { temperature = {
# "hwmon-path" = "/sys/class/hwmon/hwmon0/temp1_input"; # "hwmon-path" = "/sys/class/hwmon/hwmon0/temp1_input";
critical-threshold = 80; critical-threshold = 80;
format = "<span color=\"#7aa2f7\"></span>{temperatureC}°C"; format = "<span color=\"#7aa2f7\">\uf4f5</span>{temperatureC}°C";
format-critical = "<span color=\"#f7768e\"> </span>{temperatureC}°C"; format-critical = "<span color=\"#f7768e\"> </span>{temperatureC}°C";
interval = 4; interval = 4;
}; };
tray = { tray = {
@ -139,13 +137,13 @@ in
wireplumber = { wireplumber = {
scroll-step = 5; scroll-step = 5;
format = "<span color=\"#7aa2f7\">{icon} </span>{volume}%"; format = "<span color=\"#7aa2f7\">{icon} </span>{volume}%";
format-muted = "<span color=\"#f7768e\">󰖁</span>Muted"; format-muted = "<span color=\"#f7768e\">\ueee8</span>Muted";
format-bluetooth = "<span color=\"#7aa2f7\"> </span>{volume}%"; format-bluetooth = "<span color=\"#7aa2f7\">\uf282 </span>{volume}%";
on-click-right = "blueman-manager"; on-click-right = "blueman-manager";
format-icons = [ format-icons = [
"󰕿" "\uf026 "
"󰖀" "\uf027 "
"󰕾" "\uf028 "
]; ];
on-click = "pavucontrol"; on-click = "pavucontrol";
}; };

View File

@ -1,117 +0,0 @@
{ 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;
}
'';
};
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -16,7 +16,6 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.gamemode.enable = true;
programs.gamescope.enable = true; programs.gamescope.enable = true;
programs.gamescope.capSysNice = false; programs.gamescope.capSysNice = false;

View File

@ -1,36 +0,0 @@
{
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";
}
];
};
};
};
}

View File

@ -5,12 +5,7 @@
... ...
}: }:
let let
inherit (lib) inherit (lib) mkDefault mkEnableOption mkIf;
mkDefault
mkEnableOption
mkIf
mkOverride
;
cfg = config.ataraxia.defaults.boot; cfg = config.ataraxia.defaults.boot;
in in
@ -35,8 +30,7 @@ in
"zswap.enabled=0" "zswap.enabled=0"
]; ];
kernelPackages = mkOverride 900 pkgs.linuxPackages_xanmod_latest; kernelPackages = pkgs.linuxPackages_xanmod_latest;
zfs.package = mkOverride 900 pkgs.zfs_unstable;
consoleLogLevel = 3; consoleLogLevel = 3;

View File

@ -1,7 +1,6 @@
{ {
config, config,
lib, lib,
pkgs,
inputs, inputs,
... ...
}: }:
@ -9,10 +8,12 @@ let
inherit (lib) inherit (lib)
escapeShellArg escapeShellArg
hasPrefix hasPrefix
hasSuffix
mkEnableOption mkEnableOption
mkDefault mkDefault
mkIf mkIf
mkOption mkOption
optionalString
recursiveUpdate recursiveUpdate
unique unique
; ;
@ -22,7 +23,8 @@ let
btrfs = config.ataraxia.filesystems.btrfs.mountpoints; btrfs = config.ataraxia.filesystems.btrfs.mountpoints;
zfs = config.ataraxia.filesystems.zfs.mountpoints; zfs = config.ataraxia.filesystems.zfs.mountpoints;
mountpoints = unique (btrfs ++ zfs); mountpoints = map (x: "${x}${optionalString (!(hasSuffix "/" x)) "/"}") (unique (btrfs ++ zfs));
subtractListsPrefix = a: filter (dir: !(any (pref: hasPrefix pref dir) a)); subtractListsPrefix = a: filter (dir: !(any (pref: hasPrefix pref dir) a));
in in
{ {
@ -92,13 +94,9 @@ in
systemd.services.persist-cache-cleanup = mkIf cfg.cache.clean.enable { systemd.services.persist-cache-cleanup = mkIf cfg.cache.clean.enable {
description = "Cleaning up cache files and directories"; description = "Cleaning up cache files and directories";
script = '' script = ''
${builtins.concatStringsSep "\n" ( ${builtins.concatStringsSep "\n" (map (x: "rm ${escapeShellArg x}") cfg.cache.files)}
map (x: "${pkgs.coreutils}/bin/rm ${escapeShellArg x}") cfg.cache.files
)}
${builtins.concatStringsSep "\n" ( ${builtins.concatStringsSep "\n" (map (x: "rm -rf ${escapeShellArg x}") cfg.cache.directories)}
map (x: "${pkgs.findutils}/bin/find ${escapeShellArg x} -mindepth 1 -delete") cfg.cache.directories
)}
''; '';
startAt = cfg.cache.clean.dates; startAt = cfg.cache.clean.dates;
}; };

View File

@ -60,7 +60,7 @@ in
services.userborn.enable = mkDefault true; services.userborn.enable = mkDefault true;
system.rebuild.enableNg = mkDefault true; system.rebuild.enableNg = mkDefault true;
system.switch.enableNg = mkDefault true; system.switch.enableNg = mkDefault true;
system.etc.overlay.enable = mkDefault false; system.etc.overlay.enable = mkDefault true;
system.etc.overlay.mutable = mkDefault true; system.etc.overlay.mutable = mkDefault true;
systemd.services.systemd-timesyncd.wantedBy = [ systemd.services.systemd-timesyncd.wantedBy = [
@ -84,10 +84,6 @@ in
serverRole = recursiveUpdate baseRole { serverRole = recursiveUpdate baseRole {
ataraxia.profiles.hardened = mkDefault true; ataraxia.profiles.hardened = mkDefault true;
ataraxia.profiles.minimal = mkDefault true; ataraxia.profiles.minimal = mkDefault true;
ataraxia.virtualisation.podman = mkDefault true;
ataraxia.virtualisation.libvirt = mkDefault true;
boot.supportedFilesystems = [ "nfs" ];
time.timeZone = "Etc/UTC"; time.timeZone = "Etc/UTC";
zramSwap.memoryPercent = 100; zramSwap.memoryPercent = 100;
@ -95,16 +91,18 @@ in
desktopRole = recursiveUpdate baseRole { desktopRole = recursiveUpdate baseRole {
ataraxia.defaults.hardware.graphics = mkDefault true; ataraxia.defaults.hardware.graphics = mkDefault true;
ataraxia.defaults.sound.enable = mkDefault true; ataraxia.defaults.sound.enable = mkDefault true;
ataraxia.wayland.enable = mkDefault true; ataraxia.wayland.enable = mkDefault true;
ataraxia.wayland.hyprland.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; 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; services.getty.autologinUser = mkDefault defaultUser;
location = { location = {

View File

@ -1,110 +0,0 @@
{
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"
];
};
};
};
}

View File

@ -15,18 +15,6 @@ in
hyprlandUnstable = unstable.hyprland; hyprlandUnstable = unstable.hyprland;
hyprlandPortalUnstable = unstable.xdg-desktop-portal-hyprland; hyprlandPortalUnstable = unstable.xdg-desktop-portal-hyprland;
intel-vaapi-driver = prev.intel-vaapi-driver.override { enableHybridCodec = true; }; 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; mesaUnstable = unstable.mesa;
mesaUnstablei686 = unstable.driversi686Linux.mesa; mesaUnstablei686 = unstable.driversi686Linux.mesa;
# nix-alien = inputs.nix-alien.packages.${system}.nix-alien; # nix-alien = inputs.nix-alien.packages.${system}.nix-alien;