2. Установка консольных шрифтов и раскладок клавиатуры2.1. Добавить скрипт
/etc/rc.d/rc.font следующего содержания:
#!/bin/sh
. /usr/lib/liblinuxlive
if [ $(locale_id | sed -r "s/\\..*//g" | cut -c -2) = "ru" ]; then
case $(iocharset) in
"utf8" ) setfont -v Cyr_a8x16 ;;
"iso8859-5" ) setfont -v Cyr_a8x16 -m 8859-5_to_uni ;;
"koi8-r" ) setfont -v Cyr_a8x16 -m koi8-r_to_uni ;;
"koi8-u" ) setfont -v Cyr_a8x16 -m koi8-u_to_uni ;;
"cp1251" ) setfont -v Cyr_a8x16 -m cp1251_to_uni ;;
* ) setfont -v ;;
esac
else
setfont -v
fi
2.2. Добавить скрипт
/etc/rc.d/rc.keymap следующего содержания:
#!/bin/sh
# Load the keyboard map. More maps are in /usr/share/kbd/keymaps.
if [ -x /usr/bin/loadkeys ]; then
# Get the locale string from liblinuxlive script and transform it
. /usr/lib/liblinuxlive
# Set keymap that depends on locale
if [ $(locale_id | sed -r "s/\..*//g" | cut -c -2) = "ru" ]; then
case $(iocharset) in
"utf8" ) /usr/bin/loadkeys 'ruwin_ct_sh-UTF-8.map.gz' ;;
"iso8859-5" ) /usr/bin/loadkeys 'ruwin_ct_sh-ISO8859-5.map.gz' ;;
"koi8-r" ) /usr/bin/loadkeys 'ruwin_ct_sh-KOI8-R.map.gz' ;;
"cp1251" ) /usr/bin/loadkeys 'ruwin_ct_sh-CP1251.map.gz' ;;
* ) /usr/bin/loadkeys 'us.map.gz' ;;
esac
else
/usr/bin/loadkeys 'us.map.gz'
fi
fi
Внимание: те файлы раскладок, на которые ссылается скрипт (
ruwin_ct_sh-UTF-8.map.gz и пр.) я брал частью из
пакета kbd для Слаквари, а частью те, которые
генерировал автор поста. Потом переименовал некоторые, чтобы имели одинаковый вид.
В "Слаксе" по умолчанию нет этих файлов. Их нужно переписывать в каталог
/usr/share/kbd/keymaps/i386/qwerty.
2.3. Добавить скрипт
/etc/rc.d/rc.vtmap следующего содержания (вот и команда
tty пригодилась, слава те господи):
#!/bin/sh
. /usr/lib/liblinuxlive
NUM_TTY=$(grep '^[^#].*respawn:/sbin/agetty' /etc/inittab | grep -o '\btty[[:digit:]]*\b')
if [ $(iocharset) = "utf8" ]; then
for TTY in $NUM_TTY
do
openvt -f -w -c ${TTY#tty} -- /bin/sh -c "echo -ne '\033%G' && kbd_mode -u"
done
else
for TTY in $NUM_TTY
do
openvt -f -w -c ${TTY#tty} -- /bin/sh -c "echo -ne '\033%@\033(K' && kbd_mode -a"
done
fi
2.4. Добавить скрипты
/root/.bashrc и
/root/.profile следующего содержания:
for TTY in $(grep '^[^#].*respawn:/sbin/agetty' /etc/inittab | grep -o '\btty[[:digit:]]*\b')
do
if [ $(tty | sed -r "s:^/dev/::") = $TTY ]; then
if [ $( . /usr/lib/liblinuxlive ; iocharset) = "utf8" ]; then
openvt -f -w -c $(echo $TTY | sed -r "s:^tty::") -- /bin/sh -c "echo -ne '\033%G' && kbd_mode -u"
else
openvt -f -w -c $(echo $TTY | sed -r "s:^tty::") -- /bin/sh -c "echo -ne '\033%@\033(K' && kbd_mode -a"
fi
break
fi
done
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n
2.5. Переписать скрипты
.bashrc и
.profile в каталог
/etc/skel.
2.6. Все изменённые и добавленные файлы упаковать в отдельный модуль. Скрипт
liblinuxlive должен находиться в каталоге
/usr/lib. Готовый модуль переписать в каталог
slax/base на сменном носителе.