Xpra-org / xpra

Persistent remote applications for X11; screen sharing for X11, MacOS and MSWindows.
https://xpra.org/
GNU General Public License v2.0
1.5k stars 144 forks source link

[6.0 beta] Alt+<key> key is passed through as Meta+Alt+<key> #4066

Open markmandel opened 6 months ago

markmandel commented 6 months ago

Describe the bug When pressing Alt+ on the client app, it is sent through to the client application as Meta+Alt+.

For example - using IntelliJ as my key tracking when using shortcut keys Alt+F12 or Alt+N:

image

image

To Reproduce Steps to reproduce the behavior:

  1. server command: N/A
  2. client command: xpra start ssh://mark@oss --start=idea.sh --desktop-scaling=no --speaker=no
  3. specific action to trigger the bug

Hit Alt+ on the client.

System Information (please complete the following information):

Additional context

Xpra is awesome 😄

totaam commented 6 months ago

We do have code specifically there to silence the spurious key events we get from MS Windows: https://github.com/Xpra-org/xpra/blob/8f72bb11c02b9caeee885304093f581bf153b431/xpra/platform/win32/keyboard.py#L315-L327 And for sending the correct key modifier for AltGr events: https://github.com/Xpra-org/xpra/blob/8f72bb11c02b9caeee885304093f581bf153b431/xpra/platform/win32/keyboard.py#L143-L157 Can you try running your client with --env=XPRA_EMULATE_ALTGR=0 to see if that makes any difference?

markmandel commented 6 months ago

Hey! That worked! Thanks!

image

As a note - this isn't on Windows, this is on Linux (Debian Trixie to be specific).

totaam commented 6 months ago

As a note - this isn't on Windows, this is on Linux

Are you sure? The environment variable has no effect on Linux clients.

markmandel commented 6 months ago

As a note - this isn't on Windows, this is on Linux

Are you sure? The environment variable has no effect on Linux clients.

Yep - the only windows machine in this room are used for games.

markmandel commented 6 months ago

Okay, this is 100% weird. I just tried it without the env var, and I didn't get the meta+alt combo.... so now i'm 100% confused.

console ❯ xpra start ssh://mark@oss --start=idea.sh --desktop-scaling=no --speaker=no 2023-12-09 10:24:45,349 Warning: missing audio module 2023-12-09 10:24:45,433 Xpra GTK3 client version 6.0-r34760 (g8fac1d473) beta 2023-12-09 10:24:45,444 running on Linux Debian n/a trixie 2023-12-09 10:24:45,444 cpython 3.11 2023-12-09 10:24:45,445 window manager is 'xmonad' 2023-12-09 10:24:45,929 created unix domain sockets: 2023-12-09 10:24:45,929 '/run/user/312365/xpra/clients/markmandel45-2169965' 2023-12-09 10:24:46,086 Connected (version 2.0, client OpenSSH_9.4p1) 2023-12-09 10:24:47,980 Authentication (publickey) successful! 2023-12-09 10:24:48,195 ssh server OS is 'linux-gnu' 2023-12-09 10:24:48,360 paramiko SSH agent forwarding enabled 2023-12-09 10:24:48,446 keyboard settings: rules=evdev, model=pc105, layout=us 2023-12-09 10:24:48,447 desktop size is 8960x1440: 2023-12-09 10:24:48,448 :1.0 (2370x381 mm - DPI: 96x96) 2023-12-09 10:24:48,448 LGD eDP1 2304x1440 at 0x0 (340x210 mm - DPI: 172x174) workarea: 2304x1440 2023-12-09 10:24:48,448 SAM DP2 5120x1440 at 3840x0 (1070x600 mm - DPI: 122x61) workarea: 5120x1440 at 3840x0 2023-12-09 10:24:48,449 Warning: the python netifaces package is missing 2023-12-09 10:24:48,449 some networking functionality will be unavailable 2023-12-09 10:24:48,658 SSH: 'Entering daemon mode; any further errors will be reported to:' 2023-12-09 10:24:48,658 SSH: " '/run/user/1000/xpra/S2000224/server.log'" 2023-12-09 10:24:49,929 SSH: 'Actual display used: :1' 2023-12-09 10:24:49,930 SSH: "Actual log file name is now: '/run/user/1000/xpra/1/server.log'" 2023-12-09 10:24:54,738 enabled remote logging 2023-12-09 10:24:54,739 Xpra X11 seamless server version 6.0 /usr/lib/python3/dist-packages/pyinotify.py:71: DeprecationWarning: The asyncore module is deprecated and will be removed in Python 3.12. The recommended replacement is asyncio import asyncore /usr/lib/python3/dist-packages/pyinotify.py:1476: DeprecationWarning: isSet() is deprecated, use is_set() instead while not self._stop_event.isSet(): /usr/lib/python3/dist-packages/xpra/client/gtk3/statusicon_tray.py:38: DeprecationWarning: Gtk.StatusIcon.set_tooltip_text is deprecated self.tray_widget.set_tooltip_text(self.tooltip or "Xpra") /usr/lib/python3/dist-packages/xpra/client/gtk3/statusicon_tray.py:102: DeprecationWarning: Gtk.StatusIcon.get_x11_window_id is deprecated if POSIX and os.environ.get("DISPLAY") and self.tray_widget.get_x11_window_id()==0: /usr/lib/python3/dist-packages/xpra/client/gtk3/statusicon_tray.py:105: DeprecationWarning: Gtk.StatusIcon.get_geometry is deprecated ag = self.tray_widget.get_geometry() /usr/lib/python3/dist-packages/xpra/client/gtk3/statusicon_tray.py:166: DeprecationWarning: Gtk.StatusIcon.set_from_pixbuf is deprecated self.tray_widget.set_from_pixbuf(tray_icon) /usr/lib/python3/dist-packages/xpra/client/gtk3/statusicon_tray.py:45: DeprecationWarning: Gtk.StatusIcon.set_visible is deprecated self.tray_widget.set_visible(True) 2023-12-09 10:24:55,035 running

image

So... that's weird. Maybe stuck meta key?

totaam commented 6 months ago

I misread:

Client OS: [e.g. Windows 10] Debian Trixie

I have no idea what is going on, sorry.

markmandel commented 6 months ago

No worries - if I can't replicate reliably, I'll close the issue 👍🏻

markmandel commented 6 months ago

Yeah, I can't replicate this. Closing.

Apologies for the noise!

markmandel commented 5 months ago

I MANAGED TO REPLICATE THE ISSUE! 🥳

Same setup as before, just the latest Xpra.

❯ xpra --version
xpra v6.0-r34966 (gf449a7f8f) beta

It happens after an automatic reconnect/attach! It's fine one first connection, but if the network drops, it happens.

So to replicate:

  1. Attach to a process on an xpra server with xpra start
  2. cycle your network connection
  3. Wait for xpra to reconnect to your process
  4. Now the meta key is included with the alt shortcut.

Or do a manual disconnect and xpra attach - same thing happens.

totaam commented 5 months ago

@markmandel please include the xpra info output once connected and after re-connection.

Ideally also the server's -d keyboard output when the second connection occurs.

Fixing this is going to be hard. Perhaps we can cheat and detect that the layout is the same and leave it alone the second time.. This won't help with sessions with multiple users connecting with different layouts, but should workaround the most common case.

markmandel commented 5 months ago

Ideally also the server's -d keyboard output when the second connection occurs.

Sorry, I'm not quite sure what you mean by this one. -d on what command?

But I have the xpra info for you.

