feat: allow customization of log indicator toggles closes #2024 (#2041)

mine
Mike 2023-05-07 10:18:10 -04:00 committed by GitHub
parent 03f0d5a00e
commit 465c947517
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 15 deletions

View File

@ -866,8 +866,13 @@ k9s:
valueColor: royalblue
# Logs styles.
logs:
fgColor: white
fgColor: lightskyblue
bgColor: black
indicator:
fgColor: dodgerblue
bgColor: black
toggleOnColor: limegreen
toggleOffColor: gray
```
---

View File

@ -121,8 +121,10 @@ type (
// LogIndicator tracks log view indicator.
LogIndicator struct {
FgColor Color `yaml:"fgColor"`
BgColor Color `yaml:"bgColor"`
FgColor Color `yaml:"fgColor"`
BgColor Color `yaml:"bgColor"`
ToggleOnColor Color `yaml:"toggleOnColor"`
ToggleOffColor Color `yaml:"toggleOffColor"`
}
// Yaml tracks yaml styles.
@ -367,8 +369,10 @@ func newLog() Log {
func newLogIndicator() LogIndicator {
return LogIndicator{
FgColor: "dodgerblue",
BgColor: "black",
FgColor: "dodgerblue",
BgColor: "black",
ToggleOnColor: "limegreen",
ToggleOffColor: "gray",
}
}

View File

@ -1,6 +1,7 @@
package view
import (
"fmt"
"sync/atomic"
"github.com/derailed/k9s/internal/config"
@ -47,6 +48,7 @@ func NewLogIndicator(cfg *config.Config, styles *config.Styles, allContainers bo
func (l *LogIndicator) StylesChanged(styles *config.Styles) {
l.SetBackgroundColor(styles.K9s.Views.Log.Indicator.BgColor.Color())
l.SetTextColor(styles.K9s.Views.Log.Indicator.FgColor.Color())
l.Refresh()
}
// AutoScroll reports the current scrolling status.
@ -111,36 +113,39 @@ func (l *LogIndicator) reset() {
func (l *LogIndicator) Refresh() {
l.reset()
toggleOnFormat := "[::b]%s:[" + string(l.styles.K9s.Views.Log.Indicator.ToggleOnColor) + "::b]On[-::] %s"
toggleOffFormat := "[::b]%s:[" + string(l.styles.K9s.Views.Log.Indicator.ToggleOffColor) + "::d]Off[-::]%s"
if l.shouldDisplayAllContainers {
if l.allContainers {
l.indicator = append(l.indicator, "[::b]AllContainers:[limegreen::b]On[-::] "+spacer...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "AllContainers", spacer)...)
} else {
l.indicator = append(l.indicator, "[::b]AllContainers:[gray::d]Off[-::]"+spacer...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "AllContainers", spacer)...)
}
}
if l.AutoScroll() {
l.indicator = append(l.indicator, "[::b]Autoscroll:[limegreen::b]On[-::] "+spacer...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "Autoscroll", spacer)...)
} else {
l.indicator = append(l.indicator, "[::b]Autoscroll:[gray::d]Off[-::]"+spacer...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "Autoscroll", spacer)...)
}
if l.FullScreen() {
l.indicator = append(l.indicator, "[::b]FullScreen:[limegreen::b]On[-::] "+spacer...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "FullScreen", spacer)...)
} else {
l.indicator = append(l.indicator, "[::b]FullScreen:[gray::d]Off[-::]"+spacer...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "FullScreen", spacer)...)
}
if l.Timestamp() {
l.indicator = append(l.indicator, "[::b]Timestamps:[limegreen::b]On[-::] "+spacer...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "Timestamps", spacer)...)
} else {
l.indicator = append(l.indicator, "[::b]Timestamps:[gray::d]Off[-::]"+spacer...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "Timestamps", spacer)...)
}
if l.TextWrap() {
l.indicator = append(l.indicator, "[::b]Wrap:[limegreen::b]On[-::] "...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "Wrap", "")...)
} else {
l.indicator = append(l.indicator, "[::b]Wrap:[gray::d]Off[-::]"...)
l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "Wrap", "")...)
}
_, _ = l.Write(l.indicator)