aboutsummaryrefslogtreecommitdiff
path: root/init.d/syscons.in
diff options
context:
space:
mode:
Diffstat (limited to 'init.d/syscons.in')
-rw-r--r--init.d/syscons.in83
1 files changed, 83 insertions, 0 deletions
diff --git a/init.d/syscons.in b/init.d/syscons.in
new file mode 100644
index 00000000..94c91a06
--- /dev/null
+++ b/init.d/syscons.in
@@ -0,0 +1,83 @@
+#!@PREFIX@/sbin/runscript
+# Copyright 2007-2008 Roy Marples <roy@marples.name>
+# All rights reserved. Released under the 2-clause BSD license.
+
+depend() {
+ need localmount
+ keyword nojail noprefix
+}
+
+start() {
+ if [ -n "${allscreen_flags}" ]; then
+ ebegin "Setting mode to ${allscreen_flags} for all screens"
+ for v in /dev/ttyv*; do
+ vidcontrol ${allscreen_flags} <"${v}"
+ done
+ eend $?
+ fi
+
+ if [ -n "${keymap}" ]; then
+ ebegin "Setting keymap to ${keymap}"
+ kbdcontrol -l ${keymap} </dev/console
+ eend $?
+ fi
+
+ if [ -n "${keyrate}" ]; then
+ ebegin "Setting keyrate to ${keyrate}"
+ kbdcontrol -r ${keyrate} </dev/console
+ eend $?
+ fi
+
+ if [ -n "${keychange}" ]; then
+ ebegin "Changing function keys"
+ eval set -- "${keychange}"
+ eindent
+ while [ $# -gt 0 ]; do
+ veinfo "F$1 -> \`$2'"
+ kbdcontrol -f "$1" "$2" </dev/console
+ veend $?
+ shift; shift
+ done
+ eoutdent
+ fi
+
+ if [ -n "${cursor}" ]; then
+ ebegin "Setting cursor"
+ vidcontrol -c ${cursor}
+ eend $?
+ fi
+
+ local v= f=
+ for v in font8x16 font8x14 font8x8; do
+ f=$(eval \$"${v}")
+ if [ -n "${f}" ]; then
+ ebegin "Setting font ${f}"
+ vidcontrol -f ${v##FONT} ${f}
+ eend $?
+ fi
+ done
+
+ if [ -n "${blanktime}" ]; then
+ ebegin "Setting blanktime"
+ vidcontrol -t ${blanktime}
+ eend $?
+ fi
+
+ if [ -n "${saver}" ]; then
+ local i=
+ for i in $(kldstat | sed -n -e 's/.* \(splash_.*\)/\1/p'); do
+ kldunload "${i}"
+ done
+ kldstat -v | grep -q _saver || kldload ${saver}_saver
+ fi
+
+ if [ -n "${kbdflags}" ]; then
+ ebegin "Setting keyboard flags for all screens"
+ for v in /dev/ttyv*; do
+ kbdcontrol ${kbdflags} <${v}
+ done
+ eend $?
+ fi
+
+ return 0
+}