test input portal

This commit is contained in:
Kopatz
2025-09-09 15:43:49 +02:00
parent 5711a54ef4
commit b030ef4675

View File

@@ -27,6 +27,73 @@ index 196c2e78..42a3df76 100644
height = 10, height = 10,
width = 10, width = 10,
''; '';
#TODO: sending keyboard stuff requires converting from keysym -> keycode. idk how to do that
testing-patch = ''
diff --git i/src/portals/RemoteDesktop.cpp w/src/portals/RemoteDesktop.cpp
index 551550f..cc97d02 100644
--- i/src/portals/RemoteDesktop.cpp
+++ w/src/portals/RemoteDesktop.cpp
@@ -29,7 +29,7 @@ CRemoteDesktopPortal::CRemoteDesktopPortal() {
return onStart(o1, o2, s1, s2, m);
}),
sdbus::registerMethod("NotifyPointerMotion")
- .implementedAs([this](sdbus::ObjectPath o, double d1, double d2, std::unordered_map<std::string, sdbus::Variant> m) {
+ .implementedAs([this](sdbus::ObjectPath o, std::unordered_map<std::string, sdbus::Variant> m, double d1, double d2) {
return onNotifyPointerMotion(o, d1, d2, m);
}),
sdbus::registerMethod("NotifyPointerMotionAbsolute")
@@ -37,11 +37,11 @@ CRemoteDesktopPortal::CRemoteDesktopPortal() {
return onNotifyPointerMotionAbsolute(o, u, d1, d2, m);
}),
sdbus::registerMethod("NotifyPointerButton")
- .implementedAs([this](sdbus::ObjectPath o, int i, unsigned int u, std::unordered_map<std::string, sdbus::Variant> m) {
+ .implementedAs([this](sdbus::ObjectPath o, std::unordered_map<std::string, sdbus::Variant> m, int i, unsigned int u) {
return onNotifyPointerButton(o, i, u, m);
}),
sdbus::registerMethod("NotifyPointerAxis")
- .implementedAs([this](sdbus::ObjectPath o, double d1, double d2, std::unordered_map<std::string, sdbus::Variant> m) {
+ .implementedAs([this](sdbus::ObjectPath o, std::unordered_map<std::string, sdbus::Variant> m, double d1, double d2) {
return onNotifyPointerAxis(o, d1, d2, m);
}),
sdbus::registerMethod("NotifyPointerAxisDiscrete")
@@ -53,7 +53,7 @@ CRemoteDesktopPortal::CRemoteDesktopPortal() {
return onNotifyKeyboardKeycode(o, i, u, m);
}),
sdbus::registerMethod("NotifyKeyboardKeysym")
- .implementedAs([this](sdbus::ObjectPath o, int i, unsigned int u, std::unordered_map<std::string, sdbus::Variant> m) {
+ .implementedAs([this](sdbus::ObjectPath o, std::unordered_map<std::string, sdbus::Variant> m, int i, unsigned int u) {
return onNotifyKeyboardKeysym(o, i, u, m);
}),
sdbus::registerMethod("NotifyTouchDown")
@@ -112,7 +112,7 @@ dbUasv CRemoteDesktopPortal::onCreateSession(sdbus::ObjectPath requestHandle, sd
PSESSION->eis->setVirtualKeyboard(PSESSION->keyboard);
m_mSessions.emplace(sessionHandle, PSESSION);
-
+
return {0, {}};
}
@@ -137,8 +137,9 @@ dbUasv CRemoteDesktopPortal::onStart(sdbus::ObjectPath requestHandle, sdbus::Obj
}
dbUasv CRemoteDesktopPortal::onNotifyPointerMotion(sdbus::ObjectPath sessionHandle, double dx, double dy, std::unordered_map<std::string, sdbus::Variant> opts) {
+ Debug::log(LOG, "[remotedesktop] notify pointer motion: {} {}", dx, dy);
const auto PSESSION = m_mSessions[sessionHandle];
- PSESSION->pointer->sendMotion(0, dx, dy);
+ PSESSION->pointer->sendMotion(0, dx*20, dy*20);
return {0, {}};
}
@@ -149,6 +150,7 @@ dbUasv CRemoteDesktopPortal::onNotifyPointerMotionAbsolute(sdbus::ObjectPath ses
}
dbUasv CRemoteDesktopPortal::onNotifyPointerButton(sdbus::ObjectPath sessionHandle, int button, unsigned int state, std::unordered_map<std::string, sdbus::Variant> opts) {
+ Debug::log(LOG, "[remotedesktop] notify button {} {}", button, state);
const auto PSESSION = m_mSessions[sessionHandle];
PSESSION->pointer->sendButton(0, button, state);
return {0, {}};
'';
in in
{ {
# This one brings our custom packages from the 'pkgs' directory # This one brings our custom packages from the 'pkgs' directory
@@ -75,13 +142,50 @@ in
}; };
}; };
#hyprland = prev.hyprland.override { #hyprland = prev.hyprland.override {
# debug = true; # debug = true;
#}; #};
#hyprland = #hyprland =
# inputs.hyprland.packages.${prev.stdenv.hostPlatform.system}.hyprland; # inputs.hyprland.packages.${prev.stdenv.hostPlatform.system}.hyprland;
#xdg-desktop-portal-hyprland = #xdg-desktop-portal-hyprland =
# inputs.hyprland.packages.${prev.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; # inputs.hyprland.packages.${prev.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
# to add input capture protocol support (needed for kde connect)
#hyprland = prev.hyprland.overrideAttrs (oldAttrs: {
# src = prev.fetchFromGitHub {
# owner = "3l0w";
# repo = "Hyprland";
# rev = "2464bfc318f83c093784561c6a0afca6871e119e";
# hash = "sha256-6MIA9wu9YW/eKsI0UEuP7CgDiribEv9apzr66dHzRME=";
# fetchSubmodules = true;
# };
#});
#hyprland-protocols = prev.hyprland-protocols.overrideAttrs (oldAttrs: {
# src = prev.fetchFromGitHub {
# owner = "3l0w";
# repo = "hyprland-protocols";
# rev = "d6bfa25be7b250dc417cbad89f13291efb0375d5";
# hash = "sha256-ULzGRSj18xOrTXnvWrkaaHUaMHaJWyXlmLDDw2jruLo=";
# };
#});
#xdg-desktop-portal-hyprland = prev.xdg-desktop-portal-hyprland.overrideAttrs (oldAttrs: {
# src = prev.fetchFromGitHub {
# #owner = "3l0w";
# #repo = "xdg-desktop-portal-hyprland";
# #rev = "436619a06641d7090e36416546d26b9aee2f0679";
# #hash = "sha256-OMv/8J2n2skwfVYFe1rY8pheL4T6rbWOTYYx/2u7ouk=";
# owner = "toneengo";
# repo = "xdg-desktop-portal-hyprland";
# rev = "f74a2278f78a5ec9167c945a40486d8999fefb9d";
# hash = "sha256-dH+NhC2Zz8v6MoTMaEK8qEZhHBpdCSI4818styWUFew=";
# };
# patches = [ (prev.writeText "testing-patch" testing-patch) ];
# buildInputs = oldAttrs.buildInputs ++ [ prev.libei ];
#});
#csharp-ls = prev.csharp-ls-8; #csharp-ls = prev.csharp-ls-8;
}; };