diff --git a/kittens/choose_fonts/backend.py b/kittens/choose_fonts/backend.py index f4adfe41f..ff49553e0 100644 --- a/kittens/choose_fonts/backend.py +++ b/kittens/choose_fonts/backend.py @@ -174,7 +174,7 @@ def render_family_sample( return ans -ResolvedFace = Dict[Literal['family', 'spec'], str] +ResolvedFace = Dict[Literal['family', 'spec', 'setting'], str] def spec_for_descriptor(d: Descriptor, font_size: float) -> str: @@ -187,7 +187,10 @@ def resolved_faces(opts: Options) -> Dict[OptNames, ResolvedFace]: ans: Dict[OptNames, ResolvedFace] = {} def d(key: Literal['medium', 'bold', 'italic', 'bi'], opt_name: OptNames) -> None: descriptor = font_files[key] - ans[opt_name] = {'family': descriptor['family'], 'spec': spec_for_descriptor(descriptor, opts.font_size)} + ans[opt_name] = { + 'family': descriptor['family'], 'spec': spec_for_descriptor(descriptor, opts.font_size), + 'setting': getattr(opts, opt_name).created_from_string + } d('medium', 'font_family') d('bold', 'bold_font') d('italic', 'italic_font') diff --git a/kittens/choose_fonts/faces.go b/kittens/choose_fonts/faces.go index b972582b1..77b607f7c 100644 --- a/kittens/choose_fonts/faces.go +++ b/kittens/choose_fonts/faces.go @@ -148,7 +148,8 @@ func (self *faces) on_enter(family string) error { self.family = family r := self.handler.listing.resolved_faces_from_kitty_conf d := func(conf ResolvedFace, setting *string, defval string) { - *setting = utils.IfElse(family == conf.Family, conf.Spec, defval) + s := utils.IfElse(conf.Setting == "auto", "auto", conf.Spec) + *setting = utils.IfElse(family == conf.Family, s, defval) } d(r.Font_family, &self.settings.font_family, fmt.Sprintf(`family="%s"`, family)) d(r.Bold_font, &self.settings.bold_font, "auto") diff --git a/kittens/choose_fonts/types.go b/kittens/choose_fonts/types.go index e00ec2f19..11cbf01e6 100644 --- a/kittens/choose_fonts/types.go +++ b/kittens/choose_fonts/types.go @@ -76,8 +76,9 @@ type VariableData struct { } type ResolvedFace struct { - Family string `json:"family"` - Spec string `json:"spec"` + Family string `json:"family"` + Spec string `json:"spec"` + Setting string `json:"setting"` } type ResolvedFaces struct {