From b07d8bd8f7af40872d5e636a98868cf654d02548 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 9 Feb 2025 13:09:42 -0600 Subject: rename --- color.go | 337 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ colorNew.go | 337 ------------------------------------------------------------ 2 files changed, 337 insertions(+), 337 deletions(-) create mode 100644 color.go delete mode 100644 colorNew.go diff --git a/color.go b/color.go new file mode 100644 index 0000000..bb61984 --- /dev/null +++ b/color.go @@ -0,0 +1,337 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "math/rand" + + "github.com/awesome-gocui/gocui" + "go.wit.com/log" +) + +// simple colors for light and dark + +// information about how terminfo works +// https://jvns.ca/blog/2024/10/01/terminal-colours/ + +// TODO: move all this to a protobuf +// TODO: add black/white only flag for ttyS0 +// TODO: fix kvm/qemu serial console & SIGWINCH. +// TODO: check minicom (doesn't work) +// TODO: fix riscv boards + +// DONE ON ENABLE() WIDGET +// restores the last saved color and makes it active +func (tk *guiWidget) restoreEnableColor() { + if tk.color == nil { + tk.color = new(colorT) + } + tk.color.frame = tk.colorLast.frame + tk.color.fg = tk.colorLast.fg + tk.color.bg = tk.colorLast.bg + tk.color.selFg = tk.colorLast.selFg + tk.color.selBg = tk.colorLast.selBg + + tk.activateColor() +} + +// DONE ON DISABLE() WIDGET +// makes the button look disabled +func (tk *guiWidget) setColorDisable() { + if tk.color == nil { + tk.color = new(colorT) + } + // save the current color + tk.color.frame = superLightGrey + tk.color.fg = gocui.ColorBlack + tk.color.bg = superLightGrey + tk.color.selFg = superLightGrey + tk.color.selBg = superLightGrey + tk.activateColor() +} + +// sets the current gocui highlight colors +func (tk *guiWidget) activateColor() { + if tk.v == nil { + return + } + tk.v.FrameColor = tk.color.frame + tk.v.FgColor = tk.color.fg + tk.v.BgColor = tk.color.bg + tk.v.SelFgColor = tk.color.selFg + tk.v.SelBgColor = tk.color.selBg +} + +// saves the color and makes it active +func (tk *guiWidget) updateColor() { + if tk.v == nil { + return + } + tk.colorLast.frame = tk.color.frame + tk.colorLast.fg = tk.color.fg + tk.colorLast.bg = tk.color.bg + tk.colorLast.selFg = tk.color.selFg + tk.colorLast.selBg = tk.color.selBg + + tk.activateColor() +} + +// Below are all the colors. TODO: move to protobuf and save in a config file + +func (tk *guiWidget) setColorWindowFrame() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { // use a dark color palette + tk.color.frame = gocui.AttrNone + tk.color.fg = gocui.ColorBlack + tk.color.bg = gocui.ColorBlack + tk.color.selFg = gocui.AttrNone + tk.color.selBg = gocui.AttrNone + } else { + tk.color.frame = gocui.AttrNone + tk.color.fg = gocui.AttrNone + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.AttrNone + tk.color.selBg = gocui.AttrNone + } + + tk.updateColor() +} + +// weird. lots of color problems for me on debian sid using the traditional Andy Herzfield 'gnome' +func (tk *guiWidget) setColorWindowTitleActive() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { // use a dark color palette + tk.color.frame = gocui.AttrNone + tk.color.fg = gocui.ColorBlue + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.ColorWhite + tk.color.selBg = gocui.ColorBlue + } else { + tk.color.frame = gocui.ColorWhite + tk.color.fg = gocui.ColorWhite + tk.color.bg = gocui.ColorBlue + tk.color.selFg = gocui.ColorWhite + tk.color.selBg = gocui.ColorBlue + } + + tk.updateColor() +} + +func (tk *guiWidget) setColorWindowTitle() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { // use a dark color palette + tk.color.frame = gocui.AttrNone + tk.color.fg = gocui.ColorBlue + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.ColorWhite + tk.color.selBg = gocui.ColorBlue + } else { + tk.color.frame = gocui.ColorWhite + tk.color.fg = gocui.ColorBlue + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.ColorWhite + tk.color.selBg = gocui.ColorBlue + } + + tk.updateColor() +} + +func (tk *guiWidget) setColorBG() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { + tk.color.frame = gocui.AttrNone + tk.color.fg = gocui.ColorBlack + tk.color.bg = gocui.ColorBlack + tk.color.selFg = gocui.AttrNone + tk.color.selBg = gocui.AttrNone + } else { + tk.color.frame = gocui.ColorWhite + tk.color.fg = gocui.ColorWhite + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.AttrNone + tk.color.selBg = gocui.AttrNone + } + + tk.updateColor() +} + +func (tk *guiWidget) setColorLabel() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { + tk.color.frame = gocui.AttrNone + tk.color.fg = gocui.ColorWhite + tk.color.bg = gocui.ColorBlack + tk.color.selFg = gocui.ColorWhite + tk.color.selBg = gocui.AttrNone + } else { + tk.color.frame = gocui.AttrNone + tk.color.fg = gocui.ColorBlack + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.AttrNone + tk.color.selBg = gocui.ColorWhite + } + + tk.updateColor() +} + +func (tk *guiWidget) setColorButtonDense() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { + tk.color.frame = gocui.AttrNone + tk.color.fg = gocui.ColorBlue + tk.color.bg = gocui.ColorBlack + tk.color.selFg = gocui.ColorWhite + tk.color.selBg = gocui.ColorBlue + } else { + tk.color.frame = gocui.AttrNone + tk.color.fg = gocui.ColorWhite + tk.color.bg = gocui.ColorBlue + tk.color.selFg = gocui.ColorBlue + tk.color.selBg = gocui.AttrNone + } + + tk.updateColor() +} + +func (tk *guiWidget) setColorButton() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { + tk.color.frame = gocui.ColorBlack + tk.color.fg = gocui.ColorBlue + tk.color.bg = gocui.ColorBlack + tk.color.selFg = gocui.ColorWhite + tk.color.selBg = gocui.ColorBlue + } else { + tk.color.frame = gocui.ColorBlue + tk.color.fg = gocui.AttrNone + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.ColorWhite + tk.color.selBg = gocui.ColorBlue + } + + tk.updateColor() +} + +func (tk *guiWidget) setColorInput() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { + tk.color.frame = gocui.ColorYellow + tk.color.fg = gocui.AttrNone + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.ColorYellow + tk.color.selBg = gocui.ColorBlack + } else { + tk.color.frame = gocui.ColorYellow + tk.color.fg = gocui.AttrNone + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.ColorYellow + tk.color.selBg = gocui.ColorBlack + } + tk.updateColor() +} + +func (tk *guiWidget) setColorModal() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { + tk.color.frame = gocui.ColorRed + tk.color.fg = gocui.ColorRed + tk.color.bg = gocui.ColorBlack + tk.color.selFg = gocui.ColorBlack + tk.color.selBg = gocui.AttrNone + } else { + tk.color.frame = gocui.ColorRed + tk.color.fg = gocui.AttrNone + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.AttrNone + tk.color.selBg = gocui.ColorWhite + } + tk.updateColor() +} + +// what genius figured this out? +func (tk *guiWidget) setColorTextbox() { + if tk.color == nil { + tk.color = new(colorT) + } + if me.dark { + tk.color.frame = gocui.ColorRed + tk.color.fg = gocui.ColorRed + tk.color.bg = gocui.ColorBlack + tk.color.selFg = gocui.ColorBlack + tk.color.selBg = gocui.AttrNone + } else { + tk.color.frame = gocui.ColorRed + tk.color.fg = gocui.AttrNone + tk.color.bg = gocui.AttrNone + tk.color.selFg = gocui.AttrNone + tk.color.selBg = gocui.ColorWhite + } + tk.updateColor() +} + +// just notes down here + +// what genius figured this out? +// originally from github.com/dimasma0305/GoFetch +func get_teminal_color_palette() string { + // var runes rune + // color1 := "\x1b[0;29m  \x1b[0m" + // runes = []rune(color1) + // view.WriteRunes(runes) + + color1 := "\x1b[0;29m  \x1b[0m" + color2 := "\x1b[0;31m  \x1b[0m" + color3 := "\x1b[0;32m  \x1b[0m" + color4 := "\x1b[0;33m  \x1b[0m" + color5 := "\x1b[0;34m  \x1b[0m" + color6 := "\x1b[0;35m  \x1b[0m" + color7 := "\x1b[0;36m  \x1b[0m" + color8 := "\x1b[0;37m  \x1b[0m" + + return color1 + " " + color2 + " " + color3 + " " + color4 + " " + color5 + " " + color6 + " " + color7 + " " + color8 +} + +func randColor() gocui.Attribute { + colors := []string{"Green", "#FFAA55", "Yellow", "Blue", "Red", "Black", "White"} + i := rand.Intn(len(colors)) + log.Log(NOW, "randColor() i =", i) + return gocui.GetColor(colors[i]) +} + +var none gocui.Attribute = gocui.AttrNone +var colorNone colorT = colorT{none, none, none, none, none, "debug none"} + +var lightPurple gocui.Attribute = gocui.GetColor("#DDDDDD") // light purple +var darkPurple gocui.Attribute = gocui.GetColor("#FFAA55") // Dark Purple +var heavyPurple gocui.Attribute = gocui.GetColor("#88AA55") // heavy purple +var powdererBlue gocui.Attribute = gocui.GetColor("#B0E0E6") // w3c 'powerder blue' +var superLightGrey gocui.Attribute = gocui.GetColor("#55AAFF") // super light grey + +// Standard defined colors from gocui: +// ColorBlack ColorRed ColorGreen ColorYellow ColorBlue ColorMagenta ColorCyan ColorWhite + +// v.BgColor = gocui.GetColor("#111111") // crazy red +// v.BgColor = gocui.GetColor("#FF9911") // heavy red +// v.SelBgColor = gocui.GetColor("#FFEE11") // blood red + +// v.BgColor = gocui.GetColor("#55AAFF") // super light grey +// v.BgColor = gocui.GetColor("#FFC0CB") // 'w3c pink' yellow diff --git a/colorNew.go b/colorNew.go deleted file mode 100644 index bb61984..0000000 --- a/colorNew.go +++ /dev/null @@ -1,337 +0,0 @@ -// Copyright 2017-2025 WIT.COM Inc. All rights reserved. -// Use of this source code is governed by the GPL 3.0 - -package main - -import ( - "math/rand" - - "github.com/awesome-gocui/gocui" - "go.wit.com/log" -) - -// simple colors for light and dark - -// information about how terminfo works -// https://jvns.ca/blog/2024/10/01/terminal-colours/ - -// TODO: move all this to a protobuf -// TODO: add black/white only flag for ttyS0 -// TODO: fix kvm/qemu serial console & SIGWINCH. -// TODO: check minicom (doesn't work) -// TODO: fix riscv boards - -// DONE ON ENABLE() WIDGET -// restores the last saved color and makes it active -func (tk *guiWidget) restoreEnableColor() { - if tk.color == nil { - tk.color = new(colorT) - } - tk.color.frame = tk.colorLast.frame - tk.color.fg = tk.colorLast.fg - tk.color.bg = tk.colorLast.bg - tk.color.selFg = tk.colorLast.selFg - tk.color.selBg = tk.colorLast.selBg - - tk.activateColor() -} - -// DONE ON DISABLE() WIDGET -// makes the button look disabled -func (tk *guiWidget) setColorDisable() { - if tk.color == nil { - tk.color = new(colorT) - } - // save the current color - tk.color.frame = superLightGrey - tk.color.fg = gocui.ColorBlack - tk.color.bg = superLightGrey - tk.color.selFg = superLightGrey - tk.color.selBg = superLightGrey - tk.activateColor() -} - -// sets the current gocui highlight colors -func (tk *guiWidget) activateColor() { - if tk.v == nil { - return - } - tk.v.FrameColor = tk.color.frame - tk.v.FgColor = tk.color.fg - tk.v.BgColor = tk.color.bg - tk.v.SelFgColor = tk.color.selFg - tk.v.SelBgColor = tk.color.selBg -} - -// saves the color and makes it active -func (tk *guiWidget) updateColor() { - if tk.v == nil { - return - } - tk.colorLast.frame = tk.color.frame - tk.colorLast.fg = tk.color.fg - tk.colorLast.bg = tk.color.bg - tk.colorLast.selFg = tk.color.selFg - tk.colorLast.selBg = tk.color.selBg - - tk.activateColor() -} - -// Below are all the colors. TODO: move to protobuf and save in a config file - -func (tk *guiWidget) setColorWindowFrame() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { // use a dark color palette - tk.color.frame = gocui.AttrNone - tk.color.fg = gocui.ColorBlack - tk.color.bg = gocui.ColorBlack - tk.color.selFg = gocui.AttrNone - tk.color.selBg = gocui.AttrNone - } else { - tk.color.frame = gocui.AttrNone - tk.color.fg = gocui.AttrNone - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.AttrNone - tk.color.selBg = gocui.AttrNone - } - - tk.updateColor() -} - -// weird. lots of color problems for me on debian sid using the traditional Andy Herzfield 'gnome' -func (tk *guiWidget) setColorWindowTitleActive() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { // use a dark color palette - tk.color.frame = gocui.AttrNone - tk.color.fg = gocui.ColorBlue - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.ColorWhite - tk.color.selBg = gocui.ColorBlue - } else { - tk.color.frame = gocui.ColorWhite - tk.color.fg = gocui.ColorWhite - tk.color.bg = gocui.ColorBlue - tk.color.selFg = gocui.ColorWhite - tk.color.selBg = gocui.ColorBlue - } - - tk.updateColor() -} - -func (tk *guiWidget) setColorWindowTitle() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { // use a dark color palette - tk.color.frame = gocui.AttrNone - tk.color.fg = gocui.ColorBlue - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.ColorWhite - tk.color.selBg = gocui.ColorBlue - } else { - tk.color.frame = gocui.ColorWhite - tk.color.fg = gocui.ColorBlue - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.ColorWhite - tk.color.selBg = gocui.ColorBlue - } - - tk.updateColor() -} - -func (tk *guiWidget) setColorBG() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { - tk.color.frame = gocui.AttrNone - tk.color.fg = gocui.ColorBlack - tk.color.bg = gocui.ColorBlack - tk.color.selFg = gocui.AttrNone - tk.color.selBg = gocui.AttrNone - } else { - tk.color.frame = gocui.ColorWhite - tk.color.fg = gocui.ColorWhite - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.AttrNone - tk.color.selBg = gocui.AttrNone - } - - tk.updateColor() -} - -func (tk *guiWidget) setColorLabel() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { - tk.color.frame = gocui.AttrNone - tk.color.fg = gocui.ColorWhite - tk.color.bg = gocui.ColorBlack - tk.color.selFg = gocui.ColorWhite - tk.color.selBg = gocui.AttrNone - } else { - tk.color.frame = gocui.AttrNone - tk.color.fg = gocui.ColorBlack - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.AttrNone - tk.color.selBg = gocui.ColorWhite - } - - tk.updateColor() -} - -func (tk *guiWidget) setColorButtonDense() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { - tk.color.frame = gocui.AttrNone - tk.color.fg = gocui.ColorBlue - tk.color.bg = gocui.ColorBlack - tk.color.selFg = gocui.ColorWhite - tk.color.selBg = gocui.ColorBlue - } else { - tk.color.frame = gocui.AttrNone - tk.color.fg = gocui.ColorWhite - tk.color.bg = gocui.ColorBlue - tk.color.selFg = gocui.ColorBlue - tk.color.selBg = gocui.AttrNone - } - - tk.updateColor() -} - -func (tk *guiWidget) setColorButton() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { - tk.color.frame = gocui.ColorBlack - tk.color.fg = gocui.ColorBlue - tk.color.bg = gocui.ColorBlack - tk.color.selFg = gocui.ColorWhite - tk.color.selBg = gocui.ColorBlue - } else { - tk.color.frame = gocui.ColorBlue - tk.color.fg = gocui.AttrNone - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.ColorWhite - tk.color.selBg = gocui.ColorBlue - } - - tk.updateColor() -} - -func (tk *guiWidget) setColorInput() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { - tk.color.frame = gocui.ColorYellow - tk.color.fg = gocui.AttrNone - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.ColorYellow - tk.color.selBg = gocui.ColorBlack - } else { - tk.color.frame = gocui.ColorYellow - tk.color.fg = gocui.AttrNone - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.ColorYellow - tk.color.selBg = gocui.ColorBlack - } - tk.updateColor() -} - -func (tk *guiWidget) setColorModal() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { - tk.color.frame = gocui.ColorRed - tk.color.fg = gocui.ColorRed - tk.color.bg = gocui.ColorBlack - tk.color.selFg = gocui.ColorBlack - tk.color.selBg = gocui.AttrNone - } else { - tk.color.frame = gocui.ColorRed - tk.color.fg = gocui.AttrNone - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.AttrNone - tk.color.selBg = gocui.ColorWhite - } - tk.updateColor() -} - -// what genius figured this out? -func (tk *guiWidget) setColorTextbox() { - if tk.color == nil { - tk.color = new(colorT) - } - if me.dark { - tk.color.frame = gocui.ColorRed - tk.color.fg = gocui.ColorRed - tk.color.bg = gocui.ColorBlack - tk.color.selFg = gocui.ColorBlack - tk.color.selBg = gocui.AttrNone - } else { - tk.color.frame = gocui.ColorRed - tk.color.fg = gocui.AttrNone - tk.color.bg = gocui.AttrNone - tk.color.selFg = gocui.AttrNone - tk.color.selBg = gocui.ColorWhite - } - tk.updateColor() -} - -// just notes down here - -// what genius figured this out? -// originally from github.com/dimasma0305/GoFetch -func get_teminal_color_palette() string { - // var runes rune - // color1 := "\x1b[0;29m  \x1b[0m" - // runes = []rune(color1) - // view.WriteRunes(runes) - - color1 := "\x1b[0;29m  \x1b[0m" - color2 := "\x1b[0;31m  \x1b[0m" - color3 := "\x1b[0;32m  \x1b[0m" - color4 := "\x1b[0;33m  \x1b[0m" - color5 := "\x1b[0;34m  \x1b[0m" - color6 := "\x1b[0;35m  \x1b[0m" - color7 := "\x1b[0;36m  \x1b[0m" - color8 := "\x1b[0;37m  \x1b[0m" - - return color1 + " " + color2 + " " + color3 + " " + color4 + " " + color5 + " " + color6 + " " + color7 + " " + color8 -} - -func randColor() gocui.Attribute { - colors := []string{"Green", "#FFAA55", "Yellow", "Blue", "Red", "Black", "White"} - i := rand.Intn(len(colors)) - log.Log(NOW, "randColor() i =", i) - return gocui.GetColor(colors[i]) -} - -var none gocui.Attribute = gocui.AttrNone -var colorNone colorT = colorT{none, none, none, none, none, "debug none"} - -var lightPurple gocui.Attribute = gocui.GetColor("#DDDDDD") // light purple -var darkPurple gocui.Attribute = gocui.GetColor("#FFAA55") // Dark Purple -var heavyPurple gocui.Attribute = gocui.GetColor("#88AA55") // heavy purple -var powdererBlue gocui.Attribute = gocui.GetColor("#B0E0E6") // w3c 'powerder blue' -var superLightGrey gocui.Attribute = gocui.GetColor("#55AAFF") // super light grey - -// Standard defined colors from gocui: -// ColorBlack ColorRed ColorGreen ColorYellow ColorBlue ColorMagenta ColorCyan ColorWhite - -// v.BgColor = gocui.GetColor("#111111") // crazy red -// v.BgColor = gocui.GetColor("#FF9911") // heavy red -// v.SelBgColor = gocui.GetColor("#FFEE11") // blood red - -// v.BgColor = gocui.GetColor("#55AAFF") // super light grey -// v.BgColor = gocui.GetColor("#FFC0CB") // 'w3c pink' yellow -- cgit v1.2.3