mirror of https://github.com/liamg/aminal.git
nice colour scheme by default
This commit is contained in:
parent
8649ab7d76
commit
8f1efd822e
|
@ -9,28 +9,39 @@ import (
|
|||
|
||||
type Colour [3]float32
|
||||
|
||||
func (c *Colour) UnmarshalText(data []byte) error {
|
||||
func strToColourNoErr(hexStr string) Colour {
|
||||
c, _ := strToColour(hexStr)
|
||||
return c
|
||||
}
|
||||
|
||||
hexStr := string(data)
|
||||
func strToColour(hexStr string) (Colour, error) {
|
||||
|
||||
c := [3]float32{0, 0, 0}
|
||||
|
||||
if strings.HasPrefix(hexStr, "#") {
|
||||
hexStr = hexStr[1:]
|
||||
}
|
||||
|
||||
if len(hexStr) != 6 {
|
||||
return fmt.Errorf("Invalid colour format. Should be like #ffffff")
|
||||
return c, fmt.Errorf("Invalid colour format. Should be like #ffffff")
|
||||
}
|
||||
|
||||
bytes, err := hex.DecodeString(hexStr)
|
||||
if err != nil {
|
||||
return err
|
||||
return c, err
|
||||
}
|
||||
|
||||
c[0] = float32(bytes[0]) / 255
|
||||
c[1] = float32(bytes[1]) / 255
|
||||
c[2] = float32(bytes[2]) / 255
|
||||
|
||||
return nil
|
||||
return c, nil
|
||||
}
|
||||
|
||||
func (c *Colour) UnmarshalText(data []byte) error {
|
||||
var err error
|
||||
*c, err = strToColour(string(data))
|
||||
return err
|
||||
}
|
||||
|
||||
func (c Colour) MarshalText() (text []byte, err error) {
|
||||
|
@ -44,38 +55,22 @@ func (c Colour) MarshalText() (text []byte, err error) {
|
|||
|
||||
type ColourScheme struct {
|
||||
Cursor Colour `toml:"cursor"`
|
||||
DefaultFg Colour `toml:"default_fg"`
|
||||
BlackFg Colour `toml:"black_fg"`
|
||||
RedFg Colour `toml:"red_fg"`
|
||||
GreenFg Colour `toml:"green_fg"`
|
||||
YellowFg Colour `toml:"yellow_fg"`
|
||||
BlueFg Colour `toml:"blue_fg"`
|
||||
MagentaFg Colour `toml:"magenta_fg"`
|
||||
CyanFg Colour `toml:"cyan_fg"`
|
||||
LightGreyFg Colour `toml:"light_grey_fg"`
|
||||
DarkGreyFg Colour `toml:"dark_grey_fg"`
|
||||
LightRedFg Colour `toml:"light_red_fg"`
|
||||
LightGreenFg Colour `toml:"light_green_fg"`
|
||||
LightYellowFg Colour `toml:"light_yellow_fg"`
|
||||
LightBlueFg Colour `toml:"light_blue_fg"`
|
||||
LightMagentaFg Colour `toml:"light_magenta_fg"`
|
||||
LightCyanFg Colour `toml:"light_cyan_fg"`
|
||||
WhiteFg Colour `toml:"white_fg"`
|
||||
DefaultBg Colour `toml:"default_bg"`
|
||||
BlackBg Colour `toml:"black_bg"`
|
||||
RedBg Colour `toml:"red_bg"`
|
||||
GreenBg Colour `toml:"green_bg"`
|
||||
YellowBg Colour `toml:"yellow_bg"`
|
||||
BlueBg Colour `toml:"blue_bg"`
|
||||
MagentaBg Colour `toml:"magenta_bg"`
|
||||
CyanBg Colour `toml:"cyan_bg"`
|
||||
LightGreyBg Colour `toml:"light_grey_bg"`
|
||||
DarkGreyBg Colour `toml:"dark_grey_bg"`
|
||||
LightRedBg Colour `toml:"light_red_bg"`
|
||||
LightGreenBg Colour `toml:"light_green_bg"`
|
||||
LightYellowBg Colour `toml:"light_yellow_bg"`
|
||||
LightBlueBg Colour `toml:"light_blue_bg"`
|
||||
LightMagentaBg Colour `toml:"light_magenta_bg"`
|
||||
LightCyanBg Colour `toml:"light_cyan_bg"`
|
||||
WhiteBg Colour `toml:"white_bg"`
|
||||
Foreground Colour `toml:"foreground"`
|
||||
Background Colour `toml:"background"`
|
||||
Black Colour `toml:"black"`
|
||||
Red Colour `toml:"red"`
|
||||
Green Colour `toml:"green"`
|
||||
Yellow Colour `toml:"yellow"`
|
||||
Blue Colour `toml:"blue"`
|
||||
Magenta Colour `toml:"magenta"`
|
||||
Cyan Colour `toml:"cyan"`
|
||||
LightGrey Colour `toml:"light_grey"`
|
||||
DarkGrey Colour `toml:"dark_grey"`
|
||||
LightRed Colour `toml:"light_red"`
|
||||
LightGreen Colour `toml:"light_green"`
|
||||
LightYellow Colour `toml:"light_yellow"`
|
||||
LightBlue Colour `toml:"light_blue"`
|
||||
LightMagenta Colour `toml:"light_magenta"`
|
||||
LightCyan Colour `toml:"light_cyan"`
|
||||
White Colour `toml:"white"`
|
||||
}
|
||||
|
|
|
@ -3,42 +3,24 @@ package config
|
|||
var DefaultConfig = Config{
|
||||
DebugMode: false,
|
||||
ColourScheme: ColourScheme{
|
||||
Cursor: [3]float32{0.8, 0.8, 0.8},
|
||||
//fg
|
||||
DefaultFg: [3]float32{1, 1, 1},
|
||||
BlackFg: [3]float32{0, 0, 0},
|
||||
RedFg: [3]float32{1, 0, 0},
|
||||
GreenFg: [3]float32{0, 1, 0},
|
||||
YellowFg: [3]float32{1, 1, 0},
|
||||
BlueFg: [3]float32{0, 0, 1},
|
||||
MagentaFg: [3]float32{1, 0, 1},
|
||||
CyanFg: [3]float32{0, 1, 1},
|
||||
LightGreyFg: [3]float32{0.7, 0.7, 0.7},
|
||||
DarkGreyFg: [3]float32{0.3, 0.3, 0.3},
|
||||
LightRedFg: [3]float32{1, 0.5, 0.5},
|
||||
LightGreenFg: [3]float32{0.5, 1, 0.5},
|
||||
LightYellowFg: [3]float32{1, 1, 0.5},
|
||||
LightBlueFg: [3]float32{0.5, 0.5, 1},
|
||||
LightMagentaFg: [3]float32{1, 0.5, 1},
|
||||
LightCyanFg: [3]float32{0.5, 1, 1},
|
||||
WhiteFg: [3]float32{1, 1, 1},
|
||||
// bg
|
||||
DefaultBg: [3]float32{0.1, 0.1, 0.1},
|
||||
BlackBg: [3]float32{0, 0, 0},
|
||||
RedBg: [3]float32{1, 0, 0},
|
||||
GreenBg: [3]float32{0, 1, 0},
|
||||
YellowBg: [3]float32{1, 1, 0},
|
||||
BlueBg: [3]float32{0, 0, 1},
|
||||
MagentaBg: [3]float32{1, 0, 1},
|
||||
CyanBg: [3]float32{0, 1, 1},
|
||||
LightGreyBg: [3]float32{0.7, 0.7, 0.7},
|
||||
DarkGreyBg: [3]float32{0.3, 0.3, 0.3},
|
||||
LightRedBg: [3]float32{1, 0.5, 0.5},
|
||||
LightGreenBg: [3]float32{0.5, 1, 0.5},
|
||||
LightYellowBg: [3]float32{1, 1, 0.5},
|
||||
LightBlueBg: [3]float32{0.5, 0.5, 1},
|
||||
LightMagentaBg: [3]float32{1, 0.5, 1},
|
||||
LightCyanBg: [3]float32{0.5, 1, 1},
|
||||
WhiteBg: [3]float32{1, 1, 1},
|
||||
Cursor: strToColourNoErr("#e8dfd6"),
|
||||
Foreground: strToColourNoErr("#e8dfd6"),
|
||||
Background: strToColourNoErr("#021b21"),
|
||||
Black: strToColourNoErr("#032c36"),
|
||||
Red: strToColourNoErr("#c2454e"),
|
||||
Green: strToColourNoErr("#7cbf9e"),
|
||||
Yellow: strToColourNoErr("#8a7a63"),
|
||||
Blue: strToColourNoErr("#2e3340"),
|
||||
Magenta: strToColourNoErr("#ff5879"),
|
||||
Cyan: strToColourNoErr("#44b5b1"),
|
||||
LightGrey: strToColourNoErr("#f2f1b9"),
|
||||
DarkGrey: strToColourNoErr("#065f73"),
|
||||
LightRed: strToColourNoErr("#ef5847"),
|
||||
LightGreen: strToColourNoErr("#a2db91"),
|
||||
LightYellow: strToColourNoErr("#beb090"),
|
||||
LightBlue: strToColourNoErr("#61778d"),
|
||||
LightMagenta: strToColourNoErr("#ff99a1"),
|
||||
LightCyan: strToColourNoErr("#9ed9d8"),
|
||||
White: strToColourNoErr("#f6f6c9"),
|
||||
},
|
||||
}
|
||||
|
|
|
@ -147,9 +147,9 @@ func (gui *GUI) Render() error {
|
|||
//glfw.SwapInterval(1)
|
||||
|
||||
gl.ClearColor(
|
||||
gui.config.ColourScheme.DefaultBg[0],
|
||||
gui.config.ColourScheme.DefaultBg[1],
|
||||
gui.config.ColourScheme.DefaultBg[2],
|
||||
gui.config.ColourScheme.Background[0],
|
||||
gui.config.ColourScheme.Background[1],
|
||||
gui.config.ColourScheme.Background[2],
|
||||
1.0,
|
||||
)
|
||||
|
||||
|
|
|
@ -227,7 +227,7 @@ func (r *OpenGLRenderer) DrawCell(cell *buffer.Cell, col int, row int) {
|
|||
gl.UseProgram(r.program)
|
||||
|
||||
// don't bother rendering rectangles that are the same colour as the background
|
||||
if bg != r.config.ColourScheme.DefaultBg {
|
||||
if bg != r.config.ColourScheme.Background {
|
||||
rect.setColour(bg)
|
||||
gl.BindVertexArray(rect.vao)
|
||||
gl.DrawArrays(gl.TRIANGLES, 0, 6)
|
||||
|
|
|
@ -14,8 +14,8 @@ func sgrSequenceHandler(params []string, intermediate string, terminal *Terminal
|
|||
case "00", "0", "":
|
||||
attr := terminal.buffer.CursorAttr()
|
||||
*attr = buffer.CellAttributes{
|
||||
FgColour: terminal.config.ColourScheme.DefaultFg,
|
||||
BgColour: terminal.config.ColourScheme.DefaultBg,
|
||||
FgColour: terminal.config.ColourScheme.Foreground,
|
||||
BgColour: terminal.config.ColourScheme.Background,
|
||||
}
|
||||
case "1", "01":
|
||||
terminal.buffer.CursorAttr().Bold = true
|
||||
|
@ -42,73 +42,73 @@ func sgrSequenceHandler(params []string, intermediate string, terminal *Terminal
|
|||
case "28":
|
||||
terminal.buffer.CursorAttr().Hidden = false
|
||||
case "39":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.DefaultFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.Foreground
|
||||
case "30":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.BlackFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.Black
|
||||
case "31":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.RedFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.Red
|
||||
case "32":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.GreenFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.Green
|
||||
case "33":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.YellowFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.Yellow
|
||||
case "34":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.BlueFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.Blue
|
||||
case "35":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.MagentaFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.Magenta
|
||||
case "36":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.CyanFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.Cyan
|
||||
case "37":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.WhiteFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.White
|
||||
case "90":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.DarkGreyFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.DarkGrey
|
||||
case "91":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightRedFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightRed
|
||||
case "92":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightGreenFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightGreen
|
||||
case "93":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightYellowFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightYellow
|
||||
case "94":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightBlueFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightBlue
|
||||
case "95":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightMagentaFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightMagenta
|
||||
case "96":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightCyanFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.LightCyan
|
||||
case "97":
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.WhiteFg
|
||||
terminal.buffer.CursorAttr().FgColour = terminal.config.ColourScheme.White
|
||||
case "49":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.DefaultBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.Background
|
||||
case "40":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.BlackBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.Black
|
||||
case "41":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.RedBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.Red
|
||||
case "42":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.GreenBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.Green
|
||||
case "43":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.YellowBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.Yellow
|
||||
case "44":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.BlueBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.Blue
|
||||
case "45":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.MagentaBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.Magenta
|
||||
case "46":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.CyanBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.Cyan
|
||||
case "47":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.WhiteBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.White
|
||||
case "100":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.DarkGreyBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.DarkGrey
|
||||
case "101":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightRedBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightRed
|
||||
case "102":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightGreenBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightGreen
|
||||
case "103":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightYellowBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightYellow
|
||||
case "104":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightBlueBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightBlue
|
||||
case "105":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightMagentaBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightMagenta
|
||||
case "106":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightCyanBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.LightCyan
|
||||
case "107":
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.WhiteBg
|
||||
terminal.buffer.CursorAttr().BgColour = terminal.config.ColourScheme.White
|
||||
default:
|
||||
return fmt.Errorf("Unknown SGR control sequence: (ESC[%s%sm)", param, intermediate)
|
||||
}
|
||||
|
|
|
@ -44,8 +44,8 @@ func New(pty *os.File, logger *zap.SugaredLogger, config config.Config) *Termina
|
|||
|
||||
return &Terminal{
|
||||
buffer: buffer.NewBuffer(0, 0, buffer.CellAttributes{
|
||||
FgColour: config.ColourScheme.DefaultFg,
|
||||
BgColour: config.ColourScheme.DefaultBg,
|
||||
FgColour: config.ColourScheme.Foreground,
|
||||
BgColour: config.ColourScheme.Background,
|
||||
}),
|
||||
pty: pty,
|
||||
logger: logger,
|
||||
|
|
Loading…
Reference in New Issue