aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--marsond.814
-rw-r--r--marsond.c9
-rw-r--r--marsond.rst12
-rw-r--r--usage.c1
5 files changed, 32 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index cf5f5fc..edc2a9c 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@
### Project information.
PROJ=marsond
-VERSION=0.2.0
+VERSION=0.3.0
### Compiler and options.
CC=gcc
diff --git a/marsond.8 b/marsond.8
index 26694cd..be63471 100644
--- a/marsond.8
+++ b/marsond.8
@@ -27,12 +27,12 @@ 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-07" "0.2.0" "Urchlay's Stuff"
+.TH "MARSOND" 8 "2025-05-07" "0.3.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\-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
@@ -121,6 +121,16 @@ Input device for the keyboard adaptor. Default:
.
.INDENT 0.0
.TP
+.BI \-p \ pause\-ms
+Amount of time in milliseconds to pause at startup, before opening the
+keyboard and uinput devices. May be useful on slow systems, if
+\fBmarsond\fP won\(aqt consistently start from udev, but works fine
+if started manually. Default: 0.
+.UNINDENT
+.\" pause before opening keyboard/uinput devs (default 0).
+.
+.INDENT 0.0
+.TP
.B \-v
Verbose debugging mode. Prints copious trace information to \fBstderr\fP\&.
Debugging mode is turned off when \fBmarsond\fP forks itself into the
diff --git a/marsond.c b/marsond.c
index 1e0393f..18016d5 100644
--- a/marsond.c
+++ b/marsond.c
@@ -35,6 +35,7 @@ int debugging = 0; /* -v */
int foreground = 0; /* -v */
const char *keyboard_dev = DEFAULT_KBD; /* -k */
int delay_ms = DEFAULT_DELAY_MS; /* -d */
+int pause_ms = 0; /* -p */
int infd = -1, outfd = -1;
@@ -95,12 +96,13 @@ void parse_args(int argc, char **argv) {
}
}
- while( (opt = getopt(argc, argv, "d:hfk:vV")) != -1) {
+ while( (opt = getopt(argc, argv, "d:hfk:p:vV")) != -1) {
switch(opt) {
case 'd': delay_ms = atoi(optarg); break;
case 'f': foreground++; break;
case 'h': print_help(); exit(0); break;
case 'k': keyboard_dev = optarg; break;
+ case 'p': pause_ms = atoi(optarg); break;
case 'v': debugging++; break;
case 'V': version(); exit(0); break;
case '?': die("invalid option (try --help)"); break;
@@ -276,6 +278,11 @@ int main(int argc, char **argv) {
parse_args(argc, argv);
+ if(pause_ms > 0) {
+ debug("pausing %dms due to -p option");
+ usleep(pause_ms * 1000);
+ }
+
if((outfd = open("/dev/uinput", O_WRONLY | O_NONBLOCK)) >= 0) {
debug("opened /dev/uinput");
} else {
diff --git a/marsond.rst b/marsond.rst
index 263c4a2..8f56ace 100644
--- a/marsond.rst
+++ b/marsond.rst
@@ -1,5 +1,5 @@
-.. |version| replace:: 0.2.0
+.. |version| replace:: 0.3.0
.. |date| date::
=======
@@ -18,7 +18,7 @@ Fix Enter key timing on Marson/USBLink/MT606-1 PS/2-USB adaptors
SYNOPSIS
========
-marsond [**-d** *delay-ms**] [**-f**] [**-k** *keyboard-device*] [**-v**] | [**--help**] | [**--version**] | [**-V**]
+marsond [**-d** *delay-ms**] [**-f**] [**-k** *keyboard-device*] [**-p** *pause_ms* [**-v**] | [**--help**] | [**--version**] | [**-V**]
DESCRIPTION
===========
@@ -99,6 +99,14 @@ Options can be "bundled": **-vf** is the same as **-v** **-f**.
.. keyboard device (usually under /dev/input/by-id/).
+-p pause-ms
+ Amount of time in milliseconds to pause at startup, before opening the
+ keyboard and uinput devices. May be useful on slow systems, if
+ **marsond** won't consistently start from udev, but works fine
+ if started manually. Default: 0.
+
+.. pause before opening keyboard/uinput devs (default 0).
+
-v
Verbose debugging mode. Prints copious trace information to **stderr**.
Debugging mode is turned off when **marsond** forks itself into the
diff --git a/usage.c b/usage.c
index 96da0d0..44080f1 100644
--- a/usage.c
+++ b/usage.c
@@ -2,6 +2,7 @@ const char *helptext[] = {
" -d delay-ms: delay time for Enter key relase (default 30).",
" -f: run in foreground, not as a daemon.",
" -k keyboard-device: keyboard device (usually under /dev/input/by-id/).",
+ " -p pause-ms: pause before opening keyboard/uinput devs (default 0).",
" -v: verbose debugging.",
" -h, --help: this help text.",
" -V, --version: show version number.",