Команда для принудительного снятия указателя (захват мыши)

35

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

Есть ли какая-либо команда, чтобы заставить приложение убрать указатель, не убивая его?

RYN
источник
2
Если у вас есть командная строка, вы можете попытаться отключить и снова включить мышь. Смотрите эту вики-страницу . Я не уверен, что это работает, особенно если причина замораживания связана с проблемой Javascript.
Паоло
@Guandalino: у меня есть командная строка (открыв другой терминал, нажав Alt + F2); Я проверю это в следующем случае, спасибо
RYN
2
Это называется захватом. Насколько я знаю, нет утилиты командной строки для манипулирования захватами .
Жиль "ТАК ... перестать быть злым"
У меня появилась эта проблема с Firefox 13, и поиск в Интернете привел меня к этому вопросу. Вы случайно не используете расширение Tree Style Tabs? Кажется, есть проблема с перетаскиванием вкладок.
Джулиано
@Juliano: я не использовал вкладки Tree Style доп. ! И до сих пор я больше не видел проблемы, поэтому я тоже не пробовал решения.
RYN

Ответы:

38

В современных установках X.org есть XF86Ungrabkeyym, которая заставляет сервер освобождать все активные указатели или захваты клавиатуры. Вы можете сделать так, чтобы сервер прерывал все захваты, включив параметр XKB break action, затем генерируя keysym либо с помощью команды, либо с помощью клавиатуры. С помощью xdotool :

setxkbmap -option grab:break_actions
xdotool key XF86Ungrab

В некоторых системах XF86Ungrabсимвол клавиши связан с комбинацией клавиш Ctrl+ Alt+ Keypad /. Однако эта возможность часто отключается, потому что это может позволить обойти заставку ).

Жиль "ТАК - перестань быть злым"
источник
Должен ли я запускать вышеуказанную команду каждый раз, или при каждой загрузке, или только один раз?
Аарон Франке
@AaronFranke Запустите эту команду при возникновении проблемы.
Жиль "ТАК - перестань быть злым"
8

Я ответил на это на Super User , и цитирую здесь:

[Как отметил Жиль,] На самом деле это возможно (по крайней мере, в последних версиях X).

Вы можете сделать это, нажав XF86Ungrabклавишу, введенную в этом коммите .

По умолчанию этот ключ не привязан ни к какому физическому ключу или комбинации клавиш (он был отключен в 2012 году после того, как о нем сообщили как о дыре в безопасности, поскольку он позволяет любому обходить экраны блокировки, взламывая их захваты). На некоторых других установках это связано с ярлыком, который использует цифровую клавиатуру. Очевидно, что это не будет работать на ноутбуках без клавиатуры.

Но вы все равно можете активировать KeySym, используя xdotool:

xdotool key XF86Ungrab

Это работает с X.org версии 2: 1.11.4-0ubuntu10.8 в Ubuntu Precise.

Механическая улитка
источник
-6

Ctrl+ Gосвободит фокус мыши в большинстве ситуаций.

llua
источник
Извините, я хотел бы понять лучше, это специфическая вещь для Linux или Firefox?
Паоло
Linux, не совсем уверен, но я думаю, что это функция xorg. Я часто использую его, чтобы освободить фокус от полноэкранных видеоигр.
Луа
2
Я сомневаюсь, что это работа; это один модификатор плюс ключ, эти комбинации используются для приложений (например, Firefox активирует поле «Найти» с этим), а не для чего-то вроде X (X использует такие клавиши, как Alt + Ctrl + Backspace)! после этого я попробовал это в обычном перетаскивании и ничего не произошло!
RYN
4
Это не относится ни к одной версии Firefox, которую я видел, и это определенно не относится к «в большинстве ситуаций»: многие приложения используют Ctrl+Gдля своих собственных целей, такой привязки по всей X не существует.
Жиль "ТАК ... перестать быть злым"