1 (23.01.2013 05:08:50 отредактировано semiono)

Простой вопрос, как переключатся EN/RU в bash?
Столько всего написано и ничего не понятно.
Всюду с иксами, какие иксы, когда я в голой консоли.
Вот нашёл текст http://lib.ru/unixhelp/fonty.txt стока написанно афигеть!
И, кстати, поставил Opera из портов CRUX и в ней html весь иероглифами, хотя в Firefox нормально всё.
Что за путаница с этими шрифтами и локалями, объясните по нормальному?

#
# /etc/profile: system-wide defaults for bash(1) login shells
#

export LESSCHARSET="latin1"
export LESS="-R"
export CHARSET="ISO-8859-5"
export PS1="\[\033[1m\]\\$ \[\033[0m\]"
export PS2="\[\033[1m\]> \[\033[0m\]"
export LANG=ru_RU.utf8
#
# /etc/rc.conf: system configuration
#

FONT=LatArCyrHeb-14
KEYMAP=ru-utf
TIMEZONE=UTC
HOSTNAME=host
#SYSLOG=sysklogd
SERVICES=(net)

# End of file

И, кстати, ~/.fluxbox/startup игнорируется, тоже необъяснимое явление!
Так что setxkbmap -layout "us,ru" -option "grp:ctrl_shift_toggle,grp_led:scroll" некуда добавить.

_forum.lafox.net/index.php?showtopic=8571

sudo включить компьютер

локаль системную не?

3

semiono пишет:

setxkbmap -layout "us,ru" -option "grp:ctrl_shift_toggle,grp_led:scroll" некуда добавить.

Это как раз определяет конфигурацию раскладок клавиатуры в иксах. У меня проживает в /etc/X11/xorg.conf.d/90-keyboard-layout.conf. Для того, чтобы переключались раскладки в консоли, нужно выбрать файл keymap - раскладки клавиатуры и шрифт с символами русских букв:

+ открыть спойлер
$ cat /etc/rc.d/rc.keymap
#!/bin/sh

# Load the keyboard map. More maps in /usr/share/kbd/keymaps.
KEYMAP="ruwin_ct_sh-UTF-8.map.gz"
if [ -x /usr/bin/loadkeys  ]; then
    echo "Loading keyboard layout: $KEYMAP, CTRL+SHIFT for toggle."
    /usr/bin/loadkeys $KEYMAP;
fi
$ cat /etc/rc.d/rc.font 
#!/bin/sh
#
# This selects your default screen font from among the ones in
# /usr/share/kbd/consolefonts.
#
#setfont -v
unicode_start cyr-sun16.psfu.gz
for i in {1..6}; do
    echo -ne "\033%G" > /dev/tty$i;
done
Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

4

Я правильно понимаю?
loadkeys ruwin_ct_sh-UTF-8.map.gz

bash об этом знает из конфига /etc/rc.d/rc.keymap
...причём это больше похоже на скрипт чем на конфиг,
у меня этих файлов даже не было, поэтому спрашиваю.

а шрифт bash здесь смотрит /etc/rc.d/rc.font

Впринципе понятно, только привыкнуть надо.

sudo включить компьютер

5

semiono пишет:

у меня этих файлов даже не было

Это Slackware-specific стартовые скрипты. Они выполняются на завершающей стадии загрузки системы.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

6 (23.01.2013 20:07:46 отредактировано semiono)

Что-то не пошло, unicode_start cyr-sun16.pcfu.gz пишет, невозможно открыть файл. Может это связано с сборкрой ядра?
Раньше у меня получалось даже простым редактированием rc.conf. Шрифт есть, я проверял. И даже с указанием пути не работает,
хотя я думаю путь по-умолчание всегда указан.
Вот теперь и нельзя понять работают ли Slackware-specific стартовые скрипты, хотя я думаю они поддерживаются CRUX,
может быть только /rc.d не обязательно.

sudo включить компьютер

7

Покажите

find /usr/share/kbd/keymaps -name cyr-sun16.psfu.gz 

и увидите, что файла действительно нет. Положите его туда, и все. Взять можно отсюда.
PS. В тарболе шрифт лежит несжатым, поэтому после распаковки шрифта нужно его сжать:

gzip -9 cyr-sun16.psfu
Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

8 (28.01.2013 04:16:20 отредактировано semiono)

Ещё раз про русификацию...
1. Мне нужно только переключение русского в клавиатуре.
2. Читать русские тексты и названия файлов по русски.

