LINUX.ORG.RU

Сообщения Alexej1971

 

настройка горячих клавиш mc в gnome-termunal

Форум — General

Долго мучился с настройкой горячих клавиш встроенного редактора mcedit для выделения и перемещения по тексту (Shift и Ctrl + стрелки, Home, End, PgUp, PgDown) в двух эмуляторах - konsole и gnome-terminal. Для konsole здесь в форуме рецепты есть, а для gnome-terminal - вроде бы, нету. К сожалению, обработка нужных кодов «захардкордена», т.е нужные изменения можно внести только правкой исходников и пересборкой библиотеки vte, на которую опирается gnome-terminal (сам gnome-terminal править не нужно). Предлагаю свой патч и инструкции по применению.

Мой патч успешно работает в системе:

Scientific Linux 6.1, KDE 4.3.4, Gnome-terminal 2.31.3 <- vte 0.25.1 . Возможно, для Вашей системы патч следует подправить.

Экспериментально было выяснено, что для нормальной работы mcedit нужно обеспечить выдачу следующих esc-последовательностей:

		Home		End		PgUp	PgDwn	Up	Down
      <>	[OH ([1~)	[OF ([4~)	[5~	[6~	[A	[B
Alt  +<>	[1;3H		[1;3F		[5;3~	[6;3~	[1;3A	[1;3B
Shiht+<>	[1;2H		[1;2F		[5;2~	[6;2~	[1;2A	[1;2B
Ctrl +<>	[1;5H		[1;5F		[5;5~	[6;5~	[1;5A	[1;5B
Ctrl+Shiht+<>	[1;6H		[1;6F		-	-	-	-
Ctrl+  Alt+<>	[1;7H		[1;7F		-	-	-	-
Shiht+ Alt+<>	[1;4H		[1;4F		[5;4~	[6;4~	[1;4A	[1;4B
Ctrl+Shiht+Alt+<>[1;8H		[1;8F		-	-	-	-

Сочетания двух функциональных клавиш получить не удалось. У меня Ctrl+Shift переключают раскладки. В моей версии gnome-terminal выделение в редакторе по Shift+стрелки работало правильно, скроллинг истории команд вне mc по Shift+стрелки зачем-то был переключен на Alt+Shift+стрелки, Shift + любая клавиша - выдача esc-последовательностей «наверх» была заблокирована, но после «разблокирования» коды для всех срелок и PgUp, PgDown оказались настроены правильно, коды для Home и End настроены не были. Патч решает эти проблемы + :

  • делает выдачу двойного \e\e gj Esc (было: Esc -> \e, Alt+Esc -> \e\e)
  • изменяет код выдачи Секд+Enter на \e\n (позволяет вбрасывать имя текущего файла в командную строку для Ctrl+Enter в добавление к Alt+Enter)
  • делает линию курсора-подчёркивания толще на 1 пиксел.

Любые из этих изменений Вы можете переделать по своему вкусу правкой патча, кромет того, для Ваших версий «дословно» патч может и не подойти.

Скачивание пакетов исходников и инструкции по пересборке на примере rpm-based дистрибутива:

1) подготовка дерева rpmbuild:

$ yum install yum-utils rpmdevtools - ставим нужные пакеты

$ rpmdev-setuptree - подготовка rpmbuild - директорий в home

2) скачивание исходников и проверка сборки:

$ cd ~/rpmbuild/SRPMS

$ yumdownloader --source vte - cкачивание исходного кода. vte-0.25.1-7.el6.src.rpm скачен в текущую директорию.

$ sudo yum-builddep vte - установка всех необходимых devel-пакетов (sudo apt-get build-dep vte - то же для пакета vte в apt-get - системе)

$ rpm -ivh vte-0.25.1-7.el6.src.rpm - будут установлены необходимые архивы и патчи в SOURCES, файл spec в SPEC.

Проверка, что всё нормально собирается:

$ cd ../SPEC

$ rpmbuild -bp --target=`uname -m` vte.spec - сборка дерева исходников

$ rpmbuild -bb --target=`uname -m` vte.spec - сборка двух пакетов rpm, помещаются в директорию ~/rpmbuild/PRMS/i686. Этот шаг необходим, т.к. в именно на этом шаге создаются makefile и прочие служебные файлы во всех директориях. Теперь, если перейти в ~/rpmbuild/BUILD/vte-0.25.1, то можно пересобирать и устанавливать проект vte командой

$ sudo make install

Либо просто из директории ~/rpmbuild/PRMS/i686

$ sudo rpm -ivh vte-0.25.1-7.el6.i686.rpm

3) добавление патча и сборка изменённого vte:

Добавить патч в виде файла vte-0.25.1-cursor-and-mc-keys.patch в директорию ~/rpmbuild/SOURCES . Добавить в файл ~/rpmbuild/SPEC/vte.spec строки (в нужное место):

Patch5: vte-0.25.1-cursor-and-mc-keys.patch

%patch5 -p1 -d src -F 2 -b .cursor-and-mc-keys

повторно собрать дерево исходников:

$ rpmbuild -bp --target=`uname -m` vte.spec

повторно собрать makefile

$ rpmbuild -bb --target=`uname -m` vte.spec

Далее либо

$ sudo rpm -ivh --force ../RPMS/i685/vte-0.25.1-7.el6.i686.rpm ,

либо

$ cd ../BUILD/vte-025.1; sudo make install

Пока не разобрался, как здесь прикреплять файлы, поэтому патч размещаю в следующем сообщении. Буду благодарен, если его люди знающие доведут до сведения разработчиков. На сайте gnome изменения вносятся как-то с трудом....

 mc gnome-terminal

Alexej1971
()

RSS подписка на новые темы