xpra info ``` bandwidth-limit=0 child.0.command=('ibus-daemon', '--xim', '--verbose', '--replace', '--panel=disable', '--desktop=xpra', '--daemonize') child.0.dead=True child.0.forget=False child.0.ignore=True child.0.name=ibus-daemon --xim --verbose --replace --panel=disable --desktop=xpra --daemonize child.0.pid=715160 child.0.returncode=0 child.1.command=('idea.sh',) child.1.dead=False child.1.forget=False child.1.ignore=True child.1.name=idea.sh child.1.pid=715157 child.2.command=pactl set-default-source Xpra-Mic-Source child.2.dead=True child.2.forget=False child.2.ignore=True child.2.name=pulseaudio-configure-command-1 child.2.pid=715070 child.2.returncode=0 child.3.command=pactl set-default-sink Xpra-Speaker child.3.dead=True child.3.forget=False child.3.ignore=True child.3.name=pulseaudio-configure-command-0 child.3.pid=715069 child.3.returncode=0 child.4.command=('pulseaudio', '--start', '-n', '--daemonize=false', '--system=false', '--exit-idle-time=-1', '--load=module-suspend-on-idle', '--load=module-null-sink sink_name=Xpra-Speaker sink_properties=device.description="Xpra\\ Speaker"', '--load=module-null-sink sink_name=Xpra-Microphone sink_properties=device.description="Xpra\\ Microphone"', '--load=module-remap-source source_name=Xpra-Mic-Source source_properties=device.description="Xpra\\ Mic\\ Source" master=Xpra-Microphone.monitor channels=1', '--load=module-native-protocol-unix socket=/run/user/1000/xpra/0/pulse/pulse/native', '--load=module-dbus-protocol', '--load=module-x11-publish', '--log-level=2', '--log-target=stderr', '--enable-memfd=no') child.4.dead=False child.4.forget=False child.4.ignore=True child.4.name=pulseaudio child.4.pid=714968 child.5.command=Xvfb +extension GLX +extension Composite -screen 0 8192x4096x24+32 -nolisten tcp -noreset -auth $XAUTHORITY -dpi 96x96 child.5.dead=False child.5.forget=False child.5.ignore=True child.5.name=xvfb child.5.pid=714917 children.dead=3 children.ignored=6 children.total=6 client.adapter-type=ethernet client.audio.microphone.codecs=('opus', 'flac', 'wav+lz4', 'wav', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'mp3', 'mp3+id3v2', 'flac+ogg', 'aac+mpeg4', 'vorbis', 'opus+mka') client.audio.microphone.state=inactive client.audio.pulseaudio_id= client.audio.pulseaudio_server= client.audio.speaker.codecs=('opus', 'flac', 'wav+lz4', 'wav', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'mp3', 'mp3+id3v2', 'flac+ogg', 'aac+mpeg4', 'vorbis', 'opus+mka') client.audio.speaker.state=disabled client.auto_refresh=150 client.av-sync=True client.av-sync.client=150 client.av-sync.delta=0 client.av-sync.enabled=True client.av-sync.total=0 client.bandwidth-limit.actual=0 client.bandwidth-limit.detection=False client.bandwidth-limit.setting=0 client.batch.delay.50p=40 client.batch.delay.80p=40 client.batch.delay.90p=40 client.batch.delay.avg=34 client.batch.delay.cur=16 client.batch.delay.max=48 client.batch.delay.min=16 client.batch.expire=250 client.batch.locked=False client.batch.max-delay=500 client.batch.min-delay=16 client.batch.normalized=9 client.batch.timeout-delay=15000 client.bell=True client.clipboard.enabled=True client.clipboard.greedy=False client.clipboard.notifications=True client.clipboard.preferred-targets=('UTF8_STRING', 'TEXT', 'STRING', 'text/plain', 'image/png') client.clipboard.selections=('CLIPBOARD', 'PRIMARY', 'SECONDARY') client.clipboard.want-targets=False client.connection.active=True client.connection.aliases=True client.connection.client.ping_latency.50p=24 client.connection.client.ping_latency.80p=26 client.connection.client.ping_latency.90p=27 client.connection.client.ping_latency.avg=23 client.connection.client.ping_latency.cur=23 client.connection.client.ping_latency.max=32 client.connection.client.ping_latency.min=19 client.connection.compression_level=1 client.connection.compressor=lz4 client.connection.congestion.avg-send-speed=0 client.connection.congestion.elapsed-time=652356 client.connection.encoder=rencodeplus client.connection.endpoint=() client.connection.has_more=False client.connection.input.buffer-size=65536 client.connection.input.bytecount=197941 client.connection.input.cipher= client.connection.input.cipher.padding=PKCS#7 client.connection.input.count.buffer-refresh=1 client.connection.input.count.clipboard-enable-selections=1 client.connection.input.count.clipboard-token=1 client.connection.input.count.close-window=1 client.connection.input.count.configure-window=1 client.connection.input.count.damage-sequence=1 client.connection.input.count.focus=1 client.connection.input.count.hello=1 client.connection.input.count.info-request=1 client.connection.input.count.key-action=1 client.connection.input.count.keymap-changed=1 client.connection.input.count.logging=1 client.connection.input.count.map-window=1 client.connection.input.count.ping=1141 client.connection.input.count.ping_echo=572 client.connection.input.count.pointer=1 client.connection.input.count.pointer-button=1 client.connection.input.count.printers=1 client.connection.input.count.server-settings=1 client.connection.input.count.set-clipboard-enabled=1 client.connection.input.count.set-keyboard-sync-enabled=1 client.connection.input.count.unmap-window=1 client.connection.input.hangup-delay=1000 client.connection.input.packetcount=4264 client.connection.input.raw_packetcount=4092 client.connection.input.readcount=4092 client.connection.large_packets=('hello', 'window-metadata', 'sound-data', 'notify_show', 'setting-change', 'shell-reply', 'configure-display', 'info-response') client.connection.latency.absmin=20 client.connection.max_packet_size=16777216 client.connection.mmap_bytecount=0 client.connection.output.bytecount=20644019 client.connection.output.cipher= client.connection.output.cipher.padding=PKCS#7 client.connection.output.count.cursor=21 client.connection.output.count.draw=939 client.connection.output.count.encodings=1 client.connection.output.count.hello=1 client.connection.output.count.info-response=1 client.connection.output.count.lost-window=5 client.connection.output.count.new-override-redirect=4 client.connection.output.count.new-window=2 client.connection.output.count.ping=1142 client.connection.output.count.ping_echo=571 client.connection.output.count.server-event=1 client.connection.output.count.setting-change=5 client.connection.output.count.startup-complete=1 client.connection.output.count.window-icon=2 client.connection.output.count.window-metadata=15 client.connection.output.count.window-move-resize=2 client.connection.output.inline-size=32768 client.connection.output.large-packet-size=8192 client.connection.output.min-compress-size=378 client.connection.output.packet-join-size=65536 client.connection.output.packetcount=2712 client.connection.output.raw_packetcount=3064 client.connection.output.writecount=3064 client.connection.protocol-type=socket client.connection.receive-pending=True client.connection.receive_alias.1=hello client.connection.receive_alias.2=disconnect client.connection.receive_alias.3=ssl-upgrade client.connection.receive_alias.4=connection-lost client.connection.receive_alias.5=gibberish client.connection.receive_alias.6=invalid client.connection.receive_alias.7=command_request client.connection.receive_alias.8=ping client.connection.receive_alias.9=ping_echo client.connection.receive_alias.10=connection-data client.connection.receive_alias.11=bandwidth-limit client.connection.receive_alias.12=shell-exec client.connection.receive_alias.13=command-signal client.connection.receive_alias.14=sharing-toggle client.connection.receive_alias.15=lock-toggle client.connection.receive_alias.16=set_deflate client.connection.receive_alias.17=webcam-start client.connection.receive_alias.18=webcam-stop client.connection.receive_alias.19=webcam-frame client.connection.receive_alias.20=printers client.connection.receive_alias.21=print client.connection.receive_alias.22=send-file client.connection.receive_alias.23=ack-file-chunk client.connection.receive_alias.24=send-file-chunk client.connection.receive_alias.25=send-data-request client.connection.receive_alias.26=send-data-response client.connection.receive_alias.27=request-file client.connection.receive_alias.28=logging client.connection.receive_alias.29=logging-control client.connection.receive_alias.30=set-keyboard-sync-enabled client.connection.receive_alias.31=key-action client.connection.receive_alias.32=key-repeat client.connection.receive_alias.33=layout-changed client.connection.receive_alias.34=keymap-changed client.connection.receive_alias.35=pointer-button client.connection.receive_alias.36=button-action client.connection.receive_alias.37=pointer client.connection.receive_alias.38=pointer-position client.connection.receive_alias.39=input-devices client.connection.receive_alias.40=encoding client.connection.receive_alias.41=quality client.connection.receive_alias.42=min-quality client.connection.receive_alias.43=max-quality client.connection.receive_alias.44=speed client.connection.receive_alias.45=min-speed client.connection.receive_alias.46=max-speed client.connection.receive_alias.47=set-cursors client.connection.receive_alias.48=set-bell client.connection.receive_alias.49=desktop_size client.connection.receive_alias.50=configure-display client.connection.receive_alias.51=screenshot client.connection.receive_alias.52=map-window client.connection.receive_alias.53=unmap-window client.connection.receive_alias.54=configure-window client.connection.receive_alias.55=close-window client.connection.receive_alias.56=focus client.connection.receive_alias.57=damage-sequence client.connection.receive_alias.58=buffer-refresh client.connection.receive_alias.59=suspend client.connection.receive_alias.60=resume client.connection.receive_alias.61=server-settings client.connection.receive_alias.62=shutdown-server client.connection.receive_alias.63=exit-server client.connection.receive_alias.64=info-request client.connection.receive_alias.65=force-ungrab client.connection.receive_alias.66=wheel-motion client.connection.receive_alias.67=window-signal client.connection.receive_alias.68=notification-close client.connection.receive_alias.69=notification-action client.connection.receive_alias.70=notification-status client.connection.receive_alias.71=set-notify client.connection.receive_alias.72=set-clipboard-enabled client.connection.receive_alias.73=clipboard-token client.connection.receive_alias.74=clipboard-request client.connection.receive_alias.75=clipboard-contents client.connection.receive_alias.76=clipboard-contents-none client.connection.receive_alias.77=clipboard-pending-requests client.connection.receive_alias.78=clipboard-enable-selections client.connection.receive_alias.79=clipboard-loop-uuids client.connection.receive_alias.80=clipboard-status client.connection.receive_alias.81=sound-control client.connection.receive_alias.82=sound-data client.connection.receive_alias.83=start-command client.connection.remote= client.connection.send_alias.ack-file-chunk=20 client.connection.send_alias.add_data=27 client.connection.send_alias.bell=45 client.connection.send_alias.button-action=48 client.connection.send_alias.challenge=2 client.connection.send_alias.cleanup=26 client.connection.send_alias.clipboard-contents=63 client.connection.send_alias.clipboard-contents-none=64 client.connection.send_alias.clipboard-enable-selections=66 client.connection.send_alias.clipboard-pending-requests=65 client.connection.send_alias.clipboard-request=62 client.connection.send_alias.clipboard-token=61 client.connection.send_alias.configure-override-redirect=38 client.connection.send_alias.connection-lost=11 client.connection.send_alias.control=9 client.connection.send_alias.cursor=44 client.connection.send_alias.disconnect=10 client.connection.send_alias.draw=41 client.connection.send_alias.encodings=42 client.connection.send_alias.eos=43 client.connection.send_alias.gibberish=12 client.connection.send_alias.hello=1 client.connection.send_alias.info=4 client.connection.send_alias.info-response=5 client.connection.send_alias.initiate-moveresize=34 client.connection.send_alias.input-devices=52 client.connection.send_alias.invalid=13 client.connection.send_alias.key-action=54 client.connection.send_alias.key-repeat=55 client.connection.send_alias.keymap-changed=57 client.connection.send_alias.layout-changed=56 client.connection.send_alias.lost-window=39 client.connection.send_alias.new-buffer=25 client.connection.send_alias.new-override-redirect=31 client.connection.send_alias.new-stream=23 client.connection.send_alias.new-tray=32 client.connection.send_alias.new-window=30 client.connection.send_alias.notify_close=68 client.connection.send_alias.notify_show=67 client.connection.send_alias.open-url=16 client.connection.send_alias.ping=14 client.connection.send_alias.ping_echo=15 client.connection.send_alias.pointer=47 client.connection.send_alias.pointer-button=49 client.connection.send_alias.pointer-grab=50 client.connection.send_alias.pointer-position=46 client.connection.send_alias.pointer-ungrab=51 client.connection.send_alias.raise-window=33 client.connection.send_alias.send-data-request=18 client.connection.send_alias.send-data-response=19 client.connection.send_alias.send-file=17 client.connection.send_alias.send-file-chunk=21 client.connection.send_alias.server-event=6 client.connection.send_alias.set-clipboard-enabled=60 client.connection.send_alias.set-keyboard-sync-enabled=53 client.connection.send_alias.setting-change=8 client.connection.send_alias.show-desktop=29 client.connection.send_alias.sound-data=22 client.connection.send_alias.ssl-upgrade=3 client.connection.send_alias.startup-complete=7 client.connection.send_alias.state-changed=24 client.connection.send_alias.stop=28 client.connection.send_alias.webcam-ack=59 client.connection.send_alias.webcam-stop=58 client.connection.send_alias.window-icon=40 client.connection.send_alias.window-metadata=37 client.connection.send_alias.window-move-resize=35 client.connection.send_alias.window-resized=36 client.connection.server.ping_latency.50p=22 client.connection.server.ping_latency.80p=24 client.connection.server.ping_latency.90p=25 client.connection.server.ping_latency.avg=22 client.connection.server.ping_latency.cur=21 client.connection.server.ping_latency.max=31 client.connection.server.ping_latency.min=19 client.connection.socket.cork=False client.connection.socket.family=SOCK_STREAM client.connection.socket.fileno=20 client.connection.socket.nodelay=False client.connection.socket.options.SOCKET.SO_BROADCAST=0 client.connection.socket.options.SOCKET.SO_DONTROUTE=0 client.connection.socket.options.SOCKET.SO_ERROR=0 client.connection.socket.options.SOCKET.SO_KEEPALIVE=0 client.connection.socket.options.SOCKET.SO_LINGER=0 client.connection.socket.options.SOCKET.SO_OOBINLINE=0 client.connection.socket.options.SOCKET.SO_RCVBUF=212992 client.connection.socket.options.SOCKET.SO_RCVLOWAT=1 client.connection.socket.options.SOCKET.SO_RCVTIMEO=0 client.connection.socket.options.SOCKET.SO_REUSEADDR=0 client.connection.socket.options.SOCKET.SO_REUSEPORT=0 client.connection.socket.options.SOCKET.SO_SNDBUF=212992 client.connection.socket.options.SOCKET.SO_SNDTIMEO=0 client.connection.socket.options.SOCKET.SO_TYPE=1 client.connection.socket.proto=0 client.connection.socket.timeout=0 client.connection.socket.type=AF_UNIX client.connection.thread.format=True client.connection.thread.parse=True client.connection.thread.read=True client.connection.thread.write=True client.connection.type=socket client.connection_time=649502 client.counter=2 client.cursors=True client.damage.client-latency=241593518 client.damage.data_queue.size.50p=0 client.damage.data_queue.size.80p=0 client.damage.data_queue.size.90p=1 client.damage.data_queue.size.avg=0 client.damage.data_queue.size.cur=0 client.damage.data_queue.size.max=4 client.damage.data_queue.size.min=0 client.damage.events=992 client.damage.frame-total-latency=241593518 client.damage.in_latency.90p=66 client.damage.in_latency.avg=26 client.damage.in_latency.cur=2 client.damage.in_latency.max=169 client.damage.in_latency.min=0 client.damage.out_latency.90p=67 client.damage.out_latency.avg=27 client.damage.out_latency.cur=2 client.damage.out_latency.max=171 client.damage.out_latency.min=0 client.damage.packet_queue.size.50p=0 client.damage.packet_queue.size.80p=0 client.damage.packet_queue.size.90p=0 client.damage.packet_queue.size.avg=0 client.damage.packet_queue.size.cur=0 client.damage.packet_queue.size.max=1 client.damage.packet_queue.size.min=0 client.damage.packets_sent=939 client.desktop_names=('1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'NSP') client.desktop_size=(6400, 1600) client.desktops=11 client.double-click.distance=(-1, -1) client.double-click.time=400 client.elapsed_time=2853 client.encoding.average_region_size=244486 client.encoding.client-defaults=auto client.encoding.client-defaults.full_csc_modes.jpeg=('BGRX', 'BGRA', 'YUV420P') client.encoding.client-defaults.full_csc_modes.jpega=('BGRA', 'RGBA') client.encoding.client-defaults.full_csc_modes.webp=('BGRX', 'BGRA') client.encoding.client-defaults.h264.YUV420P.profile=high client.encoding.client-defaults.h264.fast-decode=False client.encoding.client-defaults.icons.greedy=True client.encoding.client-defaults.icons.max_size=(128, 128) client.encoding.client-defaults.icons.size=(64, 64) client.encoding.client-defaults.max-soft-expired=5 client.encoding.client-defaults.min-quality=1 client.encoding.client-defaults.min-speed=1 client.encoding.client-defaults.rgb_formats=('RGB', 'RGBX', 'RGBA') client.encoding.client-defaults.rgb_lz4=True client.encoding.client-defaults.send-timestamps=False client.encoding.client-defaults.speed=0 client.encoding.client-defaults.transparency=True client.encoding.client-defaults.video_b_frames=('h264',) client.encoding.client-defaults.video_max_size=(4096, 4096) client.encoding.decode_errors=0 client.encoding.default= client.encoding.defaults.min-quality=1 client.encoding.defaults.min-speed=1 client.encoding.pixels_decoded_per_second=39275867 client.encoding.pixels_encoded_per_second=30747662 client.encoding.pixels_per_second=444009 client.encoding.quality.50p=99 client.encoding.quality.80p=99 client.encoding.quality.90p=99 client.encoding.quality.avg=98 client.encoding.quality.cur=99 client.encoding.quality.max=99 client.encoding.quality.min=56 client.encoding.regions_per_second=1 client.encoding.speed.50p=23 client.encoding.speed.80p=30 client.encoding.speed.90p=32 client.encoding.speed.avg=19 client.encoding.speed.cur=16 client.encoding.speed.max=60 client.encoding.speed.min=1 client.encodings=('h264', 'vp9', 'vp8', 'png', 'png/P', 'png/L', 'webp', 'avif', 'rgb', 'jpeg', 'jpega', 'av1', 'scroll', 'grayscale', 'stream') client.encodings.core=('h264', 'vp9', 'vp8', 'png', 'png/P', 'png/L', 'webp', 'avif', 'rgb24', 'rgb32', 'jpeg', 'jpega', 'av1', 'scroll') client.encodings.window-icon=('BGRA', 'default', 'png') client.file-transfers.ask=False client.file-transfers.ask-timeout=3600 client.file-transfers.chunks=65536 client.file-transfers.enabled=True client.file-transfers.open=True client.file-transfers.open-ask=False client.file-transfers.open-url=True client.file-transfers.open-url-ask=False client.file-transfers.printing=True client.file-transfers.printing-ask=False client.file-transfers.remote.file-ask-timeout=3600 client.file-transfers.remote.file-chunks=65536 client.file-transfers.remote.file-size-limit=1000000000 client.file-transfers.remote.file-transfer=True client.file-transfers.remote.file-transfer-ask=True client.file-transfers.remote.open-files=True client.file-transfers.remote.open-files-ask=True client.file-transfers.remote.open-url=True client.file-transfers.remote.open-url-ask=True client.file-transfers.remote.printing=True client.file-transfers.remote.printing-ask=False client.file-transfers.size-limit=1000000000 client.hello-sent=True client.idle=False client.idle_time=0 client.jitter=0 client.keyboard.enabled=True client.keyboard.keycode.0=19 client.keyboard.keycode.0x1005ff70=138 client.keyboard.keycode.0x1005ff71=140 client.keyboard.keycode.0x1008ff07=251 client.keyboard.keycode.0x1008ffb4=254 client.keyboard.keycode.0x1008ffb5=255 client.keyboard.keycode.0x1008ffb6=221 client.keyboard.keycode.0x100810f4=252 client.keyboard.keycode.0x100810f5=253 client.keyboard.keycode.1=10 client.keyboard.keycode.2=11 client.keyboard.keycode.3=12 client.keyboard.keycode.4=13 client.keyboard.keycode.5=14 client.keyboard.keycode.6=15 client.keyboard.keycode.7=16 client.keyboard.keycode.8=17 client.keyboard.keycode.9=18 client.keyboard.keycode.A=38 client.keyboard.keycode.Alt_L=204 client.keyboard.keycode.Alt_R=108 client.keyboard.keycode.AudioForward=216 client.keyboard.keycode.AudioLowerVolume=122 client.keyboard.keycode.AudioMedia=234 client.keyboard.keycode.AudioMicMute=198 client.keyboard.keycode.AudioMute=121 client.keyboard.keycode.AudioNext=171 client.keyboard.keycode.AudioPause=172 client.keyboard.keycode.AudioPlay=172 client.keyboard.keycode.AudioPrev=173 client.keyboard.keycode.AudioRaiseVolume=123 client.keyboard.keycode.AudioRecord=175 client.keyboard.keycode.AudioRewind=176 client.keyboard.keycode.AudioStop=174 client.keyboard.keycode.B=56 client.keyboard.keycode.Back=166 client.keyboard.keycode.BackSpace=22 client.keyboard.keycode.Battery=244 client.keyboard.keycode.Bluetooth=245 client.keyboard.keycode.Break=127 client.keyboard.keycode.C=54 client.keyboard.keycode.Calculator=148 client.keyboard.keycode.Cancel=231 client.keyboard.keycode.Caps_Lock=66 client.keyboard.keycode.ClearGrab=63 client.keyboard.keycode.Close=182 client.keyboard.keycode.Control_L=37 client.keyboard.keycode.Control_R=105 client.keyboard.keycode.Copy=141 client.keyboard.keycode.Cut=145 client.keyboard.keycode.D=40 client.keyboard.keycode.DOS=159 client.keyboard.keycode.Delete=119 client.keyboard.keycode.Display=235 client.keyboard.keycode.Documents=243 client.keyboard.keycode.Down=116 client.keyboard.keycode.E=26 client.keyboard.keycode.Eject=169 client.keyboard.keycode.End=115 client.keyboard.keycode.Escape=9 client.keyboard.keycode.Explorer=152 client.keyboard.keycode.F=41 client.keyboard.keycode.F1=67 client.keyboard.keycode.F2=68 client.keyboard.keycode.F3=69 client.keyboard.keycode.F4=70 client.keyboard.keycode.F5=71 client.keyboard.keycode.F6=72 client.keyboard.keycode.F7=73 client.keyboard.keycode.F8=74 client.keyboard.keycode.F9=75 client.keyboard.keycode.F10=76 client.keyboard.keycode.F11=95 client.keyboard.keycode.F12=96 client.keyboard.keycode.Favorites=164 client.keyboard.keycode.Finance=227 client.keyboard.keycode.Find=144 client.keyboard.keycode.Forward=167 client.keyboard.keycode.G=42 client.keyboard.keycode.Game=228 client.keyboard.keycode.Go=226 client.keyboard.keycode.H=43 client.keyboard.keycode.Hangul=130 client.keyboard.keycode.Hangul_Hanja=131 client.keyboard.keycode.Help=146 client.keyboard.keycode.Henkan=100 client.keyboard.keycode.Henkan_Mode=100 client.keyboard.keycode.Hiragana=99 client.keyboard.keycode.Hiragana_Katakana=101 client.keyboard.keycode.Home=110 client.keyboard.keycode.HomePage=180 client.keyboard.keycode.Hyper_L=207 client.keyboard.keycode.I=31 client.keyboard.keycode.ISO_Left_Tab=23 client.keyboard.keycode.ISO_Level3_Shift=92 client.keyboard.keycode.ISO_Level5_Shift=203 client.keyboard.keycode.Insert=118 client.keyboard.keycode.J=44 client.keyboard.keycode.K=45 client.keyboard.keycode.KP_0=90 client.keyboard.keycode.KP_1=87 client.keyboard.keycode.KP_2=88 client.keyboard.keycode.KP_3=89 client.keyboard.keycode.KP_4=83 client.keyboard.keycode.KP_5=84 client.keyboard.keycode.KP_6=85 client.keyboard.keycode.KP_7=79 client.keyboard.keycode.KP_8=80 client.keyboard.keycode.KP_9=81 client.keyboard.keycode.KP_Add=86 client.keyboard.keycode.KP_Begin=84 client.keyboard.keycode.KP_Decimal=129 client.keyboard.keycode.KP_Delete=91 client.keyboard.keycode.KP_Divide=106 client.keyboard.keycode.KP_Down=88 client.keyboard.keycode.KP_End=87 client.keyboard.keycode.KP_Enter=104 client.keyboard.keycode.KP_Equal=125 client.keyboard.keycode.KP_Home=79 client.keyboard.keycode.KP_Insert=90 client.keyboard.keycode.KP_Left=83 client.keyboard.keycode.KP_Multiply=63 client.keyboard.keycode.KP_Next=89 client.keyboard.keycode.KP_Page_Up=81 client.keyboard.keycode.KP_Prior=81 client.keyboard.keycode.KP_Right=85 client.keyboard.keycode.KP_Subtract=82 client.keyboard.keycode.KP_Up=80 client.keyboard.keycode.Katakana=98 client.keyboard.keycode.KbdBrightnessDown=237 client.keyboard.keycode.KbdBrightnessUp=238 client.keyboard.keycode.KbdLightOnOff=236 client.keyboard.keycode.L=46 client.keyboard.keycode.Launch1=156 client.keyboard.keycode.Launch2=157 client.keyboard.keycode.Launch3=210 client.keyboard.keycode.Launch4=211 client.keyboard.keycode.Launch5=192 client.keyboard.keycode.Launch6=193 client.keyboard.keycode.Launch7=194 client.keyboard.keycode.Launch8=195 client.keyboard.keycode.Launch9=196 client.keyboard.keycode.LaunchA=128 client.keyboard.keycode.LaunchB=212 client.keyboard.keycode.Left=113 client.keyboard.keycode.Linefeed=109 client.keyboard.keycode.M=58 client.keyboard.keycode.Mail=163 client.keyboard.keycode.MailForward=241 client.keyboard.keycode.Menu=135 client.keyboard.keycode.MenuKB=147 client.keyboard.keycode.Messenger=224 client.keyboard.keycode.Meta_L=205 client.keyboard.keycode.Meta_R=108 client.keyboard.keycode.MonBrightnessDown=232 client.keyboard.keycode.MonBrightnessUp=233 client.keyboard.keycode.Muhenkan=102 client.keyboard.keycode.MyComputer=165 client.keyboard.keycode.N=57 client.keyboard.keycode.New=189 client.keyboard.keycode.Next=117 client.keyboard.keycode.Next_VMode=86 client.keyboard.keycode.Num_Lock=77 client.keyboard.keycode.O=32 client.keyboard.keycode.Open=142 client.keyboard.keycode.P=33 client.keyboard.keycode.Page_Down=117 client.keyboard.keycode.Page_Up=112 client.keyboard.keycode.Paste=143 client.keyboard.keycode.Pause=127 client.keyboard.keycode.Phone=177 client.keyboard.keycode.PowerOff=124 client.keyboard.keycode.Prev_VMode=82 client.keyboard.keycode.Print=218 client.keyboard.keycode.Prior=112 client.keyboard.keycode.Q=24 client.keyboard.keycode.R=27 client.keyboard.keycode.Redo=190 client.keyboard.keycode.Reload=181 client.keyboard.keycode.Reply=240 client.keyboard.keycode.Return=36 client.keyboard.keycode.Right=114 client.keyboard.keycode.RotateWindows=161 client.keyboard.keycode.S=39 client.keyboard.keycode.Save=242 client.keyboard.keycode.ScreenSaver=160 client.keyboard.keycode.ScrollDown=186 client.keyboard.keycode.ScrollUp=185 client.keyboard.keycode.Scroll_Lock=78 client.keyboard.keycode.Search=225 client.keyboard.keycode.Send=153 client.keyboard.keycode.Shift_L=50 client.keyboard.keycode.Shift_R=62 client.keyboard.keycode.Shop=229 client.keyboard.keycode.Sleep=150 client.keyboard.keycode.SunFront=140 client.keyboard.keycode.SunProps=138 client.keyboard.keycode.Super_L=206 client.keyboard.keycode.Super_R=134 client.keyboard.keycode.Suspend=213 client.keyboard.keycode.Switch_VT_1=67 client.keyboard.keycode.Switch_VT_2=68 client.keyboard.keycode.Switch_VT_3=69 client.keyboard.keycode.Switch_VT_4=70 client.keyboard.keycode.Switch_VT_5=71 client.keyboard.keycode.Switch_VT_6=72 client.keyboard.keycode.Switch_VT_7=73 client.keyboard.keycode.Switch_VT_8=74 client.keyboard.keycode.Switch_VT_9=75 client.keyboard.keycode.Switch_VT_10=76 client.keyboard.keycode.Switch_VT_11=95 client.keyboard.keycode.Switch_VT_12=96 client.keyboard.keycode.Sys_Req=107 client.keyboard.keycode.T=28 client.keyboard.keycode.Tab=23 client.keyboard.keycode.TaskPane=162 client.keyboard.keycode.Tools=179 client.keyboard.keycode.TouchpadOff=201 client.keyboard.keycode.TouchpadOn=200 client.keyboard.keycode.TouchpadToggle=199 client.keyboard.keycode.U=30 client.keyboard.keycode.UWB=247 client.keyboard.keycode.Undo=139 client.keyboard.keycode.Ungrab=106 client.keyboard.keycode.Up=111 client.keyboard.keycode.V=55 client.keyboard.keycode.W=25 client.keyboard.keycode.WLAN=246 client.keyboard.keycode.WWW=158 client.keyboard.keycode.WakeUp=151 client.keyboard.keycode.WebCam=220 client.keyboard.keycode.X=53 client.keyboard.keycode.XF86AudioForward=216 client.keyboard.keycode.XF86AudioLowerVolume=122 client.keyboard.keycode.XF86AudioMedia=234 client.keyboard.keycode.XF86AudioMicMute=198 client.keyboard.keycode.XF86AudioMute=121 client.keyboard.keycode.XF86AudioNext=171 client.keyboard.keycode.XF86AudioPause=209 client.keyboard.keycode.XF86AudioPlay=215 client.keyboard.keycode.XF86AudioPreset=221 client.keyboard.keycode.XF86AudioPrev=173 client.keyboard.keycode.XF86AudioRaiseVolume=123 client.keyboard.keycode.XF86AudioRecord=175 client.keyboard.keycode.XF86AudioRewind=176 client.keyboard.keycode.XF86AudioStop=174 client.keyboard.keycode.XF86Back=166 client.keyboard.keycode.XF86Battery=244 client.keyboard.keycode.XF86Bluetooth=245 client.keyboard.keycode.XF86BrightnessAuto=252 client.keyboard.keycode.XF86Calculator=148 client.keyboard.keycode.XF86ClearGrab=63 client.keyboard.keycode.XF86Close=214 client.keyboard.keycode.XF86Copy=141 client.keyboard.keycode.XF86Cut=145 client.keyboard.keycode.XF86DOS=159 client.keyboard.keycode.XF86Display=235 client.keyboard.keycode.XF86DisplayOff=253 client.keyboard.keycode.XF86Documents=243 client.keyboard.keycode.XF86Eject=174 client.keyboard.keycode.XF86Explorer=152 client.keyboard.keycode.XF86Favorites=164 client.keyboard.keycode.XF86Finance=227 client.keyboard.keycode.XF86Forward=167 client.keyboard.keycode.XF86Game=228 client.keyboard.keycode.XF86Go=226 client.keyboard.keycode.XF86HomePage=180 client.keyboard.keycode.XF86KbdBrightnessDown=237 client.keyboard.keycode.XF86KbdBrightnessUp=238 client.keyboard.keycode.XF86KbdLightOnOff=236 client.keyboard.keycode.XF86Launch1=156 client.keyboard.keycode.XF86Launch2=157 client.keyboard.keycode.XF86Launch3=210 client.keyboard.keycode.XF86Launch4=211 client.keyboard.keycode.XF86Launch5=192 client.keyboard.keycode.XF86Launch6=193 client.keyboard.keycode.XF86Launch7=194 client.keyboard.keycode.XF86Launch8=195 client.keyboard.keycode.XF86Launch9=196 client.keyboard.keycode.XF86LaunchA=128 client.keyboard.keycode.XF86LaunchB=212 client.keyboard.keycode.XF86Mail=223 client.keyboard.keycode.XF86MailForward=241 client.keyboard.keycode.XF86MenuKB=147 client.keyboard.keycode.XF86Messenger=224 client.keyboard.keycode.XF86MonBrightnessCycle=251 client.keyboard.keycode.XF86MonBrightnessDown=232 client.keyboard.keycode.XF86MonBrightnessUp=233 client.keyboard.keycode.XF86MyComputer=165 client.keyboard.keycode.XF86New=189 client.keyboard.keycode.XF86Next_VMode=249 client.keyboard.keycode.XF86Open=142 client.keyboard.keycode.XF86Paste=143 client.keyboard.keycode.XF86Phone=177 client.keyboard.keycode.XF86PowerOff=124 client.keyboard.keycode.XF86Prev_VMode=250 client.keyboard.keycode.XF86RFKill=255 client.keyboard.keycode.XF86Reload=181 client.keyboard.keycode.XF86Reply=240 client.keyboard.keycode.XF86RotateWindows=161 client.keyboard.keycode.XF86Save=242 client.keyboard.keycode.XF86ScreenSaver=160 client.keyboard.keycode.XF86ScrollDown=186 client.keyboard.keycode.XF86ScrollUp=185 client.keyboard.keycode.XF86Search=225 client.keyboard.keycode.XF86Send=239 client.keyboard.keycode.XF86Shop=229 client.keyboard.keycode.XF86Sleep=150 client.keyboard.keycode.XF86Suspend=213 client.keyboard.keycode.XF86Switch_VT_1=67 client.keyboard.keycode.XF86Switch_VT_2=68 client.keyboard.keycode.XF86Switch_VT_3=69 client.keyboard.keycode.XF86Switch_VT_4=70 client.keyboard.keycode.XF86Switch_VT_5=71 client.keyboard.keycode.XF86Switch_VT_6=72 client.keyboard.keycode.XF86Switch_VT_7=73 client.keyboard.keycode.XF86Switch_VT_8=74 client.keyboard.keycode.XF86Switch_VT_9=75 client.keyboard.keycode.XF86Switch_VT_10=76 client.keyboard.keycode.XF86Switch_VT_11=95 client.keyboard.keycode.XF86Switch_VT_12=96 client.keyboard.keycode.XF86TaskPane=162 client.keyboard.keycode.XF86Tools=191 client.keyboard.keycode.XF86TouchpadOff=201 client.keyboard.keycode.XF86TouchpadOn=200 client.keyboard.keycode.XF86TouchpadToggle=199 client.keyboard.keycode.XF86UWB=247 client.keyboard.keycode.XF86Ungrab=106 client.keyboard.keycode.XF86WLAN=246 client.keyboard.keycode.XF86WWAN=254 client.keyboard.keycode.XF86WWW=158 client.keyboard.keycode.XF86WakeUp=151 client.keyboard.keycode.XF86WebCam=220 client.keyboard.keycode.XF86Xfer=155 client.keyboard.keycode.Xfer=155 client.keyboard.keycode.Y=29 client.keyboard.keycode.Z=52 client.keyboard.keycode.a=38 client.keyboard.keycode.ampersand=16 client.keyboard.keycode.apostrophe=48 client.keyboard.keycode.asciicircum=15 client.keyboard.keycode.asciitilde=49 client.keyboard.keycode.asterisk=17 client.keyboard.keycode.at=11 client.keyboard.keycode.b=56 client.keyboard.keycode.backslash=51 client.keyboard.keycode.bar=94 client.keyboard.keycode.braceleft=34 client.keyboard.keycode.braceright=35 client.keyboard.keycode.bracketleft=34 client.keyboard.keycode.bracketright=35 client.keyboard.keycode.brokenbar=94 client.keyboard.keycode.c=54 client.keyboard.keycode.colon=47 client.keyboard.keycode.comma=59 client.keyboard.keycode.d=40 client.keyboard.keycode.dollar=13 client.keyboard.keycode.e=26 client.keyboard.keycode.equal=21 client.keyboard.keycode.exclam=10 client.keyboard.keycode.f=41 client.keyboard.keycode.g=42 client.keyboard.keycode.grave=49 client.keyboard.keycode.greater=94 client.keyboard.keycode.h=43 client.keyboard.keycode.i=31 client.keyboard.keycode.j=44 client.keyboard.keycode.k=45 client.keyboard.keycode.l=46 client.keyboard.keycode.less=94 client.keyboard.keycode.m=58 client.keyboard.keycode.minus=20 client.keyboard.keycode.n=57 client.keyboard.keycode.numbersign=12 client.keyboard.keycode.o=32 client.keyboard.keycode.p=33 client.keyboard.keycode.parenleft=187 client.keyboard.keycode.parenright=188 client.keyboard.keycode.percent=14 client.keyboard.keycode.period=60 client.keyboard.keycode.plus=21 client.keyboard.keycode.plusminus=126 client.keyboard.keycode.q=24 client.keyboard.keycode.question=61 client.keyboard.keycode.quotedbl=48 client.keyboard.keycode.r=27 client.keyboard.keycode.s=39 client.keyboard.keycode.semicolon=47 client.keyboard.keycode.slash=61 client.keyboard.keycode.space=65 client.keyboard.keycode.t=28 client.keyboard.keycode.u=30 client.keyboard.keycode.underscore=20 client.keyboard.keycode.v=55 client.keyboard.keycode.w=25 client.keyboard.keycode.x=53 client.keyboard.keycode.y=29 client.keyboard.keycode.z=52 client.keyboard.keymap.0=('65307', 'Escape', '9', '0', '0') client.keyboard.keymap.1=('49', '1', '10', '0', '0') client.keyboard.keymap.2=('33', 'exclam', '10', '0', '1') client.keyboard.keymap.3=('50', '2', '11', '0', '0') client.keyboard.keymap.4=('64', 'at', '11', '0', '1') client.keyboard.keymap.5=('51', '3', '12', '0', '0') client.keyboard.keymap.6=('35', 'numbersign', '12', '0', '1') client.keyboard.keymap.7=('52', '4', '13', '0', '0') client.keyboard.keymap.8=('36', 'dollar', '13', '0', '1') client.keyboard.keymap.9=('53', '5', '14', '0', '0') client.keyboard.keymap.10=('37', 'percent', '14', '0', '1') client.keyboard.keymap.11=('54', '6', '15', '0', '0') client.keyboard.keymap.12=('94', 'asciicircum', '15', '0', '1') client.keyboard.keymap.13=('55', '7', '16', '0', '0') client.keyboard.keymap.14=('38', 'ampersand', '16', '0', '1') client.keyboard.keymap.15=('56', '8', '17', '0', '0') client.keyboard.keymap.16=('42', 'asterisk', '17', '0', '1') client.keyboard.keymap.17=('57', '9', '18', '0', '0') client.keyboard.keymap.18=('40', 'parenleft', '18', '0', '1') client.keyboard.keymap.19=('48', '0', '19', '0', '0') client.keyboard.keymap.20=('41', 'parenright', '19', '0', '1') client.keyboard.keymap.21=('45', 'minus', '20', '0', '0') client.keyboard.keymap.22=('95', 'underscore', '20', '0', '1') client.keyboard.keymap.23=('61', 'equal', '21', '0', '0') client.keyboard.keymap.24=('43', 'plus', '21', '0', '1') client.keyboard.keymap.25=('65288', 'BackSpace', '22', '0', '0') client.keyboard.keymap.26=('65288', 'BackSpace', '22', '0', '1') client.keyboard.keymap.27=('65289', 'Tab', '23', '0', '0') client.keyboard.keymap.28=('65056', 'ISO_Left_Tab', '23', '0', '1') client.keyboard.keymap.29=('113', 'q', '24', '0', '0') client.keyboard.keymap.30=('81', 'Q', '24', '0', '1') client.keyboard.keymap.31=('119', 'w', '25', '0', '0') client.keyboard.keymap.32=('87', 'W', '25', '0', '1') client.keyboard.keymap.33=('101', 'e', '26', '0', '0') client.keyboard.keymap.34=('69', 'E', '26', '0', '1') client.keyboard.keymap.35=('114', 'r', '27', '0', '0') client.keyboard.keymap.36=('82', 'R', '27', '0', '1') client.keyboard.keymap.37=('116', 't', '28', '0', '0') client.keyboard.keymap.38=('84', 'T', '28', '0', '1') client.keyboard.keymap.39=('121', 'y', '29', '0', '0') client.keyboard.keymap.40=('89', 'Y', '29', '0', '1') client.keyboard.keymap.41=('117', 'u', '30', '0', '0') client.keyboard.keymap.42=('85', 'U', '30', '0', '1') client.keyboard.keymap.43=('105', 'i', '31', '0', '0') client.keyboard.keymap.44=('73', 'I', '31', '0', '1') client.keyboard.keymap.45=('111', 'o', '32', '0', '0') client.keyboard.keymap.46=('79', 'O', '32', '0', '1') client.keyboard.keymap.47=('112', 'p', '33', '0', '0') client.keyboard.keymap.48=('80', 'P', '33', '0', '1') client.keyboard.keymap.49=('91', 'bracketleft', '34', '0', '0') client.keyboard.keymap.50=('123', 'braceleft', '34', '0', '1') client.keyboard.keymap.51=('93', 'bracketright', '35', '0', '0') client.keyboard.keymap.52=('125', 'braceright', '35', '0', '1') client.keyboard.keymap.53=('65293', 'Return', '36', '0', '0') client.keyboard.keymap.54=('65507', 'Control_L', '37', '0', '0') client.keyboard.keymap.55=('97', 'a', '38', '0', '0') client.keyboard.keymap.56=('65', 'A', '38', '0', '1') client.keyboard.keymap.57=('115', 's', '39', '0', '0') client.keyboard.keymap.58=('83', 'S', '39', '0', '1') client.keyboard.keymap.59=('100', 'd', '40', '0', '0') client.keyboard.keymap.60=('68', 'D', '40', '0', '1') client.keyboard.keymap.61=('102', 'f', '41', '0', '0') client.keyboard.keymap.62=('70', 'F', '41', '0', '1') client.keyboard.keymap.63=('103', 'g', '42', '0', '0') client.keyboard.keymap.64=('71', 'G', '42', '0', '1') client.keyboard.keymap.65=('104', 'h', '43', '0', '0') client.keyboard.keymap.66=('72', 'H', '43', '0', '1') client.keyboard.keymap.67=('106', 'j', '44', '0', '0') client.keyboard.keymap.68=('74', 'J', '44', '0', '1') client.keyboard.keymap.69=('107', 'k', '45', '0', '0') client.keyboard.keymap.70=('75', 'K', '45', '0', '1') client.keyboard.keymap.71=('108', 'l', '46', '0', '0') client.keyboard.keymap.72=('76', 'L', '46', '0', '1') client.keyboard.keymap.73=('59', 'semicolon', '47', '0', '0') client.keyboard.keymap.74=('58', 'colon', '47', '0', '1') client.keyboard.keymap.75=('39', 'apostrophe', '48', '0', '0') client.keyboard.keymap.76=('34', 'quotedbl', '48', '0', '1') client.keyboard.keymap.77=('96', 'grave', '49', '0', '0') client.keyboard.keymap.78=('126', 'asciitilde', '49', '0', '1') client.keyboard.keymap.79=('65505', 'Shift_L', '50', '0', '0') client.keyboard.keymap.80=('92', 'backslash', '51', '0', '0') client.keyboard.keymap.81=('124', 'bar', '51', '0', '1') client.keyboard.keymap.82=('122', 'z', '52', '0', '0') client.keyboard.keymap.83=('90', 'Z', '52', '0', '1') client.keyboard.keymap.84=('120', 'x', '53', '0', '0') client.keyboard.keymap.85=('88', 'X', '53', '0', '1') client.keyboard.keymap.86=('99', 'c', '54', '0', '0') client.keyboard.keymap.87=('67', 'C', '54', '0', '1') client.keyboard.keymap.88=('118', 'v', '55', '0', '0') client.keyboard.keymap.89=('86', 'V', '55', '0', '1') client.keyboard.keymap.90=('98', 'b', '56', '0', '0') client.keyboard.keymap.91=('66', 'B', '56', '0', '1') client.keyboard.keymap.92=('110', 'n', '57', '0', '0') client.keyboard.keymap.93=('78', 'N', '57', '0', '1') client.keyboard.keymap.94=('109', 'm', '58', '0', '0') client.keyboard.keymap.95=('77', 'M', '58', '0', '1') client.keyboard.keymap.96=('44', 'comma', '59', '0', '0') client.keyboard.keymap.97=('60', 'less', '59', '0', '1') client.keyboard.keymap.98=('46', 'period', '60', '0', '0') client.keyboard.keymap.99=('62', 'greater', '60', '0', '1') client.keyboard.keymap.100=('47', 'slash', '61', '0', '0') client.keyboard.keymap.101=('63', 'question', '61', '0', '1') client.keyboard.keymap.102=('65506', 'Shift_R', '62', '0', '0') client.keyboard.keymap.103=('65450', 'KP_Multiply', '63', '0', '0') client.keyboard.keymap.104=('65450', 'KP_Multiply', '63', '0', '1') client.keyboard.keymap.105=('65450', 'KP_Multiply', '63', '0', '2') client.keyboard.keymap.106=('65450', 'KP_Multiply', '63', '0', '3') client.keyboard.keymap.107=('269024801', 'ClearGrab', '63', '0', '4') client.keyboard.keymap.108=('65513', 'Alt_L', '64', '0', '0') client.keyboard.keymap.109=('65511', 'Meta_L', '64', '0', '1') client.keyboard.keymap.110=('32', 'space', '65', '0', '0') client.keyboard.keymap.111=('65509', 'Caps_Lock', '66', '0', '0') client.keyboard.keymap.112=('65470', 'F1', '67', '0', '0') client.keyboard.keymap.113=('65470', 'F1', '67', '0', '1') client.keyboard.keymap.114=('65470', 'F1', '67', '0', '2') client.keyboard.keymap.115=('65470', 'F1', '67', '0', '3') client.keyboard.keymap.116=('269024769', 'Switch_VT_1', '67', '0', '4') client.keyboard.keymap.117=('65471', 'F2', '68', '0', '0') client.keyboard.keymap.118=('65471', 'F2', '68', '0', '1') client.keyboard.keymap.119=('65471', 'F2', '68', '0', '2') client.keyboard.keymap.120=('65471', 'F2', '68', '0', '3') client.keyboard.keymap.121=('269024770', 'Switch_VT_2', '68', '0', '4') client.keyboard.keymap.122=('65472', 'F3', '69', '0', '0') client.keyboard.keymap.123=('65472', 'F3', '69', '0', '1') client.keyboard.keymap.124=('65472', 'F3', '69', '0', '2') client.keyboard.keymap.125=('65472', 'F3', '69', '0', '3') client.keyboard.keymap.126=('269024771', 'Switch_VT_3', '69', '0', '4') client.keyboard.keymap.127=('65473', 'F4', '70', '0', '0') client.keyboard.keymap.128=('65473', 'F4', '70', '0', '1') client.keyboard.keymap.129=('65473', 'F4', '70', '0', '2') client.keyboard.keymap.130=('65473', 'F4', '70', '0', '3') client.keyboard.keymap.131=('269024772', 'Switch_VT_4', '70', '0', '4') client.keyboard.keymap.132=('65474', 'F5', '71', '0', '0') client.keyboard.keymap.133=('65474', 'F5', '71', '0', '1') client.keyboard.keymap.134=('65474', 'F5', '71', '0', '2') client.keyboard.keymap.135=('65474', 'F5', '71', '0', '3') client.keyboard.keymap.136=('269024773', 'Switch_VT_5', '71', '0', '4') client.keyboard.keymap.137=('65475', 'F6', '72', '0', '0') client.keyboard.keymap.138=('65475', 'F6', '72', '0', '1') client.keyboard.keymap.139=('65475', 'F6', '72', '0', '2') client.keyboard.keymap.140=('65475', 'F6', '72', '0', '3') client.keyboard.keymap.141=('269024774', 'Switch_VT_6', '72', '0', '4') client.keyboard.keymap.142=('65476', 'F7', '73', '0', '0') client.keyboard.keymap.143=('65476', 'F7', '73', '0', '1') client.keyboard.keymap.144=('65476', 'F7', '73', '0', '2') client.keyboard.keymap.145=('65476', 'F7', '73', '0', '3') client.keyboard.keymap.146=('269024775', 'Switch_VT_7', '73', '0', '4') client.keyboard.keymap.147=('65477', 'F8', '74', '0', '0') client.keyboard.keymap.148=('65477', 'F8', '74', '0', '1') client.keyboard.keymap.149=('65477', 'F8', '74', '0', '2') client.keyboard.keymap.150=('65477', 'F8', '74', '0', '3') client.keyboard.keymap.151=('269024776', 'Switch_VT_8', '74', '0', '4') client.keyboard.keymap.152=('65478', 'F9', '75', '0', '0') client.keyboard.keymap.153=('65478', 'F9', '75', '0', '1') client.keyboard.keymap.154=('65478', 'F9', '75', '0', '2') client.keyboard.keymap.155=('65478', 'F9', '75', '0', '3') client.keyboard.keymap.156=('269024777', 'Switch_VT_9', '75', '0', '4') client.keyboard.keymap.157=('65479', 'F10', '76', '0', '0') client.keyboard.keymap.158=('65479', 'F10', '76', '0', '1') client.keyboard.keymap.159=('65479', 'F10', '76', '0', '2') client.keyboard.keymap.160=('65479', 'F10', '76', '0', '3') client.keyboard.keymap.161=('269024778', 'Switch_VT_10', '76', '0', '4') client.keyboard.keymap.162=('65407', 'Num_Lock', '77', '0', '0') client.keyboard.keymap.163=('65300', 'Scroll_Lock', '78', '0', '0') client.keyboard.keymap.164=('65429', 'KP_Home', '79', '0', '0') client.keyboard.keymap.165=('65463', 'KP_7', '79', '0', '1') client.keyboard.keymap.166=('65431', 'KP_Up', '80', '0', '0') client.keyboard.keymap.167=('65464', 'KP_8', '80', '0', '1') client.keyboard.keymap.168=('65434', 'KP_Page_Up', '81', '0', '0') client.keyboard.keymap.169=('65465', 'KP_9', '81', '0', '1') client.keyboard.keymap.170=('65453', 'KP_Subtract', '82', '0', '0') client.keyboard.keymap.171=('65453', 'KP_Subtract', '82', '0', '1') client.keyboard.keymap.172=('65453', 'KP_Subtract', '82', '0', '2') client.keyboard.keymap.173=('65453', 'KP_Subtract', '82', '0', '3') client.keyboard.keymap.174=('269024803', 'Prev_VMode', '82', '0', '4') client.keyboard.keymap.175=('65430', 'KP_Left', '83', '0', '0') client.keyboard.keymap.176=('65460', 'KP_4', '83', '0', '1') client.keyboard.keymap.177=('65437', 'KP_Begin', '84', '0', '0') client.keyboard.keymap.178=('65461', 'KP_5', '84', '0', '1') client.keyboard.keymap.179=('65432', 'KP_Right', '85', '0', '0') client.keyboard.keymap.180=('65462', 'KP_6', '85', '0', '1') client.keyboard.keymap.181=('65451', 'KP_Add', '86', '0', '0') client.keyboard.keymap.182=('65451', 'KP_Add', '86', '0', '1') client.keyboard.keymap.183=('65451', 'KP_Add', '86', '0', '2') client.keyboard.keymap.184=('65451', 'KP_Add', '86', '0', '3') client.keyboard.keymap.185=('269024802', 'Next_VMode', '86', '0', '4') client.keyboard.keymap.186=('65436', 'KP_End', '87', '0', '0') client.keyboard.keymap.187=('65457', 'KP_1', '87', '0', '1') client.keyboard.keymap.188=('65433', 'KP_Down', '88', '0', '0') client.keyboard.keymap.189=('65458', 'KP_2', '88', '0', '1') client.keyboard.keymap.190=('65435', 'KP_Next', '89', '0', '0') client.keyboard.keymap.191=('65459', 'KP_3', '89', '0', '1') client.keyboard.keymap.192=('65438', 'KP_Insert', '90', '0', '0') client.keyboard.keymap.193=('65456', 'KP_0', '90', '0', '1') client.keyboard.keymap.194=('65439', 'KP_Delete', '91', '0', '0') client.keyboard.keymap.195=('65454', 'KP_Decimal', '91', '0', '1') client.keyboard.keymap.196=('65027', 'ISO_Level3_Shift', '92', '0', '0') client.keyboard.keymap.197=('60', 'less', '94', '0', '0') client.keyboard.keymap.198=('62', 'greater', '94', '0', '1') client.keyboard.keymap.199=('124', 'bar', '94', '0', '2') client.keyboard.keymap.200=('166', 'brokenbar', '94', '0', '3') client.keyboard.keymap.201=('65480', 'F11', '95', '0', '0') client.keyboard.keymap.202=('65480', 'F11', '95', '0', '1') client.keyboard.keymap.203=('65480', 'F11', '95', '0', '2') client.keyboard.keymap.204=('65480', 'F11', '95', '0', '3') client.keyboard.keymap.205=('269024779', 'Switch_VT_11', '95', '0', '4') client.keyboard.keymap.206=('65481', 'F12', '96', '0', '0') client.keyboard.keymap.207=('65481', 'F12', '96', '0', '1') client.keyboard.keymap.208=('65481', 'F12', '96', '0', '2') client.keyboard.keymap.209=('65481', 'F12', '96', '0', '3') client.keyboard.keymap.210=('269024780', 'Switch_VT_12', '96', '0', '4') client.keyboard.keymap.211=('65318', 'Katakana', '98', '0', '0') client.keyboard.keymap.212=('65317', 'Hiragana', '99', '0', '0') client.keyboard.keymap.213=('65315', 'Henkan', '100', '0', '0') client.keyboard.keymap.214=('65319', 'Hiragana_Katakana', '101', '0', '0') client.keyboard.keymap.215=('65314', 'Muhenkan', '102', '0', '0') client.keyboard.keymap.216=('65421', 'KP_Enter', '104', '0', '0') client.keyboard.keymap.217=('65508', 'Control_R', '105', '0', '0') client.keyboard.keymap.218=('65455', 'KP_Divide', '106', '0', '0') client.keyboard.keymap.219=('65455', 'KP_Divide', '106', '0', '1') client.keyboard.keymap.220=('65455', 'KP_Divide', '106', '0', '2') client.keyboard.keymap.221=('65455', 'KP_Divide', '106', '0', '3') client.keyboard.keymap.222=('269024800', 'Ungrab', '106', '0', '4') client.keyboard.keymap.223=('65377', 'Print', '107', '0', '0') client.keyboard.keymap.224=('65301', 'Sys_Req', '107', '0', '1') client.keyboard.keymap.225=('65514', 'Alt_R', '108', '0', '0') client.keyboard.keymap.226=('65512', 'Meta_R', '108', '0', '1') client.keyboard.keymap.227=('65290', 'Linefeed', '109', '0', '0') client.keyboard.keymap.228=('65360', 'Home', '110', '0', '0') client.keyboard.keymap.229=('65362', 'Up', '111', '0', '0') client.keyboard.keymap.230=('65365', 'Page_Up', '112', '0', '0') client.keyboard.keymap.231=('65361', 'Left', '113', '0', '0') client.keyboard.keymap.232=('65363', 'Right', '114', '0', '0') client.keyboard.keymap.233=('65367', 'End', '115', '0', '0') client.keyboard.keymap.234=('65364', 'Down', '116', '0', '0') client.keyboard.keymap.235=('65366', 'Page_Down', '117', '0', '0') client.keyboard.keymap.236=('65379', 'Insert', '118', '0', '0') client.keyboard.keymap.237=('65535', 'Delete', '119', '0', '0') client.keyboard.keymap.238=('269025042', 'AudioMute', '121', '0', '0') client.keyboard.keymap.239=('269025041', 'AudioLowerVolume', '122', '0', '0') client.keyboard.keymap.240=('269025043', 'AudioRaiseVolume', '123', '0', '0') client.keyboard.keymap.241=('269025066', 'PowerOff', '124', '0', '0') client.keyboard.keymap.242=('65469', 'KP_Equal', '125', '0', '0') client.keyboard.keymap.243=('177', 'plusminus', '126', '0', '0') client.keyboard.keymap.244=('65299', 'Pause', '127', '0', '0') client.keyboard.keymap.245=('65387', 'Break', '127', '0', '1') client.keyboard.keymap.246=('269025098', 'LaunchA', '128', '0', '0') client.keyboard.keymap.247=('65454', 'KP_Decimal', '129', '0', '0') client.keyboard.keymap.248=('65454', 'KP_Decimal', '129', '0', '1') client.keyboard.keymap.249=('65329', 'Hangul', '130', '0', '0') client.keyboard.keymap.250=('65332', 'Hangul_Hanja', '131', '0', '0') client.keyboard.keymap.251=('65515', 'Super_L', '133', '0', '0') client.keyboard.keymap.252=('65516', 'Super_R', '134', '0', '0') client.keyboard.keymap.253=('65383', 'Menu', '135', '0', '0') client.keyboard.keymap.254=('65385', 'Cancel', '136', '0', '0') client.keyboard.keymap.255=('65382', 'Redo', '137', '0', '0') client.keyboard.keymap.256=('268828528', '0x1005ff70', '138', '0', '0') client.keyboard.keymap.257=('65381', 'Undo', '139', '0', '0') client.keyboard.keymap.258=('268828529', '0x1005ff71', '140', '0', '0') client.keyboard.keymap.259=('269025111', 'Copy', '141', '0', '0') client.keyboard.keymap.260=('269025131', 'Open', '142', '0', '0') client.keyboard.keymap.261=('269025133', 'Paste', '143', '0', '0') client.keyboard.keymap.262=('65384', 'Find', '144', '0', '0') client.keyboard.keymap.263=('269025112', 'Cut', '145', '0', '0') client.keyboard.keymap.264=('65386', 'Help', '146', '0', '0') client.keyboard.keymap.265=('269025125', 'MenuKB', '147', '0', '0') client.keyboard.keymap.266=('269025053', 'Calculator', '148', '0', '0') client.keyboard.keymap.267=('269025071', 'Sleep', '150', '0', '0') client.keyboard.keymap.268=('269025067', 'WakeUp', '151', '0', '0') client.keyboard.keymap.269=('269025117', 'Explorer', '152', '0', '0') client.keyboard.keymap.270=('269025147', 'Send', '153', '0', '0') client.keyboard.keymap.271=('269025162', 'Xfer', '155', '0', '0') client.keyboard.keymap.272=('269025089', 'Launch1', '156', '0', '0') client.keyboard.keymap.273=('269025090', 'Launch2', '157', '0', '0') client.keyboard.keymap.274=('269025070', 'WWW', '158', '0', '0') client.keyboard.keymap.275=('269025114', 'DOS', '159', '0', '0') client.keyboard.keymap.276=('269025069', 'ScreenSaver', '160', '0', '0') client.keyboard.keymap.277=('269025140', 'RotateWindows', '161', '0', '0') client.keyboard.keymap.278=('269025151', 'TaskPane', '162', '0', '0') client.keyboard.keymap.279=('269025049', 'Mail', '163', '0', '0') client.keyboard.keymap.280=('269025072', 'Favorites', '164', '0', '0') client.keyboard.keymap.281=('269025075', 'MyComputer', '165', '0', '0') client.keyboard.keymap.282=('269025062', 'Back', '166', '0', '0') client.keyboard.keymap.283=('269025063', 'Forward', '167', '0', '0') client.keyboard.keymap.284=('269025068', 'Eject', '169', '0', '0') client.keyboard.keymap.285=('269025068', 'Eject', '170', '0', '0') client.keyboard.keymap.286=('269025047', 'AudioNext', '171', '0', '0') client.keyboard.keymap.287=('269025044', 'AudioPlay', '172', '0', '0') client.keyboard.keymap.288=('269025073', 'AudioPause', '172', '0', '1') client.keyboard.keymap.289=('269025046', 'AudioPrev', '173', '0', '0') client.keyboard.keymap.290=('269025045', 'AudioStop', '174', '0', '0') client.keyboard.keymap.291=('269025068', 'Eject', '174', '0', '1') client.keyboard.keymap.292=('269025052', 'AudioRecord', '175', '0', '0') client.keyboard.keymap.293=('269025086', 'AudioRewind', '176', '0', '0') client.keyboard.keymap.294=('269025134', 'Phone', '177', '0', '0') client.keyboard.keymap.295=('269025153', 'Tools', '179', '0', '0') client.keyboard.keymap.296=('269025048', 'HomePage', '180', '0', '0') client.keyboard.keymap.297=('269025139', 'Reload', '181', '0', '0') client.keyboard.keymap.298=('269025110', 'Close', '182', '0', '0') client.keyboard.keymap.299=('269025144', 'ScrollUp', '185', '0', '0') client.keyboard.keymap.300=('269025145', 'ScrollDown', '186', '0', '0') client.keyboard.keymap.301=('40', 'parenleft', '187', '0', '0') client.keyboard.keymap.302=('41', 'parenright', '188', '0', '0') client.keyboard.keymap.303=('269025128', 'New', '189', '0', '0') client.keyboard.keymap.304=('65382', 'Redo', '190', '0', '0') client.keyboard.keymap.305=('269025153', 'Tools', '191', '0', '0') client.keyboard.keymap.306=('269025093', 'Launch5', '192', '0', '0') client.keyboard.keymap.307=('269025094', 'Launch6', '193', '0', '0') client.keyboard.keymap.308=('269025095', 'Launch7', '194', '0', '0') client.keyboard.keymap.309=('269025096', 'Launch8', '195', '0', '0') client.keyboard.keymap.310=('269025097', 'Launch9', '196', '0', '0') client.keyboard.keymap.311=('269025202', 'AudioMicMute', '198', '0', '0') client.keyboard.keymap.312=('269025193', 'TouchpadToggle', '199', '0', '0') client.keyboard.keymap.313=('269025200', 'TouchpadOn', '200', '0', '0') client.keyboard.keymap.314=('269025201', 'TouchpadOff', '201', '0', '0') client.keyboard.keymap.315=('65041', 'ISO_Level5_Shift', '203', '0', '0') client.keyboard.keymap.316=('65513', 'Alt_L', '204', '0', '1') client.keyboard.keymap.317=('65511', 'Meta_L', '205', '0', '1') client.keyboard.keymap.318=('65515', 'Super_L', '206', '0', '1') client.keyboard.keymap.319=('65517', 'Hyper_L', '207', '0', '1') client.keyboard.keymap.320=('269025044', 'AudioPlay', '208', '0', '0') client.keyboard.keymap.321=('269025073', 'AudioPause', '209', '0', '0') client.keyboard.keymap.322=('269025091', 'Launch3', '210', '0', '0') client.keyboard.keymap.323=('269025092', 'Launch4', '211', '0', '0') client.keyboard.keymap.324=('269025099', 'LaunchB', '212', '0', '0') client.keyboard.keymap.325=('269025191', 'Suspend', '213', '0', '0') client.keyboard.keymap.326=('269025110', 'Close', '214', '0', '0') client.keyboard.keymap.327=('269025044', 'AudioPlay', '215', '0', '0') client.keyboard.keymap.328=('269025175', 'AudioForward', '216', '0', '0') client.keyboard.keymap.329=('65377', 'Print', '218', '0', '0') client.keyboard.keymap.330=('269025167', 'WebCam', '220', '0', '0') client.keyboard.keymap.331=('269025206', '0x1008ffb6', '221', '0', '0') client.keyboard.keymap.332=('269025049', 'Mail', '223', '0', '0') client.keyboard.keymap.333=('269025166', 'Messenger', '224', '0', '0') client.keyboard.keymap.334=('269025051', 'Search', '225', '0', '0') client.keyboard.keymap.335=('269025119', 'Go', '226', '0', '0') client.keyboard.keymap.336=('269025084', 'Finance', '227', '0', '0') client.keyboard.keymap.337=('269025118', 'Game', '228', '0', '0') client.keyboard.keymap.338=('269025078', 'Shop', '229', '0', '0') client.keyboard.keymap.339=('65385', 'Cancel', '231', '0', '0') client.keyboard.keymap.340=('269025027', 'MonBrightnessDown', '232', '0', '0') client.keyboard.keymap.341=('269025026', 'MonBrightnessUp', '233', '0', '0') client.keyboard.keymap.342=('269025074', 'AudioMedia', '234', '0', '0') client.keyboard.keymap.343=('269025113', 'Display', '235', '0', '0') client.keyboard.keymap.344=('269025028', 'KbdLightOnOff', '236', '0', '0') client.keyboard.keymap.345=('269025030', 'KbdBrightnessDown', '237', '0', '0') client.keyboard.keymap.346=('269025029', 'KbdBrightnessUp', '238', '0', '0') client.keyboard.keymap.347=('269025147', 'Send', '239', '0', '0') client.keyboard.keymap.348=('269025138', 'Reply', '240', '0', '0') client.keyboard.keymap.349=('269025168', 'MailForward', '241', '0', '0') client.keyboard.keymap.350=('269025143', 'Save', '242', '0', '0') client.keyboard.keymap.351=('269025115', 'Documents', '243', '0', '0') client.keyboard.keymap.352=('269025171', 'Battery', '244', '0', '0') client.keyboard.keymap.353=('269025172', 'Bluetooth', '245', '0', '0') client.keyboard.keymap.354=('269025173', 'WLAN', '246', '0', '0') client.keyboard.keymap.355=('269025174', 'UWB', '247', '0', '0') client.keyboard.keymap.356=('269024802', 'Next_VMode', '249', '0', '0') client.keyboard.keymap.357=('269024803', 'Prev_VMode', '250', '0', '0') client.keyboard.keymap.358=('269025031', '0x1008ff07', '251', '0', '0') client.keyboard.keymap.359=('268964084', '0x100810f4', '252', '0', '0') client.keyboard.keymap.360=('268964085', '0x100810f5', '253', '0', '0') client.keyboard.keymap.361=('269025204', '0x1008ffb4', '254', '0', '0') client.keyboard.keymap.362=('269025205', '0x1008ffb5', '255', '0', '0') client.keyboard.keys-pressed.133=Super_L client.keyboard.layout=us client.keyboard.layout_groups=True client.keyboard.mod_pointermissing=('mod2',) client.keyboard.modifier.Alt_L=mod1 client.keyboard.modifier.Alt_R=mod1 client.keyboard.modifier.Caps_Lock=lock client.keyboard.modifier.Control_L=control client.keyboard.modifier.Control_R=control client.keyboard.modifier.Hyper_L=mod4 client.keyboard.modifier.ISO_Level3_Shift=mod5 client.keyboard.modifier.ISO_Level5_Shift=mod3 client.keyboard.modifier.Meta_L=mod1 client.keyboard.modifier.Num_Lock=mod2 client.keyboard.modifier.Shift_L=shift client.keyboard.modifier.Shift_R=shift client.keyboard.modifier.Super_L=mod4 client.keyboard.modifier.Super_R=mod4 client.keyboard.modifier.control.client_keys=("('37', 'Control_L')", "('105', 'Control_R')") client.keyboard.modifier.control.keys=('Control_L', 'Control_R') client.keyboard.modifier.filter=() client.keyboard.modifier.lock.client_keys=("('66', 'Caps_Lock')",) client.keyboard.modifier.lock.keys=('Caps_Lock',) client.keyboard.modifier.mod1.client_keys=("('0', 'Alt_L')", "('108', 'Alt_R')", "('204', 'Alt_L')", "('205', 'Meta_L')") client.keyboard.modifier.mod1.keys=('Alt_L', 'Alt_R', 'Meta_L') client.keyboard.modifier.mod2.client_keys=("('77', 'Num_Lock')",) client.keyboard.modifier.mod2.keys=('Num_Lock',) client.keyboard.modifier.mod3.client_keys=("('203', 'ISO_Level5_Shift')",) client.keyboard.modifier.mod3.keys=('ISO_Level5_Shift',) client.keyboard.modifier.mod4.client_keys=("('0', 'Super_L')", "('134', 'Super_R')", "('206', 'Super_L')", "('207', 'Hyper_L')") client.keyboard.modifier.mod4.keys=('Super_L', 'Super_R', 'Hyper_L') client.keyboard.modifier.mod5.client_keys=("('92', 'ISO_Level3_Shift')",) client.keyboard.modifier.mod5.keys=('ISO_Level3_Shift',) client.keyboard.modifier.shift.client_keys=("('50', 'Shift_L')", "('62', 'Shift_R')") client.keyboard.modifier.shift.keys=('Shift_L', 'Shift_R') client.keyboard.modifiers.nuisance=('lock', 'mod2') client.keyboard.owner=8fa3cd06a56a5eeaed80a7f9d25d21139b70d68ff4ba84fd46856c2874bd7650 client.keyboard.sync=True client.keyboard.x11_keycode.9=('Escape', '', 'Escape') client.keyboard.x11_keycode.10=('1', 'exclam', '1', 'exclam') client.keyboard.x11_keycode.11=('2', 'at', '2', 'at') client.keyboard.x11_keycode.12=('3', 'numbersign', '3', 'numbersign') client.keyboard.x11_keycode.13=('4', 'dollar', '4', 'dollar') client.keyboard.x11_keycode.14=('5', 'percent', '5', 'percent') client.keyboard.x11_keycode.15=('6', 'asciicircum', '6', 'asciicircum') client.keyboard.x11_keycode.16=('7', 'ampersand', '7', 'ampersand') client.keyboard.x11_keycode.17=('8', 'asterisk', '8', 'asterisk') client.keyboard.x11_keycode.18=('9', 'parenleft', '9', 'parenleft') client.keyboard.x11_keycode.19=('0', 'parenright', '0', 'parenright') client.keyboard.x11_keycode.20=('minus', 'underscore', 'minus', 'underscore') client.keyboard.x11_keycode.21=('equal', 'plus', 'equal', 'plus') client.keyboard.x11_keycode.22=('BackSpace', 'BackSpace', 'BackSpace', 'BackSpace') client.keyboard.x11_keycode.23=('Tab', 'ISO_Left_Tab', 'Tab', 'ISO_Left_Tab') client.keyboard.x11_keycode.24=('q', 'Q', 'q', 'Q') client.keyboard.x11_keycode.25=('w', 'W', 'w', 'W') client.keyboard.x11_keycode.26=('e', 'E', 'e', 'E') client.keyboard.x11_keycode.27=('r', 'R', 'r', 'R') client.keyboard.x11_keycode.28=('t', 'T', 't', 'T') client.keyboard.x11_keycode.29=('y', 'Y', 'y', 'Y') client.keyboard.x11_keycode.30=('u', 'U', 'u', 'U') client.keyboard.x11_keycode.31=('i', 'I', 'i', 'I') client.keyboard.x11_keycode.32=('o', 'O', 'o', 'O') client.keyboard.x11_keycode.33=('p', 'P', 'p', 'P') client.keyboard.x11_keycode.34=('bracketleft', 'braceleft', 'bracketleft', 'braceleft') client.keyboard.x11_keycode.35=('bracketright', 'braceright', 'bracketright', 'braceright') client.keyboard.x11_keycode.36=('Return', '', 'Return') client.keyboard.x11_keycode.37=('Control_L', '', 'Control_L') client.keyboard.x11_keycode.38=('a', 'A', 'a', 'A') client.keyboard.x11_keycode.39=('s', 'S', 's', 'S') client.keyboard.x11_keycode.40=('d', 'D', 'd', 'D') client.keyboard.x11_keycode.41=('f', 'F', 'f', 'F') client.keyboard.x11_keycode.42=('g', 'G', 'g', 'G') client.keyboard.x11_keycode.43=('h', 'H', 'h', 'H') client.keyboard.x11_keycode.44=('j', 'J', 'j', 'J') client.keyboard.x11_keycode.45=('k', 'K', 'k', 'K') client.keyboard.x11_keycode.46=('l', 'L', 'l', 'L') client.keyboard.x11_keycode.47=('semicolon', 'colon', 'semicolon', 'colon') client.keyboard.x11_keycode.48=('apostrophe', 'quotedbl', 'apostrophe', 'quotedbl') client.keyboard.x11_keycode.49=('grave', 'asciitilde', 'grave', 'asciitilde') client.keyboard.x11_keycode.50=('Shift_L', '', 'Shift_L') client.keyboard.x11_keycode.51=('backslash', 'bar', 'backslash', 'bar') client.keyboard.x11_keycode.52=('z', 'Z', 'z', 'Z') client.keyboard.x11_keycode.53=('x', 'X', 'x', 'X') client.keyboard.x11_keycode.54=('c', 'C', 'c', 'C') client.keyboard.x11_keycode.55=('v', 'V', 'v', 'V') client.keyboard.x11_keycode.56=('b', 'B', 'b', 'B') client.keyboard.x11_keycode.57=('n', 'N', 'n', 'N') client.keyboard.x11_keycode.58=('m', 'M', 'm', 'M') client.keyboard.x11_keycode.59=('comma', 'less', 'comma', 'less') client.keyboard.x11_keycode.60=('period', 'greater', 'period', 'greater') client.keyboard.x11_keycode.61=('slash', 'question', 'slash', 'question') client.keyboard.x11_keycode.62=('Shift_R', '', 'Shift_R') client.keyboard.x11_keycode.63=('KP_Multiply', 'KP_Multiply', 'KP_Multiply', 'KP_Multiply', 'KP_Multiply', 'KP_Multiply', 'XF86ClearGrab') client.keyboard.x11_keycode.64=('Alt_L', 'Meta_L', 'Alt_L', 'Meta_L') client.keyboard.x11_keycode.65=('space', '', 'space') client.keyboard.x11_keycode.66=('Caps_Lock', '', 'Caps_Lock') client.keyboard.x11_keycode.67=('F1', 'F1', 'F1', 'F1', 'F1', 'F1', 'XF86Switch_VT_1') client.keyboard.x11_keycode.68=('F2', 'F2', 'F2', 'F2', 'F2', 'F2', 'XF86Switch_VT_2') client.keyboard.x11_keycode.69=('F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'XF86Switch_VT_3') client.keyboard.x11_keycode.70=('F4', 'F4', 'F4', 'F4', 'F4', 'F4', 'XF86Switch_VT_4') client.keyboard.x11_keycode.71=('F5', 'F5', 'F5', 'F5', 'F5', 'F5', 'XF86Switch_VT_5') client.keyboard.x11_keycode.72=('F6', 'F6', 'F6', 'F6', 'F6', 'F6', 'XF86Switch_VT_6') client.keyboard.x11_keycode.73=('F7', 'F7', 'F7', 'F7', 'F7', 'F7', 'XF86Switch_VT_7') client.keyboard.x11_keycode.74=('F8', 'F8', 'F8', 'F8', 'F8', 'F8', 'XF86Switch_VT_8') client.keyboard.x11_keycode.75=('F9', 'F9', 'F9', 'F9', 'F9', 'F9', 'XF86Switch_VT_9') client.keyboard.x11_keycode.76=('F10', 'F10', 'F10', 'F10', 'F10', 'F10', 'XF86Switch_VT_10') client.keyboard.x11_keycode.77=('Num_Lock', '', 'Num_Lock') client.keyboard.x11_keycode.78=('Scroll_Lock', '', 'Scroll_Lock') client.keyboard.x11_keycode.79=('KP_Home', 'KP_7', 'KP_Home', 'KP_7') client.keyboard.x11_keycode.80=('KP_Up', 'KP_8', 'KP_Up', 'KP_8') client.keyboard.x11_keycode.81=('KP_Prior', 'KP_9', 'KP_Prior', 'KP_9') client.keyboard.x11_keycode.82=('KP_Subtract', 'KP_Subtract', 'KP_Subtract', 'KP_Subtract', 'KP_Subtract', 'KP_Subtract', 'XF86Prev_VMode') client.keyboard.x11_keycode.83=('KP_Left', 'KP_4', 'KP_Left', 'KP_4') client.keyboard.x11_keycode.84=('KP_Begin', 'KP_5', 'KP_Begin', 'KP_5') client.keyboard.x11_keycode.85=('KP_Right', 'KP_6', 'KP_Right', 'KP_6') client.keyboard.x11_keycode.86=('KP_Add', 'KP_Add', 'KP_Add', 'KP_Add', 'KP_Add', 'KP_Add', 'XF86Next_VMode') client.keyboard.x11_keycode.87=('KP_End', 'KP_1', 'KP_End', 'KP_1') client.keyboard.x11_keycode.88=('KP_Down', 'KP_2', 'KP_Down', 'KP_2') client.keyboard.x11_keycode.89=('KP_Next', 'KP_3', 'KP_Next', 'KP_3') client.keyboard.x11_keycode.90=('KP_Insert', 'KP_0', 'KP_Insert', 'KP_0') client.keyboard.x11_keycode.91=('KP_Delete', 'KP_Decimal', 'KP_Delete', 'KP_Decimal') client.keyboard.x11_keycode.92=('ISO_Level3_Shift', '', 'ISO_Level3_Shift') client.keyboard.x11_keycode.94=('less', 'greater', 'less', 'greater', 'bar', 'brokenbar', 'bar') client.keyboard.x11_keycode.95=('F11', 'F11', 'F11', 'F11', 'F11', 'F11', 'XF86Switch_VT_11') client.keyboard.x11_keycode.96=('F12', 'F12', 'F12', 'F12', 'F12', 'F12', 'XF86Switch_VT_12') client.keyboard.x11_keycode.98=('Katakana', '', 'Katakana') client.keyboard.x11_keycode.99=('Hiragana', '', 'Hiragana') client.keyboard.x11_keycode.100=('Henkan_Mode', '', 'Henkan_Mode') client.keyboard.x11_keycode.101=('Hiragana_Katakana', '', 'Hiragana_Katakana') client.keyboard.x11_keycode.102=('Muhenkan', '', 'Muhenkan') client.keyboard.x11_keycode.104=('KP_Enter', '', 'KP_Enter') client.keyboard.x11_keycode.105=('Control_R', '', 'Control_R') client.keyboard.x11_keycode.106=('KP_Divide', 'KP_Divide', 'KP_Divide', 'KP_Divide', 'KP_Divide', 'KP_Divide', 'XF86Ungrab') client.keyboard.x11_keycode.107=('Print', 'Sys_Req', 'Print', 'Sys_Req') client.keyboard.x11_keycode.108=('Alt_R', 'Meta_R', 'Alt_R', 'Meta_R') client.keyboard.x11_keycode.109=('Linefeed', '', 'Linefeed') client.keyboard.x11_keycode.110=('Home', '', 'Home') client.keyboard.x11_keycode.111=('Up', '', 'Up') client.keyboard.x11_keycode.112=('Prior', '', 'Prior') client.keyboard.x11_keycode.113=('Left', '', 'Left') client.keyboard.x11_keycode.114=('Right', '', 'Right') client.keyboard.x11_keycode.115=('End', '', 'End') client.keyboard.x11_keycode.116=('Down', '', 'Down') client.keyboard.x11_keycode.117=('Next', '', 'Next') client.keyboard.x11_keycode.118=('Insert', '', 'Insert') client.keyboard.x11_keycode.119=('Delete', '', 'Delete') client.keyboard.x11_keycode.121=('XF86AudioMute', '', 'XF86AudioMute') client.keyboard.x11_keycode.122=('XF86AudioLowerVolume', '', 'XF86AudioLowerVolume') client.keyboard.x11_keycode.123=('XF86AudioRaiseVolume', '', 'XF86AudioRaiseVolume') client.keyboard.x11_keycode.124=('XF86PowerOff', '', 'XF86PowerOff') client.keyboard.x11_keycode.125=('KP_Equal', '', 'KP_Equal') client.keyboard.x11_keycode.126=('plusminus', '', 'plusminus') client.keyboard.x11_keycode.127=('Pause', 'Break', 'Pause', 'Break') client.keyboard.x11_keycode.128=('XF86LaunchA', '', 'XF86LaunchA') client.keyboard.x11_keycode.129=('KP_Decimal', 'KP_Decimal', 'KP_Decimal', 'KP_Decimal') client.keyboard.x11_keycode.130=('Hangul', '', 'Hangul') client.keyboard.x11_keycode.131=('Hangul_Hanja', '', 'Hangul_Hanja') client.keyboard.x11_keycode.133=('Super_L', '', 'Super_L') client.keyboard.x11_keycode.134=('Super_R', '', 'Super_R') client.keyboard.x11_keycode.135=('Menu', '', 'Menu') client.keyboard.x11_keycode.136=('Cancel', '', 'Cancel') client.keyboard.x11_keycode.137=('Redo', '', 'Redo') client.keyboard.x11_keycode.138=('SunProps', '', 'SunProps') client.keyboard.x11_keycode.139=('Undo', '', 'Undo') client.keyboard.x11_keycode.140=('SunFront', '', 'SunFront') client.keyboard.x11_keycode.141=('XF86Copy', '', 'XF86Copy') client.keyboard.x11_keycode.142=('XF86Open', '', 'XF86Open') client.keyboard.x11_keycode.143=('XF86Paste', '', 'XF86Paste') client.keyboard.x11_keycode.144=('Find', '', 'Find') client.keyboard.x11_keycode.145=('XF86Cut', '', 'XF86Cut') client.keyboard.x11_keycode.146=('Help', '', 'Help') client.keyboard.x11_keycode.147=('XF86MenuKB', '', 'XF86MenuKB') client.keyboard.x11_keycode.148=('XF86Calculator', '', 'XF86Calculator') client.keyboard.x11_keycode.150=('XF86Sleep', '', 'XF86Sleep') client.keyboard.x11_keycode.151=('XF86WakeUp', '', 'XF86WakeUp') client.keyboard.x11_keycode.152=('XF86Explorer', '', 'XF86Explorer') client.keyboard.x11_keycode.153=('XF86Send', '', 'XF86Send') client.keyboard.x11_keycode.155=('XF86Xfer', '', 'XF86Xfer') client.keyboard.x11_keycode.156=('XF86Launch1', '', 'XF86Launch1') client.keyboard.x11_keycode.157=('XF86Launch2', '', 'XF86Launch2') client.keyboard.x11_keycode.158=('XF86WWW', '', 'XF86WWW') client.keyboard.x11_keycode.159=('XF86DOS', '', 'XF86DOS') client.keyboard.x11_keycode.160=('XF86ScreenSaver', '', 'XF86ScreenSaver') client.keyboard.x11_keycode.161=('XF86RotateWindows', '', 'XF86RotateWindows') client.keyboard.x11_keycode.162=('XF86TaskPane', '', 'XF86TaskPane') client.keyboard.x11_keycode.163=('XF86Mail', '', 'XF86Mail') client.keyboard.x11_keycode.164=('XF86Favorites', '', 'XF86Favorites') client.keyboard.x11_keycode.165=('XF86MyComputer', '', 'XF86MyComputer') client.keyboard.x11_keycode.166=('XF86Back', '', 'XF86Back') client.keyboard.x11_keycode.167=('XF86Forward', '', 'XF86Forward') client.keyboard.x11_keycode.169=('XF86Eject', '', 'XF86Eject') client.keyboard.x11_keycode.170=('XF86Eject', '', 'XF86Eject') client.keyboard.x11_keycode.171=('XF86AudioNext', '', 'XF86AudioNext') client.keyboard.x11_keycode.172=('XF86AudioPlay', 'XF86AudioPause', 'XF86AudioPlay', 'XF86AudioPause') client.keyboard.x11_keycode.173=('XF86AudioPrev', '', 'XF86AudioPrev') client.keyboard.x11_keycode.174=('XF86AudioStop', 'XF86Eject', 'XF86AudioStop', 'XF86Eject') client.keyboard.x11_keycode.175=('XF86AudioRecord', '', 'XF86AudioRecord') client.keyboard.x11_keycode.176=('XF86AudioRewind', '', 'XF86AudioRewind') client.keyboard.x11_keycode.177=('XF86Phone', '', 'XF86Phone') client.keyboard.x11_keycode.179=('XF86Tools', '', 'XF86Tools') client.keyboard.x11_keycode.180=('XF86HomePage', '', 'XF86HomePage') client.keyboard.x11_keycode.181=('XF86Reload', '', 'XF86Reload') client.keyboard.x11_keycode.182=('XF86Close', '', 'XF86Close') client.keyboard.x11_keycode.185=('XF86ScrollUp', '', 'XF86ScrollUp') client.keyboard.x11_keycode.186=('XF86ScrollDown', '', 'XF86ScrollDown') client.keyboard.x11_keycode.187=('parenleft', '', 'parenleft') client.keyboard.x11_keycode.188=('parenright', '', 'parenright') client.keyboard.x11_keycode.189=('XF86New', '', 'XF86New') client.keyboard.x11_keycode.190=('Redo', '', 'Redo') client.keyboard.x11_keycode.191=('XF86Tools', '', 'XF86Tools') client.keyboard.x11_keycode.192=('XF86Launch5', '', 'XF86Launch5') client.keyboard.x11_keycode.193=('XF86Launch6', '', 'XF86Launch6') client.keyboard.x11_keycode.194=('XF86Launch7', '', 'XF86Launch7') client.keyboard.x11_keycode.195=('XF86Launch8', '', 'XF86Launch8') client.keyboard.x11_keycode.196=('XF86Launch9', '', 'XF86Launch9') client.keyboard.x11_keycode.198=('XF86AudioMicMute', '', 'XF86AudioMicMute') client.keyboard.x11_keycode.199=('XF86TouchpadToggle', '', 'XF86TouchpadToggle') client.keyboard.x11_keycode.200=('XF86TouchpadOn', '', 'XF86TouchpadOn') client.keyboard.x11_keycode.201=('XF86TouchpadOff', '', 'XF86TouchpadOff') client.keyboard.x11_keycode.203=('ISO_Level5_Shift', '', 'ISO_Level5_Shift') client.keyboard.x11_keycode.204=('', 'Alt_L', '', 'Alt_L') client.keyboard.x11_keycode.205=('', 'Meta_L', '', 'Meta_L') client.keyboard.x11_keycode.206=('', 'Super_L', '', 'Super_L') client.keyboard.x11_keycode.207=('', 'Hyper_L', '', 'Hyper_L') client.keyboard.x11_keycode.208=('XF86AudioPlay', '', 'XF86AudioPlay') client.keyboard.x11_keycode.209=('XF86AudioPause', '', 'XF86AudioPause') client.keyboard.x11_keycode.210=('XF86Launch3', '', 'XF86Launch3') client.keyboard.x11_keycode.211=('XF86Launch4', '', 'XF86Launch4') client.keyboard.x11_keycode.212=('XF86LaunchB', '', 'XF86LaunchB') client.keyboard.x11_keycode.213=('XF86Suspend', '', 'XF86Suspend') client.keyboard.x11_keycode.214=('XF86Close', '', 'XF86Close') client.keyboard.x11_keycode.215=('XF86AudioPlay', '', 'XF86AudioPlay') client.keyboard.x11_keycode.216=('XF86AudioForward', '', 'XF86AudioForward') client.keyboard.x11_keycode.218=('Print', '', 'Print') client.keyboard.x11_keycode.220=('XF86WebCam', '', 'XF86WebCam') client.keyboard.x11_keycode.221=('XF86AudioPreset', '', 'XF86AudioPreset') client.keyboard.x11_keycode.223=('XF86Mail', '', 'XF86Mail') client.keyboard.x11_keycode.224=('XF86Messenger', '', 'XF86Messenger') client.keyboard.x11_keycode.225=('XF86Search', '', 'XF86Search') client.keyboard.x11_keycode.226=('XF86Go', '', 'XF86Go') client.keyboard.x11_keycode.227=('XF86Finance', '', 'XF86Finance') client.keyboard.x11_keycode.228=('XF86Game', '', 'XF86Game') client.keyboard.x11_keycode.229=('XF86Shop', '', 'XF86Shop') client.keyboard.x11_keycode.231=('Cancel', '', 'Cancel') client.keyboard.x11_keycode.232=('XF86MonBrightnessDown', '', 'XF86MonBrightnessDown') client.keyboard.x11_keycode.233=('XF86MonBrightnessUp', '', 'XF86MonBrightnessUp') client.keyboard.x11_keycode.234=('XF86AudioMedia', '', 'XF86AudioMedia') client.keyboard.x11_keycode.235=('XF86Display', '', 'XF86Display') client.keyboard.x11_keycode.236=('XF86KbdLightOnOff', '', 'XF86KbdLightOnOff') client.keyboard.x11_keycode.237=('XF86KbdBrightnessDown', '', 'XF86KbdBrightnessDown') client.keyboard.x11_keycode.238=('XF86KbdBrightnessUp', '', 'XF86KbdBrightnessUp') client.keyboard.x11_keycode.239=('XF86Send', '', 'XF86Send') client.keyboard.x11_keycode.240=('XF86Reply', '', 'XF86Reply') client.keyboard.x11_keycode.241=('XF86MailForward', '', 'XF86MailForward') client.keyboard.x11_keycode.242=('XF86Save', '', 'XF86Save') client.keyboard.x11_keycode.243=('XF86Documents', '', 'XF86Documents') client.keyboard.x11_keycode.244=('XF86Battery', '', 'XF86Battery') client.keyboard.x11_keycode.245=('XF86Bluetooth', '', 'XF86Bluetooth') client.keyboard.x11_keycode.246=('XF86WLAN', '', 'XF86WLAN') client.keyboard.x11_keycode.247=('XF86UWB', '', 'XF86UWB') client.keyboard.x11_keycode.249=('XF86Next_VMode', '', 'XF86Next_VMode') client.keyboard.x11_keycode.250=('XF86Prev_VMode', '', 'XF86Prev_VMode') client.keyboard.x11_keycode.251=('XF86MonBrightnessCycle', '', 'XF86MonBrightnessCycle') client.keyboard.x11_keycode.252=('XF86BrightnessAuto', '', 'XF86BrightnessAuto') client.keyboard.x11_keycode.253=('XF86DisplayOff', '', 'XF86DisplayOff') client.keyboard.x11_keycode.254=('XF86WWAN', '', 'XF86WWAN') client.keyboard.x11_keycode.255=('XF86RFKill', '', 'XF86RFKill') client.last-ping-echo=2186 client.lock=False client.lz4=True client.mmap.enabled=False client.mmap.filename= client.mmap.size=0 client.mmap.supported=True client.modules=('Client', 'ClientInfo', 'Notification', 'Clipboard', 'Audio', 'FilePrint', 'MMAP', 'Input', 'DBUS', 'NetworkState', 'ClientDisplay', 'Windows', 'Encodings', 'AVSync', 'Idle') client.monitors.0.geometry=(0, 0, 3840, 1600) client.monitors.0.height-mm=367 client.monitors.0.manufacturer=DEL client.monitors.0.model=HDMI-0 client.monitors.0.name=DEL HDMI-0 client.monitors.0.primary=True client.monitors.0.refresh-rate=29995 client.monitors.0.scale-factor=1 client.monitors.0.subpixel-layout=unknown client.monitors.0.width-mm=880 client.monitors.0.workarea=(0, 0, 3840, 1600) client.monitors.1.geometry=(3840, 0, 2560, 1440) client.monitors.1.height-mm=214 client.monitors.1.manufacturer=AUO client.monitors.1.model=DP-0 client.monitors.1.name=AUO DP-0 client.monitors.1.primary=False client.monitors.1.refresh-rate=60024 client.monitors.1.scale-factor=1 client.monitors.1.subpixel-layout=unknown client.monitors.1.width-mm=382 client.monitors.1.workarea=(3840, 0, 2560, 1440) client.notifications=True client.opengl.info=disabled, probe error: PyOpenGL vs accelerate version mismatch: 3.1.7 vs client.packet-types=() client.protocol=xpra client.restack=True client.screen.0.display=:0.0 client.screen.0.monitor.0.geometry=(0, 0, 3840, 1600) client.screen.0.monitor.0.name=DEL HDMI-0 client.screen.0.monitor.0.size_mm=(880, 367) client.screen.0.monitor.1.geometry=(3840, 0, 2560, 1440) client.screen.0.monitor.1.name=AUO DP-0 client.screen.0.monitor.1.size_mm=(382, 214) client.screen.0.size=(6400, 1600) client.screen.0.size_mm=(635, 155) client.screen.0.workarea=(0, 0, 6400, 1600) client.screens=1 client.session-id=fdc02bcb05aa40eba8e02105d7a9cbc0 client.share=False client.sharing=False client.ssh-auth-sock=/run/user/1000/keyring/ssh client.suspended=False client.system-tray=True client.uuid=8fa3cd06a56a5eeaed80a7f9d25d21139b70d68ff4ba84fd46856c2874bd7650 client.version=6.0 client.vertical-refresh=30 client.window.6.av-sync.current=150 client.window.6.av-sync.enabled=True client.window.6.av-sync.target=150 client.window.6.bandwidth-limit=0 client.window.6.batch.actual_delays.90p=7 client.window.6.batch.actual_delays.avg=2 client.window.6.batch.actual_delays.cur=0 client.window.6.batch.actual_delays.last=0 client.window.6.batch.actual_delays.max=68 client.window.6.batch.actual_delays.min=0 client.window.6.batch.client-latency.aim=800 client.window.6.batch.client-latency.aimed_avg=1061 client.window.6.batch.client-latency.avg=51 client.window.6.batch.client-latency.div=1000 client.window.6.batch.client-latency.factor=103 client.window.6.batch.client-latency.recent=51 client.window.6.batch.client-latency.smoothing=sqrt client.window.6.batch.client-latency.target=25 client.window.6.batch.client-latency.weight=21 client.window.6.batch.client-latency.weight_multiplier=1179 client.window.6.batch.client-ping-latency.aim=949 client.window.6.batch.client-ping-latency.aimed_avg=793 client.window.6.batch.client-ping-latency.avg=24 client.window.6.batch.client-ping-latency.div=1000 client.window.6.batch.client-ping-latency.factor=89 client.window.6.batch.client-ping-latency.recent=23 client.window.6.batch.client-ping-latency.smoothing=sqrt client.window.6.batch.client-ping-latency.target=24 client.window.6.batch.client-ping-latency.weight=19 client.window.6.batch.client-ping-latency.weight_multiplier=575 client.window.6.batch.compression-work-queue.aim=250 client.window.6.batch.compression-work-queue.aimed_avg=328 client.window.6.batch.compression-work-queue.avg=554 client.window.6.batch.compression-work-queue.div=1000 client.window.6.batch.compression-work-queue.factor=41 client.window.6.batch.compression-work-queue.recent=612 client.window.6.batch.compression-work-queue.smoothing=logp client.window.6.batch.compression-work-queue.target=1000 client.window.6.batch.compression-work-queue.weight=52 client.window.6.batch.compression-work-queue.weight_multiplier=782 client.window.6.batch.damage-network-delay.avg=40 client.window.6.batch.damage-network-delay.factor=100 client.window.6.batch.damage-network-delay.recent=40 client.window.6.batch.damage-network-delay.weight=50 client.window.6.batch.delay.50p=0 client.window.6.batch.delay.80p=0 client.window.6.batch.delay.90p=0 client.window.6.batch.delay.avg=0 client.window.6.batch.delay.cur=0 client.window.6.batch.delay.last=0 client.window.6.batch.delay.max=3 client.window.6.batch.delay.min=0 client.window.6.batch.expire=250 client.window.6.batch.focus.factor=0 client.window.6.batch.focus.has_focus=True client.window.6.batch.focus.weight=100 client.window.6.batch.last-event=0 client.window.6.batch.locked=False client.window.6.batch.max-delay=500 client.window.6.batch.min-delay=16 client.window.6.batch.normalized=5 client.window.6.batch.packet-queue-size.aim=250 client.window.6.batch.packet-queue-size.aimed_avg=0 client.window.6.batch.packet-queue-size.avg=1 client.window.6.batch.packet-queue-size.div=1000 client.window.6.batch.packet-queue-size.factor=0 client.window.6.batch.packet-queue-size.recent=0 client.window.6.batch.packet-queue-size.smoothing=sqrt client.window.6.batch.packet-queue-size.target=1000 client.window.6.batch.packet-queue-size.weight=4 client.window.6.batch.packet-queue-size.weight_multiplier=42 client.window.6.batch.server-ping-latency.aim=949 client.window.6.batch.server-ping-latency.aimed_avg=875 client.window.6.batch.server-ping-latency.avg=22 client.window.6.batch.server-ping-latency.div=1000 client.window.6.batch.server-ping-latency.factor=94 client.window.6.batch.server-ping-latency.recent=24 client.window.6.batch.server-ping-latency.smoothing=sqrt client.window.6.batch.server-ping-latency.target=24 client.window.6.batch.server-ping-latency.weight=14 client.window.6.batch.server-ping-latency.weight_multiplier=565 client.window.6.batch.timeout-delay=15000 client.window.6.bit-depth.client=24 client.window.6.bit-depth.source=24 client.window.6.content-type=text client.window.6.damage.events=888 client.window.6.damage.in_latency.90p=66 client.window.6.damage.in_latency.avg=26 client.window.6.damage.in_latency.cur=2 client.window.6.damage.in_latency.max=169 client.window.6.damage.in_latency.min=0 client.window.6.damage.out_latency.90p=67 client.window.6.damage.out_latency.avg=27 client.window.6.damage.out_latency.cur=2 client.window.6.damage.out_latency.max=171 client.window.6.damage.out_latency.min=0 client.window.6.damage.packets_sent=858 client.window.6.damage.target-latency=35 client.window.6.damage.fps=7 client.window.6.dimensions=(1918, 1582) client.window.6.encoding=auto client.window.6.encoding.lossless_threshold.base=63 client.window.6.encoding.lossless_threshold.pixel_boost=17 client.window.6.encoding.pipeline_last_check=541 client.window.6.encoding.pipeline_option.0.csc=None client.window.6.encoding.pipeline_option.0.encoder=webp client.window.6.encoding.pipeline_option.0.encoder.height=1527 client.window.6.encoding.pipeline_option.0.encoder.width=1854 client.window.6.encoding.pipeline_option.0.format=BGRX client.window.6.encoding.pipeline_option.0.score=51 client.window.6.encoding.pipeline_option.1.csc=None client.window.6.encoding.pipeline_option.1.encoder=jpeg client.window.6.encoding.pipeline_option.1.encoder.height=1527 client.window.6.encoding.pipeline_option.1.encoder.width=1854 client.window.6.encoding.pipeline_option.1.format=BGRX client.window.6.encoding.pipeline_option.1.score=50 client.window.6.encoding.pipeline_param.dimensions=(1854, 1527) client.window.6.encoding.pipeline_param.encoding=('h264', 'vp9', 'vp8', 'webp', 'jpeg', 'jpega') client.window.6.encoding.pipeline_param.src_format=BGRX client.window.6.encoding.pixels_encoded_per_second=30747662 client.window.6.encoding.pixels_per_ns.avg=32 client.window.6.encoding.pixels_per_ns.max=2171 client.window.6.encoding.pixels_per_ns.min=7 client.window.6.encoding.quality.50p=99 client.window.6.encoding.quality.80p=99 client.window.6.encoding.quality.90p=99 client.window.6.encoding.quality.avg=98 client.window.6.encoding.quality.backlog=(0, 0, 3034276, 0) client.window.6.encoding.quality.compression-ratio=(58, 52) client.window.6.encoding.quality.cur=99 client.window.6.encoding.quality.limits.backlog=100 client.window.6.encoding.quality.limits.bandwidth=100 client.window.6.encoding.quality.limits.batch=1322 client.window.6.encoding.quality.limits.boost=2 client.window.6.encoding.quality.limits.congestion=100 client.window.6.encoding.quality.limits.latency=422 client.window.6.encoding.quality.max=99 client.window.6.encoding.quality.min=77 client.window.6.encoding.quality.min-quality=1 client.window.6.encoding.quality.min-speed=1 client.window.6.encoding.ratio_pct.avg=2 client.window.6.encoding.ratio_pct.max=37 client.window.6.encoding.ratio_pct.min=0 client.window.6.encoding.scrolling.enabled=True client.window.6.encoding.scrolling.event=0 client.window.6.encoding.scrolling.min-percent=30 client.window.6.encoding.scrolling.preference=100 client.window.6.encoding.scrolling.time=652356300 client.window.6.encoding.selection=best_encoding_video client.window.6.encoding.speed.50p=25 client.window.6.encoding.speed.80p=31 client.window.6.encoding.speed.90p=32 client.window.6.encoding.speed.avg=19 client.window.6.encoding.speed.cur=16 client.window.6.encoding.speed.factors.damage-latency-abs=0 client.window.6.encoding.speed.factors.damage-latency-rel=3 client.window.6.encoding.speed.factors.decoding-latency=1 client.window.6.encoding.speed.factors.pixel-rate=27 client.window.6.encoding.speed.limits.backlog=100 client.window.6.encoding.speed.limits.bandwidth-limit=100 client.window.6.encoding.speed.limits.congestion=100 client.window.6.encoding.speed.limits.damage-latency=1231 client.window.6.encoding.speed.limits.pixel-rate=93 client.window.6.encoding.speed.low-limit=3034276 client.window.6.encoding.speed.max=36 client.window.6.encoding.speed.max-speed=93 client.window.6.encoding.speed.min=3 client.window.6.encoding.speed.min-speed=1 client.window.6.encodings=('h264', 'vp9', 'vp8', 'png', 'png/P', 'png/L', 'webp', 'avif', 'rgb', 'jpeg', 'jpega', 'av1', 'scroll', 'grayscale', 'stream') client.window.6.encodings.auto-refresh.base-delay=150 client.window.6.encodings.auto-refresh.delay=150 client.window.6.encodings.auto-refresh.last-event.elapsed=261 client.window.6.encodings.auto-refresh.last-event.message=lossless - nothing to do client.window.6.encodings.auto-refresh.min-delay=150 client.window.6.encodings.auto-refresh.quality=100 client.window.6.encodings.auto-refresh.speed=50 client.window.6.encodings.core=('h264', 'vp9', 'vp8', 'png', 'png/P', 'png/L', 'webp', 'avif', 'rgb24', 'rgb32', 'jpeg', 'jpega', 'av1', 'scroll') client.window.6.encodings.csc_modes.jpeg=('BGRX', 'RGBX') client.window.6.encodings.csc_modes.jpega=() client.window.6.encodings.csc_modes.webp=('BGRX', 'RGBX') client.window.6.encodings.edge=rgb24 client.window.6.encodings.non-video=('png', 'png/P', 'png/L', 'webp', 'avif', 'rgb24', 'rgb32', 'jpeg', 'jpega') client.window.6.encodings.video=('h264', 'vp9', 'vp8', 'webp', 'jpeg', 'jpega') client.window.6.full-frames-only=False client.window.6.icon.bytes=1296 client.window.6.icon.format=BGRA client.window.6.icon.height=18 client.window.6.icon.width=18 client.window.6.idle=False client.window.6.last_used=webp client.window.6.mapped-at=(1, 17, 1918, 1582) client.window.6.mmap=False client.window.6.pixel-format=BGRX client.window.6.property.encoding-hint= client.window.6.property.fullscreen=False client.window.6.property.quality.cur=99 client.window.6.property.quality.fixed=-1 client.window.6.property.quality.hint=-1 client.window.6.property.quality.max=100 client.window.6.property.quality.min=1 client.window.6.property.quality.refresh=100 client.window.6.property.scaling=(1, 1) client.window.6.property.scaling.control=auto client.window.6.property.speed.cur=16 client.window.6.property.speed.fixed=-1 client.window.6.property.speed.hint=-1 client.window.6.property.speed.max=100 client.window.6.property.speed.min=1 client.window.6.property.speed.refresh=50 client.window.6.rgb24.pixels_encoded_per_second=9200866 client.window.6.rgb24.pixels_per_ns.avg=108 client.window.6.rgb24.pixels_per_ns.max=2171 client.window.6.rgb24.pixels_per_ns.min=48 client.window.6.rgb24.ratio_pct.avg=25 client.window.6.rgb24.ratio_pct.max=37 client.window.6.rgb24.ratio_pct.min=22 client.window.6.rgb_formats=('BGRX', 'RGBX', 'BGR', 'RGB', 'r210', 'BGR565') client.window.6.rgb_threshold=5068 client.window.6.scaling=(1, 1) client.window.6.send-timetamps=False client.window.6.send-window-size=True client.window.6.soft-timeout.expired=0 client.window.6.soft-timeout.max=5 client.window.6.supports-transparency=False client.window.6.suspended=False client.window.6.total_frames.rgb24=618 client.window.6.total_frames.scroll=4 client.window.6.total_frames.webp=236 client.window.6.total_pixels.rgb24=1006420 client.window.6.total_pixels.scroll=3043536 client.window.6.total_pixels.webp=153083025 client.window.6.video-max-size=(4096, 4096) client.window.6.video_subregion.auto-refresh-delay=150 client.window.6.video_subregion.counter=886 client.window.6.video_subregion.damaged=100 client.window.6.video_subregion.detection=True client.window.6.video_subregion.enabled=True client.window.6.video_subregion.exclusion-zones=() client.window.6.video_subregion.fps=5 client.window.6.video_subregion.height=489 client.window.6.video_subregion.in-out=(20543868, 359583) client.window.6.video_subregion.min-time=649503 client.window.6.video_subregion.non-max-wait=150 client.window.6.video_subregion.nonvideo-timer=0 client.window.6.video_subregion.rectangle=(322, 1069, 1556, 489) client.window.6.video_subregion.score=147 client.window.6.video_subregion.scores.(322, 1069, 1556, 489)=147 client.window.6.video_subregion.set-at=855 client.window.6.video_subregion.supported=True client.window.6.video_subregion.time=652356 client.window.6.video_subregion.timer=0 client.window.6.video_subregion.video-mode=False client.window.6.video_subregion.width=1556 client.window.6.video_subregion.x=322 client.window.6.video_subregion.y=1069 client.window.6.webp.pixels_encoded_per_second=30796753 client.window.6.webp.pixels_per_ns.avg=32 client.window.6.webp.pixels_per_ns.max=316 client.window.6.webp.pixels_per_ns.min=7 client.window.6.webp.ratio_pct.avg=2 client.window.6.webp.ratio_pct.max=8 client.window.6.webp.ratio_pct.min=0 client.window-size.max=(32767, 32767) client.window-size.min=(0, 0) client.windows=True client.xdg-menu=True clients=1 clients.unauthenticated=0 clipboard.CLIPBOARD.blocked_owner_change=0 clipboard.CLIPBOARD.enabled=True clipboard.CLIPBOARD.event.get_contents=0 clipboard.CLIPBOARD.event.got_token=121 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=False clipboard.CLIPBOARD.have_token=True clipboard.CLIPBOARD.last-targets=() clipboard.CLIPBOARD.preferred-targets=('UTF8_STRING', 'TEXT', 'STRING', 'text/plain', 'image/png') clipboard.PRIMARY.blocked_owner_change=0 clipboard.PRIMARY.enabled=True clipboard.PRIMARY.event.get_contents=0 clipboard.PRIMARY.event.got_token=1531 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=False clipboard.PRIMARY.have_token=True clipboard.PRIMARY.last-targets=() clipboard.PRIMARY.preferred-targets=('UTF8_STRING', 'TEXT', 'STRING', 'text/plain', 'image/png') clipboard.SECONDARY.blocked_owner_change=0 clipboard.SECONDARY.enabled=True 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=False clipboard.SECONDARY.have_token=False clipboard.SECONDARY.last-targets=() clipboard.SECONDARY.preferred-targets=('UTF8_STRING', 'TEXT', 'STRING', 'text/plain', 'image/png') clipboard.can-receive=True clipboard.can-send=True clipboard.client=8fa3cd06a56a5eeaed80a7f9d25d21139b70d68ff4ba84fd46856c2874bd7650 clipboard.filters=() clipboard.max_recv_size=-1 clipboard.max_send_size=-1 clipboard.max_size=16777216 clipboard.pending=() clipboard.requests=59 clipboard.type=X11Clipboard clipboard.want_targets=False commands.0.command=('idea.sh',) commands.0.dead=False commands.0.forget=False commands.0.ignore=True commands.0.name=idea.sh commands.0.pid=715157 commands.1.command=('ibus-daemon', '--xim', '--verbose', '--replace', '--panel=disable', '--desktop=xpra', '--daemonize') commands.1.dead=True commands.1.forget=False commands.1.ignore=True commands.1.name=ibus-daemon --xim --verbose --replace --panel=disable --desktop=xpra --daemonize commands.1.pid=715160 commands.1.returncode=0 commands.exit-with-children=False commands.start=('idea.sh',) commands.start-after-connect=() commands.start-after-connect-done=True commands.start-child=() commands.start-child-after-connect=() commands.start-child-late=() commands.start-child-on-connect=() commands.start-env.GDK_BACKEND=x11 commands.start-env.GTK_CSD=0 commands.start-env.MWNOCAPTURE=true commands.start-env.MWNO_RIT=true commands.start-env.MWWM=allwm commands.start-env.QT_QPA_PLATFORM=xcb commands.start-env.QT_SCALE_FACTOR=1 commands.start-env.QT_X11_NO_NATIVE_MENUBAR=1 commands.start-env.UBUNTU_MENUPROXY= commands.start-late=('ibus-daemon --xim --verbose --replace --panel=disable --desktop=xpra --daemonize',) commands.start-new=True commands.start-on-connect=() cursor.default_size=24 cursor.height=24 cursor.is-default=False cursor.max_size=(128, 128) cursor.name=left_ptr cursor.position=(949, 1243) cursor.serial=10 cursor.width=24 cursor.x=900 cursor.xhot=3 cursor.y=1225 cursor.yhot=1 dbus.env.DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-1PpFfAgZpL,guid=e461d736175349ca1ed08cd965aea02f dbus.env.DBUS_SESSION_BUS_PID=714927 dbus.env.DBUS_SESSION_BUS_WINDOWID=2097153 dbus.pid=714927 display.antialias.contrast=1000 display.antialias.enabled=True display.antialias.hinting=True display.antialias.hintstyle=hintslight display.antialias.orientation=RGB display.bell=True display.cursors=True display.cursors.size=0 display.depth=24 display.double-click.distance=(-1, -1) display.double-click.time=400 display.dpi.default=0 display.dpi.value=76 display.dpi.x=76 display.dpi.y=76 display.icc.profile= display.icc.sync=True display.opengl.message=PyOpenGL vs accelerate version mismatch: 3.1.7 vs display.opengl.success=False display.pid=714917 display.randr=True display.refresh-rate=auto encoding.avif.version=1.0 encoding.jpeg.version=2.0 encoding.openh264.version=2.4 encoding.pillow.version=10.1 encoding.rgb.version=6.0 encoding.spng.version=0.7 encoding.vpx.version=1.13 encoding.webp.version=1.3 encoding.x264.version=164 encodings=('h264', 'vp9', 'vp8', 'png', 'png/P', 'png/L', 'webp', 'avif', 'rgb', 'jpeg', 'jpega', 'scroll', 'grayscale', 'stream') encodings.allowed=('h264', 'vp9', 'vp8', 'mpeg4', 'mpeg4+mp4', 'h264+mp4', 'vp8+webm', 'vp9+webm', 'png', 'png/P', 'png/L', 'webp', 'avif', 'rgb', 'rgb24', 'rgb32', 'jpeg', 'jpega', 'h265', 'av1', 'scroll', 'grayscale', 'stream') encodings.core=('h264', 'vp9', 'vp8', 'png', 'png/P', 'png/L', 'webp', 'avif', 'rgb24', 'rgb32', 'jpeg', 'jpega', 'scroll') encodings.lossless=('png', 'png/P', 'png/L', 'webp', 'rgb24', 'rgb32') encodings.with_lossless_mode=('h264', 'vp9', 'webp', 'scroll') encodings.with_quality=('h264', 'vp9', 'vp8', 'webp', 'jpeg', 'scroll') encodings.with_speed=('vp9', 'png/L', 'scroll', 'h264', 'png/P', 'rgb', 'webp', 'png', 'vp8') env.CKCON_X11_DISPLAY=:0 env.CLUTTER_IM_MODULE=ibus env.DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-1PpFfAgZpL,guid=e461d736175349ca1ed08cd965aea02f env.DBUS_SESSION_BUS_PID=714927 env.DBUS_SESSION_BUS_WINDOWID=2097153 env.DISABLE_IMSETTINGS=1 env.DISPLAY=:0 env.GDK_BACKEND=x11 env.GDK_DPI_SCALE=1 env.GDK_SCALE=1 env.GTK_CSD=0 env.GTK_IM_MODULE=ibus env.HOME=/home/markmandel env.IMSETTINGS_MODULE=ibus env.LANG=C.UTF-8 env.LOGNAME=markmandel env.MOTD_SHOWN=pam env.NO_AT_BRIDGE=1 env.OLDPWD=/home/markmandel env.PATH=/usr/libexec/xpra:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games env.PULSE_SERVER=unix:/run/user/1000/xpra/0/pulse/pulse/native env.PWD=/ env.QT4_IM_MODULE=ibus env.QT_IM_MODULE=ibus env.SHELL=/usr/bin/zsh env.SHLVL=0 env.SSH_AGENT_UUID=8fa3cd06a56a5eeaed80a7f9d25d21139b70d68ff4ba84fd46856c2874bd7650 env.SSH_AUTH_SOCK=/run/user/1000/xpra/0/ssh/agent env.SSH_CLIENT=73.158.8.64 54448 22 env.SSH_CONNECTION=73.158.8.64 54448 10.168.0.2 22 env.USER=markmandel env.XAUTHORITY=/home/markmandel/.Xauthority env.XDG_CURRENT_DESKTOP=Xpra env.XDG_RUNTIME_DIR=/run/user/1000 env.XDG_SESSION_CLASS=user env.XDG_SESSION_TYPE=x11 env.XMODIFIERS=@im=ibus env.XPRA_LOG_DIR=/run/user/1000/xpra/S714911 env.XPRA_PROXY_START_UUID=6d0e3ff3253a4c13b0673f84d8e53307 env.XPRA_PULSE_SERVER=/run/user/1000/xpra/0/pulse/pulse/native env.XPRA_PULSE_SINK_DEVICE_NAME=Xpra-Microphone env.XPRA_PULSE_SOURCE_DEVICE_NAME=Xpra-Speaker env.XPRA_SERVER_LOG=/run/user/1000/xpra/0/server.log env.XPRA_SERVER_SOCKET=/run/user/1000/xpra/us-west-dev.us-west2-b.c.agones-mark-dev.internal-0 env.XPRA_SESSION_DIR=/run/user/1000/xpra/0 env._=/usr/bin/python3.11 exit-with-windows=False features.av-sync=True features.av-sync.enabled=True features.clipboard.direction=both features.clipboard.greedy=False features.clipboard.notifications=True features.clipboard.preferred-targets=('UTF8_STRING', 'TEXT', 'STRING', 'text/plain', 'image/png') features.clipboard.selections=('CLIPBOARD', 'PRIMARY', 'SECONDARY') features.clipboard.want_targets=False features.exit-with-children=False features.file.ask=False features.file.ask-timeout=3600 features.file.chunks=65536 features.file.enabled=True features.file.open=True features.file.open-ask=False features.file.open-url=True features.file.open-url-ask=False features.file.printing=True features.file.printing-ask=False features.file.size-limit=1000000000 features.file-ask-timeout=3600 features.file-chunks=65536 features.file-transfer=True features.file-transfer-ask=False features.idle_timeout=0 features.input-devices=xtest features.max-file-size=1000000000 features.network.bandwidth-limit=0 features.notifications.enabled=True features.open-files=True features.open-files-ask=False features.open-url=True features.open-url-ask=False features.pointer.relative=True features.printer.attributes=('printer-info', 'device-uri') features.printing=True features.printing-ask=False features.remote-logging.receive=True features.remote-logging.send=True features.request-file=True features.server-commands-info=True features.server-commands-signals=('SIGINT', 'SIGTERM', 'SIGHUP', 'SIGKILL', 'SIGUSR1', 'SIGUSR2') features.sharing=True features.shell=True features.start-new-commands=True features.virtual-video-devices=0 features.webcam.devices=0 features.webcam.enabled=False features.webcam.encodings=('png', 'jpeg', 'webp') features.webcam.encodings=('png', 'jpeg', 'webp') file.ask=False file.ask-timeout=3600 file.chunks=65536 file.enabled=True file.open=True file.open-ask=False file.open-url=True file.open-url-ask=False file.printing=True file.printing-ask=False file.request-file=True file.size-limit=1000000000 filters=() keyboard.enabled=True keyboard.fast-switching=True keyboard.keycode.0=19 keyboard.keycode.0x1005ff70=138 keyboard.keycode.0x1005ff71=140 keyboard.keycode.0x1008ff07=251 keyboard.keycode.0x1008ffb4=254 keyboard.keycode.0x1008ffb5=255 keyboard.keycode.0x1008ffb6=221 keyboard.keycode.0x100810f4=252 keyboard.keycode.0x100810f5=253 keyboard.keycode.1=10 keyboard.keycode.2=11 keyboard.keycode.3=12 keyboard.keycode.4=13 keyboard.keycode.5=14 keyboard.keycode.6=15 keyboard.keycode.7=16 keyboard.keycode.8=17 keyboard.keycode.9=18 keyboard.keycode.A=38 keyboard.keycode.Alt_L=204 keyboard.keycode.Alt_R=108 keyboard.keycode.AudioForward=216 keyboard.keycode.AudioLowerVolume=122 keyboard.keycode.AudioMedia=234 keyboard.keycode.AudioMicMute=198 keyboard.keycode.AudioMute=121 keyboard.keycode.AudioNext=171 keyboard.keycode.AudioPause=172 keyboard.keycode.AudioPlay=172 keyboard.keycode.AudioPrev=173 keyboard.keycode.AudioRaiseVolume=123 keyboard.keycode.AudioRecord=175 keyboard.keycode.AudioRewind=176 keyboard.keycode.AudioStop=174 keyboard.keycode.B=56 keyboard.keycode.Back=166 keyboard.keycode.BackSpace=22 keyboard.keycode.Battery=244 keyboard.keycode.Bluetooth=245 keyboard.keycode.Break=127 keyboard.keycode.C=54 keyboard.keycode.Calculator=148 keyboard.keycode.Cancel=231 keyboard.keycode.Caps_Lock=66 keyboard.keycode.ClearGrab=63 keyboard.keycode.Close=182 keyboard.keycode.Control_L=37 keyboard.keycode.Control_R=105 keyboard.keycode.Copy=141 keyboard.keycode.Cut=145 keyboard.keycode.D=40 keyboard.keycode.DOS=159 keyboard.keycode.Delete=119 keyboard.keycode.Display=235 keyboard.keycode.Documents=243 keyboard.keycode.Down=116 keyboard.keycode.E=26 keyboard.keycode.Eject=169 keyboard.keycode.End=115 keyboard.keycode.Escape=9 keyboard.keycode.Explorer=152 keyboard.keycode.F=41 keyboard.keycode.F1=67 keyboard.keycode.F2=68 keyboard.keycode.F3=69 keyboard.keycode.F4=70 keyboard.keycode.F5=71 keyboard.keycode.F6=72 keyboard.keycode.F7=73 keyboard.keycode.F8=74 keyboard.keycode.F9=75 keyboard.keycode.F10=76 keyboard.keycode.F11=95 keyboard.keycode.F12=96 keyboard.keycode.Favorites=164 keyboard.keycode.Finance=227 keyboard.keycode.Find=144 keyboard.keycode.Forward=167 keyboard.keycode.G=42 keyboard.keycode.Game=228 keyboard.keycode.Go=226 keyboard.keycode.H=43 keyboard.keycode.Hangul=130 keyboard.keycode.Hangul_Hanja=131 keyboard.keycode.Help=146 keyboard.keycode.Henkan=100 keyboard.keycode.Henkan_Mode=100 keyboard.keycode.Hiragana=99 keyboard.keycode.Hiragana_Katakana=101 keyboard.keycode.Home=110 keyboard.keycode.HomePage=180 keyboard.keycode.Hyper_L=207 keyboard.keycode.I=31 keyboard.keycode.ISO_Left_Tab=23 keyboard.keycode.ISO_Level3_Shift=92 keyboard.keycode.ISO_Level5_Shift=203 keyboard.keycode.Insert=118 keyboard.keycode.J=44 keyboard.keycode.K=45 keyboard.keycode.KP_0=90 keyboard.keycode.KP_1=87 keyboard.keycode.KP_2=88 keyboard.keycode.KP_3=89 keyboard.keycode.KP_4=83 keyboard.keycode.KP_5=84 keyboard.keycode.KP_6=85 keyboard.keycode.KP_7=79 keyboard.keycode.KP_8=80 keyboard.keycode.KP_9=81 keyboard.keycode.KP_Add=86 keyboard.keycode.KP_Begin=84 keyboard.keycode.KP_Decimal=129 keyboard.keycode.KP_Delete=91 keyboard.keycode.KP_Divide=106 keyboard.keycode.KP_Down=88 keyboard.keycode.KP_End=87 keyboard.keycode.KP_Enter=104 keyboard.keycode.KP_Equal=125 keyboard.keycode.KP_Home=79 keyboard.keycode.KP_Insert=90 keyboard.keycode.KP_Left=83 keyboard.keycode.KP_Multiply=63 keyboard.keycode.KP_Next=89 keyboard.keycode.KP_Page_Up=81 keyboard.keycode.KP_Prior=81 keyboard.keycode.KP_Right=85 keyboard.keycode.KP_Subtract=82 keyboard.keycode.KP_Up=80 keyboard.keycode.Katakana=98 keyboard.keycode.KbdBrightnessDown=237 keyboard.keycode.KbdBrightnessUp=238 keyboard.keycode.KbdLightOnOff=236 keyboard.keycode.L=46 keyboard.keycode.Launch1=156 keyboard.keycode.Launch2=157 keyboard.keycode.Launch3=210 keyboard.keycode.Launch4=211 keyboard.keycode.Launch5=192 keyboard.keycode.Launch6=193 keyboard.keycode.Launch7=194 keyboard.keycode.Launch8=195 keyboard.keycode.Launch9=196 keyboard.keycode.LaunchA=128 keyboard.keycode.LaunchB=212 keyboard.keycode.Left=113 keyboard.keycode.Linefeed=109 keyboard.keycode.M=58 keyboard.keycode.Mail=163 keyboard.keycode.MailForward=241 keyboard.keycode.Menu=135 keyboard.keycode.MenuKB=147 keyboard.keycode.Messenger=224 keyboard.keycode.Meta_L=205 keyboard.keycode.Meta_R=108 keyboard.keycode.MonBrightnessDown=232 keyboard.keycode.MonBrightnessUp=233 keyboard.keycode.Muhenkan=102 keyboard.keycode.MyComputer=165 keyboard.keycode.N=57 keyboard.keycode.New=189 keyboard.keycode.Next=117 keyboard.keycode.Next_VMode=86 keyboard.keycode.Num_Lock=77 keyboard.keycode.O=32 keyboard.keycode.Open=142 keyboard.keycode.P=33 keyboard.keycode.Page_Down=117 keyboard.keycode.Page_Up=112 keyboard.keycode.Paste=143 keyboard.keycode.Pause=127 keyboard.keycode.Phone=177 keyboard.keycode.PowerOff=124 keyboard.keycode.Prev_VMode=82 keyboard.keycode.Print=218 keyboard.keycode.Prior=112 keyboard.keycode.Q=24 keyboard.keycode.R=27 keyboard.keycode.Redo=190 keyboard.keycode.Reload=181 keyboard.keycode.Reply=240 keyboard.keycode.Return=36 keyboard.keycode.Right=114 keyboard.keycode.RotateWindows=161 keyboard.keycode.S=39 keyboard.keycode.Save=242 keyboard.keycode.ScreenSaver=160 keyboard.keycode.ScrollDown=186 keyboard.keycode.ScrollUp=185 keyboard.keycode.Scroll_Lock=78 keyboard.keycode.Search=225 keyboard.keycode.Send=153 keyboard.keycode.Shift_L=50 keyboard.keycode.Shift_R=62 keyboard.keycode.Shop=229 keyboard.keycode.Sleep=150 keyboard.keycode.SunFront=140 keyboard.keycode.SunProps=138 keyboard.keycode.Super_L=206 keyboard.keycode.Super_R=134 keyboard.keycode.Suspend=213 keyboard.keycode.Switch_VT_1=67 keyboard.keycode.Switch_VT_2=68 keyboard.keycode.Switch_VT_3=69 keyboard.keycode.Switch_VT_4=70 keyboard.keycode.Switch_VT_5=71 keyboard.keycode.Switch_VT_6=72 keyboard.keycode.Switch_VT_7=73 keyboard.keycode.Switch_VT_8=74 keyboard.keycode.Switch_VT_9=75 keyboard.keycode.Switch_VT_10=76 keyboard.keycode.Switch_VT_11=95 keyboard.keycode.Switch_VT_12=96 keyboard.keycode.Sys_Req=107 keyboard.keycode.T=28 keyboard.keycode.Tab=23 keyboard.keycode.TaskPane=162 keyboard.keycode.Tools=179 keyboard.keycode.TouchpadOff=201 keyboard.keycode.TouchpadOn=200 keyboard.keycode.TouchpadToggle=199 keyboard.keycode.U=30 keyboard.keycode.UWB=247 keyboard.keycode.Undo=139 keyboard.keycode.Ungrab=106 keyboard.keycode.Up=111 keyboard.keycode.V=55 keyboard.keycode.W=25 keyboard.keycode.WLAN=246 keyboard.keycode.WWW=158 keyboard.keycode.WakeUp=151 keyboard.keycode.WebCam=220 keyboard.keycode.X=53 keyboard.keycode.XF86AudioForward=216 keyboard.keycode.XF86AudioLowerVolume=122 keyboard.keycode.XF86AudioMedia=234 keyboard.keycode.XF86AudioMicMute=198 keyboard.keycode.XF86AudioMute=121 keyboard.keycode.XF86AudioNext=171 keyboard.keycode.XF86AudioPause=209 keyboard.keycode.XF86AudioPlay=215 keyboard.keycode.XF86AudioPreset=221 keyboard.keycode.XF86AudioPrev=173 keyboard.keycode.XF86AudioRaiseVolume=123 keyboard.keycode.XF86AudioRecord=175 keyboard.keycode.XF86AudioRewind=176 keyboard.keycode.XF86AudioStop=174 keyboard.keycode.XF86Back=166 keyboard.keycode.XF86Battery=244 keyboard.keycode.XF86Bluetooth=245 keyboard.keycode.XF86BrightnessAuto=252 keyboard.keycode.XF86Calculator=148 keyboard.keycode.XF86ClearGrab=63 keyboard.keycode.XF86Close=214 keyboard.keycode.XF86Copy=141 keyboard.keycode.XF86Cut=145 keyboard.keycode.XF86DOS=159 keyboard.keycode.XF86Display=235 keyboard.keycode.XF86DisplayOff=253 keyboard.keycode.XF86Documents=243 keyboard.keycode.XF86Eject=174 keyboard.keycode.XF86Explorer=152 keyboard.keycode.XF86Favorites=164 keyboard.keycode.XF86Finance=227 keyboard.keycode.XF86Forward=167 keyboard.keycode.XF86Game=228 keyboard.keycode.XF86Go=226 keyboard.keycode.XF86HomePage=180 keyboard.keycode.XF86KbdBrightnessDown=237 keyboard.keycode.XF86KbdBrightnessUp=238 keyboard.keycode.XF86KbdLightOnOff=236 keyboard.keycode.XF86Launch1=156 keyboard.keycode.XF86Launch2=157 keyboard.keycode.XF86Launch3=210 keyboard.keycode.XF86Launch4=211 keyboard.keycode.XF86Launch5=192 keyboard.keycode.XF86Launch6=193 keyboard.keycode.XF86Launch7=194 keyboard.keycode.XF86Launch8=195 keyboard.keycode.XF86Launch9=196 keyboard.keycode.XF86LaunchA=128 keyboard.keycode.XF86LaunchB=212 keyboard.keycode.XF86Mail=223 keyboard.keycode.XF86MailForward=241 keyboard.keycode.XF86MenuKB=147 keyboard.keycode.XF86Messenger=224 keyboard.keycode.XF86MonBrightnessCycle=251 keyboard.keycode.XF86MonBrightnessDown=232 keyboard.keycode.XF86MonBrightnessUp=233 keyboard.keycode.XF86MyComputer=165 keyboard.keycode.XF86New=189 keyboard.keycode.XF86Next_VMode=249 keyboard.keycode.XF86Open=142 keyboard.keycode.XF86Paste=143 keyboard.keycode.XF86Phone=177 keyboard.keycode.XF86PowerOff=124 keyboard.keycode.XF86Prev_VMode=250 keyboard.keycode.XF86RFKill=255 keyboard.keycode.XF86Reload=181 keyboard.keycode.XF86Reply=240 keyboard.keycode.XF86RotateWindows=161 keyboard.keycode.XF86Save=242 keyboard.keycode.XF86ScreenSaver=160 keyboard.keycode.XF86ScrollDown=186 keyboard.keycode.XF86ScrollUp=185 keyboard.keycode.XF86Search=225 keyboard.keycode.XF86Send=239 keyboard.keycode.XF86Shop=229 keyboard.keycode.XF86Sleep=150 keyboard.keycode.XF86Suspend=213 keyboard.keycode.XF86Switch_VT_1=67 keyboard.keycode.XF86Switch_VT_2=68 keyboard.keycode.XF86Switch_VT_3=69 keyboard.keycode.XF86Switch_VT_4=70 keyboard.keycode.XF86Switch_VT_5=71 keyboard.keycode.XF86Switch_VT_6=72 keyboard.keycode.XF86Switch_VT_7=73 keyboard.keycode.XF86Switch_VT_8=74 keyboard.keycode.XF86Switch_VT_9=75 keyboard.keycode.XF86Switch_VT_10=76 keyboard.keycode.XF86Switch_VT_11=95 keyboard.keycode.XF86Switch_VT_12=96 keyboard.keycode.XF86TaskPane=162 keyboard.keycode.XF86Tools=191 keyboard.keycode.XF86TouchpadOff=201 keyboard.keycode.XF86TouchpadOn=200 keyboard.keycode.XF86TouchpadToggle=199 keyboard.keycode.XF86UWB=247 keyboard.keycode.XF86Ungrab=106 keyboard.keycode.XF86WLAN=246 keyboard.keycode.XF86WWAN=254 keyboard.keycode.XF86WWW=158 keyboard.keycode.XF86WakeUp=151 keyboard.keycode.XF86WebCam=220 keyboard.keycode.XF86Xfer=155 keyboard.keycode.Xfer=155 keyboard.keycode.Y=29 keyboard.keycode.Z=52 keyboard.keycode.a=38 keyboard.keycode.ampersand=16 keyboard.keycode.apostrophe=48 keyboard.keycode.asciicircum=15 keyboard.keycode.asciitilde=49 keyboard.keycode.asterisk=17 keyboard.keycode.at=11 keyboard.keycode.b=56 keyboard.keycode.backslash=51 keyboard.keycode.bar=94 keyboard.keycode.braceleft=34 keyboard.keycode.braceright=35 keyboard.keycode.bracketleft=34 keyboard.keycode.bracketright=35 keyboard.keycode.brokenbar=94 keyboard.keycode.c=54 keyboard.keycode.colon=47 keyboard.keycode.comma=59 keyboard.keycode.d=40 keyboard.keycode.dollar=13 keyboard.keycode.e=26 keyboard.keycode.equal=21 keyboard.keycode.exclam=10 keyboard.keycode.f=41 keyboard.keycode.g=42 keyboard.keycode.grave=49 keyboard.keycode.greater=94 keyboard.keycode.h=43 keyboard.keycode.i=31 keyboard.keycode.j=44 keyboard.keycode.k=45 keyboard.keycode.l=46 keyboard.keycode.less=94 keyboard.keycode.m=58 keyboard.keycode.minus=20 keyboard.keycode.n=57 keyboard.keycode.numbersign=12 keyboard.keycode.o=32 keyboard.keycode.p=33 keyboard.keycode.parenleft=187 keyboard.keycode.parenright=188 keyboard.keycode.percent=14 keyboard.keycode.period=60 keyboard.keycode.plus=21 keyboard.keycode.plusminus=126 keyboard.keycode.q=24 keyboard.keycode.question=61 keyboard.keycode.quotedbl=48 keyboard.keycode.r=27 keyboard.keycode.s=39 keyboard.keycode.semicolon=47 keyboard.keycode.slash=61 keyboard.keycode.space=65 keyboard.keycode.t=28 keyboard.keycode.u=30 keyboard.keycode.underscore=20 keyboard.keycode.v=55 keyboard.keycode.w=25 keyboard.keycode.x=53 keyboard.keycode.y=29 keyboard.keycode.z=52 keyboard.keymap.0=('65307', 'Escape', '9', '0', '0') keyboard.keymap.1=('49', '1', '10', '0', '0') keyboard.keymap.2=('33', 'exclam', '10', '0', '1') keyboard.keymap.3=('50', '2', '11', '0', '0') keyboard.keymap.4=('64', 'at', '11', '0', '1') keyboard.keymap.5=('51', '3', '12', '0', '0') keyboard.keymap.6=('35', 'numbersign', '12', '0', '1') keyboard.keymap.7=('52', '4', '13', '0', '0') keyboard.keymap.8=('36', 'dollar', '13', '0', '1') keyboard.keymap.9=('53', '5', '14', '0', '0') keyboard.keymap.10=('37', 'percent', '14', '0', '1') keyboard.keymap.11=('54', '6', '15', '0', '0') keyboard.keymap.12=('94', 'asciicircum', '15', '0', '1') keyboard.keymap.13=('55', '7', '16', '0', '0') keyboard.keymap.14=('38', 'ampersand', '16', '0', '1') keyboard.keymap.15=('56', '8', '17', '0', '0') keyboard.keymap.16=('42', 'asterisk', '17', '0', '1') keyboard.keymap.17=('57', '9', '18', '0', '0') keyboard.keymap.18=('40', 'parenleft', '18', '0', '1') keyboard.keymap.19=('48', '0', '19', '0', '0') keyboard.keymap.20=('41', 'parenright', '19', '0', '1') keyboard.keymap.21=('45', 'minus', '20', '0', '0') keyboard.keymap.22=('95', 'underscore', '20', '0', '1') keyboard.keymap.23=('61', 'equal', '21', '0', '0') keyboard.keymap.24=('43', 'plus', '21', '0', '1') keyboard.keymap.25=('65288', 'BackSpace', '22', '0', '0') keyboard.keymap.26=('65288', 'BackSpace', '22', '0', '1') keyboard.keymap.27=('65289', 'Tab', '23', '0', '0') keyboard.keymap.28=('65056', 'ISO_Left_Tab', '23', '0', '1') keyboard.keymap.29=('113', 'q', '24', '0', '0') keyboard.keymap.30=('81', 'Q', '24', '0', '1') keyboard.keymap.31=('119', 'w', '25', '0', '0') keyboard.keymap.32=('87', 'W', '25', '0', '1') keyboard.keymap.33=('101', 'e', '26', '0', '0') keyboard.keymap.34=('69', 'E', '26', '0', '1') keyboard.keymap.35=('114', 'r', '27', '0', '0') keyboard.keymap.36=('82', 'R', '27', '0', '1') keyboard.keymap.37=('116', 't', '28', '0', '0') keyboard.keymap.38=('84', 'T', '28', '0', '1') keyboard.keymap.39=('121', 'y', '29', '0', '0') keyboard.keymap.40=('89', 'Y', '29', '0', '1') keyboard.keymap.41=('117', 'u', '30', '0', '0') keyboard.keymap.42=('85', 'U', '30', '0', '1') keyboard.keymap.43=('105', 'i', '31', '0', '0') keyboard.keymap.44=('73', 'I', '31', '0', '1') keyboard.keymap.45=('111', 'o', '32', '0', '0') keyboard.keymap.46=('79', 'O', '32', '0', '1') keyboard.keymap.47=('112', 'p', '33', '0', '0') keyboard.keymap.48=('80', 'P', '33', '0', '1') keyboard.keymap.49=('91', 'bracketleft', '34', '0', '0') keyboard.keymap.50=('123', 'braceleft', '34', '0', '1') keyboard.keymap.51=('93', 'bracketright', '35', '0', '0') keyboard.keymap.52=('125', 'braceright', '35', '0', '1') keyboard.keymap.53=('65293', 'Return', '36', '0', '0') keyboard.keymap.54=('65507', 'Control_L', '37', '0', '0') keyboard.keymap.55=('97', 'a', '38', '0', '0') keyboard.keymap.56=('65', 'A', '38', '0', '1') keyboard.keymap.57=('115', 's', '39', '0', '0') keyboard.keymap.58=('83', 'S', '39', '0', '1') keyboard.keymap.59=('100', 'd', '40', '0', '0') keyboard.keymap.60=('68', 'D', '40', '0', '1') keyboard.keymap.61=('102', 'f', '41', '0', '0') keyboard.keymap.62=('70', 'F', '41', '0', '1') keyboard.keymap.63=('103', 'g', '42', '0', '0') keyboard.keymap.64=('71', 'G', '42', '0', '1') keyboard.keymap.65=('104', 'h', '43', '0', '0') keyboard.keymap.66=('72', 'H', '43', '0', '1') keyboard.keymap.67=('106', 'j', '44', '0', '0') keyboard.keymap.68=('74', 'J', '44', '0', '1') keyboard.keymap.69=('107', 'k', '45', '0', '0') keyboard.keymap.70=('75', 'K', '45', '0', '1') keyboard.keymap.71=('108', 'l', '46', '0', '0') keyboard.keymap.72=('76', 'L', '46', '0', '1') keyboard.keymap.73=('59', 'semicolon', '47', '0', '0') keyboard.keymap.74=('58', 'colon', '47', '0', '1') keyboard.keymap.75=('39', 'apostrophe', '48', '0', '0') keyboard.keymap.76=('34', 'quotedbl', '48', '0', '1') keyboard.keymap.77=('96', 'grave', '49', '0', '0') keyboard.keymap.78=('126', 'asciitilde', '49', '0', '1') keyboard.keymap.79=('65505', 'Shift_L', '50', '0', '0') keyboard.keymap.80=('92', 'backslash', '51', '0', '0') keyboard.keymap.81=('124', 'bar', '51', '0', '1') keyboard.keymap.82=('122', 'z', '52', '0', '0') keyboard.keymap.83=('90', 'Z', '52', '0', '1') keyboard.keymap.84=('120', 'x', '53', '0', '0') keyboard.keymap.85=('88', 'X', '53', '0', '1') keyboard.keymap.86=('99', 'c', '54', '0', '0') keyboard.keymap.87=('67', 'C', '54', '0', '1') keyboard.keymap.88=('118', 'v', '55', '0', '0') keyboard.keymap.89=('86', 'V', '55', '0', '1') keyboard.keymap.90=('98', 'b', '56', '0', '0') keyboard.keymap.91=('66', 'B', '56', '0', '1') keyboard.keymap.92=('110', 'n', '57', '0', '0') keyboard.keymap.93=('78', 'N', '57', '0', '1') keyboard.keymap.94=('109', 'm', '58', '0', '0') keyboard.keymap.95=('77', 'M', '58', '0', '1') keyboard.keymap.96=('44', 'comma', '59', '0', '0') keyboard.keymap.97=('60', 'less', '59', '0', '1') keyboard.keymap.98=('46', 'period', '60', '0', '0') keyboard.keymap.99=('62', 'greater', '60', '0', '1') keyboard.keymap.100=('47', 'slash', '61', '0', '0') keyboard.keymap.101=('63', 'question', '61', '0', '1') keyboard.keymap.102=('65506', 'Shift_R', '62', '0', '0') keyboard.keymap.103=('65450', 'KP_Multiply', '63', '0', '0') keyboard.keymap.104=('65450', 'KP_Multiply', '63', '0', '1') keyboard.keymap.105=('65450', 'KP_Multiply', '63', '0', '2') keyboard.keymap.106=('65450', 'KP_Multiply', '63', '0', '3') keyboard.keymap.107=('269024801', 'ClearGrab', '63', '0', '4') keyboard.keymap.108=('65513', 'Alt_L', '64', '0', '0') keyboard.keymap.109=('65511', 'Meta_L', '64', '0', '1') keyboard.keymap.110=('32', 'space', '65', '0', '0') keyboard.keymap.111=('65509', 'Caps_Lock', '66', '0', '0') keyboard.keymap.112=('65470', 'F1', '67', '0', '0') keyboard.keymap.113=('65470', 'F1', '67', '0', '1') keyboard.keymap.114=('65470', 'F1', '67', '0', '2') keyboard.keymap.115=('65470', 'F1', '67', '0', '3') keyboard.keymap.116=('269024769', 'Switch_VT_1', '67', '0', '4') keyboard.keymap.117=('65471', 'F2', '68', '0', '0') keyboard.keymap.118=('65471', 'F2', '68', '0', '1') keyboard.keymap.119=('65471', 'F2', '68', '0', '2') keyboard.keymap.120=('65471', 'F2', '68', '0', '3') keyboard.keymap.121=('269024770', 'Switch_VT_2', '68', '0', '4') keyboard.keymap.122=('65472', 'F3', '69', '0', '0') keyboard.keymap.123=('65472', 'F3', '69', '0', '1') keyboard.keymap.124=('65472', 'F3', '69', '0', '2') keyboard.keymap.125=('65472', 'F3', '69', '0', '3') keyboard.keymap.126=('269024771', 'Switch_VT_3', '69', '0', '4') keyboard.keymap.127=('65473', 'F4', '70', '0', '0') keyboard.keymap.128=('65473', 'F4', '70', '0', '1') keyboard.keymap.129=('65473', 'F4', '70', '0', '2') keyboard.keymap.130=('65473', 'F4', '70', '0', '3') keyboard.keymap.131=('269024772', 'Switch_VT_4', '70', '0', '4') keyboard.keymap.132=('65474', 'F5', '71', '0', '0') keyboard.keymap.133=('65474', 'F5', '71', '0', '1') keyboard.keymap.134=('65474', 'F5', '71', '0', '2') keyboard.keymap.135=('65474', 'F5', '71', '0', '3') keyboard.keymap.136=('269024773', 'Switch_VT_5', '71', '0', '4') keyboard.keymap.137=('65475', 'F6', '72', '0', '0') keyboard.keymap.138=('65475', 'F6', '72', '0', '1') keyboard.keymap.139=('65475', 'F6', '72', '0', '2') keyboard.keymap.140=('65475', 'F6', '72', '0', '3') keyboard.keymap.141=('269024774', 'Switch_VT_6', '72', '0', '4') keyboard.keymap.142=('65476', 'F7', '73', '0', '0') keyboard.keymap.143=('65476', 'F7', '73', '0', '1') keyboard.keymap.144=('65476', 'F7', '73', '0', '2') keyboard.keymap.145=('65476', 'F7', '73', '0', '3') keyboard.keymap.146=('269024775', 'Switch_VT_7', '73', '0', '4') keyboard.keymap.147=('65477', 'F8', '74', '0', '0') keyboard.keymap.148=('65477', 'F8', '74', '0', '1') keyboard.keymap.149=('65477', 'F8', '74', '0', '2') keyboard.keymap.150=('65477', 'F8', '74', '0', '3') keyboard.keymap.151=('269024776', 'Switch_VT_8', '74', '0', '4') keyboard.keymap.152=('65478', 'F9', '75', '0', '0') keyboard.keymap.153=('65478', 'F9', '75', '0', '1') keyboard.keymap.154=('65478', 'F9', '75', '0', '2') keyboard.keymap.155=('65478', 'F9', '75', '0', '3') keyboard.keymap.156=('269024777', 'Switch_VT_9', '75', '0', '4') keyboard.keymap.157=('65479', 'F10', '76', '0', '0') keyboard.keymap.158=('65479', 'F10', '76', '0', '1') keyboard.keymap.159=('65479', 'F10', '76', '0', '2') keyboard.keymap.160=('65479', 'F10', '76', '0', '3') keyboard.keymap.161=('269024778', 'Switch_VT_10', '76', '0', '4') keyboard.keymap.162=('65407', 'Num_Lock', '77', '0', '0') keyboard.keymap.163=('65300', 'Scroll_Lock', '78', '0', '0') keyboard.keymap.164=('65429', 'KP_Home', '79', '0', '0') keyboard.keymap.165=('65463', 'KP_7', '79', '0', '1') keyboard.keymap.166=('65431', 'KP_Up', '80', '0', '0') keyboard.keymap.167=('65464', 'KP_8', '80', '0', '1') keyboard.keymap.168=('65434', 'KP_Page_Up', '81', '0', '0') keyboard.keymap.169=('65465', 'KP_9', '81', '0', '1') keyboard.keymap.170=('65453', 'KP_Subtract', '82', '0', '0') keyboard.keymap.171=('65453', 'KP_Subtract', '82', '0', '1') keyboard.keymap.172=('65453', 'KP_Subtract', '82', '0', '2') keyboard.keymap.173=('65453', 'KP_Subtract', '82', '0', '3') keyboard.keymap.174=('269024803', 'Prev_VMode', '82', '0', '4') keyboard.keymap.175=('65430', 'KP_Left', '83', '0', '0') keyboard.keymap.176=('65460', 'KP_4', '83', '0', '1') keyboard.keymap.177=('65437', 'KP_Begin', '84', '0', '0') keyboard.keymap.178=('65461', 'KP_5', '84', '0', '1') keyboard.keymap.179=('65432', 'KP_Right', '85', '0', '0') keyboard.keymap.180=('65462', 'KP_6', '85', '0', '1') keyboard.keymap.181=('65451', 'KP_Add', '86', '0', '0') keyboard.keymap.182=('65451', 'KP_Add', '86', '0', '1') keyboard.keymap.183=('65451', 'KP_Add', '86', '0', '2') keyboard.keymap.184=('65451', 'KP_Add', '86', '0', '3') keyboard.keymap.185=('269024802', 'Next_VMode', '86', '0', '4') keyboard.keymap.186=('65436', 'KP_End', '87', '0', '0') keyboard.keymap.187=('65457', 'KP_1', '87', '0', '1') keyboard.keymap.188=('65433', 'KP_Down', '88', '0', '0') keyboard.keymap.189=('65458', 'KP_2', '88', '0', '1') keyboard.keymap.190=('65435', 'KP_Next', '89', '0', '0') keyboard.keymap.191=('65459', 'KP_3', '89', '0', '1') keyboard.keymap.192=('65438', 'KP_Insert', '90', '0', '0') keyboard.keymap.193=('65456', 'KP_0', '90', '0', '1') keyboard.keymap.194=('65439', 'KP_Delete', '91', '0', '0') keyboard.keymap.195=('65454', 'KP_Decimal', '91', '0', '1') keyboard.keymap.196=('65027', 'ISO_Level3_Shift', '92', '0', '0') keyboard.keymap.197=('60', 'less', '94', '0', '0') keyboard.keymap.198=('62', 'greater', '94', '0', '1') keyboard.keymap.199=('124', 'bar', '94', '0', '2') keyboard.keymap.200=('166', 'brokenbar', '94', '0', '3') keyboard.keymap.201=('65480', 'F11', '95', '0', '0') keyboard.keymap.202=('65480', 'F11', '95', '0', '1') keyboard.keymap.203=('65480', 'F11', '95', '0', '2') keyboard.keymap.204=('65480', 'F11', '95', '0', '3') keyboard.keymap.205=('269024779', 'Switch_VT_11', '95', '0', '4') keyboard.keymap.206=('65481', 'F12', '96', '0', '0') keyboard.keymap.207=('65481', 'F12', '96', '0', '1') keyboard.keymap.208=('65481', 'F12', '96', '0', '2') keyboard.keymap.209=('65481', 'F12', '96', '0', '3') keyboard.keymap.210=('269024780', 'Switch_VT_12', '96', '0', '4') keyboard.keymap.211=('65318', 'Katakana', '98', '0', '0') keyboard.keymap.212=('65317', 'Hiragana', '99', '0', '0') keyboard.keymap.213=('65315', 'Henkan', '100', '0', '0') keyboard.keymap.214=('65319', 'Hiragana_Katakana', '101', '0', '0') keyboard.keymap.215=('65314', 'Muhenkan', '102', '0', '0') keyboard.keymap.216=('65421', 'KP_Enter', '104', '0', '0') keyboard.keymap.217=('65508', 'Control_R', '105', '0', '0') keyboard.keymap.218=('65455', 'KP_Divide', '106', '0', '0') keyboard.keymap.219=('65455', 'KP_Divide', '106', '0', '1') keyboard.keymap.220=('65455', 'KP_Divide', '106', '0', '2') keyboard.keymap.221=('65455', 'KP_Divide', '106', '0', '3') keyboard.keymap.222=('269024800', 'Ungrab', '106', '0', '4') keyboard.keymap.223=('65377', 'Print', '107', '0', '0') keyboard.keymap.224=('65301', 'Sys_Req', '107', '0', '1') keyboard.keymap.225=('65514', 'Alt_R', '108', '0', '0') keyboard.keymap.226=('65512', 'Meta_R', '108', '0', '1') keyboard.keymap.227=('65290', 'Linefeed', '109', '0', '0') keyboard.keymap.228=('65360', 'Home', '110', '0', '0') keyboard.keymap.229=('65362', 'Up', '111', '0', '0') keyboard.keymap.230=('65365', 'Page_Up', '112', '0', '0') keyboard.keymap.231=('65361', 'Left', '113', '0', '0') keyboard.keymap.232=('65363', 'Right', '114', '0', '0') keyboard.keymap.233=('65367', 'End', '115', '0', '0') keyboard.keymap.234=('65364', 'Down', '116', '0', '0') keyboard.keymap.235=('65366', 'Page_Down', '117', '0', '0') keyboard.keymap.236=('65379', 'Insert', '118', '0', '0') keyboard.keymap.237=('65535', 'Delete', '119', '0', '0') keyboard.keymap.238=('269025042', 'AudioMute', '121', '0', '0') keyboard.keymap.239=('269025041', 'AudioLowerVolume', '122', '0', '0') keyboard.keymap.240=('269025043', 'AudioRaiseVolume', '123', '0', '0') keyboard.keymap.241=('269025066', 'PowerOff', '124', '0', '0') keyboard.keymap.242=('65469', 'KP_Equal', '125', '0', '0') keyboard.keymap.243=('177', 'plusminus', '126', '0', '0') keyboard.keymap.244=('65299', 'Pause', '127', '0', '0') keyboard.keymap.245=('65387', 'Break', '127', '0', '1') keyboard.keymap.246=('269025098', 'LaunchA', '128', '0', '0') keyboard.keymap.247=('65454', 'KP_Decimal', '129', '0', '0') keyboard.keymap.248=('65454', 'KP_Decimal', '129', '0', '1') keyboard.keymap.249=('65329', 'Hangul', '130', '0', '0') keyboard.keymap.250=('65332', 'Hangul_Hanja', '131', '0', '0') keyboard.keymap.251=('65515', 'Super_L', '133', '0', '0') keyboard.keymap.252=('65516', 'Super_R', '134', '0', '0') keyboard.keymap.253=('65383', 'Menu', '135', '0', '0') keyboard.keymap.254=('65385', 'Cancel', '136', '0', '0') keyboard.keymap.255=('65382', 'Redo', '137', '0', '0') keyboard.keymap.256=('268828528', '0x1005ff70', '138', '0', '0') keyboard.keymap.257=('65381', 'Undo', '139', '0', '0') keyboard.keymap.258=('268828529', '0x1005ff71', '140', '0', '0') keyboard.keymap.259=('269025111', 'Copy', '141', '0', '0') keyboard.keymap.260=('269025131', 'Open', '142', '0', '0') keyboard.keymap.261=('269025133', 'Paste', '143', '0', '0') keyboard.keymap.262=('65384', 'Find', '144', '0', '0') keyboard.keymap.263=('269025112', 'Cut', '145', '0', '0') keyboard.keymap.264=('65386', 'Help', '146', '0', '0') keyboard.keymap.265=('269025125', 'MenuKB', '147', '0', '0') keyboard.keymap.266=('269025053', 'Calculator', '148', '0', '0') keyboard.keymap.267=('269025071', 'Sleep', '150', '0', '0') keyboard.keymap.268=('269025067', 'WakeUp', '151', '0', '0') keyboard.keymap.269=('269025117', 'Explorer', '152', '0', '0') keyboard.keymap.270=('269025147', 'Send', '153', '0', '0') keyboard.keymap.271=('269025162', 'Xfer', '155', '0', '0') keyboard.keymap.272=('269025089', 'Launch1', '156', '0', '0') keyboard.keymap.273=('269025090', 'Launch2', '157', '0', '0') keyboard.keymap.274=('269025070', 'WWW', '158', '0', '0') keyboard.keymap.275=('269025114', 'DOS', '159', '0', '0') keyboard.keymap.276=('269025069', 'ScreenSaver', '160', '0', '0') keyboard.keymap.277=('269025140', 'RotateWindows', '161', '0', '0') keyboard.keymap.278=('269025151', 'TaskPane', '162', '0', '0') keyboard.keymap.279=('269025049', 'Mail', '163', '0', '0') keyboard.keymap.280=('269025072', 'Favorites', '164', '0', '0') keyboard.keymap.281=('269025075', 'MyComputer', '165', '0', '0') keyboard.keymap.282=('269025062', 'Back', '166', '0', '0') keyboard.keymap.283=('269025063', 'Forward', '167', '0', '0') keyboard.keymap.284=('269025068', 'Eject', '169', '0', '0') keyboard.keymap.285=('269025068', 'Eject', '170', '0', '0') keyboard.keymap.286=('269025047', 'AudioNext', '171', '0', '0') keyboard.keymap.287=('269025044', 'AudioPlay', '172', '0', '0') keyboard.keymap.288=('269025073', 'AudioPause', '172', '0', '1') keyboard.keymap.289=('269025046', 'AudioPrev', '173', '0', '0') keyboard.keymap.290=('269025045', 'AudioStop', '174', '0', '0') keyboard.keymap.291=('269025068', 'Eject', '174', '0', '1') keyboard.keymap.292=('269025052', 'AudioRecord', '175', '0', '0') keyboard.keymap.293=('269025086', 'AudioRewind', '176', '0', '0') keyboard.keymap.294=('269025134', 'Phone', '177', '0', '0') keyboard.keymap.295=('269025153', 'Tools', '179', '0', '0') keyboard.keymap.296=('269025048', 'HomePage', '180', '0', '0') keyboard.keymap.297=('269025139', 'Reload', '181', '0', '0') keyboard.keymap.298=('269025110', 'Close', '182', '0', '0') keyboard.keymap.299=('269025144', 'ScrollUp', '185', '0', '0') keyboard.keymap.300=('269025145', 'ScrollDown', '186', '0', '0') keyboard.keymap.301=('40', 'parenleft', '187', '0', '0') keyboard.keymap.302=('41', 'parenright', '188', '0', '0') keyboard.keymap.303=('269025128', 'New', '189', '0', '0') keyboard.keymap.304=('65382', 'Redo', '190', '0', '0') keyboard.keymap.305=('269025153', 'Tools', '191', '0', '0') keyboard.keymap.306=('269025093', 'Launch5', '192', '0', '0') keyboard.keymap.307=('269025094', 'Launch6', '193', '0', '0') keyboard.keymap.308=('269025095', 'Launch7', '194', '0', '0') keyboard.keymap.309=('269025096', 'Launch8', '195', '0', '0') keyboard.keymap.310=('269025097', 'Launch9', '196', '0', '0') keyboard.keymap.311=('269025202', 'AudioMicMute', '198', '0', '0') keyboard.keymap.312=('269025193', 'TouchpadToggle', '199', '0', '0') keyboard.keymap.313=('269025200', 'TouchpadOn', '200', '0', '0') keyboard.keymap.314=('269025201', 'TouchpadOff', '201', '0', '0') keyboard.keymap.315=('65041', 'ISO_Level5_Shift', '203', '0', '0') keyboard.keymap.316=('65513', 'Alt_L', '204', '0', '1') keyboard.keymap.317=('65511', 'Meta_L', '205', '0', '1') keyboard.keymap.318=('65515', 'Super_L', '206', '0', '1') keyboard.keymap.319=('65517', 'Hyper_L', '207', '0', '1') keyboard.keymap.320=('269025044', 'AudioPlay', '208', '0', '0') keyboard.keymap.321=('269025073', 'AudioPause', '209', '0', '0') keyboard.keymap.322=('269025091', 'Launch3', '210', '0', '0') keyboard.keymap.323=('269025092', 'Launch4', '211', '0', '0') keyboard.keymap.324=('269025099', 'LaunchB', '212', '0', '0') keyboard.keymap.325=('269025191', 'Suspend', '213', '0', '0') keyboard.keymap.326=('269025110', 'Close', '214', '0', '0') keyboard.keymap.327=('269025044', 'AudioPlay', '215', '0', '0') keyboard.keymap.328=('269025175', 'AudioForward', '216', '0', '0') keyboard.keymap.329=('65377', 'Print', '218', '0', '0') keyboard.keymap.330=('269025167', 'WebCam', '220', '0', '0') keyboard.keymap.331=('269025206', '0x1008ffb6', '221', '0', '0') keyboard.keymap.332=('269025049', 'Mail', '223', '0', '0') keyboard.keymap.333=('269025166', 'Messenger', '224', '0', '0') keyboard.keymap.334=('269025051', 'Search', '225', '0', '0') keyboard.keymap.335=('269025119', 'Go', '226', '0', '0') keyboard.keymap.336=('269025084', 'Finance', '227', '0', '0') keyboard.keymap.337=('269025118', 'Game', '228', '0', '0') keyboard.keymap.338=('269025078', 'Shop', '229', '0', '0') keyboard.keymap.339=('65385', 'Cancel', '231', '0', '0') keyboard.keymap.340=('269025027', 'MonBrightnessDown', '232', '0', '0') keyboard.keymap.341=('269025026', 'MonBrightnessUp', '233', '0', '0') keyboard.keymap.342=('269025074', 'AudioMedia', '234', '0', '0') keyboard.keymap.343=('269025113', 'Display', '235', '0', '0') keyboard.keymap.344=('269025028', 'KbdLightOnOff', '236', '0', '0') keyboard.keymap.345=('269025030', 'KbdBrightnessDown', '237', '0', '0') keyboard.keymap.346=('269025029', 'KbdBrightnessUp', '238', '0', '0') keyboard.keymap.347=('269025147', 'Send', '239', '0', '0') keyboard.keymap.348=('269025138', 'Reply', '240', '0', '0') keyboard.keymap.349=('269025168', 'MailForward', '241', '0', '0') keyboard.keymap.350=('269025143', 'Save', '242', '0', '0') keyboard.keymap.351=('269025115', 'Documents', '243', '0', '0') keyboard.keymap.352=('269025171', 'Battery', '244', '0', '0') keyboard.keymap.353=('269025172', 'Bluetooth', '245', '0', '0') keyboard.keymap.354=('269025173', 'WLAN', '246', '0', '0') keyboard.keymap.355=('269025174', 'UWB', '247', '0', '0') keyboard.keymap.356=('269024802', 'Next_VMode', '249', '0', '0') keyboard.keymap.357=('269024803', 'Prev_VMode', '250', '0', '0') keyboard.keymap.358=('269025031', '0x1008ff07', '251', '0', '0') keyboard.keymap.359=('268964084', '0x100810f4', '252', '0', '0') keyboard.keymap.360=('268964085', '0x100810f5', '253', '0', '0') keyboard.keymap.361=('269025204', '0x1008ffb4', '254', '0', '0') keyboard.keymap.362=('269025205', '0x1008ffb5', '255', '0', '0') keyboard.keys-pressed.133=Super_L keyboard.keys_pressed=() keyboard.layout=us keyboard.layout-group=0 keyboard.layout_groups=True keyboard.mod_pointermissing=('mod2',) keyboard.modifier.Alt_L=mod1 keyboard.modifier.Alt_R=mod1 keyboard.modifier.Caps_Lock=lock keyboard.modifier.Control_L=control keyboard.modifier.Control_R=control keyboard.modifier.Hyper_L=mod4 keyboard.modifier.ISO_Level3_Shift=mod5 keyboard.modifier.ISO_Level5_Shift=mod3 keyboard.modifier.Meta_L=mod1 keyboard.modifier.Num_Lock=mod2 keyboard.modifier.Shift_L=shift keyboard.modifier.Shift_R=shift keyboard.modifier.Super_L=mod4 keyboard.modifier.Super_R=mod4 keyboard.modifier.control.client_keys=("('37', 'Control_L')", "('105', 'Control_R')") keyboard.modifier.control.keys=('Control_L', 'Control_R') keyboard.modifier.filter=() keyboard.modifier.lock.client_keys=("('66', 'Caps_Lock')",) keyboard.modifier.lock.keys=('Caps_Lock',) keyboard.modifier.mod1.client_keys=("('0', 'Alt_L')", "('108', 'Alt_R')", "('204', 'Alt_L')", "('205', 'Meta_L')") keyboard.modifier.mod1.keys=('Alt_L', 'Alt_R', 'Meta_L') keyboard.modifier.mod2.client_keys=("('77', 'Num_Lock')",) keyboard.modifier.mod2.keys=('Num_Lock',) keyboard.modifier.mod3.client_keys=("('203', 'ISO_Level5_Shift')",) keyboard.modifier.mod3.keys=('ISO_Level5_Shift',) keyboard.modifier.mod4.client_keys=("('0', 'Super_L')", "('134', 'Super_R')", "('206', 'Super_L')", "('207', 'Hyper_L')") keyboard.modifier.mod4.keys=('Super_L', 'Super_R', 'Hyper_L') keyboard.modifier.mod5.client_keys=("('92', 'ISO_Level3_Shift')",) keyboard.modifier.mod5.keys=('ISO_Level3_Shift',) keyboard.modifier.shift.client_keys=("('50', 'Shift_L')", "('62', 'Shift_R')") keyboard.modifier.shift.keys=('Shift_L', 'Shift_R') keyboard.modifiers.nuisance=('lock', 'mod2') keyboard.owner=8fa3cd06a56a5eeaed80a7f9d25d21139b70d68ff4ba84fd46856c2874bd7650 keyboard.repeat.delay=660 keyboard.repeat.interval=40 keyboard.state.keys_pressed=() keyboard.sync=True keyboard.x11_keycode.9=('Escape', '', 'Escape') keyboard.x11_keycode.10=('1', 'exclam', '1', 'exclam') keyboard.x11_keycode.11=('2', 'at', '2', 'at') keyboard.x11_keycode.12=('3', 'numbersign', '3', 'numbersign') keyboard.x11_keycode.13=('4', 'dollar', '4', 'dollar') keyboard.x11_keycode.14=('5', 'percent', '5', 'percent') keyboard.x11_keycode.15=('6', 'asciicircum', '6', 'asciicircum') keyboard.x11_keycode.16=('7', 'ampersand', '7', 'ampersand') keyboard.x11_keycode.17=('8', 'asterisk', '8', 'asterisk') keyboard.x11_keycode.18=('9', 'parenleft', '9', 'parenleft') keyboard.x11_keycode.19=('0', 'parenright', '0', 'parenright') keyboard.x11_keycode.20=('minus', 'underscore', 'minus', 'underscore') keyboard.x11_keycode.21=('equal', 'plus', 'equal', 'plus') keyboard.x11_keycode.22=('BackSpace', 'BackSpace', 'BackSpace', 'BackSpace') keyboard.x11_keycode.23=('Tab', 'ISO_Left_Tab', 'Tab', 'ISO_Left_Tab') keyboard.x11_keycode.24=('q', 'Q', 'q', 'Q') keyboard.x11_keycode.25=('w', 'W', 'w', 'W') keyboard.x11_keycode.26=('e', 'E', 'e', 'E') keyboard.x11_keycode.27=('r', 'R', 'r', 'R') keyboard.x11_keycode.28=('t', 'T', 't', 'T') keyboard.x11_keycode.29=('y', 'Y', 'y', 'Y') keyboard.x11_keycode.30=('u', 'U', 'u', 'U') keyboard.x11_keycode.31=('i', 'I', 'i', 'I') keyboard.x11_keycode.32=('o', 'O', 'o', 'O') keyboard.x11_keycode.33=('p', 'P', 'p', 'P') keyboard.x11_keycode.34=('bracketleft', 'braceleft', 'bracketleft', 'braceleft') keyboard.x11_keycode.35=('bracketright', 'braceright', 'bracketright', 'braceright') keyboard.x11_keycode.36=('Return', '', 'Return') keyboard.x11_keycode.37=('Control_L', '', 'Control_L') keyboard.x11_keycode.38=('a', 'A', 'a', 'A') keyboard.x11_keycode.39=('s', 'S', 's', 'S') keyboard.x11_keycode.40=('d', 'D', 'd', 'D') keyboard.x11_keycode.41=('f', 'F', 'f', 'F') keyboard.x11_keycode.42=('g', 'G', 'g', 'G') keyboard.x11_keycode.43=('h', 'H', 'h', 'H') keyboard.x11_keycode.44=('j', 'J', 'j', 'J') keyboard.x11_keycode.45=('k', 'K', 'k', 'K') keyboard.x11_keycode.46=('l', 'L', 'l', 'L') keyboard.x11_keycode.47=('semicolon', 'colon', 'semicolon', 'colon') keyboard.x11_keycode.48=('apostrophe', 'quotedbl', 'apostrophe', 'quotedbl') keyboard.x11_keycode.49=('grave', 'asciitilde', 'grave', 'asciitilde') keyboard.x11_keycode.50=('Shift_L', '', 'Shift_L') keyboard.x11_keycode.51=('backslash', 'bar', 'backslash', 'bar') keyboard.x11_keycode.52=('z', 'Z', 'z', 'Z') keyboard.x11_keycode.53=('x', 'X', 'x', 'X') keyboard.x11_keycode.54=('c', 'C', 'c', 'C') keyboard.x11_keycode.55=('v', 'V', 'v', 'V') keyboard.x11_keycode.56=('b', 'B', 'b', 'B') keyboard.x11_keycode.57=('n', 'N', 'n', 'N') keyboard.x11_keycode.58=('m', 'M', 'm', 'M') keyboard.x11_keycode.59=('comma', 'less', 'comma', 'less') keyboard.x11_keycode.60=('period', 'greater', 'period', 'greater') keyboard.x11_keycode.61=('slash', 'question', 'slash', 'question') keyboard.x11_keycode.62=('Shift_R', '', 'Shift_R') keyboard.x11_keycode.63=('KP_Multiply', 'KP_Multiply', 'KP_Multiply', 'KP_Multiply', 'KP_Multiply', 'KP_Multiply', 'XF86ClearGrab') keyboard.x11_keycode.64=('Alt_L', 'Meta_L', 'Alt_L', 'Meta_L') keyboard.x11_keycode.65=('space', '', 'space') keyboard.x11_keycode.66=('Caps_Lock', '', 'Caps_Lock') keyboard.x11_keycode.67=('F1', 'F1', 'F1', 'F1', 'F1', 'F1', 'XF86Switch_VT_1') keyboard.x11_keycode.68=('F2', 'F2', 'F2', 'F2', 'F2', 'F2', 'XF86Switch_VT_2') keyboard.x11_keycode.69=('F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'XF86Switch_VT_3') keyboard.x11_keycode.70=('F4', 'F4', 'F4', 'F4', 'F4', 'F4', 'XF86Switch_VT_4') keyboard.x11_keycode.71=('F5', 'F5', 'F5', 'F5', 'F5', 'F5', 'XF86Switch_VT_5') keyboard.x11_keycode.72=('F6', 'F6', 'F6', 'F6', 'F6', 'F6', 'XF86Switch_VT_6') keyboard.x11_keycode.73=('F7', 'F7', 'F7', 'F7', 'F7', 'F7', 'XF86Switch_VT_7') keyboard.x11_keycode.74=('F8', 'F8', 'F8', 'F8', 'F8', 'F8', 'XF86Switch_VT_8') keyboard.x11_keycode.75=('F9', 'F9', 'F9', 'F9', 'F9', 'F9', 'XF86Switch_VT_9') keyboard.x11_keycode.76=('F10', 'F10', 'F10', 'F10', 'F10', 'F10', 'XF86Switch_VT_10') keyboard.x11_keycode.77=('Num_Lock', '', 'Num_Lock') keyboard.x11_keycode.78=('Scroll_Lock', '', 'Scroll_Lock') keyboard.x11_keycode.79=('KP_Home', 'KP_7', 'KP_Home', 'KP_7') keyboard.x11_keycode.80=('KP_Up', 'KP_8', 'KP_Up', 'KP_8') keyboard.x11_keycode.81=('KP_Prior', 'KP_9', 'KP_Prior', 'KP_9') keyboard.x11_keycode.82=('KP_Subtract', 'KP_Subtract', 'KP_Subtract', 'KP_Subtract', 'KP_Subtract', 'KP_Subtract', 'XF86Prev_VMode') keyboard.x11_keycode.83=('KP_Left', 'KP_4', 'KP_Left', 'KP_4') keyboard.x11_keycode.84=('KP_Begin', 'KP_5', 'KP_Begin', 'KP_5') keyboard.x11_keycode.85=('KP_Right', 'KP_6', 'KP_Right', 'KP_6') keyboard.x11_keycode.86=('KP_Add', 'KP_Add', 'KP_Add', 'KP_Add', 'KP_Add', 'KP_Add', 'XF86Next_VMode') keyboard.x11_keycode.87=('KP_End', 'KP_1', 'KP_End', 'KP_1') keyboard.x11_keycode.88=('KP_Down', 'KP_2', 'KP_Down', 'KP_2') keyboard.x11_keycode.89=('KP_Next', 'KP_3', 'KP_Next', 'KP_3') keyboard.x11_keycode.90=('KP_Insert', 'KP_0', 'KP_Insert', 'KP_0') keyboard.x11_keycode.91=('KP_Delete', 'KP_Decimal', 'KP_Delete', 'KP_Decimal') keyboard.x11_keycode.92=('ISO_Level3_Shift', '', 'ISO_Level3_Shift') keyboard.x11_keycode.94=('less', 'greater', 'less', 'greater', 'bar', 'brokenbar', 'bar') keyboard.x11_keycode.95=('F11', 'F11', 'F11', 'F11', 'F11', 'F11', 'XF86Switch_VT_11') keyboard.x11_keycode.96=('F12', 'F12', 'F12', 'F12', 'F12', 'F12', 'XF86Switch_VT_12') keyboard.x11_keycode.98=('Katakana', '', 'Katakana') keyboard.x11_keycode.99=('Hiragana', '', 'Hiragana') keyboard.x11_keycode.100=('Henkan_Mode', '', 'Henkan_Mode') keyboard.x11_keycode.101=('Hiragana_Katakana', '', 'Hiragana_Katakana') keyboard.x11_keycode.102=('Muhenkan', '', 'Muhenkan') keyboard.x11_keycode.104=('KP_Enter', '', 'KP_Enter') keyboard.x11_keycode.105=('Control_R', '', 'Control_R') keyboard.x11_keycode.106=('KP_Divide', 'KP_Divide', 'KP_Divide', 'KP_Divide', 'KP_Divide', 'KP_Divide', 'XF86Ungrab') keyboard.x11_keycode.107=('Print', 'Sys_Req', 'Print', 'Sys_Req') keyboard.x11_keycode.108=('Alt_R', 'Meta_R', 'Alt_R', 'Meta_R') keyboard.x11_keycode.109=('Linefeed', '', 'Linefeed') keyboard.x11_keycode.110=('Home', '', 'Home') keyboard.x11_keycode.111=('Up', '', 'Up') keyboard.x11_keycode.112=('Prior', '', 'Prior') keyboard.x11_keycode.113=('Left', '', 'Left') keyboard.x11_keycode.114=('Right', '', 'Right') keyboard.x11_keycode.115=('End', '', 'End') keyboard.x11_keycode.116=('Down', '', 'Down') keyboard.x11_keycode.117=('Next', '', 'Next') keyboard.x11_keycode.118=('Insert', '', 'Insert') keyboard.x11_keycode.119=('Delete', '', 'Delete') keyboard.x11_keycode.121=('XF86AudioMute', '', 'XF86AudioMute') keyboard.x11_keycode.122=('XF86AudioLowerVolume', '', 'XF86AudioLowerVolume') keyboard.x11_keycode.123=('XF86AudioRaiseVolume', '', 'XF86AudioRaiseVolume') keyboard.x11_keycode.124=('XF86PowerOff', '', 'XF86PowerOff') keyboard.x11_keycode.125=('KP_Equal', '', 'KP_Equal') keyboard.x11_keycode.126=('plusminus', '', 'plusminus') keyboard.x11_keycode.127=('Pause', 'Break', 'Pause', 'Break') keyboard.x11_keycode.128=('XF86LaunchA', '', 'XF86LaunchA') keyboard.x11_keycode.129=('KP_Decimal', 'KP_Decimal', 'KP_Decimal', 'KP_Decimal') keyboard.x11_keycode.130=('Hangul', '', 'Hangul') keyboard.x11_keycode.131=('Hangul_Hanja', '', 'Hangul_Hanja') keyboard.x11_keycode.133=('Super_L', '', 'Super_L') keyboard.x11_keycode.134=('Super_R', '', 'Super_R') keyboard.x11_keycode.135=('Menu', '', 'Menu') keyboard.x11_keycode.136=('Cancel', '', 'Cancel') keyboard.x11_keycode.137=('Redo', '', 'Redo') keyboard.x11_keycode.138=('SunProps', '', 'SunProps') keyboard.x11_keycode.139=('Undo', '', 'Undo') keyboard.x11_keycode.140=('SunFront', '', 'SunFront') keyboard.x11_keycode.141=('XF86Copy', '', 'XF86Copy') keyboard.x11_keycode.142=('XF86Open', '', 'XF86Open') keyboard.x11_keycode.143=('XF86Paste', '', 'XF86Paste') keyboard.x11_keycode.144=('Find', '', 'Find') keyboard.x11_keycode.145=('XF86Cut', '', 'XF86Cut') keyboard.x11_keycode.146=('Help', '', 'Help') keyboard.x11_keycode.147=('XF86MenuKB', '', 'XF86MenuKB') keyboard.x11_keycode.148=('XF86Calculator', '', 'XF86Calculator') keyboard.x11_keycode.150=('XF86Sleep', '', 'XF86Sleep') keyboard.x11_keycode.151=('XF86WakeUp', '', 'XF86WakeUp') keyboard.x11_keycode.152=('XF86Explorer', '', 'XF86Explorer') keyboard.x11_keycode.153=('XF86Send', '', 'XF86Send') keyboard.x11_keycode.155=('XF86Xfer', '', 'XF86Xfer') keyboard.x11_keycode.156=('XF86Launch1', '', 'XF86Launch1') keyboard.x11_keycode.157=('XF86Launch2', '', 'XF86Launch2') keyboard.x11_keycode.158=('XF86WWW', '', 'XF86WWW') keyboard.x11_keycode.159=('XF86DOS', '', 'XF86DOS') keyboard.x11_keycode.160=('XF86ScreenSaver', '', 'XF86ScreenSaver') keyboard.x11_keycode.161=('XF86RotateWindows', '', 'XF86RotateWindows') keyboard.x11_keycode.162=('XF86TaskPane', '', 'XF86TaskPane') keyboard.x11_keycode.163=('XF86Mail', '', 'XF86Mail') keyboard.x11_keycode.164=('XF86Favorites', '', 'XF86Favorites') keyboard.x11_keycode.165=('XF86MyComputer', '', 'XF86MyComputer') keyboard.x11_keycode.166=('XF86Back', '', 'XF86Back') keyboard.x11_keycode.167=('XF86Forward', '', 'XF86Forward') keyboard.x11_keycode.169=('XF86Eject', '', 'XF86Eject') keyboard.x11_keycode.170=('XF86Eject', '', 'XF86Eject') keyboard.x11_keycode.171=('XF86AudioNext', '', 'XF86AudioNext') keyboard.x11_keycode.172=('XF86AudioPlay', 'XF86AudioPause', 'XF86AudioPlay', 'XF86AudioPause') keyboard.x11_keycode.173=('XF86AudioPrev', '', 'XF86AudioPrev') keyboard.x11_keycode.174=('XF86AudioStop', 'XF86Eject', 'XF86AudioStop', 'XF86Eject') keyboard.x11_keycode.175=('XF86AudioRecord', '', 'XF86AudioRecord') keyboard.x11_keycode.176=('XF86AudioRewind', '', 'XF86AudioRewind') keyboard.x11_keycode.177=('XF86Phone', '', 'XF86Phone') keyboard.x11_keycode.179=('XF86Tools', '', 'XF86Tools') keyboard.x11_keycode.180=('XF86HomePage', '', 'XF86HomePage') keyboard.x11_keycode.181=('XF86Reload', '', 'XF86Reload') keyboard.x11_keycode.182=('XF86Close', '', 'XF86Close') keyboard.x11_keycode.185=('XF86ScrollUp', '', 'XF86ScrollUp') keyboard.x11_keycode.186=('XF86ScrollDown', '', 'XF86ScrollDown') keyboard.x11_keycode.187=('parenleft', '', 'parenleft') keyboard.x11_keycode.188=('parenright', '', 'parenright') keyboard.x11_keycode.189=('XF86New', '', 'XF86New') keyboard.x11_keycode.190=('Redo', '', 'Redo') keyboard.x11_keycode.191=('XF86Tools', '', 'XF86Tools') keyboard.x11_keycode.192=('XF86Launch5', '', 'XF86Launch5') keyboard.x11_keycode.193=('XF86Launch6', '', 'XF86Launch6') keyboard.x11_keycode.194=('XF86Launch7', '', 'XF86Launch7') keyboard.x11_keycode.195=('XF86Launch8', '', 'XF86Launch8') keyboard.x11_keycode.196=('XF86Launch9', '', 'XF86Launch9') keyboard.x11_keycode.198=('XF86AudioMicMute', '', 'XF86AudioMicMute') keyboard.x11_keycode.199=('XF86TouchpadToggle', '', 'XF86TouchpadToggle') keyboard.x11_keycode.200=('XF86TouchpadOn', '', 'XF86TouchpadOn') keyboard.x11_keycode.201=('XF86TouchpadOff', '', 'XF86TouchpadOff') keyboard.x11_keycode.203=('ISO_Level5_Shift', '', 'ISO_Level5_Shift') keyboard.x11_keycode.204=('', 'Alt_L', '', 'Alt_L') keyboard.x11_keycode.205=('', 'Meta_L', '', 'Meta_L') keyboard.x11_keycode.206=('', 'Super_L', '', 'Super_L') keyboard.x11_keycode.207=('', 'Hyper_L', '', 'Hyper_L') keyboard.x11_keycode.208=('XF86AudioPlay', '', 'XF86AudioPlay') keyboard.x11_keycode.209=('XF86AudioPause', '', 'XF86AudioPause') keyboard.x11_keycode.210=('XF86Launch3', '', 'XF86Launch3') keyboard.x11_keycode.211=('XF86Launch4', '', 'XF86Launch4') keyboard.x11_keycode.212=('XF86LaunchB', '', 'XF86LaunchB') keyboard.x11_keycode.213=('XF86Suspend', '', 'XF86Suspend') keyboard.x11_keycode.214=('XF86Close', '', 'XF86Close') keyboard.x11_keycode.215=('XF86AudioPlay', '', 'XF86AudioPlay') keyboard.x11_keycode.216=('XF86AudioForward', '', 'XF86AudioForward') keyboard.x11_keycode.218=('Print', '', 'Print') keyboard.x11_keycode.220=('XF86WebCam', '', 'XF86WebCam') keyboard.x11_keycode.221=('XF86AudioPreset', '', 'XF86AudioPreset') keyboard.x11_keycode.223=('XF86Mail', '', 'XF86Mail') keyboard.x11_keycode.224=('XF86Messenger', '', 'XF86Messenger') keyboard.x11_keycode.225=('XF86Search', '', 'XF86Search') keyboard.x11_keycode.226=('XF86Go', '', 'XF86Go') keyboard.x11_keycode.227=('XF86Finance', '', 'XF86Finance') keyboard.x11_keycode.228=('XF86Game', '', 'XF86Game') keyboard.x11_keycode.229=('XF86Shop', '', 'XF86Shop') keyboard.x11_keycode.231=('Cancel', '', 'Cancel') keyboard.x11_keycode.232=('XF86MonBrightnessDown', '', 'XF86MonBrightnessDown') keyboard.x11_keycode.233=('XF86MonBrightnessUp', '', 'XF86MonBrightnessUp') keyboard.x11_keycode.234=('XF86AudioMedia', '', 'XF86AudioMedia') keyboard.x11_keycode.235=('XF86Display', '', 'XF86Display') keyboard.x11_keycode.236=('XF86KbdLightOnOff', '', 'XF86KbdLightOnOff') keyboard.x11_keycode.237=('XF86KbdBrightnessDown', '', 'XF86KbdBrightnessDown') keyboard.x11_keycode.238=('XF86KbdBrightnessUp', '', 'XF86KbdBrightnessUp') keyboard.x11_keycode.239=('XF86Send', '', 'XF86Send') keyboard.x11_keycode.240=('XF86Reply', '', 'XF86Reply') keyboard.x11_keycode.241=('XF86MailForward', '', 'XF86MailForward') keyboard.x11_keycode.242=('XF86Save', '', 'XF86Save') keyboard.x11_keycode.243=('XF86Documents', '', 'XF86Documents') keyboard.x11_keycode.244=('XF86Battery', '', 'XF86Battery') keyboard.x11_keycode.245=('XF86Bluetooth', '', 'XF86Bluetooth') keyboard.x11_keycode.246=('XF86WLAN', '', 'XF86WLAN') keyboard.x11_keycode.247=('XF86UWB', '', 'XF86UWB') keyboard.x11_keycode.249=('XF86Next_VMode', '', 'XF86Next_VMode') keyboard.x11_keycode.250=('XF86Prev_VMode', '', 'XF86Prev_VMode') keyboard.x11_keycode.251=('XF86MonBrightnessCycle', '', 'XF86MonBrightnessCycle') keyboard.x11_keycode.252=('XF86BrightnessAuto', '', 'XF86BrightnessAuto') keyboard.x11_keycode.253=('XF86DisplayOff', '', 'XF86DisplayOff') keyboard.x11_keycode.254=('XF86WWAN', '', 'XF86WWAN') keyboard.x11_keycode.255=('XF86RFKill', '', 'XF86RFKill') load=(313, 138, 38) logging.categories.disabled=() logging.categories.enabled=() logging.debug-modules=() logging.format=%(asctime)s %(message)s logging.handler=standard_logging logging.prefix= mmap.filename= mmap.supported=True network.bandwidth-limit=0 network.brotli=True network.compressors=('lz4', 'brotli', 'none') network.config.socket.timeout=20 network.config.vsocket.timeout=5 network.digest=('xor', 'hmac+sha512', 'hmac+sha3_512', 'hmac+sha3_384', 'hmac+sha3_256', 'hmac+sha3_224', 'hmac+sha384', 'hmac+sha256', 'hmac+sha224', 'hmac+blake2s', 'hmac+blake2b', 'des') network.encoders=('rencodeplus', 'none') network.encryption= network.flush=True network.gateways.INET=("('10.168.0.1', 'ens4', 'True')",) network.interfaces=('lo', 'ens4', 'docker0') network.lock=True network.lock-toggle=True network.lz4=True network.mdns=True network.none=True network.packet-handlers.authenticated=('ack-file-chunk', 'bandwidth-limit', 'command-signal', 'command_request', 'connection-data', 'lock-toggle', 'logging', 'logging-control', 'ping', 'ping_echo', 'print', 'printers', 'request-file', 'send-data-request', 'send-data-response', 'send-file', 'send-file-chunk', 'set_deflate', 'sharing-toggle', 'shell-exec', 'webcam-frame', 'webcam-start', 'webcam-stop') network.packet-handlers.default=('connection-lost', 'disconnect', 'gibberish', 'hello', 'invalid', 'ssl-upgrade') 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-status', 'clipboard-token', 'close-window', 'configure-display', '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', 'max-quality', 'max-speed', 'min-quality', 'min-speed', 'notification-action', 'notification-close', 'notification-status', 'pointer', 'pointer-button', 'pointer-position', 'quality', 'resume', 'screenshot', 'server-settings', 'set-bell', 'set-clipboard-enabled', 'set-cursors', 'set-keyboard-sync-enabled', 'set-notify', 'shutdown-server', 'sound-control', 'sound-data', 'speed', 'start-command', 'suspend', 'unmap-window', 'wheel-motion', 'window-signal') network.rencodeplus=True network.salt-digest=('hmac+sha512', 'hmac+sha3_512', 'hmac+sha3_384', 'hmac+sha3_256', 'hmac+sha3_224', 'hmac+sha384', 'hmac+sha256', 'hmac+sha224', 'hmac+blake2s', 'hmac+blake2b') network.sharing=True network.sharing-toggle=True network.sockets.socket.listeners=('/run/user/1000/xpra/us-west-dev.us-west2-b.c.agones-mark-dev.internal-0', '/home/markmandel/.xpra/us-west-dev.us-west2-b.c.agones-mark-dev.internal-0', '/run/user/1000/xpra/0/socket') network.ssl=True network.ssl.alpn=True network.ssl.channel-binding-types=('tls-unique',) network.ssl.ecdh=True network.ssl.npn=False network.ssl.openssl.version=3.1.0.4.0 network.ssl.openssl.version-number=806355008 network.ssl.openssl.version-str=OpenSSL 3.1.4 24 Oct 2023 network.ssl.sni=True network.tcp-encryption= network.www=None network.www.dir=/usr/share/xpra/www network.www.http-headers-dirs= network.www.websocket-upgrade=True notifications.active=(1,) notifications.bus-name=org.freedesktop.Notifications notifications.bus-path=/org/freedesktop/Notifications notifications.capabilities=('body', 'icon-static', 'actions', 'action-icons') notifications.counter=1 notifications.dbus-id=unix:path=/tmp/dbus-1PpFfAgZpL,guid=e461d736175349ca1ed08cd965aea02f pings=5 printing.add-local-printers=False printing.add-printer-options=('-u allow:$USER', '-E', '-o printer-is-shared=false') printing.cups-dbus=1 printing.cups-dbus.default=1 printing.cups-dbus.poll-delay=60 printing.cups.default-options.fit-to-page=True printing.forwarder=xpraforwarder printing.generic=True printing.lpadmin=/usr/sbin/lpadmin printing.lpinfo=/usr/sbin/lpinfo printing.mimetype.default=application/pdf printing.mimetypes=('application/pdf', 'application/postscript') printing.mimetypes.default=('application/pdf', 'application/postscript') printing.mimetypes.ppd.application/pdf=Generic-PDF_Printer-PDF.ppd printing.mimetypes.ppd.application/postscript=CUPS-PDF.ppd printing.mimetypes.printers.application/pdf=Generic PDF Printer printing.mimetypes.printers.application/postscript=Generic PostScript Printer printing.printer-prefix= printing.printers.application/pdf=('-P', '/usr/share/ppd/cupsfilters/Generic-PDF_Printer-PDF.ppd') printing.printers.application/postscript=('-m', 'drv:///sample.drv/generic.ppd') printing.raw-mode=False printing.simulate-failure=0 printing.skipped-printers=('Cups-PDF',) printing.tmpdir=/tmp server.XShm=True server.XTest=True server.Xkb=True server.argv=('/usr/bin/xpra', 'seamless', "--keyboard-layouts=['[]']", "--keyboard-variants=['[]']", '--desktop-scaling=no', '--speaker=no', '--splash=no', '--start=idea.sh', '--env=#silence some AT-SPI and atk-bridge warnings:', '--env=NO_AT_BRIDGE=1', '--env=SSH_AGENT_UUID=8fa3cd06a56a5eeaed80a7f9d25d21139b70d68ff4ba84fd46856c2874bd7650', '--env=XPRA_PROXY_START_UUID=6d0e3ff3253a4c13b0673f84d8e53307', '--daemon=yes', '--systemd-run=no', '--displayfd=4') server.build.branch=master server.build.commit=gf449a7f8f server.build.local_modifications=0 server.build.revision=34966 server.build.version=6.0 server.cairo=(1, 25, 1) server.current_time=1706031537 server.display=:0 server.elapsed_time=88449 server.exec_prefix=/usr server.executable=/usr/bin/python3 server.gdk=(3, 0) server.gi=(3, 46, 0) server.gid=1001 server.glib=(2, 3, 78) server.gobject=(2, 0) server.gtk=(3, 39, 24) server.hostname=us-west-dev.us-west2-b.c.agones-mark-dev.internal server.idle-timeout=0 server.load=(313, 138, 38) server.log-file=/run/user/1000/xpra/0/server.log server.max_desktop_size=(8192, 4096) server.pango=(1, 51, 0) server.path=('/usr/bin', '/usr/lib/python311.zip', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', '/usr/local/lib/python3.11/dist-packages', '/usr/lib/python3/dist-packages') server.pid=714914 server.pidfile.inode=77 server.pidfile.path=/run/user/1000/xpra/0/server.pid server.pixbuf=(2, 42, 10) server.platform=linux server.platform.architecture=('64bit', 'ELF') server.platform.linux_distribution=('Debian', 'n/a', 'trixie') server.platform.machine=x86_64 server.platform.name=Linux Debian n/a trixie server.platform.platform=Linux-6.5.0-5-cloud-amd64-x86_64-with-glibc2.37 server.platform.processor=Intel(R) Xeon(R) CPU @ 2.20GHz server.platform.release=6.5.0-5-cloud-amd64 server.platform.sysrelease=6.5.0-5-cloud-amd64 server.python.version=3.11 server.randr=True server.randr.exact=True server.randr.options=('(8192, 4096)', '(6400, 1600)') server.root_window_size=(6400, 1600) server.start_time=1705943087 server.type=Python/gtk/x11 server.uid=1000 session.name=idea.sh shell.counter=0 shell.last-commands=() state.focused=6 state.grabbed=0 state.window-manager-name=Xpra state.windows=1 threads.0=info threads.0.stack=("('/usr/lib/python3.11/threading.py', '1002', '_bootstrap', 'self._bootstrap_inner()')", "('/usr/lib/python3.11/threading.py', '1045', '_bootstrap_inner', 'self.run()')", "('/usr/lib/python3.11/threading.py', '982', 'run', 'self._target(*self._args, **self._kwargs)')", "('/usr/lib/python3/dist-packages/xpra/server/core.py', '2374', '_get_info_in_thread', 'info = self.get_info(proto, *args)')", "('/usr/lib/python3/dist-packages/xpra/x11/server/base.py', '230', 'get_info', 'info = super().get_info(proto=proto, client_uuids=client_uuids)')", "('/usr/lib/python3/dist-packages/xpra/server/base.py', '626', 'get_info', 'info = self.do_get_info(proto, sources)')", "('/usr/lib/python3/dist-packages/xpra/x11/server/seamless.py', '286', 'do_get_info', 'info = super().do_get_info(proto, server_sources)')", "('/usr/lib/python3/dist-packages/xpra/x11/server/core.py', '358', 'do_get_info', 'info = super().do_get_info(proto, server_sources)')", "('/usr/lib/python3/dist-packages/xpra/server/gtk_server.py', '225', 'do_get_info', 'info = super().do_get_info(proto, *args)')", "('/usr/lib/python3/dist-packages/xpra/server/base.py', '657', 'do_get_info', 'merge_dicts(info, c.get_info(self, proto))')", '(\'/usr/lib/python3/dist-packages/xpra/server/core.py\', \'2477\', \'get_info\', \'up("threads", self.get_thread_info(proto))\')', "('/usr/lib/python3/dist-packages/xpra/server/core.py', '2385', 'get_thread_info', 'return get_thread_info(proto)')", "('/usr/lib/python3/dist-packages/xpra/server/core.py', '124', 'get_thread_info', 'return get_frame_info(info_threads)')", "('/usr/lib/python3/dist-packages/xpra/util/system.py', '256', 'get_frame_info', 'stack = traceback.extract_stack(frame_pair[1])')") threads.3=encode threads.3.stack=("('/usr/lib/python3.11/threading.py', '1002', '_bootstrap', 'self._bootstrap_inner()')", "('/usr/lib/python3.11/threading.py', '1045', '_bootstrap_inner', 'self.run()')", "('/usr/lib/python3.11/threading.py', '982', 'run', 'self._target(*self._args, **self._kwargs)')", "('/usr/lib/python3/dist-packages/xpra/server/source/client_connection.py', '286', 'encode_loop', 'item = self.encode_work_queue.get(True)')") threads.4=write threads.4.stack=("('/usr/lib/python3.11/threading.py', '1002', '_bootstrap', 'self._bootstrap_inner()')", "('/usr/lib/python3.11/threading.py', '1045', '_bootstrap_inner', 'self.run()')", "('/usr/lib/python3.11/threading.py', '982', 'run', 'self._target(*self._args, **self._kwargs)')", '(\'/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py\', \'688\', \'_write_thread_loop\', \'self._io_thread_loop("write", self._write)\')', "('/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py', '670', '_io_thread_loop', 'while not self._closed and callback():')", "('/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py', '691', '_write', 'items = self._write_queue.get()')", "('/usr/lib/python3.11/queue.py', '171', 'get', 'self.not_empty.wait()')", "('/usr/lib/python3.11/threading.py', '327', 'wait', 'waiter.acquire()')") threads.5=format threads.5.stack=("('/usr/lib/python3.11/threading.py', '1002', '_bootstrap', 'self._bootstrap_inner()')", "('/usr/lib/python3.11/threading.py', '1045', '_bootstrap_inner', 'self.run()')", "('/usr/lib/python3.11/threading.py', '982', 'run', 'self._target(*self._args, **self._kwargs)')", "('/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py', '359', 'write_format_thread_loop', 'self._source_has_more.wait()')", "('/usr/lib/python3.11/threading.py', '629', 'wait', 'signaled = self._cond.wait(timeout)')", "('/usr/lib/python3.11/threading.py', '327', 'wait', 'waiter.acquire()')") threads.6=parse threads.6.stack=("('/usr/lib/python3.11/threading.py', '1002', '_bootstrap', 'self._bootstrap_inner()')", "('/usr/lib/python3.11/threading.py', '1045', '_bootstrap_inner', 'self.run()')", "('/usr/lib/python3.11/threading.py', '982', 'run', 'self._target(*self._args, **self._kwargs)')", "('/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py', '850', '_read_parse_thread_loop', 'self.do_read_parse_thread_loop()')", "('/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py', '880', 'do_read_parse_thread_loop', 'buf = self._read_queue.get()')", "('/usr/lib/python3.11/queue.py', '171', 'get', 'self.not_empty.wait()')", "('/usr/lib/python3.11/threading.py', '327', 'wait', 'waiter.acquire()')") threads.7=read threads.7.stack=("('/usr/lib/python3.11/threading.py', '1002', '_bootstrap', 'self._bootstrap_inner()')", "('/usr/lib/python3.11/threading.py', '1045', '_bootstrap_inner', 'self.run()')", "('/usr/lib/python3.11/threading.py', '982', 'run', 'self._target(*self._args, **self._kwargs)')", '(\'/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py\', \'760\', \'_read_thread_loop\', \'self._io_thread_loop("read", self._read)\')', "('/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py', '670', '_io_thread_loop', 'while not self._closed and callback():')", "('/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py', '763', '_read', 'buf = self.con_read()')", "('/usr/lib/python3/dist-packages/xpra/net/protocol/socket_handler.py', '781', 'con_read', 'return self._conn.read(self.read_buffer_size)')", "('/usr/lib/python3/dist-packages/xpra/net/bytestreams.py', '355', 'read', 'return self._read(self._socket.recv, n)')", "('/usr/lib/python3/dist-packages/xpra/net/bytestreams.py', '168', '_read', 'r = self.untilConcludes(*args)')", "('/usr/lib/python3/dist-packages/xpra/net/bytestreams.py', '153', 'untilConcludes', 'return untilConcludes(self.is_active, self.can_retry, *args)')", "('/usr/lib/python3/dist-packages/xpra/net/bytestreams.py', '87', 'untilConcludes', 'return f(*a, **kw)')") threads.8=Thread-2 threads.8.stack=("('/usr/lib/python3.11/threading.py', '1002', '_bootstrap', 'self._bootstrap_inner()')", "('/usr/lib/python3.11/threading.py', '1045', '_bootstrap_inner', 'self.run()')", "('/usr/lib/python3/dist-packages/pyinotify.py', '1491', 'run', 'self.loop()')", "('/usr/lib/python3/dist-packages/pyinotify.py', '1479', 'loop', 'if self.check_events():')", "('/usr/lib/python3/dist-packages/pyinotify.py', '1194', 'check_events', 'ret = self._pollobj.poll(timeout)')") threads.9=Worker_Thread threads.9.stack=("('/usr/lib/python3.11/threading.py', '1002', '_bootstrap', 'self._bootstrap_inner()')", "('/usr/lib/python3.11/threading.py', '1045', '_bootstrap_inner', 'self.run()')", "('/usr/lib/python3/dist-packages/xpra/server/background_worker.py', '65', 'run', 'item = self.items.get()')", "('/usr/lib/python3.11/queue.py', '171', 'get', 'self.not_empty.wait()')", "('/usr/lib/python3.11/threading.py', '327', 'wait', 'waiter.acquire()')") threads.10=main threads.10.stack=("('/usr/bin/xpra', '17', '', 'sys.exit(main(sys.argv[0], sys.argv))')", "('/usr/lib/python3/dist-packages/xpra/scripts/main.py', '134', 'main', 'return run_mode(script_file, cmdline, err, options, args, mode, defaults)')", "('/usr/lib/python3/dist-packages/xpra/scripts/main.py', '507', 'run_mode', 'return do_run_mode(script_file, cmdline, error_cb, options, args, mode, defaults)')", "('/usr/lib/python3/dist-packages/xpra/scripts/main.py', '590', 'do_run_mode', 'return run_server(script_file, cmdline, error_cb, options, args, mode, defaults)')", '(\'/usr/lib/python3/dist-packages/xpra/scripts/main.py\', \'2040\', \'run_server\', \'return do_run_server(script_file, cmdline, error_cb, options, args, mode, str(display or ""), defaults)\')', "('/usr/lib/python3/dist-packages/xpra/scripts/server.py', '756', 'do_run_server', 'return _do_run_server(script_file, cmdline,')", "('/usr/lib/python3/dist-packages/xpra/scripts/server.py', '1564', '_do_run_server', 'r = app.run()')", "('/usr/lib/python3/dist-packages/xpra/server/core.py', '424', 'run', 'self.do_run()')", "('/usr/lib/python3/dist-packages/xpra/server/gtk_server.py', '141', 'do_run', 'Gtk.main()')", "('/usr/lib/python3/dist-packages/gi/overrides/Gtk.py', '1694', 'main', 'return _Gtk_main(*args, **kwargs)')") threads.count=9 threads.native-id=900269 total-memory=33656963072 video.encoding.BGR48_to_h264=('x264',) video.encoding.BGRA_to_jpega=('jpeg',) video.encoding.BGRA_to_webp=('webp',) video.encoding.BGRX_to_h264=('x264',) video.encoding.BGRX_to_jpeg=('jpeg',) video.encoding.BGRX_to_webp=('webp',) video.encoding.BGR_to_jpeg=('jpeg',) video.encoding.BGR_to_webp=('webp',) video.encoding.RGBA_to_jpega=('jpeg',) video.encoding.RGBA_to_webp=('webp',) video.encoding.RGBX_to_jpeg=('jpeg',) video.encoding.RGBX_to_webp=('webp',) video.encoding.RGB_to_jpeg=('jpeg',) video.encoding.RGB_to_webp=('webp',) video.encoding.XBGR_to_jpeg=('jpeg',) video.encoding.XRGB_to_jpeg=('jpeg',) video.encoding.YUV420P_to_h264=('x264', 'openh264') video.encoding.YUV420P_to_jpeg=('jpeg',) video.encoding.YUV420P_to_vp8=('vpx',) video.encoding.YUV420P_to_vp9=('vpx',) video.encoding.YUV422P_to_h264=('x264',) video.encoding.YUV422P_to_jpeg=('jpeg',) video.encoding.YUV444P10_to_vp9=('vpx',) video.encoding.YUV444P_to_h264=('x264',) video.encoding.YUV444P_to_jpeg=('jpeg',) video.encoding.YUV444P_to_vp9=('vpx',) video.encoding.csc-module.cython=not found video.encoding.csc-module.libyuv=not found video.encoding.video-encoder.gstreamer=disabled video.encoding.video-encoder.jpeg=active video.encoding.video-encoder.nvenc=not found video.encoding.video-encoder.nvjpeg=not found video.encoding.video-encoder.openh264=active video.encoding.video-encoder.vpx=active video.encoding.video-encoder.webp=active video.encoding.video-encoder.x264=active webcam.enabled=False windows.6.XShm=True windows.6.above=False windows.6.allowed-actions=('_NET_WM_ACTION_CLOSE', '_NET_WM_ACTION_MOVE', '_NET_WM_ACTION_RESIZE', '_NET_WM_ACTION_FULLSCREEN', '_NET_WM_ACTION_MINIMIZE', '_NET_WM_ACTION_SHADE', '_NET_WM_ACTION_STICK', '_NET_WM_ACTION_MAXIMIZE_HORZ', '_NET_WM_ACTION_MAXIMIZE_VERT', '_NET_WM_ACTION_CHANGE_DESKTOP', '_NET_WM_ACTION_ABOVE', '_NET_WM_ACTION_BELOW') windows.6.below=False windows.6.bypass-compositor=0 windows.6.children=() windows.6.class-instance=('jetbrains-idea', 'jetbrains-idea') windows.6.client-geometry=(1, 17, 1918, 1582) windows.6.client-machine=us-west-dev.us-west2-b.c.agones-mark-dev.internal windows.6.command=/opt/intellij/idea-IU-233.11799.300/jbr/bin/java -classpath /opt/intellij/idea-IU-233.11799.300/lib/platform-loader.jar:/opt/intellij/idea-IU-233.11799.300/lib/util-8.jar:/opt/intellij/idea-IU-233.11799.300/lib/util.jar:/opt/intellij/idea-IU-233.11799.300/lib/app-client.jar:/opt/intellij/idea-IU-233.11799.300/lib/util_rt.jar:/opt/intellij/idea-IU-233.11799.300/lib/product.jar:/opt/intellij/idea-IU-233.11799.300/lib/product-client.jar:/opt/intellij/idea-IU-233.11799.300/lib/app.jar:/opt/intellij/idea-IU-233.11799.300/lib/lib-client.jar:/opt/intellij/idea-IU-233.11799.300/lib/modules.jar:/opt/intellij/idea-IU-233.11799.300/lib/lib.jar:/opt/intellij/idea-IU-233.11799.300/lib/stats.jar:/opt/intellij/idea-IU-233.11799.300/lib/jps-model.jar:/opt/intellij/idea-IU-233.11799.300/lib/external-system-rt.jar:/opt/intellij/idea-IU-233.11799.300/lib/rd.jar:/opt/intellij/idea-IU-233.11799.300/lib/protobuf.jar:/opt/intellij/idea-IU-233.11799.300/lib/bouncy-castle.jar:/opt/intellij/idea-IU-233.11799.300/lib/forms_rt.jar:/opt/intellij/idea-IU-233.11799.300/lib/intellij-test-discovery.jar:/opt/intellij/idea-IU-233.11799.300/lib/annotations.jar:/opt/intellij/idea-IU-233.11799.300/lib/groovy.jar:/opt/intellij/idea-IU-233.11799.300/lib/externalProcess-rt.jar:/opt/intellij/idea-IU-233.11799.300/lib/async-profiler.jar:/opt/intellij/idea-IU-233.11799.300/lib/byte-buddy-agent.jar:/opt/intellij/idea-IU-233.11799.300/lib/error-prone-annotations.jar:/opt/intellij/idea-IU-233.11799.300/lib/grpc.jar:/opt/intellij/idea-IU-233.11799.300/lib/idea_rt.jar:/opt/intellij/idea-IU-233.11799.300/lib/intellij-coverage-agent-1.0.738.jar:/opt/intellij/idea-IU-233.11799.300/lib/jsch-agent.jar:/opt/intellij/idea-IU-233.11799.300/lib/junit4.jar:/opt/intellij/idea-IU-233.11799.300/lib/nio-fs.jar:/opt/intellij/idea-IU-233.11799.300/lib/ant/lib/ant.jar -XX:ErrorFile=/home/markmandel/java_error_in_idea_%p.log -XX:HeapDumpPath=/home/markmandel/java_error_in_idea_.hprof -Xms128m -Xmx2048m -XX:ReservedCodeCacheSize=512m -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=exclude,com/intellij/openapi/vfs/impl/FilePartNodeRoot,trieDescend -ea -Dsun.io.useCanonCaches=false -Dsun.java2d.metal=true -Djbr.catch.SIGABRT=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Dkotlinx.coroutines.debug=off -Dsun.tools.attach.tmp.only=true -Dawt.lock.fair=true -Xmx4012m -Dsun.java2d.uiScale.enabled=false -Djb.vmOptionsFile=/home/markmandel/.config/JetBrains/IntelliJIdea2023.3/idea64.vmoptions -Djava.system.class.loader=com.intellij.util.lang.PathClassLoader -Didea.vendor.name=JetBrains -Didea.paths.selector=IntelliJIdea2023.3 -Djna.boot.library.path=/opt/intellij/idea-IU-233.11799.300/lib/jna/amd64 -Dpty4j.preferred.native.folder=/opt/intellij/idea-IU-233.11799.300/lib/pty4j -Djna.nosys=true -Djna.noclasspath=true -Dintellij.platform.runtime.repository.path=/opt/intellij/idea-IU-233.11799.300/modules/module-descriptors.jar -Dsplash=true -Daether.connector.resumeDownloads=false --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/jdk.internal.vm=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED --add-opens=java.base/sun.security.ssl=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.base/sun.net.dns=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/java.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED --add-opens=java.desktop/sun.awt.datatransfer=ALL-UNNAMED --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.desktop/sun.awt=ALL-UNNAMED --add-opens=java.desktop/sun.font=ALL-UNNAMED --add-opens=java.desktop/sun.java2d=ALL-UNNAMED --add-opens=java.desktop/sun.swing=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED --add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-opens=jdk.jdi/com.sun.tools.jdi=ALL-UNNAMED com.intellij.idea.Main windows.6.content-type=text windows.6.decorations=0 windows.6.depth=24 windows.6.focused=True windows.6.fullscreen=False windows.6.geometry=(1, 17, 1918, 1582) windows.6.grabbed=False windows.6.has-alpha=False windows.6.icon-title=agones – prerequisites.cmake windows.6.iconic=False windows.6.maximized=False windows.6.modal=False windows.6.opacity=-1 windows.6.opaque-region=() windows.6.override-redirect=False windows.6.pid=715157 windows.6.ppid=714914 windows.6.protocols=('WM_DELETE_WINDOW', 'WM_TAKE_FOCUS') windows.6.requested-position=(3764, 26) windows.6.set-initial-position=True windows.6.shaded=False windows.6.shown=True windows.6.size=(1918, 1582) windows.6.size-constraints.gravity=1 windows.6.size-constraints.minimum-size=(340, 0) windows.6.size-constraints.position=(3764, 26) windows.6.skip-pager=False windows.6.skip-taskbar=False windows.6.state=('_NET_WM_STATE_FOCUSED',) windows.6.sticky=False windows.6.title=agones – prerequisites.cmake windows.6.tray=False windows.6.window-type=('NORMAL',) windows.6.wm-pid=715157 windows.6.workspace=8 windows.6.xid=0xc002a7 ```

