Я пытаюсь отладить полноэкранное приложение, которое использует OIS для ввода. Программа захватывает управление мышью и клавиатурой.
Когда я достигаю точки останова (я использую gdb), я не могу продолжать, шагать или делать что-либо, потому что не могу добраться до консоли. CTRL + ALT + F1 возвращает меня в оболочку, где я могу убить GDB, но это не помогает (так как я все еще хочу шагать / возвращаться и т. Д.).
Вместо этого я хотел бы нажать CTRL + ALT + F1, а затем «отключить» захват, который есть у приостановленного полноэкранного приложения, возможно, с использованием некоторого инструмента командной строки. Есть ли такая программа?
Я знаю, что есть хаки, которые я могу добавить в OIS / мою Программу, но мне нужен внешний метод.
Я пытался добавить «AllowDeactivateGrabs» в xorg.conf (как предложено здесь ), но, похоже, это больше не работает (?).
Использование: Ubuntu 14.04 Gnome
Существует ответ, можно было бы примерить 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
иногда, Вы, возможно, должны повторно прикрепить устройство к предыдущему ведущему устройству.
Примечание: лучше добавить новый указатель, прежде чем Вы начнете отлаживать. Я также заметил, что некоторые менеджеры окон имеют некоторые проблемы с несколькими курсорами, которые вызывают все виды неожиданных ошибок - например, "вводящая работа остановок" или ввод работ, но в неправильном окне. Так отъезд нескольких курсоров включил, обычно может не быть хороший вариант.