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,47 +1,51 @@
li(id="shortcuts-dropdown" class="right")
a(class="menu-button" href="#" i18n="kvm_text56") Shortcuts
div(id="shortcuts-menu" class="menu")
div(class="text")
li.right#shortcuts-dropdown
a.menu-button(href="#" i18n="kvm_text56") Shortcuts
.menu#shortcuts-menu
.text
b(i18n="kvm_text57") Quick keyboard shortcuts#[br]
sub(i18n="kvm_text58") Also see #[i System → Show keyboard]
hr
div(class="buttons")
div(class="buttons-row")
button(data-force-hide-menu data-shortcut="CapsLock" class="row50")
.buttons
.buttons-row
button.row50(data-force-hide-menu data-shortcut="CapsLock")
| • Caps Lock  
img(class="inline-lamp-small hid-keyboard-caps-led led-gray" src=`${svg_dir}/led-square.svg`)
button(data-force-hide-menu data-shortcut="MetaLeft" class="row50") • Left Win
img.inline-lamp-small.hid-keyboard-caps-led.led-gray(src=`${svg_dir}/led-square.svg`)
button.row50(data-force-hide-menu data-shortcut="MetaLeft") • Left Win
hr
div(class="buttons-row")
button(data-force-hide-menu data-shortcut="AltLeft ShiftLeft" class="row50") • Alt+Shift
button(data-force-hide-menu data-shortcut="ControlLeft KeyW" class="row50") • Ctrl+W
div(class="buttons-row")
button(data-force-hide-menu data-shortcut="ControlLeft ShiftLeft" class="row50") • Ctrl+Shift
button(data-force-hide-menu data-shortcut="AltLeft Tab" class="row50") • Alt+Tab
div(class="buttons-row")
button(data-force-hide-menu data-shortcut="ShiftLeft ShiftRight" class="row50") • Shift+Shift
button(data-force-hide-menu data-shortcut="AltLeft Enter" class="row50") • Alt+Enter
div(class="buttons-row")
button(data-force-hide-menu data-shortcut="MetaLeft Space" class="row50") • Win+Space
button(data-force-hide-menu data-shortcut="AltLeft F4" class="row50") • Alt+F4
.buttons-row
button.row50(data-force-hide-menu data-shortcut="AltLeft ShiftLeft") • Alt+Shift
button.row50(data-force-hide-menu data-shortcut="ControlLeft KeyW") • Ctrl+W
.buttons-row
button.row50(data-force-hide-menu data-shortcut="ControlLeft ShiftLeft") • Ctrl+Shift
button.row50(data-force-hide-menu data-shortcut="AltLeft Tab") • Alt+Tab
.buttons-row
button.row50(data-force-hide-menu data-shortcut="ShiftLeft ShiftRight") • Shift+Shift
button.row50(data-force-hide-menu data-shortcut="AltLeft Enter") • Alt+Enter
.buttons-row
button.row50(data-force-hide-menu data-shortcut="MetaLeft Space") • Win+Space
button.row50(data-force-hide-menu data-shortcut="AltLeft F4") • Alt+F4
hr
div(class="buttons-row")
button(data-force-hide-menu data-shortcut="ControlLeft AltLeft F1" class="row50") • Ctrl+Alt+F1
button(data-force-hide-menu data-shortcut="MetaLeft KeyL" class="row50") • Win+L
div(class="buttons-row")
button(data-force-hide-menu data-shortcut="ControlLeft AltLeft F2" class="row50") • Ctrl+Alt+F2
button(data-force-hide-menu data-shortcut="PrintScreen" class="row50") • Print Screen
.buttons-row
button.row50(data-force-hide-menu data-shortcut="ControlLeft AltLeft F1") • Ctrl+Alt+F1
button.row50(data-force-hide-menu data-shortcut="MetaLeft KeyL") • Win+L
.buttons-row
button.row50(data-force-hide-menu data-shortcut="ControlLeft AltLeft F2") • Ctrl+Alt+F2
button.row50(data-force-hide-menu data-shortcut="PrintScreen") • Print Screen
hr
div(class="buttons-row")
button(data-force-hide-menu data-shortcut="ControlLeft AltLeft Delete" class="row50") • Ctrl+Alt+Del
button(data-force-hide-menu data-shortcut="Power" class="row50") • Power
.buttons-row
button.row50(data-force-hide-menu data-shortcut="ControlLeft AltLeft Delete") • Ctrl+Alt+Del
button.row50(data-force-hide-menu data-shortcut="Power") • Power
hr
div(class="text")
.text
| &darr; &bull; Alt+SysRq+... <sup><i>linux magic
| #[a(target="_blank" href="https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html" i18n="kvm_text59") help]</i></sup>
hr
div(class="buttons")
div(class="buttons-row")
.buttons
.buttons-row
-
let sysrq = {
"F": "Call the OOM killer to kill a memory hog process",
@@ -50,9 +54,14 @@ li(id="shortcuts-dropdown" class="right")
"T": "Dump a list of current tasks and their information to the console",
}
each title, key in sysrq
button(data-shortcut=`AltLeft PrintScreen Key${key}` data-shortcut-confirm="hid-sysrq-ask-switch" class="row25" style="text-align: center;" title=`${title}`) #{key}
button.row25(
data-shortcut=`AltLeft PrintScreen Key${key}`
data-shortcut-confirm="hid-sysrq-ask-switch"
style="text-align: center"
title=`${title}`
) #{key}
hr
div(class="buttons-row")
.buttons-row
-
sysrq = {
"R": "Turn off keyboard raw mode, set it to XLATE",
@@ -63,6 +72,11 @@ li(id="shortcuts-dropdown" class="right")
"B": "Immediately reboot the system without syncing or unmounting disks",
}
each title, key in sysrq
button(data-shortcut=`AltLeft PrintScreen Key${key}` data-shortcut-confirm="hid-sysrq-ask-switch" class="row16" style="text-align: center;" title=`${title}`) #{key}
button.row16(
data-shortcut=`AltLeft PrintScreen Key${key}`
data-shortcut-confirm="hid-sysrq-ask-switch"
style="text-align: center"
title=`${title}`
) #{key}
hr
+menu_switch("hid-sysrq-ask-switch", "Ask the magic confirmation", true, true,"hid-sysrq-ask-switch")
+menu_switch_table("hid-sysrq-ask-switch", "Ask the magic confirmation", true, true,"hid-sysrq-ask-switch")