Пример #1
0
 def __new__(cls):
     if cls.__INSTANCE:
         return cls.__INSTANCE
     manager = object.__new__(cls)
     XObject.__init__(manager)
     cls.__INSTANCE = manager
     manager.update_type()
     return manager
Пример #2
0
 def test_str2_methods_no_modifiers(self):
     modifiers = XObject.str2modifiers('')
     keycode = XObject.str2keycode('A')
     modifiers_keycode = XObject.str2modifiers_keycode('A')
     self.assertEqual(modifiers, modifiers_keycode[0])
     self.assertEqual(keycode, modifiers_keycode[1])
     modifiers_keycode = XObject.str2modifiers_keycode('', 'A')
     self.assertEqual(modifiers, modifiers_keycode[0])
     self.assertEqual(keycode, modifiers_keycode[1])
Пример #3
0
 def test_str2_methods_no_modifiers(self):
     modifiers = XObject.str2modifiers('')
     keycode = XObject.str2keycode('A')
     modifiers_keycode = XObject.str2modifiers_keycode('A')
     self.assertEqual(modifiers, modifiers_keycode[0])
     self.assertEqual(keycode, modifiers_keycode[1])
     modifiers_keycode = XObject.str2modifiers_keycode('', 'A')
     self.assertEqual(modifiers, modifiers_keycode[0])
     self.assertEqual(keycode, modifiers_keycode[1])
Пример #4
0
 def update_type(self):
     """Update window manager's type."""
     recognize = {'compiz': Type.COMPIZ, 'metacity': Type.METACITY,
                  'kwin': Type.KWIN, 'xfwm': Type.XFWM, 
                  'openbox': Type.OPENBOX, 'fluxbox': Type.FLUXBOX,
                  'blackbox': Type.BLACKBOX, 'icewm': Type.ICEWM,
                  'e1': Type.ENLIGHTMENT, 'sawfish': Type.SAWFISH,
                  'window maker': Type.WINDOW_MAKER, 'pekwm': Type.PEKWM,
                 }
     name = self.name.lower()
     XObject.set_wm_type(Type.UNKNOWN)
     for name_part, wm_type in recognize.items():
         if name_part in name:
             XObject.set_wm_type(wm_type)
Пример #5
0
class Type(object):

    """Enum of window, and window manager types."""

    # Window Types
    DESKTOP = XObject.atom('_NET_WM_WINDOW_TYPE_DESKTOP')
    DOCK = XObject.atom('_NET_WM_WINDOW_TYPE_DOCK')
    TOOLBAR = XObject.atom('_NET_WM_WINDOW_TYPE_TOOLBAR')
    MENU = XObject.atom('_NET_WM_WINDOW_TYPE_MENU')
    UTILITY = XObject.atom('_NET_WM_WINDOW_TYPE_UTILITY')
    SPLASH = XObject.atom('_NET_WM_WINDOW_TYPE_SPLASH')
    DIALOG = XObject.atom('_NET_WM_WINDOW_TYPE_DIALOG')
    NORMAL = XObject.atom('_NET_WM_WINDOW_TYPE_NORMAL')
    NONE = -1

    # Window manager Types
    COMPIZ = 1
    METACITY = 2
    KWIN = 3
    XFWM = 4
    OPENBOX = 5
    FLUXBOX = 6
    BLACKBOX = 7
    ICEWM = 8
    ENLIGHTMENT = 9
    WINDOW_MAKER = 10
    SAWFISH = 11
    PEKWM = 12
    UNKNOWN = -1
Пример #6
0
 def test_str2_methods_case_sensitivity(self):
     self.assertEqual(XObject.str2keycode('a'), XObject.str2keycode('A'))
     self.assertEqual(XObject.str2modifiers('Alt'),
                      XObject.str2modifiers('alt'))
     self.assertEqual(XObject.str2modifiers('Alt'),
                      XObject.str2modifiers('ALT'))
     self.assertEqual(XObject.str2modifiers('alt'),
                      XObject.str2modifiers('ALT'))
Пример #7
0
 def test_screen_geometries__with_xinerama(self):
     self.display.xinerama_query_screens = lambda: Xlib_mock.ScreensQuery(
         (0, 0, 640, 400),
         (640, 0, 960, 200))
     self.assertEqual(XObject.screen_geometries(),
                      [Xlib_mock.Geometry(0, 0, 640, 400),
                       Xlib_mock.Geometry(640, 0, 960, 200)])
Пример #8
0
    def name(self):
        """Return window manager's name.

        ``''`` is returned if window manager doesn't support EWMH.

        """
        # _NET_SUPPORTING_WM_CHECK, WINDOW/32
        win_id = self.get_property('_NET_SUPPORTING_WM_CHECK')
        if not win_id:
            return ''
        win = XObject(win_id.value[0])
        name = win.get_property('_NET_WM_NAME')
        if name:
            return name.value
        else:
            return ''
Пример #9
0
 def test_screen_geometries__with_xinerama(self):
     self.display.xinerama_query_screens = lambda: Xlib_mock.ScreensQuery(
         (0, 0, 640, 400), (640, 0, 960, 200))
     self.assertEqual(XObject.screen_geometries(), [
         Xlib_mock.Geometry(0, 0, 640, 400),
         Xlib_mock.Geometry(640, 0, 960, 200)
     ])
Пример #10
0
 def test_str2_methods_case_sensitivity(self):
     self.assertEqual(XObject.str2keycode('a'),
                      XObject.str2keycode('A'))
     self.assertEqual(XObject.str2modifiers('Alt'),
                      XObject.str2modifiers('alt'))
     self.assertEqual(XObject.str2modifiers('Alt'),
                      XObject.str2modifiers('ALT'))
     self.assertEqual(XObject.str2modifiers('alt'),
                      XObject.str2modifiers('ALT'))
Пример #11
0
class Type(object):

    """Enum of windows, and window managers types."""

    # Window Types
    DESKTOP = XObject.atom('_NET_WM_WINDOW_TYPE_DESKTOP')
    """Desktop."""
    DOCK = XObject.atom('_NET_WM_WINDOW_TYPE_DOCK')
    """Dock window (for example panels)."""
    TOOLBAR = XObject.atom('_NET_WM_WINDOW_TYPE_TOOLBAR')
    """Toolbar window."""
    MENU = XObject.atom('_NET_WM_WINDOW_TYPE_MENU')
    """Menu window."""
    UTILITY = XObject.atom('_NET_WM_WINDOW_TYPE_UTILITY')
    """Utility window."""
    SPLASH = XObject.atom('_NET_WM_WINDOW_TYPE_SPLASH')
    """Splash dialog."""
    DIALOG = XObject.atom('_NET_WM_WINDOW_TYPE_DIALOG')
    """Modal dialog."""
    NORMAL = XObject.atom('_NET_WM_WINDOW_TYPE_NORMAL')
    """Normal window."""
    NONE = -1
    """No `Type` specified."""

    # Window manager Types
    COMPIZ = 1
    METACITY = 2
    KWIN = 3
    XFWM = 4
    OPENBOX = 5
    FLUXBOX = 6
    BLACKBOX = 7
    ICEWM = 8
    ENLIGHTMENT = 9
    WINDOW_MAKER = 10
    SAWFISH = 11
    PEKWM = 12
    UNKNOWN = -1
Пример #12
0
 def __init__(self, win_id):
     XObject.__init__(self, win_id)
Пример #13
0
class State(object):

    """Enum of window states."""

    # States described by EWMH
    MODAL = XObject.atom('_NET_WM_STATE_MODAL')
    """Modal dialog."""
    STICKY = XObject.atom('_NET_WM_STATE_STICKY')
    """Sticky - show on all :ref:`desktops <desktop>` 
    / :ref:`viewports <viewport>`."""
    MAXIMIZED_VERT = XObject.atom('_NET_WM_STATE_MAXIMIZED_VERT')
    """Maximized vertically."""
    MAXIMIZED_HORZ = XObject.atom('_NET_WM_STATE_MAXIMIZED_HORZ')
    """Maximized horizontally."""
    MAXIMIZED = (MAXIMIZED_VERT, MAXIMIZED_HORZ)
    """Maximized both vertically and horizontally."""
    SHADED = XObject.atom('_NET_WM_STATE_SHADED')
    """Shaded (only title bar is visible)."""
    SKIP_TASKBAR = XObject.atom('_NET_WM_STATE_SKIP_TASKBAR')
    """Don't show window in the taskbar."""
    SKIP_PAGER = XObject.atom('_NET_WM_STATE_SKIP_PAGER')
    """Don't show window in the pager."""
    HIDDEN = XObject.atom('_NET_WM_STATE_HIDDEN')
    """Hidden window (for example when iconified)."""
    FULLSCREEN = XObject.atom('_NET_WM_STATE_FULLSCREEN')
    """Fullscreen."""
    ABOVE = XObject.atom('_NET_WM_STATE_ABOVE')
    """Above all other windows."""
    BELOW = XObject.atom('_NET_WM_STATE_BELOW')
    """Below all other windows."""
    DEMANDS_ATTENTION = XObject.atom('_NET_WM_STATE_DEMANDS_ATTENTION')
    """Demands attention."""
    # Window managers specific states
    OB_UNDECORATED = XObject.atom('_OB_WM_STATE_UNDECORATED')
    """Borderless (only in Openbox)."""
