From 377fe0dd3db0d163b6076d10ec0c39a5f56f5765 Mon Sep 17 00:00:00 2001 From: Matei Adriel Date: Sun, 22 Oct 2023 01:06:33 +0200 Subject: [PATCH] Update keymap --- flake.lock | 8 +++---- flake.nix | 6 +++--- src/index.ts | 60 ++++++++++++++++++++++++++++++---------------------- swoop.nix | 2 +- 4 files changed, 43 insertions(+), 33 deletions(-) diff --git a/flake.lock b/flake.lock index 2ce82ad..19efcc3 100644 --- a/flake.lock +++ b/flake.lock @@ -17,10 +17,10 @@ }, "nixpkgs": { "locked": { - "lastModified": 1671883564, - "narHash": "sha256-C15oAtyupmLB3coZY7qzEHXjhtUx/+77olVdqVMruAg=", - "path": "/nix/store/0b1s6l5i9izifskg8kgc29jn5bzgdjnv-source", - "rev": "dac57a4eccf1442e8bf4030df6fcbb55883cb682", + "lastModified": 1695360818, + "narHash": "sha256-JlkN3R/SSoMTa+CasbxS1gq+GpGxXQlNZRUh9+LIy/0=", + "path": "/nix/store/09yvj6yyxspzfivv91bcxwrjxawpk1g2-source", + "rev": "e35dcc04a3853da485a396bdd332217d0ac9054f", "type": "path" }, "original": { diff --git a/flake.nix b/flake.nix index 68c2049..94c4a00 100644 --- a/flake.nix +++ b/flake.nix @@ -2,17 +2,17 @@ description = "Kayboard layout diagram generation"; inputs.flake-utils.url = "github:numtide/flake-utils"; - outputs = { nixpkgs, flake-utils, ... }@inputs: + outputs = { nixpkgs, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; - swoop = pkgs.callPackage ./swoop.nix {}; + swoop = pkgs.callPackage ./swoop.nix { }; in rec { packages.swoop = swoop; defaultPackage = packages.swoop; - devShell = pkgs.callPackage ./shell.nix {}; + devShell = pkgs.callPackage ./shell.nix { }; } ); } diff --git a/src/index.ts b/src/index.ts index 0f89da2..e9339fb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -45,7 +45,7 @@ function indent(amount: number, text: string) { function tag( name: string, attributes: Record, - children: string = "" + children: string = "", ) { const attributeString = Object.entries(attributes) .map(([k, v]) => `${k}="${v}"`) @@ -74,7 +74,7 @@ function textContents(input: string): string { function renderKey( visual: VisualKey, key: KeyboardKey, - colorscheme: LayoutColorscheme + colorscheme: LayoutColorscheme, ) { const centerX = visual.position[0] + visual.size[0] / 2; const centerY = visual.position[1] + visual.size[1] / 2; @@ -117,7 +117,7 @@ function renderKey( fill: textColor(key.main, colorscheme.mainLayerColor), ...textAttribs, }, - textContents(key.main) + textContents(key.main), ), tag( "text", @@ -128,7 +128,7 @@ function renderKey( "font-size": "66%", ...textAttribs, }, - textContents(key.tlLayer) + textContents(key.tlLayer), ), tag( "text", @@ -140,7 +140,7 @@ function renderKey( ...textAttribs, "text-anchor": "end", }, - textContents(key.trLayer) + textContents(key.trLayer), ), tag( "text", @@ -152,9 +152,9 @@ function renderKey( ...textAttribs, "text-anchor": "start", }, - textContents(key.blLayer) + textContents(key.blLayer), ), - ].join("\n") + ].join("\n"), ); } @@ -168,12 +168,14 @@ function renderLayout(layout: Layout) { 2 * layout.padding + layout.size[0], 2 * layout.padding + layout.size[1], ].join(" "), + xmlns: "http://www.w3.org/2000/svg", + "xmlns:xlink": "http://www.w3.org/1999/xlink", }, layout.visual .map((key, index) => - renderKey(key, layout.keys[index], layout.colorscheme) + renderKey(key, layout.keys[index], layout.colorscheme), ) - .join("\n") + .join("\n"), ); } @@ -209,7 +211,7 @@ function neg(v: Vec2): Vec2 { function thumbs( at: Vec2, reverse: boolean, - thumbRotation = reverse ? -15 : 15 + thumbRotation = reverse ? -15 : 15, ): VisualLayout { // Distance between thumb key centers const factor = keySize; @@ -238,7 +240,7 @@ function key( main: string, tlLayer = "", trLayer = "", - blLayer = "" + blLayer = "", ): KeyboardKey { return { main, tlLayer, trLayer, blLayer }; } @@ -269,28 +271,36 @@ const layout: Layout = { keys: [ [ key("Q", "!", "1", "f1"), - key("A", "(", "6", "f6"), - key("Z", ")", "", "f11"), + key("A", "<", "6", "f6"), + key("X", ">", "", "f11"), ], [ key("W", "@", "2", "f2"), - key("S", "[", "7", "f7"), - key("X", "]", "", "f12"), + key("R", "(", "7", "f7"), + key("C", ")", "", "f12"), ], - [key("E", "#", "3", "f3"), key("D", "{", "8", "f8"), key("C", "}")], - [key("R", "$", "4", "f4"), key("F", "<", "9", "f9"), key("V", ">")], - [key("T", "%", "5", "f5"), key("G", ";", "0", "f10"), key("B", "")], + [key("F", "#", "3", "f3"), key("S", "[", "8", "f8"), key("D", "]")], + [key("P", "$", "4", "f4"), key("T", "{", "9", "f9"), key("V", "}")], + [key("B", "%", "5", "f5"), key("G", "-", "0", "f10"), key("Z", "—")], [key("TR", "", ""), key("␣", "", "")], [key("⇧", "", ""), key("TL", "", "")], - [key("Y", "^", ""), key("H", "-", "◄", "😱"), key("N", "?", "", "🎮")], + [key("J", "^", "🏠"), key("M", "?", "◄", "😱"), key("K", "", "", "🎮")], [ - key("U", "&", "", "🔊"), - key("J", "_", "▼", "🔉"), - key("M", "/", "", "🔇"), + key("L", "&", "⏬", "🔊"), + key("N", "_", "▼", "🔉"), + key("H", "|", "", "🔇"), + ], + [key("U", "*", "⏫", "🔆"), key("E", "/", "▲", "🔅"), key(",", "\\", "")], + [ + key("Y", "~", "end", "⏪"), + key("I", "=", "►", "⏯️"), + key(".", "+", "", "⏩"), + ], + [ + key(":", "`", "del", "copy"), + key("O", ";", "", "paste"), + key("'", '"', "", "cut"), ], - [key("I", "*", "", "🔆"), key("K", "=", "▲", "🔅"), key(",", "\\", "")], - [key("O", "~", "", "⏪"), key("L", "+", "►", "⏯️"), key(".", "|", "", "⏩")], - [key("P", "`", "del"), key(":", "", ""), key('"', "'", "")], ].flat(), padding: 20, size: [keySize * 12, keySize * 6], diff --git a/swoop.nix b/swoop.nix index 5bf268c..0d8d355 100644 --- a/swoop.nix +++ b/swoop.nix @@ -12,7 +12,7 @@ pkgs.stdenv.mkDerivation { ]; buildPhase = '' - esbuild $src/index.ts --bundle --outfile=./out.js + esbuild $src/index.ts --bundle --outfile=./out.js --platform=node ''; installPhase = ''