From df054a1821264dfd339afac61656c6a2261fafbf Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 6 May 2025 07:18:21 -0400 Subject: much work (run as a daemon, drop priviliges, set priority, etc). --- marsond.1 | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 95 insertions(+), 21 deletions(-) (limited to 'marsond.1') diff --git a/marsond.1 b/marsond.1 index 6bb016b..667e38f 100644 --- a/marsond.1 +++ b/marsond.1 @@ -29,42 +29,109 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .TH "MARSOND" 1 "2025-05-06" "0.1" "SlackBuilds.org" .SH NAME -marsond \- Fix Enter key on Marson/USBLinux/MT606-1 adaptors +marsond \- Fix Enter key timing on Marson/USBLinux/MT606-1 PS/2-USB adaptors .SH SYNOPSIS .sp -marsond [\fB\-d\fP \fIdelay\-ms*\fP] [\fB\-k\fP \fIkeyboard\-device\fP] [\fB\-v\fP] | [\fB\-\-help\fP] | [\fB\-\-version\fP] | [\fB\-V\fP] +marsond [\fB\-d\fP \fIdelay\-ms*\fP] [\fB\-f\fP] [\fB\-k\fP \fIkeyboard\-device\fP] [\fB\-v\fP] | [\fB\-\-help\fP] | [\fB\-\-version\fP] | [\fB\-V\fP] .SH DESCRIPTION +.sp +\fBmarsond\fP fixes an issue with a particular model of PS/2 => USB +keyboard adaptor. The symptom: in games and emulators, the Enter key +only works sometimes. This is caused by the firmware in the adaptor +sending the keypress and release events only 8 milliseconds apart. +.sp +The problem happens with any SDL application (SDL1 or SDL2), as well +as other graphics libraries. It happens regardless of what PS/2 +keyboard you have plugged in, what computer you have the adaptor +plugged into, or what OS that computer is running. +.sp +The specific hardware that has the Enter key problem for me is USB +vendor ID 04b4, product ID 0101, "Marson Keyboard and Mouse Link +Ver:ps2120L". It has a label on the front that says "USBLink", and on +the back, the model number is "MT606\-1". It looks like: +.INDENT 0.0 +.INDENT 3.5 +\fI\%https://slackware.uk/~urchlay/sdl\-usblink\-hack/marson\-front.jpg\fP +.sp +\fI\%https://slackware.uk/~urchlay/sdl\-usblink\-hack/marson\-back.jpg\fP +.UNINDENT +.UNINDENT +.sp +I\(aqm not sure if any other USB keyboard adaptors are affected. If you +have the problem on some other adaptor, and \fBmarsond\fP fixes it, +please contact me so I can add the model number to this man page. +.sp +\fBmarsond\fP uses the Linux kernel\(aqs \fBuinput\fP layer to "grab" the +keyboard, create a new virtual keyboard device, and pass events from +the real keyboard to the virtual one. When it see the key release +event for the Enter key, it simply pauses for a few milliseconds +before delivering it. +.sp +This should work with everything that uses the keyboard. It definitely +does, with SDL 1 and 2 running under X (and SDL 1 on the console, +too). I don\(aqt use Wayland, so I haven\(aqt tested it there. If you do, +please contact me and let me know if it works for you. .SH OPTIONS +.sp +Options can be "bundled": \fB\-vf\fP is the same as \fB\-v\fP \fB\-f\fP\&. .INDENT 0.0 .TP .BI \-d \ delay\-ms Amount of time in milliseconds to delay the Enter key release events. Default: 30. +.UNINDENT +.\" delay time for Enter key relase (default 30). +. +.INDENT 0.0 +.TP +.B \-f +Run in the foreground; do not detach from the terminal or become a +daemon. In this mode, \fBmarsond\fP can be killed with \fI^C\fP\&. +.UNINDENT +.\" run in foreground, not as a daemon. +. +.INDENT 0.0 .TP .BI \-k \ keyboard\-device Input device for the keyboard adaptor. Default: /dev/input/by\-id/usb\-Marson_Marson_Keyboard_and_Mouse_Link_Ver:ps2120L\-event\-kbd +.UNINDENT +.\" keyboard device (usually under /dev/input/by-id/). +. +.INDENT 0.0 .TP .B \-v -Verbose debugging mode. Prints copious trace information to \fBstderr\fP, and -does not run in the background. +Verbose debugging mode. Prints copious trace information to \fBstderr\fP\&. +Debugging mode is turned off when \fBmarsond\fP forks itself into the +background as a daemon. If you want to debug the event loop, combine +\fB\-v\fP and \fB\-f\fP\&. +.UNINDENT +.\" verbose debugging, foreground operation. +. +.INDENT 0.0 .TP -.B \-H\fP,\fB \-\-help +.B \-h\fP,\fB \-\-help Shows built\-in usage message and exits. +.UNINDENT +.\" this help text. +. +.INDENT 0.0 .TP .B \-V\fP,\fB \-\-version Shows version number and exits. .UNINDENT -.\" other sections we might want, uncomment as needed. -. -.\" FILES -. -.\" ===== -. -.\" ENVIRONMENT -. -.\" =========== +.\" show version number. . +.SH ENVIRONMENT +.INDENT 0.0 +.TP +.B MARSOND_USER +After initialization, \fBmarsond\fP will drop privileges by +setting its user ID to this user\(aqs. Default: \fInobody\fP +.TP +.B MARSOND_GROUP +Group to run as, after dropping privileges. Default: \fInogroup\fP +.UNINDENT .\" EXIT STATUS . .\" =========== @@ -79,15 +146,22 @@ Shows version number and exits. . .SH COPYRIGHT .sp -See the file /usr/doc/PRGNAM\-0.1/COPYING for license information. +WTFPL. Short version: do WTF you want. Full version: +.INDENT 0.0 +.INDENT 3.5 +\fI\%http://www.wtfpl.net/txt/copying/\fP +.UNINDENT +.UNINDENT .SH AUTHORS -.sp -PRGNAM was written by WHOEVER. -.sp -This man page written for the SlackBuilds.org project -by B. Watson, and is licensed under the WTFPL. +.INDENT 0.0 +.IP B. 3 +Watson <\fI\%urchlay@slackware.uk\fP> +.UNINDENT .SH SEE ALSO .sp -The PRGNAM homepage: \fI\%http://www.PRGNAM.org/\fP +The homepage: \fI\%https://slackware.uk/~urchlay/repos/marsond\fP +.sp +Another solution to the problem, less complete, but should be portable +to non\-Linux OSes: \fI\%https://slackware.uk/~urchlay/sdl\-usblink\-hack/\fP .\" Generated by docutils manpage writer. . -- cgit v1.2.3