Thông báo-gửi bỏ qua thời gian chờ?


47

Có thể tôi đang làm gì đó sai, nhưng không nên thực hiện các lệnh (chạy riêng)

notify-send -t 1 "test"
notify-send -t 1000 "test"
notify-send -t 10000 "test"

Có thời gian chờ khác nhau? Cái đầu tiên gần như tức thời, cái thứ hai mất 1 giây và thứ ba 100 giây. Trong mọi trường hợp dường như mất khoảng sáu giây.

Có cách nào xung quanh hành vi? Vì các nhà phát triển gắn nhãn này là "tính năng" thay vì lỗi, tôi muốn một số lựa chọn thay thế ...


1
vâng họ đã xác nhận
Ringtail

Đối với tôi nó hoạt động như mong đợi khi sử dụng XFCE4.
Grumbel

@BlueXrider bạn có thấy vấn đề tương tự như tôi không? Nếu vậy, bạn đang sử dụng phiên bản nào?
Móc vào

Tôi xác nhận mã kiểm tra đang hoạt động chính xác. Tôi nhận được thời gian ra theo hướng dẫn.
Đổ chuông

6
Ngoài ra, bạn có thể sử dụng notify-send "Text Here" ; sleep 3 ; killall notify-osd( sleep 3ví dụ về việc hết hạn (thực sự là giết) sau 3 giây)!
Pandya

Câu trả lời:


44

Đây là một lỗi đã biết: https://bugs.launchpad.net/ubfox/+source/notify-osd/+orms/390508

(Nó được coi là "quyết định thiết kế" của người bảo trì.)


3
Đây không thực sự là một lỗi. Đó là một quyết định thiết kế.
Eren Tantekin

68
Một quyết định thiết kế sai có thể là một lỗi.
Boris Bukh

23
Khi phần mềm tuyên bố làm một việc trong khi nó làm một việc khác, đó là một lỗi. Nếu các nhà phát triển không muốn chúng tôi coi đó là lỗi, thì đừng cho rằng nó hoạt động như không.
hytromo

10
Đó không phải là một tính năng. Đó là một lỗi! Khi bạn cung cấp một đòn bẩy để bật cần gạt nước và nó không hoạt động, thì nó bị hỏng.
Matt H

3
@ChristopherDone Với sự tôn trọng, đó là một lỗi. Trợ giúp về thông báo-gửi (một phần của thông báo-osd) cho biết: notify-send --help | grep timeout -t, --Exire-time = TIME Chỉ định thời gian chờ tính bằng mili giây để hết hạn thông báo. Đó là giao diện chính cho người dùng công cụ. Giao diện chính đó nằm ở người dùng và do đó đây là một lỗi. Đó là lỗi với văn bản trợ giúp hoặc việc triển khai, tùy thuộc vào quan điểm của bạn, nhưng chắc chắn đó là một lỗi.
Michael Sparks

21

Như đã đề cập trong một trong những bài viết ở trên, có một quyết định thiết kế không cho phép tính năng này. May mắn cho bạn, những người khác cũng không đồng ý và đã thiết lập PPA và bạn cũng có thể đảo ngược quyết định này cho hệ thống của mình.

Để giải quyết vấn đề của bạn chỉ cần:

sudo add-apt-repository ppa:leolik/leolik 
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install libnotify-bin
pkill notify-osd

Không bắt buộc

Để thêm nhiều tính năng hơn để gửi thông báo hơn bạn hiện có:

Từ Ubuntu 16.04 trở đi:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install notifyosdconfig

Đối với phiên bản 9.10-14.10:

sudo add-apt-repository ppa:amandeepgrewal/notifyosdconfig
sudo apt-get update
sudo apt-get install notifyosdconfig

Để biết thêm thông tin về giải pháp trên, hãy đọc bài viết này:

Bong bóng thông báo có thể cấu hình cho Ubuntu


Thật không may, kho lưu trữ không cung cấp gói nữa, nói E: Failed to fetch http://ppa.launchpad.net/amandeepgrewal/notifyosdconfig/ubun‌​tu/dists/xenial/main‌​/binary-amd64/Packag‌​es 404 Not Found(có liên quan: askubfox.com/questions/50/ mẹo )
phil294

@Blauhirn: Tôi không phải là nhà phát triển gói nói. Vui lòng liên hệ với nhà phát triển
Fabby

@Blauhirn: câu trả lời được cập nhật cho ngày 16.04 trở đi
Fabby

Điều này đã làm việc! Để làm rõ cho bất cứ ai khác, bạn cũng phải cài đặt phiên bản cập nhật của notify-osd. tức là : sudo add-apt-repository ppa:leolik/leolik; sudo add-apt-repository ppa:amandeepgrewal/notifyosdconfig; sudo apt-get update; sudo apt install notify-osd # Updates to actually useful version; sudo apt install notifyosdconfig Cảm ơn nhiều!
Michael Sparks

1
@MichaelSparks đổi upgradethành dist-upgrade. Điều đó sẽ quan tâm đến mọi thứ vì thông báo-osd đã được cài đặt và chắc chắn sẽ được nâng cấp.
Fabby

4

Đây là một sự cố ý thực hiện trái với các công ước đã được thiết lập mà không bị loại trong môi trường thiết bị đầu cuối. I E. notify-sendkhông còn tồn tại vì nó ảnh hưởng đến chức năng được mong đợi và được lập thành tài liệu, vì vậy thay vào đó, một lệnh mới notify-graffitisẽ tồn tại - Cái gì ???? Đợi một chút ... tất cả các tập lệnh sử dụng chính tả tên lệnh "thông thường" sẽ bị xâm phạm!?! bằng cách thay đổi quy ước về cách đánh vần tên lệnh?!?! - hmmm Triết lý này là đặc biệt, giả hình nghịch lý như được tán thành bởi giao diện thiết bị đầu cuối máy tính để bàn Unity.

Nó không thể được thực hiện theo cả hai cách - bảo tồn một số quy ước tức là. tên của một lệnh và không phải là tên khác, chức năng của lệnh như được ghi lại. Nếu chức năng bị xâm phạm thì tên lệnh cũng như vậy để duy trì tính toàn vẹn, tính quy ước, tính nhất quán, v.v. của người dùng "trải nghiệm", hoặc người dùng đó "bực bội", "khó chịu", "khó chịu" ,. ..

tham chiếu:

Bookmark:
Notify-send bỏ qua thời gian chờ?


Liên kết "Không hết hạn_notifying" và "Thông báo | Nhà phát triển ứng dụng Ubuntu" bị hỏng (hay đúng hơn là trang web mà họ đề cập đến).
Keith Thompson

2

Có một tập lệnh tiện dụng nhỏ thông báo -send.sh dưới dạng thay thế thả vào để gửi thông báo cho phép bạn đóng hoặc thay thế các thông báo đã gửi trước đó.

Chỉnh sửa: như @Glutanimate đã chỉ ra, tập lệnh này hỗ trợ thời gian hết hạn theo mặc định.

Cuối cùng tôi không thể hết thời gian để làm việc, vì vậy tôi đã đi một cách khó khăn để gửi thông báo với thời gian chờ 2 giây như thế này:

notify-send.sh --print-id test | xargs -I {} bash -c "sleep 2 && notify-send.sh --close={}" &


Kịch bản này là tuyệt vời! Cám ơn đã chia sẻ nó tại đây. Có vẻ như bây giờ nó hoàn toàn tương thích với các đối số CLI ban đầu của thông báo gửi. Tức là: Bạn có thể gửi thông báo với thời gian chờ 2 giây qua notify-send.sh -t 2 "Hello World!". Tôi đã liên kết tập lệnh tới thư mục $ PATH cục bộ của mình và đổi tên nó thành thông báo-gửi. Không còn phải đối phó với việc thực hiện thông báo phụ đó!
Glutimate

Ôi thật tuyệt! Cảm ơn vì đã cho chúng tôi biết về điều đó.
NiMa Thr

0

Đối với những người sử dụng môi trường máy tính để bàn Cinnamon, có một cài đặt có thể được bật:

Thông báo> Xóa thông báo sau khi hết thời gian chờ


0

Đây là trong một phần nghìn giây. Tôi đã thử nghiệm trên XUbfox 16.04 (Ubuntu XFCE)

notify-send -t 3000 "test"

chính xác 3 giây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.