mirror of
https://github.com/tmux/tmux.git
synced 2026-10-08 19:14:20 +00:00
Add nicer dark and light colour sets (themes) used on terminals with 256
or more colours. Currently based these on emacs but they could change. Terminals with fewer colours use the ANSI colours. A new "theme" option overrides the detected theme (set to "terminal" to go back to ANSI colours).
This commit is contained in:
17
grid.c
17
grid.c
@@ -86,7 +86,8 @@ grid_need_extended_cell(const struct grid_cell_entry *gce,
|
||||
return (1);
|
||||
if (gc->data.size > 1 || gc->data.width > 1)
|
||||
return (1);
|
||||
if ((gc->fg & COLOUR_FLAG_RGB) || (gc->bg & COLOUR_FLAG_RGB))
|
||||
if ((gc->fg & (COLOUR_FLAG_RGB|COLOUR_FLAG_THEME)) ||
|
||||
(gc->bg & (COLOUR_FLAG_RGB|COLOUR_FLAG_THEME)))
|
||||
return (1);
|
||||
if (gc->us != 8) /* only supports 256 or RGB */
|
||||
return (1);
|
||||
@@ -218,7 +219,7 @@ grid_clear_cell(struct grid *gd, u_int px, u_int py, u_int bg, int moved)
|
||||
if (bg != 8)
|
||||
gee->bg = bg;
|
||||
} else if (bg != 8) {
|
||||
if (bg & COLOUR_FLAG_RGB) {
|
||||
if (bg & (COLOUR_FLAG_RGB|COLOUR_FLAG_THEME)) {
|
||||
grid_get_extended_cell(gl, gce, gce->flags);
|
||||
gee = grid_extended_cell(gl, gce, &grid_cleared_cell);
|
||||
gee->bg = bg;
|
||||
@@ -798,7 +799,9 @@ grid_string_cells_fg(const struct grid_cell *gc, int *values)
|
||||
u_char r, g, b;
|
||||
|
||||
n = 0;
|
||||
if (gc->fg & COLOUR_FLAG_256) {
|
||||
if (gc->fg & COLOUR_FLAG_THEME)
|
||||
values[n++] = 39;
|
||||
else if (gc->fg & COLOUR_FLAG_256) {
|
||||
values[n++] = 38;
|
||||
values[n++] = 5;
|
||||
values[n++] = gc->fg & 0xff;
|
||||
@@ -847,7 +850,9 @@ grid_string_cells_bg(const struct grid_cell *gc, int *values)
|
||||
u_char r, g, b;
|
||||
|
||||
n = 0;
|
||||
if (gc->bg & COLOUR_FLAG_256) {
|
||||
if (gc->bg & COLOUR_FLAG_THEME)
|
||||
values[n++] = 49;
|
||||
else if (gc->bg & COLOUR_FLAG_256) {
|
||||
values[n++] = 48;
|
||||
values[n++] = 5;
|
||||
values[n++] = gc->bg & 0xff;
|
||||
@@ -896,7 +901,9 @@ grid_string_cells_us(const struct grid_cell *gc, int *values)
|
||||
u_char r, g, b;
|
||||
|
||||
n = 0;
|
||||
if (gc->us & COLOUR_FLAG_256) {
|
||||
if (gc->us & COLOUR_FLAG_THEME) {
|
||||
values[n++] = 59;
|
||||
} else if (gc->us & COLOUR_FLAG_256) {
|
||||
values[n++] = 58;
|
||||
values[n++] = 5;
|
||||
values[n++] = gc->us & 0xff;
|
||||
|
||||
Reference in New Issue
Block a user