def _load_icon_themes(self): if self is None: return dirs = ICON_FOLDERS #walked = walk_directories(dirs, lambda d: os.path.isdir(d), return_directories=True) walked = walk_directories(dirs, os.path.isdir, return_directories=True) valid = [] for directory in walked: path = os.path.join(directory[1], directory[0], "index.theme") if os.path.exists(path): try: for line in list(open(path)): if line.startswith("Directories="): valid.append(directory) break except Exception as e: print (e) valid.sort(key=lambda a: a[0].lower()) res = [] for i in valid: for j in res: if i[0] == j: if i[1] == dirs[0]: continue else: res.remove(j) res.append(i[0]) return res
def _load_cinnamon_themes(self): if self is None: return dirs = THEME_FOLDERS valid = walk_directories(dirs, lambda d: os.path.exists(os.path.join(d, "cinnamon")), return_directories=True) valid.sort(key=lambda a: a[0].lower()) res = [] for i in valid: for j in res: if i[0] == j[0]: if i[1] == dirs[0]: continue else: res.remove(j) res.append((i[0], i[1])) return res
def _load_gtk_themes(self): """ Only shows themes that have variations for gtk+-3 and gtk+-2 """ dirs = THEME_FOLDERS valid = walk_directories(dirs, self.filter_func_gtk_dir, return_directories=True) valid.sort(key=lambda a: a[0].lower()) res = [] for i in valid: for j in res: if i[0] == j[0]: if i[1] == dirs[0]: continue else: res.remove(j) res.append((i[0], i[1])) return res
def _load_cursor_themes(self): dirs = ICON_FOLDERS valid = walk_directories(dirs, lambda d: os.path.isdir(d) and os.path.exists( os.path.join(d, "cursors")), return_directories=True) valid.sort(key=lambda a: a[0].lower()) res = [] for i in valid: for j in res: if i[0] == j[0]: if i[1] == dirs[0]: continue else: res.remove(j) res.append((i[0], i[1])) return res
def _load_metacity_themes(self): dirs = THEME_FOLDERS valid = walk_directories( dirs, lambda d: os.path.exists( os.path.join(d, "metacity-1/metacity-theme-3.xml")), return_directories=True) valid.sort(key=lambda a: a[0].lower()) res = [] for i in valid: for j in res: if i[0] == j[0]: if i[1] == dirs[0]: continue else: res.remove(j) res.append((i[0], i[1])) return res