From a8d8c4dde9f07171b508134961798245198d2a1d Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Thu, 30 Oct 2025 11:02:09 +0100 Subject: [PATCH 1/6] had to switch to unstable for dms to work --- flake.lock | 355 ++++++++++-------- flake.nix | 68 +++- hosts/mobile-usb/default.nix | 2 +- modules/home-manager/code.nix | 2 +- .../home-manager/hypr/hyprland/autostart.nix | 1 - modules/home-manager/hypr/waybar.nix | 2 +- modules/home-manager/quickshell/default.nix | 42 +-- users/remy_yoga/default.nix | 6 +- 8 files changed, 266 insertions(+), 212 deletions(-) diff --git a/flake.lock b/flake.lock index 4a19de4..2ef2329 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1759499898, - "narHash": "sha256-UNzYHLWfkSzLHDep5Ckb5tXc0fdxwPIrT+MY4kpQttM=", + "lastModified": 1760101617, + "narHash": "sha256-8jf/3ZCi+B7zYpIyV04+3wm72BD7Z801IlOzsOACR7I=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "655e067f96fd44b3f5685e17f566b0e4d535d798", + "rev": "1826a9923881320306231b1c2090379ebf9fa4f8", "type": "github" }, "original": { @@ -38,11 +38,11 @@ "fromYaml": "fromYaml" }, "locked": { - "lastModified": 1746562888, - "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", + "lastModified": 1755819240, + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", "owner": "SenchoPens", "repo": "base16.nix", - "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", "type": "github" }, "original": { @@ -54,27 +54,28 @@ "base16-fish": { "flake": false, "locked": { - "lastModified": 1622559957, - "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "lastModified": 1754405784, + "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=", "owner": "tomyun", "repo": "base16-fish", - "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "type": "github" }, "original": { "owner": "tomyun", "repo": "base16-fish", + "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "type": "github" } }, "base16-helix": { "flake": false, "locked": { - "lastModified": 1748408240, - "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=", + "lastModified": 1752979451, + "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=", "owner": "tinted-theming", "repo": "base16-helix", - "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e", + "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac", "type": "github" }, "original": { @@ -100,14 +101,80 @@ "type": "github" } }, + "dankMaterialShell": { + "inputs": { + "dgop": "dgop", + "dms-cli": [ + "dms-cli" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1761744363, + "narHash": "sha256-c+lu6aSPPeI9HnqFg4pyNYUWqLrRL2Yju3sFDu42q/w=", + "owner": "AvengeMedia", + "repo": "DankMaterialShell", + "rev": "5e36b1454a7b2cec0c657fd4345a715736bbef19", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "DankMaterialShell", + "type": "github" + } + }, + "dgop": { + "inputs": { + "nixpkgs": [ + "dankMaterialShell", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1760238269, + "narHash": "sha256-7CeGZM/Z/5Qt3AYByCRohGYGR1MRuXYzTTbkV/JxyAs=", + "owner": "AvengeMedia", + "repo": "dgop", + "rev": "95acdfce2d323e28fa8f5a4f345160962034f2b5", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "dgop", + "type": "github" + } + }, + "dms-cli": { + "inputs": { + "gomod2nix": "gomod2nix", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1761674192, + "narHash": "sha256-KpQxBHiXjs1xFlM8mtVaY/XcKX0J5tCoqg8lXtIC9Pk=", + "owner": "AvengeMedia", + "repo": "danklinux", + "rev": "477968d6b3e5dbb82f5e07feb0a1a7b2de9d948e", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "danklinux", + "type": "github" + } + }, "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1748383148, - "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=", + "lastModified": 1758112371, + "narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf", + "rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d", "type": "github" }, "original": { @@ -140,11 +207,11 @@ ] }, "locked": { - "lastModified": 1749398372, - "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", + "rev": "4524271976b625a4a605beefd893f270620fd751", "type": "github" }, "original": { @@ -155,7 +222,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems" }, "locked": { "lastModified": 1731533236, @@ -212,20 +279,43 @@ "gnome-shell": { "flake": false, "locked": { - "lastModified": 1744584021, - "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=", + "lastModified": 1748186689, + "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae", + "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", "type": "github" }, "original": { "owner": "GNOME", - "ref": "48.1", + "ref": "48.2", "repo": "gnome-shell", "type": "github" } }, + "gomod2nix": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "dms-cli", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1756047880, + "narHash": "sha256-JeuGh9kA1SPL70fnvpLxkIkCWpTjtoPaus3jzvdna0k=", + "owner": "nix-community", + "repo": "gomod2nix", + "rev": "47d628dc3b506bd28632e47280c6b89d3496909d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v1.7.0", + "repo": "gomod2nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -233,16 +323,15 @@ ] }, "locked": { - "lastModified": 1758463745, - "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", + "lastModified": 1761750844, + "narHash": "sha256-ab6kNHAEP/oWz8qdblnDw7TIwetr4GnmnDyvya0aw/k=", "owner": "nix-community", "repo": "home-manager", - "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", + "rev": "b8082c6803353456d45e6a8c0d4b36ad33fb7d6a", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-25.05", "repo": "home-manager", "type": "github" } @@ -313,11 +402,11 @@ ] }, "locked": { - "lastModified": 1759490292, - "narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=", + "lastModified": 1760445448, + "narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "9431db625cd9bb66ac55525479dce694101d6d7a", + "rev": "50fb9f069219f338a11cf0bcccb9e58357d67757", "type": "github" }, "original": { @@ -338,15 +427,15 @@ "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs", "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems", + "systems": "systems_2", "xdph": "xdph" }, "locked": { - "lastModified": 1760108751, - "narHash": "sha256-GYyykk6SJytykQAz50WjKa2xK4C+sjPsz2wj5QjRktI=", + "lastModified": 1761742422, + "narHash": "sha256-dke/JIFqles3r4nZwn+XPASGpIxIaKgeUp7NTBHpxgM=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "6a01c399a971a57854fb4a99ce246534139beda4", + "rev": "ff50dc36e912b6ad764802d51be838bc7f6ed323", "type": "github" }, "original": { @@ -367,11 +456,11 @@ ] }, "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "lastModified": 1759610243, + "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", "type": "github" }, "original": { @@ -529,47 +618,44 @@ }, "nix-flatpak": { "locked": { - "lastModified": 1711997201, - "narHash": "sha256-J71xzQlVYsjagA4AsVwRazhBh2rZrPpKvxTgs6UzL7c=", + "lastModified": 1754777568, + "narHash": "sha256-0bBqT+3XncgF8F03RFAamw9vdf0VmaDoIJLTGkjfQZs=", "owner": "gmodena", "repo": "nix-flatpak", - "rev": "b76fa31346db7fc958a9898f3c594696ca71c4fd", + "rev": "62f636b87ef6050760a8cb325cadb90674d1e23e", "type": "github" }, "original": { "owner": "gmodena", - "ref": "v0.4.1", "repo": "nix-flatpak", "type": "github" } }, "nix-vscode-extensions": { "inputs": { - "flake-utils": "flake-utils", "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1759936999, - "narHash": "sha256-3HWI+eKHqTvIZ6lRy0e4z5gvPwHYsHntZ3fl7zivg8M=", + "lastModified": 1761726545, + "narHash": "sha256-+Id4G/5NRpf8Lkdr5q4PBrQo6hvVFTbrN/J+0Q0KU6s=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "fd5c5549692ff4d2dbee1ab7eea19adc2f97baeb", + "rev": "daf7c5026b02623d17ad74548a791c387db438d8", "type": "github" }, "original": { "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "fd5c5549692ff4d2dbee1ab7eea19adc2f97baeb", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1759381078, - "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", + "lastModified": 1761114652, + "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", + "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c", "type": "github" }, "original": { @@ -581,11 +667,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1759831965, - "narHash": "sha256-vgPm2xjOmKdZ0xKA6yLXPJpjOtQPHfaZDRtH+47XEBo=", + "lastModified": 1761373498, + "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c9b6fb798541223bbb396d287d16f43520250518", + "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce", "type": "github" }, "original": { @@ -613,32 +699,16 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1759994382, - "narHash": "sha256-wSK+3UkalDZRVHGCRikZ//CyZUJWDJkBDTQX1+G77Ow=", + "lastModified": 1761373498, + "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5da4a26309e796daa7ffca72df93dbe53b8164c7", + "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1751211869, - "narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.05", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -652,15 +722,14 @@ "nixpkgs": [ "stylix", "nixpkgs" - ], - "treefmt-nix": "treefmt-nix" + ] }, "locked": { - "lastModified": 1751320053, - "narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=", + "lastModified": 1758998580, + "narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=", "owner": "nix-community", "repo": "NUR", - "rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670", + "rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728", "type": "github" }, "original": { @@ -679,11 +748,11 @@ ] }, "locked": { - "lastModified": 1758108966, - "narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=", + "lastModified": 1760663237, + "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b", + "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37", "type": "github" }, "original": { @@ -692,35 +761,16 @@ "type": "github" } }, - "quickshell": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1759997568, - "narHash": "sha256-xQyzPkgpgjAceJKwZhLU2//Y1jAmvPGOq80svqkWFhQ=", - "ref": "refs/heads/master", - "rev": "3e32ae595f97bd2d2e5ed4512fb4bb25edb4eae6", - "revCount": 691, - "type": "git", - "url": "https://git.outfoxxed.me/outfoxxed/quickshell" - }, - "original": { - "type": "git", - "url": "https://git.outfoxxed.me/outfoxxed/quickshell" - } - }, "root": { "inputs": { + "dankMaterialShell": "dankMaterialShell", + "dms-cli": "dms-cli", "home-manager": "home-manager", "hyprland": "hyprland", "nix-flatpak": "nix-flatpak", "nix-vscode-extensions": "nix-vscode-extensions", "nixpkgs": "nixpkgs_3", "nixpkgs-unstable": "nixpkgs-unstable", - "quickshell": "quickshell", "sops-nix": "sops-nix", "stylix": "stylix", "watt": "watt", @@ -734,11 +784,11 @@ ] }, "locked": { - "lastModified": 1759635238, - "narHash": "sha256-UvzKi02LMFP74csFfwLPAZ0mrE7k6EiYaKecplyX9Qk=", + "lastModified": 1760998189, + "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", "owner": "Mic92", "repo": "sops-nix", - "rev": "6e5a38e08a2c31ae687504196a230ae00ea95133", + "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", "type": "github" }, "original": { @@ -756,7 +806,9 @@ "firefox-gnome-theme": "firefox-gnome-theme", "flake-parts": "flake-parts", "gnome-shell": "gnome-shell", - "nixpkgs": "nixpkgs_4", + "nixpkgs": [ + "nixpkgs" + ], "nur": "nur", "systems": "systems_3", "tinted-foot": "tinted-foot", @@ -766,36 +818,20 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1759596342, - "narHash": "sha256-1Eda1V8pjpviMdBTdDXrFp7jkaUokIgXgBYTZyzDODk=", - "owner": "danth", + "lastModified": 1761666531, + "narHash": "sha256-nKOOPeblDcebtYfBjHo+PHXHKNSNKuifn1EGcBEgKWs=", + "owner": "nix-community", "repo": "stylix", - "rev": "4d065856e936fc6a99ba55d39ac2df9ded6bedbe", + "rev": "f8f4e3c3658ee962f8f332a56720c8dfc2836f7a", "type": "github" }, "original": { - "owner": "danth", - "ref": "release-25.05", + "owner": "nix-community", "repo": "stylix", "type": "github" } }, "systems": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -810,6 +846,21 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, "systems_3": { "locked": { "lastModified": 1681028828, @@ -861,11 +912,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1750770351, - "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=", + "lastModified": 1757716333, + "narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=", "owner": "tinted-theming", "repo": "schemes", - "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a", + "rev": "317a5e10c35825a6c905d912e480dfe8e71c7559", "type": "github" }, "original": { @@ -877,11 +928,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1751159871, - "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=", + "lastModified": 1757811970, + "narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c", + "rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e", "type": "github" }, "original": { @@ -893,11 +944,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1751158968, - "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=", + "lastModified": 1757811247, + "narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "86a470d94204f7652b906ab0d378e4231a5b3384", + "rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e", "type": "github" }, "original": { @@ -906,28 +957,6 @@ "type": "github" } }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "stylix", - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733222881, - "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "49717b5af6f80172275d47a418c9719a31a78b53", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, "watt": { "inputs": { "nixpkgs": [ @@ -977,11 +1006,11 @@ ] }, "locked": { - "lastModified": 1755354946, - "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=", + "lastModified": 1760713634, + "narHash": "sha256-5HXelmz2x/uO26lvW7MudnadbAfoBnve4tRBiDVLtOM=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0", + "rev": "753bbbdf6a052994da94062e5b753288cef28dfb", "type": "github" }, "original": { @@ -998,11 +1027,11 @@ ] }, "locked": { - "lastModified": 1759965431, - "narHash": "sha256-HvXr+rOkSZeseOYCruuMKMAUedcDkHOuYpFbnlIPs8Y=", + "lastModified": 1761712008, + "narHash": "sha256-Nf2s59dLg6KDUV0omZqIlOGNUxw/Rl/KKXEXQGFCAlo=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "391a133511ad7e09651b9c3939d8cf8d379766b1", + "rev": "1383ed38745d12f3896c996848d24c451643db58", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a6b9186..03f1677 100644 --- a/flake.nix +++ b/flake.nix @@ -2,16 +2,19 @@ description = "Nix config entry point"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; # Home manager - home-manager.url = "github:nix-community/home-manager/release-25.05"; + home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; # Managing flatpak apps - nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1"; + nix-flatpak.url = "github:gmodena/nix-flatpak"; # hyprland, plugins and related utils hyprland.url = "github:hyprwm/Hyprland"; - stylix.url = "github:danth/stylix/release-25.05"; + stylix = { + url = "github:nix-community/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # zen browser zen-browser.url = "github:0xc000022070/zen-browser-flake"; # IMPORTANT: we're using "libgbm" and is only available in unstable so ensure @@ -29,11 +32,18 @@ sops-nix.inputs.nixpkgs.follows = "nixpkgs"; # quickshell - quickshell = { - url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; + dms-cli = { + url = "github:AvengeMedia/danklinux"; inputs.nixpkgs.follows = "nixpkgs"; }; - nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions/fd5c5549692ff4d2dbee1ab7eea19adc2f97baeb"; + dankMaterialShell = { + url = "github:AvengeMedia/DankMaterialShell"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.dms-cli.follows = "dms-cli"; + }; + + + nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; }; outputs = { @@ -43,19 +53,27 @@ home-manager, stylix, sops-nix, - quickshell, nix-vscode-extensions, ... } @ inputs: let + system = "x86_64-linux"; + username = "remy"; + name = "Rémy"; + + pkgs = nixpkgs.legacyPackages.${system}; + pkgs-unstable = nixpkgs-unstable.legacyPackages.${system}; in { ## NixOS configurations are the main output of this flake # HP Spectre x360 2018 nixosConfigurations.Nixtre = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { inherit inputs; }; + inherit system; + specialArgs = { + inherit inputs; + inherit pkgs-unstable; + }; modules = [ ./hosts/spectre-x360-2018 @@ -64,7 +82,10 @@ { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.extraSpecialArgs = { + inherit inputs; + inherit pkgs-unstable; + }; home-manager.users.remy.imports = [ ./users/remy_spectre @@ -76,8 +97,11 @@ nixosConfigurations.nichts = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { inherit inputs; }; + inherit system; + specialArgs = { + inherit inputs; + inherit pkgs-unstable; + }; modules = [ ./hosts/mobile-usb @@ -86,7 +110,10 @@ { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.extraSpecialArgs = { + inherit inputs; + inherit pkgs-unstable; + }; home-manager.users.remy.imports = [ ./users/remy_usb @@ -98,8 +125,11 @@ nixosConfigurations.nyx = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { inherit inputs; }; + inherit system; + specialArgs = { + inherit inputs; + inherit pkgs-unstable; + }; modules = [ { @@ -115,11 +145,15 @@ home-manager.backupFileExtension = ".backup"; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.extraSpecialArgs = { + inherit inputs; + inherit pkgs-unstable; + }; home-manager.users.remy.imports = [ ./users/remy_yoga inputs.nix-flatpak.homeManagerModules.nix-flatpak + inputs.dankMaterialShell.homeModules.dankMaterialShell.default ]; } ]; diff --git a/hosts/mobile-usb/default.nix b/hosts/mobile-usb/default.nix index 0862fb5..b485ddb 100644 --- a/hosts/mobile-usb/default.nix +++ b/hosts/mobile-usb/default.nix @@ -5,7 +5,7 @@ networking.hostName = "nichts"; userName = "remy"; - gnome.enabled = true; + gnome.enable = true; }; }; diff --git a/modules/home-manager/code.nix b/modules/home-manager/code.nix index 974760c..90e784e 100644 --- a/modules/home-manager/code.nix +++ b/modules/home-manager/code.nix @@ -130,7 +130,7 @@ in ms-python.python ms-python.isort ms-python.debugpy - ms-python.vscode-pylance + # ms-python.vscode-pylance ms-toolsai.vscode-jupyter-slideshow ms-toolsai.jupyter ms-toolsai.jupyter-hub diff --git a/modules/home-manager/hypr/hyprland/autostart.nix b/modules/home-manager/hypr/hyprland/autostart.nix index 2df4b81..afbf0aa 100644 --- a/modules/home-manager/hypr/hyprland/autostart.nix +++ b/modules/home-manager/hypr/hyprland/autostart.nix @@ -9,7 +9,6 @@ in default = [ "gnome-keyring-daemon --start --components=secrets" "wl-paste --watch cliphist store" - "${lib.getExe pkgs.waybar}" "${lib.getExe pkgs.hypridle}" # TODO - currently broken "${pkgs.owncloud-client}" diff --git a/modules/home-manager/hypr/waybar.nix b/modules/home-manager/hypr/waybar.nix index 21637de..2cce98d 100644 --- a/modules/home-manager/hypr/waybar.nix +++ b/modules/home-manager/hypr/waybar.nix @@ -26,7 +26,7 @@ in ]; # enable waybar - programs.waybar.enable = true; + programs.waybar.enable = false; programs.waybar = { settings = { diff --git a/modules/home-manager/quickshell/default.nix b/modules/home-manager/quickshell/default.nix index 72ffc9e..f25af40 100644 --- a/modules/home-manager/quickshell/default.nix +++ b/modules/home-manager/quickshell/default.nix @@ -1,36 +1,28 @@ { - config, - inputs, lib, pkgs, - builtins, ... }: -let - cfg = config.nix-config.quickshell; - qs = inputs.quickshell.packages.x86_64-linux.default; -in { - options.nix-config.quickshell.enable = lib.mkEnableOption { - name = "quickshell"; - description = "Whether to enable quickshell."; - default = true; - }; + programs.dankMaterialShell.enable = true; - config = lib.mkIf cfg.enable { - home.packages = [ - qs - pkgs.qt6.qtimageformats - pkgs.qt6.qt5compat - pkgs.qt6.qtmultimedia - pkgs.qt6.qtdeclarative - pkgs.qt6.qtsvg - pkgs.qt6.qtwayland - pkgs.qt6.qtbase + programs.dankMaterialShell = { + enableSystemd = true; + enableSystemMonitoring = false; + enableClipboard = true; + enableVPN = true; + enableBrightnessControl = true; + enableColorPicker = false; + enableDynamicTheming = true; + enableAudioWavelength = false; + enableCalendarEvents = false; + enableSystemSound = true; - ]; + # default = { + # settings = ''{}''; + # session = ''{}''; + # }; - # add the quickshell config (whole directory) to XDG_CONFIG_HOME - # home.file.".config/quickshell/config".source = ./config; + # plugins = {}; }; } diff --git a/users/remy_yoga/default.nix b/users/remy_yoga/default.nix index d41a88b..e329757 100644 --- a/users/remy_yoga/default.nix +++ b/users/remy_yoga/default.nix @@ -9,9 +9,9 @@ with lib.hm.gvariant; scale = "1.6"; }; }; - quickshell = { - enable = true; - }; + # quickshell = { + # enable = true; + # }; }; }; From efe873d7143299a86b15d017ff537918a4f9a819 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Thu, 30 Oct 2025 18:16:10 +0100 Subject: [PATCH 2/6] cleaned up the flake --- flake.nix | 223 ++++++++++++++++++---------------------- modules/nixos/power.nix | 2 + 2 files changed, 103 insertions(+), 122 deletions(-) diff --git a/flake.nix b/flake.nix index 03f1677..ed00d40 100644 --- a/flake.nix +++ b/flake.nix @@ -5,21 +5,26 @@ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; # Home manager - home-manager.url = "github:nix-community/home-manager"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Managing flatpak apps nix-flatpak.url = "github:gmodena/nix-flatpak"; + # hyprland, plugins and related utils hyprland.url = "github:hyprwm/Hyprland"; + stylix = { url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; # zen browser - zen-browser.url = "github:0xc000022070/zen-browser-flake"; - # IMPORTANT: we're using "libgbm" and is only available in unstable so ensure - # to have it up-to-date or simply don't specify the nixpkgs input - zen-browser.inputs.nixpkgs.follows = "nixpkgs"; + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # power management watt = { @@ -28,8 +33,10 @@ }; # secrets - sops-nix.url = "github:Mic92/sops-nix"; - sops-nix.inputs.nixpkgs.follows = "nixpkgs"; + sops-nix = { + url = "github:Mic92/sops-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # quickshell dms-cli = { @@ -42,7 +49,6 @@ inputs.dms-cli.follows = "dms-cli"; }; - nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; }; @@ -63,123 +69,96 @@ pkgs = nixpkgs.legacyPackages.${system}; pkgs-unstable = nixpkgs-unstable.legacyPackages.${system}; + + lib = nixpkgs.lib; + + systems = { + # HP Spectre x360 2018 + Nixtre = { + hostModules = [ + ./hosts/spectre-x360-2018 + ]; + userModules = [ + ./users/remy_spectre + inputs.nix-flatpak.homeManagerModules.nix-flatpak + ]; + extraModules = [ + inputs.stylix.nixosModules.stylix + inputs.sops-nix.nixosModules.sops + ]; + }; + + # Portable usb stick + nichts = { + hostModules = [ + ./hosts/mobile-usb + ]; + userModules = [ + ./users/remy_usb + inputs.nix-flatpak.homeManagerModules.nix-flatpak + ]; + extraModules = [ + inputs.stylix.nixosModules.stylix + inputs.sops-nix.nixosModules.sops + ]; + }; + + # Lenovo yoga 7 pro + nyx = { + hostModules = [ + ./hosts/yoga-7-pro + ]; + userModules = [ + ./users/remy_yoga + inputs.nix-flatpak.homeManagerModules.nix-flatpak + inputs.dankMaterialShell.homeModules.dankMaterialShell.default + ]; + extraModules = [ + inputs.stylix.nixosModules.stylix + inputs.sops-nix.nixosModules.sops + { nixpkgs.overlays = [ inputs.nix-vscode-extensions.overlays.default ]; } + ]; + }; + }; in { + # For each entry in `systems` create a nixosConfiguration + nixosConfigurations = lib.mapAttrs (_name: cfg: + nixpkgs.lib.nixosSystem { + inherit system; + specialArgs = { inherit inputs pkgs-unstable; }; + modules = + cfg.hostModules ++ + cfg.extraModules ++ + [ home-manager.nixosModules.home-manager { + # Common home-manager flags + home-manager = { + backupFileExtension = ".backup"; + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { inherit inputs pkgs-unstable; }; + }; - ## NixOS configurations are the main output of this flake - # HP Spectre x360 2018 - nixosConfigurations.Nixtre = nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { - inherit inputs; - inherit pkgs-unstable; - }; - - modules = [ - ./hosts/spectre-x360-2018 - stylix.nixosModules.stylix - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { - inherit inputs; - inherit pkgs-unstable; - }; - - home-manager.users.remy.imports = [ - ./users/remy_spectre - inputs.nix-flatpak.homeManagerModules.nix-flatpak - ]; - } - ]; - }; + # Merge in all the user fragments for this host + home-manager.users.remy = lib.mkMerge cfg.userModules; + } + ] + ; + } + ) systems; - nixosConfigurations.nichts = nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { - inherit inputs; - inherit pkgs-unstable; - }; - - modules = [ - ./hosts/mobile-usb - stylix.nixosModules.stylix - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { - inherit inputs; - inherit pkgs-unstable; - }; - - home-manager.users.remy.imports = [ - ./users/remy_usb - inputs.nix-flatpak.homeManagerModules.nix-flatpak - ]; - } - ]; - }; - - - nixosConfigurations.nyx = nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { - inherit inputs; - inherit pkgs-unstable; - }; - - modules = [ - { - nixpkgs.overlays = [ - inputs.nix-vscode-extensions.overlays.default - ]; - } - ./hosts/yoga-7-pro - sops-nix.nixosModules.sops - stylix.nixosModules.stylix - home-manager.nixosModules.home-manager - { - home-manager.backupFileExtension = ".backup"; - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { - inherit inputs; - inherit pkgs-unstable; - }; - - home-manager.users.remy.imports = [ - ./users/remy_yoga - inputs.nix-flatpak.homeManagerModules.nix-flatpak - inputs.dankMaterialShell.homeModules.dankMaterialShell.default - ]; - } - ]; - }; - - # nixosConfigurations.raspberry-pi = nixpkgs.lib.nixosSystem { - # system = "aarch64-linux"; - # modules = [ - # ./hosts/raspberry-pi/configuration.nix - # ]; - # }; - - ## Home Manager configurations here? - - - ## Useful nix build tools - # iso builder TODO - nixosConfigurations.bcachefs-iso = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix" - ({ lib, pkgs, ... }: { - boot.supportedFilesystems = [ "bcachefs" ]; - boot.kernelPackages = lib.mkOverride 0 pkgs.linuxPackages_latest; - }) - ]; - }; + # ## Useful nix build tools + # # iso builder TODO + # nixosConfigurations.bcachefs-iso = nixpkgs.lib.nixosSystem { + # system = "x86_64-linux"; + # modules = [ + # "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix" + # ({ lib, pkgs, ... }: { + # boot.supportedFilesystems = [ "bcachefs" ]; + # boot.kernelPackages = lib.mkOverride 0 pkgs.linuxPackages_latest; + # }) + # ]; + # }; }; } diff --git a/modules/nixos/power.nix b/modules/nixos/power.nix index 51128a9..cbe67e8 100644 --- a/modules/nixos/power.nix +++ b/modules/nixos/power.nix @@ -79,6 +79,8 @@ }; }; + services.upower.enable = true; + services.irqbalance = { enable = true; From 94f392c38802b4db62d04c7c5f4b4eaee20e2c60 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Fri, 7 Nov 2025 10:39:29 +0100 Subject: [PATCH 3/6] add networking through secrets --- .envrc | 1 + .gitignore | 4 +- .sops.yaml | 10 +- flake.lock | 190 ++++++++++----------------- flake.nix | 23 +++- hosts/yoga-7-pro/configuration.nix | 14 +- hosts/yoga-7-pro/default.nix | 1 + modules/home-manager/code.nix | 54 ++++---- modules/home-manager/directories.nix | 2 +- modules/home-manager/sops.nix | 0 modules/nixos/networking.nix | 61 ++++++++- modules/nixos/power.nix | 74 +++++------ modules/nixos/sops.nix | 12 ++ secrets | 2 +- users/remy.nix | 7 +- users/remy_yoga/default.nix | 1 - 16 files changed, 248 insertions(+), 208 deletions(-) create mode 100644 .envrc create mode 100644 modules/home-manager/sops.nix create mode 100644 modules/nixos/sops.nix diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index b009740..a8a7a3c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ # Result is a symlink to the built iso -result \ No newline at end of file +result +# direnv binaries +.direnv diff --git a/.sops.yaml b/.sops.yaml index cdc46e0..e3b1e01 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -1,14 +1,12 @@ -# This example uses YAML anchors which allows reuse of multiple keys -# without having to repeat yourself. -# Also see https://github.com/Mic92/dotfiles/blob/d6114726d859df36ccaa32891c4963ae5717ef7f/nixos/.sops.yaml -# for a more complex example. keys: - &remy_usb age1027e2vu808mvf95m4f0am3aeg88n8vgzt56s04ndpkgm7awzeajspxl6tu - - &remy_yoga age1t2stzdjfwrtekk23w43623fdvt9awdujth765f8l6mu9g6l4537q4gw8d0 - # - &admin_bob age12zlz6lvcdk6eqaewfylg35w0syh58sm7gh53q5vvn7hd7c6nngyseftjxl + - &remy_yoga ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAX4zsiXSSWbE75C0wyBVwaHOw6Gsbh/WqQsgEhvPwT8 remy@nyx + + - &host_yoga age1ckqer7nxzq7q58v9xaqy8ac9vx2va69a46t86wp9m78pj5dpuy3sq8xeaj creation_rules: - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$ key_groups: - age: - *remy_usb - *remy_yoga + - *host_yoga diff --git a/flake.lock b/flake.lock index 2ef2329..eef1498 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1760101617, - "narHash": "sha256-8jf/3ZCi+B7zYpIyV04+3wm72BD7Z801IlOzsOACR7I=", + "lastModified": 1761420899, + "narHash": "sha256-kxGCip6GNbcbNWKu4J2iKbNYfFTS8Zbjg9CWp0zmFoM=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "1826a9923881320306231b1c2090379ebf9fa4f8", + "rev": "62479232aae42c1ef09c2c027c8cfd91df060897", "type": "github" }, "original": { @@ -112,11 +112,11 @@ ] }, "locked": { - "lastModified": 1761744363, - "narHash": "sha256-c+lu6aSPPeI9HnqFg4pyNYUWqLrRL2Yju3sFDu42q/w=", + "lastModified": 1762403774, + "narHash": "sha256-CXgW0EEW+WV4jJ/5mxNluQeTgS6wyuuUlUcsZF84bKU=", "owner": "AvengeMedia", "repo": "DankMaterialShell", - "rev": "5e36b1454a7b2cec0c657fd4345a715736bbef19", + "rev": "c9ee856f916023563d9446483024a8aec2dce870", "type": "github" }, "original": { @@ -148,17 +148,16 @@ }, "dms-cli": { "inputs": { - "gomod2nix": "gomod2nix", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1761674192, - "narHash": "sha256-KpQxBHiXjs1xFlM8mtVaY/XcKX0J5tCoqg8lXtIC9Pk=", + "lastModified": 1762404200, + "narHash": "sha256-/GhnVY1AwcgxOVhSXdrejVQNbi27kXRNMD93C2nH5ho=", "owner": "AvengeMedia", "repo": "danklinux", - "rev": "477968d6b3e5dbb82f5e07feb0a1a7b2de9d948e", + "rev": "b94cc56f44e7fb987d293e4880871fa0845da8ed", "type": "github" }, "original": { @@ -220,24 +219,6 @@ "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" - } - }, "fromYaml": { "flake": false, "locked": { @@ -293,29 +274,6 @@ "type": "github" } }, - "gomod2nix": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": [ - "dms-cli", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1756047880, - "narHash": "sha256-JeuGh9kA1SPL70fnvpLxkIkCWpTjtoPaus3jzvdna0k=", - "owner": "nix-community", - "repo": "gomod2nix", - "rev": "47d628dc3b506bd28632e47280c6b89d3496909d", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "v1.7.0", - "repo": "gomod2nix", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -323,11 +281,11 @@ ] }, "locked": { - "lastModified": 1761750844, - "narHash": "sha256-ab6kNHAEP/oWz8qdblnDw7TIwetr4GnmnDyvya0aw/k=", + "lastModified": 1762367206, + "narHash": "sha256-c/164YOPkV09BH8KIUdvVvJs3VF2LNIbE2piKGgXPxk=", "owner": "nix-community", "repo": "home-manager", - "rev": "b8082c6803353456d45e6a8c0d4b36ad33fb7d6a", + "rev": "af119feb17cb242398e0fb97f92b867d25882522", "type": "github" }, "original": { @@ -344,11 +302,11 @@ ] }, "locked": { - "lastModified": 1752603129, - "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", + "lastModified": 1762351818, + "narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=", "owner": "nix-community", "repo": "home-manager", - "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", + "rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea", "type": "github" }, "original": { @@ -427,15 +385,15 @@ "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs", "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems_2", + "systems": "systems", "xdph": "xdph" }, "locked": { - "lastModified": 1761742422, - "narHash": "sha256-dke/JIFqles3r4nZwn+XPASGpIxIaKgeUp7NTBHpxgM=", + "lastModified": 1762387591, + "narHash": "sha256-dbxpwgat8W/+P/cYnLXzoj5Gi8WKdtMgvqHuEzIU8fs=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "ff50dc36e912b6ad764802d51be838bc7f6ed323", + "rev": "c757fd375cce299e3da922190ddf1a0622ce807c", "type": "github" }, "original": { @@ -578,11 +536,11 @@ ] }, "locked": { - "lastModified": 1759619523, - "narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=", + "lastModified": 1762208756, + "narHash": "sha256-hC1jb4tdjFfEuU18KQiMgz5XPAO+d5SfbjAUS7haLl4=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef", + "rev": "164a30b3d8b3174a32ac7326782476f1188e6118", "type": "github" }, "original": { @@ -631,31 +589,34 @@ "type": "github" } }, - "nix-vscode-extensions": { + "nix4vscode": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2" }, "locked": { - "lastModified": 1761726545, - "narHash": "sha256-+Id4G/5NRpf8Lkdr5q4PBrQo6hvVFTbrN/J+0Q0KU6s=", + "lastModified": 1762394598, + "narHash": "sha256-AbDS8JL8mXAP0gVAXQA1RIUwnH6rUHueCTPf/hxAooE=", "owner": "nix-community", - "repo": "nix-vscode-extensions", - "rev": "daf7c5026b02623d17ad74548a791c387db438d8", + "repo": "nix4vscode", + "rev": "4c90ca996c860583f8fc77fa8abd24610439f850", "type": "github" }, "original": { "owner": "nix-community", - "repo": "nix-vscode-extensions", + "repo": "nix4vscode", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1761114652, - "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=", + "lastModified": 1762111121, + "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c", + "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "type": "github" }, "original": { @@ -667,11 +628,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1761373498, - "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=", + "lastModified": 1762111121, + "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce", + "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "type": "github" }, "original": { @@ -683,27 +644,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1759770925, - "narHash": "sha256-CZwkCtzTNclqlhuwDsVtGoRumTpqCUK0xSnFIMgd8ls=", + "lastModified": 1762111121, + "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "674c2b09c59a220204350ced584cadaacee30038", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "rev": "674c2b09c59a220204350ced584cadaacee30038", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1761373498, - "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce", + "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "type": "github" }, "original": { @@ -768,8 +713,8 @@ "home-manager": "home-manager", "hyprland": "hyprland", "nix-flatpak": "nix-flatpak", - "nix-vscode-extensions": "nix-vscode-extensions", - "nixpkgs": "nixpkgs_3", + "nix4vscode": "nix4vscode", + "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", "sops-nix": "sops-nix", "stylix": "stylix", @@ -818,11 +763,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1761666531, - "narHash": "sha256-nKOOPeblDcebtYfBjHo+PHXHKNSNKuifn1EGcBEgKWs=", + "lastModified": 1762264356, + "narHash": "sha256-QVfC53Ri+8n3e7Ujx9kq6all3+TLBRRPRnc6No5qY5w=", "owner": "nix-community", "repo": "stylix", - "rev": "f8f4e3c3658ee962f8f332a56720c8dfc2836f7a", + "rev": "647bb8dd96a206a1b79c4fd714affc88b409e10b", "type": "github" }, "original": { @@ -832,21 +777,6 @@ } }, "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_2": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -861,6 +791,22 @@ "type": "github" } }, + "systems_2": { + "flake": false, + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "systems_3": { "locked": { "lastModified": 1681028828, @@ -1006,11 +952,11 @@ ] }, "locked": { - "lastModified": 1760713634, - "narHash": "sha256-5HXelmz2x/uO26lvW7MudnadbAfoBnve4tRBiDVLtOM=", + "lastModified": 1761431178, + "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "753bbbdf6a052994da94062e5b753288cef28dfb", + "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", "type": "github" }, "original": { @@ -1027,11 +973,11 @@ ] }, "locked": { - "lastModified": 1761712008, - "narHash": "sha256-Nf2s59dLg6KDUV0omZqIlOGNUxw/Rl/KKXEXQGFCAlo=", + "lastModified": 1762403216, + "narHash": "sha256-BPv/dC0S54hqsurgmxGxUbXb3kJMpK3KNKQDrdO4NRE=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "1383ed38745d12f3896c996848d24c451643db58", + "rev": "a3a22c5ad43f46f8ddad7eed8aa7f82ec649765f", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index ed00d40..d0be1b0 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,7 @@ { description = "Nix config entry point"; - + # since secrets live in a submodule, enable submodules by default + inputs.self.submodules = true; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; @@ -49,7 +50,10 @@ inputs.dms-cli.follows = "dms-cli"; }; - nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; + nix4vscode = { + url = "github:nix-community/nix4vscode"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { @@ -59,7 +63,7 @@ home-manager, stylix, sops-nix, - nix-vscode-extensions, + nix4vscode, ... } @ inputs: let @@ -112,11 +116,12 @@ ./users/remy_yoga inputs.nix-flatpak.homeManagerModules.nix-flatpak inputs.dankMaterialShell.homeModules.dankMaterialShell.default + ]; extraModules = [ inputs.stylix.nixosModules.stylix inputs.sops-nix.nixosModules.sops - { nixpkgs.overlays = [ inputs.nix-vscode-extensions.overlays.default ]; } + { nixpkgs.overlays = [ inputs.nix4vscode.overlays.default ]; } ]; }; }; @@ -160,5 +165,15 @@ # }) # ]; # }; + + # devshell for this configuration + devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell { + packages = [ + pkgs.sops + ]; + + # tell sops where the public ssh key to "seed" the age key from is located + SOPS_AGE_SSH_PRIVATE_KEY_FILE = "/home/remy/.ssh/main_key"; + }; }; } diff --git a/hosts/yoga-7-pro/configuration.nix b/hosts/yoga-7-pro/configuration.nix index 5572347..93cc364 100644 --- a/hosts/yoga-7-pro/configuration.nix +++ b/hosts/yoga-7-pro/configuration.nix @@ -5,17 +5,21 @@ { config, lib, pkgs, ... }: { - boot.loader = { systemd-boot.enable = true; timeout = 0; efi.canTouchEfiVariables = true; }; - # cause it is so inconveniently located - services.logind.powerKey = "ignore"; - services.logind.lidSwitch = "sleep"; - services.logind.lidSwitchDocked = "ignore"; + services.logind.settings.Login = { + # because it is so inconveniently located + HandlePowerKey = "ignore"; + + # handled by the dm instead + HandleLidSwitch = "ignore"; + HandleLidSwitchDocked = "ignore"; + }; + # requires too many shenanigans so I just install using --no-root-passwd # users.users.root.hashedPassword = "!"; diff --git a/hosts/yoga-7-pro/default.nix b/hosts/yoga-7-pro/default.nix index a3c9fd4..0bada65 100644 --- a/hosts/yoga-7-pro/default.nix +++ b/hosts/yoga-7-pro/default.nix @@ -26,6 +26,7 @@ ../../modules/nixos/pipewire.nix ../../modules/nixos/podman.nix ../../modules/nixos/power.nix + ../../modules/nixos/sops.nix ../../modules/nixos/stylix.nix ../../modules/nixos/user.nix diff --git a/modules/home-manager/code.nix b/modules/home-manager/code.nix index 90e784e..2dfcca2 100644 --- a/modules/home-manager/code.nix +++ b/modules/home-manager/code.nix @@ -1,14 +1,14 @@ {pkgs, ...}: let - baseExtensions = with pkgs.vscode-marketplace; [ + baseExtensions = pkgs.nix4vscode.forVscode [ # QOL - mhutchie.git-graph - redhat.vscode-yaml - # github.copilot - # github.copilot-chat + "mhutchie.git-graph" + "redhat.vscode-yaml" + "github.copilot" + "github.copilot-chat" # Nix environment selector - arrterian.nix-env-selector - continue.continue + "arrterian.nix-env-selector" + # continue.continue ]; @@ -102,21 +102,21 @@ in }; profiles.development = { - extensions = baseExtensions ++ (with pkgs.vscode-marketplace; [ + extensions = baseExtensions ++ pkgs.nix4vscode.forVscode [ # python - ms-python.python - ms-python.isort - ms-python.debugpy - ms-python.vscode-pylance + "ms-python.python" + "ms-python.isort" + "ms-python.debugpy" + "ms-python.vscode-pylance" # nix language - jnoortheen.nix-ide + "jnoortheen.nix-ide" # Flutter and co - dart-code.flutter - dart-code.dart-code + "dart-code.flutter" + "dart-code.dart-code" - ]); + ]; keybindings = baseKeybindings; @@ -125,19 +125,19 @@ in profiles.science = { - extensions = baseExtensions ++ (with pkgs.vscode-marketplace; [ + extensions = baseExtensions ++ pkgs.nix4vscode.forVscode [ # python + jupyter - ms-python.python - ms-python.isort - ms-python.debugpy - # ms-python.vscode-pylance - ms-toolsai.vscode-jupyter-slideshow - ms-toolsai.jupyter - ms-toolsai.jupyter-hub - ms-toolsai.jupyter-renderers + "ms-python.python" + "ms-python.isort" + "ms-python.debugpy" + "ms-python.vscode-pylance" + "ms-toolsai.vscode-jupyter-slideshow" + "ms-toolsai.jupyter" + "ms-toolsai.jupyter-hub" + "ms-toolsai.jupyter-renderers" # Typst - myriad-dreamin.tinymist - ]); + "myriad-dreamin.tinymist" + ]; keybindings = baseKeybindings ++ [ # run code cell in jupyter diff --git a/modules/home-manager/directories.nix b/modules/home-manager/directories.nix index bdc27f2..24ee4eb 100644 --- a/modules/home-manager/directories.nix +++ b/modules/home-manager/directories.nix @@ -11,7 +11,7 @@ createDirectories = true; documents = "${config.home.homeDirectory}/Documents"; download = "${config.home.homeDirectory}/Downloads"; - pictures = "${config.home.homeDirectory}/Pictures";# + pictures = "${config.home.homeDirectory}/Pictures"; # do not create the following desktop = null; music = null; diff --git a/modules/home-manager/sops.nix b/modules/home-manager/sops.nix new file mode 100644 index 0000000..e69de29 diff --git a/modules/nixos/networking.nix b/modules/nixos/networking.nix index 936b397..44bdc3a 100644 --- a/modules/nixos/networking.nix +++ b/modules/nixos/networking.nix @@ -13,6 +13,11 @@ in type = lib.types.str; default = "nixos"; }; + + nix-config.networking.vpn = lib.mkOption { + type = lib.types.bool; + default = true; + }; }; config = { @@ -30,6 +35,60 @@ in # enable = false; # }; - }; + # # VPN setup + networking.networkmanager.ensureProfiles = { + environmentFiles = [ config.sops.secrets.vpnEnvironment.path ]; + profiles.wg-home = { + connection = { + id = "wg-home"; + type = "wireguard"; + interface-name = "wgh"; + autoconnect = false; + }; + ipv4 = { + address = "10.0.0.2/32"; + method = "manual"; + }; + + wireguard = { + listen-port = 51820; + private-key = "$HOME_PRIVATE_KEY"; + }; + + "wireguard-peer.y/TBD/c0GkrRtekDkCb8TUnYYil8bSRPIjPDY650pz8=" = { + endpoint = "$HOME_ENDPOINT"; + allowed-ips = "192.168.1.0/16"; + }; + }; + + + + profiles.wg-fritzbox = { + connection = { + id = "wg-fritzbox"; + type = "wireguard"; + interface-name = "wgfb"; + autoconnect = false; + }; + + ipv4 = { + address = "192.168.178.201/24"; + dns = "192.168.178.1"; + method = "manual"; + }; + + wireguard = { + listen-port = 51820; + private-key = "$FRITZBOX_PRIVATE_KEY"; + }; + + "wireguard-peer.Jf/seKAL7kWm2qX9gf5Ln8FiN7OlPQB3CyRovDIOEHw=" = { + endpoint = "$FRITZBOX_ENDPOINT"; + allowed-ips = "192.168.178.0/24;fd73:ea00:5841::/64"; + preshared-key = "$FRITZBOX_PRESHARED_KEY"; + }; + }; + }; + }; } diff --git a/modules/nixos/power.nix b/modules/nixos/power.nix index cbe67e8..d8d1a4a 100644 --- a/modules/nixos/power.nix +++ b/modules/nixos/power.nix @@ -23,42 +23,42 @@ config = { - # services.tlp = { - # enable = true; - # settings = { - # # processor chooses frequencies itself but respects the limits set by the user - # CPU_DRIVER_OPMODE_ON_AC = "guided"; - # CPU_DRIVER_OPMODE_ON_BAT = "guided"; + services.tlp = { + enable = true; + settings = { + # processor chooses frequencies itself but respects the limits set by the user + CPU_DRIVER_OPMODE_ON_AC = "guided"; + CPU_DRIVER_OPMODE_ON_BAT = "guided"; - # # governor dictates global behavior of the CPU - # CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; - # CPU_SCALING_GOVERNOR_ON_AC = "performance"; + # governor dictates global behavior of the CPU + CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; + CPU_SCALING_GOVERNOR_ON_AC = "performance"; - # # energy performance policy (EPP) sets the energy/performance balance - # CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power"; - # CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; + # energy performance policy (EPP) sets the energy/performance balance + CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power"; + CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; - # # clock speeds reported by `sudo tlp-stat` - # # 623377 [kHz] and 5090910 [kHz] - # # CPU_SCALING_MIN_FREQ_ON_AC = 623377; - # # CPU_SCALING_MAX_FREQ_ON_AC = 5090910; - # # CPU_SCALING_MIN_FREQ_ON_BAT = 0; - # # # reduce max frequency on battery to save power - # # CPU_SCALING_MAX_FREQ_ON_BAT = 3000000; + # clock speeds reported by `sudo tlp-stat` + # 623377 [kHz] and 5090910 [kHz] + CPU_SCALING_MIN_FREQ_ON_AC = 623377; + CPU_SCALING_MAX_FREQ_ON_AC = 5090910; + CPU_SCALING_MIN_FREQ_ON_BAT = 0; + # reduce max frequency on battery to save power + CPU_SCALING_MAX_FREQ_ON_BAT = 3000000; - # # Allow the CPU to boost - # CPU_BOOST_ON_AC = 1; - # CPU_BOOST_ON_BAT = 1; + # Allow the CPU to boost + CPU_BOOST_ON_AC = 1; + CPU_BOOST_ON_BAT = 1; - # RADEON_DPM_PERF_LEVEL_ON_AC = "high"; - # WIFI_PWR_ON_BAT = "off"; + RADEON_DPM_PERF_LEVEL_ON_AC = "high"; + # WIFI_PWR_ON_BAT = "off"; - # # enable battery charge thresholds on the default battery - # STOP_CHARGE_THRESH_BAT0 = 1; - # }; - # }; + # enable battery charge thresholds on the default battery + STOP_CHARGE_THRESH_BAT0 = 1; + }; + }; @@ -69,15 +69,15 @@ AllowSuspendThenHibernate=yes ''; - services.watt = { - enable = true; - settings = { - battery_charge_thresholds = [ - 40 - 80 - ]; - }; - }; + # services.watt = { + # enable = true; + # settings = { + # battery_charge_thresholds = [ + # 40 + # 80 + # ]; + # }; + # }; services.upower.enable = true; diff --git a/modules/nixos/sops.nix b/modules/nixos/sops.nix new file mode 100644 index 0000000..9fc1ce1 --- /dev/null +++ b/modules/nixos/sops.nix @@ -0,0 +1,12 @@ +{ + inputs, + ... +}: +{ + sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; + sops.defaultSopsFile = ./../../secrets/vpn.env; + sops.secrets.vpnEnvironment = { + sopsFile = ./../../secrets/vpn.env; + format = "dotenv"; + }; +} diff --git a/secrets b/secrets index 2aef0ad..a51d89c 160000 --- a/secrets +++ b/secrets @@ -1 +1 @@ -Subproject commit 2aef0ad374282d35c756504d940beeb75bd485b1 +Subproject commit a51d89c420f77d92af6af4083827df8dc2d0f2e5 diff --git a/users/remy.nix b/users/remy.nix index 6ff0d7f..20b101f 100644 --- a/users/remy.nix +++ b/users/remy.nix @@ -12,8 +12,10 @@ ## Utils relevant to this user only programs.git = { enable = true; - userName = "Remy Moll"; - userEmail = "me@moll.re"; + settings = { + user.name = "Remy Moll"; + user.email = "me@moll.re"; + }; }; ## XDG configuration @@ -22,6 +24,7 @@ mimeApps = { enable = true; defaultApplications = { + # TODO "inode/directory" = "org.gnome.Nautilus.desktop"; "application/zip" = "org.gnome.FileRoller.desktop"; "application/octet-stream" = "org.gnome.GHex.desktop"; diff --git a/users/remy_yoga/default.nix b/users/remy_yoga/default.nix index e329757..e326746 100644 --- a/users/remy_yoga/default.nix +++ b/users/remy_yoga/default.nix @@ -31,7 +31,6 @@ with lib.hm.gvariant; ../../modules/home-manager/kitty.nix ../../modules/home-manager/kubectl.nix ../../modules/home-manager/launcher.nix - ../../modules/home-manager/notifications.nix ../../modules/home-manager/obsidian.nix ../../modules/home-manager/owncloud-client.nix ../../modules/home-manager/quickshell From 7b9122fe7ffc8f583ebd31dfef6b20ebeb2f4a7d Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Fri, 7 Nov 2025 10:39:48 +0100 Subject: [PATCH 4/6] cleanup hyprland and embrace dms --- modules/home-manager/hypr/default.nix | 18 +- .../home-manager/hypr/hyprland/general.nix | 23 +- .../home-manager/hypr/hyprland/keybinds.nix | 12 +- .../home-manager/hypr/hyprland/layouts.nix | 60 ++-- .../home-manager/hypr/hyprland/packages.nix | 1 - modules/home-manager/hypr/hyprpaper.nix | 66 ---- modules/home-manager/hypr/waybar.nix | 331 ------------------ modules/home-manager/notifications.nix | 110 ------ modules/home-manager/stylix.nix | 2 +- modules/nixos/hyprland.nix | 2 +- 10 files changed, 71 insertions(+), 554 deletions(-) delete mode 100644 modules/home-manager/hypr/hyprpaper.nix delete mode 100644 modules/home-manager/hypr/waybar.nix delete mode 100644 modules/home-manager/notifications.nix diff --git a/modules/home-manager/hypr/default.nix b/modules/home-manager/hypr/default.nix index e1f030a..f2ee9e5 100644 --- a/modules/home-manager/hypr/default.nix +++ b/modules/home-manager/hypr/default.nix @@ -1,9 +1,23 @@ { + config, + lib, + ... +}: +let + cfg = config.nix-config.hypr; +in +{ + options = { + nix-config.hypr.enable = lib.mkOption { + type = lib.types.bool; + default = true; + description = "Enable an opinionated hyprland+quickshell setup as a desktop environment."; + }; + }; + imports = [ ./hyprland - ./hyprpaper.nix ./hyprlock.nix ./hypridle.nix - ./waybar.nix ]; } diff --git a/modules/home-manager/hypr/hyprland/general.nix b/modules/home-manager/hypr/hyprland/general.nix index c6b0311..c81cc51 100644 --- a/modules/home-manager/hypr/hyprland/general.nix +++ b/modules/home-manager/hypr/hyprland/general.nix @@ -19,7 +19,8 @@ in }; config = { - wayland.windowManager.hyprland = { + + wayland.windowManager.hyprland = lib.mkIf cfg.enable { enable = true; systemd.enable = true; settings = { @@ -28,10 +29,11 @@ in # }; general = { resize_on_border = true; - gaps_in = 5; - gaps_out = 5; + gaps_in = 3; + gaps_out = 3; border_size = 1; "col.active_border" = "rgb(98971A) rgb(CC241D) 45deg"; + "col.inactive_border" = "rgba(595959aa)"; layout = "master"; }; @@ -61,9 +63,10 @@ in }; decoration = { - rounding = 7; - # active_opacity = 0.95; + rounding = 10; inactive_opacity = 0.9; + dim_inactive = false; + dim_strength = 0.1; shadow = { enabled = false; @@ -94,6 +97,16 @@ in "float, class:org.gnome.Nautilus" # when there is a single window, deactivate border and gaps # "border_size 0, onworkspace:w[tv1], " + + # File pickers and dialogs + "float, title:^(Save As)$" + "float, title:^(Open File)$" + "size 50% 50%, title:^(Open File)$" + "center, title:^(Open File)$" + + # Disable idle when gaming + "idleinhibit always, class:^(steam_app_)" + "idleinhibit always, class:^(gamescope)$" ]; }; diff --git a/modules/home-manager/hypr/hyprland/keybinds.nix b/modules/home-manager/hypr/hyprland/keybinds.nix index 94a5cfc..b49323b 100644 --- a/modules/home-manager/hypr/hyprland/keybinds.nix +++ b/modules/home-manager/hypr/hyprland/keybinds.nix @@ -17,7 +17,7 @@ in "$mod, return, exec, kitty" "$mod, b, exec, ${cfg.browser}" "$mod, s, exec, ${cfg.ide}" - "$mod, e, exec, nautilus" + "$mod, e, exec, ${lib.getExe pkgs.nautilus}" # Lock screen "$mod, l, exec, loginctl lock-session" @@ -54,10 +54,10 @@ in "$mod+Ctrl, right, movetoworkspace, +1" # Switch workspace - "$mod, left, workspace, -1" - "$mod, right, workspace, +1" - "$mod, mouse_down, workspace, -1" - "$mod, mouse_up, workspace, +1" + "$mod, left, workspace, prev" + "$mod, right, workspace, next" + "$mod, mouse_down, workspace, prev" + "$mod, mouse_up, workspace, next" # move to scratch workspace @@ -101,8 +101,6 @@ in "$mod, KP_Subtract, resizeactive, -2% -2%" "$mod, PLUS, resizeactive, 2% 2%" "$mod, KP_Add, resizeactive, 2% 2%" - - ]; # lock-screen bindings diff --git a/modules/home-manager/hypr/hyprland/layouts.nix b/modules/home-manager/hypr/hyprland/layouts.nix index 5b80174..fe03a8d 100644 --- a/modules/home-manager/hypr/hyprland/layouts.nix +++ b/modules/home-manager/hypr/hyprland/layouts.nix @@ -8,35 +8,33 @@ in settings = { master = { - # TODO - I am not yet happy about the layout + toggle keybinds - orientation = "center"; - # equivalent toalways_center_master = true; - slave_count_for_center_master = 0; - # new_is_master = false; - # allow_small_split = true; - # special_scale_factor = 0.80; - mfact = 0.34; + # no_gaps_when_only = true; + + # default: single app is centered/fullscreen; when more apps are added it splits + orientation = "right"; + # keep center-master behaviour when there is exactly 1 slave (i.e. single app appears fullscreen) + slave_count_for_center_master = 1; + # only split in two columns + mfact = 0.6; inherit_fullscreen = false; - # always_center_master = false; - # allow a maximum of 3 windows in the master area for 3-column layout }; - #create special workspaces with no gaps - workspace = [ - "w[t1], gapsout:0, gapsin:0" - "w[tg1], gapsout:0, gapsin:0" - "f[1], gapsout:0, gapsin:0" - ]; + # #create special workspaces with no gaps + # workspace = [ + # "w[t1], gapsout:0, gapsin:0" + # "w[tg1], gapsout:0, gapsin:0" + # "f[1], gapsout:0, gapsin:0" + # ]; - # automatically assign windows to workspaces when there is only one window - windowrulev2 = [ - "bordersize 0, floating:0, onworkspace:w[t1]" - "rounding 0, floating:0, onworkspace:w[t1]" - "bordersize 0, floating:0, onworkspace:w[tg1]" - "rounding 0, floating:0, onworkspace:w[tg1]" - "bordersize 0, floating:0, onworkspace:f[1]" - "rounding 0, floating:0, onworkspace:f[1]" - ]; + # # automatically assign windows to workspaces when there is only one window + # windowrulev2 = [ + # "bordersize 0, floating:0, onworkspace:w[t1]" + # "rounding 0, floating:0, onworkspace:w[t1]" + # "bordersize 0, floating:0, onworkspace:w[tg1]" + # "rounding 0, floating:0, onworkspace:w[tg1]" + # "bordersize 0, floating:0, onworkspace:f[1]" + # "rounding 0, floating:0, onworkspace:f[1]" + # ]; misc = { vfr = false; @@ -45,12 +43,14 @@ in # Keybind to toggle between 2 and 3 column master layout bind = [ - # Toggle master layout between 2 and 3 columns - "$mod, m, exec, hyprctl dispatch layoutmsg orientationleft" - "$mod, m, exec, hyprctl dispatch layoutmsg mfact exact 0.5" - # "SUPER_SHIFT,C,exec,hyprctl dispatch layoutmsg swap_master_count 2 3" - ]; + # Toggle master layout between 2 and 3 columns (press $mod + m) + "$mod, m, exec, hyprctl dispatch layoutmsg orientationcenter" + "$mod, m, exec, hyprctl dispatch layoutmsg mfact exact 0.34" + # Toggle master layout between 3 and 2 columns (press $mod + Shift + m) + "$mod, Shift+m, exec, hyprctl dispatch layoutmsg orientationright" + "$mod, Shift+m, exec, hyprctl dispatch layoutmsg mfact exact 0.6" + ]; }; }; }; diff --git a/modules/home-manager/hypr/hyprland/packages.nix b/modules/home-manager/hypr/hyprland/packages.nix index a638791..e456002 100644 --- a/modules/home-manager/hypr/hyprland/packages.nix +++ b/modules/home-manager/hypr/hyprland/packages.nix @@ -9,7 +9,6 @@ in pkgs.nautilus pkgs.gnome-control-center pkgs.gnome-bluetooth # needed by gnome-control-center to manage bluetooth - pkgs.brightnessctl pkgs.cliphist pkgs.wl-clipboard pkgs.gcr # Provides org.gnome.keyring.SystemPrompter diff --git a/modules/home-manager/hypr/hyprpaper.nix b/modules/home-manager/hypr/hyprpaper.nix deleted file mode 100644 index 285028a..0000000 --- a/modules/home-manager/hypr/hyprpaper.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - pkgs, - lib, - ... -}: -let - - wallpapers = [ - ../../../wallpapers/codioful-formerly-gradienta-lweK7Wme_jo-unsplash.jpg - ../../../wallpapers/codioful-formerly-gradienta-n2XqPm7Bqhk-unsplash.jpg - ../../../wallpapers/luke-chesser-eICUFSeirc0-unsplash.jpg - ../../../wallpapers/luke-chesser-pJadQetzTkI-unsplash.jpg - ../../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg - ]; - - monitor = ""; # leave empty to set the wallpaper on all monitors - - wallpaperPicker = pkgs.writeShellScriptBin "wallpaper-picker" '' - #!/usr/bin/env bash - # use an array of wallpapers to randomly select one - wallpapers=(${pkgs.lib.concatStringsSep " " (map (p: "${p}") wallpapers)}) - # select a random wallpaper from the array - index=$((RANDOM % ${toString (builtins.length wallpapers)})) - wallpaper="''${wallpapers[index]}" - echo "Setting wallpaper to: $wallpaper" - - hyprctl hyprpaper unload all - hyprctl hyprpaper reload "${monitor},$wallpaper" - ''; - -in { - home.packages = [wallpaperPicker]; - - services.hyprpaper = { - enable = true; - settings = { - ipc = "on"; - }; - }; - - # systemd.user = { - # services.wallpaperRandomizer = { - # Install = {WantedBy = ["graphical-session.target"];}; - - # Unit = { - # Description = "Set random desktop background using hyprpaper"; - # After = ["graphical-session-pre.target"]; - # PartOf = ["graphical-session.target"]; - # }; - - # Service = { - # Type = "oneshot"; - # ExecStart = "${wallpaperRandomizer}/bin/wallpaperRandomizer"; - # IOSchedulingClass = "idle"; - # }; - # }; - - # timers.wallpaperRandomizer = { - # Unit = {Description = "Set random desktop background using hyprpaper on an interval";}; - - # Timer = {OnUnitActiveSec = "6h";}; - - # Install = {WantedBy = ["timers.target"];}; - # }; - # }; -} diff --git a/modules/home-manager/hypr/waybar.nix b/modules/home-manager/hypr/waybar.nix deleted file mode 100644 index 2cce98d..0000000 --- a/modules/home-manager/hypr/waybar.nix +++ /dev/null @@ -1,331 +0,0 @@ -{inputs, pkgs, lib, config, ...}: -let - cfg = config.nix-config.style; -in -{ - options.nix-config.waybar = { - burninPrevention = lib.mkOption { - type = lib.types.bool; - default = true; - description = "Enable burn-in prevention for Waybar"; - example = '' - burninPrevention = true; - ''; - - }; - }; - - config = { - - # required to autoload fonts from packages installed via Home Manager - fonts.fontconfig.enable = true; - - # waybar requires font-awesome - home.packages = [ - pkgs.pavucontrol - ]; - - # enable waybar - programs.waybar.enable = false; - programs.waybar = { - settings = { - - mainBar = { - layer = "top"; - position = "top"; - - margin-top = 5; - # margin-bottom = 2; - # margin-left = 5; - # margin-right = 5; - - # margin between the modules - spacing = 2; - - modules-left = [ - "hyprland/workspaces" - "hyprland/window" - ]; - - modules-center = [ - "clock" - "custom/notification" - ]; - - modules-right = [ - "tray" - "privacy" - "network" - "bluetooth" - "wireplumber" - "battery" - "backlight" - "idle_inhibitor" - ]; - - - # module specific settings - "hyprland/workspaces" = { - format = "{icon}"; - format-icons = { - active = "●"; - default = "○"; - }; - }; - "hyprland/window"= { - "icon" = true; - "separate-outputs" = true; - "format" = "{}"; - "rewrite" = { - "(.*) — Mozilla Firefox" = "$1"; - "(.*) — Zen Browser" = "$1"; - "(.*) - fish" = "> [$1]"; - "(.*) - Visual Studio Code" = "$1"; - }; - }; - "clock" = { - format = "{:%H:%M}"; - interval = 1; - tooltip-format = "{calendar}"; - # calendar = { - # format = "%Y-%m-%d\n󰃰 %A\n\n%H:%M"; - # start-day = 1; # Monday - # first-weekday = 1; # Monday - # week-number = false; - # long-weekdays = true; - # hide-if-empty = false; - # }; - }; - "idle_inhibitor" = { - format = "{icon}"; - format-icons = { - activated = ""; - deactivated = "☕"; - }; - tooltip = "true"; - }; - "bluetooth" = { - format-on = "󰂯"; - format-off = "󰂲"; - format-disabled = "󰂲"; - format-connected-battery = "{device_battery_percentage}% 󰂯"; - format-alt = "{device_alias} 󰂯"; - tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected"; - tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}"; - tooltip-format-enumerate-connected = "{device_alias}\n{device_address}"; - tooltip-format-enumerate-connected-battery = "{device_alias}\n{device_address}\n{device_battery_percentage}%"; - on-click-right = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center bluetooth"; - }; - "battery" = { - interval = 60; - states = { - good = 80; - warning = 30; - critical = 10; - }; - format = "{capacity}% {icon}"; - format-charging = "{capacity}% 󰂄"; - format-plugged = "{capacity}% 󰂄"; - format-icons = [ "󰁻" "󰁼" "󰁾" "󰂀" "󰂂" "󰁹" ]; - }; - "backlight" = { - # format = "{percent}% {icon}"; - format = "{icon}"; - tooltip-format = "{percent}%"; - format-icons = [ "" "" "" "" "" "" "" "" "" ]; - }; - "wireplumber" = { - scroll-step = 1; - format = "{volume}% {icon}";# {format_source}"; - format-bluetooth = "{volume}% {icon}";# {format_source}"; - format-bluetooth-muted = " {icon}";# {format_source}"; - format-muted = "";# {format_source}"; - format-alt = "{format_source} {icon}"; - # format-source = " {volume}%"; - # format-source-muted = ""; - format-icons = { - headphone = ""; - hands-free = ""; - headset = ""; - phone = ""; - portable = ""; - default = [ - "" - "" - "" - ]; - }; - on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; - on-click-right = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center sound"; - }; - "memory" = { - interval = 5; - format = "󰍛 {}%"; - max-length = 10; - }; - "tray" = { - spacing = 5; - }; - "custom/notification" = { - format = "{icon} {}"; - format-icons = { - notification = ""; - none = ""; - dnd-notification = ""; - dnd-none = ""; - inhibited-notification = ""; - inhibited-none = ""; - dnd-inhibited-notification = ""; - dnd-inhibited-none = ""; - }; - return-type = "json"; - exec-if = "which swaync-client"; - exec = "swaync-client -swb"; - on-click = "swaync-client -t -sw"; - on-click-right = "swaync-client -d -sw"; - escape = true; - }; - "network" = { - format = "󰤭"; - format-ethernet = " {ipaddr}"; - format-wifi = "{icon}"; - format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ]; - format-disconnected = "󰤭"; - tooltip-format = " {ifname} via {gwaddr}"; - tooltip-format-wifi = '' - 󰤨 {essid}({signalStrength}%), {frequency} GHz (Interface: {ifname}) - IP: {ipaddr} GW: {gwaddr} - - {bandwidthUpBits} {bandwidthDownBits} 󰹹{bandwidthTotalBits} - ''; - tooltip-format-ethernet = '' -  {ifname} - {ipaddr}/{cidr} - - {bandwidthUpBits} {bandwidthDownBits} 󰹹{bandwidthTotalBits} - ''; - tooltip-format-disconnected = "Disconnected"; - on-click = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi"; - }; - "privacy" = { - icon-spacing = 4; - # icon-size" = 18; - transition-duration = 250; - modules = [ - { - type = "screenshare"; - tooltip = true; - # tooltip-icon-size = 24 - } - { - type = "audio-out"; - tooltip = true; - # tooltip-icon-size = 24 - } - { - type = "audio-in"; - tooltip = true; - # tooltip-icon-size = 24 - } - ]; - }; - }; - }; - - style = '' - * { - font-family: "${cfg.monospaceFont}"; - font-weight: bold; - font-size: ${builtins.toString (cfg.fontSizes.desktop + 5)}px; - } - - window#waybar { - background-color: transparent; - } - - .module { - background: rgba(0, 0, 0, 0.6); - color: white; - border-radius: 7px; - margin: 1px 3px; - padding: 1px 6px; - animation: bgFade 3600s infinite alternate, textColorFade 3600s infinite alternate; - } - - box.module button:hover { - box-shadow: inset 0 -3px #ffffff; - } - - /*.modules-left { - padding: 3px; - } - - .modules-right { - padding: 3px; - } - - .modules-center { - padding: 3px; - }*/ - - #workspaces button { - color: white; - background: none; - animation: textColorFade 3600s infinite alternate; - } - - #battery.warning { - background:rgba(240, 165, 0, 0.6); - } - #battery.critical { - background:rgba(255, 0, 0, 0.6); - } - #battery.charging { - background-color:rgba(14, 173, 0, 0.6); - } - - - #privacy { - color: #ffffff; - background:rgba(240, 165, 0, 0.6); - border-radius: 7px; - margin: 1px 3px; - padding: 1px 6px; - - } - - - - - - @keyframes bgFade { - 0% { - background-color: white; - } - 100% { - background-color: black; - } - } - - @keyframes textColorFade { - 0% { - color: black; - } - /* 45% { - color: black; - } */ - 60% { - color: rgb(29, 38, 96); - } - /* 55% { - color: white; - } */ - 100% { - color: white; - } - } - - ''; - }; - }; -} - diff --git a/modules/home-manager/notifications.nix b/modules/home-manager/notifications.nix deleted file mode 100644 index c451f1a..0000000 --- a/modules/home-manager/notifications.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ config, pkgs, lib, ... }: -let - cfg = config.nix-config.style; -in -{ - services.swaync = { - enable = true; - - settings = { - control-center-margin-top = 13; - control-center-margin-bottom = 0; - control-center-margin-right = 14; - control-center-margin-left = 0; - notification-2fa-action = true; - notification-inline-replies = true; - notification-icon-size = 48; - notification-body-image-height = 160; - notification-body-image-width = 200; - notification-window-width = 400; - timeout = 6; - timeout-low = 3; - timeout-critical = 0; - - image-visibility = "when-available"; - transition-time = 200; - hide-on-clear = false; - hide-on-action = true; - script-fail-notify = true; - widgets = [ - "dnd" - "buttons-grid" - "mpris" - "volume" - "backlight" - "title" - "notifications" - ]; - widget-config = { - title = { - text = "Notifications"; - clear-all-button = true; - button-text = ""; - }; - dnd = { - text = "Do Not Disturb"; - }; - label = { - max-lines = 1; - text = "Notification"; - }; - mpris = { - image-size = 50; - image-radius = 0; - }; - volume = { - label = ""; - }; - backlight = { - label = "󰃠"; - device = "amdgpu_bl2"; - }; - buttons-grid = { - actions = [ - { - label = ""; - command = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; - type = "toggle"; - } - { - label = ""; - command = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; - type = "toggle"; - } - { - label = "󰤨"; - command = "nm-connection-editor"; - } - { - label = "󰂯"; - command = "blueman-manager"; - } - { - label = "󱡽"; - command = "bash -c $HOME/.config/hypr/scripts/airplaneMode.sh"; - type = "toggle"; - } - { - label = ""; - command = "shutdown now"; - } - { - label = ""; - command = "hyprlock"; - } - { - label = ""; - command = "~/.config/hypr/scripts/wlogout.sh"; - } - ]; - }; - }; - }; - - style = '' - * { - font-family: "monospace"; - } - ''; - }; -} diff --git a/modules/home-manager/stylix.nix b/modules/home-manager/stylix.nix index 4385c64..2025667 100644 --- a/modules/home-manager/stylix.nix +++ b/modules/home-manager/stylix.nix @@ -90,7 +90,7 @@ in }; emoji = { - package = pkgs.noto-fonts-emoji; + package = pkgs.noto-fonts-color-emoji; name = "Noto Color Emoji"; }; diff --git a/modules/nixos/hyprland.nix b/modules/nixos/hyprland.nix index 4727ec2..f1ada20 100644 --- a/modules/nixos/hyprland.nix +++ b/modules/nixos/hyprland.nix @@ -22,7 +22,7 @@ in defaultSession = "hyprland"; }; - services.xserver.displayManager.gdm = { + services.displayManager.gdm = { enable = true; wayland = true; }; From 625039ee58fa0368b408e6d79a3ca00fda18b49e Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Fri, 7 Nov 2025 11:02:20 +0100 Subject: [PATCH 5/6] link wallpapers --- modules/home-manager/wallpaper.nix | 11 +++++++++++ users/remy_yoga/default.nix | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 modules/home-manager/wallpaper.nix diff --git a/modules/home-manager/wallpaper.nix b/modules/home-manager/wallpaper.nix new file mode 100644 index 0000000..84ee458 --- /dev/null +++ b/modules/home-manager/wallpaper.nix @@ -0,0 +1,11 @@ +# Write an importable nix file that copies a folder from this repo into the store and creates a symlink to a predictible directory in my home file +{ + lib, pkgs, ... +}: +{ + # Copy the entire wallpapers directory into the Nix store and symlink it to ~/wallpapers + home.file."wallpapers" = { + source = ../../wallpapers; + target = "Pictures/wallpapers"; + }; +} diff --git a/users/remy_yoga/default.nix b/users/remy_yoga/default.nix index e326746..5eecacd 100644 --- a/users/remy_yoga/default.nix +++ b/users/remy_yoga/default.nix @@ -38,7 +38,7 @@ with lib.hm.gvariant; ../../modules/home-manager/stylix.nix ../../modules/home-manager/thunderbird.nix ../../modules/home-manager/uxplay.nix - # ../../modules/home-manager/wofi.nix + ../../modules/home-manager/wallpaper.nix ../../modules/home-manager/xdg-portals.nix ]; } From 8772229192d03d4ede0f7eea86da2b4508bc1e81 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Tue, 2 Dec 2025 23:04:02 +0100 Subject: [PATCH 6/6] more refinements to vscode + fish + hyprland --- flake.lock | 293 ++++++++++-------- flake.nix | 6 - hosts/yoga-7-pro/configuration.nix | 2 +- modules/home-manager/code.nix | 5 +- modules/home-manager/fish.nix | 17 +- modules/home-manager/fusuma.nix | 47 --- .../home-manager/hypr/hyprland/default.nix | 1 + .../home-manager/hypr/hyprland/general.nix | 6 - .../home-manager/hypr/hyprland/gestures.nix | 21 ++ .../home-manager/hypr/hyprland/keybinds.nix | 43 +-- modules/home-manager/kubectl.nix | 14 +- modules/home-manager/quickshell/default.nix | 31 ++ modules/nixos/power.nix | 60 ++-- users/remy_yoga/default.nix | 1 - 14 files changed, 281 insertions(+), 266 deletions(-) delete mode 100644 modules/home-manager/fusuma.nix create mode 100644 modules/home-manager/hypr/hyprland/gestures.nix diff --git a/flake.lock b/flake.lock index eef1498..e993a46 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1761420899, - "narHash": "sha256-kxGCip6GNbcbNWKu4J2iKbNYfFTS8Zbjg9CWp0zmFoM=", + "lastModified": 1762356719, + "narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "62479232aae42c1ef09c2c027c8cfd91df060897", + "rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7", "type": "github" }, "original": { @@ -104,19 +104,16 @@ "dankMaterialShell": { "inputs": { "dgop": "dgop", - "dms-cli": [ - "dms-cli" - ], "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1762403774, - "narHash": "sha256-CXgW0EEW+WV4jJ/5mxNluQeTgS6wyuuUlUcsZF84bKU=", + "lastModified": 1763522195, + "narHash": "sha256-QW/SKfUN5nT8J1EIvtpNaGf886+BBp2vCvs/ZuMo0VE=", "owner": "AvengeMedia", "repo": "DankMaterialShell", - "rev": "c9ee856f916023563d9446483024a8aec2dce870", + "rev": "dfdaa82245302d40ac1aa4c0d60728b4397dde61", "type": "github" }, "original": { @@ -133,11 +130,11 @@ ] }, "locked": { - "lastModified": 1760238269, - "narHash": "sha256-7CeGZM/Z/5Qt3AYByCRohGYGR1MRuXYzTTbkV/JxyAs=", + "lastModified": 1762435535, + "narHash": "sha256-QhzRn7pYN35IFpKjjxJAj3GPJECuC+VLhoGem3ezycc=", "owner": "AvengeMedia", "repo": "dgop", - "rev": "95acdfce2d323e28fa8f5a4f345160962034f2b5", + "rev": "6cf638dde818f9f8a2e26d0243179c43cb3458d7", "type": "github" }, "original": { @@ -153,11 +150,11 @@ ] }, "locked": { - "lastModified": 1762404200, - "narHash": "sha256-/GhnVY1AwcgxOVhSXdrejVQNbi27kXRNMD93C2nH5ho=", + "lastModified": 1763078370, + "narHash": "sha256-wsYqJlLdRSlJpRE0tIuuPMU6aOyhMdV237rEG/enUxY=", "owner": "AvengeMedia", "repo": "danklinux", - "rev": "b94cc56f44e7fb987d293e4880871fa0845da8ed", + "rev": "7a083a0d6d087d41d0bc5077d03e662e1417ce3c", "type": "github" }, "original": { @@ -260,18 +257,20 @@ "gnome-shell": { "flake": false, "locked": { - "lastModified": 1748186689, - "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", + "host": "gitlab.gnome.org", + "lastModified": 1762869044, + "narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", - "type": "github" + "rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad", + "type": "gitlab" }, "original": { + "host": "gitlab.gnome.org", "owner": "GNOME", - "ref": "48.2", + "ref": "gnome-49", "repo": "gnome-shell", - "type": "github" + "type": "gitlab" } }, "home-manager": { @@ -281,11 +280,11 @@ ] }, "locked": { - "lastModified": 1762367206, - "narHash": "sha256-c/164YOPkV09BH8KIUdvVvJs3VF2LNIbE2piKGgXPxk=", + "lastModified": 1763416652, + "narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=", "owner": "nix-community", "repo": "home-manager", - "rev": "af119feb17cb242398e0fb97f92b867d25882522", + "rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312", "type": "github" }, "original": { @@ -302,11 +301,11 @@ ] }, "locked": { - "lastModified": 1762351818, - "narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=", + "lastModified": 1762964643, + "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=", "owner": "nix-community", "repo": "home-manager", - "rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea", + "rev": "827f2a23373a774a8805f84ca5344654c31f354b", "type": "github" }, "original": { @@ -360,11 +359,11 @@ ] }, "locked": { - "lastModified": 1760445448, - "narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=", + "lastModified": 1762462052, + "narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "50fb9f069219f338a11cf0bcccb9e58357d67757", + "rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162", "type": "github" }, "original": { @@ -378,8 +377,8 @@ "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", "hyprgraphics": "hyprgraphics", + "hyprland-guiutils": "hyprland-guiutils", "hyprland-protocols": "hyprland-protocols", - "hyprland-qtutils": "hyprland-qtutils", "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", @@ -389,11 +388,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1762387591, - "narHash": "sha256-dbxpwgat8W/+P/cYnLXzoj5Gi8WKdtMgvqHuEzIU8fs=", + "lastModified": 1763540034, + "narHash": "sha256-TogNk567BTZib1XiYheW04ELxNB2bhee6G4SgphRqmA=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "c757fd375cce299e3da922190ddf1a0622ce807c", + "rev": "fbb31503f1b69402eeda81ba75a547c862c88bf2", "type": "github" }, "original": { @@ -402,6 +401,52 @@ "type": "github" } }, + "hyprland-guiutils": { + "inputs": { + "aquamarine": [ + "hyprland", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprtoolkit": "hyprtoolkit", + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1762755186, + "narHash": "sha256-ZjjETUHtoEhVN7JI1Cbt3p/KcXpK8ZQaPHx7UkG1OgA=", + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "rev": "66356e20a8ed348aa49c1b9ceace786e224225b3", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "type": "github" + } + }, "hyprland-protocols": { "inputs": { "nixpkgs": [ @@ -427,74 +472,6 @@ "type": "github" } }, - "hyprland-qt-support": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprland-qtutils", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "hyprland-qtutils", - "nixpkgs" - ], - "systems": [ - "hyprland", - "hyprland-qtutils", - "systems" - ] - }, - "locked": { - "lastModified": 1749154592, - "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "type": "github" - } - }, - "hyprland-qtutils": { - "inputs": { - "hyprland-qt-support": "hyprland-qt-support", - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprland-qtutils", - "hyprlang", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1759080228, - "narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=", - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "type": "github" - } - }, "hyprlang": { "inputs": { "hyprutils": [ @@ -511,11 +488,11 @@ ] }, "locked": { - "lastModified": 1758927902, - "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", + "lastModified": 1763254292, + "narHash": "sha256-JNgz3Fz2KMzkT7aR72wsgu/xNeJB//LSmdilh8Z/Zao=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", + "rev": "deea98d5b61d066bdc7a68163edd2c4bd28d3a6b", "type": "github" }, "original": { @@ -524,6 +501,58 @@ "type": "github" } }, + "hyprtoolkit": { + "inputs": { + "aquamarine": [ + "hyprland", + "hyprland-guiutils", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprland-guiutils", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprland-guiutils", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-guiutils", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland-guiutils", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "hyprland-guiutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-guiutils", + "systems" + ] + }, + "locked": { + "lastModified": 1762463729, + "narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=", + "owner": "hyprwm", + "repo": "hyprtoolkit", + "rev": "88483bdee5329ec985f0c8f834c519cd18cfe532", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprtoolkit", + "type": "github" + } + }, "hyprutils": { "inputs": { "nixpkgs": [ @@ -536,11 +565,11 @@ ] }, "locked": { - "lastModified": 1762208756, - "narHash": "sha256-hC1jb4tdjFfEuU18KQiMgz5XPAO+d5SfbjAUS7haLl4=", + "lastModified": 1763323331, + "narHash": "sha256-+Z0OfCo1MS8/aIutSAW5aJR9zTae1wz9kcJYMgpwN6M=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "164a30b3d8b3174a32ac7326782476f1188e6118", + "rev": "0c6411851cc779d551edc89b83966696201611aa", "type": "github" }, "original": { @@ -597,11 +626,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1762394598, - "narHash": "sha256-AbDS8JL8mXAP0gVAXQA1RIUwnH6rUHueCTPf/hxAooE=", + "lastModified": 1763517711, + "narHash": "sha256-uY0Vr7ene4VlHyeZRHRNvT4WRwakAr8JShwmNEg7JB0=", "owner": "nix-community", "repo": "nix4vscode", - "rev": "4c90ca996c860583f8fc77fa8abd24610439f850", + "rev": "ce4507078be02de77c001ca498657436ec815a35", "type": "github" }, "original": { @@ -612,11 +641,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", + "lastModified": 1763283776, + "narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", + "rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a", "type": "github" }, "original": { @@ -628,11 +657,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", "type": "github" }, "original": { @@ -644,11 +673,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", "type": "github" }, "original": { @@ -693,11 +722,11 @@ ] }, "locked": { - "lastModified": 1760663237, - "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=", + "lastModified": 1763319842, + "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37", + "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", "type": "github" }, "original": { @@ -729,11 +758,11 @@ ] }, "locked": { - "lastModified": 1760998189, - "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", + "lastModified": 1763509310, + "narHash": "sha256-s2WzTAD3vJtPACBCZXezNUMTG/wC6SFsU9DxazB9wDI=", "owner": "Mic92", "repo": "sops-nix", - "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", + "rev": "3ee33c0ed7c5aa61b4e10484d2ebdbdc98afb03e", "type": "github" }, "original": { @@ -763,11 +792,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1762264356, - "narHash": "sha256-QVfC53Ri+8n3e7Ujx9kq6all3+TLBRRPRnc6No5qY5w=", + "lastModified": 1763497248, + "narHash": "sha256-OGP6MYc+lVkLVQOTS6ORszDcCnZm7kDOGpFBdDoLd0k=", "owner": "nix-community", "repo": "stylix", - "rev": "647bb8dd96a206a1b79c4fd714affc88b409e10b", + "rev": "f19ac46f6aa26188b2020ed40066a5b832be9c53", "type": "github" }, "original": { @@ -973,11 +1002,11 @@ ] }, "locked": { - "lastModified": 1762403216, - "narHash": "sha256-BPv/dC0S54hqsurgmxGxUbXb3kJMpK3KNKQDrdO4NRE=", + "lastModified": 1763521945, + "narHash": "sha256-Zcrafbe4niRJMbzaVOwg7+iedJhwBFttre2DpyCC6qA=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "a3a22c5ad43f46f8ddad7eed8aa7f82ec649765f", + "rev": "24d7381b9231c23daceec5d372cc28e877f7785d", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d0be1b0..fae387a 100644 --- a/flake.nix +++ b/flake.nix @@ -27,12 +27,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - # power management - watt = { - url = "github:NotAShelf/watt/?ref=v0.3.2"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # secrets sops-nix = { url = "github:Mic92/sops-nix"; diff --git a/hosts/yoga-7-pro/configuration.nix b/hosts/yoga-7-pro/configuration.nix index 93cc364..57c5fa2 100644 --- a/hosts/yoga-7-pro/configuration.nix +++ b/hosts/yoga-7-pro/configuration.nix @@ -16,7 +16,7 @@ HandlePowerKey = "ignore"; # handled by the dm instead - HandleLidSwitch = "ignore"; + # HandleLidSwitch = "ignore"; # needs to be set because it is not passed to other events HandleLidSwitchDocked = "ignore"; }; diff --git a/modules/home-manager/code.nix b/modules/home-manager/code.nix index 2dfcca2..7731d61 100644 --- a/modules/home-manager/code.nix +++ b/modules/home-manager/code.nix @@ -4,14 +4,13 @@ let # QOL "mhutchie.git-graph" "redhat.vscode-yaml" - "github.copilot" - "github.copilot-chat" # Nix environment selector "arrterian.nix-env-selector" # continue.continue + "github.copilot" + "github.copilot-chat" ]; - baseSettings = { # visual "window.titleBarStyle" = "native"; diff --git a/modules/home-manager/fish.nix b/modules/home-manager/fish.nix index 7499e58..ed59217 100644 --- a/modules/home-manager/fish.nix +++ b/modules/home-manager/fish.nix @@ -13,18 +13,12 @@ programs.fish = { enable = true; - # enableCompletion = true; + generateCompletions = true; + plugins = [ - { - name = "fzf-fish"; - src = pkgs.fetchFromGitHub { - owner = "PatrickF1"; - repo = "fzf.fish"; - rev = "v10.3"; - sha256 = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM="; - }; - } - # add others here + { name = "fzf"; src = pkgs.fishPlugins.fzf-fish.src; } + { name = "z"; src = pkgs.fishPlugins.z.src; } + { name = "pure"; src = pkgs.fishPlugins.pure.src; } ]; functions = { @@ -47,4 +41,5 @@ fi ''; }; + } diff --git a/modules/home-manager/fusuma.nix b/modules/home-manager/fusuma.nix deleted file mode 100644 index 6e9e455..0000000 --- a/modules/home-manager/fusuma.nix +++ /dev/null @@ -1,47 +0,0 @@ -{pkgs, config, lib, ...}: -let - hyprctl = "${pkgs.hyprland}/bin/hyprctl"; -in -{ - config = { - services.fusuma = { - enable = true; - settings = { - swipe = { - "3" = { - up = { - command = "exec ${hyprctl} dispatch fullscreen 1"; - }; - - down = { - command = "exec ${lib.getExe config.nix-config.launcher}"; - }; - }; - }; - - pinch = { - "4" = { - "in" = { - command = "exec ${hyprctl} dispatch togglespecialworkspace magic"; - }; - "out" = { - command = "exec ${hyprctl} dispatch togglespecialworkspace magic"; - }; - }; - }; - - - hold = { - "5" = { - command = "exec ${lib.getExe config.nix-config.launcher}"; - threshold = 0.1; - }; - }; - - threshold = { - pinch = 0.1; - }; - }; - }; - }; -} diff --git a/modules/home-manager/hypr/hyprland/default.nix b/modules/home-manager/hypr/hyprland/default.nix index 6524ed2..3b9caf4 100644 --- a/modules/home-manager/hypr/hyprland/default.nix +++ b/modules/home-manager/hypr/hyprland/default.nix @@ -2,6 +2,7 @@ imports = [ ./autostart.nix ./general.nix + ./gestures.nix ./keybinds.nix ./layouts.nix ./packages.nix diff --git a/modules/home-manager/hypr/hyprland/general.nix b/modules/home-manager/hypr/hyprland/general.nix index c81cc51..17c9209 100644 --- a/modules/home-manager/hypr/hyprland/general.nix +++ b/modules/home-manager/hypr/hyprland/general.nix @@ -56,12 +56,6 @@ in sensitivity = 0.5; }; - gestures = { - workspace_swipe = true; - workspace_swipe_fingers = 4; - workspace_swipe_touch = true; - }; - decoration = { rounding = 10; inactive_opacity = 0.9; diff --git a/modules/home-manager/hypr/hyprland/gestures.nix b/modules/home-manager/hypr/hyprland/gestures.nix new file mode 100644 index 0000000..8ddd3ac --- /dev/null +++ b/modules/home-manager/hypr/hyprland/gestures.nix @@ -0,0 +1,21 @@ +{inputs, pkgs, lib, config, ...}: +let + cfg = config.nix-config.hypr; +in +{ + config = { + wayland.windowManager.hyprland = { + settings = { + gesture = [ + # 4 finger swipe to switch workspace + "4, horizontal, workspace" + + "3, up, fullscreen" + "3, down, float" + + "4, vertical, scale: 0.5, special, magic" + ]; + }; + }; + }; +} diff --git a/modules/home-manager/hypr/hyprland/keybinds.nix b/modules/home-manager/hypr/hyprland/keybinds.nix index b49323b..0fe32f5 100644 --- a/modules/home-manager/hypr/hyprland/keybinds.nix +++ b/modules/home-manager/hypr/hyprland/keybinds.nix @@ -1,3 +1,4 @@ +# Note that some keybindings are delegated to other components, e.g. the quickshell module {inputs, pkgs, lib, config, ...}: let cfg = config.nix-config.hypr; @@ -5,8 +6,6 @@ in { config = { wayland.windowManager.hyprland = { - enable = true; - systemd.enable = true; settings = { "$mod" = "SUPER"; @@ -22,9 +21,6 @@ in # Lock screen "$mod, l, exec, loginctl lock-session" - # Clipboard management - "$mod, V, exec, cliphist list | ${lib.getExe config.nix-config.launcher} --dmenu | cliphist decode | wl-copy" - # Close window "$mod, Q, killactive," # Force close window @@ -54,10 +50,10 @@ in "$mod+Ctrl, right, movetoworkspace, +1" # Switch workspace - "$mod, left, workspace, prev" - "$mod, right, workspace, next" - "$mod, mouse_down, workspace, prev" - "$mod, mouse_up, workspace, next" + "$mod, left, workspace, e-1" + "$mod, right, workspace, e+1" + "$mod, mouse_down, workspace, e-1" + "$mod, mouse_up, workspace, e+1" # move to scratch workspace @@ -79,9 +75,6 @@ in ", XF86Cut, exec, hyprshot -m region -o ~/Pictures/Screenshots" "Shift, XF86Cut, exec, hyprshot -m window -o ~/Pictures/Screenshots" - # Power menu - ", XF86PowerOff, exec, ${lib.getExe config.nix-config.powerMenu}" - # Other pickers using the same launcher "$mod+Ctrl, space, exec, ${lib.getExe config.nix-config.filePicker}" "$mod, period, exec, ${lib.getExe config.nix-config.emojiPicker}" @@ -89,13 +82,6 @@ in # repeatable bindings binde = [ - # Fn keys - ", XF86MonBrightnessDown, exec, brightnessctl set 5%-" - ", XF86MonBrightnessUp, exec, brightnessctl set +5%" - ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%-" - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - # Reshape the window in focus "$mod, MINUS, resizeactive, -2% -2%" "$mod, KP_Subtract, resizeactive, -2% -2%" @@ -133,20 +119,17 @@ in "$mod, mouse:273, resizewindow" ]; - - }; - extraConfig = '' - bind= , XF86AudioMicMute, submap, player_submap - - submap=player_submap - bind=, XF86AudioRaiseVolume, exec, notify-send previous; hyprctl dispatch submap reset - bind=, XF86AudioLowerVolume, exec, notify-send next; hyprctl dispatch submap reset - bind=, XF86AudioMicMute, exec, notify-send pause; hyprctl dispatch submap reset - submap=reset - ''; + # extraConfig = '' + # bind= , XF86AudioMicMute, submap, player_submap + # submap=player_submap + # bind=, XF86AudioRaiseVolume, exec, notify-send previous; hyprctl dispatch submap reset + # bind=, XF86AudioLowerVolume, exec, notify-send next; hyprctl dispatch submap reset + # bind=, XF86AudioMicMute, exec, notify-send pause; hyprctl dispatch submap reset + # submap=reset + # ''; }; }; } diff --git a/modules/home-manager/kubectl.nix b/modules/home-manager/kubectl.nix index fb53a44..ba276b1 100644 --- a/modules/home-manager/kubectl.nix +++ b/modules/home-manager/kubectl.nix @@ -1,13 +1,25 @@ {pkgs, ...}: { home.packages = [ - pkgs.kubie pkgs.kubectl ]; + # Add the shell alias programs.fish.shellAliases = { k = "kubectl"; }; + # set the kubectl autocompletions for fish + # the fish functions are generated by kubectl itself, we do this at compile time and write them a single time to avoid generating them at each shell start + # the command is kubectl completion fish + # which becomes + programs.fish.completions."kubectl" = builtins.readFile "${pkgs.runCommand "kubectl-completion" {} '' + ${pkgs.kubectl}/bin/kubectl completion fish > $out + ''}"; + + programs.kubeswitch = { + enable = true; + enableFishIntegration = true; + }; } diff --git a/modules/home-manager/quickshell/default.nix b/modules/home-manager/quickshell/default.nix index f25af40..b1138d0 100644 --- a/modules/home-manager/quickshell/default.nix +++ b/modules/home-manager/quickshell/default.nix @@ -25,4 +25,35 @@ # plugins = {}; }; + + wayland.windowManager.hyprland = { + settings = { + binde = [ + # Brightness + ", XF86MonBrightnessDown, exec, dms ipc call brightness decrement 5 \"\"" + ", XF86MonBrightnessUp, exec, dms ipc call brightness increment 5 \"\"" + + # Audio volume + playback + ", XF86AudioMute, exec, dms ipc call audio mute" + ", XF86AudioLowerVolume, exec, dms ipc call audio decrement 5" + ", XF86AudioRaiseVolume, exec, dms ipc call audio increment 5" + + "$mod, XF86AudioMute, exec, dms ipc call mpris playPause" + "$mod, XF86AudioLowerVolume, exec, dms ipc call mpris previous" + "$mod, XF86AudioRaiseVolume, exec, dms ipc call mpris next" + # also allow the dedicated media keys to control playback + ", XF86AudioPlay, exec, dms ipc call mpris playPause" + ", XF86AudioPrev, exec, dms ipc call mpris previous" + ", XF86AudioNext, exec, dms ipc call mpris next" + + ]; + + bind = [ + ", XF86PowerOff, exec, dms ipc call powermenu toggle" + # used to be ", XF86PowerOff, exec, ${lib.getExe config.nix-config.powerMenu}" + "$mod, V, exec, dms ipc call clipboard toggle" + # used to be "$mod, V, exec, cliphist list | ${lib.getExe config.nix-config.launcher} --dmenu | cliphist decode | wl-copy" + ]; + }; + }; } diff --git a/modules/nixos/power.nix b/modules/nixos/power.nix index d8d1a4a..dc824b4 100644 --- a/modules/nixos/power.nix +++ b/modules/nixos/power.nix @@ -22,43 +22,47 @@ config = { + # environment.systemPackages = [ + # pkgs.power-profiles-daemon + # ]; + services.power-profiles-daemon.enable = true; - services.tlp = { - enable = true; - settings = { - # processor chooses frequencies itself but respects the limits set by the user - CPU_DRIVER_OPMODE_ON_AC = "guided"; - CPU_DRIVER_OPMODE_ON_BAT = "guided"; + # services.tlp = { + # enable = true; + # settings = { + # # # processor chooses frequencies itself but respects the limits set by the user + # # CPU_DRIVER_OPMODE_ON_AC = "guided"; + # # CPU_DRIVER_OPMODE_ON_BAT = "guided"; - # governor dictates global behavior of the CPU - CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; - CPU_SCALING_GOVERNOR_ON_AC = "performance"; + # # # governor dictates global behavior of the CPU + # # CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; + # # CPU_SCALING_GOVERNOR_ON_AC = "performance"; - # energy performance policy (EPP) sets the energy/performance balance - CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power"; - CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; + # # # energy performance policy (EPP) sets the energy/performance balance + # # CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power"; + # # CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; - # clock speeds reported by `sudo tlp-stat` - # 623377 [kHz] and 5090910 [kHz] - CPU_SCALING_MIN_FREQ_ON_AC = 623377; - CPU_SCALING_MAX_FREQ_ON_AC = 5090910; - CPU_SCALING_MIN_FREQ_ON_BAT = 0; - # reduce max frequency on battery to save power - CPU_SCALING_MAX_FREQ_ON_BAT = 3000000; + # # # clock speeds reported by `sudo tlp-stat` + # # # 623377 [kHz] and 5090910 [kHz] + # # CPU_SCALING_MIN_FREQ_ON_AC = 623377; + # # CPU_SCALING_MAX_FREQ_ON_AC = 5090910; + # # CPU_SCALING_MIN_FREQ_ON_BAT = 0; + # # # reduce max frequency on battery to save power + # # CPU_SCALING_MAX_FREQ_ON_BAT = 3000000; - # Allow the CPU to boost - CPU_BOOST_ON_AC = 1; - CPU_BOOST_ON_BAT = 1; + # # # Allow the CPU to boost + # # CPU_BOOST_ON_AC = 1; + # # CPU_BOOST_ON_BAT = 1; - RADEON_DPM_PERF_LEVEL_ON_AC = "high"; - # WIFI_PWR_ON_BAT = "off"; + # # RADEON_DPM_PERF_LEVEL_ON_AC = "high"; + # # # WIFI_PWR_ON_BAT = "off"; - # enable battery charge thresholds on the default battery - STOP_CHARGE_THRESH_BAT0 = 1; - }; - }; + # # enable battery charge thresholds on the default battery + # STOP_CHARGE_THRESH_BAT0 = 1; + # }; + # }; diff --git a/users/remy_yoga/default.nix b/users/remy_yoga/default.nix index 5eecacd..708f65a 100644 --- a/users/remy_yoga/default.nix +++ b/users/remy_yoga/default.nix @@ -25,7 +25,6 @@ with lib.hm.gvariant; ../../modules/home-manager/documents.nix ../../modules/home-manager/fish.nix ../../modules/home-manager/flatpaks.nix - ../../modules/home-manager/fusuma.nix ../../modules/home-manager/hypr ../../modules/home-manager/keepassxc.nix ../../modules/home-manager/kitty.nix