Як збільшити час очікування невідповідальних програм?


24

Я встановив Ubuntu GNOME і виявив, що я отримую багато ПРОГРАМИ не відповідає на повідомлення.

Я маю або "Примусити кинути" програму, або "Зачекати" її ще трохи.

Я помітив, що кожного разу, коли я чекаю програми, програма з часом продовжується без проблем.

Отже, я думаю, що може існувати конфігурація "тайм-аут" для програм, які вважатимуться невідповідними, і я хочу збільшити цей час.


Тут же питання. Я часто працюю над мережевим каталогом, і моє повідомлення надійшло в більшості випадків безпосередньо перед збереженням файлу. Тому мені потрібно просто натиснути на очікування. Я шукаю рішення з gnome-shell.
Віллі

Я також стикаюся з тим же питанням, проте я зрозумів, де саме полягає проблема. Хочете співпрацювати над цим виправленням? tuxdna.in/blog/2014/07/15/…
tuxdna

Запит на функцію я подав незалежно від читання цього: gitlab.gnome.org/GNOME/mutter/isissue/32
Натаніел М. Бівер

Відповіді:


14

Його не вдалося налаштувати, оскільки значення тайм-ауту визначається як постійне значення у джерелі вимкнення. gnome-shell позначає мутерну бібліотеку. Я знайшов значення тайм-аута у джерелі mutter, mutter-3.10.4 / src / core / display.c.

...
#define PING_TIMEOUT_DELAY 5000

І його використовує нижченаведена функція, названа як мета_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


-1

Я не знаю, чи має сенс відповісти на це старе питання, але, можливо, для когось це буде корисно.

Я намагався створити бібліотеку мутерів з джерела, але я відмовився, бо ця бібліотека залежить від багатьох інших бібліотек, і ці бібліотеки також залежать від інших бібліотек.

Мені потрібен був спосіб закрити цей діалог раз, якщо він з’явиться, але я не зміг його закрити у програмі для вина . Тому я написав невеликий сценарій у 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.