Остановить или отключить захват клавиатуры / мыши / ввода из оболочки

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

Когда я достигаю точки останова (я использую gdb), я не могу продолжать, шагать или делать что-либо, потому что не могу добраться до консоли. CTRL + ALT + F1 возвращает меня в оболочку, где я могу убить GDB, но это не помогает (так как я все еще хочу шагать / возвращаться и т. Д.).

Вместо этого я хотел бы нажать CTRL + ALT + F1, а затем «отключить» захват, который есть у приостановленного полноэкранного приложения, возможно, с использованием некоторого инструмента командной строки. Есть ли такая программа?

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

Я пытался добавить «AllowDeactivateGrabs» в xorg.conf (как предложено здесь ), но, похоже, это больше не работает (?).

Использование: Ubuntu 14.04 Gnome

2
задан 22 May 2015 в 15:16

1 ответ

Существует ответ, можно было бы примерить StackOverflow: https://stackoverflow.com/questions/23795010

Для полноэкранного предложения приложения barteks2x выполнения отдельного X-сервера и переключения на него через Ctrl-Alt-Fn мог бы быть полезным.

Он делает 5 предложений. Раздел я нашел полезным, и сделан от оболочки, копируется здесь. Это непосредственно копируется от ответ barteks2x :

можно добавить второй указатель мыши с помощью xinput:

  • Выполнение xinput имя указателя создавать-ведущего-устройства. Второй указатель мыши должен появиться на экране. Это создает пару клавиатуры/указателя, Вы ничего не должны делать со второй добавленной клавиатурой. Это не будет присоединено ни к какому физическому устройству.

  • Выполнение xinput перечисляет для списка всех устройств

    На моем ноутбуке, это похоже на это:

.

 ⎡ Virtual core pointer                      id=2    [master pointer  (3)]
 ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]

 ⎜   ↳ ETPS/2 Elantech Touchpad                  id=14   [slave  pointer  (2)]
 ⎜   ↳ A4Tech USB Mouse                          id=11   [slave  pointer  (2)]
 ⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Lenovo EasyCamera                         id=10   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
⎡ new-mouse pointer                         id=15   [master pointer  (16)]
⎜   ↳ new-mouse XTEST pointer                   id=17   [slave  pointer  (15)]
⎣ new-mouse keyboard                        id=16   [master keyboard (15)]
    ↳ new-mouse XTEST keyboard                  id=18   [slave  keyboard (16)]
  • недавно добавленный указатель мыши (ведущее устройство) имеет id=15. У меня есть сенсорная панель и внешняя мышь, таким образом, я могу присоединить одного из них к новому курсору и оставить другое приложенное старому курсору. Если у Вас нет 2 физических устройств - можно оставить старый указатель без физического устройства присоединенным.

  • Теперь выполняет идентификатор ведущего устройства идентификатора ведомого устройства повторного прикрепления xinput. Например, если я хочу присоединить свою сенсорную панель к новому указателю: xinput повторно прикрепляют 14 15

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

  • , Когда Вы больше не хотите второе использование указателя мыши xinput идентификатор ведущего устройства удалять-ведущего-устройства в моем случае, это было бы xinput удалять-ведущее-устройство 15

  • иногда, Вы, возможно, должны повторно прикрепить устройство к предыдущему ведущему устройству.

    Примечание: лучше добавить новый указатель, прежде чем Вы начнете отлаживать. Я также заметил, что некоторые менеджеры окон имеют некоторые проблемы с несколькими курсорами, которые вызывают все виды неожиданных ошибок - например, "вводящая работа остановок" или ввод работ, но в неправильном окне. Так отъезд нескольких курсоров включил, обычно может не быть хороший вариант.

1
ответ дан 4 October 2019 в 14:55

Другие вопросы по тегам:

Похожие вопросы: