Implement window listing

This commit is contained in:
Kovid Goyal
2018-01-07 19:57:16 +05:30
parent eff881f4bb
commit 0cea6d5a1b
5 changed files with 46 additions and 1 deletions

View File

@@ -8,6 +8,7 @@ import weakref
from collections import deque
from enum import Enum
from .child import cmdline_of_process, cwd_of_process
from .config import build_ansi_color_table, parse_send_text_bytes
from .constants import (
ScreenGeometry, WindowGeometry, appname, get_boss, wakeup
@@ -107,6 +108,22 @@ class Window:
def __repr__(self):
return 'Window(title={}, id={})'.format(self.title, self.id)
def as_dict(self):
try:
cwd = cwd_of_process(self.child.pid)
except Exception:
cwd = None
try:
cmdline = cmdline_of_process(self.child.pid)
except Exception:
cmdline = None
return dict(
id=self.id,
title=self.override_title or self.title,
pid=self.child.pid,
cwd=cwd, cmdline=cmdline
)
def set_visible_in_layout(self, window_idx, val):
val = bool(val)
if val is not self.is_visible_in_layout: