5b972cf6f6
-- Switches.json -> now using hash for "switches" for easy lookup -- Serialization changed so that we use "" for default switch types, and this round-trips properly. -- Had to switch from <select> to bootstrap-style dropdowns; when I started trying to handle the 'default' settings better (i.e., when the per-key setting was blank), Angular was throwing errors using the <select> element. -- Changing switch mount blanks out brand/type, etc. -- Now disabling switch mount/brand/type controls when appropriate -- PNG rendering now only doing #keyboard-bg, which allows me to make #keyboard full-width again. |
9 years ago | |
---|---|---|
bg | 9 years ago | |
font-src | 9 years ago | |
fonts | 9 years ago | |
js | 9 years ago | |
samples | 9 years ago | |
spec | 9 years ago | |
tests | 9 years ago | |
.gitignore | 9 years ago | |
CHANGELOG.md | 9 years ago | |
CONTRIB.md | 9 years ago | |
LICENSE.md | 9 years ago | |
Makefile | 9 years ago | |
README.md | 9 years ago | |
backgrounds.json | 9 years ago | |
bower.json | 9 years ago | |
colors.json | 9 years ago | |
cssparser.y | 9 years ago | |
deploy.bat | 9 years ago | |
extensions.js | 9 years ago | |
favicon.ico | 9 years ago | |
jsonl.grammar.js | 9 years ago | |
kb.css | 9 years ago | |
kb.html | 9 years ago | |
kb.js | 9 years ago | |
kb.sublime-project | 9 years ago | |
keys.json | 9 years ago | |
layouts.json | 9 years ago | |
nub.png | 9 years ago | |
oauth.html | 9 years ago | |
pickers.json | 9 years ago | |
render.js | 9 years ago | |
serial.js | 9 years ago | |
switches.json | 9 years ago |
README.md
keyboard-layout-editor
Keyboard-layout-editor.com is a web application that enables the editing of keyboard-layouts, i.e., the position and appearance of each physical key.
The motivation for creating this application was a custom keyboard I was designing. I wanted to be able to experiment quickly with different possible layouts and visualize them easily. The existing graphics tools were capable enough, but cumbersome to use for this specific task.
As I sank further into the keyboard-enthusiast scene, I became aware of custom keycap sets that were being created by and for other enthusiasts. The ability to specify various details of the visual-appearance of the keycaps is an attempt to render these custom keycap sets as accurately as possible (within the constraints of HTML/CSS).
Links
Getting Started for Developers
Want to play around with the source? Install the tools, clone the repository, then build / test.
Required Tools:
- NodeJS/NPM: https://nodejs.org/
- GNU Make: http://www.gnu.org/software/make/
- FontForge: http://fontforge.github.io/en-US/
- Bower:
npm install -g bower
- Grunt:
npm install -g grunt-cli
- Protractor:
npm install -g protractor
- Jasmine:
npm install -g jasmine
- Uglifyjs:
npm install -g uglifyjs
- Stylus:
npm install -g stylus
- Jison:
npm install -g jison
- Git-utils:
npm install git-utils -g
Installing prerequisite components (once):
make install
Build:
make
Test:
webdriver-manager update
webdriver-manager start
make test
Notes:
- You can use any HTTP server for local development; I'm using an ancient version of Mongoose, but whatever you've got handy should work.
- However, if you want to be able to log in to GitHub via OAuth (without hacking up the code and registering your own OAuth application), you will need to put the server at: http://localhost:8080/