diff --git a/web/kvm/index.html b/web/kvm/index.html
index 2223c8ef..f91dc9ad 100644
--- a/web/kvm/index.html
+++ b/web/kvm/index.html
@@ -206,6 +206,16 @@
+
+
diff --git a/web/kvm/navbar-system.pug b/web/kvm/navbar-system.pug
index 0cc1af00..7548852f 100644
--- a/web/kvm/navbar-system.pug
+++ b/web/kvm/navbar-system.pug
@@ -55,6 +55,8 @@ li(class="right")
hr
+menu_switch("hid-connect-switch", "Connect HID to Server", true, true)
hr
+ +menu_switch("hid-mute-switch", "Mute HID input events", true, false)
+ hr
div(id="v3-usb-breaker" class="feature-disabled")
table(class="kv")
td Connect main USB to Server:
diff --git a/web/share/js/kvm/keyboard.js b/web/share/js/kvm/keyboard.js
index d9241ae3..1ec6b492 100644
--- a/web/share/js/kvm/keyboard.js
+++ b/web/share/js/kvm/keyboard.js
@@ -149,7 +149,7 @@ export function Keyboard(record_callback) {
"event_type": "key",
"event": {"key": code, "state": state},
};
- if (__ws) {
+ if (__ws && !$("hid-mute-switch").checked) {
__ws.send(JSON.stringify(event));
}
__record_callback(event);
diff --git a/web/share/js/kvm/mouse.js b/web/share/js/kvm/mouse.js
index dbdbdc44..3199745b 100644
--- a/web/share/js/kvm/mouse.js
+++ b/web/share/js/kvm/mouse.js
@@ -301,7 +301,7 @@ export function Mouse(get_resolution_callback, record_callback) {
var __sendEvent = function(event_type, event) {
event = {"event_type": event_type, "event": event};
- if (__ws) {
+ if (__ws && !$("hid-mute-switch").checked) {
__ws.send(JSON.stringify(event));
}
__record_callback(event);