From a314814c19fa9744ee3f3c333a1c00b27574b90e Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Wed, 23 Mar 2016 15:33:28 +0800 Subject: [PATCH] tmux nixos module: add nixos program module for tmux This basic module allows you to specify the tmux configuration. As great as tmux is, some of the defaults are pretty awful, so having a way to specify the config really helps. --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/tmux.nix | 35 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 nixos/modules/programs/tmux.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 3dd60ad99dc..934fb56bc10 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -77,6 +77,7 @@ ./programs/shell.nix ./programs/ssh.nix ./programs/ssmtp.nix + ./programs/tmux.nix ./programs/venus.nix ./programs/wvdial.nix ./programs/xfs_quota.nix diff --git a/nixos/modules/programs/tmux.nix b/nixos/modules/programs/tmux.nix new file mode 100644 index 00000000000..4220a2e17b3 --- /dev/null +++ b/nixos/modules/programs/tmux.nix @@ -0,0 +1,35 @@ +{ config, pkgs, lib, ... }: + +let + inherit (lib) mkOption mkEnableOption mkIf mkMerge types; + + cfg = config.programs.tmux; + +in +{ + ###### interface + + options = { + programs.tmux = { + + enable = mkEnableOption "tmux - a screen replacement."; + + tmuxconf = mkOption { + default = ""; + description = '' + The contents of /etc/tmux.conf + ''; + type = types.lines; + }; + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + environment = { + systemPackages = [ pkgs.tmux ]; + etc."tmux.conf".text = cfg.tmuxconf; + }; + }; +}