st-solarized-both-20170626-b331da5.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       st-solarized-both-20170626-b331da5.diff (5955B)
       ---
            1 diff --git a/config.def.h b/config.def.h
            2 index 877afab..7305ec9 100644
            3 --- a/config.def.h
            4 +++ b/config.def.h
            5 @@ -84,42 +84,54 @@ static unsigned int tabspaces = 8;
            6  
            7  /* Terminal colors (16 first used in escape sequence) */
            8  const char *colorname[] = {
            9 -        /* 8 normal colors */
           10 -        "black",
           11 -        "red3",
           12 -        "green3",
           13 -        "yellow3",
           14 -        "blue2",
           15 -        "magenta3",
           16 -        "cyan3",
           17 -        "gray90",
           18 -
           19 -        /* 8 bright colors */
           20 -        "gray50",
           21 -        "red",
           22 -        "green",
           23 -        "yellow",
           24 -        "#5c5cff",
           25 -        "magenta",
           26 -        "cyan",
           27 -        "white",
           28 -
           29 -        [255] = 0,
           30 -
           31 -        /* more colors can be added after 255 to use with DefaultXX */
           32 -        "#cccccc",
           33 -        "#555555",
           34 +        /* solarized dark */
           35 +        "#073642",  /*  0: black    */
           36 +        "#dc322f",  /*  1: red      */
           37 +        "#859900",  /*  2: green    */
           38 +        "#b58900",  /*  3: yellow   */
           39 +        "#268bd2",  /*  4: blue     */
           40 +        "#d33682",  /*  5: magenta  */
           41 +        "#2aa198",  /*  6: cyan     */
           42 +        "#eee8d5",  /*  7: white    */
           43 +        "#002b36",  /*  8: brblack  */
           44 +        "#cb4b16",  /*  9: brred    */
           45 +        "#586e75",  /* 10: brgreen  */
           46 +        "#657b83",  /* 11: bryellow */
           47 +        "#839496",  /* 12: brblue   */
           48 +        "#6c71c4",  /* 13: brmagenta*/
           49 +        "#93a1a1",  /* 14: brcyan   */
           50 +        "#fdf6e3",  /* 15: brwhite  */
           51  };
           52 -
           53 + 
           54 +/* Terminal colors for alternate (light) palette */
           55 +const char *altcolorname[] = {
           56 +        /* solarized light */
           57 +        "#eee8d5",  /*  0: black    */
           58 +        "#dc322f",  /*  1: red      */
           59 +        "#859900",  /*  2: green    */
           60 +        "#b58900",  /*  3: yellow   */
           61 +        "#268bd2",  /*  4: blue     */
           62 +        "#d33682",  /*  5: magenta  */
           63 +        "#2aa198",  /*  6: cyan     */
           64 +        "#073642",  /*  7: white    */
           65 +        "#fdf6e3",  /*  8: brblack  */
           66 +        "#cb4b16",  /*  9: brred    */
           67 +        "#93a1a1",  /* 10: brgreen  */
           68 +        "#839496",  /* 11: bryellow */
           69 +        "#657b83",  /* 12: brblue   */
           70 +        "#6c71c4",  /* 13: brmagenta*/
           71 +        "#586e75",  /* 14: brcyan   */
           72 +        "#002b36",  /* 15: brwhite  */
           73 + };
           74  
           75  /*
           76   * Default colors (colorname index)
           77   * foreground, background, cursor, reverse cursor
           78   */
           79 -unsigned int defaultfg = 7;
           80 -unsigned int defaultbg = 0;
           81 -unsigned int defaultcs = 256;
           82 -unsigned int defaultrcs = 257;
           83 +unsigned int defaultfg = 12;
           84 +unsigned int defaultbg = 8;
           85 +unsigned int defaultcs = 14;
           86 +unsigned int defaultrcs = 15;
           87  
           88  /*
           89   * Default shape of cursor
           90 @@ -178,6 +190,7 @@ Shortcut shortcuts[] = {
           91          { TERMMOD,              XK_Y,           selpaste,       {.i =  0} },
           92          { TERMMOD,              XK_Num_Lock,    numlock,        {.i =  0} },
           93          { TERMMOD,              XK_I,           iso14755,       {.i =  0} },
           94 +        { XK_ANY_MOD,           XK_F6,          swapcolors,     {.i =  0} },
           95  };
           96  
           97  /*
           98 diff --git a/st.c b/st.c
           99 index 8d4a9f2..fc7d9a6 100644
          100 --- a/st.c
          101 +++ b/st.c
          102 @@ -129,6 +129,7 @@ typedef struct {
          103  static void clipcopy(const Arg *);
          104  static void clippaste(const Arg *);
          105  static void numlock(const Arg *);
          106 +static void swapcolors(const Arg *);
          107  static void selpaste(const Arg *);
          108  static void zoom(const Arg *);
          109  static void zoomabs(const Arg *);
          110 @@ -219,6 +220,8 @@ char *opt_name  = NULL;
          111  char *opt_title = NULL;
          112  int oldbutton   = 3; /* button event on startup: 3 = release */
          113  
          114 +int usealtcolors = 0; /* 1 to use alternate palette */
          115 +
          116  static CSIEscape csiescseq;
          117  static STREscape strescseq;
          118  static int iofd = 1;
          119 @@ -233,7 +236,7 @@ static Rune utfmin[UTF_SIZ + 1] = {       0,    0,  0x80,  0x800,  0x10000};
          120  static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF};
          121  
          122  /* config.h array lengths */
          123 -size_t colornamelen = LEN(colorname);
          124 +size_t colornamelen = MAX(LEN(colorname), LEN(altcolorname));
          125  size_t mshortcutslen = LEN(mshortcuts);
          126  size_t shortcutslen = LEN(shortcuts);
          127  size_t selmaskslen = LEN(selmasks);
          128 @@ -2631,6 +2634,14 @@ numlock(const Arg *dummy)
          129          term.numlock ^= 1;
          130  }
          131  
          132 +void
          133 +swapcolors(const Arg *dummy)
          134 +{
          135 +        usealtcolors = !usealtcolors;
          136 +        xloadcols();
          137 +        redraw();
          138 +}
          139 +
          140  char*
          141  kmap(KeySym k, uint state)
          142  {
          143 diff --git a/st.h b/st.h
          144 index 44d4938..c464dd3 100644
          145 --- a/st.h
          146 +++ b/st.h
          147 @@ -250,7 +250,9 @@ extern unsigned int cursorthickness;
          148  extern unsigned int blinktimeout;
          149  extern char termname[];
          150  extern const char *colorname[];
          151 +extern const char *altcolorname[];
          152  extern size_t colornamelen;
          153 +extern int usealtcolors;
          154  extern unsigned int defaultfg;
          155  extern unsigned int defaultbg;
          156  extern unsigned int defaultcs;
          157 diff --git a/x.c b/x.c
          158 index fbfd350..886918b 100644
          159 --- a/x.c
          160 +++ b/x.c
          161 @@ -138,6 +138,7 @@ static void (*handler[LASTEvent])(XEvent *) = {
          162  /* Globals */
          163  static DC dc;
          164  static XWindow xw;
          165 +
          166  static XSelection xsel;
          167  
          168  /* Font Ring Cache */
          169 @@ -573,6 +574,11 @@ sixd_to_16bit(int x)
          170          return x == 0 ? 0 : 0x3737 + 0x2828 * x;
          171  }
          172  
          173 +const char* getcolorname(int i)
          174 +{
          175 +    return (usealtcolors) ?  altcolorname[i] : colorname[i];
          176 +}
          177 +
          178  int
          179  xloadcolor(int i, const char *name, Color *ncolor)
          180  {
          181 @@ -591,7 +597,7 @@ xloadcolor(int i, const char *name, Color *ncolor)
          182                          return XftColorAllocValue(xw.dpy, xw.vis,
          183                                                    xw.cmap, &color, ncolor);
          184                  } else
          185 -                        name = colorname[i];
          186 +                        name = getcolorname(i);
          187          }
          188  
          189          return XftColorAllocName(xw.dpy, xw.vis, xw.cmap, name, ncolor);
          190 @@ -614,8 +620,8 @@ xloadcols(void)
          191  
          192          for (i = 0; i < dc.collen; i++)
          193                  if (!xloadcolor(i, NULL, &dc.col[i])) {
          194 -                        if (colorname[i])
          195 -                                die("Could not allocate color '%s'\n", colorname[i]);
          196 +                        if (getcolorname(i))
          197 +                                die("Could not allocate color '%s'\n", getcolorname(i));
          198                          else
          199                                  die("Could not allocate color %d\n", i);
          200                  }
          201 @@ -950,13 +956,13 @@ xinit(void)
          202          cursor = XCreateFontCursor(xw.dpy, mouseshape);
          203          XDefineCursor(xw.dpy, xw.win, cursor);
          204  
          205 -        if (XParseColor(xw.dpy, xw.cmap, colorname[mousefg], &xmousefg) == 0) {
          206 +        if (XParseColor(xw.dpy, xw.cmap, getcolorname(mousefg), &xmousefg) == 0) {
          207                  xmousefg.red   = 0xffff;
          208                  xmousefg.green = 0xffff;
          209                  xmousefg.blue  = 0xffff;
          210          }
          211  
          212 -        if (XParseColor(xw.dpy, xw.cmap, colorname[mousebg], &xmousebg) == 0) {
          213 +        if (XParseColor(xw.dpy, xw.cmap, getcolorname(mousebg), &xmousebg) == 0) {
          214                  xmousebg.red   = 0x0000;
          215                  xmousebg.green = 0x0000;
          216                  xmousebg.blue  = 0x0000;