Open 3l0w opened 1 month ago
tag me for review when ready
hey, uh the new version did not compile with the following error:
[ 22%] Building CXX object CMakeFiles/xdg-desktop-portal-hyprland.dir/src/core/PortalManager.cpp.o
/home/system/xdg-desktop-portal-hyprland/src/core/PortalManager.cpp: In member function ‘void CPortalManager::init()’:
/home/system/xdg-desktop-portal-hyprland/src/core/PortalManager.cpp:211:58: error: no matching function for call to ‘createSessionBusConnection(const char [45])’
211 | m_pConnection = sdbus::createSessionBusConnection("org.freedesktop.impl.portal.desktop.hyprland");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/sdbus-c++/sdbus-c++.h:27,
from /home/system/xdg-desktop-portal-hyprland/src/core/PortalManager.hpp:4,
from /home/system/xdg-desktop-portal-hyprland/src/core/PortalManager.cpp:1:
/usr/include/sdbus-c++/IConnection.h:481:55: note: candidate: ‘std::unique_ptr<sdbus::IConnection> sdbus::createSessionBusConnection()’
481 | [[nodiscard]] std::unique_ptr<sdbus::IConnection> createSessionBusConnection();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sdbus-c++/IConnection.h:481:55: note: candidate expects 0 arguments, 1 provided
/usr/include/sdbus-c++/IConnection.h:491:55: note: candidate: ‘std::unique_ptr<sdbus::IConnection> sdbus::createSessionBusConnection(const ServiceName&)’
491 | [[nodiscard]] std::unique_ptr<sdbus::IConnection> createSessionBusConnection(const ServiceName& name);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sdbus-c++/IConnection.h:491:101: note: no known conversion for argument 1 from ‘const char [45]’ to ‘const sdbus::ServiceName&’ {aka ‘const sdbus::BusName&’}
491 | [[nodiscard]] std::unique_ptr<sdbus::IConnection> createSessionBusConnection(const ServiceName& name);
| ~~~~~~~~~~~~~~~~~~~^~~~
/home/system/xdg-desktop-portal-hyprland/src/core/PortalManager.cpp: In member function ‘void CPortalManager::startEventLoop()’:
/home/system/xdg-desktop-portal-hyprland/src/core/PortalManager.cpp:366:35: error: ‘class sdbus::IConnection’ has no member named ‘processPendingRequest’; did you mean ‘processPendingEvent’?
366 | while (m_pConnection->processPendingRequest()) {
| ^~~~~~~~~~~~~~~~~~~~~
| processPendingEvent
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-address-of-temporary’ may have been intended to silence earlier diagnostics
make[2]: *** [CMakeFiles/xdg-desktop-portal-hyprland.dir/build.make:125: CMakeFiles/xdg-desktop-portal-hyprland.dir/src/core/PortalManager.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:102: CMakeFiles/xdg-desktop-portal-hyprland.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
-- Install configuration: ""
CMake Error at build/hyprland-share-picker/cmake_install.cmake:52 (file):
file INSTALL cannot find
"/home/system/xdg-desktop-portal-hyprland/build/hyprland-share-picker/hyprland-share-picker":
No such file or directory.
Call Stack (most recent call first):
build/cmake_install.cmake:47 (include)
I am aware, it is due to the sdbus version bumb, it should be good now
I am having this:
In file included from /home/luke/xdg-desktop-portal-hyprland/src/core/PortalManager.hpp:11,
from /home/luke/xdg-desktop-portal-hyprland/src/core/PortalManager.cpp:1:
/home/luke/xdg-desktop-portal-hyprland/src/core/../portals/InputCapture.hpp:2:10: fatal error: dbusDefines.hpp: No such file or directory
2 | #include "dbusDefines.hpp"
| ^~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/xdg-desktop-portal-hyprland.dir/build.make:125: CMakeFiles/xdg-desktop-portal-hyprland.dir/src/core/PortalManager.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:102: CMakeFiles/xdg-desktop-portal-hyprland.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
-- Install configuration: ""
-- Installing: /usr/bin/hyprland-share-picker
-- Up-to-date: /usr/bin/hyprland-share-picker
CMake Error at build/cmake_install.cmake:81 (file):
file INSTALL cannot find
"/home/luke/xdg-desktop-portal-hyprland/build/xdg-desktop-portal-hyprland":
No such file or directory.
I pushed the fix
i gave feedback in https://github.com/hyprwm/Hyprland/pull/7919
Hyprland 0.44.0 built from branch at commit 189f6152f1354ae936cafffa7b7dd62af8dd5bd4 (input-capture: fix rebase issues).
Deskflow:
[2024-11-05T00:39:23] ERROR: failed to initialize input capture session, quitting: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.InputCapture” on object at path /org/freedesktop/portal/desktop
Is this currently working?
it works for me. restart ur xdg-desktop-portals after installation
Also make sure that the hyprland.portal file has been copied over /usr/share/xdg-desktop-portal/portals
also, as an update, still consistently have my modifiers always held down on the client and have to restart input leap/the connection(stop then start again) to fix
It seems to work fine now as the server. org.freedesktop.portal.RemoteDesktop
is still needed for the client though.
also @3l0w, input capture should not work in ext-session-lock. i.e. rn in hyprlock, you can still control other device via input leap
It seems to work fine now as the server.
org.freedesktop.portal.RemoteDesktop
is still needed for the client though.
dont know if this will work: https://github.com/waycrate/xdg-desktop-portal-luminous since hyprland is no longer wlroots. but it does have org.freedesktop.portal.RemoteDesktop
Describe your PR, what does it fix/add?
This PR implements the input capture desktop portal with the new protocol defined in hyprwm/hyprland-protocols#8.
Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
Nothing to declare yet.
Is it ready for merging, or does it need work?
It work when used with hyprwm/Hyprland#7919, but still need work, like sending the keyboard layout, or security concerns.