Консоль FreeBSD. Переопределяем клавиши

Именно на специальных клавишах можно начать упражнения по переопределению
"умолчальных" значений скан-кодов.

На странице о виртуальных консолях я упоминал, что можно задействовать их аж все 16 из числа теоретически доступных. Но переключаться последовательным перебором клавишей PrintScrin -- скучно, а прибегать к трем пальцам -- не всегда удобно, если не обладаешь лапой неандертальца. И потому за наиболее употребимыми (скажем, 13-15, но в принципе -- любыми) консолями резонно задействовать какой-нибудь простой, однопалечный, переключатель. Тут-то самое время вспомнить о, казалось бы, никчемных Windows-клавишах -- на деле одного из трех величайших изобретений фирмы Microsoft (два другие, на мой взгляд -- пасьянс "Солитер" и мышь с колесиком). И придать им требуемые функции.

Для начала отыскиваем эти клавиши в таблице раскладки. Их скан-коды -- 105, 106, 107 (левое и правое "окна", Menu, соответственно):

  105   fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62  O
  106   fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63  O
  107   fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64  O

Значения по умолчанию -- функциональные, f62-f64, при любых положениях модификаторов. Я не знаю, какие последовательности кодов им соответствуют, но то, что от природы они нигде не используются за пределами Windows -- почти уверен. Так что ничтоже сумняшеся во всех колонках заменяем их на scr13, scr14, scr15 (или scr_сколько_душе_угодно)

  105     scr13  scr13  scr13  scr13  scr13  scr13  scr13  scr13  O
  106     scr14  scr14  scr14  scr14  scr14  scr14  scr14  scr14  O
  107     scr15  scr15  scr15  scr15  scr15  scr15  scr15  scr15  O

И в результате получаем замечательный способ переключения между любимыми
консолями.

К слову сказать, любые манипуляции с клавиатурными раскладками выполняются
в любом текстовом редакторе, не забыв только выключить режим переноса строк.
И желательно -- над копией оригинального файла под другим именем, полученной
командой

$cp имя_оригинала.kbd my_keymap.kbd

Во избежание, как сказал благочестивейший Мухаммед Расуль ибн Мансур в книге Сокровище добродетельных, благодаря чему

сумел умереть своей смертью, не будучи вынужденным вступить на загробный мост, неся перед собою в руке собственную голову, наподобие фонаря"
Леонид Соловьев, Повесть о Ходже Насреддине

И пусть действия упомянутого мудреца будут нам примером во всех настроечных процедурах...

Далее, при большом количестве виртуальных консолей есть смысл
переопределить и клавишу PrintScreen -- у кого из нас хватит терпения
перебрать их полтора десятка в поисках нужной? Я, например, задействовал ее
под мгновенное переключение в X'овую консоль. Для чего заменил исходное
значение скан-кода 092 -- nscr, -- на scr16 (именно она зарезервирована у меня за сеансом X Window).

Я не знаю, можно ли переопределить положение slock -- пролистывателя
экранного буфера (исходя из общих соображений -- почему бы и нет?). Да только видится это ненужным -- осуществление данной процедуры при включенном ScrollLock кажется мне более удобным, чем принятый в Linux способ через Shift+PageUp/PageDown.


Содержание

. .