Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Приемы работы в Ubuntu.
Глава 5: Система X11

Оригинал: "Ubuntu Hacks: Chapter 5 - X11"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: сентябрь 2010 г.

Совет # 48: Используем вашу мультимедийную клавиатуру

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

Когда вы нажимаете клавишу на вашей клавиатуре, она обнаруживает нажатие клавиши и отправляет соответствующий "код клавиши", который затем проверяется по поисковой таблице, в соответствие с которой этот код клавиши преобразуется в символ. Впрочем, на многих современных клавиатурах есть ряд дополнительных клавиш, которые обычно возвращают коды клавиш, не входящие в стандартную поисковую таблицу, и Linux не знает, что с ними делать.

В Ubuntu, вы можете использовать эти дополнительные клавиши для быстрого обращения к таким задачам, как открытие электронной почты, запуска браузера или изменения громкости звука. С помощью настроек, имеющихся в GNOME, вы можете сконфигурировать некоторые специальные действия, но для достижения максимальной гибкости воспользуйтесь пакетом Hotkeys, который позволит вам полностью настроить поведение горячих клавиш.

Назначаем горячие клавиши в GNOME

Если вы хотите настроить горячие клавиши для выполнения только основных задач, начните с открытия System→Preferences→Keyboard Shortcuts (Система → Настройки → Горячие клавиши) и просмотра списка предопределенных действий так, как это показано на рис. 5-1.

Используйте системные настройки горячих клавиш Keyboard Shortcuts

Рис.5-1. Используйте системные настройки горячих клавиш Keyboard Shortcuts для назначения клавишам основных действий

Выберите запись, в корой указано действие, а затем нажмите комбинацию клавиш, которую вы хотите связать с этим действием. Например, если вы хотите использовать клавишу F7 для запуска веб-браузера, щелкните по ярлычку рядом с записью "Launch web browser" ("Запуск веб-браузера"), а затем нажмите клавишу F7. Изменения вступят в силу немедленно, так что сохранять новые настройки не нужно.

Встроенные настройки горячих клавиш, имеющиеся в GNOME, позволяют использовать только предопределенные действия, так что если вы хотите запустить специальный скрипт или произвольную программу, вам потребуется что-нибудь более гибкое, например, программа Hotkeys.

Программа Hotkeys

Hotkeys является программой, которая перехватывает коды мультимедийных клавиш и соотносит их с конкретными событиями. События полностью определяются пользователем, так что вы можете настроить клавиши для запуска программ или даже пользовательских скриптов. Например, в дополнение к основным действиям, таких как управление громкостью звука, открытия электронной почты или запуска браузера, вы можете настроить клавиши так, чтобы с их помощью можно было делать такие вещи, как инициирование SSH подключения к удаленной машине, смена фона рабочего стола, запуск OpenOffice.org, запуск создания резервной копии, то есть делать почти все, что вы можете придумать.

