diff --git a/docs/keybindings/Keybindings_de.md b/docs/keybindings/Keybindings_de.md index b3a2642c..3934cf56 100644 --- a/docs/keybindings/Keybindings_de.md +++ b/docs/keybindings/Keybindings_de.md @@ -46,6 +46,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct S: start a: anbinden m: zeige Protokolle + t: cycle how many log lines are shown U: up project D: down project R: zeige Neustartoptionen diff --git a/docs/keybindings/Keybindings_en.md b/docs/keybindings/Keybindings_en.md index 390f6bcc..b9d7160f 100644 --- a/docs/keybindings/Keybindings_en.md +++ b/docs/keybindings/Keybindings_en.md @@ -46,6 +46,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct S: start a: attach m: view logs + t: cycle how many log lines are shown U: up project D: down project R: view restart options diff --git a/docs/keybindings/Keybindings_es.md b/docs/keybindings/Keybindings_es.md index 41725673..a0a46c51 100644 --- a/docs/keybindings/Keybindings_es.md +++ b/docs/keybindings/Keybindings_es.md @@ -46,6 +46,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct S: iniciar a: attach m: ver logs + t: cycle how many log lines are shown U: levantar proyecto D: dar de baja el proyecto R: ver opciones de reinicio diff --git a/docs/keybindings/Keybindings_fr.md b/docs/keybindings/Keybindings_fr.md index bb8db287..323be0d1 100644 --- a/docs/keybindings/Keybindings_fr.md +++ b/docs/keybindings/Keybindings_fr.md @@ -46,6 +46,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct S: démarrer a: attacher m: voir les enregistrements + t: cycle how many log lines are shown U: up project D: down project R: voir les options de redémarrage diff --git a/docs/keybindings/Keybindings_nl.md b/docs/keybindings/Keybindings_nl.md index 2c9a0755..1d4902e0 100644 --- a/docs/keybindings/Keybindings_nl.md +++ b/docs/keybindings/Keybindings_nl.md @@ -46,6 +46,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct S: start a: verbinden m: bekijk logs + t: cycle how many log lines are shown U: up project D: down project R: bekijk herstart opties diff --git a/docs/keybindings/Keybindings_pl.md b/docs/keybindings/Keybindings_pl.md index bd35a817..c08a1113 100644 --- a/docs/keybindings/Keybindings_pl.md +++ b/docs/keybindings/Keybindings_pl.md @@ -46,6 +46,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct S: start a: przyczep m: pokaż logi + t: cycle how many log lines are shown U: up project D: down project R: pokaż opcje restartu diff --git a/docs/keybindings/Keybindings_pt.md b/docs/keybindings/Keybindings_pt.md index d021f414..99183344 100644 --- a/docs/keybindings/Keybindings_pt.md +++ b/docs/keybindings/Keybindings_pt.md @@ -46,6 +46,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct S: iniciar a: anexar m: ver logs + t: cycle how many log lines are shown U: subir projeto D: derrubar projeto R: ver opções de reinício diff --git a/docs/keybindings/Keybindings_tr.md b/docs/keybindings/Keybindings_tr.md index f17c0f47..d97ea769 100644 --- a/docs/keybindings/Keybindings_tr.md +++ b/docs/keybindings/Keybindings_tr.md @@ -46,6 +46,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct S: start a: bağlan/iliştir m: kayıt defterini görüntüle + t: cycle how many log lines are shown U: up project D: down project R: yeniden başlatma seçeneklerini görüntüle diff --git a/docs/keybindings/Keybindings_zh.md b/docs/keybindings/Keybindings_zh.md index 678ee209..3263d839 100644 --- a/docs/keybindings/Keybindings_zh.md +++ b/docs/keybindings/Keybindings_zh.md @@ -46,6 +46,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct S: 启动项目 a: attach m: 查看日志 + t: cycle how many log lines are shown U: 创建并启动容器 D: 停止并移除容器 R: 查看重启选项 diff --git a/pkg/gui/container_logs.go b/pkg/gui/container_logs.go index 1fda78fd..7d00517d 100644 --- a/pkg/gui/container_logs.go +++ b/pkg/gui/container_logs.go @@ -44,6 +44,10 @@ func (gui *Gui) cycleContainerLogsTail(g *gocui.Gui, v *gocui.View) error { gui.State.ContainerLogsTail = containerLogsTailPresets[(currentIdx+1)%len(containerLogsTailPresets)] + if v != nil && v.Name() == "services" { + return gui.Panels.Services.HandleSelect() + } + return gui.Panels.Containers.HandleSelect() } @@ -77,8 +81,9 @@ func (w *tailLimitingWriter) Write(p []byte) (int, error) { w.lines = w.lines[excess:] } - w.view.Clear() - fmt.Fprint(w.view, strings.Join(w.lines, "\n")+"\n") + // SetContent clears and rewrites atomically, so the view never renders empty + // in between + w.view.SetContent(strings.Join(w.lines, "\n") + "\n") return len(p), nil } diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 2c7e0b0e..32f30929 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -325,6 +325,13 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Handler: gui.handleServiceRenderLogsToMain, Description: gui.Tr.ViewLogs, }, + { + ViewName: "services", + Key: 't', + Modifier: gocui.ModNone, + Handler: gui.cycleContainerLogsTail, + Description: gui.Tr.CycleContainerLogsTail, + }, { ViewName: "services", Key: 'U', diff --git a/pkg/gui/services_panel.go b/pkg/gui/services_panel.go index edc894e9..4b7fac8b 100644 --- a/pkg/gui/services_panel.go +++ b/pkg/gui/services_panel.go @@ -53,7 +53,7 @@ func (gui *Gui) getServicesPanel() *panels.SideListPanel[*commands.Service] { if service.Container == nil { return "services-" + service.ID } - return "services-" + service.ID + "-" + service.Container.ID + "-" + service.Container.Container.State + return "services-" + service.ID + "-" + service.Container.ID + "-" + service.Container.Container.State + "-" + gui.State.ContainerLogsTail }, }, ListPanel: panels.ListPanel[*commands.Service]{