{ pkgs, config, ... }: { programs.wezterm = { enable = true; # Needs to be wrapped with GPU driver libraries on non-NixOS systems. # package = (config.lib.nixGL.wrap pkgs.wezterm); package = pkgs.emptyDirectory; # TODO: create `local config` & return it seperately, so other modules can # insert config in the middle extraConfig = let fonts = config.fonts.fontconfig.defaultFonts.monospace; in # lua '' local config = wezterm.config_builder() config.enable_tab_bar = false -- TODO: auto-set this depending on color scheme config.color_scheme = "rose-pine" config.font = wezterm.font_with_fallback({ { family = "Maple Mono NF", harfbuzz_features = { "cv02", "ss01", "ss02", "ss03", "ss04", "ss05", } }, ${toString (map (font: "{ family = \"${font}\" },") fonts)} { family = "FairiesevkaTerm Nerd Font Mono" }, { family = "FiraCode Nerd Font", harfbuzz_features = { "cv02", "cv06", "ss01", "cv14", "onum", "ss04", "cv18", "cv31", "cv30", "cv25", "cv26", "cv32", "ss06", "ss07", }, }, { family = "Apple Color Emoji" }, }) -- TODO: on mairley this should be set to 14.0 config.font_size = 11.0 return config ''; }; }