aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
diff options
context:
space:
mode:
authornicm <nicm>2016-01-29 11:13:56 +0000
committernicm <nicm>2016-01-29 11:13:56 +0000
commit427b8204268af5548d09b830e101c59daa095df9 (patch)
tree644b41d9f4ffa6c7f70be0b64de37d7c2170876f /tmux.h
parentb5b5221c13ded5b141fa35f60c707c9c403b83a6 (diff)
downloadrtmux-427b8204268af5548d09b830e101c59daa095df9.tar.gz
rtmux-427b8204268af5548d09b830e101c59daa095df9.tar.bz2
rtmux-427b8204268af5548d09b830e101c59daa095df9.zip
Support for RGB colour, using the extended cell mechanism to avoid
wasting unnecessary space. The 'Tc' flag must be set in the external TERM entry (using terminal-overrides or a custom terminfo entry), if not tmux will map to the closest of the 256 or 16 colour palettes. Mostly from Suraj N Kurapati, based on a diff originally by someone else.
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/tmux.h b/tmux.h
index eb3373da..8edb9209 100644
--- a/tmux.h
+++ b/tmux.h
@@ -385,6 +385,7 @@ enum tty_code_code {
TTYC_SMSO, /* enter_standout_mode, so */
TTYC_SMUL, /* enter_underline_mode, us */
TTYC_SS, /* set cursor style, Ss */
+ TTYC_TC, /* 24-bit "true" colour, Tc */
TTYC_TSL, /* to_status_line, tsl */
TTYC_VPA, /* row_address, cv */
TTYC_XENL, /* eat_newline_glitch, xn */
@@ -641,16 +642,31 @@ enum utf8_state {
#define GRID_FLAG_BG256 0x2
#define GRID_FLAG_PADDING 0x4
#define GRID_FLAG_EXTENDED 0x8
+#define GRID_FLAG_FGRGB 0x10
+#define GRID_FLAG_BGRGB 0x20
/* Grid line flags. */
#define GRID_LINE_WRAPPED 0x1
+/* Grid cell RGB colours. */
+struct grid_cell_rgb {
+ u_char r;
+ u_char g;
+ u_char b;
+};
+
/* Grid cell data. */
struct grid_cell {
u_char flags;
u_char attr;
- u_char fg;
- u_char bg;
+ union {
+ u_char fg;
+ struct grid_cell_rgb fg_rgb;
+ };
+ union {
+ u_char bg;
+ struct grid_cell_rgb bg_rgb;
+ };
struct utf8_data data;
};