Вернуться   МПМ Былины - Мир Древней Руси > Для игроков > Клиенты для игры

Клиенты для игры Все что связано с клиентами для игры. Jmc, MMC, ZMud etc...

Ответ
 
Опции темы Опции просмотра
Старый 07.11.2012, 07:24   #1
Борис
Новичок
 
Регистрация: 22.07.2011
Сообщений: 3
По умолчанию Сочетания с Ctrl в mmc

В документации по mmc написано, что в нём работают такие привычные и удобные сочетания Ctrl+стрелки, и Ctrl+PgUp/PgDown. Однако у меня эти сочетания не работают. Пробовал пересобирать клиент, не помогло. Кто-нибудь знает возможное решение проблемы? ОС Linux.
Борис вне форума   Ответить с цитированием
Старый 07.11.2012, 10:29   #2
lexik
Админ форума
 
Регистрация: 05.03.2004
Сообщений: 635
По умолчанию

смотри настройки консоли... например xterm
__________________
©º°¨¨°º© МПМ "Былины" ©º°¨¨°º© Мир преданий и сказаний Древней Руси
lexik вне форума   Ответить с цитированием
Старый 07.11.2012, 15:44   #3
Борис
Новичок
 
Регистрация: 22.07.2011
Сообщений: 3
По умолчанию

А можешь поподробнее, на что обратить внимание? В bash все эти сочетания работают. В mmc же только в командную строку вставляется код символа (например, 1;5D в случае Ctrl+left). Конечно, можно отлавливать эти коды и задать их обработку самому (как люди делают с numpad), но, возможно, есть решение получше.
Борис вне форума   Ответить с цитированием
Старый 08.11.2012, 19:46   #4
lexik
Админ форума
 
Регистрация: 05.03.2004
Сообщений: 635
По умолчанию

Была статья от Андрея Базникина:

Код:
MMC и XTerm
Наверняка многие, кто использовал mmc на *nix-системах, столкнулись с некоторыми проблемами при использовании совместно с X-Window, а именно отсутствием цветов и невозможностью использовать сочетания клавиш типа Ctrl+Alt+F5. Я решил эти проблемы для себя и хочу поделиться своим опытом.

Во-первых, цвета. MMC запускается в цветном режиме, если определена переменная окружения COLOR_TERM или текущий терминал называется "xterm-color". 

