about summary refs log tree commit diff stats
path: root/src/teliva.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/teliva.h')
-rw-r--r--src/teliva.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/teliva.h b/src/teliva.h
index 772f17a..764a0b1 100644
--- a/src/teliva.h
+++ b/src/teliva.h
@@ -1,6 +1,8 @@
 #ifndef __TELIVA_H__
 #define __TELIVA_H__
 
+// Some names for hotkeys beyond those provided by ncurses.
+
 enum KEY_ACTION {
   KEY_NULL = 0,
   CTRL_A = 1,
@@ -25,4 +27,88 @@ enum KEY_ACTION {
   DELETE = 127,
 };
 
+
+// Colors (experimental)
+// Primary goal here: Keep text readable regardless of OS, terminal emulator
+// and color scheme. Unfortunately I don't yet have a good answer, so this
+// approach may yet change. Current approach:
+//  - Hardcode colors so that we can be sure we use legible combinations of
+//    foreground and background.
+//  - Use only the terminal palette in the range 16-255.
+//    - Not all terminals may support more than 256 colors. (I'm not yet sure
+//      everyone has even 256 colors. If you don't, please let me know:
+//      http://akkartik.name/contact)
+//    - Many terminals provide color schemes which give the ability to tweak
+//      colors 0-15. This makes it hard to assume specific combinations are
+//      legible. I'm hoping most terminal emulators don't tend to encourage
+//      messing with colors 16-255. (Please let me know if you know of
+//      counter-examples.)
+//
+// For now, you have to edit these values if you want to adjust colors in the
+// editing environment. Check out https://www.robmeerman.co.uk/unix/256colours
+// for a map of available colors.
+
+// Toggle between a few color schemes
+#define COLOR_SCHEME 0
+#if COLOR_SCHEME == 0
+// Light color scheme.
+enum color {
+  COLOR_FOREGROUND = 238,                     // almost black
+  COLOR_BACKGROUND = 253,                     // almost white
+  COLOR_FADE = 244,                           // closer to background
+  COLOR_HIGHLIGHT_FOREGROUND = 238,
+  COLOR_HIGHLIGHT_BACKGROUND = 250,
+  COLOR_ERROR_FOREGROUND = COLOR_BACKGROUND,
+  COLOR_ERROR_BACKGROUND = 124,               // deep red
+  COLOR_LUA_COMMENT = 27,                     // blue
+  COLOR_LUA_KEYWORD = 172,                    // orange
+  COLOR_LUA_CONSTANT = 31,                    // cyan
+  COLOR_MATCH_FOREGROUND = COLOR_BACKGROUND,
+  COLOR_MATCH_BACKGROUND = 28,                // green
+};
+#elif COLOR_SCHEME == 1
+// Dark color scheme.
+enum color {
+  COLOR_FOREGROUND = 253,                     // almost white
+  COLOR_BACKGROUND = 238,                     // almost black
+  COLOR_FADE = 244,                           // closer to background
+  COLOR_HIGHLIGHT_FOREGROUND = 238,
+  COLOR_HIGHLIGHT_BACKGROUND = 250,
+  COLOR_ERROR_FOREGROUND = COLOR_BACKGROUND,
+  COLOR_ERROR_BACKGROUND = 124,               // deep red
+  COLOR_LUA_COMMENT = 39,                     // blue
+  COLOR_LUA_KEYWORD = 172,                    // orange
+  COLOR_LUA_CONSTANT = 37,                    // cyan
+  COLOR_MATCH_FOREGROUND = COLOR_BACKGROUND,
+  COLOR_MATCH_BACKGROUND = 28,                // green
+};
+#elif COLOR_SCHEME == 2
+// Solarized dark.
+enum color {
+  COLOR_FOREGROUND = 250,                     // almost white
+  COLOR_BACKGROUND = 24,                      // dark blue-green
+  COLOR_FADE = 246,                           // closer to background
+  COLOR_HIGHLIGHT_FOREGROUND = 238,
+  COLOR_HIGHLIGHT_BACKGROUND = 31,
+  COLOR_ERROR_FOREGROUND = 250,
+  COLOR_ERROR_BACKGROUND = 124,               // deep red
+  COLOR_LUA_COMMENT = 45,                     // light blue
+  COLOR_LUA_KEYWORD = 172,                    // orange
+  COLOR_LUA_CONSTANT = 37,                    // cyan
+  COLOR_MATCH_FOREGROUND = COLOR_FOREGROUND,
+  COLOR_MATCH_BACKGROUND = 125,               // magenta
+};
+#endif
+
+enum color_pair {
+  COLOR_PAIR_NORMAL = 0,
+  COLOR_PAIR_HIGHLIGHT = 1,
+  COLOR_PAIR_FADE = 2,
+  COLOR_PAIR_LUA_COMMENT = 3,
+  COLOR_PAIR_LUA_KEYWORD = 4,
+  COLOR_PAIR_LUA_CONSTANT = 5,
+  COLOR_PAIR_MATCH = 6,
+  COLOR_PAIR_ERROR = 255,
+};
+
 #endif