xte является частью пакета xautomation. После нескольких часов чтения справочной страницы и поиска документации или рабочих примеров я все еще не могу заставить xte эмулировать нажатие клавиш Fn kbd> - F7 kbd>. Я пробовал Meta_L, Meta_R, Multi_key, клавишу F7, клавишу F7, затем клавишу F7. Кажется, ни одна комбинация не работает. Есть идеи, как я могу эмулировать нажатие комбинации клавиш клавишей Fn kbd> из команды / скрипта? xte 'keydown Meta_L' 'key F7' 'keyup Meta_L'
Это обычно очень хитро или близкое невозможный использовать xte
моделировать fn + f ключевые нажатия клавиш, поскольку сам fn ключ не регистрируется вообще в xev
, и очень часто fn ключи или fn комбинации не замечены ядром как другие нормальные клавиши на клавиатуре.
Сводка
Мне на самом деле удалось установить три сочетания клавиш (fn + f1, fn + f2 и fn + f3), потому что нажатие каждой из этих комбинаций привело к ядру, выпустив его 'неизвестную клавишу, нажатую... диалог кодов клавиши набора. Это означало, что я смог установить коды клавиши, и затем перейти к диалогу сочетаний клавиш и видеть, был ли keysym присвоен, например, XF86Paste. Если так, было теперь возможно присвоить программу для запуска от них, и было также теперь возможно использовать xte
для выдачи следующей команды, которая была эквивалентом нажатия fn + f1 для меня:
xte 'keydown XF86Paste' 'keyup XF86Paste'
Это может быть pecularity одного из моих ноутбуков, что я могу установить три из этих fn комбинаций как нормальные мультимедийные ключи как показано здесь, но я объясню процесс так или иначе для Вас и конкретных шагов, которые я выполнил.
Полное объяснение
Вы не смогли устанавливать ключи, так обычно Вы не можете, но два или три могут быть установленным, как я узнал. Нажмите fn и каждую из функциональных клавиш в свою очередь (f1-f12) при рассмотрении журнала ядра:
tail -f /var/log/kern.log
Если они будут распознаны, то Вы будете видеть ядро scancode:
atkbd serio0: Unknown key pressed (translated set 2, code 0xa7 on isa0060/serio0).
kernel: [22751.972058] atkbd serio0: Use 'setkeycodes e027 <keycode>' to make it known.
Теперь, например, необходимо настроить эти сочетания клавиш с информацией, данной ядром - т.е. использовать ядро scancode и код клавиши по Вашему выбору (предпочтительно высокое количество, таким образом, это не вмешивается ни во что больше). См. свои текущие коды клавиши с sudo dumpkeys | grep ^keycode
, как отмечено в этой полезной Ubuntu статья Wiki.)
Ясно, что, потому что fn не распознан как ключ, но только в сочетании с другим ключом, сочетание клавиш fn + f3, например, рассматривают в действительности как единственный ключ и так можно установить точно так же, как другие единственные мультимедийные кнопки:
sudo setkeycodes e027 135
Вышеупомянутая команда должна быть введена отдельно для каждого из сочетаний клавиш, которые Вы хотите установить и должны быть размещены в /etc/rc.local
(без sudo префикса), если Вы хотите их загруженный на запуске.
Теперь, необходимо проверить, было ли X keysym, связанные с новыми кодами клавиши путем движения в сочетания клавиш и наблюдения, может ли сочетание клавиш, например, fn + F1, быть установлено. Если это может быть, keysym, такой как XF86Paste появится, и ярлык может быть установлен запустить любую программу, которой Вы желаете.
Теперь все необходимо сделать для тестирования этого с xte
должен отметить keysym (например, XF86Paste), Вы видели в диалоге сочетаний клавиш для конкретной комбинации (например, fn + f1), и введите соответствующую команду:
xte 'keydown XF86Paste' 'keyup XF86Paste'
Это - эквивалент Вас нажатие и угнетение fn + f1.
Если Вы установили программу для запуска с сочетанием клавиш (fn + f...) assocated с keysym, то xte
событие запустит ту программу, и Вы будете знать, что установка работала.
Заключение
Это - способ установить fn + комбинации Функциональной клавиши, но для Вашего ноутбука только будет возможно, если ядро распознает по крайней мере одну из комбинаций как неизвестный, но устанавливаемый ключ. Только fn +f1, fn +f2 и fn + f3 были устанавливаемы для меня, но он будет отличаться для Вашего компьютера. Если Вы хотите экспериментировать с изменением действий Вашего 'сна' fn + кнопка функциональной клавиши, см. эту статью Wiki Ubuntu, но это не может быть абсолютно актуально.
Похоже, что автор (авторы) xte фиксировал/разрешал эту проблему просто.
Как тест, я связал ключ F7 к Аудио Бесшумной функциональности, Затем
echo 'key F7' | xte
и подтвердил, что ключ F7 был сгенерирован успешно xte.