After #2284 fixed, I noticed that trying to copy text on a shadow session becomes complicated:
Xpra-Python3-x86_64_3.0-r22922\xpra_cmd" shadow ssh://user@ip/0 --opengl=no --desktop-scaling=0.5 --min-speed=70 --webcam=no --speaker=off --microphone=off 54 │ 2019-06-19 12:17:04,130 client @28.968 running on Linux Ubuntu 16.04 xenial 55 │ 2019-06-19 12:17:05,659 Warning: not adding duplicate printer 'Send To OneNote 16' 56 │ 2019-06-19 12:17:05,661 Warning: not adding duplicate printer 'Microsoft Print to PDF' 57 │ 2019-06-19 12:17:05,663 Warning: not adding duplicate printer 'OneNote' 58 │ 2019-06-19 12:20:02,993 client @27.827 server clipboard synchronization changed to PRIMARY selection 59 │ 2019-06-19 12:20:02,993 ignoring token for disabled clipboard 'CLIPBOARD' 60 │ 2019-06-19 12:20:25,614 Warning: timeout on screen updates for window 2, 61 │ 2019-06-19 12:20:25,614 already delayed for more than 15 seconds 62 │ 2019-06-19 12:20:26,019 client @50.860 server clipboard synchronization changed to SECONDARY selection 63 │ 2019-06-19 12:20:26,026 ignoring token for disabled clipboard 'CLIPBOARD' 64 │ 2019-06-19 12:21:37,425 client @02.266 server clipboard synchronization changed to CLIPBOARD selection 65 │ 2019-06-19 12:22:16,645 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 66 │ 2019-06-19 12:22:17,306 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 67 │ 2019-06-19 12:22:17,306 New unix-domain connection received on /run/xpra/user-precision-t3620-0 68 │ 2019-06-19 12:22:34,955 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 69 │ 2019-06-19 12:22:35,617 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 70 │ 2019-06-19 12:22:35,618 New unix-domain connection received on /run/xpra/user-precision-t3620-0 71 │ 2019-06-19 12:22:45,818 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 72 │ 2019-06-19 12:22:45,821 error processing control command 'clipboard-direction' 73 │ Traceback (most recent call last): 74 │ File "/usr/lib/python2.7/dist-packages/xpra/server/server_core.py", line 672, in process_control_command 75 │ v = command.run(*args[1:]) 76 │ File "/usr/lib/python2.7/dist-packages/xpra/server/control_command.py", line 69, in run 77 │ return super(ArgsControlCommand, self).run(*args) 78 │ File "/usr/lib/python2.7/dist-packages/xpra/server/control_command.py", line 31, in run 79 │ return self.do_run(*args) 80 │ File "/usr/lib/python2.7/dist-packages/xpra/server/mixins/server_base_controlcommands.py", line 452, in control_command_clipboard_direction 81 │ assert direction in DIRECTIONS, "invalid direction '%s', must be one of %s" % (direction, csv(DIRECTIONS)) 82 │ AssertionError: invalid direction 'help', must be one of to-server, to-client, both, disabled 83 │ 2019-06-19 12:22:46,494 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 84 │ 2019-06-19 12:22:46,497 New unix-domain connection received on /run/xpra/user-precision-t3620-0 85 │ 2019-06-19 12:23:03,083 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 86 │ 2019-06-19 12:23:03,134 processed structured info request from unix-domain socket:/run/user/1000/xpra/user-precision-t3620-0 in 47ms 87 │ 2019-06-19 12:23:03,736 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 88 │ 2019-06-19 12:23:03,736 New unix-domain connection received on /run/xpra/user-precision-t3620-0 89 │ 2019-06-19 12:23:56,854 client @20.218 server is not responding, drawing spinners over the windows 90 │ 2019-06-19 12:23:56,967 client @21.735 server is OK again 91 │ 2019-06-19 12:23:57,218 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 92 │ 2019-06-19 12:24:01,609 New unix-domain connection received on /run/user/1000/xpra/user-precision-t3620-0 93 │ 2019-06-19 12:24:01,622 client @25.281 server is not responding, drawing spinners over the windows 94 │ 2019-06-19 12:24:05,836 New unix-domain connection received on /run/xpra/user-precision-t3620-0 95 │ 2019-06-19 12:24:05,837 client @26.547 server is OK again 96 │ 2019-06-19 12:24:05,838 client @30.281 server is not responding, drawing spinners over the windows 97 │ 2019-06-19 12:24:05,912 client @30.750 unknown server setting changed: clipboard_direction="b'both'" 98 │ 2019-06-19 12:24:05,949 client @30.797 server is OK again 99 │ 2019-06-19 12:24:13,452 client @35.468 server is not responding, drawing spinners over the windows 100 │ 2019-06-19 12:24:13,546 Warning: timeout on screen updates for window 1, 101 │ 2019-06-19 12:24:13,546 already delayed for more than 16 seconds 102 │ 2019-06-19 12:24:13,690 client @38.516 server is OK again
I tried to play with client's clipboard
settings, but no dice
$ xpra info 0 | grep -i clipboard client.clipboard.contents-slice-fix=True client.clipboard.enabled=True client.clipboard.greedy=True client.clipboard.notifications=True client.clipboard.selections=('CLIPBOARD',) client.clipboard.set-enabled=True client.clipboard.want-targets=False client.connection.input.count.clipboard-enable-selections=1 client.connection.input.count.clipboard-token=1 client.connection.receive_alias.25=clipboard-token client.connection.receive_alias.31=clipboard-pending-requests client.connection.receive_alias.41=set-clipboard-enabled client.connection.receive_alias.42=clipboard-loop-uuids client.connection.receive_alias.50=clipboard-contents client.connection.receive_alias.52=clipboard-enable-selections client.connection.receive_alias.56=clipboard-contents-none client.connection.receive_alias.69=clipboard-request clipboard.CLIPBOARD.blocked_owner_change=False clipboard.CLIPBOARD.enabled=True clipboard.CLIPBOARD.event.get_contents=0 clipboard.CLIPBOARD.event.got_token=2 clipboard.CLIPBOARD.event.request_contents=0 clipboard.CLIPBOARD.event.selection_clear=0 clipboard.CLIPBOARD.event.selection_get=0 clipboard.CLIPBOARD.event.selection_request=0 clipboard.CLIPBOARD.event.sent_token=0 clipboard.CLIPBOARD.greedy_client=True clipboard.CLIPBOARD.have_token=True clipboard.CLIPBOARD.last-targets=() clipboard.CLIPBOARD.loop-uuid=Xpra-Clipboard-Loop-Detection:a9fb7402bc5e4a6ca9ca769522f4f3cb clipboard.PRIMARY.blocked_owner_change=False clipboard.PRIMARY.enabled=False clipboard.PRIMARY.event.get_contents=0 clipboard.PRIMARY.event.got_token=0 clipboard.PRIMARY.event.request_contents=0 clipboard.PRIMARY.event.selection_clear=0 clipboard.PRIMARY.event.selection_get=0 clipboard.PRIMARY.event.selection_request=0 clipboard.PRIMARY.event.sent_token=0 clipboard.PRIMARY.greedy_client=True clipboard.PRIMARY.have_token=False clipboard.PRIMARY.last-targets=() clipboard.PRIMARY.loop-uuid=Xpra-Clipboard-Loop-Detection:03e0940f7f89464c8706306c52af32b9 clipboard.SECONDARY.blocked_owner_change=False clipboard.SECONDARY.enabled=False clipboard.SECONDARY.event.get_contents=0 clipboard.SECONDARY.event.got_token=0 clipboard.SECONDARY.event.request_contents=0 clipboard.SECONDARY.event.selection_clear=0 clipboard.SECONDARY.event.selection_get=0 clipboard.SECONDARY.event.selection_request=0 clipboard.SECONDARY.event.sent_token=0 clipboard.SECONDARY.greedy_client=True clipboard.SECONDARY.have_token=False clipboard.SECONDARY.last-targets=() clipboard.SECONDARY.loop-uuid=Xpra-Clipboard-Loop-Detection:208b0d63c49645a7956e87bb235ced87 clipboard.can-receive=True clipboard.can-send=True clipboard.filters=() clipboard.max_recv_size=-1 clipboard.max_send_size=-1 clipboard.max_size=4194304 clipboard.pending=() clipboard.requests=0 clipboard.type=X11Clipboard clipboard.want_targets=False features.clipboard=True features.clipboard-direction=both features.clipboard.contents-slice-fix=True features.clipboard.enable-selections=True features.clipboard.loop-uuids.CLIPBOARD=Xpra-Clipboard-Loop-Detection:a9fb7402bc5e4a6ca9ca769522f4f3cb features.clipboard.loop-uuids.PRIMARY=Xpra-Clipboard-Loop-Detection:03e0940f7f89464c8706306c52af32b9 features.clipboard.loop-uuids.SECONDARY=Xpra-Clipboard-Loop-Detection:208b0d63c49645a7956e87bb235ced87 features.clipboards=('CLIPBOARD', 'PRIMARY', 'SECONDARY') network.packet-handlers.ui=('buffer-refresh', 'button-action', 'clipboard-contents', 'clipboard-contents-none', 'clipboard-enable-selections', 'clipboard-loop-uuids', 'clipboard-pending-requests', 'clipboard-request', 'clipboard-token', 'close-window', 'configure-window', 'damage-sequence', 'desktop_size', 'encoding', 'exit-server', 'focus', 'force-ungrab', 'info-request', 'input-devices', 'key-action', 'key-repeat', 'keymap-changed', 'layout-changed', 'map-window', 'min-quality', 'min-speed', 'notification-action', 'notification-close', 'pointer-position', 'quality', 'resume', 'rpc', 'screenshot', 'server-settings', 'set-bell', 'set-clipboard-enabled', 'set-cursors', 'set-keyboard-sync-enabled', 'set-notify', 'set_deflate', 'shutdown-server', 'sound-control', 'sound-data', 'speed', 'start-command', 'suspend', 'unmap-window', 'wheel-motion') }}
Client: Win10
I also got this from the client:
2019-06-19 12:24:05,877 unknown server setting changed: clipboard_direction="b'both'"
(I don't know if it helps with anything)
unknown server setting changed: clipboard_direction="b'both'"
That's unlikely to cause real problems (just that the tray menu will be out of sync with the real setting), that's fixed in r22993.
With shadow servers, I'm seeing problems copying from server to client with trunk (v2.5.x works fine). This is caused by #812.
The problem with shadow servers:
client is requesting an unknown target: 'text/plain;charset=utf-8' valid targets: Coordinate Transformation Matrix, cursor, FLOAT, Button Left, Opaque, Button Wheel Down, Button Horiz Wheel Left, STRING, Button Horiz Wheel Right, Rel X
Clearly those aren't clipboard targets! So maybe we're sending them across as ATOM numbers?
First fix: r23005: the x11 event filter was not initialized for shadow servers.
Full trace of the TARGETS problem, triggered by copying a string from the Terminal (the PRIMARY
selection events happened just before that):
2019-06-20 22:07:56,536 client @38.462 do_selection_clear_event(<Gdk.EventSelection object at 0x7fb863768688 (void at 0x7fb8580f6030)>) have_token=True, block_owner_change=False selection=CLIPBOARD 2019-06-20 22:07:56,536 client @38.463 send clipboard token: CLIPBOARD 2019-06-20 22:07:56,536 client @38.464 clipboard_send: clipboard-token 2019-06-20 22:07:56,536 client @38.464 clipboard: CLIPBOARD owner_changed, enabled=True, can-send=True, can-receive=True, have_token=False, greedy_client=False, block_owner_change=True 2019-06-20 22:07:56,536 client @38.465 remove_block: CLIPBOARD 2019-06-20 22:07:56,537 process clipboard token selection=CLIPBOARD, local clipboard name=CLIPBOARD, proxy=X11ClipboardProxy(CLIPBOARD) 2019-06-20 22:07:56,537 got token, selection=CLIPBOARD, targets=None, target data=None, claim=True, can-receive=True 2019-06-20 22:07:56,538 claim_selection: set selection owner returned 1, owner=0x3c0000b 2019-06-20 22:07:56,538 claim_selection: sending message to root window 2019-06-20 22:07:56,538 claim_selection: done, owned=True 2019-06-20 22:07:56,540 do_xpra_xfixes_selection_notify_event(<X11:XFSelectionNotify {'send_event': '0', 'serial': '0x2470', 'delivered_to': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'window': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'subtype': '0', 'owner': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'selection': 'CLIPBOARD', 'timestamp': '221060797', 'selection_timestamp': '221060797'}>) 2019-06-20 22:07:56,540 do_selection_notify_event(<X11:XFSelectionNotify {'send_event': '0', 'serial': '0x2470', 'delivered_to': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'window': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'subtype': '0', 'owner': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'selection': 'CLIPBOARD', 'timestamp': '221060797', 'selection_timestamp': '221060797'}>) owned=True, was True, enabled=True, can-send=True 2019-06-20 22:07:56,540 do_xpra_selection_request(<X11:SelectionRequest {'send_event': '0', 'serial': '0x2471', 'delivered_to': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'window': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'requestor': '<GdkX11.X11Window object at 0x7fd3d16761f8 (GdkX11Window at 0x563403a35ca0)>', 'selection': 'CLIPBOARD', 'target': 'TARGETS', 'property': 'GDK_SELECTION', 'time': '221060798'}>) 2019-06-20 22:07:56,540 do_selection_request_event(<X11:SelectionRequest {'send_event': '0', 'serial': '0x2471', 'delivered_to': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'window': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'requestor': '<GdkX11.X11Window object at 0x7fd3d16761f8 (GdkX11Window at 0x563403a35ca0)>', 'selection': 'CLIPBOARD', 'target': 'TARGETS', 'property': 'GDK_SELECTION', 'time': '221060798'}>) 2019-06-20 22:07:56,541 clipboard request for CLIPBOARD from window 0x3600125: 'gedit', target=TARGETS, prop=GDK_SELECTION 2019-06-20 22:07:56,541 send_clipboard_request_handler(X11ClipboardProxy(CLIPBOARD), 'CLIPBOARD', 'TARGETS') 2019-06-20 22:07:56,541 send_clipboard_request id=2 2019-06-20 22:07:56,541 do_xpra_selection_request(<X11:SelectionRequest {'send_event': '0', 'serial': '0x2471', 'delivered_to': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'window': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'requestor': '<GdkX11.X11Window object at 0x7fd3d1676678 (GdkX11Window at 0x563403a35e30)>', 'selection': 'CLIPBOARD', 'target': 'TARGETS', 'property': 'GDK_SELECTION', 'time': '221060798'}>) 2019-06-20 22:07:56,541 do_selection_request_event(<X11:SelectionRequest {'send_event': '0', 'serial': '0x2471', 'delivered_to': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'window': '<GdkX11.X11Window object at 0x7fd3d1b5e9d8 (GdkX11Window at 0x563403a35b10)>', 'requestor': '<GdkX11.X11Window object at 0x7fd3d1676678 (GdkX11Window at 0x563403a35e30)>', 'selection': 'CLIPBOARD', 'target': 'TARGETS', 'property': 'GDK_SELECTION', 'time': '221060798'}>) 2019-06-20 22:07:56,542 clipboard request for CLIPBOARD from window 0x3800002: 'Terminal', target=TARGETS, prop=GDK_SELECTION 2019-06-20 22:07:56,542 sending clipboard-pending-requests=1 to ClientConnection(1 : Protocol(tcp socket: 192.168.1.7:10000 <- 192.168.1.22:40722)) 2019-06-20 22:07:56,658 client @38.532 process_clipboard_packet: clipboard-pending-requests, helper=GDKClipboardProtocolHelper 2019-06-20 22:07:56,658 client @38.533 process clipboard handler(clipboard-pending-requests)=<bound method ClipboardProtocolHelperBase._process_clipboard_pending_requests of GDKClipboardProtocolHelper> 2019-06-20 22:07:56,658 client @38.533 clipboard_progress(None, 1) 2019-06-20 22:07:56,659 client @38.536 clipboard_notify(1) notification timer=None 2019-06-20 22:07:56,840 client @38.735 process_clipboard_packet: clipboard-request, helper=GDKClipboardProtocolHelper 2019-06-20 22:07:56,840 client @38.735 process clipboard handler(clipboard-request)=<bound method ClipboardProtocolHelperBase._process_clipboard_request of GDKClipboardProtocolHelper> 2019-06-20 22:07:56,841 client @38.736 process clipboard request, request_id=2, selection=b'CLIPBOARD', local name=CLIPBOARD, target=b'TARGETS' 2019-06-20 22:07:56,841 client @38.736 get_contents(b'TARGETS', <function ClipboardProtocolHelperBase._process_clipboard_request.<locals>.got_contents at 0x7fb8626ebd08>) selection=CLIPBOARD, enabled=True, can-send=True 2019-06-20 22:07:56,841 client @38.738 unpack <Gtk.Clipboard object at 0x7fb8627481b0 (GtkClipboard at 0x560956569db0)>: <class 'gi.repository.Gtk.SelectionData'> 2019-06-20 22:07:56,841 client @38.738 unpack: <Gtk.SelectionData object at 0x7fb861a6ea68 (GtkSelectionData at 0x7ffe6a474c70)> 2019-06-20 22:07:56,841 client @38.739 unpack(..) type=ATOM, format=32, data=<class 'bytes'>:80 2019-06-20 22:07:56,842 client @38.739 got_contents(ATOM, 32, <class 'bytes'>:80) data=0x9c0000000000000099000000000000009b000000000000009d000000000000004600000000000000a400000000000000a5000000000000001f00000000000000a600000000000000a700000000000000.. 2019-06-20 22:07:56,842 client @38.740 perform clipboard limit checking - datasize - 80, -1 2019-06-20 22:07:56,842 client @38.740 _munge_raw_selection_to_wire(b'TARGETS', 'ATOM', 32, b'\x9c\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00F\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\x00\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00') 2019-06-20 22:07:56,842 client @38.740 _do_munge_raw_selection_to_wire(b'TARGETS', ATOM, 32, <class 'bytes'>:80) 2019-06-20 22:07:56,842 client @38.740 clipboard raw -> wire: ('ATOM', 32, b'\x9c\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00F\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\x00\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00') -> (b'integers', (156, 153, 155, 157, 70, 164, 165, 31, 166, 167)) 2019-06-20 22:07:56,842 client @38.741 clipboard_send: clipboard-contents 2019-06-20 22:07:56,843 process clipboard contents, selection=CLIPBOARD, type=ATOM, format=32 2019-06-20 22:07:56,843 wire selection to raw, encoding=integers, type=ATOM, format=32, len(data)=10 2019-06-20 22:07:56,843 struct.pack(b'@LLLLLLLLLL', (156, 153, 155, 157, 70, 164, 165, 31, 166, 167)) 2019-06-20 22:07:56,843 clipboard wire -> raw: ('ATOM', 32, 'integers', "'(156, 153, 155, 157, 70, 164, 165, 31, 166, 167)'") -> "b'\\x9c\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x99 .. 0\\x00\\xa7\\x00\\x00\\x00\\x00\\x00\\x00\\x00'" 2019-06-20 22:07:56,843 clipboard got contents(2, 'ATOM', 32, '"b\'\\\\x9c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x99 .. 0\\\\x00\\\\xa7\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\'"'): proxy=X11ClipboardProxy(CLIPBOARD) for selection=CLIPBOARD 2019-06-20 22:07:56,843 caching TARGETS: ('Coordinate Transformation Matrix', 'cursor', 'FLOAT', 'Button Left', 'Opaque', 'Rel X', 'Rel Y', 'STRING', 'NumLock', 'Alt') 2019-06-20 22:07:56,843 got_contents('TARGETS', 'ATOM', 32, '"b\'\\\\x9c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x99 .. 0\\\\x00\\\\xa7\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\'"') pending=(<GdkX11.X11Window object at 0x7fd3d16761f8 (GdkX11Window at 0x563403a35ca0)>, 'GDK_SELECTION', 221060798), (<GdkX11.X11Window object at 0x7fd3d1676678 (GdkX11Window at 0x563403a35e30)>, 'GDK_SELECTION', 221060798) 2019-06-20 22:07:56,843 setting response "b'\\x9c\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x99 .. 0\\x00\\xa7\\x00\\x00\\x00\\x00\\x00\\x00\\x00'" to property GDK_SELECTION of window 'gedit' as ATOM 2019-06-20 22:07:56,843 set_selection_response(<GdkX11.X11Window object at 0x7fd3d16761f8 (GdkX11Window at 0x563403a35ca0)>, TARGETS, GDK_SELECTION, ATOM, 32, '"b\'\\\\x9c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x99 .. 0\\\\x00\\\\xa7\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\'"', 221060798) 2019-06-20 22:07:56,844 setting response "b'\\x9c\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x99 .. 0\\x00\\xa7\\x00\\x00\\x00\\x00\\x00\\x00\\x00'" to property GDK_SELECTION of window 'Terminal' as ATOM 2019-06-20 22:07:56,844 set_selection_response(<GdkX11.X11Window object at 0x7fd3d1676678 (GdkX11Window at 0x563403a35e30)>, TARGETS, GDK_SELECTION, ATOM, 32, '"b\'\\\\x9c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x99 .. 0\\\\x00\\\\xa7\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\'"', 221060798) 2019-06-20 22:07:56,944 sending clipboard-pending-requests=0 to ClientConnection(1 : Protocol(tcp socket: 192.168.1.7:10000 <- 192.168.1.22:40722)) 2019-06-20 22:07:57,093 client @39.035 process_clipboard_packet: clipboard-pending-requests, helper=GDKClipboardProtocolHelper 2019-06-20 22:07:57,093 client @39.036 process clipboard handler(clipboard-pending-requests)=<bound method ClipboardProtocolHelperBase._process_clipboard_pending_requests of GDKClipboardProtocolHelper> 2019-06-20 22:07:57,095 client @39.037 clipboard_progress(None, 0) 2019-06-20 22:07:57,096 client @39.038 clipboard_notify(0) notification timer=None
That took a while! The bug from comment:5 required a very specific combination to trigger: a python3 v2.5.x xpra client connecting to a v3.0 shadow server! (though at least some of the bugs fixed below may well be triggered with other setups)
New lots of fixes:
@stdedos: this should work much better for you. (new beta builds in progress) There may still be problems with v2.5.x when doing the very first copy, but once the clipboard is properly initialized it should be fine.
It seems that clipboard is working now as expected
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2338