def create_pane_from_data(window: Window, pane: Pane, dir: Path) -> Do: target_window = yield TmuxIO.from_maybe(window.id, lambda: f'{window} has no id') args = List('-t', window_id(target_window), '-d', '-P', '-c', dir) panes = yield tmux_data_cmd('split-window', args, cmd_data_pane) yield TmuxIO.from_maybe( panes.head, lambda: f'no output when creating pane in {window}')
def pdata() -> TmuxIO[List[FData]]: return tmux_data_cmd('list-panes', List('-a'), cmd_data_fdata)
def session_windows(sid: str) -> Do: yield tmux_data_cmd('list-windows', List('-t', session_id(sid)), cmd_data_window)
def create_window(target_session: int, ident: str) -> Do: args = List('-t', f'{session_id(target_session)}:', '-n', ident, '-P') windows = yield tmux_data_cmd('new-window', args, cmd_data_window) yield TmuxIO.from_maybe(windows.head, f'no output when creating window `{ident}`')
def windows() -> TmuxIO[List[WindowData]]: return tmux_data_cmd('list-windows', List('-a'), cmd_data_window)
def window_panes(wid: int) -> TmuxIO[List[PaneData]]: return tmux_data_cmd('list-panes', List('-t', window_id(wid)), cmd_data_pane)
def all_panes() -> TmuxIO[List[PaneData]]: return tmux_data_cmd('list-panes', List('-a'), cmd_data_pane)
def create_session(name: str) -> Do: sessions = yield tmux_data_cmd('new-session', List('-s', name, '-P'), cmd_data_session) yield TmuxIO.from_maybe(sessions.head, f'no output when creating session `{name}`')
def sessions() -> TmuxIO[List[SessionData]]: return tmux_data_cmd('list-sessions', Nil, cmd_data_session)