If it helps at all, I usually start xpra like so on my client:

xpra start ssh://markmandel@dev --start=idea.sh --desktop-scaling=no --speaker=no
totaam commented 5 months ago

Sorry, I'm not quite sure what you mean by this one. -d on what command?

Start your server separately via ssh:

The (huge) log file will show the keyboard mapping step.

once connected and after re-connection

But I have the xpra info for you.

Only one copy, so I have nothing to compare it with.


My guess is that we're hitting this code path twice: https://github.com/Xpra-org/xpra/blob/777be6c88f6053411936cb13849a7c0c6b43f897/xpra/x11/server/keyboard_config.py#L361-L364 The first time works, the second one ends up making a mess.

colincross commented 4 months ago

I'm having the same issue.

If I start the xpra server normally (without --start=idea.sh on the command line), then attach with xpra attach ssh://localhost, and start IntellJ via the xpra status icon's start menu, then the Alt keyboard shortcuts work fine (verified by going to File->Settings->Keymap in IntelliJ and attempting to add the a new keyboard shortcut for the Navigate Back command, pressing Ctrl+Alt+Left shows Ctrl+Alt+Left). If I then ctrl-C the xpra attach client and restart it, IntelliJ shows Meta+Ctrl+Alt+Left when I try again to add a new keyboard shortcut. I can only reproduce this in xpra, but this seems at least partially related to IntelliJ, because when I close and reopen IntelliJ within the same xpra client the problem goes away. I have seen this with anything other than IntelliJ.

If I start the xpra server with $ xpra start --start=/opt/intellij-ue-beta/bin/idea.sh -d keyboard then the problem reproduces immediately on the first connection.

I've attached server.log with "-d keyboard" from the first sequence described (start server, connect client, start intellij, Ctrl+Alt+Left works, kill client, reconnect client, Ctrl+Alt+Left doesn't work, restart IntelliJ, Ctrl+Alt+Left works. server.log

markmandel commented 4 months ago

@colincross thank you for doing the legwork for this - it's been on my todo list for weeks, but some family stuff got in the way.

totaam commented 4 months ago

@colincross / @markmandel please try to see if this is related to --input-method.

because when I close and reopen IntelliJ within the same xpra client the problem goes away

Could be that Intellij needs to reload the keymap to parse keyboard events correctly.

Thanks for the log, but please try to narrow it down - I don't have the time to parse 16617 lines.

colincross commented 4 months ago

Here's slightly trimmed diffs of the logs from the first and second connections:

@@ -10,8 +9,8 @@
 get_keyboard_config(..)=KeyboardConfig(us,us / None / None)
 setting key repeat rate from client: 500ms delay / 30ms interval
 make_keymask_match: ignored as keynames_for_mod not assigned yet
-set_keymap(KeyboardConfig( /  / ), {}, False, False) keyboard_config=KeyboardConfig(us,us / None / None)
-current keyboard id=///f40063fb0f9eba30e43d8aa79e7e0a2d17861664070fd949d685d4db44fffdff, new keyboard id=us,us/None/None/2fb8f478057e2da330c4d29b9ae47046d85d126b7b22e698eae1a7ea2f0ca533
+set_keymap(KeyboardConfig(us,us / None / None), {}, False, False) keyboard_config=KeyboardConfig(us,us / None / None)
+current keyboard id=us,us/None/None/6b67bb6825516e8a633cd7c4634e6a15dc99cdb7fb8ec1445fda277e895f8e75, new keyboard id=us,us/None/None/2fb8f478057e2da330c4d29b9ae47046d85d126b7b22e698eae1a7ea2f0ca533
 set_keymap(False) layout='us,us', variant=None, options=None, query-struct={'rules': 'evdev', 'model': 'pc105', 'layout': 'us,us', 'variant': ''}
 setting XKB layout group 0
 do_set_keymap using xkbmap_query struct=typedict({'rules': 'evdev', 'model': 'pc105', 'layout': 'us,us', 'variant': ''})
