From 8a7439fe1d88ef493dfed6a678df669fb4cec152 Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Tue, 16 Jun 2026 11:42:33 +0100 Subject: [PATCH] wip --- .claude/settings.local.json | 3 +- flake.lock | 307 ++++---- home/arrakis/default.nix | 5 +- home/common/programs/3d.nix | 1 - home/common/programs/desktop/darkman.nix | 4 +- home/common/programs/hyprland/default.nix | 14 +- .../programs/hyprland/noctalia/default.nix | 655 ++---------------- home/desktop/default.nix | 24 +- pkgs/sddm-noctalia-theme/package.nix | 2 +- 9 files changed, 225 insertions(+), 790 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index cc89afb..505c0ba 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -39,7 +39,8 @@ "WebFetch(domain:docs.pipewire.org)", "Bash(wpctl status:*)", "WebFetch(domain:bugs.chromium.org)", - "WebFetch(domain:gitlab.freedesktop.org)" + "WebFetch(domain:gitlab.freedesktop.org)", + "Bash(python3 -c ' *)" ] }, "sandbox": { diff --git a/flake.lock b/flake.lock index f288fcf..fc390cc 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1777499565, - "narHash": "sha256-nU55VWk99Pn1QzQDDjFISocC4SgDZ3Xp+zb6ji3JclM=", + "lastModified": 1780756231, + "narHash": "sha256-tXQxKdG5716uB9/LIkLQqQwHKf5mRSpHoZhz3lyI2Cg=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "813c1e8981893c11e118b19c125d6bc282f51765", + "rev": "6ecde03f47172753fe5a2f334f9d3facfb7e6784", "type": "github" }, "original": { @@ -39,11 +39,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1778199440, - "narHash": "sha256-neEu92AczcHfO4tENmyFnzQXvk5b/Tp+VM7hsevCYOk=", + "lastModified": 1781560224, + "narHash": "sha256-+4c90gzrBDnPtTs2B2M5xcDC5h0lN7lOg7dmxlPWteA=", "owner": "sadjow", "repo": "claude-code-nix", - "rev": "bacfe205bb986634fe4c60d2aaf3e3ce2fe40c11", + "rev": "c411244f49e20360939644a2228f6cb0789f97f6", "type": "github" }, "original": { @@ -124,7 +124,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_5" + "systems": "systems_4" }, "locked": { "lastModified": 1731533236, @@ -146,11 +146,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1778225528, - "narHash": "sha256-7pgppviD+sy2VnrDKuJ+WlH7ybq2flLssfC1rALmPsI=", + "lastModified": 1781514265, + "narHash": "sha256-JuwVe1E7ISnTf5BBaq43a+wwbE3pojyJzoHN2Mk35UE=", "owner": "shazow", "repo": "foundry.nix", - "rev": "bd136cffb887f2234d6a98aa6701c232955b227b", + "rev": "a4814804b19b1cbbc6349249b568e6a71d8e6ed7", "type": "github" }, "original": { @@ -182,12 +182,15 @@ } }, "hardware": { + "inputs": { + "nixpkgs": "nixpkgs_5" + }, "locked": { - "lastModified": 1778143761, - "narHash": "sha256-lkesY6x2X2qxlqLM7CT2iM/0rP2JB7fruPN3h8POXmI=", + "lastModified": 1781168557, + "narHash": "sha256-LOnLQ2tpYF9gqIDDr3+j3DbpJJr/QCH6zPRT2GzEUOE=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "3bcaa367d4c550d687a17ac792fd5cda214ee871", + "rev": "6358ff76821101c178e3ab4919a62799bfe3652e", "type": "github" }, "original": { @@ -204,11 +207,11 @@ ] }, "locked": { - "lastModified": 1778144356, - "narHash": "sha256-dGM+QCstz/DyLB68+JK5GWyMx4QSqmOJEVgZmy63d/g=", + "lastModified": 1781557312, + "narHash": "sha256-QOIRYSUFSq7L5mY3dZymaVhcnne3tPgoR9riB0WocjA=", "owner": "nix-community", "repo": "home-manager", - "rev": "e4419d3123b780d5f4c0bceeace450424387638c", + "rev": "c03e4752899e55705dfa63979abd885c582a5c48", "type": "github" }, "original": { @@ -225,11 +228,11 @@ ] }, "locked": { - "lastModified": 1778805320, - "narHash": "sha256-nGFJ01m2CTBKD4ABtcY4vLhHrRN91LKr/pn41PcU78A=", + "lastModified": 1780515920, + "narHash": "sha256-8KX2hEeOX6KP3hBBJJI8dGWVrzbOOf1rBPmg/GUG24U=", "owner": "nix-community", "repo": "home-manager", - "rev": "9846abe15e7d0d36b8acbd4d05f2b87461744c92", + "rev": "4c5c1e8ba14f1c7475fa31ff11bc1c19cd220974", "type": "github" }, "original": { @@ -307,17 +310,17 @@ "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "hyprwire": "hyprwire", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_3", "xdph": "xdph" }, "locked": { - "lastModified": 1778199997, - "narHash": "sha256-L+jaxpUg7l8dThBsuXddzd5rv1QKMiKLENuwM/aG3aA=", + "lastModified": 1781551294, + "narHash": "sha256-xTVp7kSmB2qZExF34oT3DDPDqIetU6nf8CQ/zHPqkUY=", "ref": "refs/heads/main", - "rev": "de9f8dc9831d921cd1ee30d5d14f45f0e345a8ca", - "revCount": 7275, + "rev": "88262e1f860adc56f528ef68b2909ee33a27186b", + "revCount": 7477, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -434,7 +437,7 @@ "rose-pine-hyprcursor", "nixpkgs" ], - "systems": "systems_6" + "systems": "systems_5" }, "locked": { "lastModified": 1709914708, @@ -514,11 +517,11 @@ ] }, "locked": { - "lastModified": 1778179779, - "narHash": "sha256-Ri6rVf54CRD3aISHLhSY6H4tBScVjm9ebkv7rF2lcZM=", + "lastModified": 1780251518, + "narHash": "sha256-fG9xbb1SOAAJ+2kJRakp3ch+BmA/3dEg/K3PoAZTKkw=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "3e170e5ad010602671f5f25b327e8bdb8fdd532c", + "rev": "40ede2e7bdec80ba5d4c443160d905e9f841ae5f", "type": "github" }, "original": { @@ -568,11 +571,11 @@ ] }, "locked": { - "lastModified": 1777388329, - "narHash": "sha256-40YxVGF2rA9iH3D7am5fy4EOSBbMgpJtJ9yhl0Cx+qI=", + "lastModified": 1778410714, + "narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=", "owner": "hyprwm", "repo": "hyprwire", - "rev": "04be2897e05f9b271d532b5ae56ca088d2eeac02", + "rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc", "type": "github" }, "original": { @@ -583,11 +586,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1778124196, - "narHash": "sha256-pYEytCNic/czazbV9r3tbQ6BZzqRBg/41x2dIC5ymOo=", + "lastModified": 1781454065, + "narHash": "sha256-d2xfDjnfRuf/xYGdu9VVRHiav/2w5hDL/5cw2TuVAXw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "68a8af93ff4297686cb68880845e61e5e2e41d92", + "rev": "9eac87a12312b8f60dd52e1c6e1a265f6fc7f5fc", "type": "github" }, "original": { @@ -597,6 +600,22 @@ "type": "github" } }, + "nixpkgs_10": { + "locked": { + "lastModified": 1780243769, + "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1752480373, @@ -645,37 +664,50 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1777954456, - "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1", - "type": "github" + "lastModified": 1767892417, + "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", + "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" } }, "nixpkgs_6": { "locked": { - "lastModified": 1777954456, - "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", - "owner": "nixos", + "lastModified": 1780749050, + "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1", + "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_7": { + "locked": { + "lastModified": 1781074563, + "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { "locked": { "lastModified": 1710272261, "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=", @@ -691,48 +723,31 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { - "lastModified": 1777578337, - "narHash": "sha256-fN6ynMvcdwPDB09LpWJNO5ogu+HFydrBWXJywoI/NNg=", - "rev": "15f4ee454b1dce334612fa6843b3e05cf546efab", + "lastModified": 1781074563, + "narHash": "sha256-d34lhgOet4IqYMnCxbIvwFBMOyTV6PT4TyNEOP0/ZhU=", + "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre990025.15f4ee454b1d/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1014179.9ae611a455b9/nixexprs.tar.xz" }, "original": { "type": "tarball", "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" } }, - "nixpkgs_9": { - "locked": { - "lastModified": 1778443072, - "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "noctalia": { "inputs": { "nixpkgs": [ "nixpkgs" - ], - "noctalia-qs": "noctalia-qs" + ] }, "locked": { - "lastModified": 1778104114, - "narHash": "sha256-+tbqLv7IW5Aem8kGF6cp4n3MtNBcwqmuGlMt6S1kQjs=", + "lastModified": 1781581126, + "narHash": "sha256-GXzO08gNKZsEuVgMhIfuUvc5G4Xh1rNot8KWjZsKNos=", "owner": "noctalia-dev", "repo": "noctalia-shell", - "rev": "eb2b53ddaa7564f5c93031cbe65cd5b6ef3c12a9", + "rev": "de82488dc60db736acd5bf95fb448405ea99f404", "type": "github" }, "original": { @@ -741,37 +756,14 @@ "type": "github" } }, - "noctalia-qs": { - "inputs": { - "nixpkgs": [ - "noctalia", - "nixpkgs" - ], - "systems": "systems_4", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1777773024, - "narHash": "sha256-pLU+KB84A0Jei/vTD6pOS4Ovkmq3QDfPQHg1MlKsRqM=", - "owner": "noctalia-dev", - "repo": "noctalia-qs", - "rev": "d3e26ccd9eecde9139be00caf5dc2d4260fb31ee", - "type": "github" - }, - "original": { - "owner": "noctalia-dev", - "repo": "noctalia-qs", - "type": "github" - } - }, "nvchad-starter": { "flake": false, "locked": { - "lastModified": 1774716235, - "narHash": "sha256-p5XuXq2aGiNIyMd1H/H9GPCQDldO12JXr3HX6KJu3kc=", + "lastModified": 1781540169, + "narHash": "sha256-WInj893sq8gTtIvSu0EY/5/3EiYpy2SPcNetjpKO68o=", "owner": "naps62", "repo": "nvchad-starter", - "rev": "7c227632f116a26b47f212eafd734cc6197f38c8", + "rev": "35370b831c42d0d4b2ca7291df6f4e53e2e48573", "type": "github" }, "original": { @@ -791,11 +783,11 @@ ] }, "locked": { - "lastModified": 1778070131, - "narHash": "sha256-EedXCyi5QiavlU08WPPnspk/AM8e+WD410aV8QQF7dU=", + "lastModified": 1781363098, + "narHash": "sha256-uhidFg3n92Lh9JKQJQExEPNRe+fTzhC7/G9XebdzSYU=", "owner": "nix-community", "repo": "nix4nvchad", - "rev": "45fffa011c9c5dcb764763f29e0c3b6b5206a6cd", + "rev": "55d95057021c5d285d95c5f254006f4fa9c3084b", "type": "github" }, "original": { @@ -814,11 +806,11 @@ ] }, "locked": { - "lastModified": 1776796298, - "narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=", + "lastModified": 1778507602, + "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad", + "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a", "type": "github" }, "original": { @@ -835,20 +827,20 @@ "hardware": "hardware", "home-manager": "home-manager", "hyprland": "hyprland", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_7", "noctalia": "noctalia", "nvchad-starter": "nvchad-starter", "nvchad4nix": "nvchad4nix", "rose-pine-hyprcursor": "rose-pine-hyprcursor", "spicetify-nix": "spicetify-nix", - "systems": "systems_9", + "systems": "systems_8", "zen-browser": "zen-browser" } }, "rose-pine-hyprcursor": { "inputs": { "hyprlang": "hyprlang_2", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", "utils": "utils_2" }, "locked": { @@ -885,15 +877,15 @@ }, "spicetify-nix": { "inputs": { - "nixpkgs": "nixpkgs_8", - "systems": "systems_8" + "nixpkgs": "nixpkgs_9", + "systems": "systems_7" }, "locked": { - "lastModified": 1777789800, - "narHash": "sha256-XHCvLGu/bEEZRzXVKFu1i+2YB102Nr00n8e7xrzsfVs=", + "lastModified": 1781425310, + "narHash": "sha256-GTBka4Df/ZOacmisI/DI2LICyNChEqn/giah83LucdM=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "d0e921cc48aab6137d203a3eab19601dc2bdc0c3", + "rev": "aeaf7c81a45d3761da61cb05bfc370ac6d1b0441", "type": "github" }, "original": { @@ -948,21 +940,6 @@ } }, "systems_4": { - "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_5": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -977,7 +954,7 @@ "type": "github" } }, - "systems_6": { + "systems_5": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -992,6 +969,21 @@ "type": "github" } }, + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "systems_7": { "locked": { "lastModified": 1681028828, @@ -1008,21 +1000,6 @@ } }, "systems_8": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_9": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -1037,28 +1014,6 @@ "type": "github" } }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "noctalia", - "noctalia-qs", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1775636079, - "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, "utils": { "inputs": { "systems": "systems_2" @@ -1079,7 +1034,7 @@ }, "utils_2": { "inputs": { - "systems": "systems_7" + "systems": "systems_6" }, "locked": { "lastModified": 1710146030, @@ -1123,11 +1078,11 @@ ] }, "locked": { - "lastModified": 1777585783, - "narHash": "sha256-JTeWRy42VElroJ0rVdZuVXSoTLsx+NzQfGPKMbtn3SU=", + "lastModified": 1780133819, + "narHash": "sha256-0YPKIY3dlnR7SPq7Z8ekFVvzFsfeiAtEj+QUI3KHrlI=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "fa50d6fbaff8f42c61071b87b034a90d82a33558", + "rev": "4a170c0ba96fd37374f93d8f91c9ed91814828ac", "type": "github" }, "original": { @@ -1139,14 +1094,14 @@ "zen-browser": { "inputs": { "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1779649538, - "narHash": "sha256-k256zgHyqJ/0siFdq5y4GSwJyYKhQnW83N9K8S7OMKo=", + "lastModified": 1781426426, + "narHash": "sha256-yzxJMNgv/sLishhCT9G2lm7W9CjHSlXWkfbWC7vfjqc=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "e8fbde26a92a8c078fb1355c9f7c8dba5f7eb9d6", + "rev": "df336067c1a8af3bfce3f0b88b66dc1c57411b4e", "type": "github" }, "original": { diff --git a/home/arrakis/default.nix b/home/arrakis/default.nix index 122864c..e8c14b4 100644 --- a/home/arrakis/default.nix +++ b/home/arrakis/default.nix @@ -44,7 +44,6 @@ ]; }; - programs.noctalia-shell.settings.bar = { - density = "comfortable"; - }; + # v4 `bar.density` has no v5 equivalent; spacing is tuned via + # bar.main.padding / widget_spacing / thickness if needed. } diff --git a/home/common/programs/3d.nix b/home/common/programs/3d.nix index 1f7f750..a3e2731 100644 --- a/home/common/programs/3d.nix +++ b/home/common/programs/3d.nix @@ -7,7 +7,6 @@ { home.packages = with pkgs; [ blender - openscad prusa-slicer google-fonts ]; diff --git a/home/common/programs/desktop/darkman.nix b/home/common/programs/desktop/darkman.nix index cff85ff..e27e8a4 100644 --- a/home/common/programs/desktop/darkman.nix +++ b/home/common/programs/desktop/darkman.nix @@ -32,7 +32,7 @@ fi ''; noctalia-theme = '' - noctalia-shell ipc call darkMode setDark + noctalia msg theme-mode-set dark ''; }; lightModeScripts = { @@ -61,7 +61,7 @@ fi ''; noctalia-theme = '' - noctalia-shell ipc call darkMode setLight + noctalia msg theme-mode-set light ''; }; }; diff --git a/home/common/programs/hyprland/default.nix b/home/common/programs/hyprland/default.nix index 80ee243..a5bc933 100644 --- a/home/common/programs/hyprland/default.nix +++ b/home/common/programs/hyprland/default.nix @@ -131,12 +131,12 @@ in "hyprctl setcursor Nordzy-cursors ${toString cfg.cursorSize}" "hyprsunset" "nerd-dictation begin --simulate-input-tool WTYPE --suspend-on-start && touch ~/.cache/nerd-dictation-suspended" - "noctalia-shell" + "noctalia" ]; layerrule = [ - "blur 1, match:namespace noctalia-background-.*" - "ignore_alpha 0.5, match:namespace noctalia-background-.*" + "blur 1, match:namespace noctalia-wallpaper" + "ignore_alpha 0.5, match:namespace noctalia-wallpaper" ]; workspace = [ # no gaps when only window @@ -203,14 +203,14 @@ in "$mod" = "SUPER"; bind = [ - "$mod, n, exec, noctalia-shell ipc call controlCenter toggle" + "$mod, n, exec, noctalia msg panel-toggle control-center" "$mod, t, exec, kitty" "$mod, v, togglefloating" "$mod, q, killactive" "$mod, f, fullscreen, 0" "$mod SHIFT, f, fullscreen, 1" - "$mod, space, exec, noctalia-shell ipc call launcher toggle" + "$mod, space, exec, noctalia msg panel-toggle launcher" # printscreen ", Print, exec, hyprshot -m region --raw | satty --filename - --output-filename ~/downloads/screenshots/$(date +%Y-%m-%d_%H-%M-%S).png" @@ -285,12 +285,12 @@ in general = { after_sleep_cmd = "hyprctl dispatch dpms on"; ignore_dbus_inhibit = false; - lock_cmd = "noctalia-shell ipc call lockScreen lock"; + lock_cmd = "noctalia msg session lock"; }; listener = [ { timeout = 900; - on-timeout = "noctalia-shell ipc call lockScreen lock"; + on-timeout = "noctalia msg session lock"; } { timeout = 1200; diff --git a/home/common/programs/hyprland/noctalia/default.nix b/home/common/programs/hyprland/noctalia/default.nix index a368cb8..fc9b1f3 100644 --- a/home/common/programs/hyprland/noctalia/default.nix +++ b/home/common/programs/hyprland/noctalia/default.nix @@ -14,589 +14,76 @@ in { imports = [ inputs.noctalia.homeModules.default ]; - programs.noctalia-shell = { + # Noctalia v5 rewrote the config schema (TOML, snake_case, flat sections). + # The v4 settings (appLauncher.*, bar.widgets.*, controlCenter.shortcuts.*, etc.) + # have no v5 equivalents — most must now be tweaked through the in-shell + # Settings UI. See docs.noctalia.dev/v5 and example.toml in the upstream repo. + programs.noctalia = { enable = true; settings = { - appLauncher = { - autoPasteClipboard = false; - clipboardWatchImageCommand = "wl-paste --type image --watch cliphist store"; - clipboardWatchTextCommand = "wl-paste --type text --watch cliphist store"; - clipboardWrapText = true; - customLaunchPrefix = ""; - customLaunchPrefixEnabled = false; - density = "default"; - enableClipPreview = true; - enableClipboardHistory = true; - enableSessionSearch = true; - enableSettingsSearch = true; - enableWindowsSearch = true; - iconMode = "tabler"; - ignoreMouseInput = false; - overviewLayer = true; - pinnedApps = [ ]; - position = "center"; - screenshotAnnotationTool = ""; - showCategories = true; - showIconBackground = false; - sortByMostUsed = true; - terminalCommand = "kitty -e"; - useApp2Unit = false; - viewMode = "list"; - }; - audio = { - cavaFrameRate = 30; - mprisBlacklist = [ ]; - preferredPlayer = "spotify"; - visualizerType = "linear"; - volumeFeedback = false; - volumeOverdrive = false; - volumeStep = 5; - }; - bar = { - autoHideDelay = 500; - autoShowDelay = 150; - backgroundOpacity = 0.93; - barType = "simple"; - capsuleColorKey = "none"; - capsuleOpacity = 1; - displayMode = "auto_hide"; - floating = false; - frameRadius = 12; - frameThickness = 8; - hideOnOverview = false; - marginHorizontal = 4; - marginVertical = 4; - monitors = [ ]; - outerCorners = true; - position = "top"; - screenOverrides = [ ]; - showCapsule = true; - showOutline = false; - useSeparateOpacity = false; - widgets = { - center = [ - { - colorizeIcons = false; - hideMode = "hidden"; - id = "ActiveWindow"; - maxWidth = 145; - scrollingMode = "hover"; - showIcon = true; - textColor = "none"; - useFixedWidth = false; - } - { - colorName = "primary"; - hideWhenIdle = true; - id = "AudioVisualizer"; - width = 200; - } - ]; - left = [ - { - characterCount = 2; - colorizeIcons = false; - emptyColor = "secondary"; - enableScrollWheel = true; - focusedColor = "primary"; - followFocusedScreen = false; - groupedBorderOpacity = 1; - hideUnoccupied = true; - iconScale = 0.8; - id = "Workspace"; - labelMode = "name"; - occupiedColor = "secondary"; - pillSize = 0.75; - showApplications = false; - showBadge = true; - showLabelsOnlyWhenOccupied = true; - unfocusedIconsOpacity = 1; - } - ]; - right = [ - { - blacklist = [ ]; - chevronColor = "none"; - colorizeIcons = true; - drawerEnabled = false; - hidePassive = true; - id = "Tray"; - pinned = [ ]; - } - { - displayMode = "alwaysShow"; - iconColor = "none"; - id = "Network"; - textColor = "none"; - } - { - displayMode = "alwaysShow"; - iconColor = "none"; - id = "Bluetooth"; - textColor = "none"; - } - { - deviceNativePath = "__default__"; - displayMode = "graphic-clean"; - hideIfIdle = false; - hideIfNotDetected = true; - id = "Battery"; - showNoctaliaPerformance = false; - showPowerProfiles = false; - } - { - displayMode = "onhover"; - iconColor = "none"; - id = "Volume"; - middleClickCommand = "pwvucontrol || pavucontrol"; - textColor = "none"; - } - { - displayMode = "onhover"; - iconColor = "none"; - id = "Brightness"; - textColor = "none"; - } - { - deviceNativePath = "__default__"; - displayMode = "graphic-clean"; - hideIfIdle = false; - hideIfNotDetected = true; - id = "Battery"; - showNoctaliaPerformance = false; - showPowerProfiles = false; - } - { - clockColor = "none"; - customFont = ""; - formatHorizontal = "HH:mm ddd, MMM dd"; - formatVertical = "HH mm - dd MM"; - id = "Clock"; - tooltipFormat = "HH:mm ddd, MMM dd"; - useCustomFont = false; - } - { - colorizeDistroLogo = false; - colorizeSystemIcon = "none"; - customIconPath = ""; - enableColorization = true; - icon = "noctalia"; - id = "ControlCenter"; - useDistroLogo = true; - } - ]; - }; - }; - brightness = { - brightnessStep = 5; - enableDdcSupport = false; - enforceMinimum = true; - }; - calendar = { - cards = [ - { - enabled = true; - id = "calendar-header-card"; - } - { - enabled = true; - id = "calendar-month-card"; - } - { - enabled = true; - id = "weather-card"; - } - ]; - }; - colorSchemes = { - darkMode = true; - generationMethod = "tonal-spot"; - manualSunrise = "06:30"; - manualSunset = "18:30"; - monitorForColors = ""; - predefinedScheme = "Nord"; - schedulingMode = "off"; - useWallpaperColors = false; - }; - controlCenter = { - cards = [ - { - enabled = true; - id = "profile-card"; - } - { - enabled = true; - id = "shortcuts-card"; - } - { - enabled = true; - id = "audio-card"; - } - { - enabled = false; - id = "brightness-card"; - } - { - enabled = true; - id = "weather-card"; - } - { - enabled = true; - id = "media-sysmon-card"; - } - ]; - diskPath = "/"; - position = "close_to_bar_button"; - shortcuts = { - left = [ - { id = "Network"; } - { id = "Bluetooth"; } - { id = "WallpaperSelector"; } - { id = "NoctaliaPerformance"; } - ]; - right = [ - { id = "Notifications"; } - { id = "PowerProfile"; } - { id = "KeepAwake"; } - { id = "NightLight"; } - ]; - }; - }; - desktopWidgets = { - enabled = false; - gridSnap = false; - monitorWidgets = [ ]; - }; - dock = { - animationSpeed = 1; - backgroundOpacity = 1; - colorizeIcons = false; - deadOpacity = 0.6; - displayMode = "auto_hide"; - dockType = "floating"; - enabled = false; - floatingRatio = 0; - inactiveIndicators = true; - monitors = [ ]; - onlySameOutput = true; - pinnedApps = [ ]; - pinnedStatic = false; - position = "bottom"; - showFrameIndicator = true; - sitOnFrame = false; - size = 1.5; - }; - general = { - allowPanelsOnScreenWithoutBar = true; - allowPasswordWithFprintd = true; - animationDisabled = false; - animationSpeed = 1; - autoStartAuth = true; - avatarImage = "${config.home.homeDirectory}/.face"; - boxRadiusRatio = 1; - clockFormat = "hh\\nmm"; - clockStyle = "custom"; - compactLockScreen = false; - dimmerOpacity = 0.4; - enableLockScreenCountdown = true; - enableShadows = true; - forceBlackScreenCorners = false; - iRadiusRatio = 1; - keybinds = { - keyDown = [ "Down" ]; - keyEnter = [ "Return" ]; - keyEscape = [ "Esc" ]; - keyLeft = [ "Left" ]; - keyRemove = [ "Del" ]; - keyRight = [ "Right" ]; - keyUp = [ "Up" ]; - }; - language = ""; - lockOnSuspend = true; - lockScreenAnimations = true; - lockScreenBlur = 0; - lockScreenCountdownDuration = 10000; - lockScreenMonitors = [ ]; - lockScreenTint = 0; - radiusRatio = 1; - reverseScroll = false; - scaleRatio = 1; - screenRadiusRatio = 1; - shadowDirection = "bottom_right"; - shadowOffsetX = 2; - shadowOffsetY = 3; - showChangelogOnStartup = false; - showHibernateOnLockScreen = true; - showScreenCorners = false; - showSessionButtonsOnLockScreen = true; - telemetryEnabled = false; - }; - hooks = { - darkModeChange = ""; - enabled = false; - performanceModeDisabled = ""; - performanceModeEnabled = ""; - screenLock = ""; - screenUnlock = ""; - session = ""; - startup = ""; - wallpaperChange = ""; - }; - location = { - analogClockInCalendar = true; - firstDayOfWeek = -1; - hideWeatherCityName = false; - hideWeatherTimezone = false; - name = "Braga, Portugal"; - showCalendarEvents = true; - showCalendarWeather = true; - showWeekNumberInCalendar = false; - use12hourFormat = false; - useFahrenheit = false; - weatherEnabled = true; - weatherShowEffects = true; - }; - network = { - airplaneModeEnabled = false; - bluetoothDetailsViewMode = "grid"; - bluetoothHideUnnamedDevices = false; - bluetoothRssiPollIntervalMs = 60000; - bluetoothRssiPollingEnabled = false; - disableDiscoverability = false; - wifiDetailsViewMode = "grid"; - wifiEnabled = true; - }; - nightLight = { - autoSchedule = true; - dayTemp = "6500"; - enabled = true; - forced = false; - manualSunrise = "06:30"; - manualSunset = "18:30"; - nightTemp = "4000"; - }; - notifications = { - backgroundOpacity = 1; - clearDismissed = true; - criticalUrgencyDuration = 15; - density = "compact"; - enableBatteryToast = true; - enableKeyboardLayoutToast = true; - enableMarkdown = true; - enableMediaToast = true; - enabled = true; - location = "top_right"; - lowUrgencyDuration = 3; - monitors = [ ]; - normalUrgencyDuration = 8; - overlayLayer = true; - respectExpireTimeout = false; - saveToHistory = { - critical = true; - low = true; - normal = true; - }; - sounds = { - criticalSoundFile = ""; - enabled = false; - excludedApps = "discord,firefox,chrome,chromium,edge"; - lowSoundFile = ""; - normalSoundFile = ""; - separateSounds = false; - volume = 0.5; - }; - }; - osd = { - autoHideMs = 2000; - backgroundOpacity = 1; - enabled = true; - enabledTypes = [ - 0 - 1 - 2 - 3 - ]; - location = "top"; - monitors = [ ]; - overlayLayer = true; - }; - plugins = { - autoUpdate = false; - }; - sessionMenu = { - countdownDuration = 10000; - enableCountdown = true; - largeButtonsLayout = "single-row"; - largeButtonsStyle = true; - position = "center"; - powerOptions = [ - { - action = "lock"; - command = ""; - countdownEnabled = true; - enabled = true; - keybind = "1"; - } - { - action = "suspend"; - command = ""; - countdownEnabled = true; - enabled = true; - keybind = "2"; - } - { - action = "hibernate"; - command = ""; - countdownEnabled = true; - enabled = true; - keybind = "3"; - } - { - action = "reboot"; - command = ""; - countdownEnabled = true; - enabled = true; - keybind = "4"; - } - { - action = "logout"; - command = ""; - countdownEnabled = true; - enabled = true; - keybind = "5"; - } - { - action = "shutdown"; - command = ""; - countdownEnabled = true; - enabled = true; - keybind = "6"; - } - { - action = "rebootToUefi"; - command = ""; - countdownEnabled = true; - enabled = true; - keybind = ""; - } - ]; - showHeader = true; - showKeybinds = true; - }; - settingsVersion = 53; - systemMonitor = { - batteryCriticalThreshold = 5; - batteryWarningThreshold = 20; - cpuCriticalThreshold = 90; - cpuWarningThreshold = 80; - criticalColor = ""; - diskAvailCriticalThreshold = 10; - diskAvailWarningThreshold = 20; - diskCriticalThreshold = 90; - diskWarningThreshold = 80; - enableDgpuMonitoring = false; - externalMonitor = "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor"; - gpuCriticalThreshold = 90; - gpuWarningThreshold = 80; - memCriticalThreshold = 90; - memWarningThreshold = 80; - swapCriticalThreshold = 90; - swapWarningThreshold = 80; - tempCriticalThreshold = 90; - tempWarningThreshold = 80; - useCustomColors = false; - warningColor = ""; - }; - templates = { - activeTemplates = [ - { - enabled = true; - id = "zenBrowser"; - } - { - enabled = true; - id = "hyprland"; - } - { - enabled = true; - id = "kitty"; - } - { - enabled = true; - id = "yazi"; - } - { - enabled = true; - id = "zathura"; - } - { - enabled = true; - id = "gtk"; - } - { - enabled = true; - id = "qt"; - } - { - enabled = true; - id = "btop"; - } - { - enabled = true; - id = "spicetify"; - } - ]; - enableUserTheming = false; - }; - ui = { - bluetoothDetailsViewMode = "grid"; - bluetoothHideUnnamedDevices = false; - boxBorderEnabled = false; - fontDefault = "Sans Serif"; - fontFixed = "monospace"; - networkPanelView = "wifi"; - panelBackgroundOpacity = 0.93; - panelsAttachedToBar = true; - settingsPanelMode = "attached"; - tooltipsEnabled = true; - wifiDetailsViewMode = "grid"; + shell = { + font_family = "Sans Serif"; + avatar_path = "${config.home.homeDirectory}/.face"; + telemetry_enabled = false; + polkit_agent = true; }; + wallpaper = { - automationEnabled = true; - directory = "${config.home.homeDirectory}/.cache/wallpapers/3840x2160"; enabled = true; - favorites = [ ]; - fillColor = "#5e81ac"; - fillMode = "crop"; - hideWallpaperFilenames = false; - monitorDirectories = [ ]; - overviewBlur = 0.4; - overviewEnabled = false; - overviewTint = 0.6; - panelPosition = "follow_bar"; - randomIntervalSec = 21600; - setWallpaperOnAllMonitors = true; - showHiddenFiles = false; - skipStartupTransition = false; - solidColor = "#1a1a2e"; - sortOrder = "name"; - transitionDuration = 1500; - transitionEdgeSmoothness = 0.05; - transitionType = "fade"; - useSolidColor = false; - useWallhaven = false; - viewMode = "browse"; - wallhavenApiKey = ""; - wallhavenCategories = "111"; - wallhavenOrder = "desc"; - wallhavenPurity = "100"; - wallhavenQuery = ""; - wallhavenRatios = ""; - wallhavenResolutionHeight = ""; - wallhavenResolutionMode = "atleast"; - wallhavenResolutionWidth = ""; - wallhavenSorting = "relevance"; - wallpaperChangeMode = "random"; + fill_mode = "crop"; + directory = "${config.home.homeDirectory}/.cache/wallpapers/3840x2160"; + transition = [ "fade" ]; + transition_duration = 1500; + automation = { + enabled = true; + interval_minutes = 360; + order = "random"; + recursive = true; + }; + }; + + theme = { + mode = "dark"; + source = "builtin"; + builtin = "Nord"; + templates = { + enable_builtin_templates = true; + builtin_ids = [ + "btop" + "gtk3" + "gtk4" + "hyprland" + "kitty" + "qt" + ]; + }; + }; + + notification.enable_daemon = true; + + weather = { + enabled = true; + unit = "celsius"; + }; + + location = { + auto_locate = false; + address = "Braga, Portugal"; + }; + + nightlight = { + enabled = true; + temperature_day = 6500; + temperature_night = 4000; + }; + + bar.main = { + position = "top"; + background_opacity = 0.93; + radius = 12; + start = [ "launcher" "wallpaper" "workspaces" ]; + center = [ "media" "clock" ]; + end = [ "tray" "notifications" "network" "bluetooth" "volume" "brightness" "battery" "control-center" "session" ]; }; }; }; @@ -607,8 +94,16 @@ in xdg.configFile."hypr/hyprland.conf".force = true; xdg.configFile."gtk-3.0/gtk.css".force = true; - # source noctalia-generated color theme in hyprland + # source noctalia-generated color theme in hyprland (v5 path). + # Hyprland globs every source path, so a missing file errors as + # "globbing error: found no match" — pre-create an empty placeholder + # so the first boot doesn't fail before noctalia has run. + home.activation.ensureNoctaliaHyprConf = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + run mkdir -p "$HOME/.config/hypr" + run touch "$HOME/.config/hypr/noctalia.conf" + ''; + wayland.windowManager.hyprland.settings.source = [ - "~/.config/hypr/noctalia/noctalia-colors.conf" + "~/.config/hypr/noctalia.conf" ]; } diff --git a/home/desktop/default.nix b/home/desktop/default.nix index 5e5cd5b..71d6ceb 100644 --- a/home/desktop/default.nix +++ b/home/desktop/default.nix @@ -73,25 +73,11 @@ }; - programs.noctalia-shell.settings = { - bar = { - density = "spacious"; - }; - notifications = { - monitors = [ "DP-1" ]; - }; - ui = { - fontDefaultScale = 1.25; - fontFixedScale = 1.25; - }; - wallpaper = { - enableMultiMonitorDirectories = true; - monitorDirectories = [ - { monitor = "HDMI-A-1"; directory = "${config.home.homeDirectory}/.cache/wallpapers/3840x2160"; } - { monitor = "DP-1"; directory = "${config.home.homeDirectory}/.cache/wallpapers/3840x2160"; } - { monitor = "DP-2"; directory = "${config.home.homeDirectory}/.cache/wallpapers/2160x3840"; } - ]; - }; + programs.noctalia.settings = { + shell.ui_scale = 1.25; + notification.monitors = [ "DP-1" ]; + # NOTE: v5 has no per-monitor wallpaper directories; only directory_light / + # directory_dark. Re-add via Settings UI if upstream gains support. }; programs.kitty.settings.font_size = 16; diff --git a/pkgs/sddm-noctalia-theme/package.nix b/pkgs/sddm-noctalia-theme/package.nix index 7c79d5a..aa185d0 100644 --- a/pkgs/sddm-noctalia-theme/package.nix +++ b/pkgs/sddm-noctalia-theme/package.nix @@ -8,7 +8,7 @@ pkgs.stdenv.mkDerivation { owner = "mahaveergurjar"; repo = "sddm"; rev = "noctalia"; - sha256 = "sha256-q/aw4PLSHhS2jKjRl8F1JIBZn1aBV/QBEDgZ+2Oyo2A="; + sha256 = "sha256-e/gYI6znHXxlDCOVh4p265x3kO0nQUU897hCY1yEz88="; }; installPhase = ''