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

This commit is contained in:
Nicholas Marriott 2013-02-21 19:44:27 +00:00
parent 8c50f625b0
commit 374dae6635
2 changed files with 61 additions and 8 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 = osdep_get_cwd(wp->fd)) != NULL) if ((cwd = osdep_get_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

21
tmux.1
View File

@ -2985,6 +2985,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"
@ -3001,16 +3004,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"
@ -3018,6 +3032,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"
@ -3037,6 +3055,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