id = "smug" name = "Smug" homepage = "https://github.com/ivaaaan/smug" description = "Session manager and task runner for tmux." executables = ["smug"] [dotfiles] # https://github.com/ivaaaan/smug#configuration: YAML project files are stored # under ~/.config/smug; .smug.yml in a project directory is an explicit local # override. The directory also receives the debug log, which is not config. paths = ["[configHome]/smug/"] exclude = [ "[configHome]/smug/smug.log", ] secret = [] side_effect = false [commands] format = 1 label = "Smug" description = "Start or stop a tmux session from a project file. Creating, editing and printing projects, and custom ${variable} settings, are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.subcommand]] path = ["start"] label = "Start a session" description = "Start a project from ~/.config/smug or a custom file." [[commands.subcommand.source]] id = "smug-readme" kind = "manual" url = "https://github.com/ivaaaan/smug/blob/master/README.md" revision = "master README" evidence = '''smug [] [-f, --file ] [--worktree ] [-w, --windows ]... [-a, --attach] [-d, --debug] -f, --file A custom path to a config file --worktree Use the git worktree (by branch or directory name) as the session root -w, --windows List of windows to start. -a, --attach Force switch client for a session -i, --inside-current-session Create all windows inside current session -d, --debug Print all commands to ~/.config/smug/smug.log --detach Detach session. The same as -d flag in the tmux smug start project smug stop project''' [[commands.subcommand.field]] id = "project" label = "Project" type = "string" position = 0 sources = ["smug-readme"] [[commands.subcommand.field]] id = "file" label = "Config file" type = "path" option = ["--file", "-f"] path = { kind = "file", role = "input" } sources = ["smug-readme"] [[commands.subcommand.field]] id = "windows" label = "Only these windows" type = "string" option = ["--windows", "-w"] multiple = true sources = ["smug-readme"] [[commands.subcommand.field]] id = "worktree" label = "Git worktree (branch or directory)" type = "string" option = ["--worktree"] sources = ["smug-readme"] [[commands.subcommand.field]] id = "attach" label = "Force switch client" type = "boolean" option = ["--attach", "-a"] sources = ["smug-readme"] [[commands.subcommand.field]] id = "detach" label = "Detach session" type = "boolean" option = ["--detach"] sources = ["smug-readme"] [[commands.subcommand.field]] id = "inside" label = "Create windows inside current session" type = "boolean" option = ["--inside-current-session", "-i"] sources = ["smug-readme"] [[commands.subcommand.field]] id = "debug" label = "Log commands to smug.log" type = "boolean" option = ["--debug", "-d"] sources = ["smug-readme"] [[commands.subcommand.task]] id = "start" label = "Start a project" fields = ["project", "windows"] required = ["project"] [[commands.subcommand.task]] id = "worktree" label = "Start in a worktree" fields = ["project", "worktree"] required = ["project", "worktree"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["project", "file", "windows", "worktree", "attach"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["detach", "inside", "debug"] [[commands.subcommand]] path = ["stop"] label = "Stop a session" description = "Stop a project session, or only some windows." [[commands.subcommand.source]] id = "smug-readme" kind = "manual" url = "https://github.com/ivaaaan/smug/blob/master/README.md" revision = "master README" evidence = '''smug [] [-f, --file ] [--worktree ] [-w, --windows ]... [-a, --attach] [-d, --debug] -f, --file A custom path to a config file --worktree Use the git worktree (by branch or directory name) as the session root -w, --windows List of windows to start. -a, --attach Force switch client for a session -i, --inside-current-session Create all windows inside current session -d, --debug Print all commands to ~/.config/smug/smug.log --detach Detach session. The same as -d flag in the tmux smug start project smug stop project''' [[commands.subcommand.field]] id = "project" label = "Project" type = "string" position = 0 sources = ["smug-readme"] [[commands.subcommand.field]] id = "file" label = "Config file" type = "path" option = ["--file", "-f"] path = { kind = "file", role = "input" } sources = ["smug-readme"] [[commands.subcommand.field]] id = "windows" label = "Only these windows" type = "string" option = ["--windows", "-w"] multiple = true sources = ["smug-readme"] [[commands.subcommand.task]] id = "stop" label = "Stop a project" fields = ["project"] required = ["project"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["project", "file", "windows"]