DreamMaoMao/hycov

Error while building (libinput.h: No such file)

Closed this issue · 10 comments

OS: OpenSUSE Tumbleweed
Installed latest Hyprland from git
Full log: pastebin.com/LLdKVXtF

Maybe this should be a separate issue, but I want to mention that I also can't compile with the latest Hyprland https://github.com/hyprwm/Hyprland/tree/cbadf3e3f31ab5ad5d192daac5f2ca930d08b8fb:

error: 'class CCompositor' has no member named 'windowFromCursor'

Although I was able to compile with Hyprland v0.34.0

Logs (NixOs)
../src/globaleventhook.cpp: In function 'bool isKeyReleaseToggleExitOverviewHit(wlr_keyboard_key_event*, SKeyboard*)':
../src/globaleventhook.cpp:39:121: warning: comparison of integer expressions of different signedness: 'int' and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare
]
   39 |   if (isNumber(g_hycov_alt_replace_key) && std::stoi(g_hycov_alt_replace_key) > 9 && std::stoi(g_hycov_alt_replace_key) == (e->keycode + 8)) {
      |                                                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:41:152: warning: comparison of integer expressions of different signedness: 'int' and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare
]
   41 |   } else if (g_hycov_alt_replace_key.find("code:") == 0 && isNumber(g_hycov_alt_replace_key.substr(5)) && std::stoi(g_hycov_alt_replace_key.substr(5)) =
= (e->keycode + 8)) {
      |                                                                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp: In function 'void hkCInputManager_onMouseButton(void*, wlr_pointer_button_event*)':
../src/globaleventhook.cpp:149:44: error: 'class CCompositor' has no member named 'windowFromCursor'
  149 |     CWindow *pClickWindow = g_pCompositor->windowFromCursor();
      |                                            ^~~~~~~~~~~~~~~~
../src/globaleventhook.cpp: In function 'void registerGlobalEventHook()':
../src/globaleventhook.cpp:318:79: warning: converting from 'void (CInputManager::*)(wlr_pointer_swipe_begin_event*)' to 'void*' [-Wpmf-conversions]
  318 |   g_hycov_pOnSwipeBeginHook = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CInputManager::onSwipeBegin, (void*)&hkOnSwipeBegin);
      |                                                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:319:77: warning: converting from 'void (CInputManager::*)(wlr_pointer_swipe_end_event*)' to 'void*' [-Wpmf-conversions]
  319 |   g_hycov_pOnSwipeEndHook = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CInputManager::onSwipeEnd, (void*)&hkOnSwipeEnd);
      |                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:320:80: warning: converting from 'void (CInputManager::*)(wlr_pointer_swipe_update_event*)' to 'void*' [-Wpmf-conversions]
  320 |   g_hycov_pOnSwipeUpdateHook = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CInputManager::onSwipeUpdate, (void*)&hkOnSwipeUpdate);
      |                                                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:323:78: warning: converting from 'void (CWindow::*)()' to 'void*' [-Wpmf-conversions]
  323 |   g_hycov_pCWindow_onUnmap = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CWindow::onUnmap, (void*)&hkCWindow_onUnmap);
      |                                                                              ^~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:326:76: warning: converting from 'void (CWorkspace::*)(bool, bool, bool)' to 'void*' [-Wpmf-conversions]
  326 |   g_hycov_pStartAnimHook = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CWorkspace::startAnim, (void*)&hkStartAnim);
      |                                                                            ^~~~~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:330:80: warning: converting from 'void (CInputManager::*)(wlr_keyboard_key_event*, SKeyboard*)' to 'void*' [-Wpmf-conversions]
  330 |   g_hycov_pOnKeyboardKeyHook = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CInputManager::onKeyboardKey, (void*)&hkOnKeyboardKey);
      |                                                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:333:99: warning: converting from 'void (CHyprDwindleLayout::*)(const int&)' to 'void*' [-Wpmf-conversions]
  333 |   g_hycov_pHyprDwindleLayout_recalculateMonitor = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CHyprDwindleLayout::recalculateMonitor, (void*)&hkHyp
rDwindleLayout_recalculateMonitor);
      |                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:334:98: warning: converting from 'void (CHyprMasterLayout::*)(const int&)' to 'void*' [-Wpmf-conversions]
  334 |   g_hycov_pHyprMasterLayout_recalculateMonitor = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CHyprMasterLayout::recalculateMonitor, (void*)&hkHyprM
asterLayout_recalculateMonitor);
      |                                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:335:98: warning: converting from 'void (CHyprDwindleLayout::*)(CWindow*)' to 'void*' [-Wpmf-conversions]
  335 |   g_hycov_pHyprDwindleLayout_recalculateWindow = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CHyprDwindleLayout::recalculateWindow, (void*)&hkHyprD
windleLayout_recalculateWindow);
      |                                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:336:102: warning: converting from 'void (SDwindleNodeData::*)(bool, bool, bool)' to 'void*' [-Wpmf-conversions]
  336 |   g_hycov_pSDwindleNodeData_recalcSizePosRecursive = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&SDwindleNodeData::recalcSizePosRecursive, (void*)&
hkSDwindleNodeData_recalcSizePosRecursive);
      |                                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/globaleventhook.cpp:340:90: warning: converting from 'void (CInputManager::*)(wlr_pointer_button_event*)' to 'void*' [-Wpmf-conversions]
  340 |   g_hycov_pCInputManager_onMouseButton = HyprlandAPI::createFunctionHook(PHANDLE, (void*)&CInputManager::onMouseButton, (void*)&hkCInputManager_onMouseB
utton);
      |                                                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2/5] Compiling C++ object libhycov.so.p/src_main.cpp.o
[3/5] Compiling C++ object libhycov.so.p/src_OvGridLayout.cpp.o
[4/5] Compiling C++ object libhycov.so.p/src_dispatchers.cpp.o
ninja: build stopped: subcommand failed.

Maybe this should be a separate issue, but I want to mention that I also can't compile with the latest Hyprland https://github.com/hyprwm/Hyprland/tree/cbadf3e3f31ab5ad5d192daac5f2ca930d08b8fb:

error: 'class CCompositor' has no member named 'windowFromCursor'

Although I was able to compile with Hyprland v0.34.0

Logs (NixOs)

this commit broken something ,
hyprwm/Hyprland@cbadf3e

have be fixed in :

d07068b

@DreamMaoMao sorry if I missed something but what is the solution to my issue?

pastebin.com/LLdKVXtF

Your problem is not a problem with hcov itself. This is a common compilation problem. You need to install the development library pointed out in the error report.

pastebin.com/LLdKVXtF

Your problem is not a problem with hcov itself. This is a common compilation problem. You need to install the development library pointed out in the error report.

I thought so, but libinput is already a requirement for Hyprland, and it is installed on my system
Packages I have: libinput-devel, libinput-tools (installed that just in case), libinput-udev, libinput10, xf86-input-libinput, xf86-input-libinput-devel

Can you compile Hyprland without the plugin?

Can you compile Hyprland without the plugin?

Sorry @woojiq, I don't think that I follow you, wdym by 'without the plugin'?

If your environment is messy, I recommend using hyprpm to install plugin.

$ hyprpm update
$ hyprpm add https://github.com/DreamMaoMao/hycov
$ hyprpm enable hycov

add this to your hyprland.conf and relogin hyprland

exec-once = hyprpm reload 

refer:
https://wiki.hyprland.org/Plugins/Using-Plugins/#hyprpm

Does not seem to work @DreamMaoMao, it gives the same error

sorry. Maybe you're having a problem finding headers, and I don't have any ideas.