diff --git a/src/main.rs b/src/main.rs index 122747b6..e4651fd1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -58,10 +58,17 @@ fn list_sessions() { match fs::read_dir(&*ZELLIJ_SOCK_DIR) { Ok(files) => { let mut is_empty = true; + let session_name = std::env::var("ZELLIJ_SESSION_NAME").unwrap_or("".into()); files.for_each(|file| { let file = file.unwrap(); if file.file_type().unwrap().is_socket() { - println!("{}", file.file_name().into_string().unwrap()); + let fname = file.file_name().into_string().unwrap(); + let suffix = if session_name == fname { + " (current)" + } else { + "" + }; + println!("{}{}", fname, suffix); is_empty = false; } }); diff --git a/zellij-client/src/lib.rs b/zellij-client/src/lib.rs index 4ff37706..8f192c38 100644 --- a/zellij-client/src/lib.rs +++ b/zellij-client/src/lib.rs @@ -17,7 +17,7 @@ use crate::{ use zellij_utils::cli::CliArgs; use zellij_utils::{ channels::{SenderType, SenderWithContext, SyncChannelWithContext}, - consts::ZELLIJ_IPC_PIPE, + consts::{SESSION_NAME, ZELLIJ_IPC_PIPE}, errors::{ClientContext, ContextType, ErrorInstruction}, input::config::Config, input::options::Options, @@ -95,6 +95,7 @@ pub fn start_client(mut os_input: Box, opts: CliArgs, config: C .write(clear_client_terminal_attributes.as_bytes()) .unwrap(); std::env::set_var(&"ZELLIJ", "0"); + std::env::set_var(&"ZELLIJ_SESSION_NAME", &*SESSION_NAME); #[cfg(not(any(feature = "test", test)))] spawn_server(&*ZELLIJ_IPC_PIPE).unwrap();