Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

".zshenv"

This option has no description.

Type: submodule

Default:

{
  content = "EXAMPLE=TRUE";
}

".zshenv".content

Content of the file. This can be a multi-line string that will be written to the Nix store and made available via the path option.

Type: strings concatenated with “\n”

".zshenv".path

The path to the file. By default, this is automatically generated using pkgs.writeText with the attribute name and content. You can override this to provide:

  • A custom Nix path (e.g., ./config.txt or pkgs.writeText “name” “content”)
  • An absolute path string outside the store (e.g., “/etc/config.txt”)
  • A path with environment variables (e.g., “$HOME/.config/app.conf”)

Type: absolute path or string

Default: "pkgs.writeText name <content>"

".zshrc"

This option has no description.

Type: submodule

Default:

{
  content = ''
    # KeyMap
    bindkey -e
    
    # Aliases
    
    # Completion
    
    
    
    
    #Autosuggestions
    
    # Integrations
    
    
    
    
    
    
    # History
    HISTSIZE=10000
    HISTSAVE=10000
    setopt appendhistory
    
    
    
    
    
    
    
    # Extra Content
  '';
}

".zshrc".content

Content of the file. This can be a multi-line string that will be written to the Nix store and made available via the path option.

Type: strings concatenated with “\n”

".zshrc".path

The path to the file. By default, this is automatically generated using pkgs.writeText with the attribute name and content. You can override this to provide:

  • A custom Nix path (e.g., ./config.txt or pkgs.writeText “name” “content”)
  • An absolute path string outside the store (e.g., “/etc/config.txt”)
  • A path with environment variables (e.g., “$HOME/.config/app.conf”)

Type: absolute path or string

Default: "pkgs.writeText name <content>"

_module.args

Additional arguments passed to each module in addition to ones like lib, config, and pkgs, modulesPath.

This option is also available to all submodules. Submodules do not inherit args from their parent module, nor do they provide args to their parent module or sibling submodules. The sole exception to this is the argument name which is provided by parent modules to a submodule and contains the attribute name the submodule is bound to, or a unique generated name if it is not bound to an attribute.

Some arguments are already passed by default, of which the following cannot be changed with this option:

  • lib: The nixpkgs library.

  • config: The results of all options after merging the values from all modules together.

  • options: The options declared in all modules.

  • specialArgs: The specialArgs argument passed to evalModules.

  • All attributes of specialArgs

    Whereas option values can generally depend on other option values thanks to laziness, this does not apply to imports, which must be computed statically before anything else.

    For this reason, callers of the module system can provide specialArgs which are available during import resolution.

    For NixOS, specialArgs includes modulesPath, which allows you to import extra modules from the nixpkgs package tree without having to somehow make the module aware of the location of the nixpkgs or NixOS directories.

    { modulesPath, ... }: {
      imports = [
        (modulesPath + "/profiles/minimal.nix")
      ];
    }
    

For NixOS, the default value for this option includes at least this argument:

  • pkgs: The nixpkgs package set according to the nixpkgs.pkgs option.

Type: lazy attribute set of raw value

Declared by:

apply

Function to extend the current configuration with additional modules. Re-evaluates the configuration with the original settings plus the new module.

Type: function that evaluates to a(n) raw value (read only)

Default: <function>

extend

Function to extend the current configuration with additional settings. Re-evaluates the configuration with the original modules plus the new settings.

Type: function that evaluates to a(n) raw value

Default: <function>

extraRC

extra stuff to put in .zshrc, gets appended after all of the options

Type: strings concatenated with “\n”

Default: ""

settings.autoSuggestions.enable

Whether to enable autoSuggestions.

Type: boolean

Default: false

Example: true

settings.autoSuggestions.highlight

Custom styles for autosuggestion highlighting

Type: null or string

Default: null

Example: "fg=#ff00ff,bg=cyan,bold,underline"

settings.autoSuggestions.strategy

This option has no description.

Type: list of (one of “history”, “completion”, “match_prev_cmd”)

Default:

[
  "history"
  "completion"
]

settings.autocd

cd into a directory just by typing it in

Type: boolean

Default: false

settings.completion.enable

Whether to enable completions.

Type: boolean

Default: false

Example: true

settings.completion.caseInsensitive

Whether to enable completions.

Type: boolean

Default: false

Example: true

settings.completion.colors

make the completions colorful (as if you were using ls --color)

Type: boolean

Default: false

settings.completion.extraCompletions

enable to add zsh-completions package, it has extra completions for other tools

Type: boolean

Default: false

settings.completion.fuzzySearch

Whether to enable fuzzy-completion.

Type: boolean

Default: false

Example: true

settings.completion.init

Initialization commands to run when completion is enabled.

Type: strings concatenated with “\n”

Default: "autoload -U compinit && compinit"

settings.env

environment variables to put in .zshenv as an attribute set of strings just like environment.systemVariables

Type: attribute set of string

Default:

{
  EXAMPLE = "TRUE";
}

settings.history.append

append history for every new session instead of replacing it

Type: boolean

Default: true

settings.history.expanded

save timestamps with history

Type: boolean

Default: false

settings.history.expireDupsFirst

remove duplicates in the history first to make room for new commands

Type: boolean

Default: false

settings.history.findNoDups

don’t display duplicates when doing a history search

Type: boolean

Default: false

settings.history.ignoreAllDups

if you run the same command twice, the newer replaces the old one in history, even if its a different output

Type: boolean

Default: false

settings.history.ignoreDups

if you run the same command twice, the newer replaces the old one in history, only if it’s the same output

Type: boolean

Default: false

settings.history.ignoreSpace

a command is not added to history if a space preceeds it

Type: boolean

Default: false

settings.history.save

the number of history lines to save

Type: signed integer

Default: 10000

settings.history.saveNoDups

don’t write duplicates into the history file.

Type: boolean

Default: false

settings.history.share

share history between sessions

Type: boolean

Default: false

settings.history.size

the number of lines to keep

Type: signed integer

Default: 10000

settings.integrations.atuin.enable

Whether to enable atuin.

Type: boolean

Default: false

Example: true

settings.integrations.atuin.package

This option has no description.

Type: package

Default: <derivation atuin-18.10.0>

settings.integrations.fzf.enable

Whether to enable fzf.

Type: boolean

Default: false

Example: true

settings.integrations.fzf.package

This option has no description.

Type: package

Default: <derivation fzf-0.67.0>

settings.integrations.oh-my-posh.enable

Whether to enable oh-my-posh.

Type: boolean

Default: false

Example: true

settings.integrations.oh-my-posh.package

This option has no description.

Type: package

Default: <derivation oh-my-posh-26.23.6>

settings.integrations.pay-respects.enable

Whether to enable pay-respects.

Type: boolean

Default: false

Example: true

settings.integrations.pay-respects.package

This option has no description.

Type: package

Default: <derivation pay-respects-0.7.9>

settings.integrations.pay-respects.flags

This option has no description.

Type: list of string

Default: [ ]

settings.integrations.starship.enable

Whether to enable starship.

Type: boolean

Default: false

Example: true

settings.integrations.starship.package

This option has no description.

Type: package

Default: <derivation starship-1.24.1>

settings.integrations.zoxide.enable

Whether to enable zoxide.

Type: boolean

Default: false

Example: true

settings.integrations.zoxide.package

This option has no description.

Type: package

Default: <derivation zoxide-0.9.8>

settings.integrations.zoxide.flags

This option has no description.

Type: list of string

Default: [ ]

settings.keyMap

zsh key map, defaults to emacs mode (bindkey -e).

Type: one of “emacs”, “viins”, “vicmd”

Default: "emacs"

settings.shellAliases

shell aliases (alias – key=value)

Type: attribute set of string

Default: { }