我编写了一个脚本,每当我拔掉充电器时都会显示通知。我通过在 rules.d 中制定规则使脚本由 udev 运行。问题是脚本运行正常,但通知没有显示。到目前为止,我知道脚本需要显示服务器的地址,这是我的规则和脚本的样子。
export DISPLAY=:0
export XAUTHORITY=/home/user/.Xauthority
/usr/bin/notify-send --urgency=critical -i face-cool "Charger removed"
zenity --info --text 'Happy New Year'
这是我创建的规则
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_STATUS}=="Discharging", RUN+="/home/user/alertchargerremoved.sh"
有没有其他方法可以在充电器被移除时通知自己,比如不需要 X 服务器的通知?你还有其他想法吗?如何实现这个功能?
答案1
我以前曾这样做过:
ACTION=="remove", KERNEL=="sd?", ENV{ID_PART_TABLE_TYPE}!="", RUN+="/usr/bin/sudo -u username DISPLAY=:0 notify-send 'Unsafe Remove' '<b><i>Your long message</b></i>' -i /usr/share/icons/gnome/48x48/emotes/face-worried.png -t 10000"
因此以同一用户身份sudo
运行notify-send
(而不是root
)
/usr/bin/sudo -u username notify-send ...