Revert "Move hold key handling into Go backend analogous to https://www.kernel.org/doc/Documentation/usb/gadget_hid.txt"

This reverts commit 146cee9309.
This commit is contained in:
Daniel Lorch 2025-05-20 01:09:15 +02:00
parent 7240abaf3d
commit a4c15d5c7e
5 changed files with 12 additions and 20 deletions

View File

@ -74,7 +74,7 @@ func (u *UsbGadget) keyboardWriteHidFile(data []byte) error {
return nil return nil
} }
func (u *UsbGadget) KeyboardReport(modifier uint8, keys []uint8, hold bool) error { func (u *UsbGadget) KeyboardReport(modifier uint8, keys []uint8) error {
u.keyboardLock.Lock() u.keyboardLock.Lock()
defer u.keyboardLock.Unlock() defer u.keyboardLock.Unlock()
@ -90,13 +90,6 @@ func (u *UsbGadget) KeyboardReport(modifier uint8, keys []uint8, hold bool) erro
return err return err
} }
if !hold {
err := u.keyboardWriteHidFile(make([]uint8, 8))
if err != nil {
return err
}
}
u.resetUserInputTime() u.resetUserInputTime()
return nil return nil
} }

View File

@ -992,7 +992,7 @@ var rpcHandlers = map[string]RPCHandler{
"getNetworkSettings": {Func: rpcGetNetworkSettings}, "getNetworkSettings": {Func: rpcGetNetworkSettings},
"setNetworkSettings": {Func: rpcSetNetworkSettings, Params: []string{"settings"}}, "setNetworkSettings": {Func: rpcSetNetworkSettings, Params: []string{"settings"}},
"renewDHCPLease": {Func: rpcRenewDHCPLease}, "renewDHCPLease": {Func: rpcRenewDHCPLease},
"keyboardReport": {Func: rpcKeyboardReport, Params: []string{"modifier", "keys", "hold"}}, "keyboardReport": {Func: rpcKeyboardReport, Params: []string{"modifier", "keys"}},
"absMouseReport": {Func: rpcAbsMouseReport, Params: []string{"x", "y", "buttons"}}, "absMouseReport": {Func: rpcAbsMouseReport, Params: []string{"x", "y", "buttons"}},
"relMouseReport": {Func: rpcRelMouseReport, Params: []string{"dx", "dy", "buttons"}}, "relMouseReport": {Func: rpcRelMouseReport, Params: []string{"dx", "dy", "buttons"}},
"wheelReport": {Func: rpcWheelReport, Params: []string{"wheelY"}}, "wheelReport": {Func: rpcWheelReport, Params: []string{"wheelY"}},

View File

@ -13,8 +13,8 @@ import { keys, modifiers } from "@/keyboardMappings";
import { layouts, chars } from "@/keyboardLayouts"; import { layouts, chars } from "@/keyboardLayouts";
import notifications from "@/notifications"; import notifications from "@/notifications";
const hidKeyboardPayload = (keys: number[], modifier: number, hold: boolean) => { const hidKeyboardPayload = (keys: number[], modifier: number) => {
return { keys, modifier, hold }; return { keys, modifier };
}; };
const modifierCode = (shift?: boolean, altRight?: boolean) => { const modifierCode = (shift?: boolean, altRight?: boolean) => {
@ -82,10 +82,13 @@ export default function PasteModal() {
await new Promise<void>((resolve, reject) => { await new Promise<void>((resolve, reject) => {
send( send(
"keyboardReport", "keyboardReport",
hidKeyboardPayload([kei], modz[index], false), hidKeyboardPayload([kei], modz[index]),
params => { params => {
if ("error" in params) return reject(params.error);
send("keyboardReport", hidKeyboardPayload([], 0), params => {
if ("error" in params) return reject(params.error); if ("error" in params) return reject(params.error);
resolve(); resolve();
});
}, },
); );
}); });

View File

@ -4,10 +4,6 @@ import { useHidStore, useRTCStore } from "@/hooks/stores";
import { useJsonRpc } from "@/hooks/useJsonRpc"; import { useJsonRpc } from "@/hooks/useJsonRpc";
import { keys, modifiers } from "@/keyboardMappings"; import { keys, modifiers } from "@/keyboardMappings";
const hidKeyboardPayload = (keys: number[], modifier: number, hold: boolean) => {
return { keys, modifier, hold };
};
export default function useKeyboard() { export default function useKeyboard() {
const [send] = useJsonRpc(); const [send] = useJsonRpc();
@ -21,7 +17,7 @@ export default function useKeyboard() {
if (rpcDataChannel?.readyState !== "open") return; if (rpcDataChannel?.readyState !== "open") return;
const accModifier = modifiers.reduce((acc, val) => acc + val, 0); const accModifier = modifiers.reduce((acc, val) => acc + val, 0);
send("keyboardReport", hidKeyboardPayload(keys, accModifier, true)); send("keyboardReport", { keys, modifier: accModifier });
// We do this for the info bar to display the currently pressed keys for the user // We do this for the info bar to display the currently pressed keys for the user
updateActiveKeysAndModifiers({ keys: keys, modifiers: modifiers }); updateActiveKeysAndModifiers({ keys: keys, modifiers: modifiers });

4
usb.go
View File

@ -26,8 +26,8 @@ func initUsbGadget() {
}() }()
} }
func rpcKeyboardReport(modifier uint8, keys []uint8, hold bool) error { func rpcKeyboardReport(modifier uint8, keys []uint8) error {
return gadget.KeyboardReport(modifier, keys, hold) return gadget.KeyboardReport(modifier, keys)
} }
func rpcAbsMouseReport(x, y int, buttons uint8) error { func rpcAbsMouseReport(x, y int, buttons uint8) error {