Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.GOLDED
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.GOLDED с датами от 16 Jul 13 03:28:02 до 28 Sep 24 01:53:26, всего сообщений: 3614
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 679 из 3614 ========================================= RU.GOLDED =
От   : Serguei E. Leontiev              2:5020/400         13 Nov 15 19:54:58
Кому : Vladislav Vetrov                                    13 Nov 15 19:54:58
Тема : Re: Linux Golded+ 1.1.5 bugs fix ctrl/shift
FGHI : area://RU.GOLDED?msgid=<1187503062@ddt.demos.su>+626ac3ed
На   : area://RU.GOLDED?msgid=2:5020/2140.152@Fidonet.org+5633e4de
= Кодировка сообщения определена как: CP866 ==================================
==============================================================================
From: "Serguei E. Leontiev" <leo@sai.msu.ru>

Привет Владислав,

От 31 октября 2015 г., 0:44:56 в fido7.ru.golded ты писал:
VV> _Hint_: огромное спасибо Сергею Леонтьеву 2:5020/400 за
VV> проделанную работу и за подсказку где копать, чтобы добить до
VV> конца.
VV> *2All* - намекните, где брать определение для комбинации
VV> клавиш Shift-Ctrl-стрелки, Shift-end, Shift-home для
VV> конструкции типа define_key("\033[1;5D", G_KEY_CLEFT)?

Я тебя уже посылал к документации на xterm и vt520. Однако есть ещё одно
направление.

Числа 8-9 во время просветления после всенародного праздника я заметил,
что команда `infocmp -x xterm' выдаёт очень много знакомых букв:
...
kDC4=\E[3;4~, kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~,
kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
kDN6=\E[1;6B, kDN7=\E[1;7B, kEND3=\E[1;3F, kEND4=\E[1;4F,
kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kLFT3=\E[1;3D,
kLFT4=\E[1;4D, kLFT5=\E[1;5D, kLFT6=\E[1;6D,
kLFT7=\E[1;7D, kNXT3=\E[6;3~, kNXT4=\E[6;4~,
kNXT5=\E[6;5~, kNXT6=\E[6;6~, kNXT7=\E[6;7~,
kPRV3=\E[5;3~, kPRV4=\E[5;4~, kPRV5=\E[5;5~,
kPRV6=\E[5;6~, kPRV7=\E[5;7~, kRIT3=\E[1;3C,
kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C,
kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A, kUP4=\E[1;4A,
kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A,

Таким образом, у не слишком древнего ncurses можно их запросить функцией
tigetstr(), если предварительно вызвать use_extended_names(TRUE), к
сожалению, только для БД терминалов типа terminfo.

Структура имени, как я понимаю такова:
    DC  - <Del>;
    DN  - <Down>;
    END - <End>;
    HOM - <Home>;
    IC  - <Ins>;
    LFT - <Left>;
    NXT - <PgDn>;
    PRV - <PgUp>;
    RIT - <Right>;
    UP  - <Up>.

Esc-последовательности без цифры - <Shift>+<кнопка>, они и так
распознаются getch(), так же как кнопки без Shift.

А с цифрой, это те самые. Цифра N = 1 + (Shift*1 + Alt*2 + Ctrl*4 +
Meta*8), т.е. так же, как в Esc-последовательностях DECFNK.



Модификаторы функциональных клавиш устроены немного по иному, ncurses
getch() их сам распознаёт и отображает в KEY_F(X) (KEY_F0 ... KEY_F63 в
коде, в terminfo kfX=). Мне известно два способа отображения Fn:

  1. Современный, FreeBSD консоль (teken), Терминал Apple (nsterm),
gnome-terminal (gnome) и xterm R7 (xterm):
X = n + 12*(Shift*1 + Ctrl*2 + Alt*4)

  2. Ортодоксальный, устаревший, Linux консоль (linux), PuTTY (putty),
rxvt (rxvt), xterm R6 (xterm-r6):
X = n + 10*(Shift*1 + Ctrl*2 + Alt*4)

     По сути, он рассчитан на старые клавиатуры, а-ля XT, с 10
функциональными клавишами, а на широких современных клавиатурах
<Shift>+F1 можно набрать как F11. :)

Лично мне не известно, как различать такие терминалы, кроме как по
списку имён.

VV> В чём
VV> может быть причина, что Shift-del просто удаляет мимо
VV> системного буфера Linux?

Вот не заметил я в Golded+ кода для взаимодействия с системным буфером
(clipboard). Думаю, что твой Shift-insert к Golded+ пришёл уже в виде
набираемых символов.

Если очень хочется, то, как минимум, у xterm и rxvt есть соответствующие
Esc последовательности. Хотя, скажем, vim взаимодействует с X11 или
Windows напрямую.

--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru

 
--- ifmail v.2.15dev5.4
* Origin: ГАИШ МГУ (2:5020/400)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.054045 секунды