diff --git a/.gitignore b/.gitignore deleted file mode 100644 index e2f5dd2..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -result \ No newline at end of file diff --git a/flake.lock b/flake.lock index cfc596a..c33b1ed 100644 --- a/flake.lock +++ b/flake.lock @@ -1,25 +1,5 @@ { "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" @@ -38,69 +18,19 @@ "type": "github" } }, - "base16-fish": { + "flake-compat": { "flake": false, "locked": { - "lastModified": 1765809053, - "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", - "owner": "tomyun", - "repo": "base16-fish", - "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { - "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", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, @@ -108,48 +38,6 @@ "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=", @@ -164,6 +52,64 @@ "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": { @@ -180,50 +126,25 @@ "type": "github" } }, - "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": { + "helium": { "inputs": { - "flake-parts": "flake-parts_2", - "home-manager": [ - "home-manager" - ], + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" - ], - "npm-lockfile-fix": "npm-lockfile-fix", - "pyproject-build-systems": "pyproject-build-systems", - "pyproject-nix": "pyproject-nix", - "uv2nix": "uv2nix" + ] }, "locked": { - "lastModified": 1793005886, - "narHash": "sha256-gZD8QVfZU4d19WbpGU1d3a1N4iJ0w1b916b/V+P0+cc=", - "owner": "NousResearch", - "repo": "hermes-agent", - "rev": "9b904dcc22c23fe8b82834339bbdd96495072e59", + "lastModified": 1788457071, + "narHash": "sha256-Yqqbe/X4nYdOQHy72x0h7smLr+Vhgwp5X23EPDn1Jdw=", + "owner": "AlvaroParker", + "repo": "helium-nix", + "rev": "d17d25ee7277a108cf6b7a6d167f1bf82ff0e7a0", "type": "github" }, "original": { - "owner": "NousResearch", - "repo": "hermes-agent", + "owner": "AlvaroParker", + "repo": "helium-nix", "type": "github" } }, @@ -234,11 +155,11 @@ ] }, "locked": { - "lastModified": 1792896866, - "narHash": "sha256-/0tELNnhdSnP+bHSdWiEe6KpfSwi6WrTnT9cm/jNkjA=", + "lastModified": 1788487777, + "narHash": "sha256-Ro/e1N4ZR8/XaFF+sF9SgfPK79HM5YNEppzFj8p+0Ak=", "owner": "nix-community", "repo": "home-manager", - "rev": "c216bf5a1f173b0481bd5c8c489ebe5595ecc68c", + "rev": "693e8ce0fb240a73c116a03cfd7b19269c87af88", "type": "github" }, "original": { @@ -247,102 +168,43 @@ "type": "github" } }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "nixcord", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1790996401, - "narHash": "sha256-f+kOxEmOUnQazVAmGg0i8hzwgd1kX/geY+k/Dpheye8=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "db7d5e2332710f5abb088f6b5de927d7f9511b35", - "type": "github" - }, - "original": { - "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": { + "mango": { "inputs": { + "flake-parts": "flake-parts", "nixpkgs": [ "nixpkgs" - ] + ], + "scenefx": "scenefx" }, "locked": { - "lastModified": 1784038797, - "narHash": "sha256-td6Ko5RV/TFw7ALmYP9YUVXMS1b7hW7vDqabrGXyzUo=", - "owner": "0x5a4", - "repo": "nix-easyroam", - "rev": "a6c72d25edc3b210bf6b2b46395c88be7efac147", + "lastModified": 1788490924, + "narHash": "sha256-tymTjjNKWohVzXycg2mN7cSApQ6NDmn9k4LklNq/WGo=", + "owner": "mangowm", + "repo": "mango", + "rev": "7b4266f1d8df09f83283574ba61dba51656d4791", "type": "github" }, "original": { - "owner": "0x5a4", - "repo": "nix-easyroam", + "owner": "mangowm", + "repo": "mango", "type": "github" } }, "nixcord": { "inputs": { - "home-manager": "home-manager_2", - "nix-darwin": "nix-darwin", + "flake-parts": "flake-parts_2", "nixpkgs": [ "nixpkgs" ], - "nixpkgs-ci": "nixpkgs-ci", - "nixpkgs-packages": "nixpkgs-packages", + "nixpkgs-nixcord": "nixpkgs-nixcord", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1792984624, - "narHash": "sha256-i8nr7pMfov5q0W5m1UCeNYGClbA4hdbmTwa+OkumdlY=", + "lastModified": 1788512400, + "narHash": "sha256-pFiwb+c/lIvMvjSzJONZ+jPi36kbbljys7OFy+Kxt3U=", "owner": "4evy", "repo": "nixcord", - "rev": "63e33cd00b08ef49b6623a1b6f9f27f69049d1a9", + "rev": "004e2c950c0b4a404fb3ea5ab01f5645265e4322", "type": "github" }, "original": { @@ -353,40 +215,27 @@ }, "nixpkgs": { "locked": { - "lastModified": 1792773339, - "narHash": "sha256-rZLrzrC6i+jnTAlvPZHogKDulY7WWDEv9hJeHieO7Zw=", - "owner": "nixos", + "lastModified": 1788316716, + "narHash": "sha256-bc7rSpXIdn9QWGNqfWcPZWOhEVF8NoeAZkWq0XWnf/k=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "3ec636362e1816bc2f0888fa0fa2c69f1bc9e504", + "rev": "3ed67ec0a4d3c7ab4ae1f04f8ee8df07bfa506a2", "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": 1790477367, - "narHash": "sha256-oujbxmVKDhci2E4EM3KyAbRUgp5/IsCoiA/LfEF7OOk=", + "lastModified": 1782614948, + "narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "f7cd230690d9fc982d06129f9189b101fddcfa3b", + "rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c", "type": "github" }, "original": { @@ -395,190 +244,81 @@ "type": "github" } }, - "nixpkgs-packages": { + "nixpkgs-lib_2": { "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" - } - }, - "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": "jeslie0", - "repo": "npm-lockfile-fix", - "type": "github" - } - }, - "nur": { - "inputs": { - "flake-parts": [ - "stylix", - "flake-parts" - ], - "nixpkgs": [ - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1785549842, - "narHash": "sha256-DCwBZmGsySF7oKGTRgEv2HvpxVXkHT+38VhTM76k0B4=", + "lastModified": 1785031560, + "narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=", "owner": "nix-community", - "repo": "NUR", - "rev": "a9f987b57594e845e3e5cdd423b9a70846d70308", + "repo": "nixpkgs.lib", + "rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c", "type": "github" }, "original": { "owner": "nix-community", - "repo": "NUR", + "repo": "nixpkgs.lib", "type": "github" } }, - "pyproject-build-systems": { - "inputs": { - "nixpkgs": [ - "hermes-agent", - "nixpkgs" - ], - "pyproject-nix": [ - "hermes-agent", - "pyproject-nix" - ], - "uv2nix": [ - "hermes-agent", - "uv2nix" - ] - }, + "nixpkgs-nixcord": { "locked": { - "lastModified": 1792499785, - "narHash": "sha256-mGOkvueuMGSRiD75ccxFzfEvSlIU9ztjFluHMKOtogY=", - "owner": "pyproject-nix", - "repo": "build-system-pkgs", - "rev": "a17819c85163988e063806ffc4f6d2716bc8ead8", + "lastModified": 1786711500, + "narHash": "sha256-QvnceIGTBeDvDd9oCn+GvdsnkquliuwbVgpiRH68qaQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "02e08985a27c65ffd33d434eeb2e660a2e4dc84d", "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", + "owner": "NixOS", + "ref": "nixos-26.05", + "repo": "nixpkgs", "type": "github" } }, "root": { "inputs": { - "agenix": "agenix", - "flake-parts": "flake-parts", - "hermes-agent": "hermes-agent", + "base16": "base16", + "helium": "helium", "home-manager": "home-manager", - "import-tree": "import-tree", - "nix-easyroam": "nix-easyroam", + "mango": "mango", "nixcord": "nixcord", "nixpkgs": "nixpkgs", - "spicetify-nix": "spicetify-nix", - "stylix": "stylix" + "tt-discord": "tt-discord", + "tt-gtk": "tt-gtk", + "tt-schemes": "tt-schemes", + "tt-terminal": "tt-terminal" } }, - "spicetify-nix": { + "scenefx": { "inputs": { + "flake-utils": "flake-utils_2", "nixpkgs": [ + "mango", "nixpkgs" ], - "systems": "systems" + "systems": "systems_2" }, "locked": { - "lastModified": 1792919014, - "narHash": "sha256-gJ8uPmQFhJ98X+VWPpD+o0tnQ0nJjbG+Z3QDHcSJKw0=", - "owner": "Gerg-L", - "repo": "spicetify-nix", - "rev": "f6eb8135c060130150c8fbcc6b7cf5e22e5179d8", + "lastModified": 1782624992, + "narHash": "sha256-vUjLG6eubEhJJVa9LPygIcVmNoHwYbSUTJcWEcbxnU4=", + "owner": "wlrfx", + "repo": "scenefx", + "rev": "37ccd723bef49e6891156ffafce8f549f01446cc", "type": "github" }, "original": { - "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", + "owner": "wlrfx", + "repo": "scenefx", "type": "github" } }, "systems": { "locked": { - "lastModified": 1791244623, - "narHash": "sha256-uuanbkFk8a313Zfrxdcz8Us/yQtaxNnKJtX8v0ZPpd8=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", "repo": "default", - "rev": "d36eeed142f88b5a636f2e3856a53c61654cf29b", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { @@ -589,81 +329,16 @@ }, "systems_2": { "locked": { - "lastModified": 1774449309, - "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "c29398b59d2048c4ab79345812849c9bd15e9150", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "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", + "repo": "default-linux", "type": "github" } }, @@ -675,11 +350,11 @@ ] }, "locked": { - "lastModified": 1791198660, - "narHash": "sha256-f8Pye933T60vreB9u9pqfAXDyBqO13U7H0LvPsOxCIA=", + "lastModified": 1785945821, + "narHash": "sha256-NLSyTCW4K4ofhNBllt3omPasm6QpralXH1DBZOc91Dw=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "8b367b728be38d1bb7206f037c9df9989df3353a", + "rev": "ae7910970dddc408fe6ab1c8e4b277bb21d72dc0", "type": "github" }, "original": { @@ -688,28 +363,67 @@ "type": "github" } }, - "uv2nix": { - "inputs": { - "nixpkgs": [ - "hermes-agent", - "nixpkgs" - ], - "pyproject-nix": [ - "hermes-agent", - "pyproject-nix" - ] - }, + "tt-discord": { + "flake": false, "locked": { - "lastModified": 1792666911, - "narHash": "sha256-UWo7wDPi00YXOI1Io7g4vGKuCSPJ863kHJVDzsgqtoM=", - "owner": "pyproject-nix", - "repo": "uv2nix", - "rev": "0fdaa03ea3c3c16dbb1fe4d69108f07227a4b42d", + "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" + }, + "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", "type": "github" }, "original": { - "owner": "pyproject-nix", - "repo": "uv2nix", + "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", "type": "github" } } diff --git a/flake.nix b/flake.nix index b743e19..436603b 100644 --- a/flake.nix +++ b/flake.nix @@ -1,45 +1,72 @@ { - description = "lucy's nix config"; inputs = { - 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"; + 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"; inputs.nixpkgs.follows = "nixpkgs"; }; - nixcord = { - url = "github:4evy/nixcord"; + helium = { + url = "github:AlvaroParker/helium-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - agenix = { - url = "github:ryantm/agenix"; - inputs.nixpkgs.follows = "nixpkgs"; + tt-schemes = { + url = "github:tinted-theming/schemes"; + flake = false; }; - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; + tt-terminal = { + url = "github:tinted-theming/tinted-terminal"; + flake = false; }; - stylix = { - url = "github:nix-community/stylix"; - inputs.nixpkgs.follows = "nixpkgs"; + tt-discord = { + url = "git+https://git.lucy.rip/lucy/tinted-discord.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"; + tt-gtk = { + url = "git+https://git.lucy.rip/lucy/tinted-gtk.git"; + flake = false; }; + }; outputs = - inputs: - inputs.flake-parts.lib.mkFlake { inherit inputs; } { - imports = [ - inputs.home-manager.flakeModules.home-manager - (inputs.import-tree ./modules) + { + 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; + } ]; + 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 deleted file mode 100644 index e5addbc..0000000 --- a/modules/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - 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 new file mode 100644 index 0000000..bf14a0a --- /dev/null +++ b/modules/home/default.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./home.nix + ./gtk.nix + ./services.nix + ./qt.nix + ]; +} diff --git a/modules/home/gtk.nix b/modules/home/gtk.nix new file mode 100644 index 0000000..4158304 --- /dev/null +++ b/modules/home/gtk.nix @@ -0,0 +1,24 @@ +{ 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 new file mode 100644 index 0000000..c0af3e2 --- /dev/null +++ b/modules/home/home.nix @@ -0,0 +1,23 @@ +{ + 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 deleted file mode 100644 index daa6ec8..0000000 --- a/modules/home/programs/btop.nix +++ /dev/null @@ -1,10 +0,0 @@ -{...} : { - 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 deleted file mode 100644 index e24d2f0..0000000 --- a/modules/home/programs/clangd.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index fde2af5..0000000 --- a/modules/home/programs/emacs.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ ... }: { - - 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 deleted file mode 100644 index 4b6eb2e..0000000 --- a/modules/home/programs/fuzzel.nix +++ /dev/null @@ -1,12 +0,0 @@ -{...}: { - 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 deleted file mode 100644 index 33c4cb3..0000000 --- a/modules/home/programs/ghostty.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index cc73877..0000000 --- a/modules/home/programs/git.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index c84577d..0000000 --- a/modules/home/programs/hermes.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ 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 deleted file mode 100644 index 30dc3ab..0000000 --- a/modules/home/programs/niri.nix +++ /dev/null @@ -1,197 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index cb6c214..0000000 --- a/modules/home/programs/nixcord.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ 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 deleted file mode 100644 index ea7404e..0000000 --- a/modules/home/programs/quickshell.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: { - - flake.homeModules.quickshell = { - programs.quickshell = { - enable = true; - systemd.enable = true; - }; - }; -} diff --git a/modules/home/programs/spotify.nix b/modules/home/programs/spotify.nix deleted file mode 100644 index cb5ee08..0000000 --- a/modules/home/programs/spotify.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ 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 new file mode 100644 index 0000000..51a5461 --- /dev/null +++ b/modules/home/qt.nix @@ -0,0 +1,18 @@ +{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 new file mode 100644 index 0000000..3b38f63 --- /dev/null +++ b/modules/home/screenshot @@ -0,0 +1,15 @@ +#!/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 new file mode 100644 index 0000000..843453a --- /dev/null +++ b/modules/home/services.nix @@ -0,0 +1,14 @@ +{ 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 deleted file mode 100644 index 1814348..0000000 --- a/modules/home/services/syncthing.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index ff5fc39..0000000 --- a/modules/home/stylix/targets.nix +++ /dev/null @@ -1,13 +0,0 @@ -{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 new file mode 100644 index 0000000..631cd30 --- /dev/null +++ b/modules/hosts/base/configuration.nix @@ -0,0 +1,85 @@ +{ + 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 new file mode 100644 index 0000000..8bc0e0a --- /dev/null +++ b/modules/hosts/nerv/configuration.nix @@ -0,0 +1,24 @@ +{ + 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 new file mode 100644 index 0000000..a206f9e --- /dev/null +++ b/modules/hosts/nerv/hardware-configuration.nix @@ -0,0 +1,31 @@ +# 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 new file mode 100644 index 0000000..ae13744 --- /dev/null +++ b/modules/hosts/seele/configuration.nix @@ -0,0 +1,35 @@ +{ + 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 new file mode 100644 index 0000000..b7b2863 --- /dev/null +++ b/modules/hosts/seele/hardware-configuration.nix @@ -0,0 +1,33 @@ +# 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 deleted file mode 100644 index 657e3ca..0000000 --- a/modules/parts.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - config = { - systems = [ - "x86_64-linux" - "x86_64-darwin" - "aarch64-linux" - "aarch64-darwin" - ]; - }; -} diff --git a/modules/programs/default.nix b/modules/programs/default.nix new file mode 100644 index 0000000..3b46e18 --- /dev/null +++ b/modules/programs/default.nix @@ -0,0 +1,14 @@ +{ 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 new file mode 100644 index 0000000..35c2954 --- /dev/null +++ b/modules/programs/emacs.nix @@ -0,0 +1,79 @@ +{ + 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 new file mode 100644 index 0000000..9071f9f --- /dev/null +++ b/modules/programs/foot.nix @@ -0,0 +1,47 @@ +{ + 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 new file mode 100644 index 0000000..d9afb3a --- /dev/null +++ b/modules/programs/fuzzel.nix @@ -0,0 +1,24 @@ +{ 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 new file mode 100644 index 0000000..29f1d64 --- /dev/null +++ b/modules/programs/git.nix @@ -0,0 +1,10 @@ +{ + 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 new file mode 100644 index 0000000..8088090 --- /dev/null +++ b/modules/programs/mango.nix @@ -0,0 +1,139 @@ +{ + 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 new file mode 100644 index 0000000..079eec0 --- /dev/null +++ b/modules/programs/niri.nix @@ -0,0 +1,157 @@ +{ 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 new file mode 100644 index 0000000..6ea8222 --- /dev/null +++ b/modules/programs/nixcord.nix @@ -0,0 +1,22 @@ +{ + 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 new file mode 100644 index 0000000..7a172da --- /dev/null +++ b/modules/programs/quickshell.nix @@ -0,0 +1,34 @@ +{ 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 new file mode 100644 index 0000000..5a9940b --- /dev/null +++ b/modules/programs/zsh.nix @@ -0,0 +1,10 @@ +{ + 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 deleted file mode 100644 index d70a660..0000000 --- a/modules/system/agenix/_agenix-rules.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config }: -let - main = "age17hvac3hn79mwttel9snw87a20x4vguh7y7ys43xmvlhrl3mqs3wswuzlt6"; -in -{ - "easyroam.age".publicKeys = [ main ]; -} diff --git a/modules/system/agenix/agenix.nix b/modules/system/agenix/agenix.nix deleted file mode 100644 index 00e7b55..0000000 --- a/modules/system/agenix/agenix.nix +++ /dev/null @@ -1,14 +0,0 @@ -{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 deleted file mode 100644 index e91d869..0000000 Binary files a/modules/system/agenix/easyroam.age and /dev/null differ diff --git a/modules/system/core/boot.nix b/modules/system/core/boot.nix deleted file mode 100644 index cd2b8cf..0000000 --- a/modules/system/core/boot.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ 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 deleted file mode 100644 index cd88822..0000000 --- a/modules/system/core/core.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index e316ac4..0000000 --- a/modules/system/core/packages.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index 0830502..0000000 --- a/modules/system/core/user.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ 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 deleted file mode 100644 index c40074a..0000000 --- a/modules/system/hardware/bluetooth.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: -{ - 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 deleted file mode 100644 index 9c23782..0000000 --- a/modules/system/hardware/nvidia.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index f411dac..0000000 --- a/modules/system/hosts/nerv/hardware-configuration.nix +++ /dev/null @@ -1,43 +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. -{ 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 deleted file mode 100644 index a53af4e..0000000 --- a/modules/system/hosts/nerv/quirks.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index 60e76f9..0000000 --- a/modules/system/hosts/seele/hardware-configuration.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - 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 deleted file mode 100644 index 34a64ac..0000000 --- a/modules/system/hosts/seele/quirks.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ ... }: { - flake.nixosModules.seele_quirks = { - networking.hostName = "seele"; - }; -} diff --git a/modules/system/programs/chromium.nix b/modules/system/programs/chromium.nix deleted file mode 100644 index e47fe90..0000000 --- a/modules/system/programs/chromium.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index 4950094..0000000 --- a/modules/system/programs/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index aeeff62..0000000 --- a/modules/system/programs/gaming.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - 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 deleted file mode 100644 index 94e33ca..0000000 --- a/modules/system/programs/nautilus.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index 9c3c153..0000000 --- a/modules/system/programs/zsh.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index 27dabb7..0000000 --- a/modules/system/services/base.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index 0583bc5..0000000 --- a/modules/system/services/easyroam.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ 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 deleted file mode 100644 index a026ef5..0000000 --- a/modules/system/services/pipewire.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index 814305a..0000000 --- a/modules/system/services/tlp.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: { - flake.nixosModules.tlp = { - services.tlp = { - enable = true; - pd.enable = true; - }; - }; -} diff --git a/modules/system/stylix/default.nix b/modules/system/stylix/default.nix deleted file mode 100644 index 04fea95..0000000 --- a/modules/system/stylix/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ 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 deleted file mode 100644 index 4d5338d..0000000 --- a/modules/system/stylix/fonts.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ ... }: { - 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 deleted file mode 100644 index c75de55..0000000 --- a/modules/system/stylix/targets.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ 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 deleted file mode 100644 index 24abfee..0000000 Binary files a/modules/system/stylix/wallpaper.png and /dev/null differ diff --git a/modules/theming/default.nix b/modules/theming/default.nix new file mode 100644 index 0000000..53fafc4 --- /dev/null +++ b/modules/theming/default.nix @@ -0,0 +1,25 @@ +{ + 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; +}