UNPKG

vde-layout

Version:

Terminal multiplexer layout management tool for VDE (Vibe Coding Development Environment)

195 lines (144 loc) 4.45 kB
# vde-layout A CLI tool for easily reproducing tmux pane layouts ## Overview vde-layout is a tool that allows you to define tmux pane layouts in YAML configuration files and reproduce them with a single command. You can manage multiple layouts as presets for different purposes such as development environments, monitoring, and test execution. ## Features - Define layouts in YAML format - Reproduce layouts with a single command - Manage presets for different use cases - Flexible pane settings (commands, working directories, environment variables, etc.) - Freely combine horizontal and vertical splits ## Installation ```bash npm install -g vde-layout ``` or ```bash pnpm add -g vde-layout ``` or ```bash bun add -g vde-layout ``` ## Usage ### Creating a Configuration File Create a configuration file at `~/.config/vde/layout.yml`: ```yaml presets: # Development environment layout dev: name: Development Environment description: 3-pane configuration with editor, server, and log monitoring layout: type: horizontal ratio: [3, 2] # 60:40 ratio (automatically normalized) panes: - name: editor command: nvim focus: true - type: vertical ratio: [7, 3] # 70:30 ratio panes: - name: server command: npm run dev - name: logs command: tail -f logs/app.log # Simple 2-pane layout simple: name: Simple Layout description: 2-pane configuration with editor and terminal layout: type: vertical ratio: [7, 3] # 70:30 ratio panes: - name: editor command: vim - name: terminal # Omitting command launches the default shell # Single pane preset (without layout) monitor: name: System Monitor description: System monitoring tool command: htop ``` ### Commands #### List Presets ```bash vde-layout list ``` #### Execute a Preset ```bash # Execute a specific preset vde-layout dev # Execute the default preset vde-layout ``` #### Options ```bash # dry-run mode (doesn't actually execute) vde-layout dev --dry-run # Show verbose logs vde-layout dev --verbose # Show help vde-layout --help ``` ## Configuration File Structure ### Presets Each preset is defined as an object with the following fields: ```yaml presets: preset-name: name: "Preset Name" # Required description: "Description" # Optional layout: # Optional (single pane when omitted) # Layout definition command: "Command" # Optional (only when layout is absent) ``` ### Layout Definition Layouts define horizontal or vertical splits: ```yaml layout: type: horizontal # horizontal or vertical ratio: [3, 2] # Split ratio (automatically normalized) panes: # Array of panes - name: "Pane Name" # Required (for pane identification) command: "Command" # Optional (default shell when omitted) cwd: "~/project" # Working directory (optional) env: # Environment variables (optional) NODE_ENV: development focus: true # Focus setting (optional) # Or nested layout - type: vertical ratio: [1, 1] panes: - name: "Child Pane 1" - name: "Child Pane 2" ``` ### Automatic Ratio Normalization You can specify any positive numbers for ratio, which are automatically normalized to 100%: - `[1, 1]` `[50, 50]` (50% each) - `[2, 3]` `[40, 60]` (40%, 60%) - `[1, 2, 1]` `[25, 50, 25]` (25%, 50%, 25%) ### Single Pane Presets When layout is omitted, it operates as a single pane: ```yaml presets: simple-command: name: "Single Command" command: "htop" # Execute a single command default-shell: name: "Default Shell" # Omitting command also launches the default shell ``` ### Environment Variables The configuration file location can be changed using environment variables: - `XDG_CONFIG_HOME`: Follows the XDG Base Directory specification - `VDE_CONFIG_PATH`: Directly specify the configuration file directory ## Requirements - Node.js 22 or higher - tmux 2.0 or higher - Must be executed within a tmux session ## License MIT ## Contributing Please submit bug reports and feature requests to [GitHub Issues](https://github.com/yuki-yano/vde-layout/issues).