Как я получаю и синхронизируюсь, полный список всех окон X11?

Это связано с тем, что android studio / intellij по-прежнему использует старую инфраструктуру JavaLaunching, которая устарела в Java 7. Либо вы устанавливаете версию JDK 6 с окончанием срока службы, либо запрашиваете обновление в Android Studio для использования Oracle. JDK appbundle.

Я очень не хочу устанавливать JAVA 6, поэтому у меня будет два JDK на моей машине. поэтому я взломал файлы студии Android, чтобы их можно было запускать из дока:

  1. Измените файл студии (в /Applications/Android Studio.app/Contents/MacOS) из заглушки JavaLauncher на сценарий оболочки, вот как это выглядит :
#!/bin/bash
export JAVA_HOME=`/usr/libexec/java_home`
echo JAVA_HOME=$JAVA_HOME
export APP_PACKAGE='/Applications/Android Studio.app'
exec $JAVA_HOME/bin/java -cp $JAVA_HOME/lib/tools.jar:"$APP_PACKAGE"/lib/bootstrap.jar:"$APP_PACKAGE"/lib/extensions.jar:"$APP_PACKAGE"/lib/util.jar:"$APP_PACKAGE"/lib/jdom.jar:"$APP_PACKAGE"/lib/log4j.jar:"$APP_PACKAGE"/lib/trove4j.jar:"$APP_PACKAGE"/lib/jna.jar -Didea.platform.prefix=AndroidStudio -Didea.paths.selector=AndroidStudioPreview -Dfile.encoding=UTF-8 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+UseCodeCacheFlushing -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:"$APP_PACKAGE"/lib/boot.jar -XX:MaxPermSize=256m -Xdock:icon="$APP_PACKAGE"/Contents/Resources/AndroidStudio.icns com.intellij.idea.Main

обязательно chmod +x ./studio к нему.

  1. Удалите раздел java в файле Info.plist в каталоге /Applications/Android Studio.app/Contents. В противном случае Apple все равно попросит вас установить JDK 6: отредактируйте файл и удалите весь раздел Java. Различия будут выглядеть следующим образом: http://pastebin.com/QS8M45cr

13
задан Esteban Küber 19 October 2009 в 02:18
поделиться

2 ответа

Взгляните на xwininfo .

Для получения дополнительной информации вам также могут понравиться xprop и xspy .

Обновление: Ага. Попробуйте использовать xwininfo и -root с -tree или -children , чтобы задействовать все окна.

И изменения могут быть отслеживается с помощью xprop -spy .

16
ответ дан 1 December 2019 в 23:15
поделиться

Я считаю, что захват X-сервера (XGrabServer(3)) предотвратит изменения в иерархии окон. Однако это немного жесткий метод, поэтому его следует применять только в том случае, если он действительно необходим.

Пример кода, который ходит по иерархии окон, строит дерево, использует события окон для поддержания его в актуальном состоянии и игнорирует ошибки протокола X, неизбежные из-за гонок, см. в файле src/VBox/Additions/x11/VBoxClient/seamless-x11.cpp в исходном коде VirtualBox.

3
ответ дан 1 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

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