Wie kann die Wartezeit für nicht reagierende Programme verlängert werden?

24

Ich habe ein Ubuntu GNOME installiert und festgestellt, dass ich viele PROGRAM-Meldungen erhalte, die nicht reagieren.

Ich muss entweder das Programm "Force Quit" oder "Wait" ein wenig länger warten.

Ich habe festgestellt, dass jedes Mal, wenn ich auf das Programm warte, das Programm ohne Probleme fortgesetzt wird.

Ich denke, es könnte eine "Timeout" -Konfiguration für Programme geben, die als nicht reagierend gelten, und ich möchte diese Zeitüberschreitung erhöhen.

malhobayyeb
quelle
Gleiches Thema hier. Ich arbeite oft an einem Netzwerkverzeichnis und meine Nachricht kam in den meisten Fällen kurz vor dem Speichern der Datei. Also muss ich einfach auf Warten klicken. Ich suche nach einer Lösung mit Gnome-Shell.
Willi
Ich stehe auch vor dem gleichen Problem, aber ich habe herausgefunden, wo genau das Problem liegt. Möchten Sie bei der Behebung dieses Problems zusammenarbeiten? tuxdna.in/blog/2014/07/15/…
tuxdna
Feature-Anfrage, die ich unabhängig von der Lektüre eingereicht habe: gitlab.gnome.org/GNOME/mutter/issues/32
Nathaniel M. Beaver

Antworten:

14

Es konnte nicht konfiguriert werden, da der Timeout- Wert in der Mutter-Quelle als konstanter Wert definiert ist. gnome-shell verweist auf mutter library. Ich habe den Timeout-Wert bei der Mutter-Quelle gefunden, mutter-3.10.4 / src / core / display.c.

...
#define PING_TIMEOUT_DELAY 5000

Und es wird von einer unten aufgeführten Funktion namens meta_display_ping_window verwendet

ping_data->ping_timeout_id = g_timeout_add (PING_TIMEOUT_DELAY, meta_display_ping_timeout, ping_data);

Es bezieht sich auf die Funktion, wenn das Fenster aktiviert ist:

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)

Wie Sie oben sehen können, beträgt die Zeitüberschreitung 5 Sekunden.

Sie können den Wert nur für Sie ändern, da es sich bei mutter um ein Open Source-Projekt handelt.

Und der Zeitüberschreitungswert wird in einem anderen Fall angegeben, wenn das Fenster geschlossen wird. Fenster löschen Fluss ist wie

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)

Ich denke jedoch, dass Sie die Quelle für Ihr verzögertes Fenster ändern müssen. Oder ich denke, dass Sie darüber mit den mutter Entwicklern / Betreuern diskutieren können.

Sie können die Build-Umgebung vorbereiten und den Quellcode mit den folgenden Befehlen abrufen.

$ sudo apt-get build-dep mutter
$ sudo apt-get source mutter

Um es zu bauen, siehe

https://www.debian.org/doc/manuals/apt-howto/ch-sourcehandling.en.html https://wiki.debian.org/BuildingTutorial

Xiaodongjie
quelle
-1

Ich weiß nicht, ob es Sinn macht, diese alte Frage zu beantworten, aber vielleicht ist es für jemanden hilfreich.

Ich habe versucht, die Mutter-Bibliothek aus dem Quellcode zu erstellen, aber ich habe aufgegeben, da diese Bibliothek von vielen anderen Bibliotheken abhängt und diese Bibliotheken auch von anderen Bibliotheken abhängen.

Ich brauchte eine Möglichkeit, um dieses Dialogfeld zu schließen, wenn es angezeigt wird, konnte es jedoch in der Weinanwendung nicht schließen . Also habe ich ein kleines Skript in Bash geschrieben, das dieses Fenster schließt, wenn es erscheint.

#!/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
Tom
quelle