aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES8
-rw-r--r--Makefile2
-rw-r--r--marsond.844
-rw-r--r--marsond.rst40
-rw-r--r--ver.rst2
5 files changed, 71 insertions, 25 deletions
diff --git a/CHANGES b/CHANGES
index 3e10eb3..3b6d75a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,14 @@
This just lists the user-visible changes. The real change log is the
git log, q.v.
+20260105 bkw: 0.4.0 release. Changes since 0.3.0:
+
+- The Shift/Enter annoyance (Shift key acts stuck) has been fixed. I
+ thought this was a hardware problem with my keyboard, but it turns
+ out to happen with any keyboard I connect to the Marson.
+- Debug output (-v) now shows the /dev/input/* device node for the
+ virtual keyboard.
+
20250511 bkw: 0.3.0 release. Changes since 0.2.0:
- New -p option (startup delay).
diff --git a/Makefile b/Makefile
index a3858ba..a396167 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@
### Project information.
PROJ=marsond
-VERSION=0.3.0
+VERSION=0.4.0
### Compile-time option.
diff --git a/marsond.8 b/marsond.8
index 943571d..a5c8db1 100644
--- a/marsond.8
+++ b/marsond.8
@@ -27,18 +27,27 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "MARSOND" 8 "2025-05-12" "0.3.0" "Urchlay's Stuff"
+.TH "MARSOND" 8 "2026-01-05" "0.4.0" "Urchlay's Stuff"
.SH NAME
marsond \- Fix Enter key timing on Marson/USBLink/MT606-1 PS/2-USB adaptors
.SH SYNOPSIS
.sp
-marsond [\fB\-d\fP \fIdelay\-ms*\fP] [\fB\-f\fP] [\fB\-k\fP \fIkeyboard\-device\fP] [\fB\-p\fP \fIpause_ms\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\-p\fP \fIpause_ms\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.
+\fBmarsond\fP fixes two issues with a particular model of PS/2 => USB
+keyboard adaptor. The symptoms:
+.INDENT 0.0
+.IP \(bu 2
+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.
+.IP \(bu 2
+In normal use, pressing and releasing the right Shift key and Enter
+key simultaneously causes the shift key to get "stuck" and act like
+it\(aqs still being held down.
+.UNINDENT
+.sp
See the \fBNOTES\fP section for full details.
.sp
For normal use, \fBmarsond\fP will be started by a \fBudev\fP(7) rule
@@ -140,12 +149,18 @@ you won\(aqt have to set this.
.SH NOTES
.SS Hardware
.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.
+The Enter key dropped keystroke 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 problem where Shift/Enter causes the Shift key to act "stuck"
+happens in any application. It\(aqs particularly annoying because I\(aqm an
+inaccurate typist, and I hit Shift+Enter about 5% of the time when I\(aqm
+just trying to press Enter.
.sp
-The specific hardware that has the Enter key problem for me is USB
+The specific hardware that has the problems 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:
@@ -198,6 +213,11 @@ the real keyboard to the virtual one. When it sees the key release
event for the Enter key, it simply pauses for a few milliseconds
before delivering it.
.sp
+It also keeps track of whether the last keypress was the right Shift
+key, and when it sees an Enter keypress while right Shift is held
+down, it sends a right Shift key release event before the Enter press
+event.
+.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). It should also work with Wayland, though I don\(aqt use Wayland,
@@ -231,7 +251,7 @@ device called "marson virtual keyboard", listed as a keyboard.
Only one MT\-606\-1 device is supported, out of the box. This shouldn\(aqt
really be a problem (do you really need 2 keyboards?) but it\(aqs worth
mentioning. If you really do own two of these adaptors and want to use
-them on the same PC, you could add a second udev rule (with \-k option
+them on the same PC, you could add a second udev rule (with \fB\-k\fP option
for the daemon).
.sp
This isn\(aqt really a \fBmarsond\fP problem per se, but when Xorg detects
diff --git a/marsond.rst b/marsond.rst
index c21554f..ad41577 100644
--- a/marsond.rst
+++ b/marsond.rst
@@ -18,15 +18,22 @@ Fix Enter key timing on Marson/USBLink/MT606-1 PS/2-USB adaptors
SYNOPSIS
========
-marsond [**-d** *delay-ms**] [**-f**] [**-k** *keyboard-device*] [**-p** *pause_ms* [**-v**] | [**--help**] | [**--version**] | [**-V**]
+marsond [**-d** *delay-ms*] [**-f**] [**-k** *keyboard-device*] [**-p** *pause_ms* [**-v**] | [**--help**] | [**--version**] | [**-V**]
DESCRIPTION
===========
-**marsond** 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.
+**marsond** fixes two issues with a particular model of PS/2 => USB
+keyboard adaptor. The symptoms:
+
+- 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.
+
+- In normal use, pressing and releasing the right Shift key and Enter
+ key simultaneously causes the shift key to get "stuck" and act like
+ it's still being held down.
+
See the **NOTES** section for full details.
For normal use, **marsond** will be started by a **udev**\(7) rule
@@ -109,12 +116,18 @@ NOTES
Hardware
--------
-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.
+The Enter key dropped keystroke 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.
-The specific hardware that has the Enter key problem for me is USB
+The problem where Shift/Enter causes the Shift key to act "stuck"
+happens in any application. It's particularly annoying because I'm an
+inaccurate typist, and I hit Shift+Enter about 5% of the time when I'm
+just trying to press Enter.
+
+The specific hardware that has the problems 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:
@@ -150,6 +163,11 @@ the real keyboard to the virtual one. When it sees the key release
event for the Enter key, it simply pauses for a few milliseconds
before delivering it.
+It also keeps track of whether the last keypress was the right Shift
+key, and when it sees an Enter keypress while right Shift is held
+down, it sends a right Shift key release event before the Enter press
+event.
+
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). It should also work with Wayland, though I don't use Wayland,
@@ -187,7 +205,7 @@ LIMITATIONS
Only one MT-606-1 device is supported, out of the box. This shouldn't
really be a problem (do you really need 2 keyboards?) but it's worth
mentioning. If you really do own two of these adaptors and want to use
-them on the same PC, you could add a second udev rule (with -k option
+them on the same PC, you could add a second udev rule (with **-k** option
for the daemon).
This isn't really a **marsond** problem per se, but when Xorg detects
diff --git a/ver.rst b/ver.rst
index 443bbb2..3d23af2 100644
--- a/ver.rst
+++ b/ver.rst
@@ -1 +1 @@
-.. |version| replace:: 0.3.0
+.. |version| replace:: 0.4.0