What are the differences between set -g, set -ga and set-option -g in a .tmux.conf file?

hrokr picture hrokr · Jul 10, 2017 · Viewed 10.3k times · Source

I'm new to tmux and trying to understand it's configuration. I've started with looking at some pre-existing .tmux.conf files and whatever documentation I can find but it still leaves me wondering about the flags. I've seen the following so far:

A few examples from the ArchWiki entry on tmux

set -g prefix C-a  
set -ga terminal-overrides ",xterm-termite:Tc"
set-option -g xterm-keys on

And one line from a .tmux.conf file

set-window-option -g

What do the flags mean and are there any particular cases when one flag one flag is preferable over another?

Answer

pdoherty926 picture pdoherty926 · Jul 10, 2017

set is the alias of set-option.

set -g is used to set global options and -ga appends values to existing settings.

From Tmux's man page:

With -a, and if the option expects a string or a style, value is appended to the existing setting. For example:

   set -g status-left "foo"
   set -ag status-left "bar"

Will result in ‘foobar’. And:

   set -g status-style "bg=red"
   set -ag status-style "fg=blue"

Will result in a red background and blue foreground. Without -a, the result would be the default background and a blue foreground.

set-window-option (alias setw) is used to configure window options (allow-rename, mode-keys, synchronize-panes, etc.) and the same flag options are available.

See: