pyt0xic / hyprfocus

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

Fails to build for hyprland v0.40.* #4

Closed Seme4eg closed 1 month ago

Seme4eg commented 2 months ago

❯ hyprpm add https://github.com/pyt0xic/hyprfocus ✔ adding a new plugin repository from https://github.com/pyt0xic/hyprfocus MAKE SURE that you trust the authors. DO NOT install random plugins without verifying the code and author. Are you sure? [Y/n] y

→ Cloning https://github.com/pyt0xic/hyprfocus
✔ cloned
✔ found hyprpm manifest
✔ parsed manifest, found 1 plugins:
→ hyprfocus by VortexCoyote, OakleyCord, vaxerski, DRAGONTOS, pyt0xic version
✔ Hyprland headers OK
→ Building hyprfocus
✖ Plugin hyprfocus failed to build.
This likely means that the plugin is either outdated, not yet available for your version, or broken. If you are on -git, update first. Try re-running with -v to see more verbose output.

✔ all plugins built
✔ installed repository
✔ you can now enable the plugin(s) with hyprpm enable
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5 / 5 Done!
hyprpm add https://github.com/pyt0xic/hyprfocus 13.85s user 0.51s system 77% cpu 18.538 total

❯ hyprpm enable hyprfocus ✖ Couldn't enable plugin (missing?)

❯ hyprpm list → Repository hyprfocus: │ Plugin hyprfocus └─ enabled: Plugin failed to build

avih7531 commented 2 months ago

Here is the verbose output:


Building plugin(s)[v] shell returned:  -> cd /tmp/hyprpm/aviherman && PKG_CONFIG_PATH="/home/aviherman/.local/share/hyprpm/headersRoot/share/pkgconfig" make all
g++ -O2 -shared -fPIC --no-gnu-unique src/Flash.cpp src/IFocusAnimation.cpp src/main.cpp src/Shrink.cpp  -o hyprfocus.so `pkg-config --cflags pixman-1 libdrm hyprland` -std=c++2b
src/main.cpp: In function ‘PLUGIN_DESCRIPTION_INFO pluginInit(void*)’:
src/main.cpp:187:39: warning: ignoring return value of ‘std::shared_ptr<std::function<void(void*, SCallbackInfo&, std::any)> > HyprlandAPI::registerCallbackDynamic(void*, const std::string&, HOOK_CALLBACK_FN)’, declared with attribute ‘nodiscard’ [-Wunused-result]
  187 |   HyprlandAPI::registerCallbackDynamic(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  188 |       PHANDLE, "activeWindow",
      |       ~~~~~~~~~~~~~~~~~~~~~~~~
  189 |       [&](void *self, SCallbackInfo &info, std::any data) {
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  190 |         onActiveWindowChange(self, data);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  191 |       });
      |       ~~
In file included from src/Globals.hpp:4,
                 from src/main.cpp:4:
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/plugins/PluginAPI.hpp:147:61: note: declared here
  147 |     APICALL [[nodiscard]] std::shared_ptr<HOOK_CALLBACK_FN> registerCallbackDynamic(HANDLE handle, const std::string& event, HOOK_CALLBACK_FN fn);
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~~
src/main.cpp:194:39: warning: ignoring return value of ‘std::shared_ptr<std::function<void(void*, SCallbackInfo&, std::any)> > HyprlandAPI::registerCallbackDynamic(void*, const std::string&, HOOK_CALLBACK_FN)’, declared with attribute ‘nodiscard’ [-Wunused-result]
  194 |   HyprlandAPI::registerCallbackDynamic(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  195 |       PHANDLE, "mouseButton",
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  196 |       [&](void *self, SCallbackInfo &info, std::any data) {
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  197 |         onMouseButton(self, data);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~
  198 |       });
      |       ~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/plugins/PluginAPI.hpp:147:61: note: declared here
  147 |     APICALL [[nodiscard]] std::shared_ptr<HOOK_CALLBACK_FN> registerCallbackDynamic(HANDLE handle, const std::string& event, HOOK_CALLBACK_FN fn);
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~~
src/Shrink.cpp: In member function ‘virtual void CShrink::onWindowFocus(CWindow*, void*)’:
src/Shrink.cpp:39:28: error: no matching function for call to ‘CAnimatedVariable<float>::create(float, SAnimationPropertyConfig*, CWindow*&, AVARDAMAGEPOLICY)’
   39 |   m_sShrinkAnimation.create(1.0f, &m_sFocusInAnimConfig, pWindow,
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 |                             AVARDAMAGE_ENTIRE);
      |                             ~~~~~~~~~~~~~~~~~~
