Coverage for /home/antoine/projects/xpra-git/dist/python3/lib64/python/xpra/platform/keyboard.py : 11%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# This file is part of Xpra.
2# Copyright (C) 2010 Nathaniel Smith <njs@pobox.com>
3# Copyright (C) 2011-2019 Antoine Martin <antoine@xpra.org>
4# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
5# later version. See the file COPYING for details.
7from xpra.platform import platform_import
9#default:
10Keyboard = None
12platform_import(globals(), "keyboard", True,
13 "Keyboard")
15def main():
16 import sys
17 from xpra.os_util import WIN32, OSX, POSIX, bytestostr
18 from xpra.util import print_nested_dict, csv
19 from xpra.platform import program_context
20 from xpra.log import enable_color, enable_debug_for
21 with program_context("Keyboard-Tool", "Keyboard Tool"):
22 #use the logger for the platform module we import from
23 enable_color()
24 verbose = "-v" in sys.argv or "--verbose" in sys.argv or \
25 (WIN32 and not ("-q" in sys.argv or "--quiet"))
26 if verbose:
27 enable_debug_for("keyboard")
29 #naughty, but how else can I hook this up?
30 if POSIX and not OSX:
31 try:
32 from xpra.x11.bindings.posix_display_source import init_posix_display_source #@UnresolvedImport
33 init_posix_display_source()
34 except Exception as e:
35 print("failed to connect to the X11 server:")
36 print(" %s" % e)
37 #hope for the best..
39 keyboard = Keyboard() #pylint: disable=not-callable
40 mod_meanings, mod_managed, mod_pointermissing = keyboard.get_keymap_modifiers()
41 print("Modifiers:")
42 print_nested_dict(mod_meanings)
43 print("")
44 print("Server Managed : %s" % (csv(mod_managed) or "None"))
45 print("Missing from pointer events : %s" % (csv(mod_pointermissing) or "None"))
46 print("")
47 layout,layouts,variant,variants, options = keyboard.get_layout_spec()
48 print("Layout: '%s'" % bytestostr(layout or b""))
49 print("Layouts: %s" % csv("'%s'" % bytestostr(x) for x in (layouts or [])))
50 print("Variant: '%s'" % bytestostr(variant or b""))
51 print("Variants: %s" % csv("'%s'" % bytestostr(x) for x in (variants or [])))
52 print("Options: %s" % (options))
53 print("")
54 print("Repeat: %s" % csv(keyboard.get_keyboard_repeat()))
55 if verbose and POSIX:
56 keysyms = keyboard.get_x11_keymap()
57 if keysyms:
58 print("Keysyms:")
59 for keycode,keysyms in keysyms.items():
60 print(" %3i : %s" % (keycode, csv(keysyms)))
61 return 0
64if __name__ == "__main__":
65 main()