有没有什么办法可以在我每次清空 Ubuntu 系统上的垃圾箱时添加声音事件?
答案1
清空垃圾声音解决方法
对于 Ubuntu 12.04.3
也许你会发现我的想法很有用。经过 2 个月的搜索,我终于找到了一种解决方案,可以在 Ubuntu 12.04.3 中播放清空垃圾的声音。如果有人有更好的解决方案,请分享。
您会在下面的脚本中注意到,我选择使用“music123”应用程序,该应用程序可以从 Ubuntu 软件中心下载并安装到 /usr/bin 文件夹中。我从一篇关于如何设置 Ubuntu 关机声音的文章中得到了这个想法 -->从这里。
那个也很好用,我甚至添加了 Ubuntu 启动声音。
下面的脚本也使用了命令“trash-empty”和“trash-list”。
这些命令是“trash-cli”命令行实用程序的一部分,也是从 Ubuntu 软件中心下载的。
Linux 脚本清空垃圾,并发出玻璃破碎的声音。
#!/bin/bash
#
# Name of script: empty-trash.sh
# script to empty trash with confirmation and empty trash sound event
# This script is located in /usr/local/bin
SOUND = "/usr/share/sounds/ubuntu/stereo/trash-empty.ogg"
trash-list > ~/.local/share/Trash/files/trash.lst
file = ~/.local/share/Trash/files/trash.lst
if [ ! -s $file ]; then
rm -f $file;
zenity --info --text "TRASH is EMPTY"
else
zenity --question --title "Confirm Yes/No" --text "EMPTY Trash Bin ?"
case $? in
0)
trash-empty;
/usr/bin/music123 $SOUND
;;
esac
fi
如果您的桌面或其他地方有垃圾箱,它将继续正常工作,并且仍会显示已满和已空的垃圾箱图标。如果您不想听到清空垃圾箱的声音,则可以右键单击常规垃圾箱图标并以通常的方式清空垃圾箱。要清空垃圾箱并听到您选择的声音,请单击为此目的制作的启动器。我的清空垃圾箱的声音是玻璃破碎的声音。您可以选择任何您喜欢的声音文件,也可以制作自己的声音文件。
如果您在 zenity 确认对话框中单击“是”,则所有位置(包括分区和 USB 驱动器)的所有垃圾都将被清空。
~.~
您可以制作一个“清空垃圾”启动器并将其放在桌面上,以便在需要清空垃圾时启动此脚本。请确保您已使此脚本可执行。
将一个独特的图标附加到启动器。这是我使用的图标:
这是 Zenity 对话框,用于确认清空垃圾:
如果垃圾箱是空的并且您单击了“清空垃圾箱”启动器,则会出现此 Zenity 对话信息框。
我添加了上述编辑以提供我最初发帖时不允许的图片。我希望这些额外的信息有用。-沃尔特-wladicus 2013.12.30
答案2
对于 Ubuntu 14.04 及更高版本我修改了脚本瓦迪库斯我发现这里消除由于一些不必要的空格和程序流而导致的错误,并进行了一些其他小的自定义以确保满足依赖关系。您需要选择自己的声音文件并替换下面 SOUND= 行中的 /usr/share/sounds/ubuntu/stereo/GarbageTruckSounds.ogg,因为该声音不再包含在 Ubuntu 中。
#!/bin/bash
# Name of script: empty-trash.sh
# script to empty trash with confirmation and empty trash sound event
# This script can be stored in /usr/local/bin or wherever you keep your scripts
# original script created trash.lst in the trash and so never reported "trash is empty"
# modified script to create trash.lst elsewhere and only remove it if the trash was to be emptied.
# utilized mplayer to play the sound rather than the original program as I didn't see the need to install another program.
# I also removed some spaces that were causing the script to throw errors and added a function to get dependencies as required.
function get_dependency
{
exist="$(dpkg-query -l | grep "ii $@")"
if [ "$exist" == "" ];
then echo "$@ is required and not found. Attempt install Y/N"
read -n 1 solve
if [ $solve=={Yy} ]
then sudo apt -y install "$@"
else echo "Cannot continue as $@ is required."
exit 1
fi
fi
}
get_dependency zenit? #full name zenity on this line caused issues. Used globbing to avoid this.
get_dependency trash-cli
get_dependency mplayer
SOUND=/usr/share/sounds/ubuntu/stereo/GarbageTruckSounds.ogg
trash-list > ~/.local/share/trash.lst
file=~/.local/share/trash.lst
if [ ! -s $file ]; then
zenity --info --text "TRASH is EMPTY"
else
zenity --question --title "Confirm Yes/No" --text "EMPTY Trash Bin ?"
case $? in
0)
rm $file;
trash-empty;
mplayer "$SOUND"
;;
esac
fi
笔记此脚本需要的软件包zenity
trash-cli
,mplayer
如果不存在,脚本将尝试安装它们。带有dpkg 状态的rc
(已删除但配置文件保留)将无法重新安装。我在测试该mplayer
软件包时注意到了这种异常。如果您遇到此问题,可以通过使用以下命令删除有问题的软件包的配置文件来解决,sudo apt purge [packagename]
在我的情况下是sudo apt purge mplayer
另请注意其中 2 个包位于 Universe 存储库中,如果不这样做,依赖项安装将失败启用 Universe 存储库第一的。
答案3
首先运行“sudo apt-get install mpg123”来播放mp3文件。
然后我创建了一个名为“/home/yourname/scripts/check_trash.sh”的 shell 脚本
#!/bin/bash
cd /home/yourname/.local/share/Trash/files
while true
do
TOT1="$(ls -1 | wc -l)"
sleep 2
TOT2="$(ls -1 | wc -l)"
if [ "$TOT1" != "$TOT2" ];
then
mpg123 -q /home/yourname/trash.mp3
fi
done
然后下载一个 mp3 文件并将其复制到“/home/yourname/trash.mp3”
然后添加程序“/home/yourname/scripts/check_trash.sh”以便它在启动时运行: https://www.howtogeek.com/103640/how-to-make-programs-start-automatically-in-linux-mint-12/