86 lines
2.1 KiB
Nix
86 lines
2.1 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib) mkIf;
|
|
inherit (lib.marleyos) mkEnableModule;
|
|
|
|
cfg = config.marleyos.programs.wezterm;
|
|
inherit (config.marleyos.theme) colors;
|
|
|
|
isGenericLinux = config.targets.genericLinux.enable;
|
|
in
|
|
{
|
|
options.marleyos = mkEnableModule "programs.wezterm";
|
|
|
|
config = mkIf cfg.enable {
|
|
programs.wezterm = {
|
|
enable = true;
|
|
|
|
# Non-NixOS Linux systems don't have proper GPU integration, so we
|
|
# unfortunately need to use the native package manager version.
|
|
package = mkIf isGenericLinux pkgs.emptyDirectory;
|
|
|
|
# TODO: create `local config` & return it seperately, so other modules can
|
|
# insert config in the middle
|
|
extraConfig =
|
|
let
|
|
# TODO: Set this in marleyos.theme
|
|
fonts = config.fonts.fontconfig.defaultFonts.monospace;
|
|
in
|
|
# lua
|
|
''
|
|
local config = wezterm.config_builder()
|
|
|
|
config.enable_tab_bar = false
|
|
|
|
config.color_scheme = "${colors.base}"
|
|
|
|
config.font = wezterm.font_with_fallback({
|
|
{
|
|
family = "Maple Mono NF",
|
|
-- TODO: Set this in marleyos.theme
|
|
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
|
|
'';
|
|
};
|
|
};
|
|
}
|