@@ -23,9 +22,9 @@
 setxkbmap: trying to load rules file b'/usr/share/X11/xkb/rules/evdev'...
 setxkbmap: loaded rules from /usr/share/X11/xkb/rules/evdev
 XkbRF_GetComponents(<hex>, <hex>, <hex>)=True
-getXkbProperties()={'rules': 'evdev', 'model': 'pc105', 'layout': 'us'}
-setxkbmap: properties={'rules': 'evdev', 'model': 'pc105', 'layout': 'us,us', 'keycodes': 'evdev+aliases(qwerty)', 'symbols': 'pc+us+us:2+inet(evdev)', 'types': 'complete', 'compat': 'complete', 'geometry': 'pc(pc105)'}
-setxkbmap: filtered properties={'rules': 'evdev', 'model': 'pc105', 'layout': 'us,us', 'keycodes': 'evdev+aliases', 'symbols': 'pc+us+us:2+inet', 'types': 'complete', 'compat': 'complete', 'geometry': 'pc'}
+getXkbProperties()={'rules': 'evdev', 'model': 'evdev', 'layout': 'us,us'}
+setxkbmap: properties={'rules': 'evdev', 'model': 'evdev', 'layout': 'us,us', 'keycodes': 'evdev+aliases(qwerty)', 'symbols': 'pc+us+us:2+inet(evdev)', 'types': 'complete', 'compat': 'complete', 'geometry': 'pc(pc105)'}
+setxkbmap: filtered properties={'rules': 'evdev', 'model': 'evdev', 'layout': 'us,us', 'keycodes': 'evdev+aliases', 'symbols': 'pc+us+us:2+inet', 'types': 'complete', 'compat': 'complete', 'geometry': 'pc'}
 setxkbmap: XkbGetKeyboardByName returned <hex>
 getXkbProperties()={'rules': 'evdev', 'model': "b'`\\xc8P\\x88\\xe1\\x7f'", 'layout': 'us,us'}
 X11 keymap property updated: {'rules': 'evdev', 'model': "b'`\\xc8P\\x88\\xe1\\x7f'", 'layout': 'us,us'}
