Some checks failed
continuous-integration/drone/tag Build is failing
Replace machine-specific paths with generic examples.
219 lines
7.8 KiB
Plaintext
219 lines
7.8 KiB
Plaintext
# ============================================================================
|
|
# tmuxido - Global Configuration
|
|
# ============================================================================
|
|
# Location: ~/.config/tmuxido/tmuxido.toml
|
|
#
|
|
# This is the main configuration file that controls:
|
|
# 1. Where to search for projects
|
|
# 2. Caching behavior
|
|
# 3. Default session layout (used when projects don't have .tmuxido.toml)
|
|
#
|
|
# Compatible with any tmux base-index setting (0 or 1, auto-detected)
|
|
# ============================================================================
|
|
|
|
# ============================================================================
|
|
# PROJECT DISCOVERY
|
|
# ============================================================================
|
|
# Paths where tmuxido will search for git repositories
|
|
# Supports ~ for home directory expansion
|
|
|
|
paths = [
|
|
"~/Projects",
|
|
# "~/work",
|
|
# "~/opensource",
|
|
# "~/clients/company-name",
|
|
]
|
|
|
|
# Maximum directory depth to search for .git folders
|
|
# Higher values = slower scan, but finds deeply nested projects
|
|
# Lower values = faster scan, but might miss some projects
|
|
# Default: 5
|
|
max_depth = 5
|
|
|
|
# ============================================================================
|
|
# CACHING CONFIGURATION
|
|
# ============================================================================
|
|
# Caching dramatically speeds up subsequent runs by storing discovered projects
|
|
|
|
# Enable/disable project caching
|
|
# Default: true
|
|
cache_enabled = true
|
|
|
|
# How long (in hours) before cache is considered stale and refreshed
|
|
# Set lower if you frequently add new projects
|
|
# Set higher if your projects are stable
|
|
# Default: 24
|
|
cache_ttl_hours = 24
|
|
|
|
# Cache location: ~/.cache/tmuxido/projects.json
|
|
# Use --refresh flag to force cache update
|
|
# Use --cache-status to see cache information
|
|
|
|
# ============================================================================
|
|
# DEFAULT SESSION CONFIGURATION
|
|
# ============================================================================
|
|
# This configuration is used for projects that don't have their own
|
|
# .tmuxido.toml file in the project root.
|
|
#
|
|
# You can customize this to match your preferred workflow!
|
|
# ============================================================================
|
|
|
|
[default_session]
|
|
|
|
# --- OPTION 1: Simple two-window setup (CURRENT DEFAULT) ---
|
|
[[default_session.windows]]
|
|
name = "editor"
|
|
panes = []
|
|
|
|
[[default_session.windows]]
|
|
name = "terminal"
|
|
panes = []
|
|
|
|
# --- OPTION 2: Single window with nvim and terminal split ---
|
|
# Uncomment this and comment out Option 1 above
|
|
# [[default_session.windows]]
|
|
# name = "work"
|
|
# layout = "main-horizontal"
|
|
# panes = [
|
|
# "nvim .", # Main pane: Editor
|
|
# "clear", # Bottom left: Terminal
|
|
# "clear" # Bottom right: Terminal
|
|
# ]
|
|
|
|
# --- OPTION 3: Three-window workflow (code, run, git) ---
|
|
# Uncomment this and comment out Option 1 above
|
|
# [[default_session.windows]]
|
|
# name = "code"
|
|
# layout = "main-vertical"
|
|
# panes = ["nvim .", "clear"]
|
|
#
|
|
# [[default_session.windows]]
|
|
# name = "run"
|
|
# panes = []
|
|
#
|
|
# [[default_session.windows]]
|
|
# name = "git"
|
|
# panes = []
|
|
|
|
# --- OPTION 4: Full development setup ---
|
|
# Uncomment this and comment out Option 1 above
|
|
# [[default_session.windows]]
|
|
# name = "editor"
|
|
# layout = "main-horizontal"
|
|
# panes = ["nvim .", "clear", "clear"]
|
|
#
|
|
# [[default_session.windows]]
|
|
# name = "server"
|
|
# panes = []
|
|
#
|
|
# [[default_session.windows]]
|
|
# name = "logs"
|
|
# panes = []
|
|
#
|
|
# [[default_session.windows]]
|
|
# name = "git"
|
|
# panes = ["git status"]
|
|
|
|
# ============================================================================
|
|
# AVAILABLE LAYOUTS
|
|
# ============================================================================
|
|
# Use these layout values in your windows:
|
|
#
|
|
# main-horizontal: Main pane on top, others below
|
|
# ┌─────────────────────────────┐
|
|
# │ Main Pane │
|
|
# ├──────────────┬──────────────┤
|
|
# │ Pane 2 │ Pane 3 │
|
|
# └──────────────┴──────────────┘
|
|
#
|
|
# main-vertical: Main pane on left, others on right
|
|
# ┌──────────┬──────────┐
|
|
# │ │ Pane 2 │
|
|
# │ Main ├──────────┤
|
|
# │ Pane │ Pane 3 │
|
|
# └──────────┴──────────┘
|
|
#
|
|
# tiled: All panes in a grid
|
|
# ┌──────────┬──────────┐
|
|
# │ Pane 1 │ Pane 2 │
|
|
# ├──────────┼──────────┤
|
|
# │ Pane 3 │ Pane 4 │
|
|
# └──────────┴──────────┘
|
|
#
|
|
# even-horizontal: All panes in equal-width columns
|
|
# ┌────┬────┬────┬────┐
|
|
# │ P1 │ P2 │ P3 │ P4 │
|
|
# └────┴────┴────┴────┘
|
|
#
|
|
# even-vertical: All panes in equal-height rows
|
|
# ┌──────────────┐
|
|
# │ Pane 1 │
|
|
# ├──────────────┤
|
|
# │ Pane 2 │
|
|
# ├──────────────┤
|
|
# │ Pane 3 │
|
|
# └──────────────┘
|
|
|
|
# ============================================================================
|
|
# USAGE EXAMPLES
|
|
# ============================================================================
|
|
# Run without arguments (uses fzf to select project):
|
|
# $ tmuxido
|
|
#
|
|
# Open specific project directly:
|
|
# $ tmuxido /path/to/project
|
|
#
|
|
# Force refresh cache (after adding new projects):
|
|
# $ tmuxido --refresh
|
|
# $ tmuxido -r
|
|
#
|
|
# Check cache status:
|
|
# $ tmuxido --cache-status
|
|
#
|
|
# Show help:
|
|
# $ tmuxido --help
|
|
|
|
# ============================================================================
|
|
# PROJECT-SPECIFIC OVERRIDES
|
|
# ============================================================================
|
|
# To customize a specific project, create .tmuxido.toml in that
|
|
# project's root directory. See .tmuxido.toml.example for details.
|
|
#
|
|
# Hierarchy:
|
|
# 1. Project's .tmuxido.toml (highest priority)
|
|
# 2. Global [default_session] from this file (fallback)
|
|
|
|
# ============================================================================
|
|
# TIPS & BEST PRACTICES
|
|
# ============================================================================
|
|
# 1. Start with the simple Option 1 default, customize as you learn
|
|
# 2. Use project-specific configs for special projects (web apps, etc)
|
|
# 3. Set cache_ttl_hours lower (6-12) if you frequently add projects
|
|
# 4. Add multiple paths to organize personal vs work vs open-source
|
|
# 5. Use max_depth wisely - higher isn't always better (slower scans)
|
|
# 6. Run --cache-status to verify your settings are working
|
|
# 7. The tool auto-detects your tmux base-index (0 or 1), no config needed
|
|
# 8. Empty panes = shell in project directory (fastest to open)
|
|
# 9. Commands in panes run automatically when session is created
|
|
# 10. Use "clear" in panes for clean shells without running commands
|
|
|
|
# ============================================================================
|
|
# TROUBLESHOOTING
|
|
# ============================================================================
|
|
# Projects not showing up?
|
|
# - Check that paths exist and contain .git directories
|
|
# - Increase max_depth if projects are nested deeper
|
|
# - Run with --refresh to force cache update
|
|
#
|
|
# Cache seems stale?
|
|
# - Run tmuxido --refresh
|
|
# - Lower cache_ttl_hours value
|
|
#
|
|
# Windows/panes not created correctly?
|
|
# - Tool auto-detects base-index, but verify with: tmux show-options -g base-index
|
|
# - Check TOML syntax in default_session or project config
|
|
#
|
|
# Want to reset to defaults?
|
|
# - Delete this file, it will be recreated on next run
|
|
# - Or copy from: /path/to/repo/tmuxido.toml.example
|