mirror of
https://github.com/tmux/tmux.git
synced 2025-01-05 23:38:48 +00:00
Add a session_alerts format which is a list of all the alerts in the
current session in symbolic form (something like "0!,4~,5!"). Use this in the default set-titles-string. Prompted by a request from Jan ONDREJ.
This commit is contained in:
parent
e958db09a7
commit
ec34439f9c
20
format.c
20
format.c
@ -494,6 +494,8 @@ format_defaults_session(struct format_tree *ft, struct session *s)
|
||||
{
|
||||
struct session_group *sg;
|
||||
time_t t;
|
||||
struct winlink *wl;
|
||||
char alerts[256], tmp[16];
|
||||
|
||||
ft->s = s;
|
||||
|
||||
@ -518,6 +520,24 @@ format_defaults_session(struct format_tree *ft, struct session *s)
|
||||
|
||||
format_add(ft, "session_attached", "%u", s->attached);
|
||||
format_add(ft, "session_many_attached", "%d", s->attached > 1);
|
||||
|
||||
*alerts = '\0';
|
||||
RB_FOREACH (wl, winlinks, &s->windows) {
|
||||
if ((wl->flags & WINLINK_ALERTFLAGS) == 0)
|
||||
continue;
|
||||
snprintf(tmp, sizeof tmp, "%u", wl->idx);
|
||||
|
||||
if (*alerts != '\0')
|
||||
strlcat(alerts, ",", sizeof alerts);
|
||||
strlcat(alerts, tmp, sizeof alerts);
|
||||
if (wl->flags & WINLINK_ACTIVITY)
|
||||
strlcat(alerts, "#", sizeof alerts);
|
||||
if (wl->flags & WINLINK_BELL)
|
||||
strlcat(alerts, "!", sizeof alerts);
|
||||
if (wl->flags & WINLINK_SILENCE)
|
||||
strlcat(alerts, "~", sizeof alerts);
|
||||
}
|
||||
format_add(ft, "session_alerts", "%s", alerts);
|
||||
}
|
||||
|
||||
/* Set default format keys for a client. */
|
||||
|
@ -296,7 +296,7 @@ const struct options_table_entry session_options_table[] = {
|
||||
|
||||
{ .name = "set-titles-string",
|
||||
.type = OPTIONS_TABLE_STRING,
|
||||
.default_str = "#S:#I:#W - \"#T\""
|
||||
.default_str = "#S:#I:#W - \"#T\" #{session_alerts}"
|
||||
},
|
||||
|
||||
{ .name = "status",
|
||||
|
1
tmux.1
1
tmux.1
@ -3304,6 +3304,7 @@ The following variables are available, where appropriate:
|
||||
.It Li "pane_width" Ta "" Ta "Width of pane"
|
||||
.It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane"
|
||||
.It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane"
|
||||
.It Li "session_alerts" Ta "" Ta "List of window indexes with alerts"
|
||||
.It Li "session_attached" Ta "" Ta "Number of clients session is attached to"
|
||||
.It Li "session_activity" Ta "" Ta "Integer time of session last activity"
|
||||
.It Li "session_activity_string" Ta "" Ta "String time of session last activity"
|
||||
|
Loading…
Reference in New Issue
Block a user