This commit is contained in:
mwiegand 2022-11-19 20:45:11 +01:00
parent 010fb5df38
commit e245c934df
No known key found for this signature in database
3 changed files with 179 additions and 76 deletions

View file

@ -36,7 +36,7 @@
<% keys.each do |key| %> <% keys.each do |key| %>
<g transform="translate(<%= key[:x] %>, <%= key[:y] %>)"> <g transform="translate(<%= key[:x] %>, <%= key[:y] %>)">
<use class="key" href="#<%= key[:keycap] %>"></use> <use class="key" href="#<%= key[:keycap] %>"></use>
<text class="keycap_text"><%= key[:name] %></text> <text class="keycap_text"><%= key[:symbol] %></text>
</g> </g>
<% end %> <% end %>
</svg> </svg>

View file

@ -129,7 +129,7 @@
<g transform="translate(17.75, 0.5)"> <g transform="translate(17.75, 0.5)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">PAU</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(0.5, 1.75)"> <g transform="translate(0.5, 1.75)">
@ -199,7 +199,7 @@
<g transform="translate(14.0, 1.75)"> <g transform="translate(14.0, 1.75)">
<use class="key" href="#h2"></use> <use class="key" href="#h2"></use>
<text class="keycap_text">BACKSP</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(15.75, 1.75)"> <g transform="translate(15.75, 1.75)">
@ -209,7 +209,7 @@
<g transform="translate(16.75, 1.75)"> <g transform="translate(16.75, 1.75)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">HOM</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(17.75, 1.75)"> <g transform="translate(17.75, 1.75)">
@ -239,7 +239,7 @@
<g transform="translate(0.75, 2.75)"> <g transform="translate(0.75, 2.75)">
<use class="key" href="#h1.5"></use> <use class="key" href="#h1.5"></use>
<text class="keycap_text">TAB</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(2.0, 2.75)"> <g transform="translate(2.0, 2.75)">
@ -304,17 +304,17 @@
<g transform="translate(14.25, 2.75)"> <g transform="translate(14.25, 2.75)">
<use class="key" href="#enter_iso"></use> <use class="key" href="#enter_iso"></use>
<text class="keycap_text">ENT</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(15.75, 2.75)"> <g transform="translate(15.75, 2.75)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">DEL</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(16.75, 2.75)"> <g transform="translate(16.75, 2.75)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">END</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(17.75, 2.75)"> <g transform="translate(17.75, 2.75)">
@ -344,7 +344,7 @@
<g transform="translate(0.875, 3.75)"> <g transform="translate(0.875, 3.75)">
<use class="key" href="#h1.75"></use> <use class="key" href="#h1.75"></use>
<text class="keycap_text">CAPS</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(2.25, 3.75)"> <g transform="translate(2.25, 3.75)">
@ -489,7 +489,7 @@
<g transform="translate(16.75, 4.75)"> <g transform="translate(16.75, 4.75)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">ARU</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(19.0, 4.75)"> <g transform="translate(19.0, 4.75)">
@ -509,7 +509,7 @@
<g transform="translate(22.0, 4.75)"> <g transform="translate(22.0, 4.75)">
<use class="key" href="#v2"></use> <use class="key" href="#v2"></use>
<text class="keycap_text">ENT</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(0.625, 5.75)"> <g transform="translate(0.625, 5.75)">
@ -544,7 +544,7 @@
<g transform="translate(13.25, 5.75)"> <g transform="translate(13.25, 5.75)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">MENU</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(14.375, 5.75)"> <g transform="translate(14.375, 5.75)">
@ -554,17 +554,17 @@
<g transform="translate(15.75, 5.75)"> <g transform="translate(15.75, 5.75)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">ARL</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(16.75, 5.75)"> <g transform="translate(16.75, 5.75)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">ARD</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(17.75, 5.75)"> <g transform="translate(17.75, 5.75)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">ARR</text> <text class="keycap_text"></text>
</g> </g>
<g transform="translate(19.5, 5.75)"> <g transform="translate(19.5, 5.75)">
@ -574,7 +574,7 @@
<g transform="translate(21.0, 5.75)"> <g transform="translate(21.0, 5.75)">
<use class="key" href="#h1"></use> <use class="key" href="#h1"></use>
<text class="keycap_text">DEL</text> <text class="keycap_text"></text>
</g> </g>
</svg> </svg>

