id = "itermocil" name = "itermocil" homepage = "https://github.com/TomAnthony/itermocil" description = "Create pre-defined window/pane layouts and run commands in iTerm." executables = ["itermocil"] platforms = ["macos"] [dotfiles] # README: layouts are YAML files kept in ~/.itermocil, created there by # `itermocil --edit ` and run by `itermocil `, which opens # ~/.itermocil/.yml. It drives iTerm2, hence macOS only. # # The README also says "You can also use ~/.teamocil as your directory, if # you're a teamocil user" — that is teamocil's own directory rather than a # second location of itermocil's, so it is left for that tool's entry and not # claimed here. paths = ["~/.itermocil/"] # The layouts are not credentials, but each one is a list of shell commands # itermocil will run, so a consumer that content-scans should treat them the way # it treats a shell rc. secret = [] # No machine_lines: a layout's windows, panes and commands are the whole file # and all of it is meant to travel. A layout can name a project directory that # only exists on one machine, but that is the line the user wrote the layout # for, not a per-machine detail to leave behind. [commands] format = 1 label = "Open a layout" description = "Open an iTerm2 window layout by name or from a YAML file. Run without a layout name to use ./iTermocil.yml." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.source]] id = "readme" kind = "manual" url = "https://github.com/TomAnthony/itermocil/blob/master/README.md" revision = "README" evidence = """ $ itermocil [options] | `--list` | Lists all available layouts in `~/.itermocil` | `--layout` | Takes a custom file path to a YAML layout file instead of `[layout-name]` | `--here` | Uses the current window as the layout's first window | `--edit` | Edit the layout file in either `$EDITOR` or your preferred GUI editor """ [[commands.field]] id = "name" label = "Layout name" description = "A layout in ~/.itermocil." type = "string" position = 0 sources = ["readme"] [[commands.field]] id = "layout" label = "Layout file" description = "Use this YAML file instead of a named layout." type = "path" path = { kind = "file", role = "input" } option = ["--layout"] sources = ["readme"] [[commands.field]] id = "here" label = "Use current window" type = "boolean" option = ["--here"] sources = ["readme"] [[commands.field]] id = "edit" label = "Edit instead of open" type = "boolean" option = ["--edit"] sources = ["readme"] [[commands.field]] id = "list" label = "List layouts" type = "boolean" option = ["--list"] sources = ["readme"] [[commands.task]] id = "open" label = "Open a layout" fields = ["name", "here"] required = ["name"] [[commands.task]] id = "edit" label = "Edit a layout" set = { edit = [true] } lock = ["edit"] fields = ["name", "edit"] required = ["name"] [[commands.task]] id = "list" label = "List layouts" set = { list = [true] } lock = ["list"] fields = ["list"] required = [] [[commands.group]] id = "basic" label = "Basic" fields = ["name", "here", "edit", "list"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["layout"]