iterm2-layout

iTerm2 Layout Configuration

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "iterm2-layout" with this command: npx skills add terrylica/cc-skills/terrylica-cc-skills-iterm2-layout

iTerm2 Layout Configuration

Configure iTerm2 workspace layouts with proper separation of concerns: private paths in TOML config, publishable code in Python script.

When to Use This Skill

Use this skill when:

  • Configuring iTerm2 workspace layouts

  • Adding, removing, or modifying workspace tabs

  • Setting up AutoLaunch scripts for iTerm2

  • Configuring git worktree tab auto-discovery

Configuration Overview

File Locations

File Location Purpose

Config (private) ~/.config/iterm2/layout.toml

User's workspace paths

Script (public) ~/scripts/iterm2/default-layout.py

Layout logic

Template ~/scripts/iterm2/layout.example.toml

Example config

Config File Format

~/.config/iterm2/layout.toml

[layout] left_pane_ratio = 0.20 # 0.0 to 1.0 settle_time = 0.3 # seconds

[commands] left = "br --sort-by-type-dirs-first" right = "zsh"

[worktrees]

Optional: Enable git worktree discovery

main_repo_root = "~/projects/my-project"

worktree_pattern = "my-project.worktree-*"

[[tabs]] name = "home" dir = "~"

[[tabs]] name = "projects" dir = "~/projects"

[[tabs]] dir = "~/Documents" # name defaults to "Documents"

Setup Instructions

First-Time Setup

/usr/bin/env bash << 'CONFIG_EOF'

1. Ensure config directory exists

mkdir -p ~/.config/iterm2

2. Copy template

cp ~/scripts/iterm2/layout.example.toml ~/.config/iterm2/layout.toml

3. Edit with your workspace paths

Add [[tabs]] entries for each workspace

4. Restart iTerm2 to test

CONFIG_EOF

Adding a New Tab

Add a [[tabs]] entry to ~/.config/iterm2/layout.toml :

[[tabs]] name = "MyProject" # Tab display name (optional) dir = "~/path/to/project"

Name field:

  • If omitted, uses directory basename

  • Custom names useful for abbreviations (e.g., "AF" instead of "alpha-forge")

Removing a Tab

Delete or comment out the [[tabs]] entry:

[[tabs]]

name = "OldProject"

dir = "~/old/project"

Configuration Schema

Section Key Type Default Description

[layout]

left_pane_ratio

float 0.20 Left pane width (0.0-1.0)

[layout]

settle_time

float 0.3 Wait after cd (seconds)

[commands]

left

string br... Left pane command

[commands]

right

string zsh Right pane command

[worktrees]

alpha_forge_root

string null Worktree root (optional)

[worktrees]

worktree_pattern

string .worktree-

Glob pattern

[[tabs]]

dir

string required Directory path

[[tabs]]

name

string basename Tab display name

Troubleshooting

Error: "Layout configuration not found"

Symptom: Script Console shows error about missing config

Solution:

Create config from template

cp ~/scripts/iterm2/layout.example.toml ~/.config/iterm2/layout.toml

Error: "Invalid TOML syntax"

Symptom: Script Console shows TOML parse error

Solution:

  • Check TOML syntax (quotes, brackets)

  • Validate with: python3 -c "import tomllib; tomllib.load(open('~/.config/iterm2/layout.toml', 'rb'))"

Tabs Not Appearing

Symptom: iTerm2 opens but no custom tabs created

Causes:

  • No [[tabs]] entries in config

  • Config file in wrong location

  • Script not in AutoLaunch

Solution:

Verify config location

ls -la ~/.config/iterm2/layout.toml

Verify AutoLaunch symlink

ls -la ~/Library/Application\ Support/iTerm2/Scripts/AutoLaunch/

Check Script Console for errors

iTerm2 > Scripts > Manage > Console

Directory Does Not Exist Warning

Symptom: Tab skipped with warning in Script Console

Solution: Verify directory path exists or create it:

mkdir -p ~/path/to/missing/directory

Error Handling Behavior

The script uses "print + early return" pattern:

  • Missing config: Logs instructions to Script Console, exits cleanly

  • Invalid TOML: Logs parse error with details, exits cleanly

  • Missing directory: Logs warning, skips tab, continues with others

Viewing errors: Scripts > Manage > Console in iTerm2

Git Worktree Detection (Optional)

Enable dynamic tab creation for git worktrees:

[worktrees] main_repo_root = "~/projects/my-project" worktree_pattern = "my-project.worktree-*"

How it works:

  • Script globs for ~/projects/my-project.worktree-* directories

  • Validates each against git worktree list

  • Generates acronym-based tab names (e.g., AF-ssv for sharpe-statistical-validation )

  • Inserts worktree tabs after main project tab

References

  • iTerm2 Python API

  • TOML Specification

  • XDG Base Directory Spec

  • ADR: iTerm2 Layout Config

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

pandoc-pdf-generation

No summary provided by upstream source.

Repository SourceNeeds Review
General

mql5-indicator-patterns

No summary provided by upstream source.

Repository SourceNeeds Review
General

mise-tasks

No summary provided by upstream source.

Repository SourceNeeds Review