コード例 #1
0
ファイル: __init__.py プロジェクト: akatrevorjay/polaris
    def get_windows(self, *args):
        def nfg(task):
            return "^fg(" + self.TASKS_NFG + ")" + task + "^fg()"
        def nbg(task):
            return "^bg(" + self.TASKS_NBG + ")" + task + "^bg()"
        def ifg(task):
            return task.replace("^fg(" + self.TASKS_NFG, "^fg(" + self.TASKS_IFG)
        def ibg(task):
            return task.replace("^fg(" + self.TASKS_NBG, "^fg(" + self.TASKS_IBG)
        def afg(task):
            return task.replace("^fg(" + self.TASKS_NFG, "^fg(" + self.TASKS_AFG)
        def abg(task):
            return task.replace("^bg(" + self.TASKS_NBG, "^bg(" + self.TASKS_ABG)
        def ca_task(task, uniq):
            return " ^ca(1, polaris.py -t " + uniq + ")" + task + "^ca() "
        self.windows = ""
        workspaces = self.screen.get_workspaces()
        windows = self.screen.get_windows()
        if windows != None:
            windows_workspaces_dict = {}
            for workspace in workspaces:
                windows_workspaces_dict[workspace.get_name()] = []
            for window in windows:
                if not window.is_skip_tasklist():
                    window_workspace = window.get_workspace()
                    window_workspace_name = window_workspace.get_name()
                    if window_workspace != None:
                        if not window_workspace_name in windows_workspaces_dict:
                            windows_workspaces_dict[window_workspace_name] = []
                        windows_workspaces_dict[window_workspace.get_name()].append(window)
                    else:
                        if window.is_sticky() or self.screen.get_window_manager_name() == "Openbox":
                            for workspace in windows_workspaces_dict:
                                windows_workspaces_dict[workspace].append(window)

            cw_window_full_names = []
            active_workspace = self.screen.get_active_workspace().get_name()
            count = 0
            for window in windows_workspaces_dict[active_workspace]:
                window.connect("name-changed", self.filter_name_change)
                window_full_name = unicode(window.get_name())
                window_name = window_full_name
                if len(window_full_name) > 30:
                    window_name = window_full_name[:29] + u"\u2026"
                cw_window_full_names.append(ca_task(nbg(nfg("^ro(3x3)  " + window_name)), str(window.get_xid())))
                if window.is_minimized():
                    cw_window_full_names[count] = ibg(ifg(cw_window_full_names[count]))
                self.active_window = self.screen.get_active_window()
                if self.active_window != None:
                    if window_full_name == self.active_window.get_name():
                        cw_window_full_names[count] = util.fill_ro(abg(afg(cw_window_full_names[count])))
                        self.windows = "  ".join([cw_window_full_names[count]])
                count = count + 1
                #self.windows = "  ".join(cw_window_full_names)
                #self.windows = "  ".join([cw_window_full_names[count]])
        else:
            self.windows = ""
        if args:
            self.output_dzen_line()
コード例 #2
0
ファイル: __init__.py プロジェクト: akatrevorjay/polaris
    def get_workspaces(self, *args):
        def nfg(workspace):
            return "^fg(" + self.WORKSPACES_NFG + ")" + workspace + "^fg()"
        def nbg(workspace):
            return "^bg(" + self.WORKSPACES_NBG + ")" + workspace + "^bg()"
        def afg(workspace):
            return workspace.replace("^fg(" + self.WORKSPACES_NFG, "^fg(" + self.WORKSPACES_AFG)
        def abg(workspace):
            return workspace.replace("^bg(" + self.WORKSPACES_NBG, "^bg(" + self.WORKSPACES_ABG)
        def ca_workspace(workspace_label, workspace_number):
            return "^ca(1, polaris.py -w " + str(workspace_number) + ")" + workspace_label + "^ca()"

        wm_workspaces = self.screen.get_workspaces()
        wm_windows = self.screen.get_windows()
        workspaces = {}
        active_ws = self.screen.get_active_workspace()
        active_ws_num = active_ws.get_number()
        for ws in wm_workspaces:
            ws_num = ws.get_number()

            ws_in_use = ws_num == active_ws_num
            if not ws_in_use:
                for win in wm_windows:
                    win_ws = win.get_workspace()
                    win_ws_num = win_ws.get_number()

                    if win.is_skip_tasklist() or ws_num != win_ws_num:
                        continue

                    ws_in_use = True
                    break

            ws.connect("name-changed", self.get_workspaces)
            if ws_in_use:
                workspaces[ws_num] = ca_workspace(nbg(nfg("^p(;2)^ro(4x4)^p(;-2) " + ws.get_name() + " ")), ws_num)
        workspaces[active_ws_num] = util.fill_ro(abg(afg(workspaces[active_ws_num])))
        self.workspaces = " ".join([ x[1] for x in sorted(workspaces.iteritems()) ]) + "^p()"
        #self.get_windows()
        if args:
            self.output_dzen_line()