{ config, lib, materusArg, pkgs, ... }: let cfg = config.materus.profile.wezterm; zshCfg = '' source "${config.programs.wezterm.package}/etc/profile.d/wezterm.sh" ''; in { options.materus.profile.wezterm.enable = materusArg.pkgs.lib.mkBoolOpt false "Enable materus wezterm config"; options.materus.profile.wezterm.enableHackFont = materusArg.pkgs.lib.mkBoolOpt true "Enable hack nerd font for wezterm"; options.materus.profile.wezterm.enableWezcraft = materusArg.pkgs.lib.mkBoolOpt true "Enable alias to start wezcraft with monocraft font"; options.materus.profile.wezterm.extraConfig = lib.mkOption { default = ""; description = "Config for wezterm"; type = lib.types.lines; }; config = lib.mkIf cfg.enable { programs.wezterm.enable = true; programs.wezterm.colorSchemes = { }; programs.wezterm.enableZshIntegration = false; programs.wezterm.extraConfig = '' package.path = package.path .. ";${materusArg.cfg.path}/extraFiles/config/wezterm/?.lua" require("wezterm_config"); local config = materus_wezterm_config(); ${lib.optionalString cfg.enableHackFont "config.font = wezterm.font 'Hack Nerd Font';"} ${cfg.extraConfig} return config; ''; home.packages = [ (lib.mkIf cfg.enableHackFont (pkgs.nerdfonts.override { fonts = [ "Hack" ]; })) (lib.mkIf cfg.enableWezcraft (pkgs.monocraft)) (lib.mkIf cfg.enableWezcraft (pkgs.writeShellScriptBin "wezcraft" '' ${lib.getExe config.programs.wezterm.package} --config font="wezterm.font 'Monocraft Nerd Font'" $@ '')) ]; materus.profile.zsh.endConfig = lib.optionalString cfg.enableWezcraft zshCfg; }; }