Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Oct 2009 19:17:38 +0200 (CEST)
From:      "Walter C. Pelissero" <walter.pelissero@iesy.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/139576: blink screen too noisy
Message-ID:  <200910131717.n9DHHcVs007584@zaphod.home.loc>
Resent-Message-ID: <200910131730.n9DHU2WV056470@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         139576
>Category:       kern
>Synopsis:       blink screen too noisy
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 13 17:30:00 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Walter C. Pelissero
>Release:        FreeBSD 7.2-STABLE i386
>Organization:
>Environment:
System: FreeBSD zaphod.home.loc 7.2-STABLE FreeBSD 7.2-STABLE #4: Thu Oct 1 20:13:36 CEST 2009 root@zaphod.home.loc:/usr/home/obj/usr/src/sys/TYAN-TIGER-MP i386


	
>Description:
	Although better than a loud beep, I personally find the visual
	bell a bit too much.  Especially on large LCD screens, it
	feels like having a paparazzi stalking me.  I'd be happy with
	something less obtrusive like, for instance, the blinking of
	the screen border.

	Thus I propose the following patch:

Index: sys/dev/syscons/syscons.c
===================================================================
RCS file: /repos/src/sys/dev/syscons/syscons.c,v
retrieving revision 1.453.2.4
diff -u -r1.453.2.4 syscons.c
--- sys/dev/syscons/syscons.c	4 May 2009 21:00:43 -0000	1.453.2.4
+++ sys/dev/syscons/syscons.c	13 Oct 2009 01:47:01 -0000
@@ -3629,10 +3629,22 @@
 	    sc_switch_scr(scp->sc, scp->sc->delayed_next_scr - 1);
     }
     else {
-	(*scp->rndr->draw)(scp, 0, scp->xsize*scp->ysize, 
-			   scp->sc->blink_in_progress & 1);
+	int on = scp->sc->blink_in_progress & 1;
+	vr_draw_t *draw = scp->rndr->draw;
+
+	if (scp->sc->flags & SC_QUIET_BELL) {
+	  int i;
+
+	  (*draw)(scp, 0, scp->xsize, on);
+	  (*draw)(scp, scp->xsize * (scp->ysize - 1), scp->xsize, on);
+	  for (i = 1; i < scp->ysize - 1; ++i) {
+	    (*draw)(scp, scp->xsize * i, 1, on);
+	    (*draw)(scp, scp->xsize * (i + 1) - 1, 1, on);
+	  }
+	} else
+	  (*draw)(scp, 0, scp->xsize * scp->ysize, on);
 	scp->sc->blink_in_progress--;
-	timeout(blink_screen, scp, hz / 10);
+	timeout(blink_screen, arg, hz / 10);
     }
 }
 
Index: sys/sys/consio.h
===================================================================
RCS file: /repos/src/sys/sys/consio.h,v
retrieving revision 1.18
diff -u -r1.18 consio.h
--- sys/sys/consio.h	27 Sep 2006 19:57:01 -0000	1.18
+++ sys/sys/consio.h	13 Oct 2009 01:47:25 -0000
@@ -113,6 +113,7 @@
 /* set the bell type to audible or visual */
 #define CONS_VISUAL_BELL (1 << 0)
 #define CONS_QUIET_BELL	(1 << 1)
+#define CONS_BORDER_BELL (CONS_VISUAL_BELL | CONS_QUIET_BELL)
 #define CONS_BELLTYPE	_IOW('c', 8, int)
 
 /* set the history (scroll back) buffer size (in lines) */
Index: usr.sbin/kbdcontrol/kbdcontrol.1
===================================================================
RCS file: /repos/src/usr.sbin/kbdcontrol/kbdcontrol.1,v
retrieving revision 1.42
diff -u -r1.42 kbdcontrol.1
--- usr.sbin/kbdcontrol/kbdcontrol.1	16 Nov 2006 13:43:05 -0000	1.42
+++ usr.sbin/kbdcontrol/kbdcontrol.1	13 Oct 2009 01:47:54 -0000
@@ -84,9 +84,11 @@
 .Cm normal
 which sets sound parameters back to normal values,
 .Cm off
-which disables the bell entirely, or
+which disables the bell entirely,
 .Cm visual
-which sets the bell to visual mode, i.e., flashes the screen instead.
+which sets the bell to visual mode, i.e., flashes the screen instead, or
+.Cm border
+which flashes just the border instead of the whole screen.
 If
 .Ar belltype
 is preceded by the word
Index: usr.sbin/kbdcontrol/kbdcontrol.c
===================================================================
RCS file: /repos/src/usr.sbin/kbdcontrol/kbdcontrol.c,v
retrieving revision 1.51
diff -u -r1.51 kbdcontrol.c
--- usr.sbin/kbdcontrol/kbdcontrol.c	16 Nov 2006 12:27:51 -0000	1.51
+++ usr.sbin/kbdcontrol/kbdcontrol.c	13 Oct 2009 01:47:55 -0000
@@ -912,6 +912,8 @@
 	}
 	if (!strcmp(opt, "visual"))
 		bell |= CONS_VISUAL_BELL;
+	else if (!strcmp(opt, "border"))
+		bell |= CONS_BORDER_BELL;
 	else if (!strcmp(opt, "normal"))
 		duration = 5, pitch = 800;
 	else if (!strcmp(opt, "off"))

>How-To-Repeat:
	
>Fix:

	


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910131717.n9DHHcVs007584>