Размышления о Konsole и termcap.

КПК с Linux, установка Linux на iPaq и другие модели, программы
Е. Медведев
Аспирант (2 lvl)
Сообщения: 58
Зарегистрирован: Вт окт 19, 2004 18:27

Размышления о Konsole и termcap.

Сообщение Е. Медведев » Чт ноя 04, 2004 19:12

Размышляя как бороться с отсутствием псевдографики в консольных программах, я подумал примерно следующее:

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

Если для mc есть на свете ключик -a, то у меня есть еще куча необходимых для жизни программ каковые аналогичными ключиками не обладают. Но большинство из них пользуются ncurses, которая знает что такое termcap.

Следовательно проблема решилась бы оптимальным образом если бы можно было написать правильное termcap-определение конкретно для Konsole, каковой пользуется, вроде бы, большинство присутствующих, которое учитывало бы все особенности шарповой клавиатуры и шрифтов. После этого достаточно было бы вписать пару строк в .profile для того чтобы опознать с какого терминала мы пришли и если это локальная QKonsole, выставить надлежащий TERM=qkonsole, под каковым именем его в базу и записать.

Загвоздка как всегда в том что termcap - штука весьма путаная. Не водится ли в округе гуру, сведущего в этой магии? Если в округе водятся лица которые могли бы предложить более простое решение или объяснить почему вышеописанное невозможно, было бы также очень интересно узнать что таковые скажут.
Sharp Zaurus SL-C860, Cacko 1.23lite
Trendnet TE-CF100, Pretec WiFi, Pretec Presenter, Socket Bluetooth (F), Kingston SD 512 и еше гора всякого мусора..

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пт ноя 05, 2004 11:34

1) перейти с utf8 на koi8 в консоли (qkonsole это позволяет)
Кутопия не понимает KOI8, она работает с UTF8. Поэтому русские имена файлов будут видны в ней только если они UTF8. Соответственно, если консоль будет НЕ UTF8, то и русские имена в ней будут кракозябрами...

Вообще же моё отношение к KOI8 (да и к кодировкам вообще) резко негативное. Вот уж гемор развели... Давно пора переходить на уникод (хотя бы в варианте UTF8).

Хотя, чуствую, зря написал, сейчас начнется... :)

SergL
Кандидат (3 lvl)
Сообщения: 107
Зарегистрирован: Вт сен 16, 2003 11:40

Сообщение SergL » Пт ноя 05, 2004 12:03

maslovsky писал(а):
1) перейти с utf8 на koi8 в консоли (qkonsole это позволяет)
Кутопия не понимает KOI8, она работает с UTF8. Поэтому русские имена файлов будут видны в ней только если они UTF8. Соответственно, если консоль будет НЕ UTF8, то и русские имена в ней будут кракозябрами...

Вообще же моё отношение к KOI8 (да и к кодировкам вообще) резко негативное. Вот уж гемор развели... Давно пора переходить на уникод (хотя бы в варианте UTF8).

Хотя, чуствую, зря написал, сейчас начнется... :)
Ага, началось :)

Кутопия вполне нормально понимает и кои8 и cp1251,
если выставить в Settings/locale.conf нужный [Language]

Вот честный кои8 в теминальном окне кутопии :

Изображение

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пт ноя 05, 2004 12:37

Кутопия вполне нормально понимает и кои8 и cp1251,
если выставить в Settings/locale.conf нужный [Language]
Угу, только неизвестно, в каком месте вылезит при этом косяк...

Например, понимает ли кутопия русские имена файлов например на CF карточке под FAT32, который записаны Windows 2000/XP? Они туда пишутся как раз в UTF8. А при копировании этих жу русских имен на завр через самбу? А в консоле такие имена при этом видны? И черте знает еще в каких местах...

Кому как, но мой выбор - unicode, но уж тем более не KOI8....

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Пт ноя 05, 2004 13:13

maslovsky писал(а):Кому как, но мой выбор - unicode, но уж тем более не KOI8....
А у меня с точностью до наоборот. Мне удобнее иметь одну кодировку на всех компьютерах.

SergL
Кандидат (3 lvl)
Сообщения: 107
Зарегистрирован: Вт сен 16, 2003 11:40

