返回列表 发布新帖

[教程] 如何在Termux里实现自动更换本地壁纸

20 1
发表于 4 小时前 来自手机 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
关于Termux的基础使用教程,推荐国光的文章通俗易懂,可以看点基础的就行,软件下载链接在最下面。
Termux使用教程
Termux-api使用教程

进入主题,啰嗦偏小白向。
必要权限:储存空间,自启动,电量优化白名单,壁纸服务。

1.打开Termux,日常检查更新(如果没有飞机请看上面教程自行更换国内源),中间确认无脑输y确认就是了。

  1. termux-setup-storage
  2. pkg upgrade
  3. pkg update
复制代码


2.安装vim或者nano以及,termux-api包(包是包,请确认软件也必须有安装),y确认安装。

  1. pkg in vim
  2. pkg in nano
  3. pkg in termux-api
复制代码


3.直接编辑文件,在终端输入
  1. nano wallpaper.sh
复制代码

或者vim,vim进入后需要先按i才能编辑,这时候不推荐用vim,代码里有一个注释,粘贴进去后面就一直有。
  1. vim wallpaper.sh
复制代码

进入编辑页面,输入(例子):

  1. #!/data/data/com.termux/files/usr/bin/bash
  2. b=$(ls "/storage/emulated/0/壁纸" | shuf -n 1)
  3. absolute_path=$(realpath /storage/emulated/0/壁纸/$b)
  4. termux-wallpaper -f "$absolute_path"
复制代码

这段代码表示随机一个sd卡/壁纸目录下的一个文件,你可以自己更改0/后面的(两处),改成自己的目录,注意这段代码不严谨,没有判断是否是图片的命令,所以目录里只能放壁纸图片,是我自己固定日用的。
更严谨简单点的代码,只更改变量WALLPAPER_DIR就行了。

  1. #!/data/data/com.termux/files/usr/bin/bash
  2. #只更改WALLPAPER_DIR就行了
  3. WALLPAPER_DIR="/storage/emulated/0/壁纸"
  4. if [ ! -d "$WALLPAPER_DIR" ]; then
  5.   echo "错误:找不到壁纸目录: $WALLPAPER_DIR" >&2
  6.   exit 1
  7. fi
  8. if [ ! -r "$WALLPAPER_DIR" ]; then
  9.   echo "错误:无法读取壁纸目录: $WALLPAPER_DIR" >&2
  10.   exit 1
  11. fi
  12. #    -maxdepth 1只查找当前目录,如果需要查找子目录就将-maxdepth 1删掉。
  13. selected_file=$(find "$WALLPAPER_DIR" -maxdepth 1 -type f \
  14.   \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' -o -iname '*.bmp' -o -iname '*.webp' \) \
  15.   | shuf -n 1)
  16. if [ -z "$selected_file" ]; then
  17.   echo "错误:在目录 '$WALLPAPER_DIR' 中没有找到合适的图片文件。" >&2
  18.   exit 1
  19. fi
  20. #使用 'termux-wallpaper' 命令设置壁纸
  21. termux-wallpaper -f "$selected_file"
复制代码

termux-wallpaper -f "目录" :这是一个设置壁纸的命令。
nano按ctrl+x保存,然后再按y,再回车
vim按ecs退出编辑,输入英文的冒号:输入wq回车保存(q!强制退出)。

4.给执行权限
  1. chmod +x wallpaper.sh
复制代码

手动测试
  1. bash wallpaper.sh
复制代码


5.安装 Cronie 和 Termux Services
Termux 使用 cronie 作为 cron 的实现,并且推荐使用 termux-services 来管理后台服务(如 cron 守护进程 crond)。
  1. pkg install cronie termux-services
复制代码


6.启用并启动 Cron 服务
使用 termux-services 来启用并立即启动 crond 服务:

  1. sv-enable crond
  2. sv up crond
复制代码

可以使用:sv status crond 来检查服务是否正在运行(应该显示 run: crond…)
  1. sv status crond
复制代码


7.编辑 Crontab 添加定时任务
运行 crontab -e 命令来编辑当前用户的 crontab 文件。
  1. crontab -e
复制代码

添加任务:

  1. */20 * * * * bash $HOME/wallpaper.sh
复制代码

*/20: 代表“每隔 20 分钟”(在每小时的第 0, 20, 40 分钟执行)。
* * * *: 代表“每小时、每天、每月、每周的每一天”。
bash: 指定使用 bash 来执行脚本(即使脚本内部有解释器,显式指定通常更可靠)。
$HOME/wallpaper.sh: 要执行的脚本路径。
8.(可选推荐)添加日志记录: 方便调试,最好将脚本的输出重定向到一个日志文件。修改上面的行如下:
示例:
  1. */20 * * * * bash $HOME/wallpaper.sh >> $HOME/log.log 2>&1
复制代码

将标准输出和标准错误输出都重定向输出到log.log

(可选)输出时间和壁纸路径,在代码第二行添加

  1. echo "$(date +'%Y-%m-%d %H:%M:S')"
复制代码

在代码最后一行添加
  1. echo "$absolute_path"
复制代码

或者
  1. echo "$selected_file"
复制代码

这样可以在log.log里看到什么时间运行,以及壁纸路径。


9.(题外)通过url链接设置壁纸,有壁纸api的可以试试,或者抓取哪个网站的,主要是看是不是自己喜欢的壁纸吧。
termux-wallpaper  -u "壁纸url链接"


!!!!!!END!!!!!!



软件下载链接(可能需要魔法):
Termux下载地址 个人推荐正式版
Termux-api下载地址 必须的

评论1

天天的鸟蛋蛋Lv.14 发表于 3 小时前 来自手机 | 查看全部
有趣的小知识。 感谢分享。
回复

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

ysqbbs@outlook.com

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加QQ群
Copyright © 2001-2025 源社区 版权所有 All Rights Reserved.
关灯 在本版发帖
扫一扫添加QQ群
返回顶部
快速回复 返回顶部 返回列表