=> git.r.bdr.sh
=> summary
=> tree
=> log
=> refs
=> view raw
1 " Vim color file 2 " Maintainer: Henry So, Jr.3 4 " These are the colors of the "desert" theme by Hans Fugal with a few small 5 " modifications (namely that I lowered the intensity of the normal white and 6 " made the normal and nontext backgrounds black), modified to work with 88- 7 " and 256-color xterms. 8 " 9 " The original "desert" theme is available as part of the vim distribution or 10 " at http://hans.fugal.net/vim/colors/. 11 " 12 " The real feature of this color scheme, with a wink to the "inkpot" theme, is 13 " the programmatic approximation of the gui colors to the palettes of 88- and 14 " 256- color xterms. The functions that do this (folded away, for 15 " readability) are calibrated to the colors used for Thomas E. Dickey's xterm 16 " (version 200), which is available at http://dickey.his.com/xterm/xterm.html. 17 " 18 " I struggled with trying to parse the rgb.txt file to avoid the necessity of 19 " converting color names to #rrggbb form, but decided it was just not worth 20 " the effort. Maybe someone seeing this may decide otherwise... 21 22 set background=dark 23 if version > 580 24 " no guarantees for version 5.8 and below, but this makes it stop 25 " complaining 26 hi clear 27 if exists("syntax_on") 28 syntax reset 29 endif 30 endif 31 let g:colors_name="desert256" 32 33 if has("gui_running") || &t_Co == 88 || &t_Co == 256 34 " functions {{{ 35 " returns an approximate grey index for the given grey level 36 fun grey_number(x) 37 if &t_Co == 88 38 if a:x < 23 39 return 0 40 elseif a:x < 69 41 return 1 42 elseif a:x < 103 43 return 2 44 elseif a:x < 127 45 return 3 46 elseif a:x < 150 47 return 4 48 elseif a:x < 173 49 return 5 50 elseif a:x < 196 51 return 6 52 elseif a:x < 219 53 return 7 54 elseif a:x < 243 55 return 8 56 else 57 return 9 58 endif 59 else 60 if a:x < 14 61 return 0 62 else 63 let l:n = (a:x - 8) / 10 64 let l:m = (a:x - 8) % 10 65 if l:m < 5 66 return l:n 67 else 68 return l:n + 1 69 endif 70 endif 71 endif 72 endfun 73 74 " returns the actual grey level represented by the grey index 75 fun grey_level(n) 76 if &t_Co == 88 77 if a:n == 0 78 return 0 79 elseif a:n == 1 80 return 46 81 elseif a:n == 2 82 return 92 83 elseif a:n == 3 84 return 115 85 elseif a:n == 4 86 return 139 87 elseif a:n == 5 88 return 162 89 elseif a:n == 6 90 return 185 91 elseif a:n == 7 92 return 208 93 elseif a:n == 8 94 return 231 95 else 96 return 255 97 endif 98 else 99 if a:n == 0 100 return 0 101 else 102 return 8 + (a:n * 10) 103 endif 104 endif 105 endfun 106 107 " returns the palette index for the given grey index 108 fun grey_color(n) 109 if &t_Co == 88 110 if a:n == 0 111 return 16 112 elseif a:n == 9 113 return 79 114 else 115 return 79 + a:n 116 endif 117 else 118 if a:n == 0 119 return 16 120 elseif a:n == 25 121 return 231 122 else 123 return 231 + a:n 124 endif 125 endif 126 endfun 127 128 " returns an approximate color index for the given color level 129 fun rgb_number(x) 130 if &t_Co == 88 131 if a:x < 69 132 return 0 133 elseif a:x < 172 134 return 1 135 elseif a:x < 230 136 return 2 137 else 138 return 3 139 endif 140 else 141 if a:x < 75 142 return 0 143 else 144 let l:n = (a:x - 55) / 40 145 let l:m = (a:x - 55) % 40 146 if l:m < 20 147 return l:n 148 else 149 return l:n + 1 150 endif 151 endif 152 endif 153 endfun 154 155 " returns the actual color level for the given color index 156 fun rgb_level(n) 157 if &t_Co == 88 158 if a:n == 0 159 return 0 160 elseif a:n == 1 161 return 139 162 elseif a:n == 2 163 return 205 164 else 165 return 255 166 endif 167 else 168 if a:n == 0 169 return 0 170 else 171 return 55 + (a:n * 40) 172 endif 173 endif 174 endfun 175 176 " returns the palette index for the given R/G/B color indices 177 fun rgb_color(x, y, z) 178 if &t_Co == 88 179 return 16 + (a:x * 16) + (a:y * 4) + a:z 180 else 181 return 16 + (a:x * 36) + (a:y * 6) + a:z 182 endif 183 endfun 184 185 " returns the palette index to approximate the given R/G/B color levels 186 fun color(r, g, b) 187 " get the closest grey 188 let l:gx = grey_number(a:r) 189 let l:gy = grey_number(a:g) 190 let l:gz = grey_number(a:b) 191 192 " get the closest color 193 let l:x = rgb_number(a:r) 194 let l:y = rgb_number(a:g) 195 let l:z = rgb_number(a:b) 196 197 if l:gx == l:gy && l:gy == l:gz 198 " there are two possibilities 199 let l:dgr = grey_level(l:gx) - a:r 200 let l:dgg = grey_level(l:gy) - a:g 201 let l:dgb = grey_level(l:gz) - a:b 202 let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) 203 let l:dr = rgb_level(l:gx) - a:r 204 let l:dg = rgb_level(l:gy) - a:g 205 let l:db = rgb_level(l:gz) - a:b 206 let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) 207 if l:dgrey < l:drgb 208 " use the grey 209 return grey_color(l:gx) 210 else 211 " use the color 212 return rgb_color(l:x, l:y, l:z) 213 endif 214 else 215 " only one possibility 216 return rgb_color(l:x, l:y, l:z) 217 endif 218 endfun 219 220 " returns the palette index to approximate the 'rrggbb' hex string 221 fun rgb(rgb) 222 let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 223 let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 224 let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 225 226 return color(l:r, l:g, l:b) 227 endfun 228 229 " sets the highlighting for the given group 230 fun X(group, fg, bg, attr) 231 if a:fg != "" 232 exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . rgb(a:fg) 233 endif 234 if a:bg != "" 235 exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . rgb(a:bg) 236 endif 237 if a:attr != "" 238 exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr 239 endif 240 endfun 241 " }}} 242 243 call X("Normal", "cccccc", "000000", "") 244 245 " highlight groups 246 call X("Cursor", "708090", "f0e68c", "") 247 "CursorIM 248 "Directory 249 "DiffAdd 250 "DiffChange 251 "DiffDelete 252 "DiffText 253 "ErrorMsg 254 call X("VertSplit", "c2bfa5", "7f7f7f", "reverse") 255 call X("Folded", "ffd700", "4d4d4d", "") 256 call X("FoldColumn", "d2b48c", "4d4d4d", "") 257 call X("IncSearch", "708090", "f0e68c", "") 258 "LineNr 259 call X("ModeMsg", "daa520", "", "") 260 call X("MoreMsg", "2e8b57", "", "") 261 call X("NonText", "addbe7", "000000", "bold") 262 call X("Question", "00ff7f", "", "") 263 call X("Search", "f5deb3", "cd853f", "") 264 call X("SpecialKey", "9acd32", "", "") 265 call X("StatusLine", "c2bfa5", "000000", "reverse") 266 call X("StatusLineNC", "c2bfa5", "7f7f7f", "reverse") 267 call X("Title", "cd5c5c", "", "") 268 call X("Visual", "6b8e23", "f0e68c", "reverse") 269 "VisualNOS 270 call X("WarningMsg", "fa8072", "", "") 271 "WildMenu 272 "Menu 273 "Scrollbar 274 "Tooltip 275 276 " syntax highlighting groups 277 call X("Comment", "87ceeb", "", "") 278 call X("Constant", "ffa0a0", "", "") 279 call X("Identifier", "98fb98", "", "none") 280 call X("Statement", "f0e68c", "", "bold") 281 call X("PreProc", "cd5c5c", "", "") 282 call X("Type", "bdb76b", "", "bold") 283 call X("Special", "ffdead", "", "") 284 "Underlined 285 call X("Ignore", "666666", "", "") 286 "Error 287 call X("Todo", "ff4500", "eeee00", "") 288 289 " delete functions {{{ 290 delf X 291 delf rgb 292 delf color 293 delf rgb_color 294 delf rgb_level 295 delf rgb_number 296 delf grey_color 297 delf grey_level 298 delf grey_number 299 " }}} 300 else 301 " color terminal definitions 302 hi SpecialKey ctermfg=darkgreen 303 hi NonText cterm=bold ctermfg=darkblue 304 hi Directory ctermfg=darkcyan 305 hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 306 hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green 307 hi Search cterm=NONE ctermfg=grey ctermbg=blue 308 hi MoreMsg ctermfg=darkgreen 309 hi ModeMsg cterm=NONE ctermfg=brown 310 hi LineNr ctermfg=3 311 hi Question ctermfg=green 312 hi StatusLine cterm=bold,reverse 313 hi StatusLineNC cterm=reverse 314 hi VertSplit cterm=reverse 315 hi Title ctermfg=5 316 hi Visual cterm=reverse 317 hi VisualNOS cterm=bold,underline 318 hi WarningMsg ctermfg=1 319 hi WildMenu ctermfg=0 ctermbg=3 320 hi Folded ctermfg=darkgrey ctermbg=NONE 321 hi FoldColumn ctermfg=darkgrey ctermbg=NONE 322 hi DiffAdd ctermbg=4 323 hi DiffChange ctermbg=5 324 hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 325 hi DiffText cterm=bold ctermbg=1 326 hi Comment ctermfg=darkcyan 327 hi Constant ctermfg=brown 328 hi Special ctermfg=5 329 hi Identifier ctermfg=6 330 hi Statement ctermfg=3 331 hi PreProc ctermfg=5 332 hi Type ctermfg=2 333 hi Underlined cterm=underline ctermfg=5 334 hi Ignore ctermfg=darkgrey 335 hi Error cterm=bold ctermfg=7 ctermbg=1 336 endif 337 338 " vim: set fdl=0 fdm=marker:
text/gemini; charset=utf-8
This content has been proxied by September (ba2dc).