Сообщение SergL » Пт ноя 05, 2004 13:21

maslovsky писал(а):
Кутопия вполне нормально понимает и кои8 и cp1251,
если выставить в Settings/locale.conf нужный [Language]
Угу, только неизвестно, в каком месте вылезит при этом косяк...

Например, понимает ли кутопия русские имена файлов например на CF карточке под FAT32, который записаны Windows 2000/XP? Они туда пишутся как раз в UTF8. А при копировании этих жу русских имен на завр через самбу? А в консоле такие имена при этом видны? И черте знает еще в каких местах...

Кому как, но мой выбор - unicode, но уж тем более не KOI8....
Ну-ну, не горячись :) Все ты правильно говоришь. И на юникод мы все дружно перейдем, когда он будет везде и полнстью поддерживаться.

А по поводу имен файлов - все кутопийные приложения, независимо от [Language], создают имена файлов в юникоде. По самбе мне удавалось, с помощью некоторых извращений, передавать файлы с русскими именами между FreeBSD и завром. Во FreeBSD имена были в кои8, на завре - перекоировались в юникод, и наоборот.

А консоль - это особый случай. И нужна она большинству именно чтобы зайти через нее на удаленную машину, при этом имея нормальное отображение кириллицы на экране. А если поставить в locale.conf
[Language] = ru_RU.utf8, то в консоли можно и видеть и создавать локальные файлы с русскими именами.

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пт ноя 05, 2004 15:22

Ну-ну, не горячись Все ты правильно говоришь. И на юникод мы все дружно перейдем, когда он будет везде и полнстью поддерживаться.
Это замкнутый круг - мы не перейдем, пока не будет поддерживтаься, а она не будет поддерживаться, пока пользователи не будут хотеть и требовать её поддержки. Ситуация такая же как с поддержкой нелатинских символов. Пример - если авторов того же KO/PI не пинать, что у них то там то там с поддеожкой нелатинских символов проблемы, они нихрена не будут ничего делать, что бы их разрешить...

Я кучу времени потратил, чтобы новая версия кино нормально работала с русскими именами файлов при вызове mplayer. Из принципа.
В общем я немного поигрался с terminfo и убедился что задача вполне разрешимая:
Это консоль в UTF8? Если не сложно, расскажи как сделал - я бы от псевдографики в консоле не отказался. Если не очень геморно, я бы сам доделал для прошивки...

svsleaves
Доктор (4 lvl)
Сообщения: 312
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение svsleaves » Пт ноя 05, 2004 15:52

Все же стоит переходить не на кои, а на utf-8.
Здесь мне кажется стоит пожертвовать консольными приложениями.
Что за удовольствия глядеть на список файлов в mc? IMHO bash удобнее.
А что еще из консольного (экранного) использует народ?

Хорошо бы в прошивку включить вместе с локалью еще iconv хотя бы с основными и русскими gconv. Часто нужно конвертнуть из одной кодировки в другую.

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пт ноя 05, 2004 16:52

ivanhoe писал(а):maslovsky

Нет, это KOI8. Для универсального решения, чтобы работало везде в т ч и в юникоде, нужно qkonsole патчить.
Понятно. Ладно, значит не судьба пока.

Если у кого-то руки дойдут - милости просим, добавлю в прошивку...

sg
Кандидат (3 lvl)
Сообщения: 194
Зарегистрирован: Пн фев 02, 2004 14:46

Сообщение sg » Пт ноя 05, 2004 17:29

ivanhoe писал(а):Ncurses и mc используют не termcap, а terminfo. Псевдографика есть в шрифтах fixed и VGA (см. мой сайт, http://uzhe.nichego.net/zaurus).

Чтобы завести псевдографику требуется:
1) перейти с utf8 на koi8 в консоли (qkonsole это позволяет)
2) написать запись terminfo с псевдографикой
я увидел "фотографию" консоли с псевдографикой.
можно первый и второй пункт поподробнее? чтобы по граблям второй раз не ходить...

