My build of the simple terminal from suckless.org.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

92 line
2.1 KiB

  1. From 9c4b3f40e07dd1d6dd94fa733b7853aff7f4b8fc Mon Sep 17 00:00:00 2001
  2. From: Raheman Vaiya <r.vaiya@gmail.com>
  3. Date: Sat, 16 Jan 2021 18:18:07 -0500
  4. Subject: [PATCH] Add proper OSC 10/11 support.
  5. ---
  6. config.def.h | 9 ++++++---
  7. st.c | 30 ++++++++++++++++++++++++++++++
  8. st.h | 1 +
  9. 3 files changed, 37 insertions(+), 3 deletions(-)
  10. diff --git a/config.def.h b/config.def.h
  11. index 6f05dce..9bb22a5 100644
  12. --- a/config.def.h
  13. +++ b/config.def.h
  14. @@ -120,6 +120,8 @@ static const char *colorname[] = {
  15. /* more colors can be added after 255 to use with DefaultXX */
  16. "#cccccc",
  17. "#555555",
  18. + "black",
  19. + "gray90",
  20. };
  21. @@ -127,9 +129,10 @@ static const char *colorname[] = {
  22. * Default colors (colorname index)
  23. * foreground, background, cursor, reverse cursor
  24. */
  25. -unsigned int defaultfg = 7;
  26. -unsigned int defaultbg = 0;
  27. -static unsigned int defaultcs = 256;
  28. +
  29. +unsigned int defaultbg = 258;
  30. +unsigned int defaultfg = 259;
  31. +unsigned int defaultcs = 256;
  32. static unsigned int defaultrcs = 257;
  33. /*
  34. diff --git a/st.c b/st.c
  35. index abbbe4b..6a57d89 100644
  36. --- a/st.c
  37. +++ b/st.c
  38. @@ -1877,6 +1877,36 @@ strhandle(void)
  39. }
  40. }
  41. return;
  42. + case 10: /* set foreground color */
  43. + if (narg < 2)
  44. + break;
  45. +
  46. + p = strescseq.args[1];
  47. + if (xsetcolorname(defaultfg, p))
  48. + fprintf(stderr, "erresc: invalid foreground color %d\n", p);
  49. + else
  50. + redraw();
  51. + break;
  52. + case 11: /* set background color */
  53. + if (narg < 2)
  54. + break;
  55. +
  56. + p = strescseq.args[1];
  57. + if (xsetcolorname(defaultbg, p))
  58. + fprintf(stderr, "erresc: invalid background color %d\n", p);
  59. + else
  60. + redraw();
  61. + break;
  62. + case 12: /* set cursor color */
  63. + if (narg < 2)
  64. + break;
  65. +
  66. + p = strescseq.args[1];
  67. + if (xsetcolorname(defaultcs, p))
  68. + fprintf(stderr, "erresc: invalid cursor color %d\n", p);
  69. + else
  70. + redraw();
  71. + break;
  72. case 4: /* color set */
  73. if (narg < 3)
  74. break;
  75. diff --git a/st.h b/st.h
  76. index 3d351b6..054366d 100644
  77. --- a/st.h
  78. +++ b/st.h
  79. @@ -123,3 +123,4 @@ extern char *termname;
  80. extern unsigned int tabspaces;
  81. extern unsigned int defaultfg;
  82. extern unsigned int defaultbg;
  83. +extern unsigned int defaultcs;
  84. --
  85. 2.20.1