Tmux: Difference between revisions

imported>Srid
Actually this is home-manager
Pigs (talk | contribs)
Using Plugins: Use current channel for search.nixos.org link
Tags: Mobile edit Mobile web edit Advanced mobile edit
(6 intermediate revisions by 5 users not shown)
Line 11: Line 11:
   enable = true;
   enable = true;
   clock24 = true;
   clock24 = true;
   extraTmuxConf = '' # used for less common options, intelligently combines if defined in multiple places.
   extraConfig = '' # used for less common options, intelligently combines if defined in multiple places.
     ...
     ...
   '';
   '';
Line 17: Line 17:
</syntaxhighlight>
</syntaxhighlight>


Note that <code>extraTmuxConf</code> writes directly to <code>/etc/tmux.conf</code>
Note that <code>extraConfig</code> writes directly to <code>/etc/tmux.conf</code>
 
 
=== 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?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 ==


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.
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.
Example: https://github.com/srid/nix-config/blob/master/nix/home/tmux.nix


== See also ==
== See also ==