достаточно просто командочек переключения (переменные среды?)
и terminfo. я терминфо с линуха настольного перетаскивал, но так и не завелось :(

kfetisov
Кандидат (3 lvl)
Сообщения: 193
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение kfetisov » Вт ноя 09, 2004 16:09

ivanhoe писал(а):sg

1) либо запускать qkonsole с LANG=ru_RU.koi8r либо установить бинарник http://uzhe.nichego.net/zaurus/qkonsole.gz (тогда всегда будет koi8, независимо от LANG)

2) недоделанное terminfo, с которым снят screenshot, лежит здесь: http://uzhe.nichego.net/zaurus/qxterm.tar.gz (исходник и бинарник) Для установки надо распаковать директорию .terminfo в домашнюю директорию и прописать в .profile:

Код: Выделить всё

export TERM=qxterm
P.S. Для того чтобы завелось "нормальное" terminfo (и работало в юникодной консоли, и рамки были одинарные, etc), надо патчить qkonsole для правильной поддержки alternative charset.
Поставил все файлы, экспортнул LANG и TERM, шрифт стоит VGA - Результат:
Вложения
Screen.jpg
Screen.jpg (80.08 КБ) 5173 просмотра
С сибирским приветом,

Константин
--
Nokia 9300 6.27/ Iphone 8Gb 1.1.2 / GP2X MKII

kfetisov
Кандидат (3 lvl)
Сообщения: 193
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение kfetisov » Ср ноя 10, 2004 11:55

ivanhoe писал(а):kfetisov

QKonsole работает не в koi8, а в юникоде.
Да вроде бы пользуюсь твоим бинарником. Вот еще скриншот после ручного export LANG=ru.RU_koi8r

Можно ли по очередности для чайника в линукс расписать что делать.

С сибирским приветом,

Константин.
Вложения
Screen.jpg
Screen.jpg (87.75 КБ) 5140 просмотров
С сибирским приветом,

Константин
--
Nokia 9300 6.27/ Iphone 8Gb 1.1.2 / GP2X MKII

Е. Медведев
Аспирант (2 lvl)
Сообщения: 58
Зарегистрирован: Вт окт 19, 2004 18:27

Сообщение Е. Медведев » Ср ноя 10, 2004 12:00

ivanhoe писал(а):P.S. Для того чтобы завелось "нормальное" terminfo (и работало в юникодной консоли, и рамки были одинарные, etc), надо патчить qkonsole для правильной поддержки alternative charset.
Заглянул в сорцы qkonsole, увидел там:

case TY_ESC_CS('(', '0') : setCharset (0, '0'); break; //VT100
case TY_ESC_CS('(', 'A') : setCharset (0, 'A'); break; //VT100
case TY_ESC_CS('(', 'B') : setCharset (0, 'B'); break; //VT100

То бишь поддержка enacs/smacs определенно подразумевается. Что именно там не так?
Sharp Zaurus SL-C860, Cacko 1.23lite
Trendnet TE-CF100, Pretec WiFi, Pretec Presenter, Socket Bluetooth (F), Kingston SD 512 и еше гора всякого мусора..

Андрей Головин
Студент (1 lvl)
Сообщения: 49
Зарегистрирован: Вт фев 10, 2004 13:23

Сообщение Андрей Головин » Ср ноя 10, 2004 13:22

ivanhoe писал(а):Е. Медведев

Поддержка неправильна тем, что в альтернативном чарсете вместо псевдографики стоят квадраты.
Очень помогает mc -a

Извините, только что заметил, что тред с этого и начался...

Е. Медведев
Аспирант (2 lvl)
Сообщения: 58
Зарегистрирован: Вт окт 19, 2004 18:27

Сообщение Е. Медведев » Ср ноя 10, 2004 14:31

ivanhoe писал(а):Е. Медведев
Поддержка неправильна тем, что в альтернативном чарсете вместо псевдографики стоят квадраты.
Так может дело в том что просто acsc надо правильный подобрать? Надо будет попробовать сочинить программку которая сделает tput enacs и printf все подряд, может они и объявятся...
Sharp Zaurus SL-C860, Cacko 1.23lite
Trendnet TE-CF100, Pretec WiFi, Pretec Presenter, Socket Bluetooth (F), Kingston SD 512 и еше гора всякого мусора..

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»