tmux_skill
- Shell
0
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill trentshaines/dotfiles --skill tmux- SKILL.md6.5 KB
Overview
This skill helps you manage tmux sessions, tmuxinator templates, and sesh-based session switching. It provides practical guidance for creating, attaching, renaming, and laying out windows and panes so you can keep terminal work organized and reproducible. Use it to automate project sessions, admin dashboards, and developer workflows.
How this skill works
The skill inspects tmuxinator templates (/.config/tmuxinator/*.yml), tmux configuration (/.tmux.conf), and active sessions reported by tmux (tmux ls) or sesh (sesh list). It explains how ts (a session selector) combines templates, a 'home' option, and active sessions via fzf to attach or start sessions. It also describes shell helpers (tnw, tns, t, ta, etc.) and the critical 1-based pane indexing used by the configuration.
When to use it
- When you need to create or start a reproducible project session with tmuxinator.
- When you want to attach to or switch between active tmux sessions quickly with fzf/sesh.
- When you need to create a standard multi-pane window (editor, shell, assistant) rapidly.
- When building or troubleshooting tmux layouts and pane sizing for consistent workspaces.
- When setting up auto-start behavior for a default "home" session on shell startup.
Best practices
- Use fixed names (name: admin) for utility sessions and dynamic naming (<%= File.basename(...) %>) for project sessions.
- Respect 1-based pane indexing (pane 1 is the first); use prefix + q to reveal pane numbers visually.
- Keep window layouts simple (2–3 panes) for usability and predictable resizing.
- Put startup commands in on_project_start (e.g., tmux resize-pane) to enforce pane sizes.
- Test new templates with tmuxinator start name and restart sessions if layout behaves oddly.
Example use cases
- Start a development workspace: tmuxinator start default ~/git/myproject creates a named project session and opens nvim in the main pane.
- Open a monitoring console: tmuxinator start admin launches a fixed "admin" session with btop and two terminals.
- Quickly switch sessions: run ts to fzf-select a template, home, or an active session and attach or start accordingly.
- Create a 3-pane window in the current session: run tnw or use prefix + N to get nvim, a terminal, and an assistant pane.
- Bootstrap a new git project and session: tns myproject creates the repo and opens a tmuxinator session using the default or specified template.
FAQ
The configuration enforces 1-based indexing (base-index and pane-base-index set to 1), so pane targets and scripts use 1 as the first pane.
A template name appears in fzf but the session name is different. Why?
Template filenames show in the selector, but the actual tmux session name comes from the name: field inside the YAML.
How does ts decide to attach or create a session?
ts lists active sessions and templates; selecting an active session attaches via sesh connect, selecting a template starts tmuxinator, otherwise it starts the default template with the chosen name.