View file

@ -2,215 +2,317 @@
# https://developer.valvesoftware.com/wiki/Bind # https://developer.valvesoftware.com/wiki/Bind
keys = { keys = [
escape: { {
ingame: 'escape',
short: 'ESC',
title: 'Escape', title: 'Escape',
keycap: 'ESC', keycap: 'ESC',
}, },
tab: { {
ingame: 'tab',
short: 'TAB',
title: 'Tabulator', title: 'Tabulator',
keycap: '↹', keycap: '↹',
}, },
capslock: { {
ingame: 'capslock',
short: 'CAPS',
title: 'Capslock', title: 'Capslock',
keycap: '⇪', keycap: '⇪',
}, },
shift: { {
ingame: 'shift',
short: 'SFT',
title: 'Shift', title: 'Shift',
keycap: '⇧', keycap: '⇧',
}, },
ctrl: { {
ingame: 'ctrl',
short: 'CTL',
title: 'Control', title: 'Control',
keycap: 'CTL', keycap: 'CTL',
}, },
alt: { {
ingame: 'alt',
short: 'ALT',
title: 'ALT', title: 'ALT',
keycap: 'ALT', keycap: 'ALT',
}, },
space: { {
ingame: 'space',
short: 'SPC',
title: 'Space', title: 'Space',
keycap: 'SPACE', keycap: 'SPACE',
}, },
backspace: { {
ingame: 'backspace',
short: 'BSP',
title: 'Backspace', title: 'Backspace',
keycap: '⇦', keycap: '⇦',
}, },
enter: { {
ingame: 'enter',
short: 'ENT',
title: 'Enter', title: 'Enter',
keycap: '↵', keycap: '↵',
}, },
semicolon: { {
ingame: 'semicolon',
short: ';',
title: 'Semicolon', title: 'Semicolon',
keycap: ';', keycap: ';',
}, },
lwin: { {
ingame: 'lwin',
short: 'LWIN',
title: 'Left Super', title: 'Left Super',
keycap: '⊞', keycap: '⊞',
}, },
rwin: { {
ingame: 'rwin',
short: 'RWIN',
title: 'Right Super', title: 'Right Super',
keycap: '⊞', keycap: '⊞',
}, },
apps: { {
ingame: 'apps',
short: 'MENU',
title: 'Menu', title: 'Menu',
keycap: '≡', keycap: '≡',
}, },
numlock: { {
ingame: 'numlock',
short: 'NUM',
title: 'Numlock', title: 'Numlock',
keycap: 'NUM', keycap: 'NUM',
}, },
scrolllock: { {
ingame: 'scrolllock',
short: 'SCR',
title: 'Scrollock', title: 'Scrollock',
keycap: 'SCR', keycap: 'SCR',
}, },
uparrow: { {
ingame: 'uparrow',
short: 'ARU',
title: 'Arrow Up', title: 'Arrow Up',
keycap: '↑', keycap: '↑',
}, },
downarrow: { {
ingame: 'downarrow',
short: 'ARD',
title: 'Arrow Down', title: 'Arrow Down',
keycap: '↓', keycap: '↓',
}, },
leftarrow: { {
ingame: 'leftarrow',
short: 'ARL',
title: 'Arrow Left', title: 'Arrow Left',
keycap: '←', keycap: '←',
}, },
rightarrow: { {
ingame: 'rightarrow',
short: 'ARR',
title: 'Arrow Right', title: 'Arrow Right',
keycap: '→', keycap: '→',
}, },
ins: { {
ingame: 'ins',
short: 'INS',
title: 'Insert', title: 'Insert',
keycap: 'INS', keycap: 'INS',
}, },
del: { {
ingame: 'del',
short: 'DEL',
title: 'Delete', title: 'Delete',
keycap: '⇨', keycap: '⇨',
}, },
pgdn: { {
ingame: 'pgdn',
short: 'PGD',
title: 'Page Down', title: 'Page Down',
keycap: '⇣', keycap: '⇣',
}, },
pgup: { {
ingame: 'pgup',
short: 'PGU',
title: 'Page Up', title: 'Page Up',
keycap: '⇡', keycap: '⇡',
}, },
home: { {
ingame: 'home',
short: 'HOM',
title: 'Home', title: 'Home',
keycap: '⌂', keycap: '⌂',
}, },
end: { {
ingame: 'end',
short: 'END',
title: 'End', title: 'End',
keycap: '⇥', keycap: '⇥',
}, },
pause: { {
ingame: 'pause',
short: 'PAU',
title: 'Pause', title: 'Pause',
keycap: '⏸', keycap: '⏸',
}, },
kp_end: { {
ingame: 'kp_end',
short: 'N1',
title: 'Keypad 1 (End)', title: 'Keypad 1 (End)',
keycap: '1', keycap: '1',
}, },
kp_downarrow: { {
ingame: 'kp_downarrow',
short: 'N2',
title: 'Keypad 2 (Arrow Down)', title: 'Keypad 2 (Arrow Down)',
keycap: '2', keycap: '2',
}, },
kp_pgdn: { {
ingame: 'kp_pgdn',
short: 'N3',
title: 'Keypad 3 (Page Down)', title: 'Keypad 3 (Page Down)',
keycap: '3', keycap: '3',
}, },
kp_leftarrow: { {
ingame: 'kp_leftarrow',
short: 'N4',
title: 'Keypad 4 (Arrow Left)', title: 'Keypad 4 (Arrow Left)',
keycap: '4', keycap: '4',
}, },
kp_5: { {
ingame: 'kp_5',
short: 'N5',
title: 'Keypad 5', title: 'Keypad 5',
keycap: '5', keycap: '5',
}, },
kp_rightarrow: { {
ingame: 'kp_rightarrow',
short: 'N6',
title: 'Keypad 6 (Arrow Right)', title: 'Keypad 6 (Arrow Right)',
keycap: '6', keycap: '6',
}, },
kp_home: { {
ingame: 'kp_home',
short: 'N7',
title: 'Keypad 7 (Home)', title: 'Keypad 7 (Home)',
keycap: '7', keycap: '7',
}, },
kp_uparrow: { {
ingame: 'kp_uparrow',
short: 'N8',
title: 'Keypad 8 (Arrow Up)', title: 'Keypad 8 (Arrow Up)',
keycap: '8', keycap: '8',
}, },
kp_pgup: { {
ingame: 'kp_pgup',
short: 'N9',
title: 'Keypad 9 (Page Up)', title: 'Keypad 9 (Page Up)',
keycap: '9', keycap: '9',
}, },
kp_enter: { {
ingame: 'kp_enter',
short: 'NENT',
title: 'Keypad Enter', title: 'Keypad Enter',
keycap: '↵', keycap: '↵',
}, },
kp_ins: { {
ingame: 'kp_ins',
short: 'NINS',
title: 'Keypad 0', title: 'Keypad 0',
keycap: '0', keycap: '0',
}, },
kp_del: { {
ingame: 'kp_del',
short: 'NDEL',
title: 'Keypad .', title: 'Keypad .',
keycap: '.', keycap: '.',
}, },
kp_slash: { {
ingame: 'kp_slash',
short: 'NSL',
title: 'Keypad /', title: 'Keypad /',
keycap: '/', keycap: '/',
}, },
kp_multiply: { {
ingame: 'kp_multiply',
short: 'NMUL',
title: 'Keypad *', title: 'Keypad *',
keycap: '*', keycap: '*',
}, },
kp_minus: { {
ingame: 'kp_minus',
short: 'NMIN',
title: 'Keypad -', title: 'Keypad -',
keycap: '-', keycap: '-',
}, },
kp_plus: { {
ingame: 'kp_plus',
short: 'NPLS',
title: 'Keypad +', title: 'Keypad +',
keycap: '+', keycap: '+',
}, },
mwheeldown: { {
ingame: 'mwheeldown',
short: 'WLD',
title: 'Mousewheel Down', title: 'Mousewheel Down',
keycap: '⇟', keycap: '⇟',
}, },
mwheelup: { {
ingame: 'mwheelup',
short: 'WLU',
title: 'Mousewheel Up', title: 'Mousewheel Up',
keycap: '⇞', keycap: '⇞',
}, },
mouse1: { {
ingame: 'mouse1',
short: 'M1',
title: 'Mouse 1', title: 'Mouse 1',
keycap: '🖱1', keycap: '🖱1',
}, },
mouse2: { {
ingame: 'mouse2',
short: 'M2',
title: 'Mouse 2', title: 'Mouse 2',
keycap: '🖱2', keycap: '🖱2',
}, },
mouse3: { {
ingame: 'mouse3',
short: 'M3',
title: 'Mouse 3', title: 'Mouse 3',
keycap: '🖱3', keycap: '🖱3',
}, },
mouse4: { {
ingame: 'mouse4',
short: 'M4',
title: 'Mouse 4', title: 'Mouse 4',
keycap: '🖱4', keycap: '🖱4',
}, },
mouse5: { {
ingame: 'mouse5',
short: 'M5',
title: 'Mouse 5', title: 'Mouse 5',
keycap: '🖱5', keycap: '🖱5',
}, },
} ]
%(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß,.+-*/#^´).each_char do |char| %(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß,.+-*/#^´).each_char do |char|
keys[char.to_sym] = { keys.append({
ingame: char,
short: char,
title: char, title: char,
'keymap': char, keycap: char,
} })
end end
(1..12).each do |num| (1..12).each do |num|
keys[:"F#{num}"] = { keys.append({
ingame: "F#{num}",
short: "F#{num}",
title: "Function #{num}", title: "Function #{num}",
'keymap': "F#{num}", keycap: "F#{num}",
} })
end end
keycaps = { keycaps = {
@ -258,7 +360,7 @@ keycaps = {
keyboard = { keyboard = {
0 => 'ESC :1 F1 F2 F3 F4 :.5 F5 F6 F7 F8 :.5 F9 F10 F11 F12 :.25 PNT ROL PAU', 0 => 'ESC :1 F1 F2 F3 F4 :.5 F5 F6 F7 F8 :.5 F9 F10 F11 F12 :.25 PNT ROL PAU',
1.25 => '^ 1 2 3 4 5 6 7 8 9 0 ß ´ BACKSP:h2 :.25 INS HOM PUP :.25 NUM / * -', 1.25 => '^ 1 2 3 4 5 6 7 8 9 0 ß ´ BSP:h2 :.25 INS HOM PUP :.25 NUM / * -',
2.25 => 'TAB:h1.5 Q W E R T Z U I O P Ü + ENT:enter_iso :.25 DEL END PDN :.25 7 8 9 +:v2', 2.25 => 'TAB:h1.5 Q W E R T Z U I O P Ü + ENT:enter_iso :.25 DEL END PDN :.25 7 8 9 +:v2',
3.25 => 'CAPS:h1.75 A S D F G H J K L Ö Ä # :1.25 :.25 :1 :1 :1 :.25 4 5 6', 3.25 => 'CAPS:h1.75 A S D F G H J K L Ö Ä # :1.25 :.25 :1 :1 :1 :.25 4 5 6',
4.25 => 'SHIFT:h1.25 < Y X C V B N M , . - SHIFT:h2.75 :.25 :1 ARU :1 :.25 1 2 3 ENT:v2', 4.25 => 'SHIFT:h1.25 < Y X C V B N M , . - SHIFT:h2.75 :.25 :1 ARU :1 :.25 1 2 3 ENT:v2',
@ -275,10 +377,11 @@ keyboard.each do |row_v, row_text|
if element.start_with? ':' if element.start_with? ':'
row_h += element[1..].to_f row_h += element[1..].to_f
else else
key, keycap = element.split(':') short, keycap = element.split(':')
key = keys.find{|k| k[:short] == short}
keycap ||= :h1 keycap ||= :h1
keyboard_keys.append({ keyboard_keys.append({
name: key, symbol: key ? key[:keycap] : short,
keycap: keycap, keycap: keycap,
x: row_h + keycaps[keycap.to_sym][:width]/2.0, x: row_h + keycaps[keycap.to_sym][:width]/2.0,
y: 0.5 + row_v, y: 0.5 + row_v,