Программа Hotkeys находится в группе дополнительного программного обеспечения universe, которое официально не поддерживается Ubuntu, так что если ваш компьютер не настроен на использование программного обеспечения из репозитария universe, прежде, чем вы сможете установить эту программу, вам, возможно, потребуется обратиться к разделу "Изменение списка репозитариев пакетов" [Совет # 60]:

$ sudo apt-get install hotkeys

Разбираемся с конфигурированием программы Hotkeys

Поскольку в программе Hotkeys используется двухэтапная система конфигурирования, вероятно, не всегда сразу становится ясно, что нужно изменить для настройки команд, а иногда изменения, которые вы сделали, не соответствуют тому, что ожидалось. Однако все станет на свои места сразу, как только вы поймете, как программа Hotkeys обрабатывает свои конфигурационные файлы.

Первая стадия — это файл описания клавиатуры, в котором задается два вида отображений: косвенное преобразование кодов клавиш в предварительно заданные события и прямое преобразование кодов клавиш в команды, определяемые пользователем. Второй стадией является конфигурационный файл программы Hotkeys, в соответствие с которым происходит второй этап отображения предопределенных событий, связывающий их с явно указываемыми командами.

Такой подход позволяет программе Hotkeys с помощью файла описания клавиатуры отображать код клавиши, генерируемый кнопкой Favorites (Избранное), которая есть на вашей клавиатуре, в предварительно определенное событие Favorites (Избранное), а затем с помощью файла конфигурации Hotkeys отображать событие Favorites (Избранное) в конкретную команду, например, в команду gnome-moz-remote --remote=openBookmarks. Таким образом, в конфигурационном файле Hotkeys можно определить большую часть стандартных действий, которые будут работать с различными клавиатурами и не будут зависеть от файла описания клавиатуры

Однако, вы также можете непосредственно в файле описания клавиатуры определить пользовательское событие. При таком подходе код клавиши будет отображаться непосредственно в команду совсем без ссылки на конфигурационный файл Hotkeys. Этот поход предназначен для случаев, когда вы, вероятно, захотите задать более необычные действия, такие как запуск терминала или автоматическое открытие SSH сессии для предопределенного хоста.

Задаем тип клавиатуры

Первым шагом к конфигурированию Hotkeys будет задание типа вашей клавиатуры, в соответствии с которым будут распознаваться правильные коды клавиш. Программа Hotkeys поставляется с примерами конфигураций для различных стандартных типов клавиатур, так что если вам повезет, вы можете просто выбрать в примерах вашу клавиатуру и все будет работать. Чтобы посмотреть список поддерживаемых типов клавиатур, запустите следующую команду:

$ hotkeys -l

Затем с помощью флага -t вы можете указать клавиатуру одного из этих типов.

Но что делать, если ваша клавиатура отсутствует в списке поддерживаемых моделей?

Никаких проблем. Вы можете определить свой собственный тип клавиатуры путем копирования файла примера /usr/share/doc/hotkeys/sample.xml в директорий .hotkeys, который находится внутри вашего домашнего директория, после чего вы можете изменить в нем записи в соответствие с кодами клавиш, возвращаемых вашей клавиатурой:

$ mkdir ~/.hotkeys
$ cp /usr/share/doc/hotkeys/sample.xml ~/.hotkeys/mykeyboard.def

Не забудьте проверить структуру XML в этом файле. На момент написания этой книги в конце файла был неправильно закрыт тег <description> (вместо него должен быть тег </description>).

Если вы снова запустите команду hotkeys -l, вы увидите, что теперь в дополнение ко всем клавиатурам, указываемым по умолчанию, в верхней части списка появилась клавиатура типа mykeyboard. Затем, когда вы будете запускать программу Hotkeys, вы можете ссылаться на эту клавиатуру по имени файла.

Файл примера прокомментирован, но, возможно, будет лучше, если вы взглянете на один из файлов определения клавиатур, которые есть в директории usr/share/hotkeys/ и посмотрите, как они структурированы. Возможно, вам лучше начать с копирования одного из имеющихся файлов, если вы обнаружите, что он близок к тому, что вам нужно.

Чтобы настроить файл, вам нужно знать точные коды всех мультимедийных клавиш, которые вы хотите использовать. Вы можете определить коды клавиш с помощью утилиты, которая называется xev ("События X"), которая ничего не делает, кроме как следит за любыми событиями, происходящими с устройствами ввода, в том числе с мышью и клавиатурой, и отображает в X коды событий. Если вы запустите xev, а затем будете нажимать по порядку на каждую из ваших мультимедийных клавиш, вы сможете точно увидеть, что именно возвращается, а затем сможете добавить эти коды в ваш файл .hotkeys/mykeyboard.def. Во-первых, установите xev:

$ sudo apt-get install xev

Затем запустите из терминала утилиту xev для того, чтобы открылось небольшое тестовое окно. Установите фокус мыши на тестовом окне, а затем нажмите одну из мультимедийных клавиш. В терминале, который использовался для запуска xev, вы увидите для каждого нажатия клавиши несколько строк информации о событии. Все, что вам нужно, это найти запись keycode и число, которое указано за ней. Это число является кодом клавиши, который в X ассоциируется с конкретной клавишей. Составьте список мультимедийных клавиш и соответствующих им кодов клавиш.

После того, как вы закончите с xev, вы можете закрыть его с помощью нажатия в терминале клавиш Ctrl-C или нажав кнопку закрытия окна в оконном менеджере.

Затем вам нужно в текстовом редакторе открыть ваш конфигурационный файл .hotkeys/mykeyboard.def записать соответствие между событиями и кодами клавиш по списку, который вы только что составили. Например, чтобы поставить в соответствие коду клавиши 178 событие Favorites (Избранное), вам нужно сделать следующую запись:

<Favorites keycode="178"/>

В файле примера есть ряд предопределенных событий, которые можно раскомментировать и настроить в соответствии с кодами ваших клавиш.

Настраиваем предопределенные события

Теперь, когда в программе Hotkeys есть список соответствия между кодами клавиш и предопределенными действиями, вы можете задать команду, связанную с каждым таким действием. Глобальным конфигурационным файлом является файл /etc/hotkeys.conf, но если вы хотите настроить список своих действий, то можете создать локальную копию, которая переопределит глобальные настройки:

$ cp /etc/hotkeys.conf ~/.hotkeys/hotkeys.conf

Следуя примеру, приведенному выше, вы можете с помощью следующей записи задать в программе Hotkeys зоткрытие в браузере Mozilla списка избранных ссылок Favorites:

Favorites=gnome-moz-remote --remote=openBookmarks

Создаем пользовательские события

Приведенное выше описание позволяет настроить предопределенные действия, но от них не слишком много пользы, если вы хотите выполнить такое действие, как "Запуск xterm с записью видео и открытие SSH сессии с сервером www.example.com"! Не проблема: вы можете использовать файл определения клавиатуры, чтобы связать коды клавиш с любой произвольной командой, которая вам понравится. Например, если вы хотите использовать клавишу F2 для того, чтобы открывать SSH сессию к удаленной машине, вы можете использовать xev для определения кода клавиши F2 и отредактировать файл ~/.hotkeys/mykeyboard.def следующим образом:

<userdef keycode="68" command="xterm -fg black -bg white -e ssh www.example.com">SSH www.example.com</userdef> 

В данном случае 68 является кодом клавиши F2, а SSH www.example.com является меткой события, которое будет выдано на экран программой Hotkeys, когда будет выполняться эта команда.

Проверяем программу Hotkeys

Почти сделали! В настоящее время у вас есть файл определения клавиатуры, в котором задано соответствие между кодами клавиш и действиями, плюс есть конфигурационный файл программы Hotkeys, в котором задано соответствие между действиями и командами. Теперь пришло время запустить программу Hotkeys и проверить ее.

Укажите тип клавиатуры и запустите программу hotkeys:

$ hotkeys -t mykeyboard -b

Флаг -b указывает, что программа Hotkeys будет запускаться не в фоновом режиме; в этой ситуации будет проще сразу вносить изменения, если дела пойдут не совсем по плану, т.к. вам будет достаточно только нажать клавиши Ctrl-C для остановки программы, а затем запустить программу снова. Позже, когда вам все понравится в вашей конфигурации, вы можете не использовать флаг -b и программа Hotkeys сама автоматически запустится в фоновом режиме.

Если же программа Hotkeys уже работает в фоновом режиме, а вам нужно сделать изменение, вы можете воспользоваться следующей командой:

$ killall hotkeys

а затем запустить программу снова.

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

Чтобы избавить себя от хлопот и не передавать каждый раз тип клавиатуры как аргумент программы Hotkeys, вы можете поместить в .hotkeys/hotkeys.conf следующую запись:

Kbd=mykeyboard

которая после этого будет применяться автоматически.

Настройка изображения, выдаваемого на экран

Когда программа Hotkeys выполняет какое-нибудь действие, она для того, чтобы у вас была обратная связь, выдает на экран дисплея соответствующее сообщение. По умолчанию, выдаваемое сообщение имеет большой размер, ярко-зеленое и сохраняется на дисплее в течение нескольких секунд, но для того, чтобы сделать его менее навязчивым, вы можете изменить его настройки.

Поищите в самом конце вашего файла hotkeys.conf настройки, начинающиеся с osd_. Пример конфигурации хорошо прокомментирован, поэтому делайте любые изменения, которые вы посчитаете нужными, а затем для того, чтобы изменения вступили в силу, остановите программу Hotkeys, а затем снова ее запустите.

Автоматически запускаем программу Hotkeys

Поскольку программа Hotkeys для того, чтобы она могла выполнять свою работу, должна быть запущена, вам нужно запускать ее каждый раз, когда вы входите в X. Чтобы с этим не возникало проблем и программа запускалась автоматически, просто добавьте ее в список запускаемых программ Startup Programs в System→Preferences→Sessions (Система → Настройки → Сессии). Щелкните по кнопке Add (Добавить) и наберите команду, которую вы использовали для запуска программы Hotkeys из командной строки, а затем сохраните эту настройку (см. рис.5-2).

Добавляем Hotkeys в список программ Startup Programs

Рис.5-2. Добавляем программу Hotkeys в список программ Startup Programs, автоматически запускаемых в вашей сессии

В следующий раз, когда вы войдете в GNOME, программа Hotkeys будет автоматически запущена и немедленно станут функционировать мультимедийные клавиши.


Назад Оглавление Вперед