{ config, options, lib, pkgs, ... }: let cfg = config.programs.wezterm; shellIntegration = '' source ${pkgs.bash-preexec}/share/bash/bash-preexec.sh source ${cfg.package}/etc/profile.d/wezterm.sh ''; in { options.programs.wezterm = { enable = lib.mkEnableOption "Wezterm terminal emulator"; package = lib.mkOption { type = lib.types.package; default = pkgs.wezterm; description = "Package containing wezterm binary."; }; }; config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ]; # This is needed for shell integration and applying semantic zones. programs.bash.interactiveShellInit = shellIntegration; programs.zsh.interactiveShellInit = shellIntegration; }; }