как назначается комбинация клавиш для правильной программы?

в Ubuntu (или, если на то пошло большинство других дистрибутивов linux), я мог бы использовать ярлык ctrl + t, чтобы открыть новую вкладку (в firefox или аналогичную), или я мог бы использовать вкладку alt +, чтобы сделать выделенное окно переключателя единиц, или я мог бы используйте alt + ctrl + F <1-6>, чтобы перейти к другому tty. Какая часть linux обрабатывает и разрешает эти ярлыки? Что делать, если несколько программ / процессов имеют один и тот же ярлык, как приоритет разрешен?

(Для последнего я предполагаю, что это относится только к программам на разных уровнях, например, firefox и скрипт сеанса могут конкурировать, но firefox и chrome никогда не будут конкурировать, потому что они не должны одновременно отвечать на запросы)

2 Solutions collect form web for “как назначается комбинация клавиш для правильной программы?”

Какая часть linux обрабатывает и разрешает эти ярлыки?

По большей части, отдельные приложения или оконный менеджер (WM) / среда рабочего стола (DE). Есть несколько пойманных и обработанных ядром, таких как VT-переключение с Cntl-Alt-F [N].

Фактическое событие распространяется:

  • Из ядра
  • К серверу Xorg
  • К WM / DE
  • К заявлению

Если его поймать и обработать в любой точке, он, вероятно, не продолжит свой следующий уровень.

Если вы запускаете приложение (не GUI) внутри терминала GUI, терминал GUI будет иметь приоритет над ним.

Что делать, если несколько программ / процессов имеют один и тот же ярлык, как приоритет разрешен?

WM / DE будет иметь приоритет над приложением.

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

Теперь давайте посмотрим, что произойдет, когда нажата клавиша. Ключевое нажатие и отпускание ключа обрабатываются отдельно, хотя библиотека может иметь дело с объединением их для программиста. Драйвер клавиатуры обрабатывает некоторые вещи, такие как обработка ключа Shift как модификатора, а не дискретного ключа. Сам драйвер может захватить некоторые комбинации клавиш для собственного использования или может передать его программе.

Какая программа получает его? Программы с окнами, как стандарт, получают только уведомления о нажатиях клавиш, когда они имеют фокус ввода. Программа также может «захватить» определенные ключи для собственного использования. Alt + Tab захватывает Unity, отрицая, что любая другая программа видит его. Ctrl + T захватывается системой меню Firefox, но только тогда, когда окно Firefox с меню, которое хочет знать об этом, имеет фокус ввода.

Итак, кто определяет, кто что? Помимо фокуса ввода, как я уже упоминал, он часто бывает первым, первым захваченным. Alt + Tab захватывает Unity (и многие другие оконные менеджеры), поэтому пользовательская программа редко может ее убрать. Конечный пользователь находится во власти используемых программ; если программа, такая как vim , позволяет вам настраивать определенные комбинации клавиш для разных вещей, тогда вам хорошо идти, пока программа получает нажатие клавиши.

  • Пересылка X11 не работает от шпатлевки и XMing до centos 6.4
  • Исправление X11 для удаления буфера обмена SELECTION
  • Почему VNC расширена, а не X11
  • X не запускается, потому что /tmp/.X11-unix/X0 - это каталог
  • Могу ли я запускать через SSH?
  • Клавиатура неправильно сконфигурирована после возобновления работы с приостановки
  • Как установить этот скрипт как root в терминале: ./qt-opensource-linux-x64-5.3.2.run?
  • Разница между компоновкой на стороне сервера и клиентской стороной в Xorg?
  • Комбинация клавиш для горизонтальной прокрутки
  • Как я могу определить, есть ли я в текстовой области?
  • LXDE: Как запустить программу / команду при нажатии одной или нескольких клавиш?
  • Linux и Unix - лучшая ОС в мире.