Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
markmandel opened this issue Dec 7, 2023 · 19 comments
Open

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

markmandel opened this issue Dec 7, 2023 · 19 comments
Labels
bug Something isn't working keyboard win32 MS Windows OS

Comments

@markmandel
Copy link

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):

  • Server OS: [e.g. RHEL 8.x] Debian Trixie
  • Client OS: [e.g. Windows 10] Debian Trixie
  • Xpra Server Version [e.g. 4.2.3] xpra v6.0-r34760 (g8fac1d473) beta
  • Xpra Client Version [e.g. 4.3] xpra v6.0-r34760 (g8fac1d473) beta

Additional context

Xpra is awesome 😄

@markmandel markmandel added the bug Something isn't working label Dec 7, 2023
@totaam
Copy link
Collaborator

totaam commented Dec 8, 2023

We do have code specifically there to silence the spurious key events we get from MS Windows:

if EMULATE_ALTGR and self.altgr_modifier and len(self.modifier_mappings)>0:
rmenu = GetKeyState(win32con.VK_RMENU)
if key_event.keyname=="Control_L":
log("process_key_event: %s pressed=%s, with GetKeyState(VK_RMENU)=%s",
key_event.keyname, key_event.pressed, rmenu)
#AltGr key events are often preceded by a spurious "Control_L" event
#delay this one a little bit so we can skip it if an "AltGr" does come through next:
if rmenu in (0, 1):
self.delayed_event = (send_key_action_cb, wid, key_event)
#needed for altgr emulation timeouts:
from gi.repository import GLib # @UnresolvedImport
GLib.timeout_add(EMULATE_ALTGR_CONTROL_KEY_DELAY, self.send_delayed_key)
return

And for sending the correct key modifier for AltGr events:
def AltGr_modifiers(self, modifiers, pressed=True):
add = []
clear = ["mod1", "mod2", "control"]
if self.altgr_modifier:
if pressed:
add.append(self.altgr_modifier)
else:
clear.append(self.altgr_modifier)
log("AltGr_modifiers(%s, %s) AltGr=%s, add=%s, clear=%s", modifiers, pressed, self.altgr_modifier, add, clear)
for x in add:
if x not in modifiers:
modifiers.append(x)
for x in clear:
if x in modifiers:
modifiers.remove(x)

Can you try running your client with --env=XPRA_EMULATE_ALTGR=0 to see if that makes any difference?

@totaam totaam added keyboard win32 MS Windows OS labels Dec 8, 2023
@markmandel
Copy link
Author

Hey! That worked! Thanks!

image

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

@totaam
Copy link
Collaborator

totaam commented Dec 9, 2023

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
Copy link
Author

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
Copy link
Author

markmandel commented Dec 9, 2023

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
Copy link
Collaborator

totaam commented Dec 11, 2023

I misread:

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

I have no idea what is going on, sorry.

@markmandel
Copy link
Author

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

@markmandel
Copy link
Author

Yeah, I can't replicate this. Closing.

Apologies for the noise!

@markmandel
Copy link
Author

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.

@markmandel markmandel reopened this Jan 19, 2024
@totaam
Copy link
Collaborator

totaam commented Jan 20, 2024

@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
Copy link
Author

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', '<module>', '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
Copy link
Collaborator

totaam commented Jan 24, 2024

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

Start your server separately via ssh:

  • login to your server via ssh
  • xpra start --start=idea.sh -d keyboard
  • connect from your client: xpra_cmd.exe attach 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:

# if the client does not provide a full native keymap with all the keycodes,
# try to preserve the initial server keycodes and translate the client keycodes instead:
# (used by non X11 clients like osx,win32 or HTML5)
self.keycode_translation = set_keycode_translation(self.x11_keycodes, self.keycodes)

The first time works, the second one ends up making a mess.

@colincross
Copy link
Contributor

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
Copy link
Author

@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
Copy link
Collaborator

totaam commented Feb 14, 2024

@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
Copy link
Contributor

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
Copy link
Collaborator

totaam commented Feb 16, 2024

'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
Copy link
Contributor

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

@totaam
Copy link
Collaborator

totaam commented Feb 16, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working keyboard win32 MS Windows OS
Projects
None yet
Development

No branches or pull requests

3 participants