Skip to content

Hy3 fails to build on Hyprland 0.52.0 Nix. #256

Description

@Immelancholy
hyprland --version
Hyprland 0.52.0 built from branch unknown at commit f11cf6f1de708b6b3811788e8ff7984ff05a9546 dirty (unknown).
Date: 2025-11-29
Tag: v0.52.0, commits: 0

Libraries:
Hyprgraphics: built against 0.4.0, system has unknown
Hyprutils: built against 0.10.4, system has unknown
Hyprcursor: built against 0.1.13, system has unknown
Hyprlang: built against 0.6.6, system has unknown
Aquamarine: built against 0.10.0, system has unknown

no flags were set

Got an error trying to update my NixOS config about Hy3 failing to build citing the addDispatcher API call being deprecated.

error: Cannot build '/nix/store/ac57bplcijq4iwpa0fvbkd3rgnh7xbhy-hy3-hl0.52.0.drv'.
       Reason: builder failed with exit code 1.
       Output paths:
         /nix/store/0syydc0bwnlq3761fjgc61ni0jijjp2l-hy3-hl0.52.0
       Last 25 log lines:
       > /build/wgp2kgyc8wqhvnk25jwwkdblrqdqbrsz-source/src/dispatchers.cpp:291:35: warning: 'bool HyprlandAPI::addDispatcher(void*, const std::string&, std::function<void(std::__cxx11::basic_string<char>)>)' is deprecated [-Wdeprecated-declarations]
       >   291 |         HyprlandAPI::addDispatcher(PHANDLE, "hy3:setswallow", dispatch_setswallow);
       >       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       > /nix/store/f67smcppf4r94pn963fnavzd8cp5wh65-hyprland-0.52.0+date=2025-11-29_f11cf6f-dev/include/hyprland/src/plugins/PluginAPI.hpp:250:33: note: declared here
       >   250 |     APICALL [[deprecated]] bool addDispatcher(HANDLE handle, const std::string& name, std::function<void(std::string)> handler);
       >       |                                 ^~~~~~~~~~~~~
       > /build/wgp2kgyc8wqhvnk25jwwkdblrqdqbrsz-source/src/dispatchers.cpp:292:35: warning: 'bool HyprlandAPI::addDispatcher(void*, const std::string&, std::function<void(std::__cxx11::basic_string<char>)>)' is deprecated [-Wdeprecated-declarations]
       >   292 |         HyprlandAPI::addDispatcher(PHANDLE, "hy3:killactive", dispatch_killactive);
       >       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       > /nix/store/f67smcppf4r94pn963fnavzd8cp5wh65-hyprland-0.52.0+date=2025-11-29_f11cf6f-dev/include/hyprland/src/plugins/PluginAPI.hpp:250:33: note: declared here
       >   250 |     APICALL [[deprecated]] bool addDispatcher(HANDLE handle, const std::string& name, std::function<void(std::string)> handler);
       >       |                                 ^~~~~~~~~~~~~
       > /build/wgp2kgyc8wqhvnk25jwwkdblrqdqbrsz-source/src/dispatchers.cpp:293:35: warning: 'bool HyprlandAPI::addDispatcher(void*, const std::string&, std::function<void(std::__cxx11::basic_string<char>)>)' is deprecated [-Wdeprecated-declarations]
       >   293 |         HyprlandAPI::addDispatcher(PHANDLE, "hy3:expand", dispatch_expand);
       >       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       > /nix/store/f67smcppf4r94pn963fnavzd8cp5wh65-hyprland-0.52.0+date=2025-11-29_f11cf6f-dev/include/hyprland/src/plugins/PluginAPI.hpp:250:33: note: declared here
       >   250 |     APICALL [[deprecated]] bool addDispatcher(HANDLE handle, const std::string& name, std::function<void(std::string)> handler);
       >       |                                 ^~~~~~~~~~~~~
       > /build/wgp2kgyc8wqhvnk25jwwkdblrqdqbrsz-source/src/dispatchers.cpp:294:35: warning: 'bool HyprlandAPI::addDispatcher(void*, const std::string&, std::function<void(std::__cxx11::basic_string<char>)>)' is deprecated [-Wdeprecated-declarations]
       >   294 |         HyprlandAPI::addDispatcher(PHANDLE, "hy3:locktab", dispatch_locktab);
       >       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       > /nix/store/f67smcppf4r94pn963fnavzd8cp5wh65-hyprland-0.52.0+date=2025-11-29_f11cf6f-dev/include/hyprland/src/plugins/PluginAPI.hpp:250:33: note: declared here
       >   250 |     APICALL [[deprecated]] bool addDispatcher(HANDLE handle, const std::string& name, std::function<void(std::string)> handler);
       >       |                                 ^~~~~~~~~~~~~
       > ninja: build stopped: subcommand failed.
       For full logs, run:
         nix log /nix/store/ac57bplcijq4iwpa0fvbkd3rgnh7xbhy-hy3-hl0.52.0.drv
error: Cannot build '/nix/store/f1gi1bm7xcjq85zkzciv2nq17fb5l8g6-hm_hyprhyprland.conf.drv'.
       Reason: 1 dependency failed.
       Output paths:
         /nix/store/qb2ilbvz6khpr41dzrs2c8gh4r0q3if6-hm_hyprhyprland.conf
error: Cannot build '/nix/store/93dkn2wxbmr4shjhm03qq8agdl52pw2j-home-manager-files.drv'.
       Reason: 1 dependency failed.
       Output paths:
         /nix/store/jjm2jzlj8qw47shryf2l27p6gyc8h0lb-home-manager-files
error: Cannot build '/nix/store/y56lk1v4m9rkxps4swyv6bxj2lhqsvcs-home-manager-generation.drv'.
       Reason: 1 dependency failed.
       Output paths:
         /nix/store/70j0b9xagb45wml0h6hsc2i68g35ylc6-home-manager-generation
error: Cannot build '/nix/store/xp8q3x1bjgmccy92rqghrjp8hxf8kmsv-unit-home-manager-mela.service.drv'.
       Reason: 1 dependency failed.
       Output paths:
         /nix/store/b8yn0jpgmi4ravf7iz4zwcmprl7ilsn7-unit-home-manager-mela.service
error: Cannot build '/nix/store/shrnaplglclg7dnry17wzjnxzadi99sp-system-units.drv'.
       Reason: 1 dependency failed.
       Output paths:
         /nix/store/9qzq1p0f64n1nzz1941vj31b7i97piwk-system-units
error: Cannot build '/nix/store/vm66aqmqwr0zyny187sghb4zz384k9fq-etc.drv'.
       Reason: 1 dependency failed.
       Output paths:
         /nix/store/xlfqmr244mva98ifp7lqdffzmjzs7sf4-etc
error: Cannot build '/nix/store/fgzmwxljx33zzrd9987nmnyzacdk8k09-nixos-system-Enlil-26.05.20251127.2fad6ea.drv'.
       Reason: 1 dependency failed.
       Output paths:
         /nix/store/yxn490yvjycmp5s59pjfr1vrscq1qkj8-nixos-system-Enlil-26.05.20251127.2fad6ea

These aren't the full logs and are just the output from the rebuild command instead, but they are citing the actual problem preventing this from being built.

I made a fork that fixes this and it builds fine but it's literally a copy of #168 just with updated Hy3 stuff. I don't really code at all in C++ so I just tried the first thing that might fix this. I noticed in the pr you were asking for proper error responses for failure cases? I don't know what the error cases would need to look like yet but I'm guessing it would be similar to the dispatch_debug with the whole:

return { .success = false, .error = "no nodes on workspace" };

going on in that function.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions