mirror of
https://github.com/He4eT/oddkb.git
synced 2026-05-05 01:17:25 +00:00
Preview generator: generating a preview by layer number
This commit is contained in:
parent
5f6f7b47a9
commit
a5d894b84a
3 changed files with 31 additions and 10 deletions
15
Makefile
15
Makefile
|
|
@ -1,3 +1,6 @@
|
||||||
|
# Flashing the keyboard:
|
||||||
|
# make flash
|
||||||
|
|
||||||
qmk_dir = qmk_firmware
|
qmk_dir = qmk_firmware
|
||||||
|
|
||||||
keyboard = handwired/dactyl_manuform/5x6
|
keyboard = handwired/dactyl_manuform/5x6
|
||||||
|
|
@ -22,14 +25,20 @@ flash:
|
||||||
@make qmk_flash
|
@make qmk_flash
|
||||||
@make keymap_clean
|
@make keymap_clean
|
||||||
|
|
||||||
|
# Creating layer previews:
|
||||||
|
# make preview[_copy] [layer=number]
|
||||||
|
|
||||||
|
layer = -1
|
||||||
preview_cmd = node \
|
preview_cmd = node \
|
||||||
./preview_generator/preview_generator.js \
|
./preview_generator/preview_generator.js \
|
||||||
"${PWD}/keymap/keymap.c"
|
"${PWD}/keymap/keymap.c" \
|
||||||
|
"$(layer)"
|
||||||
|
|
||||||
preview:
|
preview:
|
||||||
@${preview_cmd}
|
@${preview_cmd}
|
||||||
|
|
||||||
preview_and_copy:
|
preview_copy:
|
||||||
@${preview_cmd} | xclip -sel clipboard
|
@${preview_cmd} | xclip -sel clipboard
|
||||||
@echo 'Copied to the clipboard! Paste it in the "Raw data" tab:'
|
@echo 'The layout has been copied to the clipboard!'
|
||||||
|
@echo 'Paste it into the "Raw Data" tab here:'
|
||||||
@echo 'http://www.keyboard-layout-editor.com/'
|
@echo 'http://www.keyboard-layout-editor.com/'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
const HALVES_GAP = 5
|
const HALVES_GAP = 5
|
||||||
|
const NUMBER_OF_ROWS = 8
|
||||||
|
|
||||||
const row = (keys, start, gapOffset) => [
|
const row = (keys, start, gapOffset) => [
|
||||||
{x: start},
|
{x: start},
|
||||||
|
|
@ -15,13 +16,22 @@ const row4 = (keys, rowIndex) => ({
|
||||||
5: row(keys, 4, 0),
|
5: row(keys, 4, 0),
|
||||||
6: row(keys, 6, -4),
|
6: row(keys, 6, -4),
|
||||||
7: row(keys, 6, -4),
|
7: row(keys, 6, -4),
|
||||||
}[rowIndex % 8])
|
}[rowIndex % NUMBER_OF_ROWS])
|
||||||
|
|
||||||
const buildRow = (keys, rowIndex) => ({
|
const buildRow = (keys, rowIndex) => ({
|
||||||
12: row12(keys),
|
12: row12(keys),
|
||||||
4: row4(keys, rowIndex)
|
4: row4(keys, rowIndex)
|
||||||
}[keys.length] || ['Oh no...'])
|
}[keys.length] || ['Oh no...'])
|
||||||
|
|
||||||
|
const layerRange = layerIndex =>
|
||||||
|
layerIndex === -1
|
||||||
|
? []
|
||||||
|
: Array(2)
|
||||||
|
.fill(layerIndex)
|
||||||
|
.map((x, i) => x + i)
|
||||||
|
.map(x => x * NUMBER_OF_ROWS)
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
layerRange,
|
||||||
buildRow
|
buildRow
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,26 +5,28 @@
|
||||||
|
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
|
|
||||||
const {buildRow} = require('./parts/rows')
|
const {buildRow, layerRange} = require('./parts/rows')
|
||||||
const {cleanKeys, printLegends} = require('./parts/keys')
|
const {cleanKeys, printLegends} = require('./parts/keys')
|
||||||
|
|
||||||
const keymapToKLERawData = fileContent =>
|
const keymapToKLERawData = (fileContent, layerIndex) =>
|
||||||
fileContent
|
fileContent
|
||||||
.split('\n')
|
.split('\n')
|
||||||
.map(row => row.split(','))
|
.map(row => row.split(','))
|
||||||
.filter(keys => keys.length > 1)
|
.filter(keys => keys.length > 1)
|
||||||
|
.slice(...layerRange(layerIndex))
|
||||||
.map(cleanKeys)
|
.map(cleanKeys)
|
||||||
.map(printLegends)
|
.map(printLegends)
|
||||||
.map(buildRow)
|
.map(buildRow)
|
||||||
.map(JSON.stringify)
|
.map(JSON.stringify)
|
||||||
// .slice(0, 8)
|
|
||||||
// .slice(8, 16)
|
|
||||||
// .slice(16)
|
|
||||||
.join(',\n')
|
.join(',\n')
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
const keymapFilePath = process.argv[2]
|
const keymapFilePath = process.argv[2]
|
||||||
|
const layerIndex = Number(process.argv[3])
|
||||||
|
|
||||||
const fileContent = fs.readFileSync(keymapFilePath, 'utf8')
|
const fileContent = fs.readFileSync(keymapFilePath, 'utf8')
|
||||||
const rawData = keymapToKLERawData(fileContent)
|
const rawData = keymapToKLERawData(fileContent, layerIndex)
|
||||||
|
|
||||||
console.log(rawData)
|
console.log(rawData)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue