summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/programs/zsh/zsh.nix36
1 files changed, 31 insertions, 5 deletions
diff --git a/nixos/modules/programs/zsh/zsh.nix b/nixos/modules/programs/zsh/zsh.nix
index 164d8db5859a..4b995b66a267 100644
--- a/nixos/modules/programs/zsh/zsh.nix
+++ b/nixos/modules/programs/zsh/zsh.nix
@@ -79,6 +79,33 @@ in
type = types.lines;
};
+ histSize = mkOption {
+ default = 2000;
+ description = ''
+ Change history size.
+ '';
+ type = types.int;
+ };
+
+ histFile = mkOption {
+ default = "$HOME/.zsh_history";
+ description = ''
+ Change history file.
+ '';
+ type = types.str;
+ };
+
+ setOptions = mkOption {
+ type = types.listOf types.str;
+ default = [
+ "HIST_IGNORE_DUPS" "SHARE_HISTORY" "HIST_FCNTL_LOCK"
+ ];
+ example = [ "EXTENDED_HISTORY" "RM_STAR_WAIT" ];
+ description = ''
+ Configure zsh options.
+ '';
+ };
+
enableCompletion = mkOption {
default = true;
description = ''
@@ -162,12 +189,11 @@ in
. /etc/zinputrc
- # history defaults
- SAVEHIST=2000
- HISTSIZE=2000
- HISTFILE=$HOME/.zsh_history
+ export SAVEHIST=${toString cfg.histSize}
+ export HISTSIZE=${toString cfg.histSize}
+ export HISTFILE=${cfg.histFile}
- setopt HIST_IGNORE_DUPS SHARE_HISTORY HIST_FCNTL_LOCK
+ ${optionalString (cfg.setOptions != []) "setopt ${concatStringsSep " " cfg.setOptions}"}
HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help"