Я установил Ubuntu GNOME и обнаружил, что программа PROGRAM не отвечает на сообщения.
Мне нужно либо «Принудительно выйти» из программы, либо «Ждать» ее немного больше.
Я заметил, что каждый раз, когда я жду программу, программа в конечном итоге продолжается без проблем.
Итак, я думаю, что может быть конфигурация «тайм-аут» для программ, которые будут считаться неотвечающими, и я хочу увеличить этот тайм-аут.
Он не может быть настроен, потому что значение timeout определяется как постоянное значение в источнике бормочущего. gnome-shell ссылается на библиотеку муттеров Я нашел значение тайм-аута у источника бормочущего, mutter-3.10.4 / src / core / display.c.
...
#define PING_TIMEOUT_DELAY 5000
И она используется функцией ниже, названной meta_display_ping_window
ping_data->ping_timeout_id = g_timeout_add (PING_TIMEOUT_DELAY, meta_display_ping_timeout, ping_data);
Она вызывается из функции, когда окно активировано:
window_activate(mutter-3.10.4/src/core/window.c) -> meta_window_check_alive(mutter-3.10.4/src/core/delete.c) -> meta_display_ping_window(mutter-3.10.4/src/core/display.c)
Как вы можете видеть на выше время ожидания составляет 5 секунд.
Вы можете изменить значение только для вас, потому что mutter - это проект с открытым исходным кодом.
И значением таймаута называют другой случай, когда окно закрыто. Процесс удаления окна выглядит как
meta_window_delete(mutter-3.10.4/src/core/delete.c) -> meta_window_check_alive(mutter-3.10.4/src/core/delete.c) -> meta_display_ping_window(mutter-3.10.4/src/core/display.c)
Однако, я думаю, вам нужно изменить источник для вашего окна с задержкой. Или я думаю, что вы можете обсудить это с разработчиками / сопровождающими.
Вы можете подготовить среду сборки и получить исходный код с помощью следующих команд.
$ sudo apt-get build-dep mutter
$ sudo apt-get source mutter
Чтобы построить его, см.
https://www.debian.org/doc/manuals/apt-howto/ch-sourcehandling.en.html https://wiki.debian.org/BuildingTutorial [+1117]
Я не знаю, имеет ли смысл отвечать на этот старый вопрос, но, возможно, кому-то это будет полезно.
Я пытался собрать библиотеку мутантов из источника, но я сдался, потому что эта библиотека зависит от многих других библиотек, и эти библиотеки также зависят от других библиотек.
Мне нужен был способ закрыть это диалоговое окно, если оно появилось, но я не смог закрыть его в приложении wine . Поэтому я написал небольшой скрипт на bash, который убьет это окно, если оно появится.
#!/bin/bash
while [ true ]; do
VAL=$(ps -fA | grep "class mutter-dialog" | grep -cv grep)
if [ $VAL -eq 1 ]
then
ID=$(ps -fA | grep "class mutter-dialog" | grep -v grep | awk '{print $2}')
sleep 5
echo killing $ID
kill $ID
exit 0
fi
sleep 10
done