KZDKM / Hyprspace

Workspace overview plugin for Hyprland
GNU General Public License v2.0
285 stars 9 forks source link

Hyprland 0.40.0 compatibility #36

Closed gitttyyy closed 1 week ago

gitttyyy commented 2 weeks ago

image I like this plugin,please help

kashw2 commented 2 weeks ago

Possibly related is this build log from my machine:

nix log /nix/store/l1d7pw4lk69xb54r7v352y9dz0s2clgx-Hyprspace-0.1+date=2024-04-26_cbdac93.drv

/nix/store/nw6sp0xjb83svy8a5d6i46islcv3l6sm-gcc-13.2.0/include/c++/13.2.0/bits/stl_stack.h:382:5: note:   template argument deduction/substitution failed:
../src/Render.cpp:254:102: note:   'PHLWINDOW' {aka 'std::shared_ptr<CWindow>'} is not derived from 'const std::stack<_Tp, _Seq>'
  254 |                 if (w->m_pWorkspace == ws && w->m_bIsFloating && ws->getLastFocusedWindow() != w.get()) {
      |                                                                                                      ^
../src/Render.cpp:270:58: error: cannot convert 'PHLWINDOW' {aka 'std::shared_ptr<CWindow>'} to 'CWindow*' in initialization
  270 |                     CWindow* w = ws->getLastFocusedWindow();
      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~^~
      |                                                          |
      |                                                          PHLWINDOW {aka std::shared_ptr<CWindow>}
[2/6] Compiling C++ object libHyprspace.so.p/src_Overview.cpp.o
FAILED: libHyprspace.so.p/src_Overview.cpp.o 
g++ -IlibHyprspace.so.p -I. -I.. -I/nix/store/l3lbszpq29yk3dgysqi0dl55s0yjc3kd-hyprland-0.39.1+date=2024-04-27_2e76376-dev/include -I/nix/store/l3lbszpq29yk3dgysqi0dl55s0yjc3kd-hyprland-0.39>
../src/Overview.cpp: In member function 'void CHyprspaceWidget::show()':
../src/Overview.cpp:43:77: error: invalid cast from type 'const std::shared_ptr<CWindow>' to type 'uint64_t' {aka 'long unsigned int'}
   43 |                     prevFullscreen.emplace_back(std::make_tuple((uint32_t)(((uint64_t)w) & 0xFFFFFFFF), ws->m_efFullscreenMode));
      |                                                                             ^~~~~~~~~~~
[3/6] Compiling C++ object libHyprspace.so.p/src_main.cpp.o
FAILED: libHyprspace.so.p/src_main.cpp.o 
g++ -IlibHyprspace.so.p -I. -I.. -I/nix/store/l3lbszpq29yk3dgysqi0dl55s0yjc3kd-hyprland-0.39.1+date=2024-04-27_2e76376-dev/include -I/nix/store/l3lbszpq29yk3dgysqi0dl55s0yjc3kd-hyprland-0.39>
../src/main.cpp: In function 'void onRender(void*, SCallbackInfo&, std::any)':
../src/main.cpp:121:61: error: no match for 'operator&&' (operand types are 'PHLWINDOWREF' {aka 'std::weak_ptr<CWindow>'} and 'bool')
  121 |                 if (g_pInputManager->currentlyDraggedWindow && widget->isActive()) {
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~
      |                                      |                                         |
      |                                      PHLWINDOWREF {aka std::weak_ptr<CWindow>} bool
../src/main.cpp:121:61: note: candidate: 'operator&&(bool, bool)' (built-in)
  121 |                 if (g_pInputManager->currentlyDraggedWindow && widget->isActive()) {
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
../src/main.cpp:121:61: note:   no known conversion for argument 1 from 'PHLWINDOWREF' {aka 'std::weak_ptr<CWindow>'} to 'bool'
../src/main.cpp:122:71: error: base operand of '->' has non-pointer type 'PHLWINDOWREF' {aka 'std::weak_ptr<CWindow>'}
  122 |                     g_oAlpha = g_pInputManager->currentlyDraggedWindow->m_fActiveInactiveAlpha.goal();
      |                                                                       ^~
../src/main.cpp:123:60: error: base operand of '->' has non-pointer type 'PHLWINDOWREF' {aka 'std::weak_ptr<CWindow>'}
  123 |                     g_pInputManager->currentlyDraggedWindow->m_fActiveInactiveAlpha.setValueAndWarp(0); // HACK: hide dragged window for the actual pass
      |                                                            ^~
../src/main.cpp:138:36: error: no match for 'operator&&' (operand types are 'bool' and 'PHLWINDOWREF' {aka 'std::weak_ptr<CWindow>'})
  138 |                 if (g_oAlpha != -1 && g_pInputManager->currentlyDraggedWindow) {
      |                     ~~~~~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                              |                         |
      |                              bool                      PHLWINDOWREF {aka std::weak_ptr<CWindow>}
../src/main.cpp:138:36: note: candidate: 'operator&&(bool, bool)' (built-in)
  138 |                 if (g_oAlpha != -1 && g_pInputManager->currentlyDraggedWindow) {
      |                     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/main.cpp:138:36: note:   no known conversion for argument 2 from 'PHLWINDOWREF' {aka 'std::weak_ptr<CWindow>'} to 'bool'
../src/main.cpp:139:60: error: base operand of '->' has non-pointer type 'PHLWINDOWREF' {aka 'std::weak_ptr<CWindow>'}
  139 |                     g_pInputManager->currentlyDraggedWindow->m_fActiveInactiveAlpha.setValueAndWarp(Config::dragAlpha);
      |                                                            ^~
../src/main.cpp:142:93: error: cannot convert 'PHLWINDOWREF' {aka 'std::weak_ptr<CWindow>'} to 'CWindow*' in argument passing
  142 |                     (*(tRenderWindow)pRenderWindow)(g_pHyprRenderer.get(), g_pInputManager->currentlyDraggedWindow, widget->getOwner(), &time, true, RENDER_PASS_MAIN, false, false);
      |                                                                            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
      |                                                                                             |
      |                                                                                             PHLWINDOWREF {aka std::weak_ptr<CWindow>}
../src/main.cpp:143:60: error: base operand of '->' has non-pointer type 'PHLWINDOWREF' {aka 'std::weak_ptr<CWindow>'}
  143 |                     g_pInputManager->currentlyDraggedWindow->m_fActiveInactiveAlpha.setValueAndWarp(g_oAlpha);
      |                                                            ^~
[4/6] Compiling C++ object libHyprspace.so.p/src_Layout.cpp.o
ninja: build stopped: subcommand failed.
sakarie9 commented 2 weeks ago

Should be https://github.com/hyprwm/Hyprland/commit/bca7804bb6e1bf5ce5a99b9ae4806be25e36993c

Many plugins breaks now with latest hyprland-git

KZDKM commented 2 weeks ago

Should be https://github.com/hyprwm/Hyprland/commit/bca7804bb6e1bf5ce5a99b9ae4806be25e36993c

Thats right, fucking hell... I will try to fix it later today, but expect further breakage as I'd expect there will be more data structure refactoring coming.

Note that this plugin supports main release 0.39.0 and 0.39.1 and does not require hyprland-git anymore, perhaps revert to 0.39.1 for now.

nine7nine commented 2 weeks ago

the last good commit before build failures / plugin breakage with hyprland-git is:

f94264928a8ab4da8759d4ded25a46af44451d38

At least on Arch, I edited the hyprland-git PKGBUILD, replacing in source=():

git+https://github.com/hyprwm/Hyprland.git

with

git+https://github.com/hyprwm/Hyprland.git#commit=f94264928a8ab4da8759d4ded25a46af44451d38"

That way I avoid having to remove/replace -git packages, and I can just wait for the dust to settle. Not sure about Nix - but I would assume there must be a similar method for building at a certain commit?

KZDKM commented 2 weeks ago

At least on Arch, I edited the hyprland-git PKGBUILD, replacing in source=():

I tried working on this issue yesterday but hyprland-git on AUR just doesn't build on my end at all... Still on 0.39.1 but I think 0.39.2 is right around the corner.

nine7nine commented 2 weeks ago

hmmm... I'd assume one of the other hyprland-related git packages needs to be using certain/relative commits or something... but yeah, 0.39.2 isn't far off -- so we might as well wait

KZDKM commented 1 week ago

Resolved with https://github.com/KZDKM/Hyprspace/commit/1b3e07c7ac9ecb4e3486467a2bfb3267ee5043a2.

PS: hyprpm seems to be borked? https://github.com/hyprwm/Hyprland/issues/5807