treewide: standardize shell integration options
Standardize all 'programs.<PROGRAM>.enable<SHELL>Integration' options with the following new functions: - lib.hm.shell.mkBashIntegrationOption - lib.hm.shell.mkFishIntegrationOption - lib.hm.shell.mkIonIntegrationOption - lib.hm.shell.mkNushellIntegrationOption - lib.hm.shell.mkZshIntegrationOption These functions should default to their corresponding global option: - home.shell.enableBashIntegration - home.shell.enableFishIntegration - home.shell.enableIonIntegration - home.shell.enableNushellIntegration - home.shell.enableZshIntegration All these global options default to the 'home.shell.enableShellIntegration' value. This hierarchy standardizes the shell integration and increases end-user flexibility. BREAKING CHANGE: The following inconsistent default values change from 'false' to 'true': - programs.zellij.enableBashIntegration - programs.zellij.enableFishIntegration - programs.zellij.enableZshIntegration Link: https://github.com/nix-community/home-manager/pull/6358 Co-authored-by: Robert Helgesson <robert@rycee.net>
This commit is contained in:
parent
bf9a1a0689
commit
5af1b9a0f1
40 changed files with 362 additions and 609 deletions
|
|
@ -1,6 +1,22 @@
|
|||
{ lib }:
|
||||
|
||||
rec {
|
||||
let
|
||||
|
||||
mkShellIntegrationOption = name:
|
||||
{ config, baseName ? name, extraDescription ? "" }:
|
||||
let attrName = "enable${baseName}Integration";
|
||||
in lib.mkOption {
|
||||
default = config.home.shell.${attrName};
|
||||
defaultText = lib.literalMD "[](#opt-home.shell.${attrName})";
|
||||
example = false;
|
||||
description = "Whether to enable ${name} integration.${
|
||||
lib.optionalString (extraDescription != "")
|
||||
("\n\n" + extraDescription)
|
||||
}";
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
in rec {
|
||||
# Produces a Bourne shell like variable export statement.
|
||||
export = n: v: ''export ${n}="${toString v}"'';
|
||||
|
||||
|
|
@ -8,4 +24,10 @@ rec {
|
|||
# assignment, this function produces a string containing an export
|
||||
# statement for each set entry.
|
||||
exportAll = vars: lib.concatStringsSep "\n" (lib.mapAttrsToList export vars);
|
||||
|
||||
mkBashIntegrationOption = mkShellIntegrationOption "Bash";
|
||||
mkFishIntegrationOption = mkShellIntegrationOption "Fish";
|
||||
mkIonIntegrationOption = mkShellIntegrationOption "Ion";
|
||||
mkNushellIntegrationOption = mkShellIntegrationOption "Nushell";
|
||||
mkZshIntegrationOption = mkShellIntegrationOption "Zsh";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue