tmux.conf: detect running as tmate and disable non-supported features
tmux versions >=2.3 support the -q option for source-file to suppress
errors for nonexistent files. Even Debian/oldoldstable has tmux v2.3-4,
so this works nice everwhere, *except* for when invoking tmate, which is
a fork based on an old version of tmux, which then complains about:
| /etc/tmux.conf:75: usage: source-file path
| /etc/tmux.conf:36: usage: source-file path
Try to detect tmate from within the environment, and then enable
the configuration only when *not* running from within tmate.
This commit relies on @mika's commit grml/grml-etc-core@71101e0 (the
commit message was shamelessly copied, thx!), but two things changed:
* Use "! (env | grep -q TMUX=/tmp/tmate)" instead of "env | grep -q
TMUX=/tmp/tmate && false" which always results in false:
$ true && false; echo $?
1
* Double escape the semicolon (;) (i.e. \\;).
Because if bind-key is set up to call multiple commands, each command
needs to be separated with \;.
(Each command is terminated by a newline or a semicolon. Commands
separated by semicolons together form a ‘command sequence’).
And if bind-key is called within if-shell \; needs to be escaped one
more time. (No escaping would have been needed when using braces ({}),
but tmate does not seem to support braces.)
See: COMMAND PARSING AND EXECUTION + PARSING SYNTAX in man page tmux(1).
Replaces the PR: grml/grml-etc-core#151