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):