Example #1
0
    def __init__(self, hotkeys):

        gobject.GObject.__init__(self)

        self.hotkeys = hotkeys

        self.connection = ooxcb.connect()
        self.connection2 = ooxcb.connect()

        self.ctx = record.Context.create(self.connection, 0, [record.CS.AllClients],
            [record.Range.create(
                self.connection,
                (0, 0),
                (0, 0),
                (0, 0, 0, 0),
                (0, 0, 0, 0),
                (0, 0),
                (xproto.KeyPressEvent.opcode, xproto.KeyReleaseEvent.opcode),
                (0, 0),
                False,
                False
            )])

        self.cookie = self.ctx.enable()
        self.connection.flush()

        res = False
        res = gobject.io_add_watch(
            self.connection.get_file_descriptor(),
            gobject.IO_IN,
            self._ooxcb_callback)
Example #2
0
    def init(self):
        """
            This method establishes a connection to the X server and turns on
            the synchronous checks if self.synchronous_check is True
            (that means that you get X exceptions
            synchronously). The rest:

             * It configures signal handlers for SIGINT, SIGTERM, SIGHUP (all
               these signals will gracefully shut down samurai-x)

        """
        log.info('init')

        self.conn = ooxcb.connect()

        # add the xcb file handles to the list of handles we select 
        fd = self.conn.get_file_descriptor()
        self.add_fd_handler('read', fd, self.do_xcb_events) 

        if self.synchronous_check:
            self.conn.synchronous_check = True

        self.cursors = ooxcb.contrib.cursors.Cursors(self.conn)

        signal.signal(signal.SIGINT, self.stop)
        signal.signal(signal.SIGTERM, self.stop)
        signal.signal(signal.SIGHUP, self.stop)
Example #3
0
 def __init__(self, conn=None, root=None):
     if conn is None:
         conn = connect()
     self.conn = conn
     if root is None:
         root = conn.setup.roots[conn.pref_screen].root
     self.root = root
    def __init__(self):

        gobject.GObject.__init__(self)

        self.keymap = gtk.gdk.keymap_get_default()
        self.display = ooxcb.connect()
        self.screen = self.display.setup.roots[self.display.pref_screen]
        self.root = self.screen.root

        self.hotkeys = []
Example #5
0
File: etmv.py Project: Dav1dde/etmv
def main():
    import sys
    import argparse

    def log(logfile):
        exc_type, exc_value, exc_traceback = sys.exc_info()
        traceback.print_exception(exc_type, exc_value, exc_traceback,
                                    limit=None, file=logfile)

    parser = argparse.ArgumentParser(
        description=
            'Disable dpms and screensaver, if the currently active '
            'window is a fullscreen flash window or matches a few criterias.'
    )

    parser.add_argument(
        '--interval', dest='interval',
        type=int, default=-1,
        help='The interval to check if there is a matching window to either '
             'enable or disable the screensaver.'
    )

    parser.add_argument(
        '--name', dest='name',
        action='append', default=None,
        help='Disable the screensaver, if the currently active fullscreen '
             'window belongs to this process (fnmatching supported). '
             'This option can be used multiple times. '
             'Defaults to: chromium, opera, firefox, mplayer, mpv and vlc.'
    )

    parser.add_argument(
        '--display', dest='display',
        default='',
        help='The X display to connect to, if not specified the DISPLAY '
             'environment variable will be used.'
    )

    parser.add_argument(
        '--auth', dest='auth',
        default=None,
        help='Custom authentication cookie used to connect to the display.'
    )

    ns = parser.parse_args()

    connection = ooxcb.connect(ns.display, auth_string=ns.auth)
    ssc = ScreenSaverControl(connection, ns.name)

    try:
        ssc.run(ns.interval)
    except KeyboardInterrupt:
        pass
    except Exception:
        log(sys.stderr)
Example #6
0
def run():
    conn = ooxcb.connect()

    setup = conn.get_setup()

    import simplejson
    style = simplejson.loads(sys.argv[1])

    try:
        for i in xrange(setup.roots_len):
            screen_info = conn.get_setup().roots[i]
            set_root(conn, screen_info, style)
    finally:
        conn.disconnect()
Example #7
0
    def __init__(self):

        simplepanel.applet.Applet.__init__(self)

        self.connection = ooxcb.connect()

        self.screensaver_timeout = 0
        self.toggle_screensaver

        self.icon_active = rsvg.Handle("data/applets/org.cream.simplepanel.ScreensaverApplet/screensaver_active.svg")
        self.icon_inactive = rsvg.Handle(
            "data/applets/org.cream.simplepanel.ScreensaverApplet/screensaver_inactive.svg"
        )

        self.connect("click", lambda *args: self.toggle_screensaver())

        self.draw()
Example #8
0
    def __init__(self):

        simplepanel.applet.Applet.__init__(self)

        self.connection = ooxcb.connect()

        self.screensaver_timeout = 0
        self.toggle_screensaver

        self.icon_active = rsvg.Handle(
            'data/applets/org.cream.simplepanel.ScreensaverApplet/screensaver_active.svg'
        )
        self.icon_inactive = rsvg.Handle(
            'data/applets/org.cream.simplepanel.ScreensaverApplet/screensaver_inactive.svg'
        )

        self.connect('click', lambda *args: self.toggle_screensaver())

        self.draw()
Example #9
0
    def __init__(self, icon_size):
        gobject.GObject.__init__(self)

        self.icon_size = icon_size

        self.conn = ooxcb.connect()
        self.screen = self.conn.setup.roots[self.conn.pref_screen]
        self.root = self.screen.root
        self.pywmctrl = Screen(self.conn, self.root)

        self.ignore_window_types = map(
                lambda name: self.conn.atoms['_NET_WM_WINDOW_TYPE_%s' % name].get_internal(),
                IGNORE_WINDOW_TYPES)

        self.windows_by_desktop = self.collect_windows()

        with self.conn.bunch():
            self.root.change_attributes(event_mask=xproto.EventMask.PropertyChange)
        self.root.push_handlers(on_property_notify=self.on_property_notify)

        self._setup_mainloop()
