Networklist now properly darkens custom colors from networks

This commit is contained in:
2025-02-10 16:57:30 +02:00
parent 20bea80313
commit 1c4ecdebee
3 changed files with 23 additions and 11 deletions

View File

@@ -156,6 +156,7 @@ func Save() {
func Restore() {
Load(colors)
isDarkened = false
}
func Load(colors []lipgloss.Color) {
@@ -255,15 +256,25 @@ func ToHexRGB(r, g, b uint8) string {
return fmt.Sprintf("#%02X%02X%02X", r, g, b)
}
var isDarkened = false
const DarkeningFactor = 0.5
func Darken() {
Save()
colors := Get()
for i, color := range colors {
colors[i] = DarkenColor(color, 0.5)
colors[i] = DarkenColor(color, DarkeningFactor)
}
Load(colors)
isDarkened = true
}
func IsDarkened() bool {
return isDarkened
}
func DarkenColor(color lipgloss.Color, factor float64) lipgloss.Color {

View File

@@ -171,6 +171,8 @@ func (m Model) View() string {
popup = m.banViewPopup.View()
} else if m.signalAddPopup != nil {
popup = m.signalAddPopup.View()
} else {
assert.Never("missing handling of a popup!")
}
x := (ui.Width - lipgloss.Width(popup)) / 2

View File

@@ -75,6 +75,13 @@ func (m Model) View() string {
networks = networks[m.base:upper]
for i, networkId := range networks {
network := state.State.Networks[networkId]
fg := lipgloss.Color(network.FgHexColor)
bg := lipgloss.Color(network.BgHexColor)
if colors.IsDarkened() {
fg = colors.DarkenColor(fg, colors.DarkeningFactor)
bg = colors.DarkenColor(bg, colors.DarkeningFactor)
}
pings, ok := 0, false
frequencies := state.State.Frequencies[networkId]
@@ -86,17 +93,9 @@ func (m Model) View() string {
var icon lipgloss.Style
if ok && pings != 0 {
icon = ui.IconStyleNotif(network.Icon,
lipgloss.Color(network.FgHexColor),
lipgloss.Color(network.BgHexColor),
colors.BackgroundDimmer, pings,
)
icon = ui.IconStyleNotif(network.Icon, fg, bg, colors.BackgroundDimmer, pings)
} else {
icon = ui.IconStyle(network.Icon,
lipgloss.Color(network.FgHexColor),
lipgloss.Color(network.BgHexColor),
colors.BackgroundDimmer,
)
icon = ui.IconStyle(network.Icon, fg, bg, colors.BackgroundDimmer)
}
if m.index == m.base+i {