Add a load of miscellaneous pane formats, from George Nachman.

pull/1/head
Nicholas Marriott 2013-03-22 16:03:35 +00:00
parent eaaeb28cda
commit 702ab8bab0
2 changed files with 79 additions and 10 deletions

View File

@ -384,29 +384,63 @@ format_window_pane(struct format_tree *ft, struct window_pane *wp)
size += gl->cellsize * sizeof *gl->celldata; size += gl->cellsize * sizeof *gl->celldata;
} }
size += gd->hsize * sizeof *gd->linedata; size += gd->hsize * sizeof *gd->linedata;
format_add(ft, "history_size", "%u", gd->hsize);
format_add(ft, "history_limit", "%u", gd->hlimit);
format_add(ft, "history_bytes", "%llu", size);
if (window_pane_index(wp, &idx) != 0) if (window_pane_index(wp, &idx) != 0)
fatalx("index not found"); fatalx("index not found");
format_add(ft, "pane_index", "%u", idx);
format_add(ft, "pane_width", "%u", wp->sx); format_add(ft, "pane_width", "%u", wp->sx);
format_add(ft, "pane_height", "%u", wp->sy); format_add(ft, "pane_height", "%u", wp->sy);
format_add(ft, "pane_title", "%s", wp->base.title); format_add(ft, "pane_title", "%s", wp->base.title);
format_add(ft, "pane_index", "%u", idx);
format_add(ft, "history_size", "%u", gd->hsize);
format_add(ft, "history_limit", "%u", gd->hlimit);
format_add(ft, "history_bytes", "%llu", size);
format_add(ft, "pane_id", "%%%u", wp->id); format_add(ft, "pane_id", "%%%u", wp->id);
format_add(ft, "pane_active", "%d", wp == wp->window->active); format_add(ft, "pane_active", "%d", wp == wp->window->active);
format_add(ft, "pane_dead", "%d", wp->fd == -1); format_add(ft, "pane_dead", "%d", wp->fd == -1);
format_add(ft, "pane_in_mode", "%d", wp->screen != &wp->base);
if (wp->tty != NULL)
format_add(ft, "pane_tty", "%s", wp->tty);
format_add(ft, "pane_pid", "%ld", (long) wp->pid);
if (wp->cmd != NULL) if (wp->cmd != NULL)
format_add(ft, "pane_start_command", "%s", wp->cmd); format_add(ft, "pane_start_command", "%s", wp->cmd);
if (wp->cwd != NULL) if (wp->cwd != NULL)
format_add(ft, "pane_start_path", "%s", wp->cwd); format_add(ft, "pane_start_path", "%s", wp->cwd);
if ((cwd = get_proc_cwd(wp->fd)) != NULL) if ((cwd = get_proc_cwd(wp->fd)) != NULL)
format_add(ft, "pane_current_path", "%s", cwd); format_add(ft, "pane_current_path", "%s", cwd);
format_add(ft, "pane_pid", "%ld", (long) wp->pid);
if (wp->tty != NULL) format_add(ft, "cursor_x", "%d", wp->base.cx);
format_add(ft, "pane_tty", "%s", wp->tty); format_add(ft, "cursor_y", "%d", wp->base.cy);
format_add(ft, "scroll_region_upper", "%d", wp->base.rupper);
format_add(ft, "scroll_region_lower", "%d", wp->base.rlower);
format_add(ft, "saved_cursor_x", "%d", wp->ictx.old_cx);
format_add(ft, "saved_cursor_y", "%d", wp->ictx.old_cy);
format_add(ft, "alternate_on", "%d", wp->saved_grid ? 1 : 0);
format_add(ft, "alternate_saved_x", "%d", wp->saved_cx);
format_add(ft, "alternate_saved_y", "%d", wp->saved_cy);
format_add(ft, "cursor_flag", "%d",
!!(wp->base.mode & MODE_CURSOR));
format_add(ft, "insert_flag", "%d",
!!(wp->base.mode & MODE_INSERT));
format_add(ft, "keypad_cursor_flag", "%d",
!!(wp->base.mode & MODE_KCURSOR));
format_add(ft, "keypad_flag", "%d",
!!(wp->base.mode & MODE_KKEYPAD));
format_add(ft, "wrap_flag", "%d",
!!(wp->base.mode & MODE_WRAP));
format_add(ft, "mouse_standard_flag", "%d",
!!(wp->base.mode & MODE_MOUSE_STANDARD));
format_add(ft, "mouse_button_flag", "%d",
!!(wp->base.mode & MODE_MOUSE_BUTTON));
format_add(ft, "mouse_any_flag", "%d",
!!(wp->base.mode & MODE_MOUSE_ANY));
format_add(ft, "mouse_utf8_flag", "%d",
!!(wp->base.mode & MODE_MOUSE_UTF8));
} }
void void

41
tmux.1
View File

@ -850,7 +850,7 @@ The following keys are supported as appropriate for the mode:
.It Li "Start of line" Ta "0" Ta "C-a" .It Li "Start of line" Ta "0" Ta "C-a"
.It Li "Start selection" Ta "Space" Ta "C-Space" .It Li "Start selection" Ta "Space" Ta "C-Space"
.It Li "Top of history" Ta "g" Ta "M->" .It Li "Top of history" Ta "g" Ta "M->"
.It Li "Transpose chars" Ta "" Ta "C-t" .It Li "Transpose characters" Ta "" Ta "C-t"
.El .El
.Pp .Pp
The next and previous word keys use space and the The next and previous word keys use space and the
@ -912,6 +912,17 @@ command and keys modified or removed with
.Ic bind-key .Ic bind-key
and and
.Ic unbind-key . .Ic unbind-key .
One command in accepts an argument,
.Ic copy-pipe ,
which copies the selection and pipes it to a command.
For example the following will bind
.Ql C-q
to copy the selection into
.Pa /tmp
as well as the paste buffer:
.Bd -literal -offset indent
bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"
.Ed
.Pp .Pp
The paste buffer key pastes the first line from the top paste buffer on the The paste buffer key pastes the first line from the top paste buffer on the
stack. stack.
@ -1052,7 +1063,12 @@ is given, the output goes to stdout, otherwise to the buffer specified with
or a new buffer if omitted. or a new buffer if omitted.
If If
.Fl e .Fl e
is given, the output includes escape sequences for text and background attributes. is given, the output includes escape sequences for text and background
attributes.
.Fl C
also escapes non-printable characters as octal \\xxx.
.Fl J
joins wrapped lines.
.Pp .Pp
.Fl S .Fl S
and and
@ -2965,6 +2981,9 @@ if it is unattached.
The following variables are available, where appropriate: The following variables are available, where appropriate:
.Bl -column "session_created_string" "Replaced with" -offset indent .Bl -column "session_created_string" "Replaced with" -offset indent
.It Sy "Variable name" Ta Sy "Replaced with" .It Sy "Variable name" Ta Sy "Replaced with"
.It Li "alternate_on" Ta "If pane is in alternate screen"
.It Li "alternate_saved_x" Ta "Saved cursor X in alternate screen"
.It Li "alternate_saved_y" Ta "Saved cursor Y in alternate screen"
.It Li "buffer_sample" Ta "First 50 characters from the specified buffer" .It Li "buffer_sample" Ta "First 50 characters from the specified buffer"
.It Li "buffer_size" Ta "Size of the specified buffer in bytes" .It Li "buffer_size" Ta "Size of the specified buffer in bytes"
.It Li "client_activity" Ta "Integer time client last had activity" .It Li "client_activity" Ta "Integer time client last had activity"
@ -2981,16 +3000,27 @@ The following variables are available, where appropriate:
.It Li "client_tty" Ta "Pseudo terminal of client" .It Li "client_tty" Ta "Pseudo terminal of client"
.It Li "client_utf8" Ta "1 if client supports utf8" .It Li "client_utf8" Ta "1 if client supports utf8"
.It Li "client_width" Ta "Width of client" .It Li "client_width" Ta "Width of client"
.It Li "host" Ta "Hostname of local host" .It Li "cursor_flag" Ta "Pane cursor flag"
.It Li "cursor_x" Ta "Cursor X position in pane"
.It Li "cursor_y" Ta "Cursor Y position in pane"
.It Li "history_bytes" Ta "Number of bytes in window history" .It Li "history_bytes" Ta "Number of bytes in window history"
.It Li "history_limit" Ta "Maximum window history lines" .It Li "history_limit" Ta "Maximum window history lines"
.It Li "history_size" Ta "Size of history in bytes" .It Li "history_size" Ta "Size of history in bytes"
.It Li "host" Ta "Hostname of local host"
.It Li "insert_flag" Ta "Pane insert flag"
.It Li "keypad_cursor_flag" Ta "Pane keypad cursor flag"
.It Li "keypad_flag" Ta "Pane keypad flag"
.It Li "line" Ta "Line number in the list" .It Li "line" Ta "Line number in the list"
.It Li "mouse_any_flag" Ta "Pane mouse any flag"
.It Li "mouse_button_flag" Ta "Pane mouse button flag"
.It Li "mouse_standard_flag" Ta "Pane mouse standard flag"
.It Li "mouse_utf8_flag" Ta "Pane mouse UTF-8 flag"
.It Li "pane_active" Ta "1 if active pane" .It Li "pane_active" Ta "1 if active pane"
.It Li "pane_current_path" Ta "Current path if available" .It Li "pane_current_path" Ta "Current path if available"
.It Li "pane_dead" Ta "1 if pane is dead" .It Li "pane_dead" Ta "1 if pane is dead"
.It Li "pane_height" Ta "Height of pane" .It Li "pane_height" Ta "Height of pane"
.It Li "pane_id" Ta "Unique pane ID" .It Li "pane_id" Ta "Unique pane ID"
.It Li "pane_in_mode" Ta "If pane is in a mode"
.It Li "pane_index" Ta "Index of pane" .It Li "pane_index" Ta "Index of pane"
.It Li "pane_pid" Ta "PID of first process in pane" .It Li "pane_pid" Ta "PID of first process in pane"
.It Li "pane_start_command" Ta "Command pane started with" .It Li "pane_start_command" Ta "Command pane started with"
@ -2998,6 +3028,10 @@ The following variables are available, where appropriate:
.It Li "pane_title" Ta "Title of pane" .It Li "pane_title" Ta "Title of pane"
.It Li "pane_tty" Ta "Pseudo terminal of pane" .It Li "pane_tty" Ta "Pseudo terminal of pane"
.It Li "pane_width" Ta "Width of pane" .It Li "pane_width" Ta "Width of pane"
.It Li "saved_cursor_x" Ta "Saved cursor X in pane"
.It Li "saved_cursor_y" Ta "Saved cursor Y in pane"
.It Li "scroll_region_lower" Ta "Bottom of scroll region in pane"
.It Li "scroll_region_upper" Ta "Top of scroll region in pane"
.It Li "session_attached" Ta "1 if session attached" .It Li "session_attached" Ta "1 if session attached"
.It Li "session_created" Ta "Integer time session created" .It Li "session_created" Ta "Integer time session created"
.It Li "session_created_string" Ta "String time session created" .It Li "session_created_string" Ta "String time session created"
@ -3017,6 +3051,7 @@ The following variables are available, where appropriate:
.It Li "window_name" Ta "Name of window" .It Li "window_name" Ta "Name of window"
.It Li "window_panes" Ta "Number of panes in window" .It Li "window_panes" Ta "Number of panes in window"
.It Li "window_width" Ta "Width of window" .It Li "window_width" Ta "Width of window"
.It Li "wrap_flag" Ta "Pane wrap flag"
.El .El
.Sh NAMES AND TITLES .Sh NAMES AND TITLES
.Nm .Nm