1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2025-01-30 21:05:02 +01:00

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:

- shell.enableBashIntegration
- shell.enableFishIntegration
- shell.enableIonIntegration
- shell.enableNushellIntegration
- shell.enableZshIntegration

All these global options default to the 'shell.enableShellIntegration'
value.

This hierarchy standardizes the shell integration and increases end-user
flexibility.

BREAKING CHANGE: This modifies the following inconsistent default values
from 'false' to 'true':

- programs.zellij.enableBashIntegration
- programs.zellij.enableFishIntegration
- programs.zellij.enableZshIntegration
This commit is contained in:
NAHO 2025-01-25 23:16:15 +01:00
parent daf04c5950
commit 80001f1ef5
No known key found for this signature in database
GPG key ID: 229CB671D09B95F5
39 changed files with 343 additions and 591 deletions

View file

@ -1,6 +1,12 @@
{ lib }: { lib }:
rec { let
mkShellIntegrationOption = name: default:
lib.mkEnableOption "${name} integration" // {
inherit default;
example = !default;
};
in rec {
# Produces a Bourne shell like variable export statement. # Produces a Bourne shell like variable export statement.
export = n: v: ''export ${n}="${toString v}"''; export = n: v: ''export ${n}="${toString v}"'';
@ -8,4 +14,10 @@ rec {
# assignment, this function produces a string containing an export # assignment, this function produces a string containing an export
# statement for each set entry. # statement for each set entry.
exportAll = vars: lib.concatStringsSep "\n" (lib.mapAttrsToList export vars); exportAll = vars: lib.concatStringsSep "\n" (lib.mapAttrsToList export vars);
mkBashIntegrationOption = mkShellIntegrationOption "Bash";
mkFishIntegrationOption = mkShellIntegrationOption "Fish";
mkIonIntegrationOption = mkShellIntegrationOption "Ion";
mkNushellIntegrationOption = mkShellIntegrationOption "Nushell";
mkZshIntegrationOption = mkShellIntegrationOption "Zsh";
} }

View file

@ -1972,6 +1972,22 @@ in {
'yazi' alias. 'yazi' alias.
''; '';
} }
{
time = "2025-01-25T22:15:57+00:00";
message = ''
All 'programs.<PROGRAM>.enable<SHELL>Integration' values now default
to the new 'shell.enable<SHELL>Integration' options, which inherit
from the new the 'shell.enableShellIntegration' option.
This modifies the following inconsistent default values from 'false'
to 'true':
- programs.zellij.enableBashIntegration
- programs.zellij.enableFishIntegration
- programs.zellij.enableZshIntegration
'';
}
]; ];
}; };
} }

28
modules/misc/shell.nix Normal file
View file

@ -0,0 +1,28 @@
{ config, lib, ... }: {
options.shell = let enable = config.shell.enableShellIntegration;
in {
enableShellIntegration = lib.mkOption {
type = lib.types.bool;
default = true;
example = false;
description = ''
Whether to enable shell integration for all supported shells.
Individual shell integrations can be overridden with their respective
`shell.enable<SHELL>Integration` option. For example, the following
declaration globally disables shell integration for Bash:
```nix
config.shell.enableBashIntegration = false;
```
'';
};
enableBashIntegration = lib.hm.shell.mkBashIntegrationOption enable;
enableFishIntegration = lib.hm.shell.mkFishIntegrationOption enable;
enableIonIntegration = lib.hm.shell.mkIonIntegrationOption enable;
enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption enable;
enableZshIntegration = lib.hm.shell.mkZshIntegrationOption enable;
};
}

View file

@ -36,6 +36,7 @@ let
./misc/pam.nix ./misc/pam.nix
./misc/qt.nix ./misc/qt.nix
./misc/qt/kconfig.nix ./misc/qt/kconfig.nix
./misc/shell.nix
./misc/specialisation.nix ./misc/specialisation.nix
./misc/submodule-support.nix ./misc/submodule-support.nix
./misc/tmpfiles.nix ./misc/tmpfiles.nix

