mirror of
https://github.com/tmux/tmux.git
synced 2026-10-12 05:34:24 +00:00
Add pane_private_modes format with list of DEC private modes, from
George Nachman.
This commit is contained in:
59
format.c
59
format.c
@@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: format.c,v 1.411 2026/08/05 07:27:45 nicm Exp $ */
|
/* $OpenBSD: format.c,v 1.412 2026/08/05 07:31:08 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
|
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
@@ -2087,6 +2087,60 @@ format_cb_synchronized_output_flag(struct format_tree *ft)
|
|||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Callback for pane_private_modes. */
|
||||||
|
static void *
|
||||||
|
format_cb_pane_private_modes(struct format_tree *ft)
|
||||||
|
{
|
||||||
|
static const struct {
|
||||||
|
int mode;
|
||||||
|
int number;
|
||||||
|
} table[] = {
|
||||||
|
{ MODE_KCURSOR, 1 }, /* DECCKM */
|
||||||
|
{ MODE_ORIGIN, 6 }, /* DECOM */
|
||||||
|
{ MODE_WRAP, 7 }, /* DECAWM */
|
||||||
|
{ MODE_CURSOR_BLINKING, 12 }, /* cursor blinking */
|
||||||
|
{ MODE_CURSOR, 25 }, /* DECTCEM */
|
||||||
|
{ MODE_MOUSE_STANDARD, 1000 }, /* mouse normal tracking */
|
||||||
|
{ MODE_MOUSE_BUTTON, 1002 }, /* mouse button tracking */
|
||||||
|
{ MODE_MOUSE_ALL, 1003 }, /* mouse any tracking */
|
||||||
|
{ MODE_FOCUSON, 1004 }, /* focus reporting */
|
||||||
|
{ MODE_MOUSE_UTF8, 1005 }, /* mouse: UTF-8 */
|
||||||
|
{ MODE_MOUSE_SGR, 1006 }, /* mouse: SGR */
|
||||||
|
{ MODE_BRACKETPASTE, 2004 }, /* bracketed paste */
|
||||||
|
{ MODE_SYNC, 2026 }, /* synchronized output */
|
||||||
|
{ MODE_THEME_UPDATES, 2031 }, /* theme update notifications */
|
||||||
|
};
|
||||||
|
int mode;
|
||||||
|
char *value = NULL, *tmp;
|
||||||
|
u_int i;
|
||||||
|
|
||||||
|
if (ft->wp == NULL)
|
||||||
|
return (NULL);
|
||||||
|
mode = ft->wp->base.mode;
|
||||||
|
|
||||||
|
for (i = 0; i < nitems(table); i++) {
|
||||||
|
if (~mode & table[i].mode)
|
||||||
|
continue;
|
||||||
|
/*
|
||||||
|
* Only report cursor blinking when set by the application, not
|
||||||
|
* when it comes from the cursor-style option.
|
||||||
|
*/
|
||||||
|
if (table[i].mode == MODE_CURSOR_BLINKING &&
|
||||||
|
(~mode & MODE_CURSOR_BLINKING_SET))
|
||||||
|
continue;
|
||||||
|
if (value == NULL)
|
||||||
|
xasprintf(&value, "%d", table[i].number);
|
||||||
|
else {
|
||||||
|
xasprintf(&tmp, "%s,%d", value, table[i].number);
|
||||||
|
free(value);
|
||||||
|
value = tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (value == NULL)
|
||||||
|
return (xstrdup(""));
|
||||||
|
return (value);
|
||||||
|
}
|
||||||
|
|
||||||
/* Callback for pane_active. */
|
/* Callback for pane_active. */
|
||||||
static void *
|
static void *
|
||||||
format_cb_pane_active(struct format_tree *ft)
|
format_cb_pane_active(struct format_tree *ft)
|
||||||
@@ -3795,6 +3849,9 @@ static const struct format_table_entry format_table[] = {
|
|||||||
{ "pane_pipe_pid", FORMAT_TABLE_STRING,
|
{ "pane_pipe_pid", FORMAT_TABLE_STRING,
|
||||||
format_cb_pane_pipe_pid
|
format_cb_pane_pipe_pid
|
||||||
},
|
},
|
||||||
|
{ "pane_private_modes", FORMAT_TABLE_STRING,
|
||||||
|
format_cb_pane_private_modes
|
||||||
|
},
|
||||||
{ "pane_right", FORMAT_TABLE_STRING,
|
{ "pane_right", FORMAT_TABLE_STRING,
|
||||||
format_cb_pane_right
|
format_cb_pane_right
|
||||||
},
|
},
|
||||||
|
|||||||
5
tmux.1
5
tmux.1
@@ -1,4 +1,4 @@
|
|||||||
.\" $OpenBSD: tmux.1,v 1.1152 2026/07/29 08:58:33 nicm Exp $
|
.\" $OpenBSD: tmux.1,v 1.1153 2026/08/05 07:31:08 nicm Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
.\"
|
.\"
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||||
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: July 29 2026 $
|
.Dd $Mdocdate: August 5 2026 $
|
||||||
.Dt TMUX 1
|
.Dt TMUX 1
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -7395,6 +7395,7 @@ The following variables are available, where appropriate:
|
|||||||
.It Li "pane_pid" Ta "" Ta "PID of first process in pane"
|
.It Li "pane_pid" Ta "" Ta "PID of first process in pane"
|
||||||
.It Li "pane_pipe" Ta "" Ta "1 if pane is being piped"
|
.It Li "pane_pipe" Ta "" Ta "1 if pane is being piped"
|
||||||
.It Li "pane_pipe_pid" Ta "" Ta "PID of pipe process, if any"
|
.It Li "pane_pipe_pid" Ta "" Ta "PID of pipe process, if any"
|
||||||
|
.It Li "pane_private_modes" Ta "" Ta "List of enabled DECSET private modes"
|
||||||
.It Li "pane_pb_state" Ta "" Ta "Pane progress bar state, one of hidden, normal, error, indeterminate, paused (can be set by application)"
|
.It Li "pane_pb_state" Ta "" Ta "Pane progress bar state, one of hidden, normal, error, indeterminate, paused (can be set by application)"
|
||||||
.It Li "pane_pb_progress" Ta "" Ta "Pane progress bar progress percentage (can be set by application)"
|
.It Li "pane_pb_progress" Ta "" Ta "Pane progress bar progress percentage (can be set by application)"
|
||||||
.It Li "pane_right" Ta "" Ta "Right of pane"
|
.It Li "pane_right" Ta "" Ta "Right of pane"
|
||||||
|
|||||||
Reference in New Issue
Block a user