2015-12-08 1 views
0

Когда я запускаю firefox в качестве своего активного приложения и делаю [ctrl] + [shift] + T, firefox открывает новую вкладку. Когда я делаю [ctrl] + [alt] + T, linux открывает новое окно терминала. Просто заставил меня задуматься над возможными внутренностями этой операции.Как именно обрабатываются команды быстрого вызова клавиатуры?

Я предположил, что контроль над stdin лежит в активном приложении, и если он читает что-то, что имеет смысл, он идет вперед и делает это. Теперь я чувствую, что до ввода даже в stdin ядро ​​сканирует его для ярлыков, имеющих отношение к нему, и только те, которые остались, передаются на stdin, а оттуда - в приложения для пользовательского пространства.

Является ли этот взгляд точным?

ответ

1

Вы правы в том, что вызывает его, а не детали. Это не ядро, которое поглощает его в этом случае, это диспетчер окон.

Ваша комбинация клавиш для Ctrl + Alt + T съедается вашим оконным менеджером. Если вы перейдете к быстрым клавишам Window Manager, найдите привязку к Ctrl + Alt + T и не определите ее, она будет работать в FF правильно.

WM - это «слой», если вы будете получать все события и передает те, которые он определяет, применительно к базовому приложению.

+0

И Windows Manager - это процесс уровня ядра, я думаю? – user2277550

+0

Диспетчер окон работает поверх X, поэтому у вас есть своя штука: Kernel-> X-> Window Manager-> FF – mikeb