-
Notifications
You must be signed in to change notification settings - Fork 3
/
wezterm.lua.wz
64 lines (59 loc) · 1.5 KB
/
wezterm.lua.wz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
@require(scheme, fonts, keys, misc)
local wezterm = require "wezterm"
local scheme_bases = {
@for base in scheme['bases']:
"@{base}",
@end
}
local scheme_base = scheme_bases[math.random(1, #scheme_bases)]
local scheme = wezterm.get_builtin_color_schemes()[scheme_base]
@for prop, val in scheme['overrides'].items():
scheme.@{prop} = "@{val}"
@end
return {
color_schemes = { ["ConfiguredColors"] = scheme },
color_scheme = "ConfiguredColors",
window_background_opacity = @{scheme['opacity']},
default_cursor_style = "@{scheme['cursor']}",
animation_fps = @{scheme['fps']},
@for cfg, val in misc.items():
@(quoted = val if val in ('true', 'false') else f'"{val}"')\
@{cfg} = @{quoted},
@end
font_size = @{fonts['size']},
font = wezterm.font_with_fallback({
@for family in fonts['families']['main']:
"@{family}",
@end
}),
font_rules = {
@if 'italic' in fonts['families']:
{
intensity = "Bold",
italic = true,
font = wezterm.font {
family = "@{fonts['families']['italic']}",
weight = "Bold",
style = "Italic",
}
},
{
italic = true,
font = wezterm.font {
family = "@{fonts['families']['italic']}",
style = "Italic",
}
}
@end
},
harfbuzz_features = {
@for feature in fonts['features']:
"@{feature}",
@end
},
keys = {
@for keybind in keys:
{ key = "@{keybind['key']}", mods = "@{keybind['mods']}", action = wezterm.action.@{keybind['action']} },
@end
},
}