VortexCoyote / hyprfocus

a focus animation plugin for Hyprland inspired by Flashfocus
BSD 3-Clause "New" or "Revised" License
168 stars 15 forks source link

Nix package error; #19

Open c4lliope opened 7 months ago

c4lliope commented 7 months ago

Hello, I'm making progress to compile this package inside hyprland as a nix flake.

A good guide has been https://github.com/hyprwm/hyprland-plugins?tab=readme-ov-file#nix - maybe that codebase can inspire some changes to this one's flake.nix.'

Here are changes I made to my NixOS flake:

diff --git a/nixos/flake.nix b/nixos/flake.nix
index 2c8f6c7..5ac8d4f 100644
--- a/nixos/flake.nix
+++ b/nixos/flake.nix
@@ -1,9 +1,18 @@
 { inputs = {
     home-manager.url = "github:nix-community/home-manager";
     nixos-hardware.url = "github:nixos/nixos-hardware";
     nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
     alacritty-theme.url = "github:alexghr/alacritty-theme.nix";
+
+    hyprland.url = "github:hyprwm/Hyprland";
+    hyprland-plugins = {
+      url = "github:hyprwm/hyprland-plugins";
+      inputs.hyprland.follows = "hyprland";
+    };
+    hyprfocus = {
+      url = "github:VortexCoyote/hyprfocus";
+      inputs.hyprland.follows = "hyprland";
+    };
   };

   # hook up symlinks!
diff --git a/nixos/module/hypr.nix b/nixos/module/hypr.nix
index 535677f..47fe547 100644
--- a/nixos/module/hypr.nix
+++ b/nixos/module/hypr.nix
@@ -1,4 +1,4 @@
-{ pkgs, home-manager, ... }:
+{ pkgs, home-manager, ... } @ inputs:
 {
   programs.hyprland = { enable = true; xwayland.enable = true; };
   services.xserver = { enable = true; displayManager = {
@@ -48,6 +48,8 @@
     wayland.windowManager.hyprland = {
       enable = true;
       systemd.enable = true;
+      package = inputs.hyprland.packages.${pkgs.system}.hyprland;
+      plugins = [ inputs.hyprfocus.packages.${pkgs.system}.hyprfocus ];

       settings = {
         "$fileManager" = "thunar";
@@ -60,6 +62,7 @@
         ];

         exec-once = [
+          "hyprpm reload -n"
           "nm-applet --indicator"
           "pypr"
           "swww init"

Erasing the plugins = [ ... ]; line means I can compile properly.

Enabling the plugins line means I see:

/home/calliope/.build> sudo nixos-rebuild switch                                                                                                                                                           1 03/14/24 14:12:41 PM
warning: Git tree '/home/calliope/.build' is dirty
warning: updating lock file '/home/calliope/.build/nixos/flake.lock':
• Added input 'hyprfocus':
    'github:VortexCoyote/hyprfocus/fa6775c0481f0d3628487cc26f7c7456fa082fb7' (2024-03-14)
• Added input 'hyprfocus/hyprland':
    follows 'hyprland'
• Added input 'hyprfocus/nix-filter':
    'github:numtide/nix-filter/41fd48e00c22b4ced525af521ead8792402de0ea' (2023-09-16)
warning: Git tree '/home/calliope/.build' is dirty
building the system configuration...
warning: Git tree '/home/calliope/.build' is dirty
error: builder for '/nix/store/bhrinv55bampcm8clsglfxz59w4w9sh4-hyprfocus-0.1.drv' failed with exit code 2;
       last 10 log lines:
       > src/IFocusAnimation.hpp:12:70: error: 'SConfigValue' has not been declared
       >    12 |     void            addConfigValue(HANDLE pHandle, std::string name, SConfigValue sValue);
       >       |                                                                      ^~~~~~~~~~~~
       > src/IFocusAnimation.hpp:13:5: error: 'SConfigValue' does not name a type
       >    13 |     SConfigValue*   getConfigValue(HANDLE pHandle, std::string name);
       >       |     ^~~~~~~~~~~~
       > src/Shrink.hpp:10:5: error: invalid use of template-name 'CAnimatedVariable' without an argument list
       >    10 |     CAnimatedVariable m_sShrinkAnimation;
       >       |     ^~~~~~~~~~~~~~~~~
       > make: *** [Makefile:4: all] Error 1
       For full logs, run 'nix log /nix/store/bhrinv55bampcm8clsglfxz59w4w9sh4-hyprfocus-0.1.drv'.
error: 1 dependencies of derivation '/nix/store/7r59wcwyxvchcdwviswmhyk90gk14x62-hm_hyprhyprland.conf.drv' failed to build
error: 1 dependencies of derivation '/nix/store/m9i9n1a88sair5ipgpmdhi8b16sjk9ll-activation-script.drv' failed to build
error: 1 dependencies of derivation '/nix/store/2zz36c7nd3afibv0wpl1hsc2i0rcdbya-home-manager-generation.drv' failed to build
error: 1 dependencies of derivation '/nix/store/fgd7gpv5b2dm3fl0hig5bz65snc2g08p-unit-home-manager-calliope.service.drv' failed to build
error: 1 dependencies of derivation '/nix/store/wpiynpmg0hyibsqkaiy6sc49sspg701p-system-units.drv' failed to build
error: 1 dependencies of derivation '/nix/store/0rq7ad8r8bn82yj35055jw0qxwld6v1b-etc.drv' failed to build
error: 1 dependencies of derivation '/nix/store/ag5vvlmvj96lc1jlw7mmgksngcgb43iv-nixos-system-chesapeake-24.05.20240115.c3e128f.drv' failed to build
Full error log ``` @nix { "action": "setPhase", "phase": "unpackPhase" } Running phase: unpackPhase unpacking source archive /nix/store/nl7x5d1idwlrlhbwhbigrdvvyc0rpnni-source source root is source @nix { "action": "setPhase", "phase": "patchPhase" } Running phase: patchPhase @nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" } Running phase: updateAutotoolsGnuConfigScriptsPhase @nix { "action": "setPhase", "phase": "configurePhase" } Running phase: configurePhase no configure script, doing nothing @nix { "action": "setPhase", "phase": "buildPhase" } Running phase: buildPhase build flags: SHELL=/nix/store/4vzal97iq3dmrgycj8r0gflrh51p8w1s-bash-5.2p26/bin/bash g++ -shared -fPIC --no-gnu-unique src/Flash.cpp src/IFocusAnimation.cpp src/Shrink.cpp src/main.cpp src/Flash.hpp src/IFocusAnimation.hpp src/Shrink.hpp -o hyprfocus.so -g `pkg-config --cflags pixman-1 libdrm hyprland` -std=c++2b In file included from src/Flash.hpp:3, from src/Flash.cpp:1: src/IFocusAnimation.hpp:12:70: error: 'SConfigValue' has not been declared 12 | void addConfigValue(HANDLE pHandle, std::string name, SConfigValue sValue); | ^~~~~~~~~~~~ src/IFocusAnimation.hpp:13:5: error: 'SConfigValue' does not name a type 13 | SConfigValue* getConfigValue(HANDLE pHandle, std::string name); | ^~~~~~~~~~~~ src/Flash.cpp: In member function 'virtual void CFlash::init(void*, std::string)': src/Flash.cpp:10:77: error: C99 designator 'floatValue' outside aggregate initializer 10 | addConfigValue(pHandle, "flash_opacity", SConfigValue{.floatValue = 0.5f}); | ^ src/Flash.cpp:10:77: error: invalid use of incomplete type 'struct SConfigValue' In file included from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/managers/HookSystemManager.hpp:12, from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/protocols/Screencopy.hpp:8, from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/protocols/ToplevelExport.hpp:6, from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/managers/ProtocolManager.hpp:4, from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/Compositor.hpp:18, from src/Flash.cpp:3: /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:63:8: note: forward declaration of 'struct SConfigValue' 63 | struct SConfigValue; | ^~~~~~~~~~~~ src/Flash.cpp: In member function 'virtual void CFlash::onWindowFocus(CWindow*, void*)': src/Flash.cpp:16:25: error: 'getConfigValue' was not declared in this scope; did you mean 'HyprlandAPI::getConfigValue'? 16 | pWindow->m_fAlpha = getConfigValue(pHandle, "flash_opacity")->floatValue; | ^~~~~~~~~~~~~~ | HyprlandAPI::getConfigValue /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:133:37: note: 'HyprlandAPI::getConfigValue' declared here 133 | APICALL Hyprlang::CConfigValue* getConfigValue(HANDLE handle, const std::string& name); | ^~~~~~~~~~~~~~ src/Flash.cpp: In lambda function: src/Flash.cpp:20:100: error: 'class Hyprlang::CConfigValue' has no member named 'floatValue'; did you mean 'getValue'? 20 | pWindow->m_fAlpha = HyprlandAPI::getConfigValue(pHandle, "decoration:active_opacity")->floatValue; | ^~~~~~~~~~ | getValue In file included from src/IFocusAnimation.cpp:1: src/IFocusAnimation.hpp:12:70: error: 'SConfigValue' has not been declared 12 | void addConfigValue(HANDLE pHandle, std::string name, SConfigValue sValue); | ^~~~~~~~~~~~ src/IFocusAnimation.hpp:13:5: error: 'SConfigValue' does not name a type 13 | SConfigValue* getConfigValue(HANDLE pHandle, std::string name); | ^~~~~~~~~~~~ src/IFocusAnimation.cpp: In member function 'virtual void IFocusAnimation::init(void*, std::string)': src/IFocusAnimation.cpp:8:107: error: C99 designator 'strValue' outside aggregate initializer 8 | HyprlandAPI::addConfigValue(pHandle, configPrefix() + "in_bezier", SConfigValue{.strValue = "default"}); | ^ src/IFocusAnimation.cpp:8:107: error: invalid use of incomplete type 'struct SConfigValue' In file included from src/IFocusAnimation.cpp:3: /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:63:8: note: forward declaration of 'struct SConfigValue' 63 | struct SConfigValue; | ^~~~~~~~~~~~ src/IFocusAnimation.cpp:9:107: error: C99 designator 'strValue' outside aggregate initializer 9 | HyprlandAPI::addConfigValue(pHandle, configPrefix() + "out_bezier", SConfigValue{.strValue = "default"}); | ^ src/IFocusAnimation.cpp:9:107: error: invalid use of incomplete type 'struct SConfigValue' /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:63:8: note: forward declaration of 'struct SConfigValue' 63 | struct SConfigValue; | ^~~~~~~~~~~~ src/IFocusAnimation.cpp:11:102: error: C99 designator 'floatValue' outside aggregate initializer 11 | HyprlandAPI::addConfigValue(pHandle, configPrefix() + "in_speed", SConfigValue{.floatValue = 1.f}); | ^ src/IFocusAnimation.cpp:11:102: error: invalid use of incomplete type 'struct SConfigValue' /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:63:8: note: forward declaration of 'struct SConfigValue' 63 | struct SConfigValue; | ^~~~~~~~~~~~ src/IFocusAnimation.cpp:12:102: error: C99 designator 'floatValue' outside aggregate initializer 12 | HyprlandAPI::addConfigValue(pHandle, configPrefix() + "out_speed", SConfigValue{.floatValue = 5.f}); | ^ src/IFocusAnimation.cpp:12:102: error: invalid use of incomplete type 'struct SConfigValue' /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:63:8: note: forward declaration of 'struct SConfigValue' 63 | struct SConfigValue; | ^~~~~~~~~~~~ src/IFocusAnimation.cpp: In member function 'virtual void IFocusAnimation::onWindowFocus(CWindow*, void*)': src/IFocusAnimation.cpp:26:117: error: 'class Hyprlang::CConfigValue' has no member named 'strValue' 26 | m_sFocusInAnimConfig.internalBezier = HyprlandAPI::getConfigValue(pHandle, configPrefix() + "in_bezier")->strValue; | ^~~~~~~~ src/IFocusAnimation.cpp:27:116: error: 'class Hyprlang::CConfigValue' has no member named 'floatValue'; did you mean 'getValue'? 27 | m_sFocusInAnimConfig.internalSpeed = HyprlandAPI::getConfigValue(pHandle, configPrefix() + "in_speed")->floatValue; | ^~~~~~~~~~ | getValue src/IFocusAnimation.cpp:29:118: error: 'class Hyprlang::CConfigValue' has no member named 'strValue' 29 | m_sFocusOutAnimConfig.internalBezier = HyprlandAPI::getConfigValue(pHandle, configPrefix() + "out_bezier")->strValue; | ^~~~~~~~ src/IFocusAnimation.cpp:30:117: error: 'class Hyprlang::CConfigValue' has no member named 'floatValue'; did you mean 'getValue'? 30 | m_sFocusOutAnimConfig.internalSpeed = HyprlandAPI::getConfigValue(pHandle, configPrefix() + "out_speed")->floatValue; | ^~~~~~~~~~ | getValue src/IFocusAnimation.cpp: At global scope: src/IFocusAnimation.cpp:33:6: error: no declaration matches 'void IFocusAnimation::addConfigValue(void*, std::string, SConfigValue)' 33 | void IFocusAnimation::addConfigValue(HANDLE pHandle, std::string name, SConfigValue sValue) { | ^~~~~~~~~~~~~~~ src/IFocusAnimation.hpp:12:21: note: candidate is: 'void IFocusAnimation::addConfigValue(void*, std::string, int)' 12 | void addConfigValue(HANDLE pHandle, std::string name, SConfigValue sValue); | ^~~~~~~~~~~~~~ src/IFocusAnimation.hpp:7:7: note: 'class IFocusAnimation' defined here 7 | class IFocusAnimation { | ^~~~~~~~~~~~~~~ src/IFocusAnimation.cpp:37:15: error: no declaration matches 'SConfigValue* IFocusAnimation::getConfigValue(void*, std::string)' 37 | SConfigValue* IFocusAnimation::getConfigValue(HANDLE pHandle, std::string name) { | ^~~~~~~~~~~~~~~ src/IFocusAnimation.cpp:37:15: note: no functions named 'SConfigValue* IFocusAnimation::getConfigValue(void*, std::string)' src/IFocusAnimation.hpp:7:7: note: 'class IFocusAnimation' defined here 7 | class IFocusAnimation { | ^~~~~~~~~~~~~~~ In file included from src/Shrink.hpp:3, from src/Shrink.cpp:1: src/IFocusAnimation.hpp:12:70: error: 'SConfigValue' has not been declared 12 | void addConfigValue(HANDLE pHandle, std::string name, SConfigValue sValue); | ^~~~~~~~~~~~ src/IFocusAnimation.hpp:13:5: error: 'SConfigValue' does not name a type 13 | SConfigValue* getConfigValue(HANDLE pHandle, std::string name); | ^~~~~~~~~~~~ src/Shrink.hpp:10:5: error: invalid use of template-name 'CAnimatedVariable' without an argument list 10 | CAnimatedVariable m_sShrinkAnimation; | ^~~~~~~~~~~~~~~~~ src/Shrink.cpp: In member function 'virtual void CShrink::init(void*, std::string)': src/Shrink.cpp:10:81: error: C99 designator 'floatValue' outside aggregate initializer 10 | addConfigValue(pHandle, "shrink_percentage", SConfigValue{.floatValue = 0.5f}); | ^ src/Shrink.cpp:10:81: error: invalid use of incomplete type 'struct SConfigValue' In file included from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/managers/HookSystemManager.hpp:12, from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/protocols/Screencopy.hpp:8, from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/protocols/ToplevelExport.hpp:6, from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/managers/ProtocolManager.hpp:4, from /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/Compositor.hpp:18, from src/Shrink.cpp:3: /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:63:8: note: forward declaration of 'struct SConfigValue' 63 | struct SConfigValue; | ^~~~~~~~~~~~ src/Shrink.cpp: In member function 'virtual void CShrink::onWindowFocus(CWindow*, void*)': src/Shrink.cpp:20:35: error: 'getConfigValue' was not declared in this scope; did you mean 'HyprlandAPI::getConfigValue'? 20 | const auto SHRINKPERCENTAGE = getConfigValue(pHandle, "shrink_percentage")->floatValue; | ^~~~~~~~~~~~~~ | HyprlandAPI::getConfigValue /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:133:37: note: 'HyprlandAPI::getConfigValue' declared here 133 | APICALL Hyprlang::CConfigValue* getConfigValue(HANDLE handle, const std::string& name); | ^~~~~~~~~~~~~~ src/Shrink.cpp: In lambda function: src/Shrink.cpp:30:68: error: 'class CAnimatedVariable' has no member named 'goalv'; did you mean 'goal'? 30 | const auto GOALPOS = pWindow->m_vRealPosition.goalv(); | ^~~~~ | goal src/Shrink.cpp:31:64: error: 'class CAnimatedVariable' has no member named 'goalv'; did you mean 'goal'? 31 | const auto GOALSIZE = pWindow->m_vRealSize.goalv(); | ^~~~~ | goal src/Shrink.cpp:33:61: error: missing template arguments before '*' token 33 | const auto* PANIMATION = (CAnimatedVariable*)pShrinkAnimation; | ^ src/Shrink.cpp:33:62: error: expected primary-expression before ')' token 33 | const auto* PANIMATION = (CAnimatedVariable*)pShrinkAnimation; | ^ src/Shrink.cpp:36:99: error: 'class CAnimatedVariable' has no member named 'vec' 36 | pWindow->m_vRealPosition.setValue(GOALPOS + GOALSIZE / 2.f - pWindow->m_vRealSize.vec() / 2.f); | ^~~ src/Shrink.cpp: In lambda function: src/Shrink.cpp:40:36: error: missing template arguments before '*' token 40 | ((CAnimatedVariable*)pShrinkAnimation)->resetAllCallbacks(); | ^ src/Shrink.cpp:40:37: error: expected primary-expression before ')' token 40 | ((CAnimatedVariable*)pShrinkAnimation)->resetAllCallbacks(); | ^ src/Shrink.cpp:40:38: error: expected ')' before 'pShrinkAnimation' 40 | ((CAnimatedVariable*)pShrinkAnimation)->resetAllCallbacks(); | ~ ^~~~~~~~~~~~~~~~ | ) In file included from src/main.cpp:12: src/Shrink.hpp:10:5: error: invalid use of template-name 'CAnimatedVariable' without an argument list 10 | CAnimatedVariable m_sShrinkAnimation; | ^~~~~~~~~~~~~~~~~ src/main.cpp: In function 'void flashWindow(CWindow*)': src/main.cpp:22:128: error: 'class Hyprlang::CConfigValue' has no member named 'strValue' 22 | auto* const PTYPE = g_bMouseWasPressed ? &HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprfocus:mouse_focus_animation")->strValue | ^~~~~~~~ src/main.cpp:23:131: error: 'class Hyprlang::CConfigValue' has no member named 'strValue' 23 | : &HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprfocus:keyboard_focus_animation")->strValue; | ^~~~~~~~ src/main.cpp: In function 'void flashCurrentWindow(std::string)': src/main.cpp:29:111: error: 'class Hyprlang::CConfigValue' has no member named 'intValue'; did you mean 'getValue'? 29 | static auto* const PHYPRFOCUSENABLED = &HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprfocus:enabled")->intValue; | ^~~~~~~~ | getValue src/main.cpp: In function 'void onActiveWindowChange(void*, std::any)': src/main.cpp:43:115: error: 'class Hyprlang::CConfigValue' has no member named 'intValue'; did you mean 'getValue'? 43 | static auto* const PHYPRFOCUSENABLED = &HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprfocus:enabled")->intValue; | ^~~~~~~~ | getValue src/main.cpp: In function 'void onMouseButton(void*, std::any)': src/main.cpp:63:58: warning: comparison between 'enum wl_pointer_button_state' and 'enum wlr_button_state' [-Wenum-compare] 63 | g_bMouseWasPressed = PWLRMOUSEBUTTONEVENT->state == WLR_BUTTON_PRESSED; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ src/main.cpp: In function 'PLUGIN_DESCRIPTION_INFO pluginInit(void*)': src/main.cpp:76:121: error: C99 designator 'intValue' outside aggregate initializer 76 | HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprfocus:enabled", SConfigValue{.intValue = 0 }); | ^ src/main.cpp:76:121: error: invalid use of incomplete type 'struct SConfigValue' In file included from src/main.cpp:3: /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:63:8: note: forward declaration of 'struct SConfigValue' 63 | struct SConfigValue; | ^~~~~~~~~~~~ src/main.cpp:77:121: error: C99 designator 'strValue' outside aggregate initializer 77 | HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprfocus:keyboard_focus_animation", SConfigValue{.strValue = "flash"}); | ^ src/main.cpp:77:121: error: invalid use of incomplete type 'struct SConfigValue' /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:63:8: note: forward declaration of 'struct SConfigValue' 63 | struct SConfigValue; | ^~~~~~~~~~~~ src/main.cpp:78:121: error: C99 designator 'strValue' outside aggregate initializer 78 | HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprfocus:mouse_focus_animation", SConfigValue{.strValue = "flash"}); | ^ src/main.cpp:78:121: error: invalid use of incomplete type 'struct SConfigValue' /nix/store/42y0560kgag83dlkj3g1nb4iakkpkljd-hyprland-0.36.0+date=2024-03-13_3e67ee0-dev/include/hyprland/src/plugins/PluginAPI.hpp:63:8: note: forward declaration of 'struct SConfigValue' 63 | struct SConfigValue; | ^~~~~~~~~~~~ src/Flash.hpp:1:9: warning: #pragma once in main file 1 | #pragma once | ^~~~ In file included from src/Flash.hpp:3: src/IFocusAnimation.hpp:12:70: error: 'SConfigValue' has not been declared 12 | void addConfigValue(HANDLE pHandle, std::string name, SConfigValue sValue); | ^~~~~~~~~~~~ src/IFocusAnimation.hpp:13:5: error: 'SConfigValue' does not name a type 13 | SConfigValue* getConfigValue(HANDLE pHandle, std::string name); | ^~~~~~~~~~~~ src/IFocusAnimation.hpp:1:9: warning: #pragma once in main file 1 | #pragma once | ^~~~ src/IFocusAnimation.hpp:12:70: error: 'SConfigValue' has not been declared 12 | void addConfigValue(HANDLE pHandle, std::string name, SConfigValue sValue); | ^~~~~~~~~~~~ src/IFocusAnimation.hpp:13:5: error: 'SConfigValue' does not name a type 13 | SConfigValue* getConfigValue(HANDLE pHandle, std::string name); | ^~~~~~~~~~~~ src/Shrink.hpp:1:9: warning: #pragma once in main file 1 | #pragma once | ^~~~ In file included from src/Shrink.hpp:3: src/IFocusAnimation.hpp:12:70: error: 'SConfigValue' has not been declared 12 | void addConfigValue(HANDLE pHandle, std::string name, SConfigValue sValue); | ^~~~~~~~~~~~ src/IFocusAnimation.hpp:13:5: error: 'SConfigValue' does not name a type 13 | SConfigValue* getConfigValue(HANDLE pHandle, std::string name); | ^~~~~~~~~~~~ src/Shrink.hpp:10:5: error: invalid use of template-name 'CAnimatedVariable' without an argument list 10 | CAnimatedVariable m_sShrinkAnimation; | ^~~~~~~~~~~~~~~~~ make: *** [Makefile:4: all] Error 1 ```
vale981 commented 7 months ago

see https://github.com/pyt0xic/hyprfocus and https://github.com/VortexCoyote/hyprfocus/issues/18

pyt0xic commented 7 months ago

I am not very familiar with Nix, so if there is anything I need to update in my fork, let me know and I'll see what I can do.