Пример #14
0
 def test_screen_geometries__without_xinerama(self):
     self.display.xinerama_query_screens = AttributeError
     self.assertEqual(XObject.screen_geometries(),
                      [Xlib_mock.Geometry(0, 0, 800, 600)])
Пример #15
0
 def test_has_no_xinerama(self):
     self.display.extensions = []
     self.assertEqual(XObject.has_xinerama(), False)
Пример #16
0
 def test_has_no_xinerama(self):
     self.display.extensions = []
     self.assertEqual(XObject.has_xinerama(), False)
Пример #17
0
 def test_atom(self):
     atom = XObject.atom('_NET_WM_NAME')
     name = XObject.atom_name(atom)
     self.assertEqual(name, '_NET_WM_NAME')
Пример #18
0
class State(object):

    """Enum of window states."""

    # States described by EWMH
    MODAL = XObject.atom('_NET_WM_STATE_MODAL')
    STICKY = XObject.atom('_NET_WM_STATE_STICKY')
    MAXIMIZED_VERT = XObject.atom('_NET_WM_STATE_MAXIMIZED_VERT')
    MAXIMIZED_HORZ = XObject.atom('_NET_WM_STATE_MAXIMIZED_HORZ')
    MAXIMIZED = (MAXIMIZED_VERT, MAXIMIZED_HORZ)
    SHADED = XObject.atom('_NET_WM_STATE_SHADED')
    SKIP_TASKBAR = XObject.atom('_NET_WM_STATE_SKIP_TASKBAR')
    SKIP_PAGER = XObject.atom('_NET_WM_STATE_SKIP_PAGER')
    HIDDEN = XObject.atom('_NET_WM_STATE_HIDDEN')
    FULLSCREEN = XObject.atom('_NET_WM_STATE_FULLSCREEN')
    ABOVE = XObject.atom('_NET_WM_STATE_ABOVE')
    BELOW = XObject.atom('_NET_WM_STATE_BELOW')
    DEMANDS_ATTENTION = XObject.atom('_NET_WM_STATE_DEMANDS_ATTENTION')
    # Window managers specific states
    OB_UNDECORATED = XObject.atom('_OB_WM_STATE_UNDECORATED')
Пример #19
0
 def test_screen_geometries__without_xinerama(self):
     self.display.xinerama_query_screens = AttributeError
     self.assertEqual(XObject.screen_geometries(),
                      [Xlib_mock.Geometry(0, 0, 800, 600)])
Пример #20
0
 def test_has_extension(self):
     self.assertTrue(XObject.has_extension('XINERAMA'))
     self.assertFalse(XObject.has_extension('FOO_BAR'))
Пример #21
0
 def test_has_extension(self):
     self.assertTrue(XObject.has_extension('XINERAMA'))
     self.assertFalse(XObject.has_extension('FOO_BAR'))
Пример #22
0
 def test_has_xinerama(self):
     self.assertEqual(XObject.has_xinerama(), True)
Пример #23
0
 def test_atom(self):
     atom = XObject.atom('_NET_WM_NAME')
     name = XObject.atom_name(atom)
     self.assertEqual(name, '_NET_WM_NAME')
Пример #24
0
 def test_has_xinerama(self):
     self.assertEqual(XObject.has_xinerama(), True)