In file included from /home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/Window.hpp:5,
                 from /home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/WLClasses.hpp:5,
                 from /home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/ConfigManager.hpp:16,
                 from src/IFocusAnimation.hpp:6,
                 from src/Shrink.hpp:1,
                 from src/Shrink.cpp:1:
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:211:10: note: candidate: ‘void CAnimatedVariable<VarType>::create(const VarType&, SAnimationPropertyConfig*, PHLWINDOW, AVARDAMAGEPOLICY) [with VarType = float; PHLWINDOW = std::shared_ptr<CWindow>]’
  211 |     void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, PHLWINDOW pWindow, AVARDAMAGEPOLICY policy) {
      |          ^~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:211:88: note:   no known conversion for argument 3 from ‘CWindow*’ to ‘PHLWINDOW’ {aka ‘std::shared_ptr<CWindow>’}
  211 |     void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, PHLWINDOW pWindow, AVARDAMAGEPOLICY policy) {
      |                                                                              ~~~~~~~~~~^~~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:216:10: note: candidate: ‘void CAnimatedVariable<VarType>::create(const VarType&, SAnimationPropertyConfig*, PHLLS, AVARDAMAGEPOLICY) [with VarType = float; PHLLS = std::shared_ptr<CLayerSurface>]’
  216 |     void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, PHLLS pLayer, AVARDAMAGEPOLICY policy) {
      |          ^~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:216:84: note:   no known conversion for argument 3 from ‘CWindow*’ to ‘PHLLS’ {aka ‘std::shared_ptr<CLayerSurface>’}
  216 |     void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, PHLLS pLayer, AVARDAMAGEPOLICY policy) {
      |                                                                              ~~~~~~^~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:221:10: note: candidate: ‘void CAnimatedVariable<VarType>::create(const VarType&, SAnimationPropertyConfig*, PHLWORKSPACE, AVARDAMAGEPOLICY) [with VarType = float; PHLWORKSPACE = std::shared_ptr<CWorkspace>]’
  221 |     void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, PHLWORKSPACE pWorkspace, AVARDAMAGEPOLICY policy) {
      |          ^~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:221:91: note:   no known conversion for argument 3 from ‘CWindow*’ to ‘PHLWORKSPACE’ {aka ‘std::shared_ptr<CWorkspace>’}
  221 |     void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, PHLWORKSPACE pWorkspace, AVARDAMAGEPOLICY policy) {
      |                                                                              ~~~~~~~~~~~~~^~~~~~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:226:10: note: candidate: ‘void CAnimatedVariable<VarType>::create(const VarType&, SAnimationPropertyConfig*, AVARDAMAGEPOLICY) [with VarType = float]’
  226 |     void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, AVARDAMAGEPOLICY policy) {
      |          ^~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:226:10: note:   candidate expects 3 arguments, 4 provided
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:74:10: note: candidate: ‘void CBaseAnimatedVariable::create(SAnimationPropertyConfig*, AVARDAMAGEPOLICY)’
   74 |     void create(SAnimationPropertyConfig* pAnimConfig, AVARDAMAGEPOLICY policy);
      |          ^~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:74:10: note:   candidate expects 2 arguments, 4 provided
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:73:10: note: candidate: ‘void CBaseAnimatedVariable::create(SAnimationPropertyConfig*, PHLWORKSPACE, AVARDAMAGEPOLICY)’
   73 |     void create(SAnimationPropertyConfig* pAnimConfig, PHLWORKSPACE pWorkspace, AVARDAMAGEPOLICY policy);
      |          ^~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:73:10: note:   candidate expects 3 arguments, 4 provided
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:72:10: note: candidate: ‘void CBaseAnimatedVariable::create(SAnimationPropertyConfig*, PHLLS, AVARDAMAGEPOLICY)’
   72 |     void create(SAnimationPropertyConfig* pAnimConfig, PHLLS pLayer, AVARDAMAGEPOLICY policy);
      |          ^~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:72:10: note:   candidate expects 3 arguments, 4 provided
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:71:10: note: candidate: ‘void CBaseAnimatedVariable::create(SAnimationPropertyConfig*, PHLWINDOW, AVARDAMAGEPOLICY)’
   71 |     void create(SAnimationPropertyConfig* pAnimConfig, PHLWINDOW pWindow, AVARDAMAGEPOLICY policy);
      |          ^~~~~~
/home/aviherman/.local/share/hyprpm/headersRoot/include/hyprland/src/config/../helpers/../desktop/../helpers/AnimatedVariable.hpp:71:10: note:   candidate expects 3 arguments, 4 provided
make: *** [Makefile:4: all] Error 1

✖ Plugin hyprfocus failed to build.
  This likely means that the plugin is either outdated, not yet available for your version, or broken.
  If you are on -git, update first.
  Try re-running with -v to see more verbose output.

✔ all plugins built
✔ installed repository
✔ you can now enable the plugin(s) with hyprpm enable
```━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Done!
obmutescences commented 2 months ago

Looking forward to the update.

obmutescences commented 2 months ago

thanks for fixed. lastest commit build no errors, but shrink not working.

avih7531 commented 2 months ago

The plugin compiles and I have it loaded with hyprpm, but I'm not getting any effects at all with this config:

plugin {
   hyprfocus {
        enabled = yes
        animate_floating = yes
        animate_workspacechange = yes
        focus_animation = flash 
        # Beziers for focus animations
        bezier = bezIn, 0.5,0.0,1.0,0.5
        bezier = bezOut, 0.0,0.5,0.5,1.0
        bezier = overshot, 0.05, 0.9, 0.1, 1.05
        bezier = smoothOut, 0.36, 0, 0.66, -0.56
        bezier = smoothIn, 0.25, 1, 0.5, 1
        bezier = realsmooth, 0.28,0.29,.69,1.08
        # Flash settings
        flash {
            flash_opacity = 0.5 
            in_bezier = realsmooth
            in_speed = 0.5
            out_bezier = realsmooth
            out_speed = 3
        }
        # Shrink settings
        shrink {
            shrink_percentage = 0.95
            in_bezier = realsmooth
            in_speed = 1
            out_bezier = realsmooth
            out_speed = 2
        }
}
}
avih7531 commented 2 months ago

Looks like it compiles, but I've tested all animations and it looks like they all refuse to happen

daxisunder commented 2 months ago

Same with me, it builds, hyprpm lists it as enabled but it just doesn't work.

Iliageorgiev commented 1 month ago

Same here

pyt0xic commented 1 month ago

@daxisunder Can you please test again, I've updated the plugin with Hyprland's API changes.

daxisunder commented 1 month ago

@pyt0xic Works as it should, thank you.