diff options
author | Maxim Devaev <[email protected]> | 2022-10-05 13:43:25 +0300 |
---|---|---|
committer | Maxim Devaev <[email protected]> | 2022-10-05 13:43:25 +0300 |
commit | b3c7340504cacba50bba2cb4ba4817d3085edaf7 (patch) | |
tree | b7bd8b4c1dee089337193db1c6d4728a001ffc30 /web | |
parent | 808cd020182820c603a7146d2f0e51f718da1322 (diff) |
improved mobile keyboard layout
Diffstat (limited to 'web')
-rw-r--r-- | web/kvm/index.html | 310 | ||||
-rw-r--r-- | web/kvm/window-keyboard.pug | 279 | ||||
-rw-r--r-- | web/kvm/window-stream.pug | 28 | ||||
-rw-r--r-- | web/share/css/keypad.css | 38 |
4 files changed, 439 insertions, 216 deletions
diff --git a/web/kvm/index.html b/web/kvm/index.html index 26c798d1..6d64ec5a 100644 --- a/web/kvm/index.html +++ b/web/kvm/index.html @@ -772,21 +772,26 @@ <div class="keypad" id="stream-mouse-buttons" align="center"> <div class="keypad-block"> <div class="keypad-row"> - <div class="key wide-4 left small" data-code="left"><span>Mouse<br>Left</span></div> - <div class="modifier wide-2 left small" data-code="left"><span><b>•</b><br>← Hold</span></div> - <div class="empty-key" style="width:10px"></div> - <div class="key wide-2 left small" data-code="middle"><span>Mouse<br>Middle</span></div> - <div class="modifier wide-2 left small" data-code="middle"><span><b>•</b><br>← Hold</span></div> - <div class="empty-key" style="width:10px"></div> - <div class="modifier wide-2 right small" data-code="right"><span><b>•</b><br>Hold →</span></div> - <div class="key wide-4 right small" data-code="right"><span>Mouse<br>Right</span></div> - </div> - <div class="keypad-row" style="display:none"> - <div class="key wide-4 left small" data-code="up"><span>Mouse<br>Up/Back</span></div> - <div class="modifier wide-2 left small" data-code="up"><span><b>•</b><br>← Hold</span></div> - <div class="empty-key" style="width:10px"></div> - <div class="modifier wide-2 right small" data-code="down"><span><b>•</b><br>Hold →</span></div> - <div class="key wide-4 right small" data-code="down"><span>Mouse<br>Down/Fw</span></div> + <div class="key wide-3 left rounded-left" data-code="left"> + <div class="label">Left</div> + </div> + <div class="modifier left small rounded-right" data-code="left"> + <div class="label"><b>•</b><br>Hold</div> + </div> + <div class="empty" style="width:15px"></div> + <div class="key wide-1 left rounded-left" data-code="middle"> + <div class="label">Mid</div> + </div> + <div class="modifier left small rounded-right" data-code="middle"> + <div class="label"><b>•</b><br>Hold</div> + </div> + <div class="empty" style="width:15px"></div> + <div class="modifier right small rounded-left" data-code="right"> + <div class="label"><b>•</b><br>Hold</div> + </div> + <div class="key wide-3 right rounded-right" data-code="right"> + <div class="label">Right</div> + </div> </div> </div> </div> @@ -803,53 +808,74 @@ <div class="label">Esc </div> </div> - <div class="empty-key" style="width:24px"></div> + <div class="spacer-fixed"></div> + <div class="empty " style="width:24px"> + <div class="label"> </div> + </div> + <div class="spacer"></div> <div class="key small" data-code="F1"> <div class="label">F1 </div> </div> + <div class="spacer"></div> <div class="key small" data-code="F2"> <div class="label">F2 </div> </div> + <div class="spacer"></div> <div class="key small" data-code="F3"> <div class="label">F3 </div> </div> + <div class="spacer"></div> <div class="key small" data-code="F4"> <div class="label">F4 </div> </div> - <div class="empty-key" style="width:10px"></div> + <div class="spacer"></div> + <div class="empty " style="width:10px"> + <div class="label"> </div> + </div> + <div class="spacer"></div> <div class="key small" data-code="F5"> <div class="label">F5 </div> </div> + <div class="spacer"></div> <div class="key small" data-code="F6"> <div class="label">F6 </div> </div> + <div class="spacer"></div> <div class="key small" data-code="F7"> <div class="label">F7 </div> </div> + <div class="spacer"></div> <div class="key small" data-code="F8"> <div class="label">F8 </div> </div> - <div class="empty-key" style="width:10px"></div> + <div class="spacer"></div> + <div class="empty " style="width:10px"> + <div class="label"> </div> + </div> + <div class="spacer"></div> <div class="key small" data-code="F9"> <div class="label">F9 </div> </div> + <div class="spacer"></div> <div class="key small" data-code="F10"> <div class="label">F10 </div> </div> + <div class="spacer"></div> <div class="key small" data-code="F11"> <div class="label">F11 </div> </div> + <div class="spacer"></div> <div class="key small" data-code="F12"> <div class="label">F12 </div> @@ -861,217 +887,266 @@ <div class="label">~<br>` </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit1"> <div class="label">!<br>1 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit2"> <div class="label">@<br>2 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit3"> <div class="label">#<br>3 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit4"> <div class="label">$<br>4 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit5"> <div class="label">%<br>5 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit6"> <div class="label">^<br>6 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit7"> <div class="label">&<br>7 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit8"> <div class="label">*<br>8 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit9"> <div class="label">(<br>9 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit0"> <div class="label">)<br>0 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Minus"> <div class="label">_<br>- </div> </div> + <div class="spacer"></div> <div class="key " data-code="Equal"> <div class="label">+<br>= </div> </div> - <div class="key wide-2 right" data-code="Backspace"> + <div class="spacer-fixed"></div> + <div class="key wide-1 right" data-code="Backspace"> <div class="label">↤ </div> </div> </div> <div class="keypad-row"> - <div class="key wide-2 left" data-code="Tab"> + <div class="key wide-1 left" data-code="Tab"> <div class="label">⇤<br>⇥ </div> </div> + <div class="spacer-fixed"></div> <div class="key single" data-code="KeyQ"> <div class="label">Q </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyW"> <div class="label">W </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyE"> <div class="label">E </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyR"> <div class="label">R </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyT"> <div class="label">T </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyY"> <div class="label">Y </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyU"> <div class="label">U </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyI"> <div class="label">I </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyO"> <div class="label">O </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyP"> <div class="label">P </div> </div> + <div class="spacer"></div> <div class="key " data-code="BracketLeft"> <div class="label">{<br>[ </div> </div> + <div class="spacer"></div> <div class="key " data-code="BracketRight"> <div class="label">}<br>] </div> </div> + <div class="spacer"></div> <div class="key " data-code="Backslash"> <div class="label">|<br>\ </div> </div> </div> <div class="keypad-row"> - <div class="key wide-3 left small" data-code="CapsLock"> + <div class="key wide-2 left small" data-code="CapsLock"> <div class="label"><img class="inline-lamp hid-keyboard-caps-led led-gray" src="/share/svg/led-square.svg"><br> Caps Lock </div> </div> + <div class="spacer-fixed"></div> <div class="key single" data-code="KeyA"> <div class="label">A </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyS"> <div class="label">S </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyD"> <div class="label">D </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyF"> <div class="label">F </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyG"> <div class="label">G </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyH"> <div class="label">H </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyJ"> <div class="label">J </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyK"> <div class="label">K </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyL"> <div class="label">L </div> </div> + <div class="spacer"></div> <div class="key " data-code="Semicolon"> <div class="label">:<br>; </div> </div> + <div class="spacer"></div> <div class="key " data-code="Quote"> <div class="label">"<br>' </div> </div> - <div class="key wide-3 right small" data-code="Enter"> + <div class="spacer-fixed"></div> + <div class="key wide-2 right small" data-code="Enter"> <div class="label">Enter<br>↵ </div> </div> </div> <div class="keypad-row"> - <div class="modifier wide-4 left small" data-code="ShiftLeft"> + <div class="modifier wide-3 left small" data-code="ShiftLeft"> <div class="label"><b>•</b><br>Shift </div> </div> + <div class="spacer-fixed"></div> <div class="key single" data-code="KeyZ"> <div class="label">Z </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyX"> <div class="label">X </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyC"> <div class="label">C </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyV"> <div class="label">V </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyB"> <div class="label">B </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyN"> <div class="label">N </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyM"> <div class="label">M </div> </div> + <div class="spacer"></div> <div class="key " data-code="Comma"> <div class="label"><<br>, </div> </div> + <div class="spacer"></div> <div class="key " data-code="Period"> <div class="label">><br>. </div> </div> + <div class="spacer"></div> <div class="key " data-code="Slash"> <div class="label">?<br>/ </div> </div> - <div class="modifier wide-4 right small" data-code="ShiftRight"> + <div class="spacer-fixed"></div> + <div class="modifier wide-3 right small" data-code="ShiftRight"> <div class="label"><b>•</b><br>Shift </div> </div> @@ -1081,26 +1156,32 @@ <div class="label"><b>•</b><br>Ctrl </div> </div> + <div class="spacer-fixed"></div> <div class="modifier wide-1 left small" data-code="MetaLeft"> <div class="label"><b>•</b><br>Win </div> </div> + <div class="spacer-fixed"></div> <div class="modifier wide-1 left small" data-code="AltLeft"> <div class="label"><b>•</b><br>Alt </div> </div> - <div class="key wide-5" data-code="Space"> + <div class="spacer-fixed"></div> + <div class="key wide-4" data-code="Space"> <div class="label"> </div> </div> + <div class="spacer-fixed"></div> <div class="modifier wide-1 right small" data-code="AltRight"> <div class="label"><b>•</b><br>Alt </div> </div> + <div class="spacer-fixed"></div> <div class="modifier wide-1 right small" data-code="MetaRight"> <div class="label"><b>•</b><br>Win </div> </div> + <div class="spacer-fixed"></div> <div class="modifier wide-1 right small" data-code="ControlRight"> <div class="label"><b>•</b><br>Ctrl </div> @@ -1113,10 +1194,12 @@ <div class="label"><b>•</b><br>Pt/Sq </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="ScrollLock"> <div class="label"><img class="inline-lamp hid-keyboard-scroll-led led-gray" src="/share/svg/led-square.svg"><br> ScrLk </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="Pause"> <div class="label">P/Brk </div> @@ -1128,10 +1211,12 @@ <div class="label">Ins </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="Home"> <div class="label">Home </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="PageUp"> <div class="label">PgUp </div> @@ -1142,10 +1227,12 @@ <div class="label">Del </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="End"> <div class="label">End </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="PageDown"> <div class="label">PgDn </div> @@ -1153,22 +1240,30 @@ </div> <div class="keypad-row"></div> <div class="keypad-row"> - <div class="empty-key"></div> + <div class="empty "> + <div class="label"> </div> + </div> + <div class="spacer"></div> <div class="key " data-code="ArrowUp"> <div class="label">↑ </div> </div> - <div class="empty-key"></div> + <div class="spacer-fixed"></div> + <div class="empty "> + <div class="label"> </div> + </div> </div> <div class="keypad-row"> <div class="key " data-code="ArrowLeft"> <div class="label">← </div> </div> + <div class="spacer-fixed"></div> <div class="key " data-code="ArrowDown"> <div class="label">↓ </div> </div> + <div class="spacer-fixed"></div> <div class="key " data-code="ArrowRight"> <div class="label">→ </div> @@ -1177,15 +1272,20 @@ </div> <div class="keypad-block"> <div class="keypad-row"> - <div class="empty-key"></div> + <div class="empty small"> + <div class="label"> </div> + </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="IntlYen"> <div class="label">Yen </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="IntlBackslash"> <div class="label">N/US </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="Power"> <div class="label">PWR </div> @@ -1197,14 +1297,17 @@ <div class="label"><img class="inline-lamp hid-keyboard-num-led led-gray" src="/share/svg/led-square.svg"><br> NmLk </div> </div> + <div class="spacer-fixed"></div> <div class="key " data-code="NumpadDivide"> <div class="label">/ </div> </div> + <div class="spacer-fixed"></div> <div class="key " data-code="NumpadMultiply"> <div class="label">* </div> </div> + <div class="spacer-fixed"></div> <div class="key " data-code="NumpadSubtract"> <div class="label">- </div> @@ -1215,29 +1318,37 @@ <div class="label">7<br>Home </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="Numpad8"> <div class="label">8<br>↑ </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="Numpad9"> <div class="label">9<br>PgUp </div> </div> - <div class="empty-key"></div> + <div class="spacer-fixed"></div> + <div class="empty "> + <div class="label"> </div> + </div> </div> <div class="keypad-row"> <div class="key small" data-code="Numpad4"> <div class="label">4<br>← </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="Numpad5"> <div class="label">5<br><br> </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="Numpad6"> <div class="label">6<br>→ </div> </div> + <div class="spacer-fixed"></div> <div class="key " data-code="NumpadAdd"> <div class="label">+ </div> @@ -1248,26 +1359,36 @@ <div class="label">1<br>End </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="Numpad2"> <div class="label">2<br>↓ </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="Numpad3"> <div class="label">3<br>PgDn </div> </div> - <div class="empty-key"></div> + <div class="spacer-fixed"></div> + <div class="empty "> + <div class="label"> </div> + </div> </div> <div class="keypad-row"> <div class="key small" data-code="Numpad0"> <div class="label">0<br>Ins </div> </div> - <div class="empty-key"></div> + <div class="spacer-fixed"></div> + <div class="empty "> + <div class="label"> </div> + </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="NumpadDecimal"> <div class="label">.<br>Del </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="NumpadEnter"> <div class="label">Ent </div> @@ -1278,85 +1399,93 @@ <div class="keypad" id="keyboard-mobile" align="center"> <div class="keypad-block"> <div class="keypad-row"> - <div class="key margin-0 small" data-code="Escape"> + <div class="key small" data-code="Escape"> <div class="label">Esc </div> </div> - <div class="empty-key" style="width:1px"></div> - <div class="key wide-0 margin-0 small" data-code="F1"> + <div class="spacer"></div> + <div class="key wide-0 small rounded-left" data-code="F1"> <div class="label">F1 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F2"> + <div class="key wide-0 small rounded-none" data-code="F2"> <div class="label">F2 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F3"> + <div class="key wide-0 small rounded-none" data-code="F3"> <div class="label">F3 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F4"> + <div class="key wide-0 small rounded-right" data-code="F4"> <div class="label">F4 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F5"> + <div class="spacer-fixed"></div> + <div class="key wide-0 small rounded-left" data-code="F5"> <div class="label">F5 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F6"> + <div class="key wide-0 small rounded-none" data-code="F6"> <div class="label">F6 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F7"> + <div class="key wide-0 small rounded-none" data-code="F7"> <div class="label">F7 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F8"> + <div class="key wide-0 small rounded-right" data-code="F8"> <div class="label">F8 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F9"> + <div class="spacer-fixed"></div> + <div class="key wide-0 small rounded-left" data-code="F9"> <div class="label">F9 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F10"> + <div class="key wide-0 small rounded-none" data-code="F10"> <div class="label">F10 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F11"> + <div class="key wide-0 small rounded-none" data-code="F11"> <div class="label">F11 </div> </div> - <div class="key wide-0 margin-0 small" data-code="F12"> + <div class="key wide-0 small rounded-right" data-code="F12"> <div class="label">F12 </div> </div> - <div class="empty-key" style="width:2px"></div> - <div class="modifier margin-0 small" data-code="PrintScreen"> + <div class="spacer-fixed"></div> + <div class="modifier small" data-code="PrintScreen"> <div class="label"><b>•</b><br>Pt/Sq </div> </div> - <div class="key margin-0 small" data-code="ScrollLock"> + <div class="spacer"></div> + <div class="key small" data-code="ScrollLock"> <div class="label"><img class="inline-lamp hid-keyboard-scroll-led led-gray" src="/share/svg/led-square.svg"><br> ScrLk </div> </div> - <div class="key margin-0 small" data-code="Pause"> + <div class="spacer"></div> + <div class="key small" data-code="Pause"> <div class="label">P/Brk </div> </div> - <div class="key margin-0 small" data-code="Insert"> + <div class="spacer"></div> + <div class="key small" data-code="Insert"> <div class="label">Ins </div> </div> - <div class="key margin-0 small" data-code="Home"> + <div class="spacer"></div> + <div class="key small" data-code="Home"> <div class="label">Home </div> </div> - <div class="key margin-0 small" data-code="End"> + <div class="spacer"></div> + <div class="key small" data-code="End"> <div class="label">End </div> </div> - <div class="key margin-0 small" data-code="Delete"> + <div class="spacer"></div> + <div class="key small" data-code="Delete"> <div class="label">Del </div> </div> @@ -1366,224 +1495,275 @@ <div class="label">~<br>` </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit1"> <div class="label">!<br>1 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit2"> <div class="label">@<br>2 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit3"> <div class="label">#<br>3 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit4"> <div class="label">$<br>4 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit5"> <div class="label">%<br>5 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit6"> <div class="label">^<br>6 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit7"> <div class="label">&<br>7 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit8"> <div class="label">*<br>8 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit9"> <div class="label">(<br>9 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Digit0"> <div class="label">)<br>0 </div> </div> + <div class="spacer"></div> <div class="key " data-code="Minus"> <div class="label">_<br>- </div> </div> + <div class="spacer"></div> <div class="key " data-code="Equal"> <div class="label">+<br>= </div> </div> - <div class="key wide-3 right" data-code="Backspace" style="width:101px"> + <div class="spacer"></div> + <div class="key wide-2 right" data-code="Backspace" style="width:101px"> <div class="label">↤ </div> </div> </div> <div class="keypad-row"> - <div class="key wide-2 left" data-code="Tab"> + <div class="key wide-1 left" data-code="Tab"> <div class="label">⇤<br>⇥ </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyQ"> <div class="label">Q </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyW"> <div class="label">W </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyE"> <div class="label">E </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyR"> <div class="label">R </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyT"> <div class="label">T </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyY"> <div class="label">Y </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyU"> <div class="label">U </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyI"> <div class="label">I </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyO"> <div class="label">O </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyP"> <div class="label">P </div> </div> + <div class="spacer"></div> <div class="key " data-code="BracketLeft"> <div class="label">{<br>[ </div> </div> + <div class="spacer"></div> <div class="key " data-code="BracketRight"> <div class="label">}<br>] </div> </div> - <div class="key wide-2 left" data-code="Backslash" style="width:78px"> + <div class="spacer"></div> + <div class="key wide-1 left" data-code="Backslash" style="width:78px"> <div class="label">|<br>\ </div> </div> </div> <div class="keypad-row"> - <div class="key wide-3 left small" data-code="CapsLock"> + <div class="key wide-2 left small" data-code="CapsLock"> <div class="label"><img class="inline-lamp hid-keyboard-caps-led led-gray" src="/share/svg/led-square.svg"><br> Caps Lock </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyA"> <div class="label">A </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyS"> <div class="label">S </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyD"> <div class="label">D </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyF"> <div class="label">F </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyG"> <div class="label">G </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyH"> <div class="label">H </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyJ"> <div class="label">J </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyK"> <div class="label">K </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyL"> <div class="label">L </div> </div> + <div class="spacer"></div> <div class="key " data-code="Semicolon"> <div class="label">:<br>; </div> </div> + <div class="spacer"></div> <div class="key " data-code="Quote"> <div class="label">`<br>' </div> </div> - <div class="key wide-4 right small" data-code="Enter" style="width:116px"> + <div class="spacer"></div> + <div class="key wide-3 right small" data-code="Enter" style="width:116px"> <div class="label">Enter<br>↵ </div> </div> </div> <div class="keypad-row"> - <div class="modifier wide-4 left small" data-code="ShiftLeft"> + <div class="modifier wide-3 left small" data-code="ShiftLeft"> <div class="label"><b>•</b><br>Shift </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyZ"> <div class="label">Z </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyX"> <div class="label">X </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyC"> <div class="label">C </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyV"> <div class="label">V </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyB"> <div class="label">B </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyN"> <div class="label">N </div> </div> + <div class="spacer"></div> <div class="key single" data-code="KeyM"> <div class="label">M </div> </div> + <div class="spacer"></div> <div class="key " data-code="Comma"> - <div class="label">lt;<br>, + <div class="label"><<br>, </div> </div> + <div class="spacer"></div> <div class="key " data-code="Period"> <div class="label">><br>. </div> </div> + <div class="spacer"></div> <div class="key " data-code="Slash"> <div class="label">?<br>/ </div> </div> + <div class="spacer"></div> <div class="key small" data-code="PageUp"> <div class="label">PgUp </div> </div> + <div class="spacer-fixed"></div> <div class="key " data-code="ArrowUp"> <div class="label">↑ </div> </div> + <div class="spacer-fixed"></div> <div class="key small" data-code="PageDown"> <div class="label">PgDn </div> @@ -1594,42 +1774,52 @@ <div class="label"><b>•</b><br>Ctrl </div> </div> + <div class="spacer"></div> <div class="modifier wide-1 left small" data-code="MetaLeft"> <div class="label"><b>•</b><br>Win </div> </div> + <div class="spacer"></div> <div class="modifier wide-1 left small" data-code="AltLeft"> <div class="label"><b>•</b><br>Alt </div> </div> + <div class="spacer"></div> <div class="key " data-code="Space" style="width:190px"> <div class="label"> </div> </div> + <div class="spacer"></div> <div class="modifier right small" data-code="AltRight"> <div class="label"><b>•</b><br>Alt </div> </div> + <div class="spacer"></div> <div class="modifier right small" data-code="MetaRight"> <div class="label"><b>•</b><br>Win </div> </div> + <div class="spacer"></div> <div class="modifier right small" data-code="ShiftRight"> <div class="label"><b>•</b><br>Shift </div> </div> + <div class="spacer"></div> <div class="modifier right small" data-code="ControlRight"> <div class="label"><b>•</b><br>Ctrl </div> </div> + <div class="spacer"></div> <div class="key " data-code="ArrowLeft"> <div class="label">← </div> </div> + <div class="spacer-fixed"></div> <div class="key " data-code="ArrowDown"> <div class="label">↓ </div> </div> + <div class="spacer-fixed"></div> <div class="key " data-code="ArrowRight"> <div class="label">→ </div> diff --git a/web/kvm/window-keyboard.pug b/web/kvm/window-keyboard.pug index 7346e88c..2a1191f0 100644 --- a/web/kvm/window-keyboard.pug +++ b/web/kvm/window-keyboard.pug @@ -1,16 +1,29 @@ -mixin key(code, classes="", width=0) +mixin key(spacer, code, classes="", width=0) div(data-code=code, class=`key ${classes}`, style=(width ? `width:${width}px` : "")) div(class="label") block + if spacer == 1 + div(class="spacer") + else if spacer == 2 + div(class="spacer-fixed") -mixin modifier(code, classes="", width=0) +mixin modifier(spacer, code, classes="", width=0) div(data-code=code class=`modifier ${classes}` style=(width ? `width:${width}px` : "")) div(class="label") | #[b •]#[br] block + if spacer == 1 + div(class="spacer") + else if spacer == 2 + div(class="spacer-fixed") -mixin empty_key(width=0) - div(class="empty-key" style=(width ? `width:${width}px` : "")) +mixin empty(spacer, classes="", width=0) + div(class=`empty ${classes}` style=(width ? `width:${width}px` : "")) + div(class="label") + if spacer == 1 + div(class="spacer") + else if spacer == 2 + div(class="spacer-fixed") mixin lamp(cls) img(class=`inline-lamp ${cls} led-gray` src=`${svg_dir}/led-square.svg`) @@ -23,173 +36,181 @@ div(id="keyboard-window" class="window") div(id="keyboard-desktop" class="keypad" align="center") div(class="keypad-block") div(class="keypad-row") - +key("Escape", "small") Esc - +empty_key(24) + +key(2, "Escape", "small") Esc + +empty(1, "", 24) each key in ["F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12"] - +key(key, "small") #{key} + +key((key != "F12" ? 1 : 0), key, "small") #{key} if key == "F4" || key == "F8" - +empty_key(10) + +empty(1, "", 10) hr div(class="keypad-row") - +key("Backquote") ~#[br]` + +key(1, "Backquote") ~#[br]` each key, index in ["!", "@", "#", "$", "%", "^", "&", "*", "("] - +key(`Digit${index + 1}`) #{key}#[br]#{index + 1} - +key("Digit0") )#[br]0 - +key("Minus") _#[br]- - +key("Equal") +#[br]= - +key("Backspace", "wide-2 right") ↤ + +key(1, `Digit${index + 1}`) #{key}#[br]#{index + 1} + +key(1, "Digit0") )#[br]0 + +key(1, "Minus") _#[br]- + +key(2, "Equal") +#[br]= + +key(0, "Backspace", "wide-1 right") ↤ div(class="keypad-row") - +key("Tab", "wide-2 left") ⇤#[br]⇥ + +key(2, "Tab", "wide-1 left") ⇤#[br]⇥ each key in ["Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P"] - +key(`Key${key}`, "single") #{key} - +key("BracketLeft") {#[br][ - +key("BracketRight") }#[br]] - +key("Backslash") |#[br]\ + +key(1, `Key${key}`, "single") #{key} + +key(1, "BracketLeft") {#[br][ + +key(1, "BracketRight") }#[br]] + +key(0, "Backslash") |#[br]\ div(class="keypad-row") - +key("CapsLock", "wide-3 left small") + +key(2, "CapsLock", "wide-2 left small") +lamp("hid-keyboard-caps-led") | #[br] Caps Lock each key in ["A", "S", "D", "F", "G", "H", "J", "K", "L"] - +key(`Key${key}`, "single") #{key} - +key("Semicolon") :#[br]; - +key("Quote") "#[br]' - +key("Enter", "wide-3 right small") Enter#[br]↵ + +key(1, `Key${key}`, "single") #{key} + +key(1, "Semicolon") :#[br]; + +key(2, "Quote") "#[br]' + +key(0, "Enter", "wide-2 right small") Enter#[br]↵ div(class="keypad-row") - +modifier("ShiftLeft", "wide-4 left small") Shift + +modifier(2, "ShiftLeft", "wide-3 left small") Shift each key in ["Z", "X", "C", "V", "B", "N", "M"] - +key(`Key${key}`, "single") #{key} - +key("Comma") <#[br], - +key("Period") >#[br]. - +key("Slash") ?#[br]/ - +modifier("ShiftRight", "wide-4 right small") Shift - div(class="keypad-row") - +modifier("ControlLeft", "wide-1 left small") Ctrl - +modifier("MetaLeft", "wide-1 left small") Win - +modifier("AltLeft", "wide-1 left small") Alt - +key("Space", "wide-5") - +modifier("AltRight", "wide-1 right small") Alt - +modifier("MetaRight", "wide-1 right small") Win - +modifier("ControlRight", "wide-1 right small") Ctrl + +key(1, `Key${key}`, "single") #{key} + +key(1, "Comma") <#[br], + +key(1, "Period") >#[br]. + +key(2, "Slash") ?#[br]/ + +modifier(0, "ShiftRight", "wide-3 right small") Shift + div(class="keypad-row") + +modifier(2, "ControlLeft", "wide-1 left small") Ctrl + +modifier(2, "MetaLeft", "wide-1 left small") Win + +modifier(2, "AltLeft", "wide-1 left small") Alt + +key(2, "Space", "wide-4") + +modifier(2, "AltRight", "wide-1 right small") Alt + +modifier(2, "MetaRight", "wide-1 right small") Win + +modifier(0, "ControlRight", "wide-1 right small") Ctrl div(class="keypad-block") div(class="keypad-row") - +modifier("PrintScreen", "small") Pt/Sq - +key("ScrollLock", "small") + +modifier(2, "PrintScreen", "small") Pt/Sq + +key(2, "ScrollLock", "small") +lamp("hid-keyboard-scroll-led") | #[br] ScrLk - +key("Pause", "small") P/Brk + +key(0, "Pause", "small") P/Brk hr div(class="keypad-row") - +key("Insert", "small") Ins - +key("Home", "small") Home - +key("PageUp", "small") PgUp + +key(2, "Insert", "small") Ins + +key(2, "Home", "small") Home + +key(0, "PageUp", "small") PgUp div(class="keypad-row") - +key("Delete", "small") Del - +key("End", "small") End - +key("PageDown", "small") PgDn + +key(2, "Delete", "small") Del + +key(2, "End", "small") End + +key(0, "PageDown", "small") PgDn div(class="keypad-row") div(class="keypad-row") - +empty_key() - +key("ArrowUp") ↑ - +empty_key() + +empty(1, "") + +key(2, "ArrowUp") ↑ + +empty(0, "") div(class="keypad-row") - +key("ArrowLeft") ← - +key("ArrowDown") ↓ - +key("ArrowRight") → + +key(2, "ArrowLeft") ← + +key(2, "ArrowDown") ↓ + +key(0, "ArrowRight") → div(class="keypad-block") div(class="keypad-row") - +empty_key() - +key("IntlYen", "small") Yen - +key("IntlBackslash", "small") N/US - +key("Power", "small") PWR + +empty(2, "small") + +key(2, "IntlYen", "small") Yen + +key(2, "IntlBackslash", "small") N/US + +key(0, "Power", "small") PWR hr div(class="keypad-row") - +key("NumLock", "small") + +key(2, "NumLock", "small") +lamp("hid-keyboard-num-led") | #[br] NmLk - +key("NumpadDivide") / - +key("NumpadMultiply") * - +key("NumpadSubtract") - - div(class="keypad-row") - +key("Numpad7", "small") 7#[br]Home - +key("Numpad8", "small") 8#[br]↑ - +key("Numpad9", "small") 9#[br]PgUp - +empty_key() - div(class="keypad-row") - +key("Numpad4", "small") 4#[br]← - +key("Numpad5", "small") 5#[br]#[br] - +key("Numpad6", "small") 6#[br]→ - +key("NumpadAdd") + - div(class="keypad-row") - +key("Numpad1", "small") 1#[br]End - +key("Numpad2", "small") 2#[br]↓ - +key("Numpad3", "small") 3#[br]PgDn - +empty_key() - div(class="keypad-row") - +key("Numpad0", "small") 0#[br]Ins - +empty_key() - +key("NumpadDecimal", "small") .#[br]Del - +key("NumpadEnter", "small") Ent + +key(2, "NumpadDivide") / + +key(2, "NumpadMultiply") * + +key(0, "NumpadSubtract") - + div(class="keypad-row") + +key(2, "Numpad7", "small") 7#[br]Home + +key(2, "Numpad8", "small") 8#[br]↑ + +key(2, "Numpad9", "small") 9#[br]PgUp + +empty(0, "") + div(class="keypad-row") + +key(2, "Numpad4", "small") 4#[br]← + +key(2, "Numpad5", "small") 5#[br]#[br] + +key(2, "Numpad6", "small") 6#[br]→ + +key(0, "NumpadAdd") + + div(class="keypad-row") + +key(2, "Numpad1", "small") 1#[br]End + +key(2, "Numpad2", "small") 2#[br]↓ + +key(2, "Numpad3", "small") 3#[br]PgDn + +empty(0, "") + div(class="keypad-row") + +key(2, "Numpad0", "small") 0#[br]Ins + +empty(2, "") + +key(2, "NumpadDecimal", "small") .#[br]Del + +key(0, "NumpadEnter", "small") Ent div(id="keyboard-mobile" class="keypad" align="center") div(class="keypad-block") div(class="keypad-row") - +key("Escape", "margin-0 small") Esc - +empty_key(1) - each key in ["F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12"] - +key(key, "wide-0 margin-0 small") #{key} - +empty_key(2) - +modifier("PrintScreen", "margin-0 small") Pt/Sq - +key("ScrollLock", "margin-0 small") + +key(1, "Escape", "small") Esc + +key(0, "F1", "wide-0 small rounded-left") F1 + +key(0, "F2", "wide-0 small rounded-none") F2 + +key(0, "F3", "wide-0 small rounded-none") F3 + +key(2, "F4", "wide-0 small rounded-right") F4 + +key(0, "F5", "wide-0 small rounded-left") F5 + +key(0, "F6", "wide-0 small rounded-none") F6 + +key(0, "F7", "wide-0 small rounded-none") F7 + +key(2, "F8", "wide-0 small rounded-right") F8 + +key(0, "F9", "wide-0 small rounded-left") F9 + +key(0, "F10", "wide-0 small rounded-none") F10 + +key(0, "F11", "wide-0 small rounded-none") F11 + +key(2, "F12", "wide-0 small rounded-right") F12 + +modifier(1, "PrintScreen", "small") Pt/Sq + +key(1, "ScrollLock", "small") +lamp("hid-keyboard-scroll-led") | #[br] ScrLk - +key("Pause", "margin-0 small") P/Brk - +key("Insert", "margin-0 small") Ins - +key("Home", "margin-0 small") Home - +key("End", "margin-0 small") End - +key("Delete", "margin-0 small") Del + +key(1, "Pause", "small") P/Brk + +key(1, "Insert", "small") Ins + +key(1, "Home", "small") Home + +key(1, "End", "small") End + +key(0, "Delete", "small") Del div(class="keypad-row") - +key("Backquote") ~#[br]` + +key(1, "Backquote") ~#[br]` each key, index in ["!", "@", "#", "$", "%", "^", "&", "*", "("] - +key(`Digit${index + 1}`) #{key}#[br]#{index + 1} - +key("Digit0") )#[br]0 - +key("Minus") _#[br]- - +key("Equal") +#[br]= - +key("Backspace", "wide-3 right", 101) ↤ + +key(1, `Digit${index + 1}`) #{key}#[br]#{index + 1} + +key(1, "Digit0") )#[br]0 + +key(1, "Minus") _#[br]- + +key(1, "Equal") +#[br]= + +key(0, "Backspace", "wide-2 right", 101) ↤ div(class="keypad-row") - +key("Tab", "wide-2 left") ⇤<br>⇥ + +key(1, "Tab", "wide-1 left") ⇤<br>⇥ each key in ["Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P"] - +key(`Key${key}`, "single") #{key} - +key("BracketLeft") {#[br][ - +key("BracketRight") }#[br]] - +key("Backslash", "wide-2 left", 78) |#[br]\ + +key(1, `Key${key}`, "single") #{key} + +key(1, "BracketLeft") {#[br][ + +key(1, "BracketRight") }#[br]] + +key(0, "Backslash", "wide-1 left", 78) |#[br]\ div(class="keypad-row") - +key("CapsLock", "wide-3 left small") + +key(1, "CapsLock", "wide-2 left small") +lamp("hid-keyboard-caps-led") | #[br] Caps Lock each key in ["A", "S", "D", "F", "G", "H", "J", "K", "L"] - +key(`Key${key}`, "single") #{key} - +key("Semicolon") :#[br]; - +key("Quote") `#[br]' - +key("Enter", "wide-4 right small", 116) Enter#[br]↵ + +key(1, `Key${key}`, "single") #{key} + +key(1, "Semicolon") :#[br]; + +key(1, "Quote") `#[br]' + +key(0, "Enter", "wide-3 right small", 116) Enter#[br]↵ div(class="keypad-row") - +modifier("ShiftLeft", "wide-4 left small") Shift + +modifier(1, "ShiftLeft", "wide-3 left small") Shift each key in ["Z", "X", "C", "V", "B", "N", "M"] - +key(`Key${key}`, "single") #{key} - +key("Comma") lt;#[br], - +key("Period") >#[br]. - +key("Slash") ?#[br]/ - +key("PageUp", "small") PgUp - +key("ArrowUp") ↑ - +key("PageDown", "small") PgDn - div(class="keypad-row") - +modifier("ControlLeft", "wide-1 left small") Ctrl - +modifier("MetaLeft", "wide-1 left small") Win - +modifier("AltLeft", "wide-1 left small") Alt - +key("Space", "", 190) - +modifier("AltRight", "right small") Alt - +modifier("MetaRight", "right small") Win - +modifier("ShiftRight", "right small") Shift - +modifier("ControlRight", "right small") Ctrl - +key("ArrowLeft") ← - +key("ArrowDown") ↓ - +key("ArrowRight") → + +key(1, `Key${key}`, "single") #{key} + +key(1, "Comma") <#[br], + +key(1, "Period") >#[br]. + +key(1, "Slash") ?#[br]/ + +key(2, "PageUp", "small") PgUp + +key(2, "ArrowUp") ↑ + +key(0, "PageDown", "small") PgDn + div(class="keypad-row") + +modifier(1, "ControlLeft", "wide-1 left small") Ctrl + +modifier(1, "MetaLeft", "wide-1 left small") Win + +modifier(1, "AltLeft", "wide-1 left small") Alt + +key(1, "Space", "", 190) + +modifier(1, "AltRight", "right small") Alt + +modifier(1, "MetaRight", "right small") Win + +modifier(1, "ShiftRight", "right small") Shift + +modifier(1, "ControlRight", "right small") Ctrl + +key(2, "ArrowLeft") ← + +key(2, "ArrowDown") ↓ + +key(0, "ArrowRight") → diff --git a/web/kvm/window-stream.pug b/web/kvm/window-stream.pug index ad88d8af..afafd765 100644 --- a/web/kvm/window-stream.pug +++ b/web/kvm/window-stream.pug @@ -21,17 +21,17 @@ div(id="stream-window" class="window window-resizable") div(id="stream-mouse-buttons" class="keypad" align="center") div(class="keypad-block") div(class="keypad-row") - div(data-code="left" class="key wide-4 left small") #[span Mouse#[br]Left] - div(data-code="left" class="modifier wide-2 left small") #[span #[b •]#[br]← Hold] - div(class="empty-key" style="width:10px") - div(data-code="middle" class="key wide-2 left small") #[span Mouse#[br]Middle] - div(data-code="middle" class="modifier wide-2 left small") #[span #[b •]#[br]← Hold] - div(class="empty-key" style="width:10px") - div(data-code="right" class="modifier wide-2 right small") #[span #[b •]#[br]Hold →] - div(data-code="right" class="key wide-4 right small") #[span Mouse#[br]Right] - div(class="keypad-row" style="display:none") - div(data-code="up" class="key wide-4 left small") #[span Mouse#[br]Up/Back] - div(data-code="up" class="modifier wide-2 left small") #[span #[b •]#[br]← Hold] - div(class="empty-key" style="width:10px") - div(data-code="down" class="modifier wide-2 right small") #[span #[b •]#[br]Hold →] - div(data-code="down" class="key wide-4 right small") #[span Mouse#[br]Down/Fw] + div(data-code="left" class="key wide-3 left rounded-left") + div(class="label") Left + div(data-code="left" class="modifier left small rounded-right") + div(class="label") #[b •]#[br]Hold + div(class="empty" style="width:15px") + div(data-code="middle" class="key wide-1 left rounded-left") + div(class="label") Mid + div(data-code="middle" class="modifier left small rounded-right") + div(class="label") #[b •]#[br]Hold + div(class="empty" style="width:15px") + div(data-code="right" class="modifier right small rounded-left") + div(class="label") #[b •]#[br]Hold + div(data-code="right" class="key wide-3 right rounded-right") + div(class="label") Right diff --git a/web/share/css/keypad.css b/web/share/css/keypad.css index 52a4afaf..61d56ada 100644 --- a/web/share/css/keypad.css +++ b/web/share/css/keypad.css @@ -33,6 +33,8 @@ div.keypad div.keypad-block:not(:first-child) { } div.keypad div.keypad-row { + display: flex; + flex-wrap: wrap; white-space: nowrap; height: 40px; margin-bottom: 5px; @@ -41,12 +43,18 @@ div.keypad div.keypad-row:last-child { margin-bottom: 0; } +div.keypad div.keypad-row div.spacer { + margin: 2px; + flex-grow: 1; +} +div.keypad div.keypad-row div.spacer-fixed { + margin: 3px; +} + div.keypad div.key, div.keypad div.modifier, -div.keypad div.empty-key { +div.keypad div.empty { box-sizing: border-box; - display: inline-block; - margin-right: 5px; padding: 0; width: 40px; } @@ -68,6 +76,15 @@ div.keypad div.modifier:hover { color: var(--cs-key-hovered-fg); background-color: var(--cs-key-hovered-bg); } +div.keypad div.rounded-left { + border-radius: 6px 0px 0px 6px !important; +} +div.keypad div.rounded-right { + border-radius: 0px 6px 6px 0px !important; +} +div.keypad div.rounded-none { + border-radius: 0px !important; +} div.keypad div.pressed { box-shadow: none; color: var(--cs-key-pressed-fg) !important; @@ -79,29 +96,24 @@ div.keypad div.holded { background-color: var(--cs-key-holded-bg) !important; } div.keypad div.key:last-child, -div.keypad div.empty-key:last-child, +div.keypad div.empty:last-child, div.keypad div.modifier:last-child { margin-right: 0; } -div.keypad div.margin-0 { - margin-right: 0px; -} div.keypad div.wide-0 { - width: 26px; + width: 28px; } div.keypad div.wide-1 { width: 61px; } div.keypad div.wide-2 { - width: 64px; -} -div.keypad div.wide-3 { width: 77px; } -div.keypad div.wide-4 { +div.keypad div.wide-3 { width: 102px; } -div.keypad div.wide-5 { +div.keypad div.wide-4 { + flex-grow: 1; width: 288px; } div.keypad div.left { |