Tmux: Difference between revisions
imported>Crodjer The option is called `extraConfig` and not `extraTmuxConf` |
imported>Crodjer No edit summary |
||
Line 20: | Line 20: | ||
There is a good example of [https://github.com/srid/nixos-config/blob/master/home/tmux.nix tmux configuration here]. | There is a good example of [https://github.com/srid/nixos-config/blob/master/home/tmux.nix tmux configuration here]. | ||
=== Using Plugins === | |||
Tmux plugins can be also configured using <code>programs.tmux.plugins</code>. They can be found as NixOS packages: [https://search.nixos.org/packages?channel=22.11&from=0&size=50&sort=relevance&type=packages&query=tmuxPlugins tmuxPlugins]. Each of the tmux plugin is run via <code>run-shell</code> automatically. | |||
Some plugins need to be run after having had some custom configuration done>, but extraConfig gets executed after. For example <code>tmuxPlugins.cpu</code> needs the status line be declared before the plugin is run. For that scenario, <code>run-shell</code> can be added within <code>extraConfig</code>: | |||
<syntaxhighlight lang="nix"> | |||
programs.tmux = { | |||
enable = true; | |||
extraConfig = '' | |||
... | |||
set -g status-right '#[fg=black,bg=color15] #{cpu_percentage} %H:%M ' | |||
run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux | |||
''; | |||
} | |||
</syntaxhighlight> | |||
== Per-user configuration == | == Per-user configuration == |
Revision as of 15:38, 15 May 2023
tmux is a "terminal multiplexer: it enables a number of terminals (or windows), each running a separate program, to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached."
Global configuration
tmux can be configured globally from /etc/nixos/configuration.nix
.
As an example:
programs.tmux = {
enable = true;
clock24 = true;
extraConfig = '' # used for less common options, intelligently combines if defined in multiple places.
...
'';
}
Note that extraConfig
writes directly to /etc/tmux.conf
There is a good example of tmux configuration here.
Using Plugins
Tmux plugins can be also configured using programs.tmux.plugins
. They can be found as NixOS packages: tmuxPlugins. Each of the tmux plugin is run via run-shell
automatically.
Some plugins need to be run after having had some custom configuration done>, but extraConfig gets executed after. For example tmuxPlugins.cpu
needs the status line be declared before the plugin is run. For that scenario, run-shell
can be added within extraConfig
:
programs.tmux = {
enable = true;
extraConfig = ''
...
set -g status-right '#[fg=black,bg=color15] #{cpu_percentage} %H:%M '
run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux
'';
}
Per-user configuration
However, if you want to configure per user, you could use Home Manager. This also grants you with more options available directly through nix, as opposed to through an extra config option. Though it should be noted that a few of the options have different names.