diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e2f5dd2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result \ No newline at end of file diff --git a/flake.lock b/flake.lock index c33b1ed..cfc596a 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,25 @@ { "nodes": { + "agenix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1792507013, + "narHash": "sha256-8tKjSQajD3mUND1GaAuaWTcuyUpgcGsh5V+l4ibzC7U=", + "owner": "ryantm", + "repo": "agenix", + "rev": "5e5b88a0c8e56f291a108c2fe9934054d9745b2e", + "type": "github" + }, + "original": { + "owner": "ryantm", + "repo": "agenix", + "type": "github" + } + }, "base16": { "inputs": { "fromYaml": "fromYaml" @@ -18,19 +38,69 @@ "type": "github" } }, - "flake-compat": { + "base16-fish": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "lastModified": 1765809053, + "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1776754714, + "narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1783570805, + "narHash": "sha256-ptl5aRlCv9/uRSv2u8Hq8UFVFeZ6Q/bT049bpqNgc3w=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "5602ed62d638142c1ab31dccd01dfbfb28841225", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", "type": "github" } }, @@ -38,6 +108,48 @@ "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, + "locked": { + "lastModified": 1790898470, + "narHash": "sha256-zTwuwezD0w3hpga6a6P8emidzAZFyWqlNeRBlpWOOl8=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "024633cd702b10285db5cb19b40ad48d2399ba60", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "hermes-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1790898470, + "narHash": "sha256-zTwuwezD0w3hpga6a6P8emidzAZFyWqlNeRBlpWOOl8=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "024633cd702b10285db5cb19b40ad48d2399ba60", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] + }, "locked": { "lastModified": 1782949081, "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=", @@ -52,64 +164,6 @@ "type": "github" } }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" - }, - "locked": { - "lastModified": 1785627969, - "narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "inputs": { - "systems": [ - "mango", - "scenefx", - "systems" - ] - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "fromYaml": { "flake": false, "locked": { @@ -126,25 +180,50 @@ "type": "github" } }, - "helium": { + "gnome-shell": { + "flake": false, + "locked": { + "host": "gitlab.gnome.org", + "lastModified": 1776175984, + "narHash": "sha256-RJFlFW8GiMei6oqUGrMkGEvVqOH8U7Q8abc1yK4VKD8=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "e0fdc4c13250e9a9b8ea9594c83925274f4a5dca", + "type": "gitlab" + }, + "original": { + "host": "gitlab.gnome.org", + "owner": "GNOME", + "ref": "50.1", + "repo": "gnome-shell", + "type": "gitlab" + } + }, + "hermes-agent": { "inputs": { - "flake-compat": "flake-compat", - "flake-utils": "flake-utils", + "flake-parts": "flake-parts_2", + "home-manager": [ + "home-manager" + ], "nixpkgs": [ "nixpkgs" - ] + ], + "npm-lockfile-fix": "npm-lockfile-fix", + "pyproject-build-systems": "pyproject-build-systems", + "pyproject-nix": "pyproject-nix", + "uv2nix": "uv2nix" }, "locked": { - "lastModified": 1788457071, - "narHash": "sha256-Yqqbe/X4nYdOQHy72x0h7smLr+Vhgwp5X23EPDn1Jdw=", - "owner": "AlvaroParker", - "repo": "helium-nix", - "rev": "d17d25ee7277a108cf6b7a6d167f1bf82ff0e7a0", + "lastModified": 1793005886, + "narHash": "sha256-gZD8QVfZU4d19WbpGU1d3a1N4iJ0w1b916b/V+P0+cc=", + "owner": "NousResearch", + "repo": "hermes-agent", + "rev": "9b904dcc22c23fe8b82834339bbdd96495072e59", "type": "github" }, "original": { - "owner": "AlvaroParker", - "repo": "helium-nix", + "owner": "NousResearch", + "repo": "hermes-agent", "type": "github" } }, @@ -155,11 +234,11 @@ ] }, "locked": { - "lastModified": 1788487777, - "narHash": "sha256-Ro/e1N4ZR8/XaFF+sF9SgfPK79HM5YNEppzFj8p+0Ak=", + "lastModified": 1792896866, + "narHash": "sha256-/0tELNnhdSnP+bHSdWiEe6KpfSwi6WrTnT9cm/jNkjA=", "owner": "nix-community", "repo": "home-manager", - "rev": "693e8ce0fb240a73c116a03cfd7b19269c87af88", + "rev": "c216bf5a1f173b0481bd5c8c489ebe5595ecc68c", "type": "github" }, "original": { @@ -168,43 +247,102 @@ "type": "github" } }, - "mango": { + "home-manager_2": { "inputs": { - "flake-parts": "flake-parts", "nixpkgs": [ + "nixcord", "nixpkgs" - ], - "scenefx": "scenefx" + ] }, "locked": { - "lastModified": 1788490924, - "narHash": "sha256-tymTjjNKWohVzXycg2mN7cSApQ6NDmn9k4LklNq/WGo=", - "owner": "mangowm", - "repo": "mango", - "rev": "7b4266f1d8df09f83283574ba61dba51656d4791", + "lastModified": 1790996401, + "narHash": "sha256-f+kOxEmOUnQazVAmGg0i8hzwgd1kX/geY+k/Dpheye8=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "db7d5e2332710f5abb088f6b5de927d7f9511b35", "type": "github" }, "original": { - "owner": "mangowm", - "repo": "mango", + "owner": "nix-community", + "ref": "release-26.05", + "repo": "home-manager", + "type": "github" + } + }, + "import-tree": { + "locked": { + "lastModified": 1788467110, + "narHash": "sha256-ljEMTXP/rH0tOvDzc9gzwww6KcHRPRnEHzd9lK48V7s=", + "owner": "vic", + "repo": "import-tree", + "rev": "eb1b52eaecc57f7c136d07ae8a93e724dfecac46", + "type": "github" + }, + "original": { + "owner": "vic", + "repo": "import-tree", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixcord", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1783744694, + "narHash": "sha256-2cp6N3rrwnGYLTx9l6N+NI+kwrCWxvJUbj5WJhvB29A=", + "owner": "nix-darwin", + "repo": "nix-darwin", + "rev": "c3e90c89649b07d1a96e4b9dd6cd0d6e44b91a74", + "type": "github" + }, + "original": { + "owner": "nix-darwin", + "ref": "nix-darwin-26.05", + "repo": "nix-darwin", + "type": "github" + } + }, + "nix-easyroam": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1784038797, + "narHash": "sha256-td6Ko5RV/TFw7ALmYP9YUVXMS1b7hW7vDqabrGXyzUo=", + "owner": "0x5a4", + "repo": "nix-easyroam", + "rev": "a6c72d25edc3b210bf6b2b46395c88be7efac147", + "type": "github" + }, + "original": { + "owner": "0x5a4", + "repo": "nix-easyroam", "type": "github" } }, "nixcord": { "inputs": { - "flake-parts": "flake-parts_2", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", "nixpkgs": [ "nixpkgs" ], - "nixpkgs-nixcord": "nixpkgs-nixcord", + "nixpkgs-ci": "nixpkgs-ci", + "nixpkgs-packages": "nixpkgs-packages", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1788512400, - "narHash": "sha256-pFiwb+c/lIvMvjSzJONZ+jPi36kbbljys7OFy+Kxt3U=", + "lastModified": 1792984624, + "narHash": "sha256-i8nr7pMfov5q0W5m1UCeNYGClbA4hdbmTwa+OkumdlY=", "owner": "4evy", "repo": "nixcord", - "rev": "004e2c950c0b4a404fb3ea5ab01f5645265e4322", + "rev": "63e33cd00b08ef49b6623a1b6f9f27f69049d1a9", "type": "github" }, "original": { @@ -215,27 +353,40 @@ }, "nixpkgs": { "locked": { - "lastModified": 1788316716, - "narHash": "sha256-bc7rSpXIdn9QWGNqfWcPZWOhEVF8NoeAZkWq0XWnf/k=", - "owner": "NixOS", + "lastModified": 1792773339, + "narHash": "sha256-rZLrzrC6i+jnTAlvPZHogKDulY7WWDEv9hJeHieO7Zw=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "3ed67ec0a4d3c7ab4ae1f04f8ee8df07bfa506a2", + "rev": "3ec636362e1816bc2f0888fa0fa2c69f1bc9e504", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, + "nixpkgs-ci": { + "locked": { + "lastModified": 1791130267, + "narHash": "sha256-NCFqY2YC3/5pwakzk7tXNUj3sG+VImjU4EkZMacxF1w=", + "rev": "9013764fcc0ea99fa16cf7aa7decf8a5c3889dd2", + "type": "tarball", + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1085518.9013764fcc0e/nixexprs.tar.zst" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.zst" + } + }, "nixpkgs-lib": { "locked": { - "lastModified": 1782614948, - "narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=", + "lastModified": 1790477367, + "narHash": "sha256-oujbxmVKDhci2E4EM3KyAbRUgp5/IsCoiA/LfEF7OOk=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c", + "rev": "f7cd230690d9fc982d06129f9189b101fddcfa3b", "type": "github" }, "original": { @@ -244,81 +395,190 @@ "type": "github" } }, - "nixpkgs-lib_2": { + "nixpkgs-packages": { "locked": { - "lastModified": 1785031560, - "narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c", + "lastModified": 1791130267, + "narHash": "sha256-NCFqY2YC3/5pwakzk7tXNUj3sG+VImjU4EkZMacxF1w=", + "rev": "9013764fcc0ea99fa16cf7aa7decf8a5c3889dd2", + "type": "tarball", + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1085518.9013764fcc0e/nixexprs.tar.zst" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.zst" + } + }, + "npm-lockfile-fix": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775903712, + "narHash": "sha256-2GV79U6iVH4gKAPWYrxUReB0S41ty/Y3dBLquU8AlaA=", + "owner": "jeslie0", + "repo": "npm-lockfile-fix", + "rev": "c6093acb0c0548e0f9b8b3d82918823721930fe8", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", + "owner": "jeslie0", + "repo": "npm-lockfile-fix", "type": "github" } }, - "nixpkgs-nixcord": { + "nur": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1786711500, - "narHash": "sha256-QvnceIGTBeDvDd9oCn+GvdsnkquliuwbVgpiRH68qaQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "02e08985a27c65ffd33d434eeb2e660a2e4dc84d", + "lastModified": 1785549842, + "narHash": "sha256-DCwBZmGsySF7oKGTRgEv2HvpxVXkHT+38VhTM76k0B4=", + "owner": "nix-community", + "repo": "NUR", + "rev": "a9f987b57594e845e3e5cdd423b9a70846d70308", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-26.05", - "repo": "nixpkgs", + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "pyproject-build-systems": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ], + "pyproject-nix": [ + "hermes-agent", + "pyproject-nix" + ], + "uv2nix": [ + "hermes-agent", + "uv2nix" + ] + }, + "locked": { + "lastModified": 1792499785, + "narHash": "sha256-mGOkvueuMGSRiD75ccxFzfEvSlIU9ztjFluHMKOtogY=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "a17819c85163988e063806ffc4f6d2716bc8ead8", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, + "pyproject-nix": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1791657700, + "narHash": "sha256-vcCAvhtA7hG+/gOge29hYHy7I/dLkIsr5nLx4sFEQic=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "ddc400a6883b042646d0940e65971bb7f7e96107", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", "type": "github" } }, "root": { "inputs": { - "base16": "base16", - "helium": "helium", + "agenix": "agenix", + "flake-parts": "flake-parts", + "hermes-agent": "hermes-agent", "home-manager": "home-manager", - "mango": "mango", + "import-tree": "import-tree", + "nix-easyroam": "nix-easyroam", "nixcord": "nixcord", "nixpkgs": "nixpkgs", - "tt-discord": "tt-discord", - "tt-gtk": "tt-gtk", - "tt-schemes": "tt-schemes", - "tt-terminal": "tt-terminal" + "spicetify-nix": "spicetify-nix", + "stylix": "stylix" } }, - "scenefx": { + "spicetify-nix": { "inputs": { - "flake-utils": "flake-utils_2", "nixpkgs": [ - "mango", "nixpkgs" ], - "systems": "systems_2" + "systems": "systems" }, "locked": { - "lastModified": 1782624992, - "narHash": "sha256-vUjLG6eubEhJJVa9LPygIcVmNoHwYbSUTJcWEcbxnU4=", - "owner": "wlrfx", - "repo": "scenefx", - "rev": "37ccd723bef49e6891156ffafce8f549f01446cc", + "lastModified": 1792919014, + "narHash": "sha256-gJ8uPmQFhJ98X+VWPpD+o0tnQ0nJjbG+Z3QDHcSJKw0=", + "owner": "Gerg-L", + "repo": "spicetify-nix", + "rev": "f6eb8135c060130150c8fbcc6b7cf5e22e5179d8", "type": "github" }, "original": { - "owner": "wlrfx", - "repo": "scenefx", + "owner": "Gerg-L", + "repo": "spicetify-nix", + "type": "github" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-parts": "flake-parts_3", + "gnome-shell": "gnome-shell", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur", + "systems": "systems_2", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1792920263, + "narHash": "sha256-2pkE97wOXAYIn2/Nhs9y+iR0qVT+g/3UtukXdkywxXc=", + "owner": "nix-community", + "repo": "stylix", + "rev": "3e27b6c499e507df6e3bb8eca3614f5c95e28140", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "stylix", "type": "github" } }, "systems": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1791244623, + "narHash": "sha256-uuanbkFk8a313Zfrxdcz8Us/yQtaxNnKJtX8v0ZPpd8=", "owner": "nix-systems", "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "rev": "d36eeed142f88b5a636f2e3856a53c61654cf29b", "type": "github" }, "original": { @@ -329,16 +589,81 @@ }, "systems_2": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1774449309, + "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "c29398b59d2048c4ab79345812849c9bd15e9150", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "ref": "future-26.11", + "repo": "default", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "type": "github" + } + }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1785153830, + "narHash": "sha256-fNdfCTeCXU3tZG3TMincd+u68qBHQgCr2Ljr/M1mWP0=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "9bd28ed313560db3c5b605c63bc4e309e78e3fc8", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1785031658, + "narHash": "sha256-mZp9O2LjzdMzlqQF3l3fjqsuPBzXy+1qTfBEUGjTlpk=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "5d2c67f61ea7af36f16865ab6d541cdba41dc257", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1785030526, + "narHash": "sha256-klZf8UviewRkxuu74Bhbq6tqy7oxebQC7UVRWbbtQxU=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "16f5a8adf4a6b1310d0a61ab172de963e8f76a02", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", "type": "github" } }, @@ -350,11 +675,11 @@ ] }, "locked": { - "lastModified": 1785945821, - "narHash": "sha256-NLSyTCW4K4ofhNBllt3omPasm6QpralXH1DBZOc91Dw=", + "lastModified": 1791198660, + "narHash": "sha256-f8Pye933T60vreB9u9pqfAXDyBqO13U7H0LvPsOxCIA=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "ae7910970dddc408fe6ab1c8e4b277bb21d72dc0", + "rev": "8b367b728be38d1bb7206f037c9df9989df3353a", "type": "github" }, "original": { @@ -363,67 +688,28 @@ "type": "github" } }, - "tt-discord": { - "flake": false, - "locked": { - "lastModified": 1788292449, - "narHash": "sha256-YiNFAa/w72k/b/aqf+TFHvqNvIx/MsXEaKJVzg92DhQ=", - "ref": "refs/heads/main", - "rev": "dcf9db7194b5281a67f5af1452f9d8eb0ca78811", - "revCount": 6, - "type": "git", - "url": "https://git.lucy.rip/lucy/tinted-discord.git" + "uv2nix": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ], + "pyproject-nix": [ + "hermes-agent", + "pyproject-nix" + ] }, - "original": { - "type": "git", - "url": "https://git.lucy.rip/lucy/tinted-discord.git" - } - }, - "tt-gtk": { - "flake": false, "locked": { - "lastModified": 1781724602, - "narHash": "sha256-UOBqSP+4PcbcR9S2hvhsH/V3U6ldFfV+QIjuObIgmTU=", - "ref": "refs/heads/main", - "rev": "f4d739fdb3c24886db4ceefac6e88703aca78bf6", - "revCount": 5, - "type": "git", - "url": "https://git.lucy.rip/lucy/tinted-gtk.git" - }, - "original": { - "type": "git", - "url": "https://git.lucy.rip/lucy/tinted-gtk.git" - } - }, - "tt-schemes": { - "flake": false, - "locked": { - "lastModified": 1786274241, - "narHash": "sha256-LMHxSQJIv6QJJkO9W7sAkJujlwusFf9/Ct0SYJ6GyHQ=", - "owner": "tinted-theming", - "repo": "schemes", - "rev": "fdca32a0d14ec80ad83a78a9ccb85592ca6cb9e1", + "lastModified": 1792666911, + "narHash": "sha256-UWo7wDPi00YXOI1Io7g4vGKuCSPJ863kHJVDzsgqtoM=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "0fdaa03ea3c3c16dbb1fe4d69108f07227a4b42d", "type": "github" }, "original": { - "owner": "tinted-theming", - "repo": "schemes", - "type": "github" - } - }, - "tt-terminal": { - "flake": false, - "locked": { - "lastModified": 1786840953, - "narHash": "sha256-R5U9KnrG5cARf90nw5e33Z4A4svwLTRv9qbvFAiAaAY=", - "owner": "tinted-theming", - "repo": "tinted-terminal", - "rev": "993a33342b053b1830e4ccb82448455991dcfd54", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "tinted-terminal", + "owner": "pyproject-nix", + "repo": "uv2nix", "type": "github" } } diff --git a/flake.nix b/flake.nix index 436603b..b743e19 100644 --- a/flake.nix +++ b/flake.nix @@ -1,72 +1,45 @@ { + description = "lucy's nix config"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - base16.url = "github:SenchoPens/base16.nix"; - home-manager.url = "github:nix-community/home-manager"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - nixcord.url = "github:4evy/nixcord"; - nixcord.inputs.nixpkgs.follows = "nixpkgs"; - mango = { - url = "github:mangowm/mango"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + flake-parts.url = "github:hercules-ci/flake-parts"; + import-tree.url = "github:vic/import-tree"; + nix-easyroam = { + url = "github:0x5a4/nix-easyroam"; inputs.nixpkgs.follows = "nixpkgs"; }; - helium = { - url = "github:AlvaroParker/helium-nix"; + nixcord = { + url = "github:4evy/nixcord"; inputs.nixpkgs.follows = "nixpkgs"; }; - tt-schemes = { - url = "github:tinted-theming/schemes"; - flake = false; + agenix = { + url = "github:ryantm/agenix"; + inputs.nixpkgs.follows = "nixpkgs"; }; - tt-terminal = { - url = "github:tinted-theming/tinted-terminal"; - flake = false; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; }; - tt-discord = { - url = "git+https://git.lucy.rip/lucy/tinted-discord.git"; - flake = false; + stylix = { + url = "github:nix-community/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; }; - tt-gtk = { - url = "git+https://git.lucy.rip/lucy/tinted-gtk.git"; - flake = false; + spicetify-nix = { + url = "github:Gerg-L/spicetify-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + hermes-agent = { + url = "github:NousResearch/hermes-agent"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; }; - }; outputs = - { - self, - nixpkgs, - base16, - home-manager, - nixcord, - mango, - ... - }@inputs: - let - boilerplate = [ - ./modules/theming - mango.nixosModules.mango - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { inherit inputs; }; - home-manager.sharedModules = [ - ./modules/theming - ./modules/programs - ]; - home-manager.users.lucy = ./modules/home/default.nix; - } + inputs: + inputs.flake-parts.lib.mkFlake { inherit inputs; } { + imports = [ + inputs.home-manager.flakeModules.home-manager + (inputs.import-tree ./modules) ]; - in - { - nixosConfigurations.nerv = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs; }; - modules = [ ./modules/hosts/nerv/configuration.nix ] ++ boilerplate; - }; - nixosConfigurations.seele = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs; }; - modules = [ ./modules/hosts/seele/configuration.nix ] ++ boilerplate; - }; }; } diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..e5addbc --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,48 @@ +{ + self, + inputs, + ... +}: +let + mods = with self.nixosModules; [ + agenix + base_services + bluetooth + boot + core + chromium + gaming + easyroam + nautilus + packages + pipewire + programs + stylix + stylix_targets + stylix_fonts + tlp + user + zsh + ]; +in +{ + flake.nixosConfigurations.nerv = inputs.nixpkgs.lib.nixosSystem { + modules = + with self.nixosModules; + [ + nvidia + nerv + nerv_quirks + ] + ++ mods; + }; + flake.nixosConfigurations.seele = inputs.nixpkgs.lib.nixosSystem { + modules = + with self.nixosModules; + [ + seele + seele_quirks + ] + ++ mods; + }; +} diff --git a/modules/home/default.nix b/modules/home/default.nix deleted file mode 100644 index bf14a0a..0000000 --- a/modules/home/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./home.nix - ./gtk.nix - ./services.nix - ./qt.nix - ]; -} diff --git a/modules/home/gtk.nix b/modules/home/gtk.nix deleted file mode 100644 index 4158304..0000000 --- a/modules/home/gtk.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ pkgs, config, inputs, ... }: { - gtk = { - enable = true; - colorScheme = "dark"; - theme = { - name = "adw-gtk3-dark"; - package = pkgs.adw-gtk3; - }; - iconTheme = { - name = "Papirus-Dark"; - package = pkgs.papirus-icon-theme; - }; - font = { - name = config.theming.font; - package = config.theming.fontPackage; - size = 12; - }; - cursorTheme.name = "macOS"; - cursorTheme.size = 24; - gtk3.extraCss = builtins.readFile (config.scheme inputs.tt-gtk); - gtk4.extraCss = builtins.readFile (config.scheme inputs.tt-gtk); - - }; -} diff --git a/modules/home/home.nix b/modules/home/home.nix deleted file mode 100644 index c0af3e2..0000000 --- a/modules/home/home.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - pkgs, - ... -}: -{ - home.packages = with pkgs; [ - nixd - nixfmt - clang - kdePackages.qtdeclarative - grim - slurp - jq - wl-clipboard - ]; - home.stateVersion = "26.05"; - home.pointerCursor = { - enable = true; - name = "macOS"; - package = pkgs.apple-cursor; - size = 24; - }; -} diff --git a/modules/home/programs/btop.nix b/modules/home/programs/btop.nix new file mode 100644 index 0000000..daa6ec8 --- /dev/null +++ b/modules/home/programs/btop.nix @@ -0,0 +1,10 @@ +{...} : { + flake.homeModules.btop = { + programs.btop = { + enable = true; + settings = { + theme_background = false; + }; + }; + }; +} diff --git a/modules/home/programs/clangd.nix b/modules/home/programs/clangd.nix new file mode 100644 index 0000000..e24d2f0 --- /dev/null +++ b/modules/home/programs/clangd.nix @@ -0,0 +1,12 @@ +{ ... }: { + flake.homeModules.clangd = { + home.file."clangd" = { + text = '' + BreakBeforeBraces: Allman + IndentWidth: 8 + ''; + target = ".clang-format"; + + }; + }; +} diff --git a/modules/home/programs/emacs.nix b/modules/home/programs/emacs.nix new file mode 100644 index 0000000..fde2af5 --- /dev/null +++ b/modules/home/programs/emacs.nix @@ -0,0 +1,110 @@ +{ ... }: { + + flake.homeModules.emacs = { pkgs, ... }: { + programs.emacs = { + enable = true; + package = pkgs.emacs-pgtk; + extraPackages = + epkgs: with epkgs; [ + eldoc-box + elisp-autofmt + corfu + cape + nix-mode + envrc + elcord + qml-mode + lua-mode + ]; + extraConfig = '' + ;; -*- lexical-binding: t; -*- + (setq make-backup-files nil) + (require 'package) + (add-to-list 'package-archives + '("melpa-snapshots" + . + "https://snapshots.melpa.org/packages/") + t) + ;; add packages + (use-package org-view-mode) + (use-package envrc) + + (use-package nix-mode) + (use-package + eldoc-box + :hook (eglot-managed-mode . eldoc-box-hover-mode) + ) + (use-package + elisp-autofmt + :commands (elisp-autofmt-buffer elisp-autofmt-mode) + :hook (emacs-lisp-mode . elisp-autofmt-mode) + :config) + (use-package + corfu + :init + (setq + corfu-auto t + corfu-auto-prefix 1 + corfu-auto-delay 0.2) + (global-corfu-mode)) + + (setq tab-always-indent 'complete) + (use-package + cape + :bind ("C-c p" . cape-prefix-map) ;; Alternative key: M-, M-p, M-+ + :init (add-hook 'completion-at-point-functions #'cape-file)) + (setq corfu-auto-prefix 2) + (use-package qml-mode) + (use-package lua-mode) + (use-package elcord :init (elcord-mode)) + + (add-to-list + 'display-buffer-alist + '("\\*compilation\\*" (display-buffer-reuse-window + display-buffer-below-selected) + (window-height . 0.3))) + + + ;; remove useless shit and set default opts + (setq org-hide-emphasis-markers t) + (setq ring-bell-function 'ignore) + (menu-bar-mode -1) + (tool-bar-mode -1) + (setq display-line-numbers-type 'relative) + (global-display-line-numbers-mode +1) + (global-tab-line-mode 1) + (scroll-bar-mode -1) + (setq inhibit-splash-screen 1) + (setq custom-file "~/.emacs.d/custom.el") + (load custom-file 'noerror) + + + ;; lsp shit + (add-hook 'nix-mode-hook #'eglot-ensure) + (add-hook 'c-mode-hook #'eglot-ensure) + (add-hook 'qml-mode-hook #'eglot-ensure) + (with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs '(nix-mode . ("nixd"))) + (add-to-list 'eglot-server-programs '(qml-mode . ("qmlls")))) + + ;; keybindings + (keymap-global-set "C-c f" 'eglot-format) + (keymap-global-set "C-c t" 'term) + (keymap-global-set "C-c c" 'compile) + (keymap-global-set "C-c k b" 'kill-current-buffer) + (keymap-global-set "C-c k w" 'kill-buffer-and-window) + (keymap-global-set "C-c v" 'org-view-mode) + (windmove-default-keybindings) + ;; replace dashes with bullets in org mode + (font-lock-add-keywords 'org-mode + '(("^ +\\([-*]\\) " + (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•")))))) + + (setq org-view-prettify-credentials nil) + (setq org-view-hide-keywords nil) + (envrc-global-mode) + + ''; + }; + }; +} diff --git a/modules/home/programs/fuzzel.nix b/modules/home/programs/fuzzel.nix new file mode 100644 index 0000000..4b6eb2e --- /dev/null +++ b/modules/home/programs/fuzzel.nix @@ -0,0 +1,12 @@ +{...}: { + flake.homeModules.fuzzel = { + programs.fuzzel = { + enable = true; + settings = { + main = { + dpi_aware = "no"; + }; + }; + }; + }; +} diff --git a/modules/home/programs/ghostty.nix b/modules/home/programs/ghostty.nix new file mode 100644 index 0000000..33c4cb3 --- /dev/null +++ b/modules/home/programs/ghostty.nix @@ -0,0 +1,15 @@ +{ ... }: { + flake.homeModules.ghostty = { + programs.ghostty = { + enable = true; + enableZshIntegration = true; + systemd.enable = true; + settings = { + quit-after-last-window-closed = false; + window-padding-x = 15; + window-padding-y = 15; + confirm-close-surface = false; + }; + }; + }; +} diff --git a/modules/home/programs/git.nix b/modules/home/programs/git.nix new file mode 100644 index 0000000..cc73877 --- /dev/null +++ b/modules/home/programs/git.nix @@ -0,0 +1,11 @@ +{ ... }: { + flake.homeModules.git = { + programs.git = { + enable = true; + settings = { + user.name = "lucy"; + user.email = "lucykaufmann@protonmail.com"; + }; + }; + }; +} diff --git a/modules/home/programs/hermes.nix b/modules/home/programs/hermes.nix new file mode 100644 index 0000000..c84577d --- /dev/null +++ b/modules/home/programs/hermes.nix @@ -0,0 +1,8 @@ +{ inputs, ... }: { + flake.homeModules.hermes = { pkgs, ... }: { + imports = [ inputs.hermes-agent.homeManagerModules.default ]; + programs.hermes-agent = { + enable = true; + }; + }; +} diff --git a/modules/home/programs/niri.nix b/modules/home/programs/niri.nix new file mode 100644 index 0000000..30dc3ab --- /dev/null +++ b/modules/home/programs/niri.nix @@ -0,0 +1,197 @@ +{ ... }: { + flake.homeModules.niri = { config, lib, ... }: { + wayland.windowManager.niri = { + enable = true; + systemd.enable = true; + settings = { + prefer-no-csd = { }; + hotkey-overlay.skip-at-startup = { }; + environment = { + XDG_CURRENT_DESKTOP = "niri"; + XDG_SESSION_TYPE = "wayland"; + XDG_SESSION_DESKTOP = "niri"; + }; + cursor = { + xcursor-size = 24; + xcursor-theme = "macOS"; + }; + input = { + keyboard.xkb.layout = "eu"; + touchpad = { + tap = { }; + natural-scroll = { }; + }; + tablet = { + map-to-output = "PNP(BNQ) BenQ EX2710Q K6R04023019"; + }; + mouse = { + accel-speed = -0.4; + accel-profile = "flat"; + }; + focus-follows-mouse._props.max-scroll-amount = "20%"; + }; + screenshot-path = null; + animations = { }; + layout = { + gaps = 16; + center-focused-column = "never"; + default-column-width._children = [ { proportion = 0.6; } ]; + focus-ring.off = { }; + border = { + width = 2; + active-color = config.lib.stylix.colors.base0D; + inactive-color = config.lib.stylix.colors.base03; + }; + }; + binds = { + "Mod+Return".spawn-sh = "ghostty +new-window"; + "Mod+space".spawn = [ "fuzzel" ]; + "Mod+e".spawn = [ "nautilus" ]; + "XF86AudioRaiseVolume" = { + _props.allow-when-locked = true; + spawn-sh = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; + }; + "XF86AudioLowerVolume" = { + _props.allow-when-locked = true; + spawn-sh = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; + }; + "XF86AudioMute" = { + _props.allow-when-locked = true; + spawn-sh = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; + }; + "XF86AudioMicMute" = { + _props.allow-when-locked = true; + spawn-sh = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; + }; + "XF86AudioPlay" = { + _props.allow-when-locked = true; + spawn-sh = "playerctl play-pause"; + }; + "XF86AudioStop" = { + _props.allow-when-locked = true; + spawn-sh = "playerctl stop"; + }; + "XF86AudioPrev" = { + _props.allow-when-locked = true; + spawn-sh = "playerctl previous"; + }; + "XF86AudioNext" = { + _props.allow-when-locked = true; + spawn-sh = "playerctl next"; + }; + "XF86MonBrightnessUp" = { + _props.allow-when-locked = true; + spawn = [ + "brightnessctl" + "--class=backlight" + "set" + "+10%" + ]; + }; + "XF86MonBrightnessDown" = { + _props.allow-when-locked = true; + spawn = [ + "brightnessctl" + "--class=backlight" + "set" + "10%-" + ]; + }; + "Mod+O" = { + _props.repeat = false; + toggle-overview = { }; + }; + "Mod+Q" = { + _props.repeat = false; + close-window = { }; + }; + "Mod+Left".focus-column-left = { }; + "Mod+Down".focus-window-down = { }; + "Mod+Up".focus-window-up = { }; + "Mod+Right".focus-column-right = { }; + "Mod+H".focus-column-left = { }; + "Mod+J".focus-window-down = { }; + "Mod+K".focus-window-up = { }; + "Mod+L".focus-column-right = { }; + "Mod+Ctrl+Left".move-column-left = { }; + "Mod+Ctrl+Down".move-window-down = { }; + "Mod+Ctrl+Up".move-window-up = { }; + "Mod+Ctrl+Right".move-column-right = { }; + "Mod+Ctrl+H".move-column-left = { }; + "Mod+Ctrl+J".move-window-down = { }; + "Mod+Ctrl+K".move-window-up = { }; + "Mod+Ctrl+L".move-column-right = { }; + "Mod+comma".focus-monitor-left = { }; + "Mod+period".focus-monitor-right = { }; + "Mod+Shift+comma".move-column-to-monitor-left = { }; + "Mod+Shift+period".move-column-to-monitor-right = { }; + "Mod+Shift+WheelScrollDown".focus-column-right = { }; + "Mod+Shift+WheelScrollUp".focus-column-left = { }; + "Mod+1".focus-workspace = 1; + "Mod+2".focus-workspace = 2; + "Mod+3".focus-workspace = 3; + "Mod+4".focus-workspace = 4; + "Mod+5".focus-workspace = 5; + "Mod+6".focus-workspace = 6; + "Mod+7".focus-workspace = 7; + "Mod+8".focus-workspace = 8; + "Mod+9".focus-workspace = 9; + "Mod+Shift+1".move-column-to-workspace = 1; + "Mod+Shift+2".move-column-to-workspace = 2; + "Mod+Shift+3".move-column-to-workspace = 3; + "Mod+Shift+4".move-column-to-workspace = 4; + "Mod+Shift+5".move-column-to-workspace = 5; + "Mod+Shift+6".move-column-to-workspace = 6; + "Mod+Shift+7".move-column-to-workspace = 7; + "Mod+Shift+8".move-column-to-workspace = 8; + "Mod+Shift+9".move-column-to-workspace = 9; + "Mod+BracketLeft".consume-or-expel-window-left = { }; + "Mod+BracketRight".consume-or-expel-window-right = { }; + "Mod+F".maximize-column = { }; + "Mod+Minus".set-column-width = "-10%"; + "Mod+Equal".set-column-width = "+10%"; + "Mod+V".toggle-window-floating = { }; + "Mod+Shift+S".screenshot = { }; + "Alt+Shift+S".screenshot-screen = { }; + "Alt+Ctrl+S".screenshot-window = { }; + "Mod+Shift+q".quit = { }; + }; + _children = [ + { + output = { + _args = [ "PNP(BNQ) BenQ EX2710Q K6R04023019" ]; + mode = "2560x1440@165.002"; + scale = 1; + transform = "normal"; + position._props = { + x = 1920; + y = 0; + }; + }; + } + { + output = { + _args = [ "Dell Inc. DELL P2317H 9KFDW6C533DB" ]; + position._props = { + x = 0; + y = 0; + }; + }; + } + { + output = { + _args = [ "eDP-1" ]; + scale = 1; + }; + } + { + window-rule._children = [ + { geometry-corner-radius = 16; } + { clip-to-geometry = true; } + ]; + } + ]; + }; + }; + }; +} diff --git a/modules/home/programs/nixcord.nix b/modules/home/programs/nixcord.nix new file mode 100644 index 0000000..cb6c214 --- /dev/null +++ b/modules/home/programs/nixcord.nix @@ -0,0 +1,14 @@ +{ inputs, ... }: { + flake.homeModules.nixcord = { + imports = [ inputs.nixcord.homeModules.nixcord ]; + programs.nixcord = { + enable = true; + discord.enable = false; + vesktop.enable = true; + config.plugins = { + messageLogger.enable = true; + messageClickActions.enable = true; + }; + }; + }; +} diff --git a/modules/home/programs/quickshell.nix b/modules/home/programs/quickshell.nix new file mode 100644 index 0000000..ea7404e --- /dev/null +++ b/modules/home/programs/quickshell.nix @@ -0,0 +1,9 @@ +{ ... }: { + + flake.homeModules.quickshell = { + programs.quickshell = { + enable = true; + systemd.enable = true; + }; + }; +} diff --git a/modules/home/programs/spotify.nix b/modules/home/programs/spotify.nix new file mode 100644 index 0000000..cb5ee08 --- /dev/null +++ b/modules/home/programs/spotify.nix @@ -0,0 +1,8 @@ +{ inputs, ... }: { + flake.homeModules.spotify = { + imports = [ inputs.spicetify-nix.homeManagerModules.spicetify ]; + programs.spicetify = { + enable = true; + }; + }; +} diff --git a/modules/home/qt.nix b/modules/home/qt.nix deleted file mode 100644 index 51a5461..0000000 --- a/modules/home/qt.nix +++ /dev/null @@ -1,18 +0,0 @@ -{pkgs, ...}: { - qt = { - enable = true; - platformTheme = { - name = "gtk3"; - }; - qt5ctSettings = { - Appearance = { - icon_theme = "Papirus-Dark"; - }; - }; - qt6ctSettings = { - Appearance = { - icon_theme = "Papirus-Dark"; - }; - }; - }; -} diff --git a/modules/home/screenshot b/modules/home/screenshot deleted file mode 100644 index 3b38f63..0000000 --- a/modules/home/screenshot +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -case "${1:-fullscreen}" in - region) - g=$(slurp -d); [ -z "$g" ] && exit 1 - grim -g "$g" - | wl-copy ;; - window) - g=$(mmsg get focusing-client | jq -r '"\(.x),\(.y) \(.width)x\(.height)"') - [ -z "$g" ] && exit 1 - grim -g "$g" - | wl-copy ;; - output) - grim -o "$(mmsg get cursorpos | jq -r .monitor)" - | wl-copy;; - *) grim - | wl-copy;; -esac diff --git a/modules/home/services.nix b/modules/home/services.nix deleted file mode 100644 index 843453a..0000000 --- a/modules/home/services.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs, config, ... }: { - services.syncthing = { - enable = true; - settings = { - devices = { - cyberia = { - id = "OOJBAJU-AAIKLHO-BKMMHBU-2NXE75Z-HE64A6V-LET4ZXB-Q2FT2Y4-GZON3AD"; - }; - }; - }; - }; - services.polkit-gnome.enable = true; - dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark"; -} diff --git a/modules/home/services/syncthing.nix b/modules/home/services/syncthing.nix new file mode 100644 index 0000000..1814348 --- /dev/null +++ b/modules/home/services/syncthing.nix @@ -0,0 +1,12 @@ +{ ... }: { + flake.homeModules.syncthing = { + services.syncthing = { + enable = true; + settings = { + devices = { + cyberia.id = "5SW5N7Z-BGTZD37-5ELRQVE-PBRK3O5-M4CGYLZ-R3KCVVS-AM5QD2G-WTQYKA7"; + }; + }; + }; + }; +} diff --git a/modules/home/stylix/targets.nix b/modules/home/stylix/targets.nix new file mode 100644 index 0000000..ff5fc39 --- /dev/null +++ b/modules/home/stylix/targets.nix @@ -0,0 +1,13 @@ +{inputs, ...}: { + flake.homeModules.stylix = { + stylix.targets = { + ghostty.enable = true; + fuzzel.enable = true; + gtk.enable = true; + qt.enable = true; + emacs.enable = true; + nixcord.enable = true; + spicetify.enable = true; + }; + }; +} diff --git a/modules/hosts/base/configuration.nix b/modules/hosts/base/configuration.nix deleted file mode 100644 index 631cd30..0000000 --- a/modules/hosts/base/configuration.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ - lib, - config, - inputs, - pkgs, - ... -}: -{ - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - networking.networkmanager.enable = true; - boot.kernelPackages = pkgs.linuxPackages_latest; - security.polkit = { - enable = true; - enablePkexecWrapper = true; - }; - nix.settings.experimental-features = [ - "nix-command" - "flakes" - ]; - xdg.portal.wlr.settings.screencast = { - chooser_type = "dmenu"; - chooser_cmd = "${pkgs.fuzzel}/bin/fuzzel --dmenu --lines 12 --prompt 'Share: '"; - }; - hardware.graphics.enable = true; - time.timeZone = "Europe/Berlin"; - i18n.defaultLocale = "en_US.UTF-8"; - services.displayManager.gdm.enable = true; - programs.starship.enable = true; - programs.mango.enable = true; - services.upower.enable = true; - services.xserver.xkb.layout = "us"; - services.pipewire = { - enable = true; - alsa.enable = true; - pulse.enable = true; - }; - security.rtkit.enable = true; - programs.zsh.enable = true; - environment.pathsToLink = [ "/share/zsh" ]; - nixpkgs.config.allowUnfree = true; - users.users.lucy = { - isNormalUser = true; - extraGroups = [ "wheel" ]; - shell = pkgs.zsh; - packages = [ - inputs.helium.packages.${pkgs.stdenv.hostPlatform.system}.default - ]; - }; - - environment.systemPackages = with pkgs; [ - fastfetch - wget - git - clang - xournalpp - ripgrep - bat - ani-cli - nautilus - kdePackages.plasma-sdk - ]; - programs.xppen = { - enable = true; - package = pkgs.xppen_4.overrideAttrs (old: { - src = pkgs.fetchurl { - url = "https://download01.xp-pen.com/file/2026/04/XPPenLinux4.0.15-260422.tar.gz"; - hash = "sha256-Jady+pbqnzmVMuM0Io4/aE5B7dqNlDKPsnRj/Fbln6U="; - }; - buildInputs = (old.buildInputs or [ ]) ++ [ - pkgs.libXtst - pkgs.libXrandr - ]; - }); - }; - fonts.packages = [ - config.theming.fontPackage - pkgs.noto-fonts - pkgs.noto-fonts-cjk-sans - pkgs.noto-fonts-color-emoji - pkgs.nerd-fonts.symbols-only - ]; - system.stateVersion = "26.05"; - -} diff --git a/modules/hosts/nerv/configuration.nix b/modules/hosts/nerv/configuration.nix deleted file mode 100644 index 8bc0e0a..0000000 --- a/modules/hosts/nerv/configuration.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - config, - lib, - pkgs, - inputs, - ... -}: - -{ - imports = [ - ./hardware-configuration.nix - ../base/configuration.nix - ]; - - boot.loader.systemd-boot.enable = lib.mkForce false; - boot.loader.limine.enable = true; - boot.loader.limine.secureBoot.enable = true; - boot.loader.limine.extraEntries = '' - /Windows 11 - protocol: efi - path: guid(c0016650-4bd8-4677-88cd-8eed4c897f03):/EFI/Microsoft/Boot/bootmgfw.efi - ''; - networking.hostName = "nerv"; -} diff --git a/modules/hosts/nerv/hardware-configuration.nix b/modules/hosts/nerv/hardware-configuration.nix deleted file mode 100644 index a206f9e..0000000 --- a/modules/hosts/nerv/hardware-configuration.nix +++ /dev/null @@ -1,31 +0,0 @@ -# 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 = [ "nvme" "ahci" "xhci_pci" "usbhid" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/a91a4338-b1a9-4964-879f-3908b44c4636"; - fsType = "xfs"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/B318-A112"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; - - swapDevices = [ ]; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/modules/hosts/seele/configuration.nix b/modules/hosts/seele/configuration.nix deleted file mode 100644 index ae13744..0000000 --- a/modules/hosts/seele/configuration.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - imports = [ - # Include the results of the hardware scan. - ./hardware-configuration.nix - ../base/configuration.nix - ]; - services.tlp = { - enable = true; - settings = { - CPU_SCALING_GOVERNOR_ON_AC = "performance"; - CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; - - CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; - CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; - - CPU_MIN_PERF_ON_AC = 0; - CPU_MAX_PERF_ON_AC = 100; - CPU_MIN_PERF_ON_BAT = 0; - CPU_MAX_PERF_ON_BAT = 60; - - }; - }; - systemd.sleep.settings.Sleep = { - HibernateDelaySec = "1h"; - }; - boot.resumeDevice = "/dev/disk/by-uuid/db947ed5-ae76-4cd6-8430-5fd4d3efab5f"; - networking.hostName = "seele"; # Define your hostname. -} diff --git a/modules/hosts/seele/hardware-configuration.nix b/modules/hosts/seele/hardware-configuration.nix deleted file mode 100644 index b7b2863..0000000 --- a/modules/hosts/seele/hardware-configuration.nix +++ /dev/null @@ -1,33 +0,0 @@ -# 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" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/8e26be6b-4dff-4c85-9ab8-4765e1b2b581"; - fsType = "xfs"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/9472-595A"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/db947ed5-ae76-4cd6-8430-5fd4d3efab5f"; } - ]; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/modules/parts.nix b/modules/parts.nix new file mode 100644 index 0000000..657e3ca --- /dev/null +++ b/modules/parts.nix @@ -0,0 +1,10 @@ +{ + config = { + systems = [ + "x86_64-linux" + "x86_64-darwin" + "aarch64-linux" + "aarch64-darwin" + ]; + }; +} diff --git a/modules/programs/default.nix b/modules/programs/default.nix deleted file mode 100644 index 3b46e18..0000000 --- a/modules/programs/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ inputs, ... }: { - imports = [ - inputs.mango.hmModules.mango - ./foot.nix - ./niri.nix - ./emacs.nix - ./fuzzel.nix - ./quickshell.nix - ./nixcord.nix - ./mango.nix - ./zsh.nix - ./git.nix - ]; -} diff --git a/modules/programs/emacs.nix b/modules/programs/emacs.nix deleted file mode 100644 index 35c2954..0000000 --- a/modules/programs/emacs.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ - config, - ... -}: -{ - programs.emacs = { - enable = true; - extraPackages = - epkgs: with epkgs.melpaPackages; [ - corfu - cape - qml-mode - lua-mode - elcord - nix-mode - base16-theme - ]; - - extraConfig = '' - ;;; -*- lexical-binding: t; -*- - (add-to-list 'default-frame-alist '(font . "${config.theming.font}-14")) - (setq make-backup-files nil) - (load-theme 'base16-${config.scheme.scheme-slug} t) - (use-package - corfu - :init - (setq - corfu-auto t - corfu-auto-delay 0.2) - (global-corfu-mode)) - - (setq tab-always-indent 'complete) - (use-package - cape - :bind ("C-c p" . cape-prefix-map) ;; Alternative key: M-, M-p, M-+ - :init (add-hook 'completion-at-point-functions #'cape-file)) - (setq corfu-auto-prefix 2) - (use-package qml-mode) - (use-package lua-mode) - (use-package elcord :init (elcord-mode)) - (setq initial-buffer-choice "~/") - (add-to-list - 'display-buffer-alist - '("\\*compilation\\*" (display-buffer-reuse-window - display-buffer-below-selected) - (window-height . 0.3))) - - - ;; remove useless shit and set default opts - (setq ring-bell-function 'ignore) - (menu-bar-mode -1) - (tool-bar-mode -1) - (setq display-line-numbers-type 'relative) - (global-display-line-numbers-mode +1) - - (global-tab-line-mode 1) - (scroll-bar-mode -1) - (setq custom-file "~/.emacs.d/custom.el") - (load custom-file 'noerror) - - - ;; lsp shit - (add-hook 'nix-mode-hook #'eglot-ensure) - (add-hook 'c-mode-hook #'eglot-ensure) - (add-hook 'qml-mode-hook #'eglot-ensure) - (with-eval-after-load 'eglot - (add-to-list 'eglot-server-programs '(nix-mode . ("nixd"))) - (add-to-list 'eglot-server-programs '(qml-mode . ("qmlls")))) - - ;; keybindings - (keymap-global-set "C-c f" 'eglot-format) - (keymap-global-set "C-c t" 'term) - (keymap-global-set "C-c c" 'compile) - (keymap-global-set "C-c k b" 'kill-current-buffer) - (keymap-global-set "C-c k w" 'kill-buffer-and-window) - (windmove-default-keybindings) - ''; - }; -} diff --git a/modules/programs/foot.nix b/modules/programs/foot.nix deleted file mode 100644 index 9071f9f..0000000 --- a/modules/programs/foot.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ - pkgs, - config, - inputs, - ... -}: -let - c = config.scheme; -in -{ - programs.foot = { - enable = true; - settings = { - main = { - font = "${config.theming.font}:size=12"; - pad = "15x15"; - }; - - colors-dark = { - background = c.base00; - foreground = c.base05; - - regular0 = c.base00; - regular1 = c.base08; - regular2 = c.base0B; - regular3 = c.base0A; - regular4 = c.base0D; - regular5 = c.base0E; - regular6 = c.base0C; - regular7 = c.base05; - - bright0 = c.base03; - bright1 = c.base08; - bright2 = c.base0B; - bright3 = c.base0A; - bright4 = c.base0D; - bright5 = c.base0E; - bright6 = c.base0C; - bright7 = c.base07; - - selection-foreground = c.base00; - selection-background = c.base05; - }; - }; - }; - -} diff --git a/modules/programs/fuzzel.nix b/modules/programs/fuzzel.nix deleted file mode 100644 index d9afb3a..0000000 --- a/modules/programs/fuzzel.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ config, ... }: -let - c = config.scheme.withHashtag; -in -{ - - programs.fuzzel = { - enable = true; - settings = { - main = { - font = "${config.theming.font}"; - }; - border.width = 2; - colors = { - background = "${c.base00}ff"; - text = "${c.base05}ff"; - match = "${c.base0D}ff"; - selection = "${c.base0D}ff"; - border = "${c.base0D}ff"; - }; - }; - }; - -} diff --git a/modules/programs/git.nix b/modules/programs/git.nix deleted file mode 100644 index 29f1d64..0000000 --- a/modules/programs/git.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - programs.git = { - enable = true; - settings = { - user.name = "lucy"; - user.email = "lucykaufmann@protonmail.com"; - init.defaultBranch = "main"; - }; - }; -} diff --git a/modules/programs/mango.nix b/modules/programs/mango.nix deleted file mode 100644 index 8088090..0000000 --- a/modules/programs/mango.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ - config, - ... -}: -let - c = config.scheme; -in -{ - home.file.screenshot = { - enable = true; - executable = true; - source = ../home/screenshot; - target = ".config/mango/scripts/screenshot"; - }; - wayland.windowManager.mango = { - enable = true; - autostart_sh = '' - # say gex - ''; - settings = { - monitorrule = [ - "make:BNQ,model:BenQ EX2710Q,serial:K6R04023019,x:0,y:0,width:2560,height:1440,refresh:165,scale:1.00" - "serial:9KFDW6C533DB,x:2560,y:0" - ]; - rootcolor = "0x${c.base00}ff"; - bordercolor = "0x${c.base02}ff"; - focuscolor = "0x${c.base0D}ff"; - dropcolor = "0x${c.base09}ff"; - cursor_theme = "macOS"; - cursor_size = 24; - border_radius = 0; - borderpx = 4; - animations = 1; - layer_animations = 0; - animation_type_open = "slide"; - animation_type_close = "slide"; - animation_fade_in = 1; - animation_fade_out = 1; - tag_animation_direction = 1; - zoom_initial_ratio = 0.4; - zoom_end_ratio = 0.8; - fadein_begin_opacity = 0; - fadeout_begin_opacity = 1; - animation_duration_move = 500; - animation_duration_open = 400; - animation_duration_tag = 350; - animation_duration_close = 800; - animation_duration_focus = 0; - animation_curve = { - open = "0.23,1.0,0.32,1.05"; - move = "0.23,1.0,0.32,1"; - tag = "0.23,1.0,0.32,1.03"; - close = "0.23,1.0,0.32,1"; - focus = "0.23,1.0,0.32,1"; - opafadeout = "0.5,0.5,0.5,0"; - opafadein = "0.46,1.0,0.29,0"; - }; - new_is_master = 0; - tag_num = 9; - repeat_rate = 25; - repeat_delay = 250; - xkb_rules_layout = "eu"; - tap_to_click = 1; - mouse_accel_profile = 1; - mouse_accel_speed = -0.4; - gappih = 5; - gappiv = 5; - gappoh = 10; - gappov = 10; - bind = [ - - # reload config - "SUPER,r,reload_config" - - "SUPER,space,spawn,fuzzel" - "SUPER,Return,spawn,foot" - - "SUPER+SHIFT,q,quit" - "SUPER,q,killclient" - - "SUPER+SHIFT,S,spawn_shell,$HOME/.config/mango/scripts/screenshot region" - "ALT+SHIFT,S,spawn_shell,$HOME/.config/mango/scripts/screenshot output" - "ALT+CTRL,S,spawn_shell,$HOME/.config/mango/scripts/screenshot window" - - "SUPER+SHIFT,Up,exchange_client,up" - "SUPER+SHIFT,Down,exchange_client,down" - "SUPER+SHIFT,Left,exchange_client,left" - "SUPER+SHIFT,Right,exchange_client,right" - "SUPER,Up,focusdir,up" - "SUPER,Down,focusdir,down" - "SUPER,Left,focusdir,left" - "SUPER,Right,focusdir,right" - - "SUPER,v,togglefloating" - - "SUPER,1,view,1,0" - "SUPER,2,view,2,0" - "SUPER,3,view,3,0" - "SUPER,4,view,4,0" - "SUPER,5,view,5,0" - "SUPER,6,view,6,0" - "SUPER,7,view,7,0" - "SUPER,8,view,8,0" - "SUPER,9,view,9,0" - - "SUPER+SHIFT,1,tag,1,0" - "SUPER+SHIFT,2,tag,2,0" - "SUPER+SHIFT,3,tag,3,0" - "SUPER+SHIFT,4,tag,4,0" - "SUPER+SHIFT,5,tag,5,0" - "SUPER+SHIFT,6,tag,6,0" - "SUPER+SHIFT,7,tag,7,0" - "SUPER+SHIFT,8,tag,8,0" - "SUPER+SHIFT,9,tag,9,0" - - "SUPER,comma,focusmon,left" - "SUPER,period,focusmon,right" - - "NONE,XF86MonBrightnessUp,spawn,brightnessctl s +10%" - "NONE,XF86MonBrightnessDown,spawn,brightnessctl s 10%-" - - "NONE,XF86AudioRaiseVolume,spawn,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" - "NONE,XF86AudioLowerVolume,spawn,wpctl set-volume @DEFAULT_SINK@ 5%-" - "NONE,XF86AudioMute,spawn,wpctl set-mute @DEFAULT_SINK@ toggle" - "SHIFT,XF86AudioMute,spawn,wpctl set-mute @DEFAULT_SOURCE@ toggle" - - "NONE,XF86AudioNext,spawn,playerctl next" - "NONE,XF86AudioPrev,spawn,playerctl previous" - "NONE,XF86AudioPlay,spawn,playerctl play-pause" - - ]; - mousebind = [ - "SUPER,btn_left,moveresize,curmove" - "SUPER,btn_right,moveresize,curresize" - "ALT,btn_left,moveresize,curresize" - ]; - }; - }; -} diff --git a/modules/programs/niri.nix b/modules/programs/niri.nix deleted file mode 100644 index 079eec0..0000000 --- a/modules/programs/niri.nix +++ /dev/null @@ -1,157 +0,0 @@ -{ pkgs, config, ... }: -{ - wayland.windowManager.niri = { - enable = true; - extraConfig = '' - prefer-no-csd - environment { - GTK_THEME "adw-gtk3-dark" - XDG_CURRENT_DESKTOP "niri" - XDG_SESSION_TYPE "wayland" - XDG_SESSION_DESKTOP "niri" - QT_QPA_PLATFORM "wayland;xcb" - OZONE_PLATFORM "wayland" - ELECTRON_OZONE_PLATFORM_HINT "auto" - } - cursor { - xcursor-size 24 - xcursor-theme "macOS" - } - input { - keyboard { - xkb { - layout "eu" - } - } - - touchpad { - tap - natural-scroll - } - - mouse { - accel-speed -0.4 - accel-profile "flat" - } - focus-follows-mouse max-scroll-amount="0%" - } - - output "PNP(BNQ) BenQ EX2710Q K6R04023019" { - mode "2560x1440@165.002" - scale 1 - transform "normal" - position x=1920 y=0 - } - output "Dell Inc. DELL P2317H 9KFDW6C533DB" { - position x=0 y=0 - } - output "Samsung Display Corp. 0x4208 Unknown" { - scale 1 - position x=0 y=0 - } - - - layout { - gaps 10 - center-focused-column "never" - default-column-width { proportion 0.5; } - focus-ring { - off - } - border { - width 4 - active-color "${config.scheme.withHashtag.base0D}" - inactive-color "${config.scheme.withHashtag.base02}" - } - } - screenshot-path null - animations {} - window-rule { - geometry-corner-radius 16 - clip-to-geometry true - } - - binds { - Mod+return { spawn "foot"; } - Mod+space { spawn "fuzzel"; } - Mod+e { spawn "nautilus"; } - - XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; } - XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } - XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } - XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } - - XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; } - XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; } - XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; } - XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; } - - XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } - XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } - - Mod+O repeat=false { toggle-overview; } - Mod+Q repeat=false { close-window; } - - Mod+Left { focus-column-left; } - Mod+Down { focus-window-down; } - Mod+Up { focus-window-up; } - Mod+Right { focus-column-right; } - Mod+H { focus-column-left; } - Mod+J { focus-window-down; } - Mod+K { focus-window-up; } - Mod+L { focus-column-right; } - Mod+Ctrl+Left { move-column-left; } - Mod+Ctrl+Down { move-window-down; } - Mod+Ctrl+Up { move-window-up; } - Mod+Ctrl+Right { move-column-right; } - Mod+Ctrl+H { move-column-left; } - Mod+Ctrl+J { move-window-down; } - Mod+Ctrl+K { move-window-up; } - mod+ctrl+l { move-column-right; } - - Mod+comma { focus-monitor-left; } - Mod+period { focus-monitor-right; } - - Mod+Shift+comma { move-column-to-monitor-left; } - Mod+Shift+period { move-column-to-monitor-right; } - - - Mod+Shift+WheelScrollDown { focus-column-right; } - Mod+Shift+WheelScrollUp { focus-column-left; } - Mod+1 { focus-workspace 1; } - Mod+2 { focus-workspace 2; } - Mod+3 { focus-workspace 3; } - Mod+4 { focus-workspace 4; } - Mod+5 { focus-workspace 5; } - Mod+6 { focus-workspace 6; } - Mod+7 { focus-workspace 7; } - Mod+8 { focus-workspace 8; } - Mod+9 { focus-workspace 9; } - Mod+Shift+1 { move-column-to-workspace 1; } - Mod+Shift+2 { move-column-to-workspace 2; } - Mod+Shift+3 { move-column-to-workspace 3; } - Mod+Shift+4 { move-column-to-workspace 4; } - Mod+Shift+5 { move-column-to-workspace 5; } - Mod+Shift+6 { move-column-to-workspace 6; } - Mod+Shift+7 { move-column-to-workspace 7; } - Mod+Shift+8 { move-column-to-workspace 8; } - Mod+Shift+9 { move-column-to-workspace 9; } - - Mod+BracketLeft { consume-or-expel-window-left; } - Mod+BracketRight { consume-or-expel-window-right; } - Mod+F { maximize-column; } - - Mod+Minus { set-column-width "-10%"; } - Mod+Equal { set-column-width "+10%"; } - - Mod+V { toggle-window-floating; } - Mod+Shift+S { screenshot; } - Alt+Shift+S { screenshot-screen; } - Alt+Ctrl+S { screenshot-window; } - Mod+Shift+q { quit; } - } - ''; - - }; - -} diff --git a/modules/programs/nixcord.nix b/modules/programs/nixcord.nix deleted file mode 100644 index 6ea8222..0000000 --- a/modules/programs/nixcord.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - inputs, - config, - lib, - ... -}: -{ - imports = [ inputs.nixcord.homeModules.nixcord ]; - programs.nixcord = { - discord.enable = false; - enable = true; - vesktop.enable = true; - quickCss = builtins.readFile (config.scheme inputs.tt-discord); - config = { - useQuickCss = true; - plugins = { - messageLogger.enable = true; - messageClickActions.enable = true; - }; - }; - }; -} diff --git a/modules/programs/quickshell.nix b/modules/programs/quickshell.nix deleted file mode 100644 index 7a172da..0000000 --- a/modules/programs/quickshell.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ pkgs, config, ... }: -let - c = config.scheme.withHashtag; -in -{ - - programs.quickshell.enable = true; - programs.quickshell.systemd.enable = true; - xdg.configFile."quickshell/Colors.js" = { - enable = true; - text = '' - const colors = { - base00: "${c.base00}", - base01: "${c.base01}", - base02: "${c.base02}", - base03: "${c.base03}", - base04: "${c.base04}", - base05: "${c.base05}", - base06: "${c.base06}", - base07: "${c.base07}", - base08: "${c.base08}", - base09: "${c.base09}", - base0A: "${c.base0A}", - base0B: "${c.base0B}", - base0C: "${c.base0C}", - base0D: "${c.base0D}", - base0E: "${c.base0E}", - base0F: "${c.base0F}", - } - ''; - force = true; - }; - -} diff --git a/modules/programs/zsh.nix b/modules/programs/zsh.nix deleted file mode 100644 index 5a9940b..0000000 --- a/modules/programs/zsh.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - programs.zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - oh-my-zsh.enable = true; - oh-my-zsh.theme = "gentoo"; - }; -} diff --git a/modules/system/agenix/_agenix-rules.nix b/modules/system/agenix/_agenix-rules.nix new file mode 100644 index 0000000..d70a660 --- /dev/null +++ b/modules/system/agenix/_agenix-rules.nix @@ -0,0 +1,7 @@ +{ config }: +let + main = "age17hvac3hn79mwttel9snw87a20x4vguh7y7ys43xmvlhrl3mqs3wswuzlt6"; +in +{ + "easyroam.age".publicKeys = [ main ]; +} diff --git a/modules/system/agenix/agenix.nix b/modules/system/agenix/agenix.nix new file mode 100644 index 0000000..00e7b55 --- /dev/null +++ b/modules/system/agenix/agenix.nix @@ -0,0 +1,14 @@ +{inputs, ... }: { + flake.nixosModules.agenix = {config, ...}: { + imports = [ + inputs.agenix.nixosModules.default + ]; + age = { + enable = true; + identityPaths = [ "/var/lib/misc/key.age" ]; + secrets = { + easyroam.file = ./easyroam.age; + }; + }; + }; +} diff --git a/modules/system/agenix/easyroam.age b/modules/system/agenix/easyroam.age new file mode 100644 index 0000000..e91d869 Binary files /dev/null and b/modules/system/agenix/easyroam.age differ diff --git a/modules/system/core/boot.nix b/modules/system/core/boot.nix new file mode 100644 index 0000000..cd2b8cf --- /dev/null +++ b/modules/system/core/boot.nix @@ -0,0 +1,23 @@ +{ lib, config, ... }: { + flake.nixosModules.boot = { config, ... }: { + options = { + dualBoot = lib.mkOption { + type = lib.types.bool; + default = false; + description = "wether to enable windows boot entry to limine or not"; + }; + }; + config.boot.loader = { + efi.canTouchEfiVariables = true; + limine = { + style.wallpapers = [ ]; + enable = true; + extraEntries = lib.mkIf config.dualBoot '' + /Windows 11 + protocol: efi_boot_entry + entry: Windows Boot Manager + ''; + }; + }; + }; +} diff --git a/modules/system/core/core.nix b/modules/system/core/core.nix new file mode 100644 index 0000000..cd88822 --- /dev/null +++ b/modules/system/core/core.nix @@ -0,0 +1,30 @@ +{ ... }: { + flake.nixosModules.core = { pkgs, ... }: { + hardware.enableRedistributableFirmware = true; + boot.kernelPackages = pkgs.linuxPackages_latest; + time.timeZone = "Europe/Berlin"; + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; + }; + security = { + rtkit.enable = true; + polkit.enable = true; # polkit + polkit.enablePkexecWrapper = true; + }; + networking.networkmanager.enable = true; + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + system.stateVersion = "26.05"; + }; +} diff --git a/modules/system/core/packages.nix b/modules/system/core/packages.nix new file mode 100644 index 0000000..e316ac4 --- /dev/null +++ b/modules/system/core/packages.nix @@ -0,0 +1,37 @@ +{ ... }: { + flake.nixosModules.packages = { pkgs, ... }: { + nixpkgs.config.allowUnfree = true; + programs.niri.enable = true; + services.displayManager.gdm.enable = true; + environment.systemPackages = with pkgs; [ + ufetch + rbw + pinentry-gnome3 + nixd + nixfmt + xournalpp + chromium + wl-clipboard + polkit_gnome + xwayland-satellite + nautilus + libwacom + devenv + gcc + gdb + clang-tools + gnumake + ripgrep + jq + kdePackages.qtdeclarative + brightnessctl + libreoffice-stable + ani-cli + ryubing + ]; + fonts.packages = with pkgs; [ + inter + noto-fonts + ]; + }; +} diff --git a/modules/system/core/user.nix b/modules/system/core/user.nix new file mode 100644 index 0000000..0830502 --- /dev/null +++ b/modules/system/core/user.nix @@ -0,0 +1,48 @@ +{ inputs, self, ... }: { + flake.nixosModules.user = { pkgs, ... }: { + imports = [ + inputs.home-manager.nixosModules.home-manager + ]; + users.users."lucy" = { + shell = pkgs.zsh; + isNormalUser = true; + description = "lucy"; + extraGroups = [ + "networkmanager" + "wheel" + ]; + }; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.users.lucy = { config, lib, ... }: { + home.username = "lucy"; + home.homeDirectory = "/home/lucy"; + home.stateVersion = "25.11"; + home.activation.reloadQuickshell = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + qs=${lib.getExe' config.programs.quickshell.package "qs"} + runtime_dir="''${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" + if run --silence env XDG_RUNTIME_DIR="$runtime_dir" "$qs" ipc show; then + run --silence env XDG_RUNTIME_DIR="$runtime_dir" "$qs" ipc call config reload || + warnEcho "Quickshell is running, but 'qs ipc call config reload' failed" + fi + ''; + }; + home-manager.sharedModules = with self.homeModules; [ + btop + clangd + nixcord + ghostty + hermes + niri + emacs + git + stylix + fuzzel + quickshell + spotify + syncthing + ]; + }; + +} diff --git a/modules/system/hardware/bluetooth.nix b/modules/system/hardware/bluetooth.nix new file mode 100644 index 0000000..c40074a --- /dev/null +++ b/modules/system/hardware/bluetooth.nix @@ -0,0 +1,15 @@ +{ ... }: +{ + flake.nixosModules.bluetooth = { + hardware.bluetooth = { + enable = true; + powerOnBoot = false; + input.General.ClassicBondedOnly = false; + settings = { + General = { + Experimental = true; + }; + }; + }; + }; +} diff --git a/modules/system/hardware/nvidia.nix b/modules/system/hardware/nvidia.nix new file mode 100644 index 0000000..9c23782 --- /dev/null +++ b/modules/system/hardware/nvidia.nix @@ -0,0 +1,18 @@ +{ ... }: { + flake.nixosModules.nvidia = { config, ... }: { + # Enable OpenGL + hardware.graphics = { + enable = true; + }; + + services.xserver.videoDrivers = [ "nvidia" ]; + hardware.nvidia = { + modesetting.enable = true; + powerManagement.enable = false; + powerManagement.finegrained = false; + open = true; + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; + }; +} diff --git a/modules/system/hosts/nerv/hardware-configuration.nix b/modules/system/hosts/nerv/hardware-configuration.nix new file mode 100644 index 0000000..f411dac --- /dev/null +++ b/modules/system/hosts/nerv/hardware-configuration.nix @@ -0,0 +1,43 @@ +# 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. +{ lib, config, ... }: + +{ + flake.nixosModules.nerv = { config, ... }: { + + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + "ahci" + "usbhid" + "usb_storage" + "sd_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/48badf37-8adb-48d0-b861-fbf71cbaddd7"; + fsType = "xfs"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/DC66-ACA6"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/3b0e79c9-e3d8-4b58-99b4-63c98309ac85"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + }; + +} diff --git a/modules/system/hosts/nerv/quirks.nix b/modules/system/hosts/nerv/quirks.nix new file mode 100644 index 0000000..a53af4e --- /dev/null +++ b/modules/system/hosts/nerv/quirks.nix @@ -0,0 +1,8 @@ +{ ... }: { + flake.nixosModules.nerv_quirks = { config, ... }: { + config = { + networking.hostName = "nerv"; + dualBoot = true; + }; + }; +} diff --git a/modules/system/hosts/seele/hardware-configuration.nix b/modules/system/hosts/seele/hardware-configuration.nix new file mode 100644 index 0000000..60e76f9 --- /dev/null +++ b/modules/system/hosts/seele/hardware-configuration.nix @@ -0,0 +1,49 @@ +{ + lib, + config, + modulesPath, + ... +}: + +{ + flake.nixosModules.seele = + { + config, + lib, + + ... + }: + { + boot.initrd.availableKernelModules = [ + "xhci_pci" + "nvme" + "usb_storage" + "sd_mod" + "sdhci_pci" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/629196f0-60e9-476e-b294-0d22fd7279c4"; + fsType = "xfs"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/2474-C1E6"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/166d1fb4-527f-4fda-a6bf-85aad4a4f917"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + }; +} diff --git a/modules/system/hosts/seele/quirks.nix b/modules/system/hosts/seele/quirks.nix new file mode 100644 index 0000000..34a64ac --- /dev/null +++ b/modules/system/hosts/seele/quirks.nix @@ -0,0 +1,5 @@ +{ ... }: { + flake.nixosModules.seele_quirks = { + networking.hostName = "seele"; + }; +} diff --git a/modules/system/programs/chromium.nix b/modules/system/programs/chromium.nix new file mode 100644 index 0000000..e47fe90 --- /dev/null +++ b/modules/system/programs/chromium.nix @@ -0,0 +1,11 @@ +{ ... }: { + flake.nixosModules.chromium = { + programs.chromium = { + enable = true; + extensions = [ + "nngceckbapebfimnlniiiahkandclblb" # bitwarden + "ddkjiahejlhfcafbddmgiahcphecmpfh" # ublock origin lite + ]; + }; + }; +} diff --git a/modules/system/programs/default.nix b/modules/system/programs/default.nix new file mode 100644 index 0000000..4950094 --- /dev/null +++ b/modules/system/programs/default.nix @@ -0,0 +1,6 @@ +{ ... }: { + flake.nixosModules.programs = { + programs.niri.enable = true; + programs.direnv.enable = true; + }; +} diff --git a/modules/system/programs/gaming.nix b/modules/system/programs/gaming.nix new file mode 100644 index 0000000..aeeff62 --- /dev/null +++ b/modules/system/programs/gaming.nix @@ -0,0 +1,26 @@ +{ + flake.nixosModules.gaming = + { pkgs, ... }: + { + programs.steam = { + enable = true; + extraCompatPackages = with pkgs; [ proton-ge-bin ]; + protontricks.enable = true; + remotePlay.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + }; + + programs.gamescope = { + enable = true; + capSysNice = true; + enableWsi = true; + }; + + programs.gamemode.enable = true; + + environment.systemPackages = with pkgs; [ + heroic # Epic-Fassung von Rocket League (braucht GE-Proton) + umu-launcher # Proton-Runtime für Heroic / Nicht-Steam-Games + ]; + }; +} diff --git a/modules/system/programs/nautilus.nix b/modules/system/programs/nautilus.nix new file mode 100644 index 0000000..94e33ca --- /dev/null +++ b/modules/system/programs/nautilus.nix @@ -0,0 +1,6 @@ +{ ... }: { + flake.nixosModules.nautilus = { + services.gvfs.enable = true; + services.udisks2.enable = true; + }; +} diff --git a/modules/system/programs/zsh.nix b/modules/system/programs/zsh.nix new file mode 100644 index 0000000..9c3c153 --- /dev/null +++ b/modules/system/programs/zsh.nix @@ -0,0 +1,19 @@ +{ ... }: { + flake.nixosModules.zsh = { + programs.zsh = { + enable = true; + enableCompletion = true; + autosuggestions.enable = true; + syntaxHighlighting.enable = true; + ohMyZsh = { + enable = true; + theme = "gentoo"; + }; + shellInit = '' + export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/rbw/ssh-agent-socket" + eval "$(devenv hook zsh)" + ''; + }; + system.userActivationScripts.zshrc = "touch .zshrc"; + }; +} diff --git a/modules/system/services/base.nix b/modules/system/services/base.nix new file mode 100644 index 0000000..27dabb7 --- /dev/null +++ b/modules/system/services/base.nix @@ -0,0 +1,6 @@ +{ ... }: { + flake.nixosModules.base_services = { + services.upower.enable = true; + services.blueman.enable = true; + }; +} diff --git a/modules/system/services/easyroam.nix b/modules/system/services/easyroam.nix new file mode 100644 index 0000000..0583bc5 --- /dev/null +++ b/modules/system/services/easyroam.nix @@ -0,0 +1,16 @@ +{ inputs, ... }: { + flake.nixosModules.easyroam = { config, ... }: { + imports = [ + inputs.nix-easyroam.nixosModules.nix-easyroam + ]; + services.easyroam = { + enable = true; + pkcsFile = config.age.secrets.easyroam.path; + networkmanager.enable = true; + }; + systemd.services.wpa_supplicant = { + wants = [ "easyroam-cert-setup.service" ]; + after = [ "easyroam-cert-setup.service" ]; + }; + }; +} diff --git a/modules/system/services/pipewire.nix b/modules/system/services/pipewire.nix new file mode 100644 index 0000000..a026ef5 --- /dev/null +++ b/modules/system/services/pipewire.nix @@ -0,0 +1,10 @@ +{ ... }: { + flake.nixosModules.pipewire = { + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + }; +} diff --git a/modules/system/services/tlp.nix b/modules/system/services/tlp.nix new file mode 100644 index 0000000..814305a --- /dev/null +++ b/modules/system/services/tlp.nix @@ -0,0 +1,8 @@ +{ ... }: { + flake.nixosModules.tlp = { + services.tlp = { + enable = true; + pd.enable = true; + }; + }; +} diff --git a/modules/system/stylix/default.nix b/modules/system/stylix/default.nix new file mode 100644 index 0000000..04fea95 --- /dev/null +++ b/modules/system/stylix/default.nix @@ -0,0 +1,22 @@ +{ inputs, ... }: { + flake.nixosModules.stylix = { pkgs, ... }: { + imports = [ + inputs.stylix.nixosModules.stylix + ]; + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml"; + cursor = { + name = "macOS"; + package = pkgs.apple-cursor; + size = 24; + }; + icons = { + enable = true; + dark = "Papirus-Dark"; + light = "Papirus-Light"; + package = pkgs.papirus-icon-theme; + }; + }; + }; +} diff --git a/modules/system/stylix/fonts.nix b/modules/system/stylix/fonts.nix new file mode 100644 index 0000000..4d5338d --- /dev/null +++ b/modules/system/stylix/fonts.nix @@ -0,0 +1,26 @@ +{ ... }: { + flake.nixosModules.stylix_fonts = { pkgs, config, ... }: { + stylix.fonts = { + sizes.terminal = 14; + serif = { + package = config.stylix.fonts.monospace.package; + name = config.stylix.fonts.monospace.name; + }; + + sansSerif = { + package = config.stylix.fonts.monospace.package; + name = config.stylix.fonts.monospace.name; + }; + + monospace = { + package = pkgs.maple-mono.Normal-TTF; + name = "Maple Mono Normal"; + }; + + emoji = { + package = pkgs.noto-fonts-color-emoji; + name = "Noto Color Emoji"; + }; + }; + }; +} diff --git a/modules/system/stylix/targets.nix b/modules/system/stylix/targets.nix new file mode 100644 index 0000000..c75de55 --- /dev/null +++ b/modules/system/stylix/targets.nix @@ -0,0 +1,15 @@ +{ inputs, ... }: { + flake.nixosModules.stylix_targets = { + stylix.autoEnable = false; + stylix.targets = { + gtk.enable = true; + qt.enable = true; + chromium.enable = true; + console.enable = true; + font-packages.enable = true; + fontconfig.enable = true; + limine.enable = true; + limine.image.enable = false; + }; + }; +} diff --git a/modules/system/stylix/wallpaper.png b/modules/system/stylix/wallpaper.png new file mode 100644 index 0000000..24abfee Binary files /dev/null and b/modules/system/stylix/wallpaper.png differ diff --git a/modules/theming/default.nix b/modules/theming/default.nix deleted file mode 100644 index 53fafc4..0000000 --- a/modules/theming/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - lib, - inputs, - pkgs, - config, - ... -}: -{ - imports = [ inputs.base16.nixosModule ]; - options.theming.theme = lib.mkOption { - type = lib.types.str; - apply = name: "${inputs.tt-schemes}/base16/${name}.yaml"; - }; - options.theming.font = lib.mkOption { - type = lib.types.str; - }; - options.theming.fontPackage = lib.mkOption { - type = lib.types.package; - }; - - config.theming.theme = "gruvbox-dark"; - config.theming.font = "Iosevka"; - config.theming.fontPackage = pkgs.iosevka; - config.scheme = config.theming.theme; -}