Xbindkeys (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
Xbindkeys
. Дата последней синхронизации: 5 сентября 2018. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
Xmodmap (Русский)
Sxhkd
Xorg (Русский)#Автоматизация
Xbindkeys - программа, позволяющая назначать команды клавишам (в том числе мультимедийным) или сочетаниям клавиш. Она не зависит от окружения рабочего стола и оконного менеджера.
Установка
Установите
пакет
xbindkeys
.
Настройка
Создайте пустой файл
~/.xbindkeysrc
или создайте образец файла (обратите внимание, что в нем настроены некоторые сочетания клавиш, такие как
Ctrl+f
, которые вы можете изменить или удалить):
$ xbindkeys -d > ~/.xbindkeysrc
Теперь вы можете редактировать его вручную, либо воспользоваться для настройки графической утилитой.
Совет
Для применения изменений выполните
xbindkeys -p
для перезагрузки настроенного файла.
Управление звуком
Вот пример конфигурационного файла, который связывает комбинации клавиш Fn на ноутбуке с командами
pactl
, которые регулируют громкость звука. Обратите внимание, что символ решетки (#) используется для создания комментариев.
# Увеличить громкость звука
"pactl set-sink-volume @DEFAULT_SINK@ +1000"
   XF86AudioRaiseVolume
# Уменьшить громкость звука
"pactl set-sink-volume @DEFAULT_SINK@ -1000"
   XF86AudioLowerVolume
# Отключить звук
"pactl set-sink-mute @DEFAULT_SINK@ toggle"
   XF86AudioMute
Для получения информации о дополнительных командах смотрите
PulseAudio (Русский)#Регулировка звука клавиатурой
или
ALSA#Keyboard volume control
.
Управление яркостью
Также можно определить сочетания клавиш, чтобы управлять яркостью экрана.
# Увеличить яркость
"xbacklight -inc 10"
   XF86MonBrightnessUp
# Уменьшить яркость
"xbacklight -dec 10"
   XF86MonBrightnessDown
Графический способ
Для графической настройке
установите
пакет
xbindkeys_config-gtk2
AUR
и запустите:
$ xbindkeys_config
Определение кодов клавиш
Чтобы найти код клавиши, введите следующую команду:
$ xbindkeys -k
Появится пустое окно. Нажмите кнопку, которой вы хотите назначить команду и
xbindkeys
выведет удобный фрагмент, который можно вставить в
~/.xbindkeysrc
. Например, пока окно открыто, нажмите
Alt+o
и вы получите следующий вывод (результат может отличаться):
"(Scheme function)"
    m:0x8 + c:32
    Alt + o
Первая строка представляет собой команду. Вторая содержит состояние (0x8) и код клавиши (32), о котором сообщает
xev
. Третья строка содержит значение клавиш, связанные с указанным кодом. Чтобы использовать этот вывод, скопируйте одну из двух последних строк в
~/.xbindkeysrc
и замените "(Scheme function)" на команду, которую вы хотите использовать.
Совет
Используйте команду
xbindkeys -mk
, чтобы держать открытым приглашение для ввода нескольких нажатий клавиш. Для выхода нажмите
q
.
Для определения клавиш мыши, вы можете использовать xev. Для получения дополнительной информации смотрите
[1]
.
Постоянные изменения
После того как вы закончите настройку сочетаний клавиш, откройте файл
xprofile
или
xinitrc
(в зависимости от вашего оконного менеджера) и поместите
xbindkeys
перед строкой, которая запускает ваш оконный менеджер или окружение рабочего стола.
Имитация мультимедийных клавиш
XF86Audio* и другие мультимедийные клавиши
[2]
довольно хорошо реализованы в основных DE. Для клавиатур без таких клавиш вы можете имитировать их с помощью других клавиш.
# Уменьшить громкость звука при нажатии Super-minus
"pactl set-sink-volume 0 -1000"
   m:0x50 + c:20
   Mod2+Mod4 + minus
Однако для самого выполнения этих клавиш вы можете использовать такие инструменты, как
xdotool
(из
официальных репозиториев
) и
xmacro
AUR
(из
AUR
). К сожалению, поскольку вы уже удерживаете некоторую клавишу-модификатор (например, Super или Shift), X распознает ввод как
Super-XF86AudioLowerVolume
, который ничего не выполняет ничего полезного. Ниже приведен скрипт, основанный на утилитах
xmacro
и
xmodmap
из пакета
xorg-xmodmap
[3]
.
#!/bin/sh
echo 'KeyStrRelease Super_L KeyStrRelease minus'
Это работает для одного вызова клавиши XF86AudioLowerVolume (если вы используете сочетание
Super+minus
), а не для нескольких при условие, что вы не отпускаете клавишу Super. Однако, если вы хотите, чтобы это работало, добавьте следующую строку в конец скрипта:
echo 'KeyStrPress Super_L' | xmacroplay :0
С помощью этого модифицированного скрипта, если вы нажмете комбинацию клавиш достаточно быстро, ваша клавиша Super_L останется 'включенной' до следующего раза, когда вы ее нажмете, что может привести к некоторым интересным побочным эффектам. Просто нажмите Super_L снова, чтобы переключить его состояние, или используйте оригинальный скрипт, если хотите, чтобы все 'просто работало', и смиритесь с одним нажатием на громкость вверх/вниз.
Эти инструкции совместимы с большим количеством XF86 мультимедиа клавиш (полезними из них будут XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioPlay, XF86AudioPrev, XF86AudioNext).
Решение проблем
Если по какой-либо причине горячая клавиша, которую вы уже настроили в
~/.xbindkeysrc
не работает, откройте терминал и введите следующее:
$ xbindkeys -n
Нажимая на не рабочую горячую клавишу, вы можете увидеть любую ошибку
xbindkeys
(например: mistyped command/keycode,...).
Если команда для сочетания клавиш работает через xdotool в командной строке, но не при ее нажатие (это особенно заметно в gnome), добавьте "+ Release" к этой комбинации:
"xdotool key --clearmodifiers XF86AudioPlay"
    Mod2 + F7 + Release
Это заставит клавишу F7 воспроизвести/приостановить аудио. Где команда "xdotool" работает в командной строке. Если удалить "+ Release", сочетание клавиш не будет работать с xbindkeys.