Merge pull request #44441 from mnacamura/shell-aliases
environment.shellAliases: change default behavior
This commit is contained in:
commit
d4f2f4c79d
5 changed files with 32 additions and 24 deletions
|
@ -108,14 +108,14 @@ in
|
|||
};
|
||||
|
||||
environment.shellAliases = mkOption {
|
||||
default = {};
|
||||
example = { ll = "ls -l"; };
|
||||
example = { l = null; ll = "ls -l"; };
|
||||
description = ''
|
||||
An attribute set that maps aliases (the top level attribute names in
|
||||
this option) to command strings or directly to build outputs. The
|
||||
aliases are added to all users' shells.
|
||||
Aliases mapped to <code>null</code> are ignored.
|
||||
'';
|
||||
type = types.attrs; # types.attrsOf types.stringOrPath;
|
||||
type = with types; attrsOf (nullOr (either str path));
|
||||
};
|
||||
|
||||
environment.binsh = mkOption {
|
||||
|
@ -157,6 +157,12 @@ in
|
|||
# terminal instead of logging out of X11).
|
||||
environment.variables = config.environment.sessionVariables;
|
||||
|
||||
environment.shellAliases = mapAttrs (name: mkDefault) {
|
||||
ls = "ls --color=tty";
|
||||
ll = "ls -l";
|
||||
l = "ls -alh";
|
||||
};
|
||||
|
||||
environment.etc."shells".text =
|
||||
''
|
||||
${concatStringsSep "\n" (map utils.toShellPath cfg.shells)}
|
||||
|
|
|
@ -33,7 +33,8 @@ let
|
|||
'';
|
||||
|
||||
bashAliases = concatStringsSep "\n" (
|
||||
mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}") cfg.shellAliases
|
||||
mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
|
||||
(filterAttrs (k: v: !isNull v) cfg.shellAliases)
|
||||
);
|
||||
|
||||
in
|
||||
|
@ -59,12 +60,12 @@ in
|
|||
*/
|
||||
|
||||
shellAliases = mkOption {
|
||||
default = config.environment.shellAliases;
|
||||
default = {};
|
||||
description = ''
|
||||
Set of aliases for bash shell. See <option>environment.shellAliases</option>
|
||||
for an option format description.
|
||||
Set of aliases for bash shell, which overrides <option>environment.shellAliases</option>.
|
||||
See <option>environment.shellAliases</option> for an option format description.
|
||||
'';
|
||||
type = types.attrs; # types.attrsOf types.stringOrPath;
|
||||
type = with types; attrsOf (nullOr (either str path));
|
||||
};
|
||||
|
||||
shellInit = mkOption {
|
||||
|
@ -125,6 +126,8 @@ in
|
|||
|
||||
programs.bash = {
|
||||
|
||||
shellAliases = mapAttrs (name: mkDefault) cfge.shellAliases;
|
||||
|
||||
shellInit = ''
|
||||
if [ -z "$__NIXOS_SET_ENVIRONMENT_DONE" ]; then
|
||||
. ${config.system.build.setEnvironment}
|
||||
|
|
|
@ -9,7 +9,8 @@ let
|
|||
cfg = config.programs.fish;
|
||||
|
||||
fishAliases = concatStringsSep "\n" (
|
||||
mapAttrsFlatten (k: v: "alias ${k} ${escapeShellArg v}") cfg.shellAliases
|
||||
mapAttrsFlatten (k: v: "alias ${k} ${escapeShellArg v}")
|
||||
(filterAttrs (k: v: !isNull v) cfg.shellAliases)
|
||||
);
|
||||
|
||||
in
|
||||
|
@ -53,12 +54,12 @@ in
|
|||
};
|
||||
|
||||
shellAliases = mkOption {
|
||||
default = config.environment.shellAliases;
|
||||
default = {};
|
||||
description = ''
|
||||
Set of aliases for fish shell. See <option>environment.shellAliases</option>
|
||||
for an option format description.
|
||||
Set of aliases for fish shell, which overrides <option>environment.shellAliases</option>.
|
||||
See <option>environment.shellAliases</option> for an option format description.
|
||||
'';
|
||||
type = types.attrs;
|
||||
type = with types; attrsOf (nullOr (either str path));
|
||||
};
|
||||
|
||||
shellInit = mkOption {
|
||||
|
@ -99,6 +100,8 @@ in
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
programs.fish.shellAliases = mapAttrs (name: mkDefault) cfge.shellAliases;
|
||||
|
||||
environment.etc."fish/foreign-env/shellInit".text = cfge.shellInit;
|
||||
environment.etc."fish/foreign-env/loginShellInit".text = cfge.loginShellInit;
|
||||
environment.etc."fish/foreign-env/interactiveShellInit".text = cfge.interactiveShellInit;
|
||||
|
|
|
@ -8,12 +8,6 @@ with lib;
|
|||
|
||||
config = {
|
||||
|
||||
environment.shellAliases =
|
||||
{ ls = "ls --color=tty";
|
||||
ll = "ls -l";
|
||||
l = "ls -alh";
|
||||
};
|
||||
|
||||
environment.shellInit =
|
||||
''
|
||||
# Set up the per-user profile.
|
||||
|
|
|
@ -11,7 +11,8 @@ let
|
|||
cfg = config.programs.zsh;
|
||||
|
||||
zshAliases = concatStringsSep "\n" (
|
||||
mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}") cfg.shellAliases
|
||||
mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
|
||||
(filterAttrs (k: v: !isNull v) cfg.shellAliases)
|
||||
);
|
||||
|
||||
in
|
||||
|
@ -34,13 +35,12 @@ in
|
|||
};
|
||||
|
||||
shellAliases = mkOption {
|
||||
default = config.environment.shellAliases;
|
||||
default = {};
|
||||
description = ''
|
||||
Set of aliases for zsh shell. Overrides the default value taken from
|
||||
<option>environment.shellAliases</option>.
|
||||
Set of aliases for zsh shell, which overrides <option>environment.shellAliases</option>.
|
||||
See <option>environment.shellAliases</option> for an option format description.
|
||||
'';
|
||||
type = types.attrs; # types.attrsOf types.stringOrPath;
|
||||
type = with types; attrsOf (nullOr (either str path));
|
||||
};
|
||||
|
||||
shellInit = mkOption {
|
||||
|
@ -106,6 +106,8 @@ in
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
programs.zsh.shellAliases = mapAttrs (name: mkDefault) cfge.shellAliases;
|
||||
|
||||
environment.etc."zshenv".text =
|
||||
''
|
||||
# /etc/zshenv: DO NOT EDIT -- this file has been generated automatically.
|
||||
|
|
Loading…
Reference in a new issue