From 44951847485167b39da34b37463ddb897155e786 Mon Sep 17 00:00:00 2001 From: Maksim Bengraf Date: Wed, 3 Jul 2024 14:55:09 +0700 Subject: [PATCH] initial commit --- flake.lock | 767 ++++++++++++++++++++++++++++++ flake.nix | 51 ++ home/home.nix | 11 + home/modules/dconf.nix | 7 + home/modules/git.nix | 18 + home/modules/gtk.nix | 6 + home/modules/helix.nix | 11 + home/modules/imports.nix | 8 + overlay/gnome.nix | 16 + overlay/imports.nix | 5 + system/configuration.nix | 22 + system/hardware-configuration.nix | 38 ++ system/modules/flatpak.nix | 3 + system/modules/gc.nix | 7 + system/modules/gnome.nix | 20 + system/modules/imports.nix | 14 + system/modules/kernel.nix | 3 + system/modules/networking.nix | 7 + system/modules/other.nix | 6 + system/modules/packages.nix | 37 ++ system/modules/pipewire.nix | 11 + system/modules/systemd-boot.nix | 10 + system/modules/user.nix | 9 + 23 files changed, 1087 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home/home.nix create mode 100644 home/modules/dconf.nix create mode 100644 home/modules/git.nix create mode 100644 home/modules/gtk.nix create mode 100644 home/modules/helix.nix create mode 100644 home/modules/imports.nix create mode 100644 overlay/gnome.nix create mode 100644 overlay/imports.nix create mode 100644 system/configuration.nix create mode 100644 system/hardware-configuration.nix create mode 100644 system/modules/flatpak.nix create mode 100644 system/modules/gc.nix create mode 100644 system/modules/gnome.nix create mode 100644 system/modules/imports.nix create mode 100644 system/modules/kernel.nix create mode 100644 system/modules/networking.nix create mode 100644 system/modules/other.nix create mode 100644 system/modules/packages.nix create mode 100644 system/modules/pipewire.nix create mode 100644 system/modules/systemd-boot.nix create mode 100644 system/modules/user.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..dc0142e --- /dev/null +++ b/flake.lock @@ -0,0 +1,767 @@ +{ + "nodes": { + "attic": { + "inputs": { + "crane": [ + "chaotic", + "crane" + ], + "flake-compat": [ + "chaotic", + "flake-compat" + ], + "flake-utils": [ + "chaotic", + "flake-utils" + ], + "nixpkgs": [ + "chaotic", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1711742460, + "narHash": "sha256-0O4v6e4a1toxXZ2gf5INhg4WPE5C5T+SVvsBt+45Mcc=", + "rev": "4dbdbee45728d8ce5788db6461aaaa89d98081f0", + "revCount": 197, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/zhaofengli/attic/0.1.197%2Brev-4dbdbee45728d8ce5788db6461aaaa89d98081f0/018e8bce-1229-7d78-a052-5121272f0341/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/zhaofengli/attic/0.1.%2A.tar.gz" + } + }, + "chaotic": { + "inputs": { + "attic": "attic", + "compare-to": "compare-to", + "conduit": "conduit", + "crane": "crane", + "fenix": "fenix", + "flake-compat": "flake-compat", + "flake-schemas": "flake-schemas", + "flake-utils": "flake-utils", + "home-manager": "home-manager", + "jovian": "jovian", + "jujutsu": "jujutsu", + "niri": "niri", + "nix-filter": "nix-filter", + "nixpkgs": "nixpkgs", + "systems": "systems", + "yafas": "yafas" + }, + "locked": { + "lastModified": 1713870710, + "narHash": "sha256-u6C4NkKCfb6hRddhfj7eHppGbG21pR4MpfqRI4t4lqk=", + "owner": "chaotic-cx", + "repo": "nyx", + "rev": "8941281e21a66f1c689b7570d8b8f745a21fb8c6", + "type": "github" + }, + "original": { + "owner": "chaotic-cx", + "ref": "nyxpkgs-unstable", + "repo": "nyx", + "type": "github" + } + }, + "compare-to": { + "locked": { + "lastModified": 1695341185, + "narHash": "sha256-htO6DSbWyCgaDkxi7foPjXwJFPzGjVt3RRUbPSpNtZY=", + "rev": "98b8e330823a3570d328720f87a1153f8a7f2224", + "revCount": 2, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/chaotic-cx/nix-empty-flake/0.1.2%2Brev-98b8e330823a3570d328720f87a1153f8a7f2224/018aba35-d228-7fa9-b205-7616c89ef4e0/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/chaotic-cx/nix-empty-flake/%3D0.1.2.tar.gz" + } + }, + "conduit": { + "inputs": { + "attic": [ + "chaotic", + "attic" + ], + "crane": [ + "chaotic", + "crane" + ], + "fenix": [ + "chaotic", + "fenix" + ], + "flake-compat": [ + "chaotic", + "flake-compat" + ], + "flake-utils": [ + "chaotic", + "flake-utils" + ], + "nix-filter": [ + "chaotic", + "nix-filter" + ], + "nixpkgs": [ + "chaotic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1713379868, + "narHash": "sha256-L/QhOkRmzB/gmwrWrqxct/sD6XIL4AOGguRhb4ahO/8=", + "owner": "girlbossceo", + "repo": "conduwuit", + "rev": "d0a9666a2976b983daf72eb0c0f8d41c04443f84", + "type": "github" + }, + "original": { + "owner": "girlbossceo", + "repo": "conduwuit", + "type": "github" + } + }, + "crane": { + "inputs": { + "nixpkgs": [ + "chaotic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1706473297, + "narHash": "sha256-FbxuYIrHaXpsYCLtI1gCNJhd+qvERjPibXL3ctmVaCs=", + "rev": "fe812ef0dad5bb93a56c599d318be176d080281d", + "revCount": 493, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/ipetkov/crane/0.16.1/018d51be-1c17-765e-babc-c9e3bc8a5a14/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/ipetkov/crane/%2A.tar.gz" + } + }, + "crane_2": { + "inputs": { + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1711299236, + "narHash": "sha256-6/JsyozOMKN8LUGqWMopKTSiK8N79T8Q+hcxu2KkTXg=", + "owner": "ipetkov", + "repo": "crane", + "rev": "880573f80d09e18a11713f402b9e6172a085449f", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": [ + "chaotic", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1711952616, + "narHash": "sha256-WJvDdOph001fA1Ap3AyaQtz/afJAe7meSG5uJAdSE+A=", + "rev": "209048d7c545905c470f6f8c05c5061f391031a8", + "revCount": 1822, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/nix-community/fenix/0.1.1822%2Brev-209048d7c545905c470f6f8c05c5061f391031a8/018e98ba-d842-7dad-9d6a-0d0ee173b6b1/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/nix-community/fenix/0.1.%2A.tar.gz" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1713458745, + "narHash": "sha256-6K95wxghPBS1sJMnuKJ4JD3jLd/5bAEmx7rnffqf29I=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "5501717d3e98fcc418a2ca40de1c5ad1b66939bb", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/%2A.tar.gz" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709336216, + "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-schemas": { + "locked": { + "lastModified": 1693491534, + "narHash": "sha256-ifw8Td8kD08J8DxFbYjeIx5naHcDLz7s2IFP3X42I/U=", + "rev": "c702cbb663d6d70bbb716584a2ee3aeb35017279", + "revCount": 21, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.1/018a4c59-80e1-708a-bb4d-854930c20f72/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.1.tar.gz" + } + }, + "flake-utils": { + "inputs": { + "systems": [ + "chaotic", + "systems" + ] + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "revCount": 92, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/numtide/flake-utils/0.1.92%2Brev-b1d9ab70662946ef0850d488da1c9019f3a9752a/018e2ca5-e5a2-7f80-9261-445a8cecd4d7/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/numtide/flake-utils/0.1.%2A.tar.gz" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "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" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "lanzaboote", + "pre-commit-hooks-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "chaotic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1713682182, + "narHash": "sha256-2RSqVmQMFmn6OjQ21SXnWC+HuSeqDLWLftRv/ZhEDZE=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "4cec20dbf5c0a716115745ae32531e34816ecbbe", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1713906585, + "narHash": "sha256-fv84DCOkBtjF6wMATt0rfovu7e95L8rdEkSfNbwKR3U=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "bfa7c06436771e3a0c666ccc6ee01e815d4c33aa", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "jovian": { + "inputs": { + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "chaotic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1713606448, + "narHash": "sha256-JMKo6uoAcUip9N10a3r1T2IoLz+pUStwIFrsVW/R4MA=", + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "rev": "96cbbcd3712a0cb7f128c54b21ec2af0950d88d0", + "type": "github" + }, + "original": { + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "type": "github" + } + }, + "jujutsu": { + "inputs": { + "flake-utils": [ + "chaotic", + "flake-utils" + ], + "nixpkgs": [ + "chaotic", + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1713647546, + "narHash": "sha256-oiLxCGkICL2LXHZV6hhm3858JC/+6oANV5guVaRM6Wg=", + "owner": "martinvonz", + "repo": "jj", + "rev": "77eaf67f96c6ea438e2dd1a5636f34b6a321e6be", + "type": "github" + }, + "original": { + "owner": "martinvonz", + "repo": "jj", + "type": "github" + } + }, + "lanzaboote": { + "inputs": { + "crane": "crane_2", + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts", + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit-hooks-nix": "pre-commit-hooks-nix", + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1713369831, + "narHash": "sha256-G4OGxvlIIjphpkxcRAkf1QInYsAeqbfNh6Yl1JLy2uM=", + "owner": "nix-community", + "repo": "lanzaboote", + "rev": "850f27322239f8cfa56b122cc9a278ab99a49015", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "lanzaboote", + "type": "github" + } + }, + "niri": { + "inputs": { + "crane": [ + "chaotic", + "crane" + ], + "fenix": [ + "chaotic", + "fenix" + ], + "flake-utils": [ + "chaotic", + "flake-utils" + ], + "nix-filter": [ + "chaotic", + "nix-filter" + ], + "nixpkgs": [ + "chaotic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1713620717, + "narHash": "sha256-YuYowUw5ecPa78bhT72zY2b99wn68mO3vVkop8hnb8M=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "6a80078259ca3e3854b0748a15e98c7293d0822a", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1710156097, + "narHash": "sha256-1Wvk8UP7PXdf8bCCaEoMnOT1qe5/Duqgj+rL8sRQsSM=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "3342559a24e85fc164b295c3444e8a139924675b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-flatpak": { + "locked": { + "lastModified": 1711997375, + "narHash": "sha256-KvU4gOtuFMS9Il67glRGtdNfguAINT9pCaXtvCL8uI8=", + "owner": "gmodena", + "repo": "nix-flatpak", + "rev": "45bf66f7068db79b552da864c0e87452be624d6c", + "type": "github" + }, + "original": { + "owner": "gmodena", + "repo": "nix-flatpak", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "chaotic", + "jovian", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1690328911, + "narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=", + "owner": "zhaofengli", + "repo": "nix-github-actions", + "rev": "96df4a39c52f53cb7098b923224d8ce941b64747", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "ref": "matrix-name", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1713714899, + "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", + "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", + "revCount": 615148, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.615148%2Brev-6143fc5eeb9c4f00163267708e26191d1e918932/018f054f-2276-71b1-bbf0-25db28e7784e/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1711460390, + "narHash": "sha256-akSgjDZL6pVHEfSE6sz1DNSXuYX6hq+P/1Z5IoYWs7E=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "44733514b72e732bd49f5511bd0203dea9b9a434", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1710695816, + "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "614b4613980a522ba49f0d194531beddbb7220d3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1713714899, + "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks-nix": { + "inputs": { + "flake-compat": [ + "lanzaboote", + "flake-compat" + ], + "flake-utils": [ + "lanzaboote", + "flake-utils" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_2" + }, + "locked": { + "lastModified": 1710923068, + "narHash": "sha256-6hOpUiuxuwpXXc/xfJsBUJeqqgGI+JMJuLo45aG3cKc=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "e611897ddfdde3ed3eaac4758635d7177ff78673", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "chaotic": "chaotic", + "firefox-gnome-theme": "firefox-gnome-theme", + "home-manager": "home-manager_2", + "lanzaboote": "lanzaboote", + "nix-flatpak": "nix-flatpak", + "nixpkgs": "nixpkgs_2" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1711885694, + "narHash": "sha256-dyezzeSbWMpflma+E9USmvSxuLgGcNGcGw3cOnX36ko=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "e4a405f877efd820bef9c0e77a02494e47c17512", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "chaotic", + "jujutsu", + "flake-utils" + ], + "nixpkgs": [ + "chaotic", + "jujutsu", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1707444620, + "narHash": "sha256-P8kRkiJLFttN+hbAOlm11wPxUrQZqKle+QtVCqFiGXY=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "78503e9199010a4df714f29a4f9c00eb2ccae071", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { + "inputs": { + "flake-utils": [ + "lanzaboote", + "flake-utils" + ], + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1711246447, + "narHash": "sha256-g9TOluObcOEKewFo2fR4cn51Y/jSKhRRo4QZckHLop0=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "dcc802a6ec4e9cc6a1c8c393327f0c42666f22e4", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "yafas": { + "inputs": { + "flake-schemas": [ + "chaotic", + "flake-schemas" + ], + "systems": [ + "chaotic", + "systems" + ] + }, + "locked": { + "lastModified": 1695926485, + "narHash": "sha256-wNFFnItckgSs8XeYhhv8vlJs2WF09fSQaWgw4xkDqHQ=", + "rev": "7772afd6686458ca0ddbc599a52cf5d337367653", + "revCount": 4, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/UbiqueLambda/yafas/0.1.4%2Brev-7772afd6686458ca0ddbc599a52cf5d337367653/018add18-ebb4-72c6-93fe-d1d8da361703/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/UbiqueLambda/yafas/0.1.%2A.tar.gz" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..b5b43e6 --- /dev/null +++ b/flake.nix @@ -0,0 +1,51 @@ +{ + description = "OctoBanon's flake for home pc"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + + chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + lanzaboote = { + url = "github:nix-community/lanzaboote"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nix-flatpak.url = "github:gmodena/nix-flatpak"; + }; + + + outputs = inputs@{ nixpkgs, chaotic, home-manager, lanzaboote, nix-flatpak, ... }: { + nixosConfigurations = { + octopc-nix = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./system/configuration.nix + ./overlay/imports.nix + + lanzaboote.nixosModules.lanzaboote + + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + + home-manager.users.octobanon = import ./home/home.nix; + } + + chaotic.nixosModules.default + ]; + }; + }; + + homeConfigurations.octobanon = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; + modules = [ ./home/home.nix ]; + }; + }; +} diff --git a/home/home.nix b/home/home.nix new file mode 100644 index 0000000..ff88c56 --- /dev/null +++ b/home/home.nix @@ -0,0 +1,11 @@ +{ + imports = [ + ./modules/imports.nix + ]; + + home = { + username = "octobanon"; + homeDirectory = "/home/octobanon"; + stateVersion = "23.11"; + }; +} diff --git a/home/modules/dconf.nix b/home/modules/dconf.nix new file mode 100644 index 0000000..3abbeae --- /dev/null +++ b/home/modules/dconf.nix @@ -0,0 +1,7 @@ +{ + dconf.settings = { + "org/gnome/desktop/input-sources" = { + "xkb-options" = [ "grp:caps_toggle" ]; + }; + }; +} diff --git a/home/modules/git.nix b/home/modules/git.nix new file mode 100644 index 0000000..56bd0e7 --- /dev/null +++ b/home/modules/git.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: { + programs.gpg = { + enable = true; + package = pkgs.gnupg; + }; + + services.gpg-agent = { + enable = true; + enableSshSupport = true; + pinentryPackage = pkgs.pinentry-gnome3; + }; + + programs.git = { + enable = true; + userName = "OctoBanon"; + userEmail = "octobanonreserve@gmail.com"; + }; +} diff --git a/home/modules/gtk.nix b/home/modules/gtk.nix new file mode 100644 index 0000000..07528d5 --- /dev/null +++ b/home/modules/gtk.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + gtk.enable = true; + + gtk.theme.package = pkgs.adw-gtk3; + gtk.theme.name = "adw-gtk3"; +} diff --git a/home/modules/helix.nix b/home/modules/helix.nix new file mode 100644 index 0000000..f83805a --- /dev/null +++ b/home/modules/helix.nix @@ -0,0 +1,11 @@ +{ + programs.helix = { + enable = true; + themes = { + autumn_night_transparent = { + "inherits" = "autumn_night"; + "ui.background" = { }; + }; + }; + }; +} diff --git a/home/modules/imports.nix b/home/modules/imports.nix new file mode 100644 index 0000000..3806105 --- /dev/null +++ b/home/modules/imports.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./gtk.nix + ./dconf.nix + ./git.nix + ./helix.nix + ]; +} diff --git a/overlay/gnome.nix b/overlay/gnome.nix new file mode 100644 index 0000000..e1b088e --- /dev/null +++ b/overlay/gnome.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: { + nixpkgs.overlays = [ + (final: prev: { + gnome = prev.gnome.overrideScope' (gnomeFinal: gnomePrev: { + mutter = gnomePrev.mutter.overrideAttrs ( old: { + src = pkgs.fetchgit { + url = "https://gitlab.gnome.org/vanvugt/mutter.git"; + # GNOME 45: triple-buffering-v4-45 + rev = "0b896518b2028d9c4d6ea44806d093fd33793689"; + sha256 = "sha256-mzNy5GPlB2qkI2KEAErJQzO//uo8yO0kPQUwvGDwR4w="; + }; + } ); + }); + }) +]; +} diff --git a/overlay/imports.nix b/overlay/imports.nix new file mode 100644 index 0000000..d543173 --- /dev/null +++ b/overlay/imports.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./gnome.nix + ]; +} diff --git a/system/configuration.nix b/system/configuration.nix new file mode 100644 index 0000000..4735e27 --- /dev/null +++ b/system/configuration.nix @@ -0,0 +1,22 @@ +{ config, lib, pkgs, ... }: + +{ + imports = + [ + ./modules/imports.nix + ./hardware-configuration.nix + ]; + + # Set your time zone. + time.timeZone = "Asia/Novosibirsk"; + + # Enable flakes + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + system.stateVersion = "23.11"; + +} + diff --git a/system/hardware-configuration.nix b/system/hardware-configuration.nix new file mode 100644 index 0000000..583dc7f --- /dev/null +++ b/system/hardware-configuration.nix @@ -0,0 +1,38 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/2616f500-0bb5-43ea-a663-15c1d075693d"; + fsType = "btrfs"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/FEA4-3EDD"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp8s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/system/modules/flatpak.nix b/system/modules/flatpak.nix new file mode 100644 index 0000000..1ff0c53 --- /dev/null +++ b/system/modules/flatpak.nix @@ -0,0 +1,3 @@ +{ + services.flatpak.enable = true; +} diff --git a/system/modules/gc.nix b/system/modules/gc.nix new file mode 100644 index 0000000..5358d5a --- /dev/null +++ b/system/modules/gc.nix @@ -0,0 +1,7 @@ +{ + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; +} diff --git a/system/modules/gnome.nix b/system/modules/gnome.nix new file mode 100644 index 0000000..de9fefe --- /dev/null +++ b/system/modules/gnome.nix @@ -0,0 +1,20 @@ +{ pkgs, ... }: +{ + services.xserver.enable = true; + services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + + services.xserver.excludePackages = [ pkgs.xterm pkgs.nixos-render-docs ]; + + programs.dconf.enable = true; + services.gvfs.enable = true; + + environment.gnome.excludePackages = (with pkgs; [ + gnome-tour + nixos-render-docs + ]) ++ (with pkgs.gnome; [ + epiphany + totem + gnome-music + ]); +} diff --git a/system/modules/imports.nix b/system/modules/imports.nix new file mode 100644 index 0000000..45114e8 --- /dev/null +++ b/system/modules/imports.nix @@ -0,0 +1,14 @@ +{ + imports = [ + ./user.nix + ./pipewire.nix + ./systemd-boot.nix + ./networking.nix + ./gnome.nix + ./packages.nix + ./flatpak.nix + ./kernel.nix + ./other.nix + ./gc.nix + ]; +} diff --git a/system/modules/kernel.nix b/system/modules/kernel.nix new file mode 100644 index 0000000..65f76f8 --- /dev/null +++ b/system/modules/kernel.nix @@ -0,0 +1,3 @@ +{ pkgs, ... }: { + boot.kernelPackages = pkgs.linuxPackages_cachyos; +} diff --git a/system/modules/networking.nix b/system/modules/networking.nix new file mode 100644 index 0000000..20168ef --- /dev/null +++ b/system/modules/networking.nix @@ -0,0 +1,7 @@ +{ + networking = { + hostName = "octopc-nix"; + networkmanager.enable = true; + firewall.enable = true; + }; +} diff --git a/system/modules/other.nix b/system/modules/other.nix new file mode 100644 index 0000000..5ed1421 --- /dev/null +++ b/system/modules/other.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + programs.nix-ld.enable = true; + programs.nix-ld.libraries = with pkgs; [ glib json-glib ]; + + services.fwupd.enable = true; +} diff --git a/system/modules/packages.nix b/system/modules/packages.nix new file mode 100644 index 0000000..efebf1f --- /dev/null +++ b/system/modules/packages.nix @@ -0,0 +1,37 @@ +{ pkgs, ... }: { + nixpkgs.config.allowUnfree = true; + + environment.systemPackages = with pkgs; [ + # sbctl + sbctl + fwupd + + # GNOME stuff + gnomeExtensions.appindicator + gnome.nautilus + + # Web browser + firefox + + # Software + (discord.override { + withOpenASAR = true; + withVencord = true; + }) + helix + tetrio-desktop + cider + vesktop + + # Home-manager + home-manager + + # CachyOS Kernel + scx + ]; + + fonts.packages = with pkgs; [ + noto-fonts + noto-fonts-emoji + ]; +} diff --git a/system/modules/pipewire.nix b/system/modules/pipewire.nix new file mode 100644 index 0000000..41a69f6 --- /dev/null +++ b/system/modules/pipewire.nix @@ -0,0 +1,11 @@ +{ + hardware.pulseaudio.enable = false; + + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; +} diff --git a/system/modules/systemd-boot.nix b/system/modules/systemd-boot.nix new file mode 100644 index 0000000..7db64c1 --- /dev/null +++ b/system/modules/systemd-boot.nix @@ -0,0 +1,10 @@ +{ pkgs, lib, lanzaboote, ... }: + +{ + boot.loader.systemd-boot.enable = lib.mkForce false; + boot.loader.efi.canTouchEfiVariables = true; + boot.lanzaboote = { + enable = true; + pkiBundle = "/etc/secureboot"; + }; +} diff --git a/system/modules/user.nix b/system/modules/user.nix new file mode 100644 index 0000000..d044476 --- /dev/null +++ b/system/modules/user.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: { + users = { + users.octobanon = { + isNormalUser = true; + description = "OctoBanon"; + extraGroups = [ "wheel" "networkmanager" ]; + }; + }; +}