Beispiel #1
0
    def __init__(self, **kwargs):
        key = kwargs['key']
        backend = kwargs['backend']
        default = kwargs['default']
        type = kwargs['type']

        if backend == 'gconf':
            self._setting = GconfSetting(key=key, default=default, type=type)
        elif backend == 'gsettings':
            self._setting = GSetting(key=key, default=default, type=type)
        elif backend == 'config':
            self._setting = ConfigSetting(key=key, type=type)
        elif backend == 'compiz':
            self._setting = CompizSetting(key=key)
        elif backend == 'systemconfig':
            self._setting = SystemConfigSetting(key=key, default=default, type=type)

        if hasattr(self._setting, 'connect_notify') and \
                hasattr(self, 'on_value_changed'):
            log.debug("Connect the setting notify to on_value_changed: %s" % key)
            self.get_setting().connect_notify(self.on_value_changed)
Beispiel #2
0
class Window(TweakModule):
    __title__ = _('Window')
    __desc__ = _('Manage Window Manager settings')
    __icon__ = 'preferences-system-windows'
    __category__ = 'desktop'
    __desktop__ = [
        'ubuntu', 'ubuntu-2d', 'gnome', 'gnome-classic', 'gnome-shell',
        'gnome-fallback'
    ]

    left_default = 'close,minimize,maximize:'
    right_default = ':minimize,maximize,close'

    if system.DESKTOP in ('gnome', 'gnome-shell'):
        config = GSetting(key='org.gnome.shell.overrides.button-layout')
    else:
        if system.CODENAME == 'quantal':
            config = GSetting(
                key='org.gnome.desktop.wm.preferences.button-layout')
        else:
            config = GconfSetting(key='/apps/metacity/general/button_layout')

    utext_window_button = _('Window control button position:')
    utext_only_close_button = _('"Close" button only')
    utext_titlebar_wheel = _('Titlebar mouse wheel action:')
    utext_titlebar_double = _('Titlebar double-click action:')
    utext_titlebar_middle = _('Titlebar middle-click action:')
    utext_titlebar_right = _('Titlebar right-click action:')

    def __init__(self):
        TweakModule.__init__(self, 'window.ui')

        close_pattern = re.compile('\w+')

        only_close_switch = Gtk.Switch()
        only_close_switch.connect('notify::active', self.on_switch_activate)
        button_value = self.config.get_value()
        if len(close_pattern.findall(
                button_value)) == 1 and 'close' in button_value:
            only_close_switch.set_active(True)
        only_close_label = Gtk.Label(self.utext_only_close_button)

        if system.CODENAME == 'quantal' and system.DESKTOP == 'ubuntu':
            box = GridPack(
                        (Gtk.Label(self.utext_window_button),
                         self.place_hbox),
                        (only_close_label, only_close_switch),
                        Gtk.Separator(),
                        WidgetFactory.create('ComboBox',
                            label=self.utext_titlebar_wheel,
                            key='org.compiz.gwd.mouse-wheel-action',
                            enable_reset=True,
                            backend='gsettings',
                            texts=[_('None'), _('Roll up')],
                            values=['none', 'shade']),
                        WidgetFactory.create('ComboBox',
                            label=self.utext_titlebar_double,
                            key='org.gnome.desktop.wm.preferences.action-double-click-titlebar',
                            enable_reset=True,
                            backend='gsettings',
                            texts=[_('None'), _('Maximize'), \
                                   _('Minimize'), _('Roll up'), \
                                   _('Lower'), _('Menu')],
                            values=['none', 'toggle-maximize', \
                                    'minimize', 'toggle-shade', \
                                    'lower', 'menu']),
                        WidgetFactory.create('ComboBox',
                            label=self.utext_titlebar_middle,
                            key='org.gnome.desktop.wm.preferences.action-middle-click-titlebar',
                            enable_reset=True,
                            backend="gsettings",
                            texts=[_('None'), _('Maximize'), \
                                   _('Minimize'), _('Roll up'), \
                                   _('Lower'), _('Menu')],
                            values=['none', 'toggle-maximize', \
                                    'minimize', 'toggle-shade', \
                                    'lower', 'menu']),
                        WidgetFactory.create('ComboBox',
                            label=self.utext_titlebar_right,
                            key='org.gnome.desktop.wm.preferences.action-right-click-titlebar',
                            enable_reset=True,
                            backend="gsettings",
                            texts=[_('None'), _('Maximize'), \
                                   _('Minimize'), _('Roll up'), \
                                   _('Lower'), _('Menu')],
                            values=['none', 'toggle-maximize', \
                                    'minimize', 'toggle-shade', \
                                    'lower', 'menu']),
                        )

            self.add_start(box)
        else:
            box = GridPack(
                        (Gtk.Label(self.utext_window_button),
                         self.place_hbox),
                        (only_close_label, only_close_switch),
                        Gtk.Separator(),
                        WidgetFactory.create('ComboBox',
                            label=self.utext_titlebar_wheel,
                            key='/apps/gwd/mouse_wheel_action',
                            enable_reset=True,
                            backend='gconf',
                            texts=[_('None'), _('Roll up')],
                            values=['none', 'shade']),
                        WidgetFactory.create('ComboBox',
                            label=self.utext_titlebar_double,
                            key='/apps/metacity/general/action_double_click_titlebar',
                            enable_reset=True,
                            backend='gconf',
                            texts=[_('None'), _('Maximize'), \
                                    _('Minimize'), _('Roll up'), \
                                    _('Lower'), _('Menu')],
                            values=['none', 'toggle_maximize', \
                                    'minimize', 'toggle_shade', \
                                    'lower', 'menu']),
                        WidgetFactory.create('ComboBox',
                            label=self.utext_titlebar_middle,
                            key='/apps/metacity/general/action_middle_click_titlebar',
                            enable_reset=True,
                            backend="gconf",
                            texts=[_('None'), _('Maximize'), \
                                   _('Maximize Horizontally'), \
                                   _('Maximize Vertically'), \
                                   _('Minimize'), _('Roll up'), \
                                   _('Lower'), _('Menu')],
                                   values=['none', 'toggle_maximize', \
                                           'toggle_maximize_horizontally', \
                                           'toggle_maximize_vertically', \
                                           'minimize', 'toggle_shade', \
                                           'lower', 'menu']),
                        WidgetFactory.create('ComboBox',
                            label=self.utext_titlebar_right,
                            key='/apps/metacity/general/action_right_click_titlebar',
                            enable_reset=True,
                            backend="gconf",
                            texts=[_('None'), _('Maximize'), \
                                    _('Maximize Horizontally'), \
                                    _('Maximize Vertically'), \
                                    _('Minimize'), _('Roll up'), \
                                    _('Lower'), _('Menu')],
                            values=['none', 'toggle_maximize', \
                                    'toggle_maximize_horizontally', \
                                    'toggle_maximize_vertically', \
                                    'minimize', 'toggle_shade', \
                                    'lower', 'menu']),
                    )

            self.add_start(box)

    def on_switch_activate(self, widget, value):
        if widget.get_active():
            self.left_default = 'close:'
            self.right_default = ':close'
        else:
            self.left_default = 'close,minimize,maximize:'
            self.right_default = ':minimize,maximize,close'

        self.on_right_radio_toggled(self.right_radio)
        self.on_left_radio_toggled(self.left_radio)

    def on_right_radio_toggled(self, widget):
        if widget.get_active():
            self.config.set_value(self.right_default)

    def on_left_radio_toggled(self, widget):
        if widget.get_active():
            self.config.set_value(self.left_default)
Beispiel #3
0
 def on_compositing_enabled(self, widget, prop):
     setting = GconfSetting("/apps/metacity/general/compositor_effects")
     setting.set_value(widget.get_active())