/usr/sbin/wsmoused has been non-working since slightly before 9.1 was released. Specifically, any button click or release generates:
wsmoused: ioctl(WSDISPLAYIO_GETWSCHAR) failed: Invalid argument and click+drags produce a torrent of the same. Here is a patch which fixes this problem: ---START--- diff -urN a/wsmoused/selection.c b/wsmoused/selection.c --- a/wsmoused/selection.c 2007-05-27 15:05:00.000000000 +0000 +++ b/wsmoused/selection.c 2020-10-21 06:17:38.666544347 +0000 @@ -144,6 +144,7 @@ static void selarea_start(void); static void selarea_end(void); static void selarea_calculate(void); +static void selarea_getrowcol(size_t, size_t*, size_t*); static void selarea_hide(void); static void selarea_show(void); static void selarea_paste(void); @@ -624,14 +625,29 @@ /* ---------------------------------------------------------------------- */ +/* Turns selection absolute position in the screen buffer back into + row, col co-ordinates */ +static void +selarea_getrowcol(size_t pos, size_t* row, size_t* col) +{ + size_t xres = Selmouse.sm_max_x + 1; + + *row = pos / xres; + *col = pos - (*row * xres); +} + +/* ---------------------------------------------------------------------- */ + /* Hides the highlighted region, returning it to normal colors. */ static void selarea_hide(void) { - size_t i; + size_t i, row, col; - for (i = Selarea.sa_startoff; i <= Selarea.sa_endoff; i++) - char_invert(0, i); + for (i = Selarea.sa_startoff; i <= Selarea.sa_endoff; i++) { + selarea_getrowcol(i, &row, &col); + char_invert(row, col); + } } /* ---------------------------------------------------------------------- */ @@ -640,11 +656,13 @@ static void selarea_show(void) { - size_t i; + size_t i, row, col; selarea_calculate(); - for (i = Selarea.sa_startoff; i <= Selarea.sa_endoff; i++) - char_invert(0, i); + for (i = Selarea.sa_startoff; i <= Selarea.sa_endoff; i++) { + selarea_getrowcol(i, &row, &col); + char_invert(row, col); + } } /* ---------------------------------------------------------------------- */ diff -urN a/wsmoused/wsmoused.c b/wsmoused/wsmoused.c --- a/wsmoused/wsmoused.c 2011-05-31 03:37:02.000000000 +0000 +++ b/wsmoused/wsmoused.c 2020-10-21 06:17:38.666544347 +0000 @@ -71,7 +71,7 @@ static int X_Console = -1; static int X_Console_Delay = 5; -#ifdef WSMOUSED_SELECTION_MODE +#ifdef WSMOUSED_ACTION_MODE extern struct mode_bootstrap Action_Mode; #endif #ifdef WSMOUSED_SELECTION_MODE ---END--- Thanks, -RVP