оригинальный пост
Я использую Ubuntu 10.04, используя менеджер окон openbox.
Недавно появился черный прямоугольник с размерами около 100x200 пикселей, скрывающий содержимое дисплея. wmctrl -l
не перечисляет ничего, что может быть причиной этого. Появляется на всех рабочих столах. Он ловит фокус мыши, но xkill
не заставляет его уходить. Он не отображается в цикле alt-tab. Установка окон в положение "всегда сверху" в z-порядке не препятствует тому, чтобы они были скрыты этим прямоугольником. Полноэкранные приложения и видео также скрыты прямоугольником.
Пока что единственные вещи, которые я нашел, могут отображаться без использования этого прямоугольника:
- другие сеансы TTY, означающие, что нажатие CTRL-ALT-F2 даст консоль, которая не закрыта прямоугольником.
xlock
. Эта проблема не затрагивается как при отображении экранной заставки, так и при запросе пароля.
Как я могу избавиться от прямоугольника, не убивая мою X-сессию или процессы, не отвечающие за это? Сопротивление бесполезно?
Обновить
Благодаря cYrus я научился использовать xprop
для получения PID окна. У него довольно ограниченный набор свойств:
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
window id # of group leader: 0x2000001
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 34717614
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_POPUP_MENU
_NET_WM_USER_TIME(CARDINAL) = 354386666
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x211bf8d
WM_CLIENT_LEADER(WINDOW): window id # 0x2000001
_NET_WM_PID(CARDINAL) = 16593
WM_LOCALE_NAME(STRING) = "en_CA.utf8"
WM_CLIENT_MACHINE(STRING) = "XXXXXX"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified location: 0, 0
program specified minimum size: 274 by 156
program specified maximum size: 274 by 156
window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "google-chrome", "Google-chrome"
WM_ICON_NAME(STRING) = "google-chrome"
_NET_WM_ICON_NAME(UTF8_STRING) = 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65
WM_NAME(STRING) = "google-chrome"
_NET_WM_NAME(UTF8_STRING) = 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65
Данный PID соответствует моему процессу Chrome верхнего уровня (версия 6.0.472.53, для тех, кто заинтересован). Я не хочу убивать процесс, так как он может привести к тому, что я потеряю 40+ вкладок, которые у меня открыты, и их разные истории, так что было бы здорово, если бы был какой-то способ закрыть или скрыть это окно. К сожалению, я не очень хорошо знаком со свойствами X и не знаю, как это сделать.
Тип окна указывает, что это всплывающее окно; Я полагаю, это еще не закончилось. Это объясняет, почему он не принимает фокус окна: то есть, хотя он ловит щелчки мышью, последующие нажатия alt-space вызывают меню окна для другого окна.
Я пытался преобразовать его тип в нормальный, но я получаю
$ xprop -set _NET_WM_WINDOW_TYPE\(ATOM\) _NET_WM_WINDOW_TYPE_NORMAL
xprop: error: unsupported conversion for _NET_WM_WINDOW_TYPE(ATOM)
Как я могу манипулировать этим эмбриональным окном так, чтобы оно перестало мешать отображению?