Example #10
0
    def __init__(self, icon_size):
        gobject.GObject.__init__(self)

        self.icon_size = icon_size

        self.conn = ooxcb.connect()
        self.screen = self.conn.setup.roots[self.conn.pref_screen]
        self.root = self.screen.root
        self.pywmctrl = Screen(self.conn, self.root)

        self.ignore_window_types = map(
            lambda name: self.conn.atoms['_NET_WM_WINDOW_TYPE_%s' % name].
            get_internal(), IGNORE_WINDOW_TYPES)

        self.windows_by_desktop = self.collect_windows()

        with self.conn.bunch():
            self.root.change_attributes(
                event_mask=xproto.EventMask.PropertyChange)
        self.root.push_handlers(on_property_notify=self.on_property_notify)

        self._setup_mainloop()
Example #11
0
import sys
sys.path.append('..')

import ooxcb
from ooxcb.protocol import xproto

conn = ooxcb.connect()

screen = conn.pref_screen_object
active = screen.get_active_window()
reply = active.get_property('_NET_WM_NAME', 'UTF8_STRING').reply()
if reply.exists:
    print 'The property exists.'
else:
    print 'The property does not exist.'
print 'Value: %s' % repr(reply.typed_value)

for atom in screen.root.list_properties().reply().atoms:
    prop = screen.root.get_property(atom, xproto.GetPropertyType.Any).reply()
    print '%s(%s) = %r' % (atom.name, prop.type.name, prop.typed_value)
Example #12
0
    def __init__(self, **kwargs):
        display = kwargs.get('display', ':0')

        self._display = display
        self._conn = ooxcb.connect(display)
        self._root = self._conn.setup.roots[self._conn.pref_screen].root
Example #13
0
    def __init__(self):

        self.connection = ooxcb.connect()

        self.root = self.connection.setup.roots[self.connection.pref_screen].root
Example #14
0
    def __init__(self):

        cream.Module.__init__(self, 'org.sbillaudelle.Fuss')

        self.screensaver = XScreenSaverSession()

        self.window = gtk.Window()
        self.window.fullscreen()

        self.window.set_opacity(0)

        self.display = self.window.get_display()
        self.screen = self.display.get_default_screen()
        self.width, self.height = self.screen.get_width(), self.screen.get_height()
        self.window.resize(self.width, self.height)
        self.window.set_property('skip-pager-hint', True)
        self.window.set_property('skip-taskbar-hint', True)
        self.window.set_property('accept-focus', False)
        self.window.stick()
        self.window.set_keep_above(True)

        self.embed = cluttergtk.Embed()
        self.window.add(self.embed)

        self.embed.realize()
        self.stage = self.embed.get_stage()
        self.stage.set_color(clutter.Color(50, 50, 50))

        self.background = clutter.texture_new_from_file(os.path.expanduser(self.config.background_image))
        self.stage.add(self.background)


        # Display the time...
        self.time = Text('10:15', blur=True, font=pango.FontDescription('Droid Sans 220'))
        self.time.set_position((self.width - self.time.get_width()) / 2, 400)

        self.time.connect('allocation-changed', self.time_allocation_changed_cb)

        self.stage.add(self.time)


        # Display the date...
        self.date = Text('Montag, 6. Dezember 2010', blur=True, font=pango.FontDescription('Droid Sans 36'))
        self.date.set_position((self.width - self.date.get_width()) / 2, 700)

        self.date.connect('allocation-changed', self.date_allocation_changed_cb)

        self.stage.add(self.date)

        self.window.show_all()
        
        self.window.window.input_shape_combine_region(gtk.gdk.Region(), 0, 0)

        pixmap = gtk.gdk.Pixmap(None, 1, 1, 1)
        color = gtk.gdk.Color()
        cursor = gtk.gdk.Cursor(pixmap, pixmap, color, color, 0, 0)

        self.window.window.set_cursor(cursor)

        self.update()
        gobject.timeout_add(333, self.update)
        
        self.connection = ooxcb.connect()
        self.root = self.connection.setup.roots[self.connection.pref_screen].root

        self.cow = gtk.gdk.window_foreign_new(composite.WindowMixin.get_overlay_window(self.root).reply().overlay_win.xid)
        self.window.window.redirect_to_drawable(self.cow, 0, 0, 0, 0, self.window.get_allocation().width, self.window.get_allocation().height)
Example #15
0
    def __init__(self, **kwargs):
        display = kwargs.get('display', ':0')

        self._display = display
        self._conn = ooxcb.connect(display)
        self._root = self._conn.setup.roots[self._conn.pref_screen].root
Example #16
0
            returns the active window object
        """
        return self.root.get_active_window()

    def change_desktop(self, desktop):
        """
            changes the current desktop. The desktops' count is
            starting at 0.
        """
        self._send_clientmessage(self.root, "_NET_CURRENT_DESKTOP", 32,
                [desktop])

    def get_current_desktop(self):
        """
            returns the index of the current desktop, starting at 0,
            or None if it couldn't be fetched.
        """
        property = self.root.get_property("_NET_CURRENT_DESKTOP", "CARDINAL") \
                .reply()
        if property.exists:
            return property.value[0]
        else:
            return None

if __name__ == '__main__':
    conn = connect()
    wmctrl = WMControl(conn, conn.setup.roots[0].root)
    wmctrl.change_desktop(1)
    print wmctrl.get_current_desktop()