Exemplo n.º 1
0
    def ui_tasklist(self):
        self.workspaces = {}
        self.windows = {}
        self.windows_needing_attention = {}

        self.settings["padding"] = int(self.settings["padding"])
        self.settings["opacity"] = int(self.settings["opacity"])

        self.opacity = self.settings["opacity"] / 65535.0
        self.active_color = Core.hex2rgb(self.settings["active_color"])

        if self.bar.cfg["position"] == "top" or self.bar.cfg["position"] == "bottom":
            self.container = gtk.HBox(False, 0)
            self.mainbox = gtk.HBox(False, 0)
        else:
            self.container = gtk.VBox(False, 0)
            self.mainbox = gtk.VBox(False, 0)

        self.mainbox.set_spacing(4)
        self.mainbox.pack_start(self.container, True)

        self.container.set_border_width(0)

        if int(self.settings["show_all_win"]):
            self.container.set_spacing(4)
        else:
            self.container.set_spacing(0)

        wnck.set_client_type(wnck.CLIENT_TYPE_PAGER)
        screen = wnck.screen_get_default()
        self.screen = screen
        screen.force_update()
        windows = screen.get_windows()

        self.scr_width = screen.get_width()
        self.scr_height = screen.get_height()
        ws = screen.get_active_workspace()

        self.is_virtual = ws.is_virtual()
        self.num_workspaces = screen.get_workspace_count()
        self.use_viewports = self.is_virtual and self.num_workspaces == 1

        if self.use_viewports:
            # the compiz path: 1 workspace and it is virtual
            ws_width = ws.get_width()
            ws_height = ws.get_height()
            self.num_viewports = ws_width // self.scr_width

            for i in range(0, self.num_viewports):
                self.workspace_add(screen, i)
        else:
            for i in range(0, screen.get_workspace_count()):
                self.workspace_add(screen, i)

        for window in windows:
            self.window_opened(screen, window)

        self.add(self.mainbox)
        self.init_screen_callback(screen)
        self.create_menu()

        if int(self.settings["show_desk_pos"]):
            # ~ screen.connect("active_workspace_changed", self.workspace_changed)
            self.active_workspace = gtk.Label()
            self.active_workspace.modify_font(pango.FontDescription(self.settings["desktop_font"]))
            self.active_workspace.set_use_markup(True)
            # ~ self.active_workspace.set_alignment(0.5,0.5)
            self.mainbox.pack_end(self.active_workspace, False, False)

            if self.bar.cfg["position"] == "top" or self.bar.cfg["position"] == "bottom":
                self.active_workspace.set_size_request(-1, self.bar.cfg["icon_size"])
            else:
                self.active_workspace.set_size_request(self.bar.cfg["icon_size"], -1)
            self.active_workspace.show()

        if int(self.settings["show_desk_pos"]) or not int(self.settings["show_all_win"]):
            if self.use_viewports:
                self.screen_signals.append(screen.connect("viewports-changed", self.workspace_changed))
            else:
                self.screen_signals.append(screen.connect("active_workspace_changed", self.workspace_changed))

        self.show_all()
Exemplo n.º 2
0
class Config:
    def __init__(self, cfg_file):
        self.cfg_file = cfg_file

        # tableau avec la config de la barre
        self.config = {}
        # tableau avec les lanceurs (cmd, icon, name)
        self.launcher = {}
        # liste des index pour la position dans la barre
        self.l_ind = []
        # tableau avec les drawers associés au launcer ( même index )
        self.drawer = {}

        ## default config
        self.config['fade_hidden'] = False
        self.config['icon_space'] = 10
        self.config['show_border'] = 1
        self.config['smooth_hide'] = 1
        self.config['bg_color'] = "#1A1A1A"
        self.config['bg_color_sub'] = "#EEEEEE"
        self.config['border_color_sub'] = "#7F7F7F"
        self.config['bar_size'] = 100
        self.config['rounded_corner'] = 15
        self.config['icon_size'] = 36
        self.config['hidden_size'] = 5
        self.config['opacity'] = 70
        self.config['border_color'] = "#313335"
        self.config['padding'] = 4
        self.config['zoom_factor'] = 1.2
        self.config['keep_below'] = False
        self.config['offset_pos'] = 4
        self.config['align'] = "center"
        self.config['timer'] = 1
        self.config['bg_gradient'] = True
        self.config['auto_hide'] = 2
        self.config['auto_raise'] = 1
        self.config['offset_align'] = 0
        self.config['position'] = "bottom"
        self.config['tooltips'] = True
        self.config['fixed_size'] = 100
        self.config['fixed_mode'] = True
        self.config['reserve_space'] = False

        ## new in v0.3.9
        self.config['bg_gradient_color'] = "#7F7F7F"
        ## new in v0.4
        self.config['bar_style'] = 0
        self.config['icons_effects'] = 3
        ## new in v0.5
        self.config['bg_gradient_alpha'] = 65535
        ## new in v0.5.2
        self.config['show_quit'] = True

    def read(self):
        Core.logINFO("read ..", 'config')

        home = os.environ['HOME']

        ## custom config
        if os.access("%s/.config/adeskbar/%s.cfg" % (home, self.cfg_file),
                     os.F_OK | os.R_OK):
            Core.logINFO(
                "config = %s/.config/adeskbar/%s.cfg" % (home, self.cfg_file),
                'config')
            conf_path = "%s/.config/adeskbar/%s.cfg" % (home, self.cfg_file)

        ## read default config
        elif os.access("default.cfg", os.F_OK | os.R_OK):
            Core.logINFO("config = default.cfg", 'config')
            conf_path = 'default.cfg'

        ## no config ? exit !
        else:
            Core.logINFO("ERROR : can't read config !!!", 'config')
            #~ Core.show_msg("Sorry, but can't read config !!!")
            #~ sys.exit()
            return

        f = open(conf_path, 'r')

        current_cat = None
        current_ind = None
        error_config = False

        for line in f:

            ## empty or comment ..
            if line == '\n' or line[0] == '#':
                continue

            try:
                line = line.strip('\n')
                line = line.strip()

                ## check if is a category
                if line[0] == '[':
                    current_cat = line[1:-1]

                    if '/' in current_cat:
                        tmp = current_cat.split('/')
                        current_cat = tmp[0]
                        current_ind = tmp[1]

                        if current_cat == 'LAUNCHER':
                            self.launcher[current_ind] = {}
                            self.l_ind.append(current_ind)

                    else:
                        current_ind = None

                    continue

                if current_cat == 'CONFIG':
                    tmp = line.split('=', 1)
                    key = tmp[0].strip()
                    self.config[key] = tmp[1].strip()

                elif current_cat == 'LAUNCHER':
                    tmp = line.split('=', 1)
                    key = tmp[0].strip()
                    self.launcher[current_ind][key] = tmp[1].strip()

                elif current_cat == 'DRAWER':
                    (cmd, icon, desc) = line.split('##')
                    if not current_ind in self.drawer:
                        self.drawer[current_ind] = []
                    self.drawer[current_ind].append(
                        (cmd.strip(), icon.strip(), desc.strip()))

            except Exception, e:
                print 'Error while parsing self.config file ..'
                traceback.print_exc()
                error_config = True

        f.close()

        ## convert value : str -> int
        for key in ('padding', 'icon_size', 'offset_pos', 'offset_align',
                    'rounded_corner', 'hidden_size', 'opacity', 'timer',
                    'icons_effects', 'bar_size', 'icon_space', 'auto_hide',
                    'bg_gradient_alpha', 'bar_style'):
            self.config[key] = int(float(self.config[key]))

        ## convert value : str -> True / False
        for key in ('auto_raise', 'smooth_hide', 'tooltips', 'reserve_space',
                    'show_border', 'fade_hidden', 'fixed_mode', 'keep_below',
                    'bg_gradient', 'show_quit'):

            if self.config[key] in ('true', 'True', '1', 'yes'):
                self.config[key] = True
            else:
                self.config[key] = False

        ## convert color hex->rgb
        self.config['bg_color_rgb'] = Core.hex2rgb(self.config['bg_color'])
        self.config['border_color_rgb'] = Core.hex2rgb(
            self.config['border_color'])
        self.config['bg_color_sub_rgb'] = Core.hex2rgb(
            self.config['bg_color_sub'])
        self.config['border_color_sub_rgb'] = Core.hex2rgb(
            self.config['border_color_sub'])
        self.config['bg_gradient_color_rgb'] = Core.hex2rgb(
            self.config['bg_gradient_color'])

        if self.config['hidden_size'] < 1:
            self.config['hidden_size'] = 1

        self.config['zoom_factor'] = float(self.config['zoom_factor'])
        self.config['fixed_size'] = float(self.config['fixed_size'])

        if error_config:
            ## FIXME!!
            pass
Exemplo n.º 3
0
        "smooth_hide",
        "tooltips",
        "show_border",
        "fade_hidden",
        "fixed_mode",
        "reserve_space",
        "keep_below",
        "bg_gradient",
    ):

        if CONFIG[key] in ("true", "True", "1", "yes"):
            CONFIG[key] = True
        else:
            CONFIG[key] = False

    CONFIG["bg_color_rgb"] = Core.hex2rgb(CONFIG["background_color"])
    CONFIG["border_color_rgb"] = Core.hex2rgb(CONFIG["border_color"])

    if CONFIG["hidden_size"] < 1:
        CONFIG["hidden_size"] = 1

    CONFIG["zoom_factor"] = float(CONFIG["zoom_factor"])
    CONFIG["fixed_size"] = float(CONFIG["fixed_size"])

    if error_config:
        ## FIXME!!
        pass
        # ~ adesk.show_msg("Error while loading user config .. ( old config file ? )")

    return CONFIG, LAUNCHER, DRAWER
Exemplo n.º 4
0
    def ui_tasklist(self):
        self.workspaces = {}
        self.windows = {}
        self.windows_needing_attention = {}

        self.settings['padding'] = int(self.settings['padding'])
        self.settings['opacity'] = int(self.settings['opacity'])
        
        self.opacity = self.settings['opacity'] / 65535.0
        self.active_color = Core.hex2rgb(self.settings['active_color'])

        if self.bar.cfg['position'] == 'top' or self.bar.cfg['position'] == 'bottom':
            self.container = gtk.HBox(False, 0)
            self.mainbox = gtk.HBox(False, 0)
        else:
            self.container = gtk.VBox(False, 0)
            self.mainbox = gtk.VBox(False, 0)
            
        self.mainbox.set_spacing(4)
        self.mainbox.pack_start(self.container, True)
        
        self.container.set_border_width(0)
        
        if int(self.settings['show_all_win']):
            self.container.set_spacing(4)
        else:
            self.container.set_spacing(0)

        wnck.set_client_type(wnck.CLIENT_TYPE_PAGER)
        screen = wnck.screen_get_default()
        self.screen = screen
        screen.force_update()
        windows = screen.get_windows()

        self.scr_width = screen.get_width()
        self.scr_height = screen.get_height()
        ws = screen.get_active_workspace()
        
        self.is_virtual = ws.is_virtual()
        self.num_workspaces = screen.get_workspace_count()                
        self.use_viewports = self.is_virtual and self.num_workspaces == 1
        
        if self.use_viewports:
            # the compiz path: 1 workspace and it is virtual
            ws_width = ws.get_width()
            ws_height = ws.get_height()        
            self.num_viewports = ws_width // self.scr_width
            
            for i in range(0, self.num_viewports):
                self.workspace_add(screen, i)
        else:
            for i in range(0, screen.get_workspace_count()):
                self.workspace_add(screen, i)

        for window in windows:
            self.window_opened(screen, window)

        self.add(self.mainbox)
        self.init_screen_callback(screen)
        self.create_menu()
        
        if int(self.settings['show_desk_pos']):
            #~ screen.connect("active_workspace_changed", self.workspace_changed)
            self.active_workspace = gtk.Label()
            self.active_workspace.modify_font(pango.FontDescription(self.settings['desktop_font']))
            self.active_workspace.set_use_markup(True)
            #~ self.active_workspace.set_alignment(0.5,0.5)
            self.mainbox.pack_end(self.active_workspace, False, False)
            
            if self.bar.cfg['position'] == 'top' or self.bar.cfg['position'] == 'bottom':
                self.active_workspace.set_size_request(-1, self.bar.cfg['icon_size'])
            else:
                self.active_workspace.set_size_request(self.bar.cfg['icon_size'], -1)
            self.active_workspace.show()

        if int(self.settings['show_desk_pos']) or not int(self.settings['show_all_win']):
            if self.use_viewports:
                self.screen_signals.append(screen.connect('viewports-changed', self.workspace_changed))
            else:
                self.screen_signals.append(screen.connect("active_workspace_changed", self.workspace_changed))

        self.show_all()
Exemplo n.º 5
0
 def handler_switch_focus(self, level):
     color = LEVEL_COLORS[level]
     self.bar.cfg['bg_color_rgb'] = Core.hex2rgb(color)
     self.bar.draw_bg()
     self.bar.update()