Files
philip-730 92d382b982 programs.wezterm: add settings option
Add a `settings` option that allows WezTerm to be configured
declaratively using a Nix attribute set. Settings are serialized to
Lua using `lib.generators.toLua`. Raw Lua expressions such as
`wezterm.font` and `wezterm.action.*` can be embedded using
`lib.generators.mkLuaInline`.

When `settings` is set, `extraConfig` is still supported. It is
wrapped in an immediately invoked function expression so that any
`return` statement (including the common `return {}` and
`return config` patterns) is captured and merged on top of the
generated settings, preserving full backward compatibility.

The merge between `settings` and `extraConfig` is shallow: a key
returned from `extraConfig` replaces the entire corresponding value
from `settings`, including nested tables and arrays.

Closes #6047
2026-04-07 13:39:56 -05:00

16 lines
703 B
Nix

{
wezterm-example-setting = ./example-setting.nix;
wezterm-empty-setting = ./empty-setting.nix;
wezterm-settings = ./settings.nix;
wezterm-settings-with-extra-config = ./settings-with-extra-config.nix;
wezterm-settings-extra-config-direct = ./settings-extra-config-direct.nix;
wezterm-bash-integration-default = ./bash-integration-default.nix;
wezterm-bash-integration-disabled = ./bash-integration-disabled.nix;
wezterm-bash-integration-enabled = ./bash-integration-enabled.nix;
wezterm-zsh-integration-default = ./zsh-integration-default.nix;
wezterm-zsh-integration-disabled = ./zsh-integration-disabled.nix;
wezterm-zsh-integration-enabled = ./zsh-integration-enabled.nix;
}