Initial structure for Ergodox as subprojects
Only the EZ default keymaps compiles at the moment though.
This commit is contained in:
		
							parent
							
								
									30003d48f9
								
							
						
					
					
						commit
						9af995c59b
					
				
					 219 changed files with 58 additions and 23 deletions
				
			
		| 
						 | 
				
			
			@ -0,0 +1,533 @@
 | 
			
		|||
[
 | 
			
		||||
  {
 | 
			
		||||
    "backcolor": "#ffffff",
 | 
			
		||||
    "name": "ErgoDox - algernon's layout: Heatmap",
 | 
			
		||||
    "author": "Gergely Nagy <kbd@gergo.csillger.hu>",
 | 
			
		||||
    "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.",
 | 
			
		||||
    "switchMount": "cherry",
 | 
			
		||||
    "switchBrand": "gateron",
 | 
			
		||||
    "switchType": "KS-3-Tea",
 | 
			
		||||
    "pcb": true,
 | 
			
		||||
    "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }"
 | 
			
		||||
  },
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        2
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "#\n3\nF3",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        2
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "*\n8\nF8"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "@\n2\nF2",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "$\n4\nF4",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5
 | 
			
		||||
    },
 | 
			
		||||
    "&\n7\nF7",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "(\n9\nF9"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 5.5,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "%\n5\nF5",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "f": 2
 | 
			
		||||
    },
 | 
			
		||||
    "STENO",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 4.5,
 | 
			
		||||
      "f": 6
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='mss mss-Unicode-Option-3'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "f": 3,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        2
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "^\n6\nF6"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "c": "#ffb2d2",
 | 
			
		||||
      "f": 3,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "\n\n~\n`",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "!\n1\nF1",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5
 | 
			
		||||
    },
 | 
			
		||||
    ")\n0\nF10",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "F11"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.375,
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "L",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5
 | 
			
		||||
    },
 | 
			
		||||
    "C"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b",
 | 
			
		||||
      "a": 4
 | 
			
		||||
    },
 | 
			
		||||
    ">\n.",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "W",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5
 | 
			
		||||
    },
 | 
			
		||||
    "H",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "P"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 5.5,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "M",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#93c9b7",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "h": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "{\n[",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 4.5,
 | 
			
		||||
      "h": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "}\n]",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "F"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "c": "#ffb07b",
 | 
			
		||||
      "t": "#0d0d0b",
 | 
			
		||||
      "f": 6,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='fa fa-fast-backward'></i>\n\n<i class='fa fa-fast-forward'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#ffb2d2",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "<\n,",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5,
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "Y",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "|\n\\"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.375,
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "E",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5
 | 
			
		||||
    },
 | 
			
		||||
    "T"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "O",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "n": true
 | 
			
		||||
    },
 | 
			
		||||
    "I",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5,
 | 
			
		||||
      "n": true
 | 
			
		||||
    },
 | 
			
		||||
    "R",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "N"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 5.5,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "U",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 6.5
 | 
			
		||||
    },
 | 
			
		||||
    "D"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "c": "#ffb2d2",
 | 
			
		||||
      "t": "#0d0d0b",
 | 
			
		||||
      "fa": [
 | 
			
		||||
        6
 | 
			
		||||
      ],
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='fa fa-arrows'></i>\n\nTab",
 | 
			
		||||
    {
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "A",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "S",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        6
 | 
			
		||||
      ],
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "+\n="
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.625,
 | 
			
		||||
      "x": 6.5,
 | 
			
		||||
      "c": "#93c9b7",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "h": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "(",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 4.5,
 | 
			
		||||
      "h": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    ")"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.75,
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "\"\n'",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5
 | 
			
		||||
    },
 | 
			
		||||
    "V"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "Z",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "K",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5
 | 
			
		||||
    },
 | 
			
		||||
    "G",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "J"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 5.5,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "X",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 6.5
 | 
			
		||||
    },
 | 
			
		||||
    "B"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "c": "#ffb07b",
 | 
			
		||||
      "f": 9,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "\n\n<i class='kb kb-Multimedia-Play-Pause'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#ffb2d2",
 | 
			
		||||
      "t": "#0d0d0b",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "?\n/",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5,
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "Q",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#ffb07b",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "f": 9,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='kb kb-Multimedia-Stop'></i>"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.375,
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#d9dae0",
 | 
			
		||||
      "g": true,
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5
 | 
			
		||||
    },
 | 
			
		||||
    ""
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5
 | 
			
		||||
    },
 | 
			
		||||
    "",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#d4872a",
 | 
			
		||||
      "g": false,
 | 
			
		||||
      "a": 5
 | 
			
		||||
    },
 | 
			
		||||
    ";\n:",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5
 | 
			
		||||
    },
 | 
			
		||||
    "_\n-",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#d9dae0",
 | 
			
		||||
      "g": true,
 | 
			
		||||
      "a": 7
 | 
			
		||||
    },
 | 
			
		||||
    ""
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.75,
 | 
			
		||||
      "x": 0.5
 | 
			
		||||
    },
 | 
			
		||||
    "",
 | 
			
		||||
    {},
 | 
			
		||||
    "",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5
 | 
			
		||||
    },
 | 
			
		||||
    "",
 | 
			
		||||
    {},
 | 
			
		||||
    ""
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "r": 30,
 | 
			
		||||
      "rx": 6.5,
 | 
			
		||||
      "ry": 4.25,
 | 
			
		||||
      "y": -1,
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "g": false
 | 
			
		||||
    },
 | 
			
		||||
    "Alt",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        9
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "\n\n\n<i class='kb kb-logo-linux-debian fa-large'></i>"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#d4872a",
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "f": 9,
 | 
			
		||||
      "h": 2
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "h": 2
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='fa fa-angle-double-up'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "Ctrl"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": 2,
 | 
			
		||||
      "c": "#e26757"
 | 
			
		||||
    },
 | 
			
		||||
    "ESC"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "r": -30,
 | 
			
		||||
      "rx": 13,
 | 
			
		||||
      "y": -1,
 | 
			
		||||
      "x": -3,
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "f": 2
 | 
			
		||||
    },
 | 
			
		||||
    "MEDIA",
 | 
			
		||||
    {},
 | 
			
		||||
    "1HAND"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": -3
 | 
			
		||||
    },
 | 
			
		||||
    "LEAD",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#d4872a",
 | 
			
		||||
      "f": 9,
 | 
			
		||||
      "h": 2
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='kb kb-Return-2'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "f": 3,
 | 
			
		||||
      "h": 2
 | 
			
		||||
    },
 | 
			
		||||
    "SPC"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": -3,
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "f": 2
 | 
			
		||||
    },
 | 
			
		||||
    "HUN"
 | 
			
		||||
  ]
 | 
			
		||||
]
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,533 @@
 | 
			
		|||
[
 | 
			
		||||
  {
 | 
			
		||||
    "backcolor": "#ffffff",
 | 
			
		||||
    "name": "ErgoDox - algernon's layout: Heatmap",
 | 
			
		||||
    "author": "Gergely Nagy <kbd@gergo.csillger.hu>",
 | 
			
		||||
    "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.",
 | 
			
		||||
    "switchMount": "cherry",
 | 
			
		||||
    "switchBrand": "gateron",
 | 
			
		||||
    "switchType": "KS-3-Tea",
 | 
			
		||||
    "pcb": true,
 | 
			
		||||
    "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }"
 | 
			
		||||
  },
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        2
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "#\n3\nF3",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        2
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "*\n8\nF8"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "@\n2\nF2",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "$\n4\nF4",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5
 | 
			
		||||
    },
 | 
			
		||||
    "&\n7\nF7",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "(\n9\nF9"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 5.5,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "%\n5\nF5",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "f": 2
 | 
			
		||||
    },
 | 
			
		||||
    "STENO",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 4.5,
 | 
			
		||||
      "f": 6
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='mss mss-Unicode-Option-3'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "f": 3,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        2
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "^\n6\nF6"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "c": "#ffb2d2",
 | 
			
		||||
      "f": 3,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "\n\n~\n`",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "!\n1\nF1",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5
 | 
			
		||||
    },
 | 
			
		||||
    ")\n0\nF10",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "F11"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.375,
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 4
 | 
			
		||||
    },
 | 
			
		||||
    ">\n.",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5,
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "C"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b",
 | 
			
		||||
      "a": 4
 | 
			
		||||
    },
 | 
			
		||||
    "<\n,",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "P",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5
 | 
			
		||||
    },
 | 
			
		||||
    "G",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "R"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 5.5,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "Y",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#93c9b7",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "h": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "{\n[",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 4.5,
 | 
			
		||||
      "h": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "}\n]",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "F"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "c": "#ffb07b",
 | 
			
		||||
      "t": "#0d0d0b",
 | 
			
		||||
      "f": 6,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='fa fa-fast-backward'></i>\n\n<i class='fa fa-fast-forward'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#ffb2d2",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "\"\n'",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5,
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "L",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "|\n\\"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.375,
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "E",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5
 | 
			
		||||
    },
 | 
			
		||||
    "T"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "O",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "n": true
 | 
			
		||||
    },
 | 
			
		||||
    "U",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5,
 | 
			
		||||
      "n": true
 | 
			
		||||
    },
 | 
			
		||||
    "H",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "N"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 5.5,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "I",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 6.5
 | 
			
		||||
    },
 | 
			
		||||
    "D"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "c": "#ffb2d2",
 | 
			
		||||
      "t": "#0d0d0b",
 | 
			
		||||
      "fa": [
 | 
			
		||||
        6
 | 
			
		||||
      ],
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='fa fa-arrows'></i>\n\nTab",
 | 
			
		||||
    {
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "A",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "S",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        6
 | 
			
		||||
      ],
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "+\n="
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.625,
 | 
			
		||||
      "x": 6.5,
 | 
			
		||||
      "c": "#93c9b7",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "h": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "(",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 4.5,
 | 
			
		||||
      "h": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    ")"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.75,
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#a7d0db",
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "J",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5
 | 
			
		||||
    },
 | 
			
		||||
    "W"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "Q",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "K",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5
 | 
			
		||||
    },
 | 
			
		||||
    "M",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#bfbad1",
 | 
			
		||||
      "t": "#0d0d0b"
 | 
			
		||||
    },
 | 
			
		||||
    "V"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 5.5,
 | 
			
		||||
      "c": "#7adabd",
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "X",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 6.5
 | 
			
		||||
    },
 | 
			
		||||
    "B"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "c": "#ffb07b",
 | 
			
		||||
      "f": 9,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "\n\n<i class='kb kb-Multimedia-Play-Pause'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#ffb2d2",
 | 
			
		||||
      "t": "#0d0d0b",
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "?\n/",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5,
 | 
			
		||||
      "a": 6
 | 
			
		||||
    },
 | 
			
		||||
    "Z",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#ffb07b",
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "f": 9,
 | 
			
		||||
      "w": 1.5
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='kb kb-Multimedia-Stop'></i>"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.375,
 | 
			
		||||
      "x": 3.5,
 | 
			
		||||
      "c": "#d9dae0",
 | 
			
		||||
      "g": true,
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 10.5
 | 
			
		||||
    },
 | 
			
		||||
    ""
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.875,
 | 
			
		||||
      "x": 2.5
 | 
			
		||||
    },
 | 
			
		||||
    "",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#d4872a",
 | 
			
		||||
      "g": false,
 | 
			
		||||
      "a": 5
 | 
			
		||||
    },
 | 
			
		||||
    ";\n:",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 8.5
 | 
			
		||||
    },
 | 
			
		||||
    "_\n-",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#d9dae0",
 | 
			
		||||
      "g": true,
 | 
			
		||||
      "a": 7
 | 
			
		||||
    },
 | 
			
		||||
    ""
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "y": -0.75,
 | 
			
		||||
      "x": 0.5
 | 
			
		||||
    },
 | 
			
		||||
    "",
 | 
			
		||||
    {},
 | 
			
		||||
    "",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 14.5
 | 
			
		||||
    },
 | 
			
		||||
    "",
 | 
			
		||||
    {},
 | 
			
		||||
    ""
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "r": 30,
 | 
			
		||||
      "rx": 6.5,
 | 
			
		||||
      "ry": 4.25,
 | 
			
		||||
      "y": -1,
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "g": false
 | 
			
		||||
    },
 | 
			
		||||
    "Alt",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 4,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        9
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "\n\n\n<i class='kb kb-logo-linux-debian fa-large'></i>"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#d4872a",
 | 
			
		||||
      "a": 7,
 | 
			
		||||
      "f": 9,
 | 
			
		||||
      "h": 2
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "h": 2
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='fa fa-angle-double-up'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "Ctrl"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": 2,
 | 
			
		||||
      "c": "#e26757"
 | 
			
		||||
    },
 | 
			
		||||
    "ESC"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "r": -30,
 | 
			
		||||
      "rx": 13,
 | 
			
		||||
      "y": -1,
 | 
			
		||||
      "x": -3,
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "f": 2
 | 
			
		||||
    },
 | 
			
		||||
    "MEDIA",
 | 
			
		||||
    {},
 | 
			
		||||
    "1HAND"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": -3
 | 
			
		||||
    },
 | 
			
		||||
    "LEAD",
 | 
			
		||||
    {
 | 
			
		||||
      "c": "#d4872a",
 | 
			
		||||
      "f": 9,
 | 
			
		||||
      "h": 2
 | 
			
		||||
    },
 | 
			
		||||
    "<i class='kb kb-Return-2'></i>",
 | 
			
		||||
    {
 | 
			
		||||
      "f": 3,
 | 
			
		||||
      "h": 2
 | 
			
		||||
    },
 | 
			
		||||
    "SPC"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": -3,
 | 
			
		||||
      "c": "#f9cd31",
 | 
			
		||||
      "f": 2
 | 
			
		||||
    },
 | 
			
		||||
    "HUN"
 | 
			
		||||
  ]
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										145
									
								
								keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										145
									
								
								keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,145 @@
 | 
			
		|||
#! /usr/bin/env python
 | 
			
		||||
import json
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import re
 | 
			
		||||
 | 
			
		||||
from math import floor
 | 
			
		||||
 | 
			
		||||
cr_coord_map = [
 | 
			
		||||
    [
 | 
			
		||||
        # Row 0
 | 
			
		||||
        [ 4,  0], [ 4,  2], [ 2,  0], [ 1,  0], [ 2,  2], [ 3,  0], [ 3,  2],
 | 
			
		||||
        [ 3,  4], [ 3,  6], [ 2,  4], [ 1,  2], [ 2,  6], [ 4,  4], [ 4,  6],
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        # Row 1
 | 
			
		||||
        [ 8,  0], [ 8,  2], [ 6,  0], [ 5,  0], [ 6,  2], [ 7,  0], [ 7,  2],
 | 
			
		||||
        [ 7,  4], [ 7,  6], [ 6,  4], [ 5,  2], [ 6,  6], [ 8,  4], [ 8,  6],
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        # Row 2
 | 
			
		||||
        [12,  0], [12,  2], [10,  0], [ 9,  0], [10,  2], [11, 0], [     ],
 | 
			
		||||
        [      ], [11,  2], [10,  4], [ 9,  2], [10,  6], [12, 4], [12, 6],
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        # Row 3
 | 
			
		||||
        [17,  0], [17,  2], [15,  0], [14,  0], [15,  2], [16,  0], [13,  0],
 | 
			
		||||
        [13,  2], [16,  2], [15,  4], [14,  2], [15,  6], [17,  4], [17,  6],
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        # Row 4
 | 
			
		||||
        [20,  0], [20,  2], [19,  0], [18,  0], [19,  2], [], [], [], [],
 | 
			
		||||
        [19,  4], [18,  2], [19,  6], [20,  4], [20,  6],
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        # Row 5
 | 
			
		||||
        [     ], [23,  0], [22,  2], [22,  0], [22,  4], [21,  0], [21,  2],
 | 
			
		||||
        [24, 0], [24,  2], [25,  0], [25,  4], [25,  2], [26,  0], [      ],
 | 
			
		||||
    ],
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
def set_attr_at(j, b, n, attr, fn, val):
 | 
			
		||||
    blk = j[b][n]
 | 
			
		||||
    if attr in blk:
 | 
			
		||||
        blk[attr] = fn(blk[attr], val)
 | 
			
		||||
    else:
 | 
			
		||||
        blk[attr] = fn(None, val)
 | 
			
		||||
 | 
			
		||||
def coord(col, row):
 | 
			
		||||
    return cr_coord_map[row][col]
 | 
			
		||||
 | 
			
		||||
def set_attr(orig, new):
 | 
			
		||||
    return new
 | 
			
		||||
 | 
			
		||||
def set_bg(j, (b, n), color):
 | 
			
		||||
    set_attr_at(j, b, n, "c", set_attr, color)
 | 
			
		||||
    #set_attr_at(j, b, n, "g", set_attr, False)
 | 
			
		||||
 | 
			
		||||
def _set_tap_info(o, count, cap):
 | 
			
		||||
    ns = 4 - o.count ("\n")
 | 
			
		||||
    return o + "\n" * ns + "%.02f%%" % (float(count) / float(cap) * 100)
 | 
			
		||||
 | 
			
		||||
def set_tap_info(j, (b, n), count, cap):
 | 
			
		||||
    j[b][n + 1] = _set_tap_info (j[b][n + 1], count, cap)
 | 
			
		||||
 | 
			
		||||
def heatmap_color (v):
 | 
			
		||||
    colors = [ [0.3, 0.3, 1], [0.3, 1, 0.3], [1, 1, 0.3], [1, 0.3, 0.3]]
 | 
			
		||||
    fb = 0
 | 
			
		||||
    if v <= 0:
 | 
			
		||||
        idx1, idx2 = 0, 0
 | 
			
		||||
    elif v >= 1:
 | 
			
		||||
        idx1, idx2 = len(colors) - 1, len(colors) - 1
 | 
			
		||||
    else:
 | 
			
		||||
        val = v * (len(colors) - 1)
 | 
			
		||||
        idx1 = int(floor(val))
 | 
			
		||||
        idx2 = idx1 + 1
 | 
			
		||||
        fb = val - float(idx1)
 | 
			
		||||
 | 
			
		||||
    r = (colors[idx2][0] - colors[idx1][0]) * fb + colors[idx1][0]
 | 
			
		||||
    g = (colors[idx2][1] - colors[idx1][1]) * fb + colors[idx1][1]
 | 
			
		||||
    b = (colors[idx2][2] - colors[idx1][2]) * fb + colors[idx1][2]
 | 
			
		||||
 | 
			
		||||
    r, g, b = [x * 255 for x in r, g, b]
 | 
			
		||||
    return "#%02x%02x%02x" % (r, g, b)
 | 
			
		||||
 | 
			
		||||
# Load the keylog
 | 
			
		||||
def load_keylog(fname, restrict_row):
 | 
			
		||||
    keylog = {}
 | 
			
		||||
    total = 0
 | 
			
		||||
    with open(fname, "r") as f:
 | 
			
		||||
        lines = f.readlines()
 | 
			
		||||
    for line in lines:
 | 
			
		||||
        m = re.search ('KL: col=(\d+), row=(\d+)', line)
 | 
			
		||||
        if not m:
 | 
			
		||||
            continue
 | 
			
		||||
        (c, r) = (int(m.group (2)), int(m.group (1)))
 | 
			
		||||
        if restrict_row != None and r != int(restrict_row):
 | 
			
		||||
            continue
 | 
			
		||||
        if (c, r) in keylog:
 | 
			
		||||
            keylog[(c, r)] = keylog[(c, r)] + 1
 | 
			
		||||
        else:
 | 
			
		||||
            keylog[(c, r)] = 1
 | 
			
		||||
        total = total + 1
 | 
			
		||||
    return total / 2, keylog
 | 
			
		||||
 | 
			
		||||
def l_flat(s):
 | 
			
		||||
    f = s.split("\n")
 | 
			
		||||
    return ", ".join (f)
 | 
			
		||||
 | 
			
		||||
def main(base_fn, log_fn, restrict_row = None):
 | 
			
		||||
 | 
			
		||||
    with open(base_fn, "r") as f:
 | 
			
		||||
        layout = json.load (f)
 | 
			
		||||
 | 
			
		||||
    ## Reset colors
 | 
			
		||||
    for row in cr_coord_map:
 | 
			
		||||
        for col in row:
 | 
			
		||||
            if col != []:
 | 
			
		||||
                set_bg (layout, col, "#d9dae0")
 | 
			
		||||
                #set_attr_at (layout, col[0], col[1], "g", set_attr, True)
 | 
			
		||||
 | 
			
		||||
    total, log = load_keylog (log_fn, restrict_row)
 | 
			
		||||
    max_cnt = 0
 | 
			
		||||
    for (c, r) in log:
 | 
			
		||||
        max_cnt = max(max_cnt, log[(c, r)])
 | 
			
		||||
 | 
			
		||||
    # Create the heatmap
 | 
			
		||||
    for (c, r) in log:
 | 
			
		||||
        coords = coord(c, r)
 | 
			
		||||
        b, n = coords
 | 
			
		||||
        cap = max_cnt
 | 
			
		||||
        v = float(log[(c, r)]) / cap
 | 
			
		||||
        print >> sys.stderr, "%s => %d/%d => %f = %s" % (l_flat(layout[b][n+1]), log[(c,r)], cap, v, heatmap_color(v))
 | 
			
		||||
        set_bg (layout, coord(c, r), heatmap_color (v))
 | 
			
		||||
        set_tap_info (layout, coord (c, r), log[(c, r)], total)
 | 
			
		||||
 | 
			
		||||
    print json.dumps(layout)
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    if len(sys.argv) < 3:
 | 
			
		||||
        print """Log to Heatmap -- creates a heatmap out of keyboard logs
 | 
			
		||||
 | 
			
		||||
Usage: log-to-heatmap.py base-layout.json logfile [row] >layout.json"""
 | 
			
		||||
        sys.exit (1)
 | 
			
		||||
    main(*sys.argv[1:])
 | 
			
		||||
							
								
								
									
										5
									
								
								keyboards/ergodox/keymaps/algernon/tools/max-focused
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								keyboards/ergodox/keymaps/algernon/tools/max-focused
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
#! /bin/sh
 | 
			
		||||
WIN="$(xdotool getactivewindow)"
 | 
			
		||||
wmctrl -i -r ${WIN} -b remove,maximized_vert,maximized_horz
 | 
			
		||||
xdotool windowsize ${WIN} 100% 100%
 | 
			
		||||
wmctrl -i -r ${WIN} -b add,maximized_vert,maximized_horz
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue