pub struct SessionManager { /* private fields */ }Implementations§
Source§impl SessionManager
impl SessionManager
pub fn save_layout( &self, session_name: &str, window_id: WindowId, name: &str, ) -> Result<()>
pub fn load_layout( &mut self, session_name: &str, window_id: WindowId, name: &str, ) -> LayoutResult
pub fn list_layouts(&self) -> Vec<LayoutListEntry>
Sourcepub fn resolve_layout_name(&self, name: &str) -> Result<()>
pub fn resolve_layout_name(&self, name: &str) -> Result<()>
Resolve a layout name: config → saved files → presets. Used by –layout flag on session/window creation.
Source§impl SessionManager
impl SessionManager
pub fn new(pty_factory: PtyFactory, config: AimuxConfig) -> Self
pub fn set_self_arc(&mut self, arc: &Arc<Mutex<SessionManager>>)
pub fn allocate_pane_id(&self) -> PaneId
pub fn default_session_options(&self) -> SessionOptions
pub fn reload_config(&mut self, config: AimuxConfig)
pub fn server_status(&self) -> ServerStatusInfo
pub fn config(&self) -> &AimuxConfig
pub fn resolve_pane_target(&self, target: &str) -> Result<String>
pub fn set_mark(&mut self, mark: &str, pane_id: &str) -> Result<()>
pub fn remove_mark(&mut self, mark: &str) -> Result<()>
pub fn list_marks(&self) -> Vec<(String, String)>
pub fn marks_for_pane(&self, pane_id: &str) -> Vec<String>
Sourcepub fn apply_layout(
&mut self,
session_name: &str,
window_id: WindowId,
layout_name: &str,
) -> LayoutResult
pub fn apply_layout( &mut self, session_name: &str, window_id: WindowId, layout_name: &str, ) -> LayoutResult
Apply a named layout from config to a window. Creates/kills panes to match leaf count, sets Custom layout, applies marks. Returns (pane_ids, backends_to_close) so the caller can close backends outside the lock.
Sourcepub fn select_layout(
&mut self,
session_name: &str,
window_id: WindowId,
layout_name: &str,
) -> Result<()>
pub fn select_layout( &mut self, session_name: &str, window_id: WindowId, layout_name: &str, ) -> Result<()>
Select a preset layout for an existing window.
pub fn new_session( &mut self, name: &str, shell: Option<&str>, ) -> Result<(SessionId, PaneId)>
pub fn kill_session(&mut self, name: &str) -> Result<Vec<Box<dyn PtyBackend>>>
pub fn list_sessions(&self) -> Vec<SessionInfo>
pub fn has_session(&self, name: &str) -> bool
pub fn get_session(&self, name: &str) -> Option<&Session>
pub fn get_session_mut(&mut self, name: &str) -> Option<&mut Session>
Sourcepub fn find_pane(&self, pane_id: &str) -> Option<(&Session, &Window, &Pane)>
pub fn find_pane(&self, pane_id: &str) -> Option<(&Session, &Window, &Pane)>
Find a pane by its global ID across all sessions.
Sourcepub fn find_pane_mut(&mut self, pane_id: &str) -> Option<&mut Pane>
pub fn find_pane_mut(&mut self, pane_id: &str) -> Option<&mut Pane>
Find a mutable pane by its global ID.
Sourcepub fn get_prompt_pattern(&self, pane_id: &str) -> Option<String>
pub fn get_prompt_pattern(&self, pane_id: &str) -> Option<String>
Get the prompt pattern for a pane’s parent session.
Sourcepub fn send_keys(&self, pane_id: &str, keys: &str) -> Result<()>
pub fn send_keys(&self, pane_id: &str, keys: &str) -> Result<()>
Send keys to a pane. Returns error if the pane has exited.
Sourcepub fn get_capture_info(
&self,
pane_id: &str,
) -> Result<(Arc<RwLock<Screen>>, ProcessInfo)>
pub fn get_capture_info( &self, pane_id: &str, ) -> Result<(Arc<RwLock<Screen>>, ProcessInfo)>
Get the screen and process info needed for a capture, without awaiting. Returns (screen_arc, process_info) so the caller can await the read lock without holding a reference to SessionManager across the await point.
Sourcepub fn new_window(
&mut self,
session_name: &str,
shell: Option<&str>,
) -> Result<(WindowId, PaneId)>
pub fn new_window( &mut self, session_name: &str, shell: Option<&str>, ) -> Result<(WindowId, PaneId)>
Create a new window in a session.
Sourcepub fn kill_window(
&mut self,
session_name: &str,
window_id: WindowId,
) -> Result<Vec<Box<dyn PtyBackend>>>
pub fn kill_window( &mut self, session_name: &str, window_id: WindowId, ) -> Result<Vec<Box<dyn PtyBackend>>>
Kill a window. If it was the last window, kills the session too. Returns backends for the caller to close outside the lock.
Sourcepub fn split_pane(
&mut self,
pane_id: &str,
horizontal: bool,
shell: Option<&str>,
) -> Result<PaneId>
pub fn split_pane( &mut self, pane_id: &str, horizontal: bool, shell: Option<&str>, ) -> Result<PaneId>
Split a pane, adding a new pane to the same window.
Sourcepub fn kill_pane(&mut self, pane_id: &str) -> Result<Vec<Box<dyn PtyBackend>>>
pub fn kill_pane(&mut self, pane_id: &str) -> Result<Vec<Box<dyn PtyBackend>>>
Kill a pane. Cascades: last pane kills window, last window kills session. Returns backends for the caller to close outside the lock.
Sourcepub fn list_panes(&self, session_name: &str) -> Result<Vec<PaneInfo>>
pub fn list_panes(&self, session_name: &str) -> Result<Vec<PaneInfo>>
List panes for a session.
Sourcepub fn select_window(
&mut self,
session_name: &str,
window_id: WindowId,
) -> Result<()>
pub fn select_window( &mut self, session_name: &str, window_id: WindowId, ) -> Result<()>
Select a window as active in a session.
Sourcepub fn select_pane(&mut self, pane_id: &str) -> Result<()>
pub fn select_pane(&mut self, pane_id: &str) -> Result<()>
Select a pane as active, finding it across all sessions.
Sourcepub fn swap_panes(&mut self, pane_a: &str, pane_b: &str) -> Result<()>
pub fn swap_panes(&mut self, pane_a: &str, pane_b: &str) -> Result<()>
Swap two panes’ positions within the same window.
Sourcepub fn move_pane(
&mut self,
pane_id: &str,
target_session: &str,
target_window_id: WindowId,
) -> Result<()>
pub fn move_pane( &mut self, pane_id: &str, target_session: &str, target_window_id: WindowId, ) -> Result<()>
Move a pane from its current window to a different window.
Sourcepub fn list_windows(&self, session_name: &str) -> Result<Vec<WindowInfo>>
pub fn list_windows(&self, session_name: &str) -> Result<Vec<WindowInfo>>
List windows for a session.
Sourcepub fn resize_pane_pty(
&mut self,
pane_id: &str,
cols: u16,
rows: u16,
) -> Result<Arc<RwLock<Screen>>>
pub fn resize_pane_pty( &mut self, pane_id: &str, cols: u16, rows: u16, ) -> Result<Arc<RwLock<Screen>>>
Resize a pane’s PTY backend and update its stored size. Returns the screen Arc so the caller can resize the screen after dropping the manager lock.
Sourcepub fn shutdown_all(&mut self) -> Vec<Box<dyn PtyBackend>>
pub fn shutdown_all(&mut self) -> Vec<Box<dyn PtyBackend>>
Shut down all sessions. Returns backends for the caller to close.