如何在Night Light触发时运行自定义脚本
如何在Night Light触发时运行自定义脚本
嘿,这个需求我刚好折腾过,给你分享个靠谱的方案!核心思路是监听Night Light的状态变化,一旦它激活或停用,就自动触发对应的脚本命令。
步骤1:编写监听脚本
先创建一个bash脚本,用来监听Night Light的状态并执行你的自定义操作。比如你想要切换深色/浅色主题,脚本可以这么写:
#!/bin/bash # 持续监听Night Light的启用状态变化 gsettings monitor org.gnome.settings-daemon.plugins.color night-light-enabled | while read -r line; do # 提取当前状态(true表示激活,false表示停用) current_status=$(echo "$line" | awk '{print $NF}') if [ "$current_status" = "true" ]; then # Night Light激活时执行的操作 gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' echo "Night Light已激活,切换到深色主题" elif [ "$current_status" = "false" ]; then # Night Light停用时执行的操作 gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' echo "Night Light已停用,切换到浅色主题" fi done
步骤2:配置脚本权限
把脚本保存为night-light-trigger.sh(名字随便取就行),然后给它加上执行权限:
chmod +x night-light-trigger.sh
步骤3:测试脚本
直接运行脚本测试效果:
./night-light-trigger.sh
然后手动去系统设置里开关Night Light,看看主题是不是自动切换了,终端也会输出对应的提示信息。
步骤4:设置开机自动运行
要让这个监听脚本在你登录系统后自动后台运行,用GNOME的启动应用程序功能就行:
- 打开「启动应用程序」(可以在应用列表里搜索这个名称)
- 点击「添加」,填写名称(比如“Night Light 主题切换”),命令选择你刚才保存的脚本路径(比如
/home/你的用户名/night-light-trigger.sh) - 点击「保存」,下次登录系统时脚本就会自动启动了
额外说明
- 这个脚本会一直后台运行,但占用的系统资源非常少,完全不用担心性能问题
- 只有当Night Light的状态实际发生变化时才会触发命令,而且如果Night Light本身是禁用的,状态不会变化,也就不会触发脚本,完全符合你的需求
- 你可以把脚本里的
gsettings命令换成任何你需要的自定义操作,比如调用其他脚本、启动某个程序等等
备注:内容来源于stack exchange,提问作者Majal
相关产品推荐
相关产品推荐

