Add a default-terminal option to set the starting value of $TERM in new

windows.

This is "screen" by default and must be either that or something closely
related. This does makes it easier to customise it if necessary.
This commit is contained in:
Nicholas Marriott 2009-07-10 05:50:54 +00:00
parent 25d5734496
commit daa1faa905
5 changed files with 21 additions and 3 deletions

View File

@ -53,6 +53,7 @@ const struct set_option_entry set_option_table[NSETOPTION] = {
{ "buffer-limit", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
{ "default-command", SET_OPTION_STRING, 0, 0, NULL },
{ "default-path", SET_OPTION_STRING, 0, 0, NULL },
{ "default-terminal", SET_OPTION_STRING, 0, 0, NULL },
{ "display-time", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
{ "history-limit", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
{ "lock-after-time", SET_OPTION_NUMBER, 0, INT_MAX, NULL },

View File

@ -29,8 +29,8 @@ int server_lock_callback(void *, const char *);
const char **
server_fill_environ(struct session *s)
{
static const char *env[] = { NULL /* TMUX= */, "TERM=screen", NULL };
static char tmuxvar[MAXPATHLEN + 256];
static const char *env[] = { NULL /* TMUX= */, NULL /* TERM */, NULL };
static char tmuxvar[MAXPATHLEN + 256], termvar[256];
u_int idx;
if (session_index(s, &idx) != 0)
@ -40,6 +40,10 @@ server_fill_environ(struct session *s)
"TMUX=%s,%ld,%u", socket_path, (long) getpid(), idx);
env[0] = tmuxvar;
xsnprintf(termvar, sizeof termvar,
"TERM=%s", options_get_string(&s->options, "default-terminal"));
env[1] = termvar;
return (env);
}

12
tmux.1
View File

@ -1090,6 +1090,18 @@ environment variable or, if it is unset, the user's shell returned by
Set the default working directory for processes created from keys, or
interactively from the prompt.
The default is the current working directory when the server is started.
.It Ic default-terminal Ar terminal
Set the default terminal for new windows created in this session - the
default value of the
.Ev TERM
environment variable.
For
.Nm
to work correctly, this
.Em must
be set to
.Ql screen
or a derivative of it.
.It Ic display-time Ar time
Set the amount of time for which status line messages are displayed.
.Ar time

1
tmux.c
View File

@ -270,6 +270,7 @@ main(int argc, char **argv)
options_set_number(&global_s_options, "bell-action", BELL_ANY);
options_set_number(&global_s_options, "buffer-limit", 9);
options_set_string(&global_s_options, "default-command", "%s", "");
options_set_string(&global_s_options, "default-terminal", "screen");
options_set_number(&global_s_options, "display-time", 750);
options_set_number(&global_s_options, "history-limit", 2000);
options_set_number(&global_s_options, "lock-after-time", 0);

2
tmux.h
View File

@ -935,7 +935,7 @@ struct set_option_entry {
};
extern const struct set_option_entry set_option_table[];
extern const struct set_option_entry set_window_option_table[];
#define NSETOPTION 25
#define NSETOPTION 26
#define NSETWINDOWOPTION 19
/* tmux.c */