Hide keyboard shortcuts

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) 2020 Antoine Martin <antoine@xpra.org> 

3# Xpra is released under the terms of the GNU GPL v2, or, at your option, any 

4# later version. See the file COPYING for details. 

5 

6# load xpra's custom css overrides 

7 

8import os.path 

9 

10from gi.repository import Gtk, Gdk 

11 

12from xpra.util import envbool 

13from xpra.platform.paths import get_resources_dir 

14from xpra.log import Logger 

15 

16log = Logger("gtk", "util") 

17 

18CSS_OVERRIDES = envbool("XPRA_CSS_OVERRIDES", True) 

19 

20 

21_done = False 

22def inject_css_overrides(): 

23 global _done 

24 if _done or not CSS_OVERRIDES: 

25 return 

26 _done = True 

27 style_provider = get_style_provider() 

28 if style_provider: 

29 screen = Gdk.Screen.get_default() 

30 if not screen: 

31 log.warn("Warning: cannot inject GTK CSS overrides") 

32 log.warn(" no default screen") 

33 return 

34 Gtk.StyleContext.add_provider_for_screen( 

35 screen, 

36 style_provider, 

37 Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION 

38 ) 

39 

40_style_provider = None 

41def get_style_provider(): 

42 global _style_provider 

43 if _style_provider: 

44 return _style_provider 

45 _style_provider = Gtk.CssProvider() 

46 load_css(_style_provider) 

47 return _style_provider 

48 

49def load_css(provider): 

50 css_dir = os.path.join(get_resources_dir(), "css") 

51 if not os.path.exists(css_dir) or not os.path.isdir(css_dir): 

52 log.error("Error: cannot find directory '%s'", css_dir) 

53 return None 

54 filename = None 

55 def parsing_error(_css_provider, _section, error): 

56 log.error("Error: CSS parsing error on") 

57 log.error(" '%s'", filename) 

58 log.error(" %s", error) 

59 provider.connect("parsing-error", parsing_error) 

60 for f in sorted(os.listdir(css_dir)): 

61 filename = os.path.join(css_dir, f) 

62 try: 

63 provider.load_from_path(filename) 

64 log(" - loaded '%s'", filename) 

65 except Exception as e: 

66 log("load_from_path(%s)", filename, exc_info=True) 

67 log.error("Error: CSS loading error on") 

68 log.error(" '%s'", filename) 

69 log.error(" %s", e)