จะเพิ่มเวลารอให้โปรแกรมที่ไม่ตอบสนองได้อย่างไร


24

ฉันได้ติดตั้ง Ubuntu GNOME แล้วและพบว่าฉันได้รับโปรแกรมมากมายไม่ตอบสนองข้อความ

ฉันต้อง "บังคับให้ออกจากโปรแกรม" หรือ "รอ" เพื่อเพิ่มอีกนิด

ฉันสังเกตว่าในแต่ละครั้งที่ฉันรอโปรแกรมในที่สุดโปรแกรมก็จะดำเนินต่อไปโดยไม่มีปัญหา

ดังนั้นฉันคิดว่าอาจมีการกำหนดค่า "หมดเวลา" สำหรับโปรแกรมที่จะถือว่าไม่ตอบสนองและฉันต้องการเพิ่มการหมดเวลานี้


ปัญหาเดียวกันที่นี่ ฉันทำงานบ่อยในไดเรกทอรีเครือข่ายและข้อความของฉันมาในกรณีส่วนใหญ่ก่อนที่จะบันทึกไฟล์ ดังนั้นฉันต้องคลิกที่รอ ฉันค้นหาวิธีแก้ปัญหาด้วย gnome-shell
Willi

ฉันกำลังเผชิญกับปัญหาเดียวกัน แต่ฉันได้คิดออกว่าปัญหาอยู่ตรงไหน สนใจที่จะทำงานร่วมกันในการแก้ไขปัญหานี้หรือไม่? tuxdna.in/blog/2014/07/15/…
tuxdna

คำขอคุณสมบัติฉันยื่นเป็นอิสระจากการอ่านนี้: gitlab.gnome.org/GNOME/mutter/issues/32
Nathaniel M. Beaver

คำตอบ:


14

ไม่สามารถกำหนดค่าได้เนื่องจากค่าการหมดเวลาถูกกำหนดเป็นค่าคงที่ในแหล่ง mutter gnome-shell อ้างถึงไลบรารี mutter ฉันพบค่าการหมดเวลาที่แหล่ง mutter, 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)

อย่างไรก็ตามฉันคิดว่าคุณต้องแก้ไขแหล่งข้อมูลสำหรับหน้าต่างที่ล่าช้าของคุณ หรือฉันคิดว่าคุณสามารถพูดคุยเกี่ยวกับมันกับนักพัฒนา / ผู้ดูแล mutter

คุณสามารถเตรียมสภาพแวดล้อมการสร้างและรับแหล่งที่มาด้วยคำสั่งดังต่อไปนี้

$ 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

ฉันไม่รู้ว่าการตอบคำถามเก่านี้มีความรู้สึกใด ๆ แต่อาจเป็นประโยชน์กับใครบางคน

ฉันพยายามสร้าง mutter ไลบรารี่จากซอร์ส แต่ฉันยอมแพ้เพราะไลบรานี้ขึ้นอยู่กับไลบรารี่อื่น ๆ และไลบรารี่เหล่านั้นก็ขึ้นอยู่กับไลบรารี่อื่นด้วย

ฉันต้องการวิธีปิดกล่องโต้ตอบนี้หนึ่งครั้งหากปรากฏ แต่ฉันไม่สามารถปิดได้ในแอปพลิเคชันไวน์ ดังนั้นฉันจึงเขียนสคริปต์ขนาดเล็กใน 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.