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

windows.
This commit is contained in:
Nicholas Marriott 2009-07-12 17:07:58 +00:00
parent 79bc6041c9
commit d7b4aa0ff3
5 changed files with 26 additions and 8 deletions

View File

@ -1,4 +1,4 @@
/* $Id: cmd-set-option.c,v 1.64 2009-07-08 18:03:03 nicm Exp $ */
/* $Id: cmd-set-option.c,v 1.65 2009-07-12 17:07:58 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -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

@ -1,4 +1,4 @@
/* $Id: server-fn.c,v 1.69 2009-07-08 18:07:09 nicm Exp $ */
/* $Id: server-fn.c,v 1.70 2009-07-12 17:07:58 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -30,8 +30,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)
@ -41,6 +41,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);
}

14
tmux.1
View File

@ -1,4 +1,4 @@
.\" $Id: tmux.1,v 1.108 2009-07-12 17:04:21 nicm Exp $
.\" $Id: tmux.1,v 1.109 2009-07-12 17:07:58 nicm Exp $
.\"
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
.\"
@ -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

3
tmux.c
View File

@ -1,4 +1,4 @@
/* $Id: tmux.c,v 1.141 2009-07-08 18:12:57 nicm Exp $ */
/* $Id: tmux.c,v 1.142 2009-07-12 17:07:58 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -279,6 +279,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);

4
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.353 2009-07-09 18:14:18 nicm Exp $ */
/* $Id: tmux.h,v 1.354 2009-07-12 17:07:58 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -934,7 +934,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 */