Tôi đã tạo một tập lệnh python đơn giản hoạt động gần giống như thông báo gửi nhưng có hỗ trợ --replaces-id
.
thông báo
web: https://github.com/phuhl/notify-send.py
Một kịch bản python để gửi thông báo máy tính để bàn từ shell.
Trong khoảng
Libnotify là một phần của nhiều tập lệnh trong thế giới Linux. Nó sử dụng nhiều tính năng được chỉ định của Đặc tả thông báo máy tính để bàn và làm cho chúng có thể truy cập được vào các tập lệnh shell. Tuy nhiên, nó không cho phép thay thế một thông báo hiện có bằng replaces-id
. Đây là một lỗi đã biết từ năm 2008 và có một bản vá từ năm 2012. Bản vá vẫn không được cập nhật mặc dù (2018).
Kịch bản python này sử dụng gói notify2 và hiển thị chức năng cho trình bao.
Sự khác nhau giữa notify-send.py và thông báo-gửi
- Trong
notify-send.py -h
chương trình trợ giúp thay vì là tham số cho gợi ý. Đối với gợi ý sử dụng --hint
.
- Trong
notify-send.py -r ID
và notify-send.py --replaces-id ID
tồn tại. Để thay thế một cuộc gọi thông báo notify-send.py
bằng ID đã được thông báo trả về sẽ được thay thế.
notify-send.py
trả về ID của thông báo vừa tạo.
notify-send.py --replaces-process NAME
tồn tại Mọi thông báo được tạo với cùng một TÊN sẽ thay thế mọi thông báo trước khi có cùng một TÊN. Nếu được gọi với tham số này notify-send.py
có thể chặn, tốt nhất nên được gọi bằng dấu &
.
Cài đặt
Yêu cầu python3.
git clone https://github.com/phuhl/notify-send.py
cd notify-send.py
sudo pip install notify2
sudo python setup.py install
Sử dụng
$ notify-send.py -h
usage: notify-send.py [-h] [-u LEVEL] [-t TIME] [-a APP_NAME]
[-i ICON[,ICON...]] [-c TYPE[,TYPE...]]
[--hint TYPE:NAME:VALUE] [-r ID]
[--replaces-process NAME]
SUMMERY [BODY]
positional arguments:
SUMMERY
BODY
optional arguments:
-h, --help show this help message and exit
-u LEVEL, --urgency LEVEL
Specifies the urgency level (low, normal, critical).
-t TIME, --expire-time TIME
Specifies the timeout in milliseconds at which to
expire the notification.
-a APP_NAME, --app-name APP_NAME
Specifies the app name for the icon
-i ICON[,ICON...], --icon ICON[,ICON...]
Specifies an icon filename or stock icon to display.
-c TYPE[,TYPE...], --category TYPE[,TYPE...]
Specifies the notification category.
--hint TYPE:NAME:VALUE
Specifies basic extra data to pass. Valid typesare
int, double, string and byte.
-r ID, --replaces-id ID
Specifies the id of the notification that should be
replaced.
--replaces-process NAME
Specifies the name of a process that should take care
of replacing notifications for this process.
thông báo-gửi [.py] với tư cách là người dùng root
Để hiển thị thông báo, ngay cả khi libnotify hoặc
notify-send.py
được sử dụng từ người dùng root, hai tập lệnh này rất hữu ích.
#!/bin/bash
username=<your username here>
if [ "$(id -u)" != "1000" ] ; then
sudo -u $username DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send.sh "$@"
else
notify-send.sh "$@"
fi
Với notify-send.sh
như thế này:
#!/bin/bash
notify-send.py "$@" &
Xem thêm
Ngoài ra hãy xem daemon thông báo của tôi lấy cảm hứng từ Dunst , nhưng với một số cải tiến, bao gồm khả năng nền trong suốt và trung tâm thông báo lưu trữ thông báo.