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
```
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:
Erasing the
plugins = [ ... ];
line means I can compile properly.Enabling the plugins line means I see:
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