예제 #1
0
    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
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
 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
예제 #5
0
 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