diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2010-06-29 03:30:13 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2010-06-29 03:30:13 +0000 |
commit | 552c9cd83f7207759b41947f63ada828683b7892 (patch) | |
tree | 432a775eabec3af116d70a5d6bff2fa2d88cd470 /cmd-select-layout.c | |
parent | 76bbdeb586ad93cfb16bd12db865b4c672a9168e (diff) | |
download | rtmux-552c9cd83f7207759b41947f63ada828683b7892.tar.gz rtmux-552c9cd83f7207759b41947f63ada828683b7892.tar.bz2 rtmux-552c9cd83f7207759b41947f63ada828683b7892.zip |
Custom layouts. list-windows command displays the layout as a string (such as
"bb62,159x48,0,0{79x48,0,0,79x48,80,0}") and it can be applied to another
window (with the same number of panes or fewer) using select-layout.
Diffstat (limited to 'cmd-select-layout.c')
-rw-r--r-- | cmd-select-layout.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/cmd-select-layout.c b/cmd-select-layout.c index fd66578c..70f7125f 100644 --- a/cmd-select-layout.c +++ b/cmd-select-layout.c @@ -79,13 +79,16 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx) layout = wl->window->lastlayout; if (layout == -1) return (0); - } else if ((layout = layout_set_lookup(data->arg)) == -1) { - ctx->error(ctx, "unknown layout or ambiguous: %s", data->arg); - return (-1); + } else if ((layout = layout_set_lookup(data->arg)) != -1) { + layout = layout_set_select(wl->window, layout); + ctx->info(ctx, "arranging in: %s", layout_set_name(layout)); + } else { + if (layout_parse(wl->window, data->arg) == -1) { + ctx->error(ctx, "can't set layout: %s", data->arg); + return (-1); + } + ctx->info(ctx, "arranging in: %s", data->arg); } - layout = layout_set_select(wl->window, layout); - ctx->info(ctx, "arranging in: %s", layout_set_name(layout)); - return (0); } |