LINUX.ORG.RU

3-ий и 4-ый уровень в консоли


0

1

В иксах с недавнего времени стал пользоваться дополнительным набором типографских символов (««»…“”‘’—» и т.п.) в третьем уровне, который включаю нажатием AltGr. Где взять keymap для консоли, чтобы загрузив его я смог нажатием AltGr переключаться в 3-ий уровень и вводить в нём эти символы? Среди дефолтных не нашёл нужного (или плохо искал?).

Сейчас у меня загружен кеймап ruwin_cplk-UTF-8, в котором при нажатии AltGr почему-то вводятся русские буквы.

Хм, посмотрел в ‘vimdiff /usr/share/keymaps/i386/qwerty/ruwin_{alt,cplk}-UTF-8.map.gz’ и понял, что в консоли не делают раскладки, а русский язык как раз в 3-ем и 4-ом уровнях. Печально.

Видимо, придётся городить костыли с actkbd, который будет при нажатии Caps Lock запускать loadkeys для переключения раскладок, но тогда нужны 2 раскладки: одна с английским в 1-ом и 2-ом уровнях, другая с русским в 1-ом и 2-ом уровнях, и обе с типографскими символами в 3-ем и 4-ом уровнях. Сомневаюсь, что есть готовые, поэтому придётся лепить свою.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

>я бы предложил использовать emacs, но ты же не согласишься :)

Я-то не соглашусь, но разве в нём есть переключалка кеймапов? Или свой велосипед для типографских символов?

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

>Или свой велосипед для типографских символов?

Да, и не только для типографских. Ну и встроенная переключалка кеймапов тоже есть.

lazyklimm ★★★★★
()

Что-то странное с этими ядерными кеймапами. Надо же было НАСТОЛЬКО криво всё сделать. Мало того, что нет переключалки, а русский язык в 3-ем и 4-ом уровнях, которые там через AltGr всегда, так ещё и типографские символы не работают! Сделал ‘echo 'ctrlr keycode 16 = onehalf' | loadkeys -’, но CtrlR-Q ничего не вводит. Мигание курсора сбивается (нажатие воспринялось), но символ не появляется. Что это за фигня такая?

Видимо, не судьба иметь полноценную клавиатуру в консоли. Уже думаю о том, чтобы запускать иксы без WM с полноэкранной консолью со screen'ом, и сидеть так. Всё-таки будет работающий тачпад (интересно, зачем), 3D-ускорение (тоже непонятно, зачем), нормальная клавиатура (хотя у тут не без своих приколов, например, нельзя >4 раскладок) и Firefox проще запускать. Хотя иксы то ещё г-но, но лучшей альтернативы нет.

gentoo_root ★★★★★
() автор топика

Во-первых, с чего ты взял, что в консольном шрифте такие символы вообще есть? Без fbterm или подобного ты вообще не увидишь половину типографики. Поддержка UTF8 в голом линуксовом терминале — чисто номинальная.
Во-вторых, это традиционно решается с помощью, на выбор:
— uim-fep и какая-нибудь composeподобная раскладка.
— fbterm + ibus-fbterm + опять же такая раскладка.

x3al ★★★★★
()

Че, правда так хреново прокачан? У меня уже 85 уровень в консоли.

bk_ ★★
()
Ответ на: комментарий от x3al

>Во-первых, с чего ты взял, что в консольном шрифте такие символы вообще есть?

Да, я потом попробовал, они просто не вводились.

какая-нибудь composeподобная раскладка.

Где взять такую раскладку? Это обычная раскладка для loadkeys или какая-то другая?

ibus-fbterm

Где это взять для Gentoo?

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

>Где взять такую раскладку?
Не представляю, но судя по http://code.google.com/p/uim/source/browse/branches/1.7/xim/compose.cpp?spec=... оно должно работать. Стоит потыкать uim-fep, у него тупо больше база пользователей + все раскладки — в относительно вменяемом формате, на guile (такая схема). В крайнем случае можно сделать подобное.

x3al ★★★★★
()
Ответ на: комментарий от x3al

>Стоит потыкать uim-fep

Собрал app-i18n/uim, в пакете не оказалось бинарника uim-fep. Что-то не везёт мне.

Это ж надо было сделать ядерную консоль настолько кривой. Когда я только начинал работать в Линуксе и переключал 2 раскладки по Ctrl-Shift, мне казалось, что мне хватает фич дефолтной консоли (а начинал я именно с неё, без никаких иксов). Потом оказалось, что gpm не работает с тачпадом synaptics, потом я стал в иксах юзать третий уровень, и оказалось, что консоль его тоже не умеет. Что-то она меня огорчает. Монстрообразные иксы я не хочу тянуть, а kdrive меня тоже огорчил — тоже не умеет тачпад и 3D-ускорение. Да и не нравится мне архитектура иксов с разделением WM и приложений, из-за чего нельзя запихнуть строку меню в заголовок окна, а я хотел, даже костыль соорудил для gnome-panel и полноэкранных окон (панель становилась на место заголовка). В wayland я так и не смог открыть ни одного окошка, а тачпад работал почему-то в абсолютном режиме, как тачскрин. DirectFB мне тоже не подходит — не умеет тачпад, да и я не думаю, что он может так хорошо работать с раскладками, как иксы.

Вот и исчерпались все возможные интерфейсы. А, казалось бы, нужно немного — всего-то поддержку простейшего железа, консоль, строку с системным монитором (с этой задачей справился screen) и возможность ввода нормальных кавычек с зажатым AltGr.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

>Собрал app-i18n/uim, в пакете не оказалось бинарника uim-fep.
USE=ncurses емнип.
Ну а так — да, линукс без иксов не готов для десктопа.

тачпад работал почему-то в абсолютном режиме, как тачскрин.

Можно попробовать колдунство с evdev, но я не представляю, где (udev?)

x3al ★★★★★
()
Ответ на: комментарий от x3al

>USE=ncurses емнип.

Попробую поставить.

Ну а так — да, линукс без иксов не готов для десктопа.

С иксами он готов для десктопа, но не для меня.

Можно попробовать колдунство с evdev,

Это плохая идея. С драйвером evdev не будут работать никакие фичи synaptics, в частности, скролл по краю тачпада (вертикальный и горизонтальный) и действия по клику в угол тачпада. Кстати, я где-то видел видео с нетбуком с Wayland, окнами и правильно работающим тачпадом (в относительном режиме, хотя, может, это был evdev). Я так и не понял, кстати, как там открыть окна. Всё, что могло прийти в голову, к нужному результату не привело.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

>Это плохая идея. С драйвером evdev не будут работать никакие фичи synaptics
Так других драйверов вне иксов просто нет. Как минимум некоторые тачпады оно должно уметь.

x3al ★★★★★
()
Ответ на: комментарий от x3al

>Так других драйверов вне иксов просто нет.

Должны же запилить для wayland, если собираются его толкать в массы.

Как минимум некоторые тачпады оно должно уметь.

Да, evdev умеет мой тачпад, но очень плохо. Не та чувствительность (и не настраивается), нет прокруток и кнопок по углам. Могли бы в честь Linux 3.0 сделать в нём нормальный evdev, умеющий тачпады.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от x3al

>USE=ncurses емнип.

Пересобрал, появилась команда uim-fep. Запустил, внизу появилась надпись ‘look[ L_]’. Она там остаётся всё время, но что теперь делать? Манов к этой фигне, ясен пень, нет (или я плохо ищу?).

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от x3al

>По с-space емнип меняет раскладку.

По ссылке Shift-Space, но не работают оба переключателя. Продолжает работать переключалка из ядерного кеймапа.

Раскладки указаны в конфиге.

В /etc/ ничего не установилось. По ссылке упоминается ~/.uim, но где взять полную документацию на этот файл?

Манов дофига, да и не только их.

В /usr/share/doc по существу ничего, man и info вообще нет. На сайте на гуглокоде тоже ни о чём. ‘uim-fep --help’ — тоже ни о чём.

Пример: http://www.opennet.ru/tips/info/1448.shtml

Там ещё предлагают jfbterm, поставлю его. Но по ссылке тоже ни о чём, только переключалка языка настраивается.

Есть вообще на это uim-fep полная документация? Как там врубить типографские символы в третьем уровне?

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

uim-fep даёт все возможности uim в консоли. Документации по uim дофига, но я не обещал, что она на всеобщем языке: http://code.google.com/p/uim-doc-ja/wiki/UimFep и вообще вся эта и не только эта вики.

http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-8.html#ss8.5 ← ещё один способ композить, но я не знаю, как там с юникодом.

actkbd + кастомный keymap на созданный им кейкод — ещё один способ, в конце концов.

x3al ★★★★★
()
Ответ на: комментарий от x3al

>http://code.google.com/p/uim-doc-ja/wiki/UimFep

Что-то там куча квадратиков с четырьмя циферками. Видимо, у меня не хватает какого-то китайского шрифта. Тут без гуглопереводчика не обойтись %)

ещё один способ композить, но я не знаю, как там с юникодом.

Не, это что-то слишком сурово. Надо ещё и коды запоминать, да и вводить долго.

actkbd + кастомный keymap на созданный им кейкод — ещё один способ, в конце концов.

actkbd у меня установлен. Но он же выполняет команды по хоткеям и нажимает клавиши по хоткеям — чем он поможет? К тому же тут ещё проблема в том, что у меня в третьем и четвёртом уровне сейчас русская раскладка. Кстати, хоткеи с ним фиговые — коды клавиш получают и программы, а лучше было бы, как в иксах, — при нажатии хоткея что-то происходит, но программам он не передаётся. А то забиндил я Super-F1 на ^a, 0, допустим, чтобы в screen удобнее было консоли переключать, но при этом в vim открывается help. Но это, видимо, невозможно с таким подходом, который использует actkbd.

jfbterm так и не поставил ещё — он потянул в зависимости intlfonts, которые весят >20 MiB, а они ещё не скачались по диалапу.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

>Но он же выполняет команды по хоткеям и нажимает клавиши по хоткеям — чем он поможет?
Нажать клавишу с левым кейкодом по хоткею. В keymap'е (который для loadkeys) указать, что этот левый кейкод означает кавычку.

x3al ★★★★★
()
Ответ на: комментарий от x3al

>actkbd умеет grab, поэтому можно сделать так, чтобы клавиша не передавалась дальше.

Как раз вспомнил о нём, надо будет попробовать.

В keymap'е (который для loadkeys) указать, что этот левый кейкод означает кавычку.

Проблема ещё в том, что кавычка не вводится в линуксовой консоли. Надо будет ещё пробовать jfbterm, когда шрифт докачается.

gentoo_root ★★★★★
() автор топика
Ответ на: :) от lazyklimm

Как он это делает? У него свой эмулятор терминала поверх фреймбуффера? Тогда чем emacs лучше fbterm'а? А если нет, то как?

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

Есть ещё один вариант, конечно. В консольном шрифте может быть до 512 символов, емнип. И можно задать маппинг из юникода или другой кодировки на него.
Естественно, это будет работать и без фреймбуфера.

x3al ★★★★★
()
Ответ на: комментарий от x3al

>В консольном шрифте может быть до 512 символов, емнип. И можно задать маппинг из юникода или другой кодировки на него.

Это разве не знакогенератор обычной консоли 80x25? Это точно работает с фреймбуфером? И как тогда в этот знакогенератор из Линукса загрузить символы, а главное, потом их использовать?

Наверное, завтра, настрою actkbd для ввода левых кодов, повешу на них типографские символы, разберусь с grab в actkbd, докачаю и соберу jfbterm и буду так пробовать.

Ещё интересно, как это делает emacs.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

>И как тогда в этот знакогенератор из Линукса загрузить символы, а главное, потом их использовать?
http://www.inp.nsk.su/~bolkhov/files/fonts/univga/index.html
Сделать шрифт, сделать loadfont. Я не знаю, почему это не сработает.

x3al ★★★★★
()
Ответ на: комментарий от x3al

>Я не знаю, почему это не сработает.

Если это тот знакогенератор на 512 символов, то например, потому что надо как-то дать ему понять, какие коды нужных unicode-символов соответствуют номерам символов в шрифте (последних меньше).

http://www.inp.nsk.su/~bolkhov/files/fonts/univga/index.html

А этот попробую, спасибо.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от x3al

>http://www.inp.nsk.su/~bolkhov/files/fonts/univga/index.html

Попробовал собрать. Что-то файлы в архиве 2000-ым годом датируются. Сначала не собралось из-за неправильного синтаксиса psfaddtable. Поменял, получил ошибку «psfaddtable: Bad magic number on UniCyrX.sfm» и кучу строк «Character in 'c' format wrapped in pack at ./bdf2psf.pl line 45, <BDF> line 40», последнее число разное. На выходе файл psf нулевой длины.

Попробовал руками ‘./bdf2psf.pl -s UniCyrX.sfm -o font.psf u_vga16.bdf’, загрузил шрифт, в нём мало того, что нет юникода, там только первые 128 символов из ASCII. Даже русского нет. Вводятся вопросы вместо нужных символов.

Кстати, в архиве есть файл UniCyrX.sfm, а у меня был шрифт UniCyr. Его тоже пробовал, тоже вопросы вместо юникода.

Таки да, консольный Линукс не готов для десктопа. Шрифтов и кеймапов нет; собрал вот Firefox, запустил на иксах, а окно браузера не на весь экран, и нельзя ресайзить. Из существующих DE и WM мне никакие не нравятся, а консоль оказалась недостаточно функциональной (Firefox сейчас в ней не запускается, и эта проблема со шрифтами и кеймапами ещё). Придётся, видимо, сидеть на Xfce, а консоль запускать в окне, потому что линуксовая консоль малофункциональна, и на неё, похоже, все забили, потому что 90% пользователей используют её только для запуска plymouth и сами об этом не подозревают.

gentoo_root ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.