joshmedeski / sesh

Smart session manager for the terminal
MIT License
699 stars 41 forks source link

Built-in Window and Pane management #198

Closed albertilagan closed 4 days ago

albertilagan commented 2 weeks ago

What would you like sesh to do?

I saw we integrating a bunch of 3rd party tools like tmuxinator, tmuxp, was wondering if we should consider having it built-in,

Why: mix dependencies, e.g tmuxinator (ruby), tmuxp (python), sesh (go), I tried looking into tmuxifier which is just a bunch of sesh script but for some reason I'm getting some weird behaviour

sesh.toml

[[session]]
name = "monorepo"
path = "~/github/monorepo"
# if not available, use default layout,
# if default layout is not available, ignore
layout = "custom-monorepo-layout"

[default_session]
# if not available, use default layout,
# if default layout is not available, ignore
layout = "custom-layout"

layouts/custom-monorepo-layout.yaml

windows:
  - name: editor
    panes:
      - cmd: nvim
  - name: logs
    orientation: horizontal # horizontal or vertical
    panes:
      - name: frontend
        cmd: npm run dev
        path: apps/frontend # optional, defaults to current directory
        size: .8 # 80%, or 120 for fixed size
      - name: backend
        cmd: npm run dev
        path: apps/backend
joshmedeski commented 4 days ago

201 recently suggested a [[session.window]] pattern to extend the current configuration pattern for sesh, I think it's worth exploring soon!