/ в начала / проjекты / MUD-проекты / mmc+xterm | RU | EN |
See English version above. Files | ФайлыRussian version | Русская версияНаверняка многие, кто использовал mmc на *nix-системах, столкнулись с некоторыми проблемами при использовании совместно с X-Window, а именно отсутствием цветов и невозможностью использовать сочетания клавиш типа Ctrl+Alt+F5. Я решил эти проблемы для себя и хочу поделиться своим опытом. Я использую FreeBSD-4.7 и xterm из поставки XFree86-4.2, поэтому для других систем могут потребоваться переделки. Во-первых, цвета. MMC запускается в цветном режиме, если определена переменная окружения COLOR_TERM или текущий терминал называется "xterm-color". Так как я использую xterm, то воспользовался вторым способом - за одно многие другие программы "научились" узнавать, что им можно использовать цвета. Добавьте в файл ~/.Xdefaults строку следующего вида: XTerm*TermName: xterm-color Далее, клавиатура. Для того, чтобы корректно работал keypad (клавиши k0..k9, k*, k/, k+. k-) необходимо в ~/.Xdefaults добавить строки: XTerm*VT100*translations: #override \ @Num_Lock Теперь при нажатой клавише NumLock будут возвращаться нужные последовательности. Учтите только, что в конфигурации X-Window не должна быть выставлена опция ServerNumLock! Теперь, нужно научить MMC должным образом реагировать на возвращаемые последовательности. Пропишите в ~/.mmc4rc команду: CL::addkey("\033O" . chr($_ + ord('p')), "k" . chr($_ + ord('0'))) for 0..9; или в приглашении MMC напишите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 1..4; CL::addkey("\033[". scalar $_+10 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 5; CL::addkey("\033[". scalar $_+11 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 6..10; CL::addkey("\033[". scalar $_+12 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 11..12; } Удобно вынести все команды MMC в отдельный модуль и подключать его из ~/.mmc4rc. У меня он называется xterm.pm, подключается (в ~/.mmc4rc) командой use xterm; Замечание от Зелёный_Змий aka PoLaZ:В slackware/debian`е намного проще использовать rxvt - там более правильный термкап, и намного проще довести до ума. В хтерме у меня так и не получилось заставить корректо работать мета-модификатор например English version | Английская версияSorry, English version not ready now... If inetrest in it - let me know via e-mail.
Andrew [dikiy] Baznikin http://d.scn.ru |