diff --git a/share/tools/web_config/index.html b/share/tools/web_config/index.html index 7cabe8069..ba25a893c 100644 --- a/share/tools/web_config/index.html +++ b/share/tools/web_config/index.html @@ -1,97 +1,17 @@ + - -fish shell configuration - - - - - - - - - + + fish shell configuration + + + + + + +
diff --git a/share/tools/web_config/js/colorutils.js b/share/tools/web_config/js/colorutils.js index 2328e11fc..d04b60496 100644 --- a/share/tools/web_config/js/colorutils.js +++ b/share/tools/web_config/js/colorutils.js @@ -318,6 +318,80 @@ function text_color_for_color(color_str) { return $scope.adjust_lightness(color_str, compute_constrast); } +function rgb_to_hsl(r, g, b){ + r /= 255, g /= 255, b /= 255; + var max = Math.max(r, g, b), min = Math.min(r, g, b); + var h, s, l = (max + min) / 2; + + if(max == min){ + h = s = 0; // achromatic + }else{ + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch(max){ + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + h /= 6; + } + + return [h, s, l]; +} + +function hsl_to_rgb(h, s, l){ + var r, g, b; + + if(s == 0){ + r = g = b = l; // achromatic + }else{ + function hue2rgb(p, q, t){ + if(t < 0) t += 1; + if(t > 1) t -= 1; + if(t < 1/6) return p + (q - p) * 6 * t; + if(t < 1/2) return q; + if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; + return p; + } + + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1.0/3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1.0/3); + } + + return [r * 255, g * 255, b * 255] +} + + +/* Given a color, compute the master text color for it, by giving it a minimum brightness */ +function master_color_for_color(color_str) { + return adjust_lightness(color_str, function(lightness){ + if (lightness < .33) { + lightness = .33 + } + return lightness + }) +} + +/* Given a color name, like 'normal' or 'red' or 'FF00F0', return an RGB color string (or empty string) */ +function interpret_color(str) { + str = str.toLowerCase() + if (str == 'black') return '000000' + if (str == 'red') return 'FF0000' + if (str == 'green') return '00FF00' + if (str == 'brown') return '725000' + if (str == 'yellow') return 'FFFF00' + if (str == 'blue') return '0000FF' + if (str == 'magenta') return 'FF00FF' + if (str == 'purple') return 'FF00FF' + if (str == 'cyan') return '00FFFF' + if (str == 'white') return 'FFFFFF' + if (str == 'normal') return '' + return str +} + var color_scheme_fish_default = { "name": "fish default", "colors": [], diff --git a/share/tools/web_config/webconfig.py b/share/tools/web_config/webconfig.py index 5926b6101..e3e4ddd31 100755 --- a/share/tools/web_config/webconfig.py +++ b/share/tools/web_config/webconfig.py @@ -325,6 +325,8 @@ class BindingParser: result += 'Right Arrow' elif c == 'D': result = "Left Arrow" + elif c == 'H': + result = "Home" return result def get_readable_binding(self):