GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: tmuxinator/teamocil feature parity (recut) by tony · Pull Request #1046 · tmux-python/tmuxp

Conversation

@tony

@tony tony commented Jun 6, 2026

Copy link
Copy Markdown
Member

Summary

This is a replacement recut for #1025. It keeps the parity work in three reviewable commits:

  • importer parity for tmuxinator/teamocil conversion
  • runtime/load parity for lifecycle hooks, here mode, pane titles, synchronization, templating, and config-management commands
  • docs, examples, changelog, and documented example tests

Closes #1031.

Review Fixes Folded In

  • Avoids respawning the active pane running tmuxp load --here.
  • Runs shell_command_after before synchronized panes are enabled.
  • Validates tmuxp delete targets before unlinking files.
  • Lets lifecycle hooks run without the previous undocumented timeout.
  • Normalizes --here outside tmux before existing-session handling.
  • Expands workspace-level config fallback paths before Server creation, including ./tmux.conf relative to the workspace file and ~/tmux.conf via HOME.

Parity Check

The final tree matches the original parity branch except for the intentional workspace config path-expansion fix and its regression coverage:

  • src/tmuxp/cli/load.py
  • tests/cli/test_load.py

Verification

Run before each commit and again at branch tip:

$ unset NO_COLOR; rm -rf docs/_build; uv run ruff check . --fix --show-fixes; uv run ruff format .; uv run mypy .; uv run py.test --reruns 0 -vvv; just build-docs;

Final branch-tip results:

  • uv run ruff check . --fix --show-fixes: all checks passed
  • uv run ruff format .: 144 files left unchanged
  • uv run mypy .: success, no issues in 144 source files
  • uv run py.test --reruns 0 -vvv: 1038 passed, 2 skipped
  • just build-docs: build succeeded with 76 existing warnings

NO_COLOR was unset for the gates because this local shell exports NO_COLOR=1, while existing color tests assert ANSI output in forced-color cases.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@codecov

codecov Bot commented Jun 6, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 88.93871% with 74 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.36%. Comparing base (98af6d1) to head (ad30532).
⚠️ Report is 36 commits behind head on master.

Files with missing lines Patch % Lines
src/tmuxp/cli/load.py 75.21% 23 Missing and 6 partials ⚠️
src/tmuxp/workspace/builder/classic.py 86.88% 9 Missing and 7 partials ⚠️
src/tmuxp/workspace/importers.py 90.90% 3 Missing and 10 partials ⚠️
src/tmuxp/cli/copy.py 87.80% 3 Missing and 2 partials ⚠️
src/tmuxp/cli/delete.py 92.10% 2 Missing and 1 partial ⚠️
src/tmuxp/util.py 90.32% 1 Missing and 2 partials ⚠️
src/tmuxp/cli/import_config.py 90.47% 2 Missing ⚠️
src/tmuxp/cli/new.py 96.29% 1 Missing and 1 partial ⚠️
src/tmuxp/workspace/loader.py 97.95% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1046      +/-   ##
==========================================
+ Coverage   82.55%   84.36%   +1.81%     
==========================================
  Files          31       35       +4     
  Lines        2768     3346     +578     
  Branches      518      663     +145     
==========================================
+ Hits         2285     2823     +538     
- Misses        346      361      +15     
- Partials      137      162      +25     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@tony
tony force-pushed the parity-recut branch 2 times, most recently from dfaac96 to 4e9116c Compare June 7, 2026 11:46
@tony
tony force-pushed the parity-recut branch 3 times, most recently from 8c05c5d to e97cb73 Compare July 4, 2026 15:46
@tony
tony force-pushed the master branch from 63172d2 to eeb6912 Compare July 25, 2026 17:00
@tony
tony force-pushed the parity-recut branch from e97cb73 to a279825 Compare October 24, 2026 10:01
@tony
feat: tmuxinator/teamocil feature parity
ad30532
why: tmuxp lacked several tmuxinator and teamocil workflows, so configs
from those tools lost behavior on import and users missed the lifecycle
and session-management commands they relied on.

what:
- Add session lifecycle commands: tmuxp stop / new / copy / delete.
- Add project lifecycle hooks: on_project_start / restart / exit / stop.
- Add {{ variable }} config templating, filled via --set at load time.
- Add pane titles and window keys (synchronize, shell_command_after,
  clear).
- Add tmuxp load flags: --here, --no-shell-command-before, --debug.
- Broaden tmuxinator/teamocil imports: hooks, named panes, startup
  focus, synchronized windows, tmux CLI args, teamocil v1.x format.
- Extend the builder protocol build() with here= for current-window
  loads so all builders share the contract.
@tony
tony force-pushed the parity-recut branch from a279825 to ad30532 Compare October 24, 2026 10:37

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

here mode level 1: match teamocil — use set_environment + respawn-pane, keep send_keys cd only

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@tony
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.