@@ -718,8 +711,8 @@
 setxkbmap: properties={'rules': 'evdev', 'model': "b'`\\xc8P\\x88\\xe1\\x7f'", 'layout': 'us,us', 'keycodes': 'evdev+aliases(qwerty)', 'symbols': 'pc+us+us:2+inet(evdev)', 'types': 'complete', 'compat': 'complete', 'geometry': 'pc(pc105)'}
 setxkbmap: filtered properties={'rules': 'evdev', 'model': "b'`\\xc8P\\x88\\xe1\\x7f'", 'layout': 'us,us', 'keycodes': 'evdev+aliases', 'symbols': 'pc+us+us:2+inet', 'types': 'complete', 'compat': 'complete', 'geometry': 'pc'}
 setxkbmap: XkbGetKeyboardByName returned <hex>
-getXkbProperties()={'rules': 'evdev', 'model': 'evdev', 'layout': 'us,us'}
-X11 keymap property updated: {'rules': 'evdev', 'model': 'evdev', 'layout': 'us,us'}
+getXkbProperties()={'rules': 'evdev', 'model': '\x01', 'layout': 'us,us'}
+X11 keymap property updated: {'rules': 'evdev', 'model': '\x01', 'layout': 'us,us'}
 set_keymap: query_struct={'rules': 'evdev', 'model': 'pc105', 'layout': 'us,us', 'variant': ''}
 setting XKB layout group 0
 set_xmodmap([('clear', 0), ('clear', 1), ('clear', 2), ('clear', 3), ('clear', 4), ('clear', 5), ('clear', 6), ('clear', 7)])

By the time it gets to the Ctrl-Alt-Left keypress everything looks the same except the wid field:

 do_get_keycode (113, Left)=113 (native keymap)
-process_key_action(('key-action', 7, 'Left', True, ('control', 'mod1'), 65361, '', 113, 0)) server keycode=113, group=0
+process_key_action(('key-action', 18, 'Left', True, ('control', 'mod1'), 65361, '', 113, 0)) server keycode=113, group=0
 set_keyboard_layout_group(0) config=KeyboardConfig(us,us / None / None), current keyboard group=0
 setting XKB layout group 0
 filtered_modifiers_set(['control', 'mod1'])={'mod1', 'control'}
 is_modifier(113) not found
-handle_key((7, True, 'Left', 65361, 113, ['control', 'mod1'], False, True))
+handle_key((18, True, 'Left', 65361, 113, ['control', 'mod1'], False, True))
 handle keycode pressing   113: key 'Left'
 fake_key(113, True)
 scheduling key repeat timer with delay 500 for Left / 113
-process_key_action(('key-action', 7, 'Left', False, ('control', 'mod1'), 65361, '', 113, 0)) server keycode=113, group=0
+process_key_action(('key-action', 18, 'Left', False, ('control', 'mod1'), 65361, '', 113, 0)) server keycode=113, group=0
 set_keyboard_layout_group(0) config=KeyboardConfig(us,us / None / None), current keyboard group=0
 setting XKB layout group 0
 filtered_modifiers_set(['control', 'mod1'])={'mod1', 'control'}
 is_modifier(113) not found
-handle_key((7, False, 'Left', 65361, 113, ['control', 'mod1'], False, True))
+handle_key((18, False, 'Left', 65361, 113, ['control', 'mod1'], False, True))
 handle keycode unpressing 113: key 'Left'
 fake_key(113, False)
totaam commented 4 months ago

'model': '\x01'

That bit looks wrong and could be causing problems.

Your two clients don't have the same keyboard definition - can you show the keyboard messages of your client? Are they the same OS? The same system?

the same except the wid field

That's just the window id.

colincross commented 4 months ago

My "two clients" are two instances of xpra attach ssh://localhost run in the same terminal, no keyboard changes.

totaam commented 4 months ago

Well then, I think we found the bug.

Every xpra attach should provide the same keyboard layout definition. And in your case, it does not.

Please show your xpra attach command output - in both cases.