mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-06-17 14:42:21 +00:00
Use perfect hash (gperf) for parsing color names (#1848)
Signed-off-by: Tin Švagelj <tin.svagelj@live.com>
This commit is contained in:
parent
6adf6b9dd4
commit
93ffab51a0
1
.github/workflows/build-and-test-linux.yaml
vendored
1
.github/workflows/build-and-test-linux.yaml
vendored
|
@ -84,6 +84,7 @@ jobs:
|
|||
audacious-dev \
|
||||
cmake \
|
||||
gawk \
|
||||
gperf \
|
||||
lcov \
|
||||
libaudclient-dev \
|
||||
libcairo2-dev \
|
||||
|
|
1
.github/workflows/build-and-test-macos.yaml
vendored
1
.github/workflows/build-and-test-macos.yaml
vendored
|
@ -37,6 +37,7 @@ jobs:
|
|||
freetype \
|
||||
gettext \
|
||||
imlib2 \
|
||||
gperf \
|
||||
lcov \
|
||||
librsvg \
|
||||
libxft \
|
||||
|
|
1
.github/workflows/codeql.yml
vendored
1
.github/workflows/codeql.yml
vendored
|
@ -31,6 +31,7 @@ jobs:
|
|||
audacious-dev \
|
||||
cmake \
|
||||
gawk \
|
||||
gperf \
|
||||
lcov \
|
||||
libaudclient-dev \
|
||||
libc++-14-dev \
|
||||
|
|
1
.github/workflows/publish-appimage.yml
vendored
1
.github/workflows/publish-appimage.yml
vendored
|
@ -38,6 +38,7 @@ jobs:
|
|||
audacious-dev \
|
||||
cmake \
|
||||
gawk \
|
||||
gperf \
|
||||
lcov \
|
||||
libaudclient-dev \
|
||||
libcairo2-dev \
|
||||
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -16,12 +16,14 @@ cmake_uninstall.cmake
|
|||
CPackConfig.cmake
|
||||
CPackSourceConfig.cmake
|
||||
|
||||
# Generated files
|
||||
data/convertconf.h
|
||||
data/defconfig.h
|
||||
*.so
|
||||
*.a
|
||||
/config.h
|
||||
/build.h
|
||||
src/colour-names.cc
|
||||
|
||||
# Compiler cache
|
||||
.cache
|
||||
|
|
7
bin/format-colors.sh
Executable file
7
bin/format-colors.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Prepares stdin input YAML for gperf consumption
|
||||
|
||||
echo "struct rgb { const char *name; uint8_t red; uint8_t green; uint8_t blue; };"
|
||||
echo "%%"
|
||||
tr -d '[]"' | tr ":" ","
|
|
@ -153,6 +153,8 @@ if(NOT APP_UNAME)
|
|||
message(FATAL_ERROR "Unable to find program 'uname'")
|
||||
endif(NOT APP_UNAME)
|
||||
|
||||
find_program(APP_GPERF gperf)
|
||||
|
||||
if(NOT RELEASE)
|
||||
find_program(APP_GIT git)
|
||||
|
||||
|
@ -163,7 +165,7 @@ if(NOT RELEASE)
|
|||
mark_as_advanced(APP_GIT)
|
||||
endif(NOT RELEASE)
|
||||
|
||||
mark_as_advanced(APP_AWK APP_WC APP_UNAME)
|
||||
mark_as_advanced(APP_AWK APP_WC APP_UNAME APP_GPERF)
|
||||
|
||||
execute_process(COMMAND ${APP_UNAME} -sm
|
||||
RESULT_VARIABLE RETVAL
|
||||
|
|
752
data/color-names.yml
Normal file
752
data/color-names.yml
Normal file
|
@ -0,0 +1,752 @@
|
|||
"alice blue": [240, 248, 255]
|
||||
"AliceBlue": [240, 248, 255]
|
||||
"antique white": [250, 235, 215]
|
||||
"AntiqueWhite": [250, 235, 215]
|
||||
"AntiqueWhite1": [255, 239, 219]
|
||||
"AntiqueWhite2": [238, 223, 204]
|
||||
"AntiqueWhite3": [205, 192, 176]
|
||||
"AntiqueWhite4": [139, 131, 120]
|
||||
"aquamarine": [127, 255, 212]
|
||||
"aquamarine1": [127, 255, 212]
|
||||
"aquamarine2": [118, 238, 198]
|
||||
"aquamarine3": [102, 205, 170]
|
||||
"aquamarine4": [69, 139, 116]
|
||||
"azure": [240, 255, 255]
|
||||
"azure1": [240, 255, 255]
|
||||
"azure2": [224, 238, 238]
|
||||
"azure3": [193, 205, 205]
|
||||
"azure4": [131, 139, 139]
|
||||
"beige": [245, 245, 220]
|
||||
"bisque": [255, 228, 196]
|
||||
"bisque1": [255, 228, 196]
|
||||
"bisque2": [238, 213, 183]
|
||||
"bisque3": [205, 183, 158]
|
||||
"bisque4": [139, 125, 107]
|
||||
"black": [0, 0, 0]
|
||||
"blanched almond": [255, 235, 205]
|
||||
"BlanchedAlmond": [255, 235, 205]
|
||||
"blue": [0, 0, 255]
|
||||
"blue violet": [138, 43, 226]
|
||||
"blue1": [0, 0, 255]
|
||||
"blue2": [0, 0, 238]
|
||||
"blue3": [0, 0, 205]
|
||||
"blue4": [0, 0, 139]
|
||||
"BlueViolet": [138, 43, 226]
|
||||
"brown": [165, 42, 42]
|
||||
"brown1": [255, 64, 64]
|
||||
"brown2": [238, 59, 59]
|
||||
"brown3": [205, 51, 51]
|
||||
"brown4": [139, 35, 35]
|
||||
"burlywood": [222, 184, 135]
|
||||
"burlywood1": [255, 211, 155]
|
||||
"burlywood2": [238, 197, 145]
|
||||
"burlywood3": [205, 170, 125]
|
||||
"burlywood4": [139, 115, 85]
|
||||
"cadet blue": [95, 158, 160]
|
||||
"CadetBlue": [95, 158, 160]
|
||||
"CadetBlue1": [152, 245, 255]
|
||||
"CadetBlue2": [142, 229, 238]
|
||||
"CadetBlue3": [122, 197, 205]
|
||||
"CadetBlue4": [83, 134, 139]
|
||||
"chartreuse": [127, 255, 0]
|
||||
"chartreuse1": [127, 255, 0]
|
||||
"chartreuse2": [118, 238, 0]
|
||||
"chartreuse3": [102, 205, 0]
|
||||
"chartreuse4": [69, 139, 0]
|
||||
"chocolate": [210, 105, 30]
|
||||
"chocolate1": [255, 127, 36]
|
||||
"chocolate2": [238, 118, 33]
|
||||
"chocolate3": [205, 102, 29]
|
||||
"chocolate4": [139, 69, 19]
|
||||
"coral": [255, 127, 80]
|
||||
"coral1": [255, 114, 86]
|
||||
"coral2": [238, 106, 80]
|
||||
"coral3": [205, 91, 69]
|
||||
"coral4": [139, 62, 47]
|
||||
"cornflower blue": [100, 149, 237]
|
||||
"CornflowerBlue": [100, 149, 237]
|
||||
"cornsilk": [255, 248, 220]
|
||||
"cornsilk1": [255, 248, 220]
|
||||
"cornsilk2": [238, 232, 205]
|
||||
"cornsilk3": [205, 200, 177]
|
||||
"cornsilk4": [139, 136, 120]
|
||||
"cyan": [0, 255, 255]
|
||||
"cyan1": [0, 255, 255]
|
||||
"cyan2": [0, 238, 238]
|
||||
"cyan3": [0, 205, 205]
|
||||
"cyan4": [0, 139, 139]
|
||||
"dark blue": [0, 0, 139]
|
||||
"dark cyan": [0, 139, 139]
|
||||
"dark goldenrod": [184, 134, 11]
|
||||
"dark gray": [169, 169, 169]
|
||||
"dark green": [0, 100, 0]
|
||||
"dark grey": [169, 169, 169]
|
||||
"dark khaki": [189, 183, 107]
|
||||
"dark magenta": [139, 0, 139]
|
||||
"dark olive green": [85, 107, 47]
|
||||
"dark orange": [255, 140, 0]
|
||||
"dark orchid": [153, 50, 204]
|
||||
"dark red": [139, 0, 0]
|
||||
"dark salmon": [233, 150, 122]
|
||||
"dark sea green": [143, 188, 143]
|
||||
"dark slate blue": [72, 61, 139]
|
||||
"dark slate gray": [47, 79, 79]
|
||||
"dark slate grey": [47, 79, 79]
|
||||
"dark turquoise": [0, 206, 209]
|
||||
"dark violet": [148, 0, 211]
|
||||
"DarkBlue": [0, 0, 139]
|
||||
"DarkCyan": [0, 139, 139]
|
||||
"DarkGoldenrod": [184, 134, 11]
|
||||
"DarkGoldenrod1": [255, 185, 15]
|
||||
"DarkGoldenrod2": [238, 173, 14]
|
||||
"DarkGoldenrod3": [205, 149, 12]
|
||||
"DarkGoldenrod4": [139, 101, 8]
|
||||
"DarkGray": [169, 169, 169]
|
||||
"DarkGreen": [0, 100, 0]
|
||||
"DarkGrey": [169, 169, 169]
|
||||
"DarkKhaki": [189, 183, 107]
|
||||
"DarkMagenta": [139, 0, 139]
|
||||
"DarkOliveGreen": [85, 107, 47]
|
||||
"DarkOliveGreen1": [202, 255, 112]
|
||||
"DarkOliveGreen2": [188, 238, 104]
|
||||
"DarkOliveGreen3": [162, 205, 90]
|
||||
"DarkOliveGreen4": [110, 139, 61]
|
||||
"DarkOrange": [255, 140, 0]
|
||||
"DarkOrange1": [255, 127, 0]
|
||||
"DarkOrange2": [238, 118, 0]
|
||||
"DarkOrange3": [205, 102, 0]
|
||||
"DarkOrange4": [139, 69, 0]
|
||||
"DarkOrchid": [153, 50, 204]
|
||||
"DarkOrchid1": [191, 62, 255]
|
||||
"DarkOrchid2": [178, 58, 238]
|
||||
"DarkOrchid3": [154, 50, 205]
|
||||
"DarkOrchid4": [104, 34, 139]
|
||||
"DarkRed": [139, 0, 0]
|
||||
"DarkSalmon": [233, 150, 122]
|
||||
"DarkSeaGreen": [143, 188, 143]
|
||||
"DarkSeaGreen1": [193, 255, 193]
|
||||
"DarkSeaGreen2": [180, 238, 180]
|
||||
"DarkSeaGreen3": [155, 205, 155]
|
||||
"DarkSeaGreen4": [105, 139, 105]
|
||||
"DarkSlateBlue": [72, 61, 139]
|
||||
"DarkSlateGray": [47, 79, 79]
|
||||
"DarkSlateGray1": [151, 255, 255]
|
||||
"DarkSlateGray2": [141, 238, 238]
|
||||
"DarkSlateGray3": [121, 205, 205]
|
||||
"DarkSlateGray4": [82, 139, 139]
|
||||
"DarkSlateGrey": [47, 79, 79]
|
||||
"DarkTurquoise": [0, 206, 209]
|
||||
"DarkViolet": [148, 0, 211]
|
||||
"deep pink": [255, 20, 147]
|
||||
"deep sky blue": [0, 191, 255]
|
||||
"DeepPink": [255, 20, 147]
|
||||
"DeepPink1": [255, 20, 147]
|
||||
"DeepPink2": [238, 18, 137]
|
||||
"DeepPink3": [205, 16, 118]
|
||||
"DeepPink4": [139, 10, 80]
|
||||
"DeepSkyBlue": [0, 191, 255]
|
||||
"DeepSkyBlue1": [0, 191, 255]
|
||||
"DeepSkyBlue2": [0, 178, 238]
|
||||
"DeepSkyBlue3": [0, 154, 205]
|
||||
"DeepSkyBlue4": [0, 104, 139]
|
||||
"dim gray": [105, 105, 105]
|
||||
"dim grey": [105, 105, 105]
|
||||
"DimGray": [105, 105, 105]
|
||||
"DimGrey": [105, 105, 105]
|
||||
"dodger blue": [30, 144, 255]
|
||||
"DodgerBlue": [30, 144, 255]
|
||||
"DodgerBlue1": [30, 144, 255]
|
||||
"DodgerBlue2": [28, 134, 238]
|
||||
"DodgerBlue3": [24, 116, 205]
|
||||
"DodgerBlue4": [16, 78, 139]
|
||||
"firebrick": [178, 34, 34]
|
||||
"firebrick1": [255, 48, 48]
|
||||
"firebrick2": [238, 44, 44]
|
||||
"firebrick3": [205, 38, 38]
|
||||
"firebrick4": [139, 26, 26]
|
||||
"floral white": [255, 250, 240]
|
||||
"FloralWhite": [255, 250, 240]
|
||||
"forest green": [34, 139, 34]
|
||||
"ForestGreen": [34, 139, 34]
|
||||
"gainsboro": [220, 220, 220]
|
||||
"ghost white": [248, 248, 255]
|
||||
"GhostWhite": [248, 248, 255]
|
||||
"gold": [255, 215, 0]
|
||||
"gold1": [255, 215, 0]
|
||||
"gold2": [238, 201, 0]
|
||||
"gold3": [205, 173, 0]
|
||||
"gold4": [139, 117, 0]
|
||||
"goldenrod": [218, 165, 32]
|
||||
"goldenrod1": [255, 193, 37]
|
||||
"goldenrod2": [238, 180, 34]
|
||||
"goldenrod3": [205, 155, 29]
|
||||
"goldenrod4": [139, 105, 20]
|
||||
"gray": [190, 190, 190]
|
||||
"gray0": [0, 0, 0]
|
||||
"gray1": [3, 3, 3]
|
||||
"gray10": [26, 26, 26]
|
||||
"gray100": [255, 255, 255]
|
||||
"gray11": [28, 28, 28]
|
||||
"gray12": [31, 31, 31]
|
||||
"gray13": [33, 33, 33]
|
||||
"gray14": [36, 36, 36]
|
||||
"gray15": [38, 38, 38]
|
||||
"gray16": [41, 41, 41]
|
||||
"gray17": [43, 43, 43]
|
||||
"gray18": [46, 46, 46]
|
||||
"gray19": [48, 48, 48]
|
||||
"gray2": [5, 5, 5]
|
||||
"gray20": [51, 51, 51]
|
||||
"gray21": [54, 54, 54]
|
||||
"gray22": [56, 56, 56]
|
||||
"gray23": [59, 59, 59]
|
||||
"gray24": [61, 61, 61]
|
||||
"gray25": [64, 64, 64]
|
||||
"gray26": [66, 66, 66]
|
||||
"gray27": [69, 69, 69]
|
||||
"gray28": [71, 71, 71]
|
||||
"gray29": [74, 74, 74]
|
||||
"gray3": [8, 8, 8]
|
||||
"gray30": [77, 77, 77]
|
||||
"gray31": [79, 79, 79]
|
||||
"gray32": [82, 82, 82]
|
||||
"gray33": [84, 84, 84]
|
||||
"gray34": [87, 87, 87]
|
||||
"gray35": [89, 89, 89]
|
||||
"gray36": [92, 92, 92]
|
||||
"gray37": [94, 94, 94]
|
||||
"gray38": [97, 97, 97]
|
||||
"gray39": [99, 99, 99]
|
||||
"gray4": [10, 10, 10]
|
||||
"gray40": [102, 102, 102]
|
||||
"gray41": [105, 105, 105]
|
||||
"gray42": [107, 107, 107]
|
||||
"gray43": [110, 110, 110]
|
||||
"gray44": [112, 112, 112]
|
||||
"gray45": [115, 115, 115]
|
||||
"gray46": [117, 117, 117]
|
||||
"gray47": [120, 120, 120]
|
||||
"gray48": [122, 122, 122]
|
||||
"gray49": [125, 125, 125]
|
||||
"gray5": [13, 13, 13]
|
||||
"gray50": [127, 127, 127]
|
||||
"gray51": [130, 130, 130]
|
||||
"gray52": [133, 133, 133]
|
||||
"gray53": [135, 135, 135]
|
||||
"gray54": [138, 138, 138]
|
||||
"gray55": [140, 140, 140]
|
||||
"gray56": [143, 143, 143]
|
||||
"gray57": [145, 145, 145]
|
||||
"gray58": [148, 148, 148]
|
||||
"gray59": [150, 150, 150]
|
||||
"gray6": [15, 15, 15]
|
||||
"gray60": [153, 153, 153]
|
||||
"gray61": [156, 156, 156]
|
||||
"gray62": [158, 158, 158]
|
||||
"gray63": [161, 161, 161]
|
||||
"gray64": [163, 163, 163]
|
||||
"gray65": [166, 166, 166]
|
||||
"gray66": [168, 168, 168]
|
||||
"gray67": [171, 171, 171]
|
||||
"gray68": [173, 173, 173]
|
||||
"gray69": [176, 176, 176]
|
||||
"gray7": [18, 18, 18]
|
||||
"gray70": [179, 179, 179]
|
||||
"gray71": [181, 181, 181]
|
||||
"gray72": [184, 184, 184]
|
||||
"gray73": [186, 186, 186]
|
||||
"gray74": [189, 189, 189]
|
||||
"gray75": [191, 191, 191]
|
||||
"gray76": [194, 194, 194]
|
||||
"gray77": [196, 196, 196]
|
||||
"gray78": [199, 199, 199]
|
||||
"gray79": [201, 201, 201]
|
||||
"gray8": [20, 20, 20]
|
||||
"gray80": [204, 204, 204]
|
||||
"gray81": [207, 207, 207]
|
||||
"gray82": [209, 209, 209]
|
||||
"gray83": [212, 212, 212]
|
||||
"gray84": [214, 214, 214]
|
||||
"gray85": [217, 217, 217]
|
||||
"gray86": [219, 219, 219]
|
||||
"gray87": [222, 222, 222]
|
||||
"gray88": [224, 224, 224]
|
||||
"gray89": [227, 227, 227]
|
||||
"gray9": [23, 23, 23]
|
||||
"gray90": [229, 229, 229]
|
||||
"gray91": [232, 232, 232]
|
||||
"gray92": [235, 235, 235]
|
||||
"gray93": [237, 237, 237]
|
||||
"gray94": [240, 240, 240]
|
||||
"gray95": [242, 242, 242]
|
||||
"gray96": [245, 245, 245]
|
||||
"gray97": [247, 247, 247]
|
||||
"gray98": [250, 250, 250]
|
||||
"gray99": [252, 252, 252]
|
||||
"green": [0, 255, 0]
|
||||
"green yellow": [173, 255, 47]
|
||||
"green1": [0, 255, 0]
|
||||
"green2": [0, 238, 0]
|
||||
"green3": [0, 205, 0]
|
||||
"green4": [0, 139, 0]
|
||||
"GreenYellow": [173, 255, 47]
|
||||
"grey": [190, 190, 190]
|
||||
"grey0": [0, 0, 0]
|
||||
"grey1": [3, 3, 3]
|
||||
"grey10": [26, 26, 26]
|
||||
"grey100": [255, 255, 255]
|
||||
"grey11": [28, 28, 28]
|
||||
"grey12": [31, 31, 31]
|
||||
"grey13": [33, 33, 33]
|
||||
"grey14": [36, 36, 36]
|
||||
"grey15": [38, 38, 38]
|
||||
"grey16": [41, 41, 41]
|
||||
"grey17": [43, 43, 43]
|
||||
"grey18": [46, 46, 46]
|
||||
"grey19": [48, 48, 48]
|
||||
"grey2": [5, 5, 5]
|
||||
"grey20": [51, 51, 51]
|
||||
"grey21": [54, 54, 54]
|
||||
"grey22": [56, 56, 56]
|
||||
"grey23": [59, 59, 59]
|
||||
"grey24": [61, 61, 61]
|
||||
"grey25": [64, 64, 64]
|
||||
"grey26": [66, 66, 66]
|
||||
"grey27": [69, 69, 69]
|
||||
"grey28": [71, 71, 71]
|
||||
"grey29": [74, 74, 74]
|
||||
"grey3": [8, 8, 8]
|
||||
"grey30": [77, 77, 77]
|
||||
"grey31": [79, 79, 79]
|
||||
"grey32": [82, 82, 82]
|
||||
"grey33": [84, 84, 84]
|
||||
"grey34": [87, 87, 87]
|
||||
"grey35": [89, 89, 89]
|
||||
"grey36": [92, 92, 92]
|
||||
"grey37": [94, 94, 94]
|
||||
"grey38": [97, 97, 97]
|
||||
"grey39": [99, 99, 99]
|
||||
"grey4": [10, 10, 10]
|
||||
"grey40": [102, 102, 102]
|
||||
"grey41": [105, 105, 105]
|
||||
"grey42": [107, 107, 107]
|
||||
"grey43": [110, 110, 110]
|
||||
"grey44": [112, 112, 112]
|
||||
"grey45": [115, 115, 115]
|
||||
"grey46": [117, 117, 117]
|
||||
"grey47": [120, 120, 120]
|
||||
"grey48": [122, 122, 122]
|
||||
"grey49": [125, 125, 125]
|
||||
"grey5": [13, 13, 13]
|
||||
"grey50": [127, 127, 127]
|
||||
"grey51": [130, 130, 130]
|
||||
"grey52": [133, 133, 133]
|
||||
"grey53": [135, 135, 135]
|
||||
"grey54": [138, 138, 138]
|
||||
"grey55": [140, 140, 140]
|
||||
"grey56": [143, 143, 143]
|
||||
"grey57": [145, 145, 145]
|
||||
"grey58": [148, 148, 148]
|
||||
"grey59": [150, 150, 150]
|
||||
"grey6": [15, 15, 15]
|
||||
"grey60": [153, 153, 153]
|
||||
"grey61": [156, 156, 156]
|
||||
"grey62": [158, 158, 158]
|
||||
"grey63": [161, 161, 161]
|
||||
"grey64": [163, 163, 163]
|
||||
"grey65": [166, 166, 166]
|
||||
"grey66": [168, 168, 168]
|
||||
"grey67": [171, 171, 171]
|
||||
"grey68": [173, 173, 173]
|
||||
"grey69": [176, 176, 176]
|
||||
"grey7": [18, 18, 18]
|
||||
"grey70": [179, 179, 179]
|
||||
"grey71": [181, 181, 181]
|
||||
"grey72": [184, 184, 184]
|
||||
"grey73": [186, 186, 186]
|
||||
"grey74": [189, 189, 189]
|
||||
"grey75": [191, 191, 191]
|
||||
"grey76": [194, 194, 194]
|
||||
"grey77": [196, 196, 196]
|
||||
"grey78": [199, 199, 199]
|
||||
"grey79": [201, 201, 201]
|
||||
"grey8": [20, 20, 20]
|
||||
"grey80": [204, 204, 204]
|
||||
"grey81": [207, 207, 207]
|
||||
"grey82": [209, 209, 209]
|
||||
"grey83": [212, 212, 212]
|
||||
"grey84": [214, 214, 214]
|
||||
"grey85": [217, 217, 217]
|
||||
"grey86": [219, 219, 219]
|
||||
"grey87": [222, 222, 222]
|
||||
"grey88": [224, 224, 224]
|
||||
"grey89": [227, 227, 227]
|
||||
"grey9": [23, 23, 23]
|
||||
"grey90": [229, 229, 229]
|
||||
"grey91": [232, 232, 232]
|
||||
"grey92": [235, 235, 235]
|
||||
"grey93": [237, 237, 237]
|
||||
"grey94": [240, 240, 240]
|
||||
"grey95": [242, 242, 242]
|
||||
"grey96": [245, 245, 245]
|
||||
"grey97": [247, 247, 247]
|
||||
"grey98": [250, 250, 250]
|
||||
"grey99": [252, 252, 252]
|
||||
"honeydew": [240, 255, 240]
|
||||
"honeydew1": [240, 255, 240]
|
||||
"honeydew2": [224, 238, 224]
|
||||
"honeydew3": [193, 205, 193]
|
||||
"honeydew4": [131, 139, 131]
|
||||
"hot pink": [255, 105, 180]
|
||||
"HotPink": [255, 105, 180]
|
||||
"HotPink1": [255, 110, 180]
|
||||
"HotPink2": [238, 106, 167]
|
||||
"HotPink3": [205, 96, 144]
|
||||
"HotPink4": [139, 58, 98]
|
||||
"indian red": [205, 92, 92]
|
||||
"IndianRed": [205, 92, 92]
|
||||
"IndianRed1": [255, 106, 106]
|
||||
"IndianRed2": [238, 99, 99]
|
||||
"IndianRed3": [205, 85, 85]
|
||||
"IndianRed4": [139, 58, 58]
|
||||
"ivory": [255, 255, 240]
|
||||
"ivory1": [255, 255, 240]
|
||||
"ivory2": [238, 238, 224]
|
||||
"ivory3": [205, 205, 193]
|
||||
"ivory4": [139, 139, 131]
|
||||
"khaki": [240, 230, 140]
|
||||
"khaki1": [255, 246, 143]
|
||||
"khaki2": [238, 230, 133]
|
||||
"khaki3": [205, 198, 115]
|
||||
"khaki4": [139, 134, 78]
|
||||
"lavender": [230, 230, 250]
|
||||
"lavender blush": [255, 240, 245]
|
||||
"LavenderBlush": [255, 240, 245]
|
||||
"LavenderBlush1": [255, 240, 245]
|
||||
"LavenderBlush2": [238, 224, 229]
|
||||
"LavenderBlush3": [205, 193, 197]
|
||||
"LavenderBlush4": [139, 131, 134]
|
||||
"lawn green": [124, 252, 0]
|
||||
"LawnGreen": [124, 252, 0]
|
||||
"lemon chiffon": [255, 250, 205]
|
||||
"LemonChiffon": [255, 250, 205]
|
||||
"LemonChiffon1": [255, 250, 205]
|
||||
"LemonChiffon2": [238, 233, 191]
|
||||
"LemonChiffon3": [205, 201, 165]
|
||||
"LemonChiffon4": [139, 137, 112]
|
||||
"light blue": [173, 216, 230]
|
||||
"light coral": [240, 128, 128]
|
||||
"light cyan": [224, 255, 255]
|
||||
"light goldenrod": [238, 221, 130]
|
||||
"light goldenrod yellow": [250, 250, 210]
|
||||
"light gray": [211, 211, 211]
|
||||
"light green": [144, 238, 144]
|
||||
"light grey": [211, 211, 211]
|
||||
"light pink": [255, 182, 193]
|
||||
"light salmon": [255, 160, 122]
|
||||
"light sea green": [32, 178, 170]
|
||||
"light sky blue": [135, 206, 250]
|
||||
"light slate blue": [132, 112, 255]
|
||||
"light slate gray": [119, 136, 153]
|
||||
"light slate grey": [119, 136, 153]
|
||||
"light steel blue": [176, 196, 222]
|
||||
"light yellow": [255, 255, 224]
|
||||
"LightBlue": [173, 216, 230]
|
||||
"LightBlue1": [191, 239, 255]
|
||||
"LightBlue2": [178, 223, 238]
|
||||
"LightBlue3": [154, 192, 205]
|
||||
"LightBlue4": [104, 131, 139]
|
||||
"LightCoral": [240, 128, 128]
|
||||
"LightCyan": [224, 255, 255]
|
||||
"LightCyan1": [224, 255, 255]
|
||||
"LightCyan2": [209, 238, 238]
|
||||
"LightCyan3": [180, 205, 205]
|
||||
"LightCyan4": [122, 139, 139]
|
||||
"LightGoldenrod": [238, 221, 130]
|
||||
"LightGoldenrod1": [255, 236, 139]
|
||||
"LightGoldenrod2": [238, 220, 130]
|
||||
"LightGoldenrod3": [205, 190, 112]
|
||||
"LightGoldenrod4": [139, 129, 76]
|
||||
"LightGoldenrodYellow": [250, 250, 210]
|
||||
"LightGray": [211, 211, 211]
|
||||
"LightGreen": [144, 238, 144]
|
||||
"LightGrey": [211, 211, 211]
|
||||
"LightPink": [255, 182, 193]
|
||||
"LightPink1": [255, 174, 185]
|
||||
"LightPink2": [238, 162, 173]
|
||||
"LightPink3": [205, 140, 149]
|
||||
"LightPink4": [139, 95, 101]
|
||||
"LightSalmon": [255, 160, 122]
|
||||
"LightSalmon1": [255, 160, 122]
|
||||
"LightSalmon2": [238, 149, 114]
|
||||
"LightSalmon3": [205, 129, 98]
|
||||
"LightSalmon4": [139, 87, 66]
|
||||
"LightSeaGreen": [32, 178, 170]
|
||||
"LightSkyBlue": [135, 206, 250]
|
||||
"LightSkyBlue1": [176, 226, 255]
|
||||
"LightSkyBlue2": [164, 211, 238]
|
||||
"LightSkyBlue3": [141, 182, 205]
|
||||
"LightSkyBlue4": [96, 123, 139]
|
||||
"LightSlateBlue": [132, 112, 255]
|
||||
"LightSlateGray": [119, 136, 153]
|
||||
"LightSlateGrey": [119, 136, 153]
|
||||
"LightSteelBlue": [176, 196, 222]
|
||||
"LightSteelBlue1": [202, 225, 255]
|
||||
"LightSteelBlue2": [188, 210, 238]
|
||||
"LightSteelBlue3": [162, 181, 205]
|
||||
"LightSteelBlue4": [110, 123, 139]
|
||||
"LightYellow": [255, 255, 224]
|
||||
"LightYellow1": [255, 255, 224]
|
||||
"LightYellow2": [238, 238, 209]
|
||||
"LightYellow3": [205, 205, 180]
|
||||
"LightYellow4": [139, 139, 122]
|
||||
"lime green": [50, 205, 50]
|
||||
"LimeGreen": [50, 205, 50]
|
||||
"linen": [250, 240, 230]
|
||||
"magenta": [255, 0, 255]
|
||||
"magenta1": [255, 0, 255]
|
||||
"magenta2": [238, 0, 238]
|
||||
"magenta3": [205, 0, 205]
|
||||
"magenta4": [139, 0, 139]
|
||||
"maroon": [176, 48, 96]
|
||||
"maroon1": [255, 52, 179]
|
||||
"maroon2": [238, 48, 167]
|
||||
"maroon3": [205, 41, 144]
|
||||
"maroon4": [139, 28, 98]
|
||||
"medium aquamarine": [102, 205, 170]
|
||||
"medium blue": [0, 0, 205]
|
||||
"medium orchid": [186, 85, 211]
|
||||
"medium purple": [147, 112, 219]
|
||||
"medium sea green": [60, 179, 113]
|
||||
"medium slate blue": [123, 104, 238]
|
||||
"medium spring green": [0, 250, 154]
|
||||
"medium turquoise": [72, 209, 204]
|
||||
"medium violet red": [199, 21, 133]
|
||||
"MediumAquamarine": [102, 205, 170]
|
||||
"MediumBlue": [0, 0, 205]
|
||||
"MediumOrchid": [186, 85, 211]
|
||||
"MediumOrchid1": [224, 102, 255]
|
||||
"MediumOrchid2": [209, 95, 238]
|
||||
"MediumOrchid3": [180, 82, 205]
|
||||
"MediumOrchid4": [122, 55, 139]
|
||||
"MediumPurple": [147, 112, 219]
|
||||
"MediumPurple1": [171, 130, 255]
|
||||
"MediumPurple2": [159, 121, 238]
|
||||
"MediumPurple3": [137, 104, 205]
|
||||
"MediumPurple4": [93, 71, 139]
|
||||
"MediumSeaGreen": [60, 179, 113]
|
||||
"MediumSlateBlue": [123, 104, 238]
|
||||
"MediumSpringGreen": [0, 250, 154]
|
||||
"MediumTurquoise": [72, 209, 204]
|
||||
"MediumVioletRed": [199, 21, 133]
|
||||
"midnight blue": [25, 25, 112]
|
||||
"MidnightBlue": [25, 25, 112]
|
||||
"mint cream": [245, 255, 250]
|
||||
"MintCream": [245, 255, 250]
|
||||
"misty rose": [255, 228, 225]
|
||||
"MistyRose": [255, 228, 225]
|
||||
"MistyRose1": [255, 228, 225]
|
||||
"MistyRose2": [238, 213, 210]
|
||||
"MistyRose3": [205, 183, 181]
|
||||
"MistyRose4": [139, 125, 123]
|
||||
"moccasin": [255, 228, 181]
|
||||
"navajo white": [255, 222, 173]
|
||||
"NavajoWhite": [255, 222, 173]
|
||||
"NavajoWhite1": [255, 222, 173]
|
||||
"NavajoWhite2": [238, 207, 161]
|
||||
"NavajoWhite3": [205, 179, 139]
|
||||
"NavajoWhite4": [139, 121, 94]
|
||||
"navy": [0, 0, 128]
|
||||
"navy blue": [0, 0, 128]
|
||||
"NavyBlue": [0, 0, 128]
|
||||
"old lace": [253, 245, 230]
|
||||
"OldLace": [253, 245, 230]
|
||||
"olive drab": [107, 142, 35]
|
||||
"OliveDrab": [107, 142, 35]
|
||||
"OliveDrab1": [192, 255, 62]
|
||||
"OliveDrab2": [179, 238, 58]
|
||||
"OliveDrab3": [154, 205, 50]
|
||||
"OliveDrab4": [105, 139, 34]
|
||||
"orange": [255, 165, 0]
|
||||
"orange red": [255, 69, 0]
|
||||
"orange1": [255, 165, 0]
|
||||
"orange2": [238, 154, 0]
|
||||
"orange3": [205, 133, 0]
|
||||
"orange4": [139, 90, 0]
|
||||
"OrangeRed": [255, 69, 0]
|
||||
"OrangeRed1": [255, 69, 0]
|
||||
"OrangeRed2": [238, 64, 0]
|
||||
"OrangeRed3": [205, 55, 0]
|
||||
"OrangeRed4": [139, 37, 0]
|
||||
"orchid": [218, 112, 214]
|
||||
"orchid1": [255, 131, 250]
|
||||
"orchid2": [238, 122, 233]
|
||||
"orchid3": [205, 105, 201]
|
||||
"orchid4": [139, 71, 137]
|
||||
"pale goldenrod": [238, 232, 170]
|
||||
"pale green": [152, 251, 152]
|
||||
"pale turquoise": [175, 238, 238]
|
||||
"pale violet red": [219, 112, 147]
|
||||
"PaleGoldenrod": [238, 232, 170]
|
||||
"PaleGreen": [152, 251, 152]
|
||||
"PaleGreen1": [154, 255, 154]
|
||||
"PaleGreen2": [144, 238, 144]
|
||||
"PaleGreen3": [124, 205, 124]
|
||||
"PaleGreen4": [84, 139, 84]
|
||||
"PaleTurquoise": [175, 238, 238]
|
||||
"PaleTurquoise1": [187, 255, 255]
|
||||
"PaleTurquoise2": [174, 238, 238]
|
||||
"PaleTurquoise3": [150, 205, 205]
|
||||
"PaleTurquoise4": [102, 139, 139]
|
||||
"PaleVioletRed": [219, 112, 147]
|
||||
"PaleVioletRed1": [255, 130, 171]
|
||||
"PaleVioletRed2": [238, 121, 159]
|
||||
"PaleVioletRed3": [205, 104, 137]
|
||||
"PaleVioletRed4": [139, 71, 93]
|
||||
"papaya whip": [255, 239, 213]
|
||||
"PapayaWhip": [255, 239, 213]
|
||||
"peach puff": [255, 218, 185]
|
||||
"PeachPuff": [255, 218, 185]
|
||||
"PeachPuff1": [255, 218, 185]
|
||||
"PeachPuff2": [238, 203, 173]
|
||||
"PeachPuff3": [205, 175, 149]
|
||||
"PeachPuff4": [139, 119, 101]
|
||||
"peru": [205, 133, 63]
|
||||
"pink": [255, 192, 203]
|
||||
"pink1": [255, 181, 197]
|
||||
"pink2": [238, 169, 184]
|
||||
"pink3": [205, 145, 158]
|
||||
"pink4": [139, 99, 108]
|
||||
"plum": [221, 160, 221]
|
||||
"plum1": [255, 187, 255]
|
||||
"plum2": [238, 174, 238]
|
||||
"plum3": [205, 150, 205]
|
||||
"plum4": [139, 102, 139]
|
||||
"powder blue": [176, 224, 230]
|
||||
"PowderBlue": [176, 224, 230]
|
||||
"purple": [160, 32, 240]
|
||||
"purple1": [155, 48, 255]
|
||||
"purple2": [145, 44, 238]
|
||||
"purple3": [125, 38, 205]
|
||||
"purple4": [85, 26, 139]
|
||||
"red": [255, 0, 0]
|
||||
"red1": [255, 0, 0]
|
||||
"red2": [238, 0, 0]
|
||||
"red3": [205, 0, 0]
|
||||
"red4": [139, 0, 0]
|
||||
"rosy brown": [188, 143, 143]
|
||||
"RosyBrown": [188, 143, 143]
|
||||
"RosyBrown1": [255, 193, 193]
|
||||
"RosyBrown2": [238, 180, 180]
|
||||
"RosyBrown3": [205, 155, 155]
|
||||
"RosyBrown4": [139, 105, 105]
|
||||
"royal blue": [65, 105, 225]
|
||||
"RoyalBlue": [65, 105, 225]
|
||||
"RoyalBlue1": [72, 118, 255]
|
||||
"RoyalBlue2": [67, 110, 238]
|
||||
"RoyalBlue3": [58, 95, 205]
|
||||
"RoyalBlue4": [39, 64, 139]
|
||||
"saddle brown": [139, 69, 19]
|
||||
"SaddleBrown": [139, 69, 19]
|
||||
"salmon": [250, 128, 114]
|
||||
"salmon1": [255, 140, 105]
|
||||
"salmon2": [238, 130, 98]
|
||||
"salmon3": [205, 112, 84]
|
||||
"salmon4": [139, 76, 57]
|
||||
"sandy brown": [244, 164, 96]
|
||||
"SandyBrown": [244, 164, 96]
|
||||
"sea green": [46, 139, 87]
|
||||
"SeaGreen": [46, 139, 87]
|
||||
"SeaGreen1": [84, 255, 159]
|
||||
"SeaGreen2": [78, 238, 148]
|
||||
"SeaGreen3": [67, 205, 128]
|
||||
"SeaGreen4": [46, 139, 87]
|
||||
"seashell": [255, 245, 238]
|
||||
"seashell1": [255, 245, 238]
|
||||
"seashell2": [238, 229, 222]
|
||||
"seashell3": [205, 197, 191]
|
||||
"seashell4": [139, 134, 130]
|
||||
"sienna": [160, 82, 45]
|
||||
"sienna1": [255, 130, 71]
|
||||
"sienna2": [238, 121, 66]
|
||||
"sienna3": [205, 104, 57]
|
||||
"sienna4": [139, 71, 38]
|
||||
"sky blue": [135, 206, 235]
|
||||
"SkyBlue": [135, 206, 235]
|
||||
"SkyBlue1": [135, 206, 255]
|
||||
"SkyBlue2": [126, 192, 238]
|
||||
"SkyBlue3": [108, 166, 205]
|
||||
"SkyBlue4": [74, 112, 139]
|
||||
"slate blue": [106, 90, 205]
|
||||
"slate gray": [112, 128, 144]
|
||||
"slate grey": [112, 128, 144]
|
||||
"SlateBlue": [106, 90, 205]
|
||||
"SlateBlue1": [131, 111, 255]
|
||||
"SlateBlue2": [122, 103, 238]
|
||||
"SlateBlue3": [105, 89, 205]
|
||||
"SlateBlue4": [71, 60, 139]
|
||||
"SlateGray": [112, 128, 144]
|
||||
"SlateGray1": [198, 226, 255]
|
||||
"SlateGray2": [185, 211, 238]
|
||||
"SlateGray3": [159, 182, 205]
|
||||
"SlateGray4": [108, 123, 139]
|
||||
"SlateGrey": [112, 128, 144]
|
||||
"snow": [255, 250, 250]
|
||||
"snow1": [255, 250, 250]
|
||||
"snow2": [238, 233, 233]
|
||||
"snow3": [205, 201, 201]
|
||||
"snow4": [139, 137, 137]
|
||||
"spring green": [0, 255, 127]
|
||||
"SpringGreen": [0, 255, 127]
|
||||
"SpringGreen1": [0, 255, 127]
|
||||
"SpringGreen2": [0, 238, 118]
|
||||
"SpringGreen3": [0, 205, 102]
|
||||
"SpringGreen4": [0, 139, 69]
|
||||
"steel blue": [70, 130, 180]
|
||||
"SteelBlue": [70, 130, 180]
|
||||
"SteelBlue1": [99, 184, 255]
|
||||
"SteelBlue2": [92, 172, 238]
|
||||
"SteelBlue3": [79, 148, 205]
|
||||
"SteelBlue4": [54, 100, 139]
|
||||
"tan": [210, 180, 140]
|
||||
"tan1": [255, 165, 79]
|
||||
"tan2": [238, 154, 73]
|
||||
"tan3": [205, 133, 63]
|
||||
"tan4": [139, 90, 43]
|
||||
"thistle": [216, 191, 216]
|
||||
"thistle1": [255, 225, 255]
|
||||
"thistle2": [238, 210, 238]
|
||||
"thistle3": [205, 181, 205]
|
||||
"thistle4": [139, 123, 139]
|
||||
"tomato": [255, 99, 71]
|
||||
"tomato1": [255, 99, 71]
|
||||
"tomato2": [238, 92, 66]
|
||||
"tomato3": [205, 79, 57]
|
||||
"tomato4": [139, 54, 38]
|
||||
"turquoise": [64, 224, 208]
|
||||
"turquoise1": [0, 245, 255]
|
||||
"turquoise2": [0, 229, 238]
|
||||
"turquoise3": [0, 197, 205]
|
||||
"turquoise4": [0, 134, 139]
|
||||
"violet": [238, 130, 238]
|
||||
"violet red": [208, 32, 144]
|
||||
"VioletRed": [208, 32, 144]
|
||||
"VioletRed1": [255, 62, 150]
|
||||
"VioletRed2": [238, 58, 140]
|
||||
"VioletRed3": [205, 50, 120]
|
||||
"VioletRed4": [139, 34, 82]
|
||||
"wheat": [245, 222, 179]
|
||||
"wheat1": [255, 231, 186]
|
||||
"wheat2": [238, 216, 174]
|
||||
"wheat3": [205, 186, 150]
|
||||
"wheat4": [139, 126, 102]
|
||||
"white": [255, 255, 255]
|
||||
"white smoke": [245, 245, 245]
|
||||
"WhiteSmoke": [245, 245, 245]
|
||||
"yellow": [255, 255, 0]
|
||||
"yellow green": [154, 205, 50]
|
||||
"yellow1": [255, 255, 0]
|
||||
"yellow2": [238, 238, 0]
|
||||
"yellow3": [205, 205, 0]
|
||||
"yellow4": [139, 139, 0]
|
||||
"YellowGreen": [154, 205, 50]
|
|
@ -27,7 +27,7 @@ if(BUILD_DOCS)
|
|||
)
|
||||
add_custom_target(conky.1
|
||||
ALL
|
||||
COMMAND ${APP_PANDOC} --standalone -f markdown -t man ${CMAKE_CURRENT_BINARY_DIR}/man.md > ${CMAKE_CURRENT_BINARY_DIR}/conky.1
|
||||
COMMAND ${APP_PANDOC} --standalone -f markdown+raw_html -t man ${CMAKE_CURRENT_BINARY_DIR}/man.md > ${CMAKE_CURRENT_BINARY_DIR}/conky.1
|
||||
SOURCES config_settings.yaml variables.yaml lua.yaml man.md.j2
|
||||
)
|
||||
add_dependencies(conky.1 man.md)
|
||||
|
|
|
@ -64,6 +64,7 @@
|
|||
llvmPackages_16.clang-unwrapped
|
||||
ninja
|
||||
pkg-config
|
||||
gperf
|
||||
];
|
||||
buildInputs =
|
||||
[
|
||||
|
|
|
@ -47,6 +47,23 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/defconfig.h)
|
|||
)
|
||||
endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/defconfig.h)
|
||||
|
||||
# Generate colour-names.cc with gperf
|
||||
if(APP_GPERF)
|
||||
execute_process(
|
||||
INPUT_FILE "${CMAKE_SOURCE_DIR}/data/color-names.yml"
|
||||
OUTPUT_FILE "${CMAKE_BINARY_DIR}/data/color-names.gperf"
|
||||
COMMAND sh "${CMAKE_SOURCE_DIR}/bin/format-colors.sh"
|
||||
)
|
||||
execute_process(
|
||||
INPUT_FILE "${CMAKE_BINARY_DIR}/data/color-names.gperf"
|
||||
OUTPUT_FILE "${CMAKE_BINARY_DIR}/colour-names.cc"
|
||||
COMMAND ${APP_GPERF} --ignore-case -LC++ -Zcolor_name_hash -t -7 -m1 -C -E
|
||||
)
|
||||
else(APP_GPERF)
|
||||
message(WARNING "'gperf' program not found, using stub colour-names.cc; colors names will not be parsed")
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/colour-names-stub.cc" "${CMAKE_BINARY_DIR}/colour-names.cc" COPYONLY)
|
||||
endif(APP_GPERF)
|
||||
|
||||
set(conky_sources
|
||||
${conky_sources}
|
||||
c++wrap.cc
|
||||
|
@ -129,8 +146,6 @@ set(conky_sources
|
|||
update-cb.hh
|
||||
logging.h
|
||||
semaphore.hh
|
||||
x11-color.cc
|
||||
x11-color.h
|
||||
)
|
||||
|
||||
# Platform specific sources
|
||||
|
@ -242,6 +257,7 @@ if(BUILD_X11)
|
|||
display-x11.hh
|
||||
x11-settings.cc
|
||||
x11-settings.h
|
||||
x11-color.cc
|
||||
x11.cc
|
||||
x11.h
|
||||
)
|
||||
|
|
22
src/colour-names-stub.cc
Normal file
22
src/colour-names-stub.cc
Normal file
|
@ -0,0 +1,22 @@
|
|||
/*
|
||||
* To generate colour-names.cc, you must have gperf installed during build.
|
||||
* This is a dummy implementation for builds without gperf.
|
||||
* Color name matching will always return null (i.e. no match).
|
||||
*/
|
||||
|
||||
struct rgb {
|
||||
const char *name;
|
||||
uint8_t red;
|
||||
uint8_t green;
|
||||
uint8_t blue;
|
||||
};
|
||||
|
||||
class color_name_hash {
|
||||
public:
|
||||
static const struct rgb *in_word_set(const char *str, size_t len);
|
||||
};
|
||||
|
||||
const struct rgb *color_name_hash::in_word_set(const char *str, size_t len) {
|
||||
DBGP("color parsing not supported");
|
||||
return nullptr;
|
||||
}
|
|
@ -33,15 +33,6 @@
|
|||
|
||||
#include <optional>
|
||||
|
||||
#ifdef BUILD_X11
|
||||
#include <X11/Xlib.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#endif /* BUILD_X11 */
|
||||
|
||||
// sourced from X11, doesn't actually need X11
|
||||
#include "x11-color.h"
|
||||
|
||||
Colour Colour::from_argb32(uint32_t argb) {
|
||||
Colour out;
|
||||
out.alpha = argb >> 24;
|
||||
|
@ -51,58 +42,15 @@ Colour Colour::from_argb32(uint32_t argb) {
|
|||
return out;
|
||||
}
|
||||
|
||||
#ifdef BUILD_X11
|
||||
unsigned long Colour::to_x11_color(Display *display, int screen,
|
||||
bool transparency, bool premultiply) {
|
||||
static std::unordered_map<Colour, unsigned long, Colour::Hash> x11_pixels;
|
||||
|
||||
if (display == nullptr) {
|
||||
/* cannot work if display is not open */
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long pixel;
|
||||
|
||||
/* Either get a cached X11 pixel or allocate one */
|
||||
if (auto pixel_iter = x11_pixels.find(*this);
|
||||
pixel_iter != x11_pixels.end()) {
|
||||
pixel = pixel_iter->second;
|
||||
} else {
|
||||
XColor xcolor{};
|
||||
xcolor.red = this->red * 257;
|
||||
xcolor.green = this->green * 257;
|
||||
xcolor.blue = this->blue * 257;
|
||||
if (XAllocColor(display, DefaultColormap(display, screen), &xcolor) == 0) {
|
||||
// NORM_ERR("can't allocate X color");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Save pixel value in the cache to avoid reallocating it */
|
||||
x11_pixels[*this] = xcolor.pixel;
|
||||
pixel = static_cast<unsigned long>(xcolor.pixel);
|
||||
}
|
||||
|
||||
pixel &= 0xffffff;
|
||||
#ifdef BUILD_ARGB
|
||||
if (transparency) {
|
||||
if (premultiply)
|
||||
pixel = (red * alpha / 255) << 16 | (green * alpha / 255) << 8 |
|
||||
(blue * alpha / 255);
|
||||
pixel |= ((unsigned long)alpha << 24);
|
||||
}
|
||||
#endif /* BUILD_ARGB */
|
||||
return pixel;
|
||||
}
|
||||
#endif /* BUILD_X11 */
|
||||
#include "colour-names.cc"
|
||||
|
||||
std::optional<Colour> parse_color_name(const std::string &name) {
|
||||
unsigned short r, g, b;
|
||||
size_t len = name.length();
|
||||
// Parse X11 color names.
|
||||
if (OsLookupColor(name.c_str(), len, &r, &g, &b)) {
|
||||
return Colour{(uint8_t)r, (uint8_t)g, (uint8_t)b, 0xff};
|
||||
} else {
|
||||
const rgb *value = color_name_hash::in_word_set(name.c_str(), name.length());
|
||||
|
||||
if (value == nullptr) {
|
||||
return std::nullopt;
|
||||
} else {
|
||||
return Colour{value->red, value->green, value->blue};
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -165,16 +113,18 @@ Colour parse_color(const std::string &color) {
|
|||
std::optional<Colour> value_##name = name(color); \
|
||||
if (value_##name.has_value()) { return value_##name.value(); }
|
||||
|
||||
std::optional<Colour> value_parse_color_name = parse_color_name(color);
|
||||
if (value_parse_color_name.has_value()) {
|
||||
return value_parse_color_name.value();
|
||||
}
|
||||
std::optional<Colour> value_parse_hex_color = parse_hex_color(color);
|
||||
if (value_parse_hex_color.has_value()) {
|
||||
return value_parse_hex_color.value();
|
||||
}
|
||||
TRY_PARSER(parse_color_name)
|
||||
TRY_PARSER(parse_hex_color)
|
||||
|
||||
#undef TRY_PARSER
|
||||
|
||||
return ERROR_COLOUR;
|
||||
}
|
||||
|
||||
Colour::Colour(const std::string &name) {
|
||||
const auto result = parse_color(name);
|
||||
this->red = result.red;
|
||||
this->green = result.green;
|
||||
this->blue = result.blue;
|
||||
this->alpha = result.alpha;
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ struct Colour {
|
|||
Colour() = default;
|
||||
Colour(uint8_t r, uint8_t g, uint8_t b, uint8_t a = UINT8_MAX)
|
||||
: red(r), green(g), blue(b), alpha(a) {}
|
||||
explicit Colour(const std::string &name);
|
||||
Colour(const Colour &) = default;
|
||||
Colour(Colour &&) = default;
|
||||
|
||||
|
|
1628
src/x11-color.cc
1628
src/x11-color.cc
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +0,0 @@
|
|||
/* from xorg-server's oscolor.c */
|
||||
int OsLookupColor(const char *name, unsigned int len, unsigned short *pred,
|
||||
unsigned short *pgreen, unsigned short *pblue);
|
Loading…
Reference in New Issue
Block a user