|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Zahar Kiselev 2:5030/382.1 31 Mar 2002 02:31:50 To : Victor Wagner Subject : Re: mc -------------------------------------------------------------------------------- Mar 29 08:21 02, Victor Wagner wrote to Zahar Kiselev: VW>>> Заняться что-ли на досуге, похакать драйвер консоли, VW>>> научить его этому, а заодно и смене шрифта по esc]50;имя VW>>> щрифта\007 и многому другому. ZK>> Меня вот больше интересует - откуда ты откопал что смена ZK>> шрифта должна делаться именно по такой esc-команде, а не по ZK>> какой-то другой? А какие esc-команды еще есть там, куда ты VW> Из доки на xterm, естественно VW> /usr/share/doc/xterm/ctlseqs.ms.gz А... Это я читал. Я думал, что ты нашел еще какой-нибудь источник, где рассказано о принципах "придумывания" esc-команд. Ведь кто-то когда-то их придумывал исходя из каких-то соображений? Hе от фонаря же? Соответственно если хочется придумать свою "искейпину" - то имеет смысл руководствоваться традициями... ZK>> есть? Меня например больше возмущает то, что по End и ZK>> Ctrl-End выдается один и тот же esc-код. Хотя даже без VW> Так тут по-моему драйвер ни разу не виноват - это бага стандартных VW> раскладок клавиатуры. Hу я допустил "логический скачок" в рассуждениях:) Конечно, виноват не сам драйвер, а его настройка - то есть те самые раскладки клавиатуры. Причем что удивительно - и в драйвере клавиатуры и в библиотеке ncurses предусмотрено очень много возможностей в части работы с клавиатурой. Hо почему-то они в стандартных настройках того и другого используются где-то на одну треть. И у меня есть старая идея настройки эти дописать "по максимуму". Единственное препятствие - необходимость найти или придумать соответствия клавиш и выдаваемых esc-кодов. А вот с этим - затык случился:( Пока работа остановилась вот в таком состоянии - ниже результаты "исследований" на эту тему. Про esc-коды пока вообще полная неясность:( VW> Ты, кстати, какими раскладками пользуешься - имени Злобина VW> (console-tools-cyrillic) или теми, что в дистрибутиве были? Я использую раскладку, собственноручно написанную четыре года назад. Из наиболее заметных отличий - увеличено количество функциональных клавиш, благодаря чему mc различает F3 и Shift-F3, переключение консолей переставлено на Ctrl-Alt-Fn и также увеличено их количество. VW> Всякие ctrl-alt-shift-meta-home меня, впрочем, признаться, интересуют VW> мало. Hу не фанат я Emacs-а. А оно для FTE нужно. Emacs`ом я тоже не пользуюсь к сожалению. И еще это было бы полезно при написании собственных консольных программ. ----- terminfo.ted begins ----- В таблице 1 приведены такие соответствия между клавишами и кодами terminfo, которые либо присутствуют в стандартной раскладке линукса и terminfo для linux, либо не присутствуют, но очевидны (кроме функциональных клавиш). Таблица 2 - комбинации клавиш, которые, по-моему, имеет смысл заводить в terminfo. Плюс поставлен для комбинаций, описанных в таблице 1. Минус для тех, которые трогать не следует. Коды terminfo взяты из таблички для qnx и немного подправлены. Вопросы проставлены в клетках, которые ещё предстоит заполнить. Таблица 3 - коды клавиш из terminfo, не упоминаемые в таблице 1. Быть может, следует использовать в первую очередь коды, имеющие шифтованную пару? Hа Alt-Клавишу назначать простую terminfo-entry, а на Ctrl-Клавишу -- шифтованную? Кстати, таких пар осталось ровно 20. Клавиш в таблице 2 -- тоже 20. *Таблица 1=============================================* Комбинация Код Код Описание клавиш term term info cap ============ ====== ==== ============================= <S-Tab> kcbt kB back-tab key <Right> kcuf1 kr right-arrow key <S-Right> kRIT %i shifted right-arrow key <PgUp> kpp kP previous-page key <PgDn> knp kN next-page key <Left> kcub1 kl left-arrow key <S-Left> kLFT #4 shifted left-arrow key <Ins> kich1 kI insert-character key <S-Ins> kIC #3 shifted insert-character key <Del> kdch1 kD delete-character key <S-Del> kDC *4 shifted delete-character key <Down> kcud1 kd down-arrow key <S-Down> kind kF scroll-forward key <End> kend @7 end key <S-End> kEND *7 shifted end key <Home> khome kh home key <S-Home> kHOM #2 shifted home key <Up> kcuu1 ku up-arrow key <S-Up> kri kR scroll-backward key <PrtScrn> kprt %9 print key <S-PrtScrn> kPRT %f shifted print key <Backspace> kbs kb backspace key *======================================================* *Таблица 2==============================* Клавиша Plain Shift Ctrl Alt ============== ===== ===== ===== ===== <Tab> - + kctab ? <Backspace> + ? ? ? <Return> - ? kent ? <PrtScrn> + + kRDO krdo <Ins> + + kil1 krmir <Del> + + kdl1 ked <Home> + + ? kbeg <End> + + kext kel <PgUp> + - kPRV kprv <PgDn> + - kNXT knxt <Up> + + ? ? <Down> + + ? ? <Right> + + kMOV kmov <Left> + + kMSG kmsg <KP/> - ? ? ? <KP*> - ? ? ? <KP-> - ? kCAN kSPD <KP+> - ? kCMD kSAV <KPEnter> - ? ? ? <KP5> kcmd ? kcpy kcrt *=======================================* *Таблица 3======================================* Код Код Описание term term info cap ====== ==== =================================== ka1 K1 upper left of keypad ka3 K3 upper right of keypad kb2 K2 center of keypad kc1 K4 lower left of keypad kc3 K5 lower right of keypad ktbc ka clear-all-tabs key kctab kt clear-tab key khts kT set-tab key kclr kC clear-screen or erase key kclo @3 close key krmir kM sent by rmir or smir in insert mode kent @8 enter/send key kf0 k0 F0 function key kil1 kA insert-line key kll kH lower-left key (home down) kmrk %2 mark key kopn %6 open key kref &1 reference key krfr &2 refresh key krst &4 restart key kslt *6 select key kbeg @1 begin key kBEG &9 shifted begin key kcan @2 cancel key kCAN &0 shifted cancel key kcmd @4 command key kCMD *1 shifted command key kcpy @5 copy key kCPY *2 shifted copy key kcrt @6 create key kCRT *3 shifted create key kdl1 kL delete-line key kDL *5 shifted delete-line key ked kS clear-to-end-of-screen key kel kE clear-to-end-of-line key kEOL *8 shifted clear-to-end-of-line key kext @9 exit key kEXT *9 shifted exit key kfnd @0 find key kFND *0 shifted find key khlp %1 help key kHLP #1 shifted help key kmsg %3 message key kMSG %a shifted message key kmov %4 move key kMOV %b shifted move key knxt %5 next key kNXT %c shifted next key kopt %7 options key kOPT %d shifted options key kprv %8 previous key kPRV %e shifted previous key krdo %0 redo key kRDO %g shifted redo key krpl &3 replace key kRPL %h shifted replace key kres &5 resume key kRES %j shifted resume key ksav &6 save key kSAV !1 shifted save key kspd &7 suspend key kSPD !2 shifted suspend key kund &8 undo key kUND !3 shifted undo key *===============================================* ----- terminfo.ted ends ----- VW>>> Самым большим приколом было бы встроить в линуксовый VW>>> драйвер консоли эмуляцию tektronics поверх framebuffer-а. VW>>> Тогда куча программ (начиная с gnuplot и dvigt) VW>>> научилась бы рисовать графику в консоли без всяких VW>>> специальных телодвижений с их кодом. ZK>> А графика в консоли так уж нужна? При наличии вполне живых ZK>> Иксов? VW> X-ы понимаешь ли, медленно запускаются. Hу не знаю. У меня на домашней машине и то достаточно(для меня) быстро. А машина далеко не модная. > Так что либо тебе не нужна VW> консоль, и ты всегда сидишь в X-ах, либо очень хочется иногда VW> смотреть графику, не поднимая ради этого X-ов. Если _иногда_ - то времени на запуск Иксов вобщем-то не жалко. А если графика нужна часто - то имеет смысл сидеть в Иксах. Я не уверен, что графика в режиме эмуляции tektronics будет выглядеть достаточно хорошо. У нас и в Иксах-то например с отображением шрифтов не все и не всегда хорошо... Zahar(@spbdept.rbc.ru) --- Msged/LNX 6.1.0 * Origin: undefined location (2:5030/382.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/32883ca5d30c.html, оценка из 5, голосов 10
|