3. Но вот то, что у меня в mc начинает писать в колонках "январь", это мне совершенно не хочется,
и сообщения из консоли я тоже хочу оставить английскими.

4. Установил Opera и там совершенно нельзя страницы читать, всё в иероглифах, хотя менял кодировки внутри приложения.
При этом в Firefox всё чётко..

5. Какие кодировки необходимо включить в сборку ядра?

И до меня туго что-то доходит что такое локаль. Вот видимо локаль мне нужна английская как раз

sudo включить компьютер

9 (28.01.2013 05:46:29 отредактировано semiono)

Раскладку в консоли зделал!
# nano /etc/rc.local

/usr/bin/unicode_start cyr-sun16.psfu.gz
/usr/bin/loadkeys ruwin_alt_sh-UTF-8.map.gz

Но русские имена файлов не вижу ????????????.txt
Как сгенерировать локаль, чтоб видеть только то, что не видно, а не всё подряд на русском?

sudo включить компьютер

10

semiono пишет:

Но русские имена файлов не вижу

В консоли?
Последней строчки недостаточно, смотрите пример rc.font в сообщении №3. Кроме того, нужно:
1) чтобы в ядре было:

yars@localhost:~$ zgrep -i utf8 /proc/config.gz 
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_UTF8=y
yars@localhost:~$ 

2) по причине (1) нужно передавать ядру при загрузке параметр:

yars@localhost:~$ grep -e "^append" /etc/lilo.conf
append=" vt.default_utf8=1"
yars@localhost:~$ 

3) Нужно привести к следующему виду файл

+ открыть спойлер
yars@localhost:~$ cat /etc/profile.d/lang.sh 
#!/bin/sh
# Set the system locale.  (no, we don't have a menu for this ;-)
# For a list of locales which are supported by this machine, type:
#   locale -a

# en_US is the Slackware default locale:
export LANG=ru_RU.UTF-8

# 'C' is the old Slackware (and UNIX) default, which is 127-bit
# ASCII with a charmap setting of ANSI_X3.4-1968.  These days,
# it's better to use en_US or another modern $LANG setting to
# support extended character sets.
#export LANG=C

# There is also support for UTF-8 locales, but be aware that
# some programs are not yet able to handle UTF-8 and will fail to
# run properly.  In those cases, you can set LANG=C before
# starting them.  Still, I'd avoid UTF unless you actually need it.
#export LANG=en_US.UTF-8

# Another option for en_US:
#export LANG=en_US.ISO8859-1

# One side effect of the newer locales is that the sort order
# is no longer according to ASCII values, so the sort order will
# change in many places.  Since this isn't usually expected and
# can break scripts, we'll stick with traditional ASCII sorting.
# If you'd prefer the sort algorithm that goes with your $LANG
# setting, comment this out.
export LC_COLLATE=C

# End of /etc/profile.d/lang.sh

P.S. Это все Slackware-специфично!

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

11

yars пишет:

2) по причине (1) нужно передавать ядру при загрузке параметр:

Уже довольно давно не нужно, точнее нужно в обратном случае, когда консоль нужна неюникодная (vt.default_utf8=0). Начиная с версии ядра 2.6.24 консоль по умолчанию в utf8, до этой версии -- однобайтовая.

12 (28.01.2013 13:26:30 отредактировано bormant)

semiono пишет:

Но русские имена файлов не вижу ????????????.txt

А вот тут на самом деле только 2 варианта:
1) использовать кодировку локали как в именах файлов локальной файловой системы
2) перекодировать имена файлов локальных ФС в используемую кодировку локали (см. convmv для облегчения задачи).

Если для "чужих" ФС, например, NTFS или сетевых SMB, драйверы предусматривают параметры, позволяющие привести их кодировку в кодировку хоста в целях обеспечения совместимости, то для родных ФС эта задача явно лишняя.
Для определения кодировки имён на ФС можно пофильтровать вывод ls через iconv:

$ ls *.txt | iconv -f koi8r
$ ls *.txt | iconv -f iso-8859-5
$ ls *.txt | iconv -f cp1251
$ ls *.txt | iconv -f cp866
$ ls *.txt | iconv -f utf8

или прикинуть по кодам символов:

$ ls | hexdump -C

13 (28.01.2013 14:36:09 отредактировано semiono)

offtop: http://alv.me/?p=1551
CRUX: инициализация и настройка

sudo включить компьютер