Option to hide logo (#1026)

mine
Jeroen Op 't Eynde 2021-03-19 15:15:04 +01:00 committed by GitHub
parent 552a3e39c4
commit e2866adcb5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 39 additions and 6 deletions

View File

@ -108,6 +108,7 @@ func loadConfiguration() *config.Config {
} }
k9sCfg.K9s.OverrideHeadless(*k9sFlags.Headless) k9sCfg.K9s.OverrideHeadless(*k9sFlags.Headless)
k9sCfg.K9s.OverrideLogoless(*k9sFlags.Logoless)
k9sCfg.K9s.OverrideCrumbsless(*k9sFlags.Crumbsless) k9sCfg.K9s.OverrideCrumbsless(*k9sFlags.Crumbsless)
k9sCfg.K9s.OverrideReadOnly(*k9sFlags.ReadOnly) k9sCfg.K9s.OverrideReadOnly(*k9sFlags.ReadOnly)
k9sCfg.K9s.OverrideWrite(*k9sFlags.Write) k9sCfg.K9s.OverrideWrite(*k9sFlags.Write)
@ -180,6 +181,12 @@ func initK9sFlags() {
false, false,
"Turn K9s header off", "Turn K9s header off",
) )
rootCmd.Flags().BoolVar(
k9sFlags.Logoless,
"logoless",
false,
"Turn K9s logo off",
)
rootCmd.Flags().BoolVar( rootCmd.Flags().BoolVar(
k9sFlags.Crumbsless, k9sFlags.Crumbsless,
"crumbsless", "crumbsless",

View File

@ -264,6 +264,7 @@ var expectedConfig = `k9s:
maxConnRetry: 5 maxConnRetry: 5
enableMouse: false enableMouse: false
headless: false headless: false
logoless: false
crumbsless: false crumbsless: false
readOnly: true readOnly: true
noIcons: false noIcons: false
@ -347,6 +348,7 @@ var resetConfig = `k9s:
maxConnRetry: 5 maxConnRetry: 5
enableMouse: false enableMouse: false
headless: false headless: false
logoless: false
crumbsless: false crumbsless: false
readOnly: false readOnly: false
noIcons: false noIcons: false

View File

@ -16,6 +16,7 @@ type Flags struct {
RefreshRate *int RefreshRate *int
LogLevel *string LogLevel *string
Headless *bool Headless *bool
Logoless *bool
Command *string Command *string
AllNamespaces *bool AllNamespaces *bool
ReadOnly *bool ReadOnly *bool
@ -29,6 +30,7 @@ func NewFlags() *Flags {
RefreshRate: intPtr(DefaultRefreshRate), RefreshRate: intPtr(DefaultRefreshRate),
LogLevel: strPtr(DefaultLogLevel), LogLevel: strPtr(DefaultLogLevel),
Headless: boolPtr(false), Headless: boolPtr(false),
Logoless: boolPtr(false),
Command: strPtr(DefaultCommand), Command: strPtr(DefaultCommand),
AllNamespaces: boolPtr(false), AllNamespaces: boolPtr(false),
ReadOnly: boolPtr(false), ReadOnly: boolPtr(false),

View File

@ -15,6 +15,7 @@ type K9s struct {
MaxConnRetry int `yaml:"maxConnRetry"` MaxConnRetry int `yaml:"maxConnRetry"`
EnableMouse bool `yaml:"enableMouse"` EnableMouse bool `yaml:"enableMouse"`
Headless bool `yaml:"headless"` Headless bool `yaml:"headless"`
Logoless bool `yaml:"logoless"`
Crumbsless bool `yaml:"crumbsless"` Crumbsless bool `yaml:"crumbsless"`
ReadOnly bool `yaml:"readOnly"` ReadOnly bool `yaml:"readOnly"`
NoIcons bool `yaml:"noIcons"` NoIcons bool `yaml:"noIcons"`
@ -25,6 +26,7 @@ type K9s struct {
Thresholds Threshold `yaml:"thresholds"` Thresholds Threshold `yaml:"thresholds"`
manualRefreshRate int manualRefreshRate int
manualHeadless *bool manualHeadless *bool
manualLogoless *bool
manualCrumbsless *bool manualCrumbsless *bool
manualReadOnly *bool manualReadOnly *bool
manualCommand *string manualCommand *string
@ -51,7 +53,12 @@ func (k *K9s) OverrideHeadless(b bool) {
k.manualHeadless = &b 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) { func (k *K9s) OverrideCrumbsless(b bool) {
k.manualCrumbsless = &b k.manualCrumbsless = &b
} }
@ -86,6 +93,16 @@ func (k *K9s) IsHeadless() bool {
return h 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. // IsCrumbsless returns crumbsless setting.
func (k *K9s) IsCrumbsless() bool { func (k *K9s) IsCrumbsless() bool {
h := k.Crumbsless h := k.Crumbsless

View File

@ -48,6 +48,7 @@ type App struct {
filterHistory *model.History filterHistory *model.History
conRetry int32 conRetry int32
showHeader bool showHeader bool
showLogo bool
showCrumbs bool showCrumbs bool
} }
@ -135,7 +136,7 @@ func (a *App) layout(ctx context.Context) {
a.Main.AddPage("main", main, true, false) a.Main.AddPage("main", main, true, false)
a.Main.AddPage("splash", ui.NewSplash(a.Styles, a.version), true, true) 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() { func (a *App) initSignals() {
@ -197,8 +198,9 @@ func (a *App) ActiveView() model.Component {
return a.Content.GetPrimitive("main").(model.Component) return a.Content.GetPrimitive("main").(model.Component)
} }
func (a *App) toggleHeader(flag bool) { func (a *App) toggleHeader(header, logo bool) {
a.showHeader = flag a.showHeader = header
a.showLogo = logo
flex, ok := a.Main.GetPrimitive("main").(*tview.Flex) flex, ok := a.Main.GetPrimitive("main").(*tview.Flex)
if !ok { if !ok {
log.Fatal().Msg("Expecting valid flex view") 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.clusterInfo(), clWidth, 1, false)
header.AddItem(a.Menu(), 0, 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 return header
} }
@ -524,7 +529,7 @@ func (a *App) toggleHeaderCmd(evt *tcell.EventKey) *tcell.EventKey {
a.QueueUpdateDraw(func() { a.QueueUpdateDraw(func() {
a.showHeader = !a.showHeader a.showHeader = !a.showHeader
a.toggleHeader(a.showHeader) a.toggleHeader(a.showHeader, a.showLogo)
}) })
return nil return nil