]>
Commit | Line | Data |
---|---|---|
87122afc | 1 | #!/bin/sh |
cc02093d HH |
2 | # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- |
3 | # ex: ts=8 sw=4 sts=4 et filetype=sh | |
87122afc | 4 | |
ee6fa324 | 5 | [ -e /etc/vconsole.conf ] && . /etc/vconsole.conf |
87122afc | 6 | |
161da365 | 7 | DEFAULT_FONT=LatArCyrHeb-16 |
87122afc AŻ |
8 | DEFAULT_KEYMAP=/etc/sysconfig/console/default.kmap |
9 | ||
87122afc AŻ |
10 | set_keyboard() { |
11 | local param | |
12 | ||
13 | [ "${UNICODE}" = 1 ] && param=-u || param=-a | |
14 | kbd_mode ${param} | |
15 | } | |
16 | ||
17 | set_terminal() { | |
18 | local dev=$1 | |
19 | ||
20 | if [ "${UNICODE}" = 1 ]; then | |
21 | printf '\033%%G' >&7 | |
22 | stty -F ${dev} iutf8 | |
23 | else | |
24 | printf '\033%%@' >&7 | |
5259da10 | 25 | stty -F ${dev} -iutf8 |
87122afc AŻ |
26 | fi |
27 | } | |
28 | ||
29 | set_keymap() { | |
30 | local utf_switch | |
31 | ||
32 | if [ -z "${KEYMAP}" ]; then | |
33 | [ -f "${DEFAULT_KEYMAP}" ] && KEYMAP=${DEFAULT_KEYMAP} | |
34 | fi | |
35 | ||
36 | [ -n "${KEYMAP}" ] || return 1 | |
37 | ||
38 | [ "${UNICODE}" = 1 ] && utf_switch=-u | |
39 | ||
1f03abef | 40 | loadkeys -q ${utf_switch} ${KEYMAP} ${EXT_KEYMAPS} |
87122afc AŻ |
41 | } |
42 | ||
43 | set_font() { | |
44 | local dev=$1; local trans=''; local uni='' | |
45 | ||
161da365 AB |
46 | [ -z "${FONT}" ] && FONT=${DEFAULT_FONT} |
47 | [ -n "${FONT_MAP}" ] && trans="-m ${FONT_MAP}" | |
48 | [ -n "${FONT_UNIMAP}" ] && uni="-u ${FONT_UNIMAP}" | |
87122afc | 49 | |
161da365 | 50 | setfont ${FONT} -C ${dev} ${trans} ${uni} |
87122afc AŻ |
51 | } |
52 | ||
53 | dev_close() { | |
54 | exec 6>&- | |
55 | exec 7>&- | |
56 | } | |
57 | ||
58 | dev_open() { | |
59 | local dev=$1 | |
60 | ||
61 | exec 6<${dev} && \ | |
cc02093d | 62 | exec 7>>${dev} |
87122afc AŻ |
63 | } |
64 | ||
87122afc | 65 | dev=/dev/${1#/dev/} |
a0342347 | 66 | devname=${dev#/dev/} |
87122afc AŻ |
67 | |
68 | [ -c "${dev}" ] || { | |
69 | echo "Usage: $0 device" >&2 | |
70 | exit 1 | |
71 | } | |
72 | ||
6019e105 | 73 | dev_open ${dev} |
c99014d5 | 74 | |
6019e105 HH |
75 | for fd in 6 7; do |
76 | if ! [ -t ${fd} ]; then | |
77 | echo "ERROR: File descriptor not opened: ${fd}" >&2 | |
78 | dev_close | |
79 | exit 1 | |
80 | fi | |
81 | done | |
c99014d5 | 82 | |
6019e105 HH |
83 | set_keyboard |
84 | set_terminal ${dev} | |
85 | set_font ${dev} | |
86 | set_keymap | |
c99014d5 | 87 | |
6019e105 | 88 | dev_close |
87122afc | 89 |