syscons - Add option for the default terminal border color to kernel config.
authorImre Vadász <imre@vdsz.com>
Mon, 28 Nov 2016 22:22:27 +0000 (23:22 +0100)
committerImre Vadász <imre@vdsz.com>
Tue, 29 Nov 2016 20:12:46 +0000 (21:12 +0100)
* The default terminal border can be set to e.g. darkgrey by adding
  option SC_BORDER_COLOR="FG_DARKGREY"
  to the kernel configuration.

share/man/man4/syscons.4
sys/config/LINT64
sys/dev/misc/syscons/syscons.c
sys/dev/misc/syscons/syscons.h
sys/platform/pc64/conf/options

index f104de4..fdfe0fa 100644 (file)
@@ -51,6 +51,7 @@
 .Cd "options SC_NORM_REV_ATTR=_attribute_"
 .Cd "options SC_KERNEL_CONS_ATTR=_attribute_"
 .Cd "options SC_KERNEL_CONS_REV_ATTR=_attribute_"
+.Cd "options SC_BORDER_COLOR=_attribute_"
 .Cd "options SC_DFLT_FONT"
 .Cd "makeoptions SC_DFLT_FONT=_font_name_"
 .Cd "device sc0 at isa?" Op flags Ar flags
@@ -362,6 +363,7 @@ above.
 .It Dv SC_NORM_REV_ATTR=_attribute_
 .It Dv SC_KERNEL_CONS_ATTR=_attribute_
 .It Dv SC_KERNEL_CONS_REV_ATTR=_attribute_
+.It Dv SC_BORDER_COLOR=_attribute_
 These options will set the default colors.
 Available colors are defined in
 .In machine/pc/display.h .
@@ -781,6 +783,17 @@ The reversed message will be black on red background.
 .D1 Cd "options SC_KERNEL_CONS_ATTR=(FG_LIGHTRED|BG_BLACK)"
 .D1 Cd "options SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)"
 .Pp
+The following line will set the default border color of the terminal.
+If the console is in framebuffer mode, or in raster (pixel) text mode,
+a thin green border will be visible around the terminal if the screen
+size is not an exact multiple of the font size.
+This border area can be much larger if the column or row count is
+explicitly specified (for example when using the
+.Va kern.kms_columns
+tunable).
+.Pp
+.D1 Cd "options SC_BORDER_COLOR=FG_GREEN"
+.Pp
 The following example adds the font files
 .Pa cp850-8x16.fnt ,
 .Pa cp850-8x14.font
index 241bbb0..93aa5c4 100644 (file)
@@ -908,6 +908,7 @@ options     SC_NORM_ATTR="(FG_GREEN|BG_BLACK)"
 options        SC_NORM_REV_ATTR="(FG_YELLOW|BG_GREEN)"
 options        SC_KERNEL_CONS_ATTR="(FG_RED|BG_BLACK)"
 options        SC_KERNEL_CONS_REV_ATTR="(FG_BLACK|BG_RED)"
+options        SC_BORDER_COLOR="FG_BLACK"
 
 # If you have a two button mouse, you may want to add the following option
 # to use the right button of the mouse to paste text.
index e1f249d..236e824 100644 (file)
@@ -3536,7 +3536,7 @@ init_scp(sc_softc_t *sc, int vty, scr_stat *scp)
     scp->tsw = NULL;
     scp->ts = NULL;
     scp->rndr = NULL;
-    scp->border = BG_BLACK;
+    scp->border = SC_BORDER_COLOR;
     scp->cursor_base = sc->cursor_base;
     scp->cursor_height = imin(sc->cursor_height, scp->font_height);
     scp->mouse_cut_start = scp->xsize * scp->ysize;
index 83e69ac..10a6152 100644 (file)
@@ -343,6 +343,9 @@ typedef struct scr_stat {
 #ifndef SC_KERNEL_CONS_REV_ATTR
 #define SC_KERNEL_CONS_REV_ATTR        (FG_BLACK | BG_LIGHTGREY)
 #endif
+#ifndef SC_BORDER_COLOR
+#define SC_BORDER_COLOR                FG_BLACK
+#endif
 
 /* terminal emulator */
 
index 5d2fe3e..0e38009 100644 (file)
@@ -19,6 +19,7 @@ HAMMER_CPU            opt_cpu.h
 
 MAXCONS                        opt_syscons.h
 SC_ALT_MOUSE_IMAGE     opt_syscons.h
+SC_BORDER_COLOR                opt_syscons.h
 SC_DEBUG_LEVEL         opt_syscons.h
 SC_DFLT_FONT           opt_syscons.h
 SC_DISABLE_DDBKEY      opt_syscons.h