- Python 63.2%
- OpenSCAD 35.4%
- Makefile 1.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| mkbd65 | ||
| .gitignore | ||
| generate_scad.py | ||
| layout_en_us-intl.py | ||
| LICENSE | ||
| mkbd65.dxf | ||
| mkbd65.FCStd | ||
| mkbd65.FCStd1 | ||
| mkbd65.svg | ||
| new_phone.md | ||
| oneplus5t.ini | ||
| README.md | ||
| requirements.txt | ||
CAD files
To generate the CAD files for the mkbd65 run the following command:
./generate_scad.py
Layout files
These files define the layoout that gets printed on the keymat. Currently the only file included is layout_en_us.py
for an english US international layout. you can use that as a template for your layout.
The file should define a single variable LAYOUT which is a list of roaws. These rows are also lists of columns. Each
column has keys, which are a list of the strings that should be printed at different positions.
Example for a one button keyboard with the labels foo in the top left corner and bar in the bottom left:
LAYOUT = [
[
['foo', 'bar', '', '', ''],
],
]
The label string will be used as [TopLeft, BottomLeft, TopRight, BottomRight, Middle].
Some strings need special escaping to be used in OpenScad later on. See the en_us layout for examples.
Phone config
Properties for different phones are saved in INI files. Currently the only file included is oneplus5t.ini for the
Oneplus 5t phone with a english US international layout with the DejaVu Sans font.
In the config file you can define phone specific aspects and style such as the used font and layout. Here is a list of the possile options:
| Group | Option | Type | Default | Description |
|---|---|---|---|---|
| keymap | thickness | Number | 0.5 | Thickness of the keymap in mm |
| layout | String | en_us-intl | Layout file used for labels | |
| key | thickness | Number | 1 | Thickness of the key in mm |
| font | String | DejaVu Sans:style=Bold | Font used for labels |
OpenScad files
The generator script generate_scad.py creates multiple files.
| File | Material | Description |
|---|---|---|
| mkbd65_keymat.scad | TPU | Keymat should be printed with a 3D printer |
| mkbd65_pcb.scad | - | Just a spacer for the 3D model fitting |
| mkbd65_top_plate.scad | Aluminum | Laser cut on a CNC |
| mkbd65_internals.scad | ABS/PLA | Inner structure should be printed with a 3D printer |
| mkbd65.scad | - | Combination of the above files |