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()
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
"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
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()
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()