How do I change the cursor color in ncurses forms?

前端 未结 1 1127
暗喜
暗喜 2020-12-20 06:41

I can\'t find any method of changing the cursor color in ncurses forms library from green to anything else. Googling and searching the manpage for cursor or color hasn\'t he

相关标签:
1条回答
  • 2020-12-20 07:24

    You can change the color by writing \e]12;COLOR\a or \033]12;COLOR\007, they all the same, here a simple example:

    #include <stdio.h>
    #include <unistd.h>
    
    void cursor_set_color_string(const char *color) {
        printf("\e]12;%s\a", color);
        fflush(stdout);
    }
    
    int main(int argc, char **argv) {
    
        cursor_set_color_string("yellow"); sleep(1);
        cursor_set_color_string("gray"); sleep(1); 
        cursor_set_color_string("blue"); sleep(1);
        cursor_set_color_string("red"); sleep(1);
        cursor_set_color_string("brown"); sleep(1);
    
        return 0;
    }
    

    Here is a list of the color names: Xterm Colors.

    It looks like you can also use RGB color in the form \e]12;#XXXXXX\a:

    #include <stdio.h>
    #include <unistd.h>
    
    void cursor_set_color_rgb(unsigned char red,
                              unsigned char green,
                              unsigned char blue) {
        printf("\e]12;#%.2x%.2x%.2x\a", red, green, blue);
        fflush(stdout);
    }
    
    int main(int argc, char **argv) {
    
        cursor_set_color_rgb(0xff, 0xff, 0xff); sleep(1);
        cursor_set_color_rgb(0xff, 0xff, 0x00); sleep(1);
        cursor_set_color_rgb(0xff, 0x00, 0xff); sleep(1);
        cursor_set_color_rgb(0x00, 0xff, 0xff); sleep(1);
    
        return 0;
    }
    
    0 讨论(0)
提交回复
热议问题