diff --git a/cmd/root.go b/cmd/root.go index e01f5688..085b825c 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -108,6 +108,7 @@ func loadConfiguration() *config.Config { } k9sCfg.K9s.OverrideHeadless(*k9sFlags.Headless) + k9sCfg.K9s.OverrideLogoless(*k9sFlags.Logoless) k9sCfg.K9s.OverrideCrumbsless(*k9sFlags.Crumbsless) k9sCfg.K9s.OverrideReadOnly(*k9sFlags.ReadOnly) k9sCfg.K9s.OverrideWrite(*k9sFlags.Write) @@ -180,6 +181,12 @@ func initK9sFlags() { false, "Turn K9s header off", ) + rootCmd.Flags().BoolVar( + k9sFlags.Logoless, + "logoless", + false, + "Turn K9s logo off", + ) rootCmd.Flags().BoolVar( k9sFlags.Crumbsless, "crumbsless", diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 600f8293..9a97f852 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -264,6 +264,7 @@ var expectedConfig = `k9s: maxConnRetry: 5 enableMouse: false headless: false + logoless: false crumbsless: false readOnly: true noIcons: false @@ -347,6 +348,7 @@ var resetConfig = `k9s: maxConnRetry: 5 enableMouse: false headless: false + logoless: false crumbsless: false readOnly: false noIcons: false diff --git a/internal/config/flags.go b/internal/config/flags.go index df776907..6fb05bc8 100644 --- a/internal/config/flags.go +++ b/internal/config/flags.go @@ -16,6 +16,7 @@ type Flags struct { RefreshRate *int LogLevel *string Headless *bool + Logoless *bool Command *string AllNamespaces *bool ReadOnly *bool @@ -29,6 +30,7 @@ func NewFlags() *Flags { RefreshRate: intPtr(DefaultRefreshRate), LogLevel: strPtr(DefaultLogLevel), Headless: boolPtr(false), + Logoless: boolPtr(false), Command: strPtr(DefaultCommand), AllNamespaces: boolPtr(false), ReadOnly: boolPtr(false), diff --git a/internal/config/k9s.go b/internal/config/k9s.go index 366af326..9a04d3a4 100644 --- a/internal/config/k9s.go +++ b/internal/config/k9s.go @@ -15,6 +15,7 @@ type K9s struct { MaxConnRetry int `yaml:"maxConnRetry"` EnableMouse bool `yaml:"enableMouse"` Headless bool `yaml:"headless"` + Logoless bool `yaml:"logoless"` Crumbsless bool `yaml:"crumbsless"` ReadOnly bool `yaml:"readOnly"` NoIcons bool `yaml:"noIcons"` @@ -25,6 +26,7 @@ type K9s struct { Thresholds Threshold `yaml:"thresholds"` manualRefreshRate int manualHeadless *bool + manualLogoless *bool manualCrumbsless *bool manualReadOnly *bool manualCommand *string @@ -51,7 +53,12 @@ func (k *K9s) OverrideHeadless(b bool) { k.manualHeadless = &b } -// OverrideCrumbsless set the headlessness manually. +// OverrideLogoless set the logolessness manually. +func (k *K9s) OverrideLogoless(b bool) { + k.manualLogoless = &b +} + +// OverrideCrumbsless set the crumbslessness manually. func (k *K9s) OverrideCrumbsless(b bool) { k.manualCrumbsless = &b } @@ -86,6 +93,16 @@ func (k *K9s) IsHeadless() bool { return h } +// IsLogoless returns logoless setting. +func (k *K9s) IsLogoless() bool { + h := k.Logoless + if k.manualLogoless != nil && *k.manualLogoless { + h = *k.manualLogoless + } + + return h +} + // IsCrumbsless returns crumbsless setting. func (k *K9s) IsCrumbsless() bool { h := k.Crumbsless diff --git a/internal/view/app.go b/internal/view/app.go index 8220287f..b988aa40 100644 --- a/internal/view/app.go +++ b/internal/view/app.go @@ -48,6 +48,7 @@ type App struct { filterHistory *model.History conRetry int32 showHeader bool + showLogo bool showCrumbs bool } @@ -135,7 +136,7 @@ func (a *App) layout(ctx context.Context) { a.Main.AddPage("main", main, true, false) a.Main.AddPage("splash", ui.NewSplash(a.Styles, a.version), true, true) - a.toggleHeader(!a.Config.K9s.IsHeadless()) + a.toggleHeader(!a.Config.K9s.IsHeadless(), !a.Config.K9s.IsLogoless()) } func (a *App) initSignals() { @@ -197,8 +198,9 @@ func (a *App) ActiveView() model.Component { return a.Content.GetPrimitive("main").(model.Component) } -func (a *App) toggleHeader(flag bool) { - a.showHeader = flag +func (a *App) toggleHeader(header, logo bool) { + a.showHeader = header + a.showLogo = logo flex, ok := a.Main.GetPrimitive("main").(*tview.Flex) if !ok { log.Fatal().Msg("Expecting valid flex view") @@ -245,7 +247,10 @@ func (a *App) buildHeader() tview.Primitive { } header.AddItem(a.clusterInfo(), clWidth, 1, false) header.AddItem(a.Menu(), 0, 1, false) - header.AddItem(a.Logo(), 26, 1, false) + + if a.showLogo { + header.AddItem(a.Logo(), 26, 1, false) + } return header } @@ -524,7 +529,7 @@ func (a *App) toggleHeaderCmd(evt *tcell.EventKey) *tcell.EventKey { a.QueueUpdateDraw(func() { a.showHeader = !a.showHeader - a.toggleHeader(a.showHeader) + a.toggleHeader(a.showHeader, a.showLogo) }) return nil