summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Viennot <nicolas@viennot.biz>2013-10-04 17:50:55 -0400
committerNicolas Viennot <nicolas@viennot.biz>2013-10-04 17:52:12 -0400
commited4020b5890cdccf930e82a61a8ce264404235fb (patch)
treeefd5f3b65525052c8ecc943e555931368071b767
parent0d182e707edb19bf16181a01de8d12f8739ec743 (diff)
Use ~/.tmate.conf to load tmate specific settings
Closes #10
-rw-r--r--server.c6
-rw-r--r--tmux.c21
-rw-r--r--tmux.h3
3 files changed, 22 insertions, 8 deletions
diff --git a/server.c b/server.c
index 6620c78b..739386ee 100644
--- a/server.c
+++ b/server.c
@@ -186,6 +186,12 @@ server_start(int lockfd, char *lockfile)
ARRAY_ADD(&cfg_causes, cause);
}
}
+ if (tmate_cfg_file != NULL) {
+ if (load_cfg(tmate_cfg_file, cfg_cmd_q, &cause) == -1) {
+ xasprintf(&cause, "%s: %s", tmate_cfg_file, cause);
+ ARRAY_ADD(&cfg_causes, cause);
+ }
+ }
tmate_session_init();
cmdq_continue(cfg_cmd_q);
diff --git a/tmux.c b/tmux.c
index 7063d912..b1b4f525 100644
--- a/tmux.c
+++ b/tmux.c
@@ -40,7 +40,7 @@ struct environ global_environ;
struct event_base *ev_base;
-char *cfg_file;
+char *cfg_file, *tmate_cfg_file;
char *shell_cmd;
int debug_level;
time_t start_time;
@@ -367,13 +367,14 @@ main(int argc, char **argv)
}
/* Locate the configuration file. */
+ home = getenv("HOME");
+ if (home == NULL || *home == '\0') {
+ pw = getpwuid(getuid());
+ if (pw != NULL)
+ home = pw->pw_dir;
+ }
+
if (cfg_file == NULL) {
- home = getenv("HOME");
- if (home == NULL || *home == '\0') {
- pw = getpwuid(getuid());
- if (pw != NULL)
- home = pw->pw_dir;
- }
xasprintf(&cfg_file, "%s/%s", home, DEFAULT_CFG);
if (access(cfg_file, R_OK) != 0 && errno == ENOENT) {
free(cfg_file);
@@ -381,6 +382,12 @@ main(int argc, char **argv)
}
}
+ xasprintf(&tmate_cfg_file, "%s/%s", home, DEFAULT_TMATE_CFG);
+ if (access(tmate_cfg_file, R_OK) != 0 && errno == ENOENT) {
+ free(tmate_cfg_file);
+ tmate_cfg_file = NULL;
+ }
+
/*
* Figure out the socket path. If specified on the command-line with -S
* or -L, use it, otherwise try $TMUX or assume -L default.
diff --git a/tmux.h b/tmux.h
index 94858f6d..fa335c6a 100644
--- a/tmux.h
+++ b/tmux.h
@@ -43,6 +43,7 @@ extern char **environ;
/* Default configuration files. */
#define DEFAULT_CFG ".tmux.conf"
+#define DEFAULT_TMATE_CFG ".tmate.conf"
#define SYSTEM_CFG "/etc/tmux.conf"
/* Default prompt history length. */
@@ -1513,7 +1514,7 @@ extern struct options global_s_options;
extern struct options global_w_options;
extern struct environ global_environ;
extern struct event_base *ev_base;
-extern char *cfg_file;
+extern char *cfg_file, *tmate_cfg_file;
extern char *shell_cmd;
extern int debug_level;
extern time_t start_time;