From 7be304a5439303deb7f52eceee1b31bb08610a16 Mon Sep 17 00:00:00 2001 From: Jeremy Kolb Date: Sat, 18 Sep 2021 11:04:11 -0400 Subject: nixos/programs/tmux: specify wanted plugins Currently it's rather difficult to install tmux plugins. The process involves two steps: 1. Specify the correct `pkg.tmuxPlugins` package in `environment.systemPackages` 2. Adding to the configuration file to instantiate the plugin. This commit allows the user to specify a list of plugins under `programs.tmux.plugins`. Update nixos/modules/programs/tmux.nix Co-authored-by: Sandro --- .../doc/manual/from_md/release-notes/rl-2205.section.xml | 9 +++++++++ nixos/doc/manual/release-notes/rl-2205.section.md | 2 ++ nixos/modules/programs/tmux.nix | 15 ++++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index 436157515eb..9f5279732fe 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -712,6 +712,15 @@ warning. + + + programs.tmux has a new option + plugins that accepts a list of packages + from the tmuxPlugins group. The specified + packages are added to the system and loaded by + tmux. + + diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 9d919711cb7..629672259b2 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -243,4 +243,6 @@ In addition to numerous new and upgraded packages, this release has the followin Reason is that the old name has been deprecated upstream. Using the old option name will still work, but produce a warning. +- `programs.tmux` has a new option `plugins` that accepts a list of packages from the `tmuxPlugins` group. The specified packages are added to the system and loaded by `tmux`. + diff --git a/nixos/modules/programs/tmux.nix b/nixos/modules/programs/tmux.nix index c39908751d2..74b3fbd9ac0 100644 --- a/nixos/modules/programs/tmux.nix +++ b/nixos/modules/programs/tmux.nix @@ -52,6 +52,12 @@ let set -s escape-time ${toString cfg.escapeTime} set -g history-limit ${toString cfg.historyLimit} + ${lib.optionalString (cfg.plugins != []) '' + # Run plugins + ${lib.concatMapStringsSep "\n" (x: "run-shell ${x.rtp}") cfg.plugins} + + ''} + ${cfg.extraConfig} ''; @@ -165,6 +171,13 @@ in { downside it doesn't survive user logout. ''; }; + + plugins = mkOption { + default = []; + type = types.listOf types.package; + description = "List of plugins to install."; + example = lib.literalExpression "[ pkgs.tmuxPlugins.nord ]"; + }; }; }; @@ -174,7 +187,7 @@ in { environment = { etc."tmux.conf".text = tmuxConf; - systemPackages = [ pkgs.tmux ]; + systemPackages = [ pkgs.tmux ] ++ cfg.plugins; variables = { TMUX_TMPDIR = lib.optional cfg.secureSocket ''''${XDG_RUNTIME_DIR:-"/run/user/$(id -u)"}''; -- cgit 1.4.1