diff --git a/examples/quefrency.scad b/examples/quefrency.scad new file mode 100644 index 0000000..17b533a --- /dev/null +++ b/examples/quefrency.scad @@ -0,0 +1,11 @@ +// the point of this file is to be a sort of DSL for constructing keycaps. +// when you create a method chain you are just changing the parameters +// key.scad uses, it doesn't generate anything itself until the end. This +// lets it remain easy to use key.scad like before (except without key profiles) +// without having to rely on this file. Unfortunately that means setting tons of +// special variables, but that's a limitation of SCAD we have to work around + +include <./includes.scad> + +quefrency_default("cherry") dishless() tined_stem_support(0) key(); +x \ No newline at end of file diff --git a/src/key_layouts.scad b/src/key_layouts.scad index 10b5630..72dfe14 100644 --- a/src/key_layouts.scad +++ b/src/key_layouts.scad @@ -18,3 +18,5 @@ include include include + +include diff --git a/src/layouts/quefrency/default.scad b/src/layouts/quefrency/default.scad new file mode 100644 index 0000000..46411af --- /dev/null +++ b/src/layouts/quefrency/default.scad @@ -0,0 +1,21 @@ +include <../layout.scad> + +quefrency_default_layout = [ + [1,1, -1, 1,1,1,1,1,1,1, -1, 1,1,1,1,1,1,2,1], + [1,1, -1, 1.5,1,1,1,1,1,-1, 1,1,1,1,1,1,1,1.5,1], + [1,1, -1, 1.75,1,1,1,1,1,-1, 1,1,1,1,1,1,2.25,1], + [1,1, -1, 2.25,1,1,1,1,1,-1, 1,1,1,1,1,1.75,1,1], + [1,1, -1, 1.25,1.25,1.25,1.25,2.25, -1, 2.75, 1,1,1,1,1,1] +]; + +quefrency_legends = [ + ["F1", "F2", "", "", "1", "2", "3", "4", "5", "6", "", "7", "8", "9", "0", "-", "=", "", "F11"], + ["F3", "F4", "", "tab", "q", "w", "e", "r", "t", "", "y", "u", "i", "o", "p", "[", "]", "\\", "F12"], + ["F5", "F6", "", "caps", "a", "s", "d", "f", "g", "", "h", "j", "k", "l", ";", "'", "", "F13"], + ["F7", "F8", "", "", "z", "x", "c", "v", "b", "", "n", "m", ",", ".", "/", "", "", "F14"], + ["F9", "F10", "", "ctl", "opt", "cmd", "fn", "", "", "", "cmd", "opt", "ctl", "", "", ""], +]; + +module quefrency_default(profile) { + layout(quefrency_default_layout, profile, quefrency_legends, row_sculpting_offset=1) children(); +}