diff --git a/src/tmuxp/cli/load.py b/src/tmuxp/cli/load.py index 00dde4e0b1c..e68fdd22902 100644 --- a/src/tmuxp/cli/load.py +++ b/src/tmuxp/cli/load.py @@ -626,9 +626,21 @@ def command_load( detached = original_detached_option new_session_name = original_new_session_name - if last_idx > 0 and idx < last_idx: - detached = True - new_session_name = None + if last_idx > 0: + if idx < last_idx: + detached = True + new_session_name = None + if tmux_options["append"]: + original_session_name = None + if idx == 0: + original_session_name = ( + new_session_name + or config_reader.ConfigReader._from_file( + pathlib.Path(config_file) + ) + ) + elif idx > 0 and original_session_name is not None: + new_session_name = original_session_name load_workspace( workspace_file, diff --git a/tests/test_cli.py b/tests/test_cli.py index beb90d98fca..ea413aeaa7a 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -286,6 +286,18 @@ class CLILoadFixture(t.NamedTuple): expected_in_out=None, expected_not_in_out=None, ), + CLILoadFixture( + test_id="configdir-session-name-double-append", + cli_args=["load", "my_config", "second_config", "--append"], + config_paths=[ + "{TMUXP_CONFIGDIR}/my_config.yaml", + "{TMUXP_CONFIGDIR}/second_config.yaml", + ], + session_names=["my_config", "second_config"], + expected_exit_code=0, + expected_in_out=None, + expected_not_in_out=None, + ), ] @@ -355,6 +367,10 @@ def test_load( for session_name in session_names: assert server.has_session(session_name) + if "--append" in cli_args: + for session_name in session_names[-1:]: + assert not server.has_session(session_name) + def test_regression_00132_session_name_with_dots( tmp_path: pathlib.Path,