Somewhat related to #4523.
We already do something similar to this for the keyboard: 7d344bc, except generic.
On the server side, we should be able to initialize subsystems when we get their specific data.
For backwards compatibility, we still need to send a full hello packet synchronously.
Maybe add a toggle to use the new "fast" startup?
Or we could abuse the challenge hello: pretend we expect authentication, which will send a partial hello - then we can figure out if asynchronous mode is supported by the server? (meh: this could make things slower with an extra roundtrip)
The server side is easier, we can just call parse_client_caps when we get the data.
|
def parse_client_caps(self, c: typedict) -> None: |
Then get the caps:
|
def get_caps(self) -> dict[str, Any]: |
And send them to the client.
Somewhat related to #4523.
We already do something similar to this for the keyboard: 7d344bc, except generic.
On the server side, we should be able to initialize subsystems when we get their specific data.
For backwards compatibility, we still need to send a full
hellopacket synchronously.Maybe add a toggle to use the new "fast" startup?
Or we could abuse the
challengehello: pretend we expect authentication, which will send a partial hello - then we can figure out if asynchronous mode is supported by the server? (meh: this could make things slower with an extra roundtrip)The server side is easier, we can just call
parse_client_capswhen we get the data.xpra/xpra/server/source/stub_source_mixin.py
Line 46 in b7bdb02
Then get the caps:
xpra/xpra/server/source/stub_source_mixin.py
Line 51 in b7bdb02
And send them to the client.