Так как я использую xterm, то воспользовался вторым способом - за одно многие другие программы "научились" узнавать, что им можно использовать цвета. Добавьте в файл ~/.Xdefaults строку следующего вида:
XTerm*TermName: xterm-color
Далее, клавиатура. Для того, чтобы корректно работал keypad (клавиши k0..k9, k*, k/, k+. k-) необходимо в ~/.Xdefaults добавить строки:
!if ServerNumLock in XF86Config, these lines useless
XTerm*VT100*translations:#override \
@Num_Lock <Key>KP_Multiply: string("\033Oj")\n \
@Num_Lock <Key>KP_Add: string("\033Ok")\n \
@Num_Lock <Key>KP_Decimal: string("\033Ol")\n \
@Num_Lock <Key>KP_Subtract: string("\033Om")\n \
@Num_Lock <Key>KP_Divide: string("\033Oo")\n
!/
XTerm*VT100*translations:#override \
@Num_Lock <Key>KP_0: string("\033Op")\n \
@Num_Lock <Key>KP_1: string("\033Oq")\n \
@Num_Lock <Key>KP_2: string("\033Or")\n \
@Num_Lock <Key>KP_3: string("\033Os")\n \
@Num_Lock <Key>KP_4: string("\033Ot")\n \
@Num_Lock <Key>KP_5: string("\033Ou")\n \
@Num_Lock <Key>KP_6: string("\033Ov")\n \
@Num_Lock <Key>KP_7: string("\033Oy")\n \
@Num_Lock <Key>KP_8: string("\033Ow")\n \
@Num_Lock <Key>KP_9: string("\033Ox")\n
Теперь при нажатой клавише NumLock будут возвращаться нужные последовательности. Учтите только, что в конфигурации X-Window не должна быть выставлена опция ServerNumLock!
Теперь, нужно научить MMC должным образом реагировать на возвращаемые последовательности. Пропишите в ~/.mmc4rc команду:
CL::addkey("\033O" . chr($_ + ord('p')), "k" . chr($_ + ord('0'))) for 0..9;
или в приглашении MMC напишите
/perl {CL::addkey("\033O" . chr($_ + ord('p')), "k" . chr($_ + ord('0'))) for 0..9}
Теперь научи MMC правильно реагировать на функциональные клавиши в сочетании с различными модификаторами:
my @metaname = ("S", "M", "S-M", "C", "S-C", "C-M", "S-M-C");
for my $mod (2..8) {
CL::addkey("\033O${mod}".═ chr($_ + ord('P') - 1), ${metaname}[$mod - 2] ."-f". $_ ) for
CL::addkey("\033[". scalar $_+10 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 5;
CL::addkey("\033[". scalar $_+11 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 6..1
CL::addkey("\033[". scalar $_+12 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 11..
}
Удобно вынести все команды MMC в отдельный модуль и подключать его из ~/.mmc4rc. У меня он называется xterm.pm, подключается (в ~/.mmc4rc) командой
═ use xterm;
В заключение полностью приведу содержимое моего файла Xdefaults и xterm.pm:
---- ~/.Xdefaults ----
!XTerm*VT100*numLock: true
XTerm*TermName: xterm-color
!if ServerNumLock in XF86Config, these lines useless
XTerm*VT100*translations:#override \
@Num_Lock <Key>KP_Multiply: string("\033Oj")\n \
@Num_Lock <Key>KP_Add: string("\033Ok")\n \
@Num_Lock <Key>KP_Decimal: string("\033Ol")\n \
@Num_Lock <Key>KP_Subtract: string("\033Om")\n \
@Num_Lock <Key>KP_Divide: string("\033Oo")\n \
!/
!mmc: CL::addkey("\033O" . chr($_ + ord('p')), "k" . chr($_ + ord('0'))) for 0..9;
XTerm*VT100*translations:#override \
@Num_Lock <Key>KP_0: string("\033Op")\n \
@Num_Lock <Key>KP_1: string("\033Oq")\n \
@Num_Lock <Key>KP_2: string("\033Or")\n \
@Num_Lock <Key>KP_3: string("\033Os")\n \
@Num_Lock <Key>KP_4: string("\033Ot")\n \
@Num_Lock <Key>KP_5: string("\033Ou")\n \
@Num_Lock <Key>KP_6: string("\033Ov")\n \
@Num_Lock <Key>KP_7: string("\033Oy")\n \
@Num_Lock <Key>KP_8: string("\033Ow")\n \
@Num_Lock <Key>KP_9: string("\033Ox")\n \
Ctrl <Key>Return: string("\033OM")\n
XTerm*VT100*font: -screen-fixed-medium-*-*-*-*-*-*-*-*-*-koi8-r
XTerm*VT100*deleteIsDEL: true
XTerm*VT100*background: black
XTerm*VT100*foreground: white
---- end ----
---- ~/xterm.pm ----
# k0..k9
CL::addkey("\033O" . chr($_ + ord('p')), "k" . chr($_ + ord('0'))) for 0..9;
# mod-Fx
my @metaname = ("S", "M", "S-M", "C", "S-C", "C-M", "S-M-C");
for my $mod (2..8) {
CL::addkey("\033O${mod}".═ chr($_ + ord('P') - 1), ${metaname}[$mod - 2] ."-f". $_ ) for
CL::addkey("\033[". scalar $_+10 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 5;
CL::addkey("\033[". scalar $_+11 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 6..1
CL::addkey("\033[". scalar $_+12 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 11..
}
1;
---- end ----
-- 
Andrew I Baznikin
принцип назначения становится понятен и сделай по аналогии то, что необходимо
__________________
©º°¨¨°º© МПМ "Былины" ©º°¨¨°º© Мир преданий и сказаний Древней Руси
lexik вне форума   Ответить с цитированием
Старый 09.11.2012, 12:13   #5
Борис
Новичок
 
Регистрация: 22.07.2011
Сообщений: 3
По умолчанию

Спасибо, но эту статью я видел и начал учить perl, чтобы уметь перемещать курсор по строке. Однако хотелось бы понять, почему у меня эти сочетания не работают по умолчанию. Запускаю из-под wine виндовую версию - всё работает. Ни у кого с линуксом больше нет такого?
Борис вне форума   Ответить с цитированием
Ответ

Метки
ctrl, mmc


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

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

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


Часовой пояс GMT +4, время: 03:00.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot