mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-15 13:04:38 +02:00
Wire up applying of font config
This commit is contained in:
@@ -2,9 +2,12 @@ package choose_fonts
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"kitty/tools/config"
|
||||
"kitty/tools/tui/loop"
|
||||
"kitty/tools/utils"
|
||||
)
|
||||
|
||||
var _ = fmt.Print
|
||||
@@ -72,6 +75,26 @@ func (self *final_pane) on_key_event(event *loop.KeyEvent) (err error) {
|
||||
self.handler.current_pane = &self.handler.faces
|
||||
return self.handler.draw_screen()
|
||||
}
|
||||
if event.MatchesPressOrRepeat("enter") {
|
||||
event.Handled = true
|
||||
patcher := config.Patcher{Write_backup: true}
|
||||
path := filepath.Join(utils.ConfigDir(), "kitty.conf")
|
||||
updated, err := patcher.Patch(path, "KITTY_FONTS", self.settings.serialized(), "font_family", "bold_font", "italic_font", "bold_italic_font")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if updated {
|
||||
switch self.handler.opts.Reload_in {
|
||||
case "parent":
|
||||
config.ReloadConfigInKitty(true)
|
||||
case "all":
|
||||
config.ReloadConfigInKitty(false)
|
||||
}
|
||||
}
|
||||
self.lp.Quit(0)
|
||||
return nil
|
||||
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ var _ = fmt.Print
|
||||
var debugprintln = tty.DebugPrintln
|
||||
var output_on_exit string
|
||||
|
||||
func main() (rc int, err error) {
|
||||
func main(opts *Options) (rc int, err error) {
|
||||
if err = kitty_font_backend.start(); err != nil {
|
||||
return 1, err
|
||||
}
|
||||
@@ -32,7 +32,7 @@ func main() (rc int, err error) {
|
||||
return 1, err
|
||||
}
|
||||
lp.MouseTrackingMode(loop.FULL_MOUSE_TRACKING)
|
||||
h := &handler{lp: lp}
|
||||
h := &handler{lp: lp, opts: opts}
|
||||
lp.OnInitialize = func() (string, error) {
|
||||
lp.AllowLineWrapping(false)
|
||||
lp.SetWindowTitle(`Choose a font for kitty`)
|
||||
@@ -67,13 +67,32 @@ func main() (rc int, err error) {
|
||||
return lp.ExitCode(), nil
|
||||
}
|
||||
|
||||
type Options struct {
|
||||
Reload_in string
|
||||
}
|
||||
|
||||
func EntryPoint(root *cli.Command) {
|
||||
ans := root.AddSubCommand(&cli.Command{
|
||||
Name: "choose-fonts",
|
||||
Name: "choose-fonts",
|
||||
ShortDescription: "Choose the fonts used in kitty",
|
||||
Run: func(cmd *cli.Command, args []string) (rc int, err error) {
|
||||
return main()
|
||||
opts := Options{}
|
||||
if err = cmd.GetOptionValues(&opts); err != nil {
|
||||
return 1, err
|
||||
}
|
||||
return main(&opts)
|
||||
},
|
||||
})
|
||||
ans.Add(cli.OptionSpec{
|
||||
Name: "--reload-in",
|
||||
Dest: "Reload_in",
|
||||
Type: "choices",
|
||||
Choices: "parent, all, none",
|
||||
Default: "parent",
|
||||
Help: `By default, this kitten will signal only the parent kitty instance it is
|
||||
running in to reload its config, after making changes. Use this option to
|
||||
instead either not reload the config at all or in all running kitty instances.`,
|
||||
})
|
||||
clone := root.AddClone(ans.Group, ans)
|
||||
clone.Hidden = false
|
||||
clone.Name = "choose_fonts"
|
||||
|
||||
@@ -40,6 +40,7 @@ type pane interface {
|
||||
}
|
||||
|
||||
type handler struct {
|
||||
opts *Options
|
||||
lp *loop.Loop
|
||||
state State
|
||||
err_mutex sync.Mutex
|
||||
|
||||
Reference in New Issue
Block a user