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,30 +1,31 @@
li(id="macro-dropdown" class="right")
a(class="menu-button" href="#")
li.right#macro-dropdown
a.menu-button(href="#")
+navbar_led("hid-recorder-led", "led-gear")
span(i18n="kvm_text32") Macro
div(class="menu")
div(class="text")
.menu
.text
b(i18n="kvm_text33") Record and play HID/ATX/GPIO actions#[br]
sub(i18n="kvm_text34") For security reasons, the record will not be saved on the PiKVM
hr
div(class="buttons buttons-row")
button(disabled data-force-hide-menu id="hid-recorder-record" class="row25" i18n="kvm_text35") • Rec
button(disabled id="hid-recorder-stop" class="row25" i18n="kvm_text36") Stop
button(disabled id="hid-recorder-play" class="row25" i18n="kvm_text37") Play
button(disabled id="hid-recorder-clear" class="row25" i18n="kvm_text38") Clear
.buttons.buttons-row
button.row25#hid-recorder-record(disabled data-force-hide-menu i18n="kvm_text35") • Rec
button.row25#hid-recorder-stop(disabled i18n="kvm_text36") Stop
button.row25#hid-recorder-play(disabled i18n="kvm_text37") Play
button.row25#hid-recorder-clear(disabled i18n="kvm_text38") Clear
hr
table(class="kv")
table.kv
tr
td(i18n="kvm_text39") Script time:
td(colspan="2" id="hid-recorder-time" class="value") 00:00:00.0
td.value#hid-recorder-time(colspan="2") 00:00:00.0
tr
td(i18n="kvm_text40") Scripted events:
td(id="hid-recorder-events-count" class="value") 0
tdvalue#hid-recorder-events-count 0
td #[sup #[i(i18n="kvm_text41") include delays]]
hr
+menu_switch("hid-recorder-loop-switch", "Infinite loop playback", false, false, "hid-recorder-loop-switch")
+menu_switch_table("hid-recorder-loop-switch", "Infinite loop playback", false, false, "hid-recorder-loop-switch")
hr
input(type="file" id="hid-recorder-new-script-file")
div(class="buttons buttons-row")
button(disabled id="hid-recorder-upload" class="row50" i18n="kvm_text42") Upload script
button(disabled id="hid-recorder-download" class="row50" i18n="kvm_text43") Download script
input#hid-recorder-new-script-file(type="file" style="display: none")
.buttons.buttons-row
button.row50#hid-recorder-upload(disabled i18n="kvm_text42") Upload script
button.row50#hid-recorder-download(disabled i18n="kvm_text43") Download script