LINUX.ORG.RU

Серое окно при попытке запуска java приложений под тайловым менеджером

 , , ,


0

2

Лет 5 сижу на xmonad, cейчас захотелось поиграться с устройством WM и поэтому хочу пересесть на dwm. Пытаюсь запустить pycharm на последнем и вижу серый экран. Пропись «wmname LG3D» и «export _JAVA_AWT_WM_NONREPARENTING=1» в .xinitrc не помогает. Та же история происходит под i3, под awesome приложение просто падает.
Под xmonad все работало с одним wmname, _JAVA_AWT_WM_NONREPARENTING в настройках не было.
При этом при запуске так же появлялся серый экран, но если переключиться на другой рабочий стол и обратно, то все начинало работать. Подобное под dwm не работает.
ЧЯДНТ?


Ответ на: комментарий от actics

Ссылка что-то твоя не открывается.

Вообще, похоже, распространённая проблема: https://github.com/swaywm/sway/issues/595

IDEA (и всё что на её рельсах по типу PyCharm) подразумевает некоторую интеграцию под DE, под GNOME и KDE там есть специфические пункты меню. Возможно именно из-за этой интеграции такое поведение. Другие Java-приложения работают? Если использовать системный JDK/JRE, а не тот который IDEA (PyCharm) тянет с собой, или наоборот?

EXL ★★★★★ ()
Ответ на: комментарий от EXL

Проблема распространенная, но обычно легко лечилась.
Менюшка работает всегда, не работает сам редактор. Всякие окна типа настроек тоже открываются. Другие java приложения не пробовал, так как их нет. С системным JDK та же история.
Самое странное то, что под xmonad оно хоть со странного пинка, но работает. Под всеми остальными нет. При этом все что меняю в системе это аргумент у exec в xinitrc

По ссылочке было это, но тут ничего полезного

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.ide.ClassUtilCore to field sun.net.www.protocol.jar.JarFileFactory.fileCache
WARNING: Please consider reporting this to the maintainers of com.intellij.ide.ClassUtilCore
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2019-09-07 19:51:12,735 [ 4812] WARN - s.impl.EditorColorsManagerImpl - Cannot find scheme: VibrantInk from plugin: com.intellij.database
2019-09-07 19:51:12,735 [ 4812] WARN - s.impl.EditorColorsManagerImpl - Cannot find scheme: WarmNeon from plugin: com.intellij.database
2019-09-07 19:51:12,735 [ 4812] WARN - s.impl.EditorColorsManagerImpl - Cannot find scheme: High сontrast from plugin: com.intellij.database

actics ()

Я честно не знаю, что там творится с этими Java-приложениями, но была информация, что конкретно c IDEA были проблемы с фокусом и вообще он довольно странные вещи под иксами делает. Поэтому может сбивать с толку WM. Вот был как раз тред и какие-то там типа решения. Например со steal focus.

Window Maker и флаг «no_focusable» для sun-awt-X11-XFramePeer

Больше пока ничего не могу сказать, так как, видать, специфичная проблема.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

Попробовал. Снятие suppress.focus.stealing не помогло.
Посмотрел diff на xprop и xwininfo между рабочим pycharm на xmonad и не рабочем на dwm. Из интересного только в диффе xprop:
* На xmonad есть строчка _NET_WM_DESKTOP(CARDINAL) = 5 и нет _NET_WM_STATE(ATOM) =
На dwm наоборот

actics ()
Ответ на: комментарий от Bass

Спасибо, но судя по форумам воспроизводится только у меня) Хотя у меня практически голый арч, ничего особенного я не настраивал.

Возможно завтра будет не актуально :D Поставил sway, под wayland все работает. Если сегодня получится запилить под свои нужды останусь там. Но если будет нужно - предоставлю любой дебаг, dwm я
все равно хочу для того что бы поиграться с напильником.

actics ()
Ответ на: комментарий от actics

Да, я не помнимаю, как у меня вчера все заработало. Clion теперь открывается, pycharm нет :(
При этом я вернул все три настройки

А можешь прислать снимок экрана электронной почтой?

Bass ★★★★ ()

Я протестировал и под xmonad (снимок), и под dwm (снимок), и я бы сказал, что поведение абсолютно одинаковое:

  • _JAVA_AWT_WM_NONREPARENTING=1 либо wmname LG3D (достаточно лишь одного) абсолютно необходимы (и достаточны) для запуска любого Java-приложения, использующего JFC/Swing для рисования GUI, будь то IDEA (и производные), NetBeans или JDeveloper.
  • Специфичный для IDEA (и производных) флаг suppress.focus.stealing имел смысл лишь в моём частном сценарии для WindowMaker. Т. е. на «серость» (= проблемы отрисовки) окна он никак не влияет.

Ну и, если в пределах одного оконного менеджера работает, скажем, PyCharm и не работает CLion – то это, очевидно, уже не связано с самим оконным менеджером.

Если одно и то же (скажем, PyCharm) в одном и том же окружении (_JAVA_AWT_WM_NONREPARENTING=1 и проч.) работает в xmonad и не работает в dwm – то, опять же, дело не в особенностях Swing GUI. Я бы попробовал для увеличения статистической выборки попробовать другие IDE (NetBeans, JDeveloper) и дальше уже стал бы сравнивать логи (PyCharm под xmonad vs PyCharm под dwm).

Bass ★★★★ ()
Ответ на: комментарий от actics

А почему могло полечиться сменой wmname LG3D на wmname compiz-fusion?

Потому что слой AWT в Java «знает» о нескольких разных оконных менеджерах, и для разных WM применяются разные эвристики. Если интересно – можешь покопаться в коде OpenJDK. Т. е. моё первоначальное утверждение о том, что wmname LG3D и _JAVA_AWT_WM_NONREPARENTING=1 эквивалентны, наверное, не совсем корректно.

Помимо этого, в коде самой IDEA, вот здесь, происходит чтение атомов корневого окна, в т. ч. _NET_WM_NAME, и на основании прочитанного значения (см. ниже по течению) в потроха AWT «спускается» уже изменённое _NET_WM_NAME (в частности, для Muffin, Marco и awesome).

Это только в случае, если специфичный для IDEA флаг ide.x11.override.wm установлен (по умолчанию так оно и есть).

Т. е., помимо игрищ с wmname (где твоя свобода отнюдь не ограничивается значением "LG3D"), ты ещё можешь включить/выключить ide.x11.override.wm (но, если ты уже один хрен сам меняешь _NET_WM_NAME, то, мне кажется, разумно было бы этот флаг снять и тем самым устранить побочный эффект, вызываемый самой IDEA).

Bass ★★★★ ()
Ответ на: комментарий от Bass

Был я, но ты не ответил, и я подумал что не правильно угадал. Кстати: сори что писал, забыл что на лоре есть призывы.

Судя по коду ide.x11.override.wm играет какую-то роль только для тех трех, поэтому для меня настройка не работает

Сейчас все работает, спасибо огромное!

actics ()
Последнее исправление: actics (всего исправлений: 1)