View file

@ -13,7 +13,16 @@ let
in { in {
meta.maintainers = [ maintainers.hawkw maintainers.water-sucks ]; meta.maintainers = [ maintainers.hawkw maintainers.water-sucks ];
options.programs.atuin = { options.programs.atuin = let
mkShellIntegrationOption = option: description:
option // {
description = ''
${option.description}
${description}
'';
};
in {
enable = mkEnableOption "atuin"; enable = mkEnableOption "atuin";
package = mkOption { package = mkOption {
@ -23,35 +32,19 @@ in {
description = "The package to use for atuin."; description = "The package to use for atuin.";
}; };
enableBashIntegration = mkOption { enableBashIntegration = mkShellIntegrationOption
type = types.bool; (lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration)
default = true; "If enabled, this will bind `ctrl-r` to open the Atuin history.";
description = ''
Whether to enable Atuin's Bash integration. This will bind enableFishIntegration = mkShellIntegrationOption
`ctrl-r` to open the Atuin history. (lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration)
"If enabled, this will bind the up-arrow key to open the Atuin history.";
enableZshIntegration = mkShellIntegrationOption
(lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration) ''
If enabled, this will bind `ctrl-r` and the up-arrow key to open the
Atuin history.
''; '';
};
enableZshIntegration = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable Atuin's Zsh integration.
If enabled, this will bind `ctrl-r` and the up-arrow
key to open the Atuin history.
'';
};
enableFishIntegration = mkOption {
default = true;
type = types.bool;
description = ''
Whether to enable Atuin's Fish integration.
If enabled, this will bind the up-arrow key to open the Atuin history.
'';
};
flags = mkOption { flags = mkOption {
default = [ ]; default = [ ];

View file

@ -13,29 +13,14 @@ in {
options.programs.autojump = { options.programs.autojump = {
enable = mkEnableOption "autojump"; enable = mkEnableOption "autojump";
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -154,37 +154,17 @@ in {
options.programs.broot = { options.programs.broot = {
enable = mkEnableOption "Broot, a better way to navigate directories"; enable = mkEnableOption "Broot, a better way to navigate directories";
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
enableNushellIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Nushell integration.
'';
};
package = mkOption { package = mkOption {
type = types.package; type = types.package;

View file

@ -16,21 +16,17 @@ in {
package = mkPackageOption pkgs "carapace" { }; package = mkPackageOption pkgs "carapace" { };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
};
enableNushellIntegration = mkEnableOption "Nushell integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -19,29 +19,14 @@ in {
''; '';
}; };
enableBashIntegration = mkOption { enableBashIntegration =
type = types.bool; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
default = true;
description = ''
Whether to enable Bash integration.
'';
};
enableFishIntegration = mkOption { enableFishIntegration =
type = types.bool; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
default = true;
description = ''
Whether to enable Fish integration.
'';
};
enableZshIntegration = mkOption { enableZshIntegration =
type = types.bool; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
default = true;
description = ''
Whether to enable Zsh integration.
'';
};
settings = mkOption { settings = mkOption {
type = with types; attrsOf str; type = with types; attrsOf str;

View file

@ -48,44 +48,34 @@ in {
''; '';
}; };
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; let option = lib.hm.shell.mkFishIntegrationOption true;
type = types.bool; in option // {
description = '' description = ''
Whether to enable Zsh integration. ${option.description}
'';
};
enableFishIntegration = mkOption { Note, enabling the direnv module will always active its functionality
default = true; for Fish since the direnv package automatically gets loaded in Fish.
type = types.bool; If this is not the case try adding:
readOnly = true;
description = ''
Whether to enable Fish integration. Note, enabling the direnv module
will always active its functionality for Fish since the direnv package
automatically gets loaded in Fish. If this is not the case try adding
```nix
environment.pathsToLink = [ "/share/fish" ];
```
to the system configuration.
'';
};
enableNushellIntegration = mkOption { ```nix
default = true; environment.pathsToLink = [ "/share/fish" ];
type = types.bool; ```
description = ''
Whether to enable Nushell integration. to the system configuration.
''; '';
};
readOnly = true;
};
enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
config.shell.enableNushellIntegration;
enableZshIntegration =
lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
nix-direnv = { nix-direnv = {
enable = mkEnableOption '' enable = mkEnableOption ''

View file

@ -32,17 +32,14 @@ in {
''; '';
}; };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -21,23 +21,20 @@ with lib;
options.programs.eza = { options.programs.eza = {
enable = mkEnableOption "eza, a modern replacement for {command}`ls`"; enable = mkEnableOption "eza, a modern replacement for {command}`ls`";
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableIonIntegration =
default = true; lib.hm.shell.mkIonIntegrationOption config.shell.enableIonIntegration;
};
enableIonIntegration = mkEnableOption "Ion integration" // { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
};
enableNushellIntegration = mkEnableOption "Nushell integration"; enableZshIntegration =
lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
extraOptions = mkOption { extraOptions = mkOption {
type = types.listOf types.str; type = types.listOf types.str;

View file

@ -156,29 +156,14 @@ in {
}; };
}; };
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -10,7 +10,22 @@ let
in { in {
meta.maintainers = [ lib.maintainers.HeitorAugustoLN ]; meta.maintainers = [ lib.maintainers.HeitorAugustoLN ];
options.programs.ghostty = { options.programs.ghostty = let
mkShellIntegrationOption = option:
option // {
description = ''
${option.description}
This ensures that shell integration works in more scenarios, such as
switching shells within Ghostty. But it is not needed to have shell
integration.
See
<https://ghostty.org/docs/features/shell-integration#manual-shell-integration-setup>
for more information.
'';
};
in {
enable = lib.mkEnableOption "Ghostty"; enable = lib.mkEnableOption "Ghostty";
package = lib.mkPackageOption pkgs "ghostty" { }; package = lib.mkPackageOption pkgs "ghostty" { };
@ -85,29 +100,14 @@ in {
default = true; default = true;
}; };
enableBashIntegration = lib.mkEnableOption '' enableBashIntegration = mkShellIntegrationOption
bash shell integration. (lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration);
This is ensures that shell integration works in more scenarios, such as switching shells within Ghostty. enableFishIntegration = mkShellIntegrationOption
But it is not needed to have shell integration. (lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration);
See <https://ghostty.org/docs/features/shell-integration#manual-shell-integration-setup> for more information
'';
enableFishIntegration = lib.mkEnableOption '' enableZshIntegration = mkShellIntegrationOption
fish shell integration. (lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration);
This is ensures that shell integration works in more scenarios, such as switching shells within Ghostty.
But it is not needed to have shell integration.
See <https://ghostty.org/docs/features/shell-integration#manual-shell-integration-setup> for more information
'';
enableZshIntegration = lib.mkEnableOption ''
zsh shell integration.
This is ensures that shell integration works in more scenarios, such as switching shells within Ghostty.
But it is not needed to have shell integration.
See <https://ghostty.org/docs/features/shell-integration#manual-shell-integration-setup> for more information
'';
}; };
config = lib.mkIf cfg.enable (lib.mkMerge [ config = lib.mkIf cfg.enable (lib.mkMerge [

View file

@ -13,13 +13,8 @@ in {
options.programs.granted = { options.programs.granted = {
enable = mkEnableOption "granted"; enable = mkEnableOption "granted";
enableZshIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -16,13 +16,11 @@ in {
package = mkPackageOption pkgs "hstr" { }; package = mkPackageOption pkgs "hstr" { };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -63,37 +63,17 @@ in {
''; '';
}; };
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableFishIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
enableZshIntegration = mkOption { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableNushellIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Nushell integration.
'';
};
enableXsessionIntegration = mkOption { enableXsessionIntegration = mkOption {
default = true; default = true;

View file

@ -49,12 +49,12 @@ let
''; '';
}; };
shellIntegrationDefaultOpt = { mkShellIntegrationOption = option:
default = !(elem "disabled" (splitString " " cfg.shellIntegration.mode)); option (!(elem "disabled" (splitString " " cfg.shellIntegration.mode))) // {
defaultText = literalExpression '' defaultText = literalExpression ''
!(elem "disabled" (splitString " " config.programs.kitty.shellIntegration.mode)) !(elem "disabled" (splitString " " config.programs.kitty.shellIntegration.mode))
''; '';
}; };
in { in {
imports = [ imports = [
(mkChangedOptionModule [ "programs" "kitty" "theme" ] [ (mkChangedOptionModule [ "programs" "kitty" "theme" ] [
@ -179,14 +179,14 @@ in {
''; '';
}; };
enableBashIntegration = mkEnableOption "Kitty Bash integration" enableBashIntegration =
// shellIntegrationDefaultOpt; mkShellIntegrationOption lib.hm.shell.mkBashIntegrationOption;
enableFishIntegration = mkEnableOption "Kitty fish integration" enableFishIntegration =
// shellIntegrationDefaultOpt; mkShellIntegrationOption lib.hm.shell.mkFishIntegrationOption;
enableZshIntegration = mkEnableOption "Kitty Z Shell integration" enableZshIntegration =
// shellIntegrationDefaultOpt; mkShellIntegrationOption lib.hm.shell.mkZshIntegrationOption;
}; };
extraConfig = mkOption { extraConfig = mkOption {

View file

@ -109,29 +109,14 @@ in {
''; '';
}; };
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
}; };
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [

View file

@ -30,17 +30,14 @@ in {
package = mkPackageOption pkgs "mise" { }; package = mkPackageOption pkgs "mise" { };
enableBashIntegration = mkEnableOption "Bash Integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh Integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish Integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
globalConfig = mkOption { globalConfig = mkOption {
type = tomlFormat.type; type = tomlFormat.type;

View file

@ -47,17 +47,14 @@ in {
''; '';
}; };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -13,17 +13,14 @@ in {
description = "Package providing the {command}`nix-index` tool."; description = "Package providing the {command}`nix-index` tool.";
}; };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {

View file

@ -16,17 +16,14 @@ in {
package = mkPackageOption pkgs "nix-your-shell" { }; package = mkPackageOption pkgs "nix-your-shell" { };
enableFishIntegration = mkEnableOption "Fish integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableNushellIntegration = mkEnableOption "Nushell integration" // { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -47,37 +47,17 @@ in {
''; '';
}; };
enableBashIntegration = mkOption { enableBashIntegration =
type = types.bool; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
default = true;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
type = types.bool; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
default = true;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
type = types.bool; config.shell.enableNushellIntegration;
default = true;
description = ''
Whether to enable Fish integration.
'';
};
enableNushellIntegration = mkOption { enableZshIntegration =
type = types.bool; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
default = true;
description = ''
Whether to enable Nushell integration.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -19,29 +19,14 @@ in {
description = "Opam package to install."; description = "Opam package to install.";
}; };
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -12,21 +12,17 @@ in {
package = mkPackageOption pkgs "pay-respects" { }; package = mkPackageOption pkgs "pay-respects" { };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
};
enableNushellIntegration = mkEnableOption "Nushell integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -12,29 +12,14 @@ in {
options.programs.pazi = { options.programs.pazi = {
enable = mkEnableOption "pazi"; enable = mkEnableOption "pazi";
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -19,29 +19,14 @@ in {
description = "The package to use for pyenv."; description = "The package to use for pyenv.";
}; };
enableBashIntegration = lib.mkOption { enableBashIntegration =
type = lib.types.bool; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
default = true;
description = ''
Whether to enable pyenv's Bash integration.
'';
};
enableZshIntegration = lib.mkOption { enableFishIntegration =
type = lib.types.bool; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
default = true;
description = ''
Whether to enable pyenv's Zsh integration.
'';
};
enableFishIntegration = lib.mkOption { enableZshIntegration =
type = lib.types.bool; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
default = true;
description = ''
Whether to enable pyenv's Fish integration.
'';
};
rootDirectory = lib.mkOption { rootDirectory = lib.mkOption {
type = lib.types.path; type = lib.types.path;

View file

@ -55,17 +55,14 @@ in {
''; '';
}; };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -83,29 +83,14 @@ in {
''; '';
}; };
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -53,25 +53,20 @@ in {
''; '';
}; };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableIonIntegration =
default = true; lib.hm.shell.mkIonIntegrationOption config.shell.enableIonIntegration;
};
enableIonIntegration = mkEnableOption "Ion integration" // { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
};
enableNushellIntegration = mkEnableOption "Nushell integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
enableInteractive = mkOption { enableInteractive = mkOption {
type = types.bool; type = types.bool;

View file

@ -13,33 +13,17 @@ with lib;
enableInstantMode = mkEnableOption "thefuck's experimental instant mode"; enableInstantMode = mkEnableOption "thefuck's experimental instant mode";
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableZshIntegration = mkOption { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableNushellIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Nushell integration.
'';
};
}; };
config = let config = let

View file

@ -26,17 +26,14 @@ in {
description = "Package providing the {command}`watson`."; description = "Package providing the {command}`watson`.";
}; };
enableBashIntegration = mkEnableOption "watson's bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "watson's zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "watson's fish integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
settings = mkOption { settings = mkOption {
type = iniFormat.type; type = iniFormat.type;

View file

@ -83,13 +83,11 @@ in {
''; '';
}; };
enableBashIntegration = mkEnableOption "WezTerm's Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "WezTerm's Zsh integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -54,21 +54,17 @@ in {
''; '';
}; };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
};
enableNushellIntegration = mkEnableOption "Nushell integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
keymap = mkOption { keymap = mkOption {
type = tomlFormat.type; type = tomlFormat.type;

View file

@ -29,29 +29,14 @@ in {
''; '';
}; };
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
enableAliases = mkOption { enableAliases = mkOption {
default = false; default = false;

View file

@ -41,17 +41,14 @@ in {
''; '';
}; };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = false; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = false; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableZshIntegration =
default = false; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -32,37 +32,17 @@ in {
''; '';
}; };
enableBashIntegration = mkOption { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
type = types.bool;
description = ''
Whether to enable Bash integration.
'';
};
enableZshIntegration = mkOption { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
type = types.bool;
description = ''
Whether to enable Zsh integration.
'';
};
enableFishIntegration = mkOption { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
type = types.bool;
description = ''
Whether to enable Fish integration.
'';
};
enableNushellIntegration = mkOption { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
type = types.bool;
description = ''
Whether to enable Nushell integration.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -245,21 +245,17 @@ in {
''; '';
}; };
enableBashIntegration = mkEnableOption "Bash integration" // { enableBashIntegration =
default = true; lib.hm.shell.mkBashIntegrationOption config.shell.enableBashIntegration;
};
enableZshIntegration = mkEnableOption "Zsh integration" // { enableFishIntegration =
default = true; lib.hm.shell.mkFishIntegrationOption config.shell.enableFishIntegration;
};
enableFishIntegration = mkEnableOption "Fish integration" // { enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption
default = true; config.shell.enableNushellIntegration;
};
enableNushellIntegration = mkEnableOption "Nushell integration" // { enableZshIntegration =
default = true; lib.hm.shell.mkZshIntegrationOption config.shell.enableZshIntegration;
};
}; };
}; };