forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.GOLDED

 
 
Опции темы Опции просмотра
  #1  
Старый 17.08.2016, 16:40
Serguei E. Leontiev
Guest
 
Сообщений: n/a
По умолчанию curses, GoldEd, Shift, Ctr и современных терминалах

Serguei E. Leontiev написал(а) к All в Nov 15 05:48:12 по местному времени:

From: "Serguei E. Leontiev" <leo@sai.msu.ru>

Всем привет,

После праздника 7 ноября, я вспомнил о своём обещании Владимиру Фёдорову
сделать настройки Терминала для OSX. При их изготовлении я таки выяснил,
что ещё 10 лет назад в terminfo стали хранить так называемые
"определяемые пользователем" возможности kUP5, kDN5, kRIT5 и kLFT5, век
живи, век учись. Кроме того, заметил ещё парочку несколько ошибок в
gkbdbase.cpp

Как результат, получилось немного больше исправлений:

alt-ctrl-shift.patch в папке на Яндекс.Диске

README-utf8.txt

# vim:set sw=4 ts=8 tw=72 fileencoding=utf8::Кодировка:UTF-8[АБЁЪЯабёъя]

Описание файлов каталога golded+/contrib/Unix



1. alt-ctrl-shift.patch - Исправления работы с curses для golded+:

1.1 Исправлена ошибка распознавания <Alt>+<BackSpace> и
<Alt>+<Enter>, согласно `man getch', KEYBACKSPACE и KEYENTER
могут возвращаться вместо '\b' и '\r'.

1.2 Исправлена обработка ошибки для не поддерживаемых символов
(клавиш) curses, раньше выскакивал 'Ъ'.

1.3 Поддержка клавиш <Shift>+<стрелка вверх/вниз> определённых
возможностями terminfo (capname): kri/kind
(scroll-backward/forward key).

ПРЕДУПРЕЖДЕНИЕ: Проверить поддержку и соответствие настроек
терминала и его описания можно выполнить так:

$ infocmp $TERM | egrep "^[^[:space:]]|k(LFT|RIT|ri|ind)="
# Reconstructed via infocmp from file:
/usr/share/terminfo/x/xterm-256color
xterm-256color|xterm with 256 colors,
kEND=\E[1;2F, kНOM=\E[1;2Н, kIC=\E[2;2~, kLFT=\E[1;2D,
kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, kb2=\EOE,
kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
kri=\E[1;2A, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
$ od -c
^[[1;2D^[[1;2C^[[1;2B^[[1;2A
0000000 033 [ 1 ; 2 D 033 [ 1 ; 2 C 033 [ 1 ;
0000020 2 B 033 [ 1 ; 2 A \n

1.4 Поддержка описаний terminfo/ncurses <Alt/Ctrl/Shift>+Fn клавиш.

Поддерживаются, как современные терминалы: xterm R7,
gnome-terminal, FreeBSD консоли, естественно в рамках реализации
самих терминалов и описания в termcap/terminfo.

Так и старые, добрые, ортодоксальные терминалы: xterm R6, urxvt,
Linux консоль и PuTTY, которые отображали <Shift>+F1-F10 на
F11-F20 и <Ctrl>+<Shift>+F1-F10 на <Ctrl>+F11-F20.

ПРЕДУПРЕЖДЕНИЕ: При типичных вариантах использования некоторых
терминалов переменная окружения TERM может не
соответствовать типу терминала. Часто для gnome-terminal,
PuTTY и консоли FreeBSD назначен тип терминала xterm,
описание которого им не полностью соответствует, клавишам
gnome-terminal соответствует TERM=gnome, gnome-256color и
др., а PuTTY соответствует TERM=putty, putty-256color или
xterm-r6.

Проверить поддержку и соответствие настроек терминала
описанию terminfo можно выполнить так:

$ infocmp $TERM | egrep "^[^[:space:]]|kf[1-9][0-9]*="
# Reconstructed via infocmp from file:
/usr/share/terminfo/x/xterm-256color
xterm-256color|xterm with 256 colors,
kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P,
kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~,
kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~,
kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R,
kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~,
kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~,
kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R, kf4=\EOS,
kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khome=\EOН, kich1=\E[2~,
$ od -c # Проверяем F5, <Shift>+F5, <Alt>+F5
^[[15~^[[15;2~^[[15;3~
0000000 033 [ 1 5 ~ 033 [ 1 5 ; 2 ~ 033 [ 1 5
0000020 ; 3 ~ \n

1.5 Поддержка <Alt/Ctrl/Shift>+<стрелок> для X11 R7 (xterm R7,
gnome-terminal и других терминалов поддерживающих DECFNK, vt520
1994 года издания). Без использования базы описаний terminfo,
функцией define_key() определяются соответствующие
Esc-последовательности.

Кроме того, для не слишком древних ncurses, проверяется наличие
User-Defined возможностей терминала вида
k{UP|DN|RIT|LFT}{число}, при наличии используются.

Поддерживаются только чистые модификаторы, комбинации
модификаторов <Ctrl>+<Shift>+<стрелка> просто игнорируются, т.к.
поддержка таких комбинаций требует изменений за пределами кода
работы с ncurses. Она несложная, но я не могу их оттестировать.

1.6 Исправлен выход за границу массива scancode_table[].

1.7 Поддержка <Alt>+<национальная буква> для стандартных
белорусских, русских и украинских ЙЦУКЕН клавиатур в том виде,
как они даны в описании Golded+, т.е. <Alt>+<соответствующая
ASCII клавиша>.

Нестандартные и фонетические клавиатуры, такие как ЯВЕРТЫ не
поддерживаются, их поддержка требует соответствующей настройки
xterm для X11 или Терминала для OS X.

ПРЕДУПРЕЖДЕНИЕ: Известные мне версии luit некорректно
перекодирую UTF-8 Esc последовательности, соответствующие
<Alt>+<национальная буква>, т.е. при использовании luit их
следует преобразовывать настройками терминала.

$ od -c
^[й
0000000 033 320 271 \n
0000004
$ printf "\033й" | od -c
0000000 033 320 271
0000003
$ printf "\033й" | ../../../coding/luit-20150706-x86_64/luit
-encoding KOI8-R -c | od -c
0000000 033 320 342 225 247
0000005

1.8 Применение (ЭТОТ АБЗАЦ СЛЕДУЕТ УДАЛИТЬ, после внедрении
исправления в основной код Golded+):

Создать в каталоге golded+/contrib каталог Unix и скопировать
туда все файлы.

$ cd golded+
$ patch -p0 < contrib/Unix/alt-ctrl-shift.patch
$ ln -s ../../contrib/Unix/mygolded.h goldlib/gcfg/mygolded.h #Опционально
$ make


2. putty-0-65.ti - расширенное terminfo описание терминала putty 0.65

2.1 putty и putty-256color описание терминала с возможностями
terminfo (capname): kri/kind (scroll-backward/forward key).

2.2 Применение в качестве собственного описания обычного
пользователя (не root):

$ mkdir $НOME/.terminfo
$ tic -x contrib/Unix/putty-0-65.ti
$ TERM=putty-256color; export TERM


3. GED-KOI8-U-strict.terminal - файл описания Терминала для OS X 10 (у
меня не было возможности его проверить на предыдущих версиях).
Дополнительно cvt-GED-terminal.sh его преобразует в файлы
GED-{KOI8-U,UTF-8}-{strict,reverse,combined}.terminal

3.1 Определяет Esc-клавиши согласно TERM=xterm (xterm R7, DECFNK) с
преобразованием <Alt>+<национальная буква> для стандартных
белорусских, русских и украинских ЙЦУКЕН клавиатур.

3.2 Клавиша "Ins" эмулируется , либо F13 с модификаторами, либо на
узких клавиатурах, <control>+<option>+I без модификаторов.

3.3 GED-*-reverse.terminal - меняет местами "option" и "control"
таким образом, что бы передвижение по словам было таким же как в
других приложениях OS X. Возможно, предпочтительнее для тех, кто
использует Golded+ только под OS X.

3.4 GED-*-combined.terminal - <option>+<стрелка> и
<control>+<стрелка> порождают одинаковые действия. Возможно,
предпочтительнее для тех, кто не использует комбинаций Golded+
<Alt>+<стрелка>.

3.5 GED-UTF-8-*.terminal - предназначен для запуска ged под screen
или luit. Например, для использования белорусского языка, т.к. в
Терминал OS X нет поддержки кодировки KOI8-RU.

3.6 Применение:

$ open contrib/Unix/GED-KOI8-U-strict.terminal

или открыть в Finder.


4. koi8rxterm-phonetic.sh - макет запуска koi8rxterm с заменой
<Alt>+<национальная буква> для одного из вариантов русской
фонетической клавиатуры ЯВЕРТЫ.


5. make-alt-translations.sh - Построение содержимого ресурса
VT100.translations для xterm


6. Каталог MacOSX содержит собранный gedlnx для OS X 10 (ЭТОТ АБЗАЦ
СЛЕДУЕТ УДАЛИТЬ, после внедрении исправления в основной код
Golded+).


7. Каталог Linux содержит собранный gedlnx для CentOS 7 (ЭТОТ АБЗАЦ
СЛЕДУЕТ УДАЛИТЬ, после внедрении исправления в основной код
Golded+).


8. Каталог FreeBSD содержит собранный gedlnx для FreeBSD 9/10 (ЭТОТ
АБЗАЦ СЛЕДУЕТ УДАЛИТЬ, после внедрении исправления в основной код
Golded+).

--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru
--- ifmail v.2.15dev5.4
Ответить с цитированием
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 03:44. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot