feat: merge upstream master - version 4.94

Merge upstream PiKVM master branch updates:

- Bump version from 4.93 to 4.94
- HID: improved jiggler pattern for better compatibility
- Streamer: major refactoring for improved performance and maintainability
- Prometheus: tidying GPIO channel name formatting
- Web: added __gpio-label class for custom styling
- HID: customizable /api/hid/print delay configuration
- ATX: independent power/reset regions for better control
- OLED: added --fill option for display testing
- Web: improved keyboard handling in modal dialogs
- Web: enhanced login error messages
- Switch: added heartbeat functionality
- Web: mouse touch code simplification and refactoring
- Configs: use systemd-networkd-wait-online --any by default
- PKGBUILD: use cp -r to install systemd units properly
- Various bug fixes and performance improvements
This commit is contained in:
mofeng-git
2025-08-21 11:21:41 +08:00
205 changed files with 9359 additions and 4653 deletions

View File

@@ -1,52 +1,46 @@
li(id="text-dropdown" class="right")
a(class="menu-button" href="#")
li.right#text-dropdown
a.menu-button(href="#")
+navbar_led("stream-ocr-led", "led-gear", "feature-disabled")
span(i18n="kvm_text44") Text
div(id="text-menu" class="menu")
div(class="text")
.menu#text-menu(style="width: 360px")
.text
b(i18n="kvm_text45") Paste text as keypress sequence#[br]
sub(i18n="kvm_text46") Please note that PiKVM cannot switch the keyboard layout
hr
div(class="text" style="margin-right: 20px")
textarea(id="hid-pak-text" data-focus placeholder="Enter your text here")
table(class="kv")
.text(style="margin-right: 20px")
textarea#hid-pak-text(data-focus placeholder="Enter your text here")
table.kv
tr
td
button(disabled data-force-hide-menu id="hid-pak-button" i18n="kvm_text47") • Paste
button#hid-pak-button(disabled data-force-hide-menu title="Ctrl+Enter when the text is focused" i18n="kvm_text47") • Paste
td(i18n="kvm_text48") using host keymap
td
select(id="hid-pak-keymap-selector")
table(class="kv")
td #[select#hid-pak-keymap-selector]
table.kv
tr
+menu_switch_notable("hid-pak-slow-switch", "Slow typing", true, false)
+menu_slider_td3("hid-pak-delay-slider", "hid-pak-delay-value", true, false, "hid-pak-slow-switch") Delay between keys:
tr
+menu_switch_notable("hid-pak-secure-switch", "Hide input text", true, false)
+menu_switch_td2("hid-pak-secure-switch", true, false, "hid-pak-secure-switch") Hide input text:
tr
+menu_switch_notable("hid-pak-slow-switch", "Slow typing", true, false, "hid-pak-slow-switch")
tr
+menu_switch_notable("hid-pak-secure-switch", "Hide input text", true, false, "hid-pak-secure-switch")
tr
+menu_switch_notable("hid-pak-ask-switch", "Ask paste confirmation", true, true, "hid-pak-ask-switch")
div(id="stream-ocr" class="feature-disabled")
+menu_switch_td2("hid-pak-ask-switch", true, true, "hid-pak-ask-switch") Ask paste confirmation:
.feature-disabled#stream-ocr
hr
br
hr
div(class="text")
.text
b(i18n="kvm_text49") Text recognition <sup><i>&beta;</i></sup>#[br]
sub(i18n="kvm_text50") #[a(target="_blank" href="https://docs.pikvm.org/ocr") OCR] works locally on PiKVM
hr
table(class="kv")
table.kv
tr
td
button(data-force-hide-menu id="stream-ocr-button" i18n="kvm_text51") &bull; Select area
td #[button#stream-ocr-button(data-force-hide-menu i18n="kvm_text51") &bull; Select area]
td(i18n="kvm_text52") for
td
select(id="stream-ocr-lang-selector")
td #[select#stream-ocr-lang-selector]
td(i18n="kvm_text53") text recognition
table(class="kv")
table.kv
tr
td(colspan="4" i18n="kvm_text54") &bull; Press #[b Enter] to recognize and copy text to clipboard
td(colspan="4" i18n="kvm_text54") &bull; Next hit the #[b Enter] to recognize and copy text to clipboard...
tr
td(colspan="4" i18n="kvm_text55") &bull; Press #[b Esc] to cancel selection
td(colspan="4" i18n="kvm_text55") &bull; Or hit the #[b Escape] to cancel a selection
tr
td