Thumbnail

rani/cscroll.git

Clone URL: https://git.buni.party/rani/cscroll.git

commit 84bd54b91380adea157135aada52d36803f91d86 Author: Raniconduh <clagv.randomgames@gmail.com> Date: Mon Jan 31 11:53:37 2022 +0000 added separate colors for each type of file diff --git a/include/io.h b/include/io.h index bd7eca0..46b4c50 100644 --- a/include/io.h +++ b/include/io.h @@ -1013 +1030 @@      enum colors { - BLUE = 1, - CYAN = 2, - GREEN = 3, - MAGENTA = 4, - YELLOW = 5, - RED = 6, - WHITE = 7, + COLOR_DIR = 1, + COLOR_LINK = 2, + COLOR_EXEC = 3, + COLOR_SOCK = 4, + COLOR_FIFO = 5, + COLOR_UNKNOWN = 6, + COLOR_FILE = 7, + COLOR_BLOCK = 8, + COLOR_MEDIA = 9, + COLOR_ARCHIVE = 10, + + CUSTOM_FILE = 11, + CUSTOM_DIR = 12, + CUSTOM_FIFO = 13, + CUSTOM_LINK = 14, + CUSTOM_BLOCK = 15, + CUSTOM_SOCK = 16, + CUSTOM_EXEC = 17, + CUSTOM_UNKNOWN = 18, + CUSTOM_MEDIA = 19, + CUSTOM_ARCHIVE = 20, + + RED = 21, + WHITE = 22,  };    enum keys { diff --git a/include/opts.h b/include/opts.h index 8d04b34..62bb4c2 100644 --- a/include/opts.h +++ b/include/opts.h @@ -27 +211 @@  #define _OPTS_H    #include <stdbool.h> +#include <stdint.h>   +// RGB values can be up to 10 bits (<= 1000) +#define RGB(R, G, B) (((R << 20) | (G << 10)) | B) +#define GET_RGB(C) ((C >> 20) & 0x3FF), ((C >> 10) & 0x3FF), (C & 0x3FF)    #define ICONS_VAR "icons"  extern bool show_icons; @@ -117 +1526 @@ extern bool show_dot_files;  extern bool color;  #define LONG_VAR "long"  extern bool p_long; - +#define DIR_COLOR_VAR "dir_color" +extern uint32_t dir_color; +#define REG_COLOR_VAR "reg_color" +extern uint32_t reg_color; +#define FIFO_COLOR_VAR "fifo_color" +extern uint32_t fifo_color; +#define LINK_COLOR_VAR "link_color" +extern uint32_t link_color; +#define BLK_COLOR_VAR "block_color" +extern uint32_t blk_color; +#define SOCK_COLOR_VAR "sock_color" +extern uint32_t sock_color; +#define UNKNOWN_COLOR_VAR "unknown_color" +extern uint32_t unknown_color; +#define EXEC_COLOR_VAR "exec_color" +extern uint32_t exec_color; +#define MEDIA_COLOR_VAR "media_color" +extern uint32_t media_color; +#define ARCHIVE_COLOR_VAR "archive_color" +extern uint32_t archive_color;    bool check_config(void);  void create_config(void); diff --git a/src/io.c b/src/io.c index e0e5bfc..8bcda21 100644 --- a/src/io.c +++ b/src/io.c @@ -5419 +5449 @@ void terminate_curses(void) {    void set_color(void) {   if (color) { - init_pair(BLUE, COLOR_BLUE, COLOR_BLACK); - init_pair(CYAN, COLOR_CYAN, COLOR_BLACK); - init_pair(GREEN, COLOR_GREEN, COLOR_BLACK); - init_pair(MAGENTA, COLOR_MAGENTA, COLOR_BLACK); - init_pair(YELLOW, COLOR_YELLOW, COLOR_BLACK); + init_color(CUSTOM_DIR, GET_RGB(dir_color)); + init_pair(COLOR_DIR, CUSTOM_DIR, COLOR_BLACK); + + init_color(CUSTOM_LINK, GET_RGB(link_color)); + init_pair(COLOR_LINK, CUSTOM_LINK, COLOR_BLACK); + + init_color(CUSTOM_EXEC, GET_RGB(exec_color)); + init_pair(COLOR_EXEC, CUSTOM_EXEC, COLOR_BLACK); + + init_color(CUSTOM_SOCK, GET_RGB(sock_color)); + init_pair(COLOR_SOCK, CUSTOM_SOCK, COLOR_BLACK); + + init_color(CUSTOM_FIFO, GET_RGB(fifo_color)); + init_pair(COLOR_FIFO, CUSTOM_FIFO, COLOR_BLACK); + + init_color(CUSTOM_BLOCK, GET_RGB(blk_color)); + init_pair(COLOR_BLOCK, CUSTOM_BLOCK, COLOR_BLACK); + + init_color(CUSTOM_UNKNOWN, GET_RGB(unknown_color)); + init_pair(COLOR_UNKNOWN, CUSTOM_UNKNOWN, COLOR_BLACK); + + init_color(CUSTOM_MEDIA, GET_RGB(media_color)); + init_pair(COLOR_MEDIA, CUSTOM_MEDIA, COLOR_BLACK); + + init_color(CUSTOM_ARCHIVE, GET_RGB(archive_color)); + init_pair(COLOR_ARCHIVE, CUSTOM_ARCHIVE, COLOR_BLACK); + + init_color(CUSTOM_FILE, GET_RGB(reg_color)); + init_pair(COLOR_FILE, CUSTOM_FILE, COLOR_BLACK); +   init_pair(RED, COLOR_RED, COLOR_BLACK);   init_pair(WHITE, COLOR_WHITE, COLOR_BLACK);   } else { - init_pair(BLUE, COLOR_WHITE, COLOR_BLACK); - init_pair(CYAN, COLOR_WHITE, COLOR_BLACK); - init_pair(GREEN, COLOR_WHITE, COLOR_BLACK); - init_pair(MAGENTA, COLOR_WHITE, COLOR_BLACK); - init_pair(YELLOW, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_DIR, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_LINK, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_EXEC, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_SOCK, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_FIFO, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_UNKNOWN, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_BLOCK, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_MEDIA, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_ARCHIVE, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_FILE, COLOR_WHITE, COLOR_BLACK);   init_pair(RED, COLOR_WHITE, COLOR_BLACK);   init_pair(WHITE, COLOR_WHITE, COLOR_BLACK);   } @@ -10429 +13429 @@ void curses_write_file(struct dir_entry_t * dir_entry, bool highlight) {     switch (dir_entry->file_type) {   case FILE_DIR: - cp = BLUE; + cp = COLOR_DIR;   f_ident = '/';   break;   case FILE_FIFO: - cp = YELLOW; + cp = COLOR_FIFO;   f_ident = '|';   break;   case FILE_BLK: - cp = YELLOW; + cp = COLOR_BLOCK;   f_ident = '#';   break;   case FILE_LINK:   if (dir_entry->under_link == FILE_DIR)   u_text = "=> /"; - cp = CYAN; + cp = COLOR_LINK;   f_ident = '@';   break;   case FILE_SOCK: - cp = MAGENTA; + cp = COLOR_SOCK;   f_ident = '=';   break;   case FILE_UNKNOWN: - cp = RED; + cp = COLOR_UNKNOWN;   f_ident = '?';   break;   default: @@ -13610 +16610 @@ void curses_write_file(struct dir_entry_t * dir_entry, bool highlight) {     switch (dir_entry->m_type) {   case MIME_MEDIA: - cp = MAGENTA; + cp = COLOR_MEDIA;   break;   case MIME_ARCHIVE: - cp = RED; + cp = COLOR_ARCHIVE;   break;   case MIME_UNKNOWN:   default: @@ -15610 +18610 @@ void curses_write_file(struct dir_entry_t * dir_entry, bool highlight) {   if ((dir_entry->mode & POWNER(M_EXEC)) &&   dir_entry->file_type != FILE_LINK &&   dir_entry->file_type != FILE_DIR) { - cp = GREEN; + cp = COLOR_EXEC;   if (f_ident == NO_IDENT) f_ident = '*';   } else if (cp == -1) { - cp = WHITE; + cp = COLOR_FILE;   f_ident = ' ';   }   diff --git a/src/opts.c b/src/opts.c index 8844be1..87231a4 100644 --- a/src/opts.c +++ b/src/opts.c @@ -15 +16 @@  #include <sys/stat.h>  #include <stdbool.h> +#include <stdint.h>  #include <string.h>  #include <stdlib.h>  #include <stdio.h> @@ -166 +1717 @@ bool show_dot_files = false;  bool color = true;  bool p_long = false;   +uint32_t dir_color = RGB(8, 584, 815); // blue +uint32_t reg_color = RGB(800, 800, 800); // white +uint32_t fifo_color = RGB(984, 812, 16); // yellow +uint32_t link_color = RGB(502, 776, 710); // cyan +uint32_t blk_color = RGB(984, 812, 16); // yellow +uint32_t sock_color = RGB(573, 8, 353); // magenta +uint32_t exec_color = RGB(4, 506, 239); // green +uint32_t unknown_color = RGB(855, 176, 141); // red +uint32_t media_color = RGB(573, 8, 353); // magenta +uint32_t archive_color = RGB(855, 176, 141); // red +  static char * default_config_dir = NULL;  static char * csc_config_path = NULL;  static char * csc_config_file = NULL;