前言

调用的是我的随机图4K接口 图片都是我精挑细选的 不喜欢的我会删除 且分辨率都是4k 全部采用webp格式

脚本

#!/bin/bash

# 配置文件夹路径
PICTURE_FOLDER="$HOME/Pictures/4k"
WALLPAPER_URL="https://img.darklotus.cn/4k"

# 确保目标文件夹存在
mkdir -p "$PICTURE_FOLDER"

# 获取图片的最终 URL
FINAL_URL=$(curl -s -L -w "%{url_effective}" -o /dev/null "$WALLPAPER_URL")

# 从最终 URL 获取文件名(保留后缀)
FILENAME=$(basename "$FINAL_URL")

# 确保文件名存在且未重复
FILE_PATH="$PICTURE_FOLDER/$FILENAME"

if [[ -f "$FILE_PATH" ]]; then
    echo "图片已存在:$FILE_PATH,跳过下载。"
else
    # 下载图片并保存到指定目录
    curl -s -o "$FILE_PATH" "$FINAL_URL"
    echo "图片已下载并保存为:$FILE_PATH"
fi

# 设置壁纸
osascript <<EOF
tell application "System Events"
    set desktopCount to count of desktops
    repeat with desktopNumber from 1 to desktopCount
        tell desktop desktopNumber
            set picture to POSIX file "$FILE_PATH"
        end tell
    end repeat
end tell
EOF

echo "壁纸已设置为 $FILE_PATH"

脚本介绍

这个脚本用于从 https://img.darklotus.cn/4k 获取随机的 4K 图片,并将其设置为 macOS 的桌面壁纸。脚本会下载图片并保存到本地 ~/Pictures/4k 文件夹中,并确保如果当天的图片已经下载过,它不会重复下载。同时,脚本会把下载的图片设置为桌面壁纸。

1. 功能概述

  • https://img.darklotus.cn/4k 获取随机的 4K 图片。
  • 下载图片并保存在 ~/Pictures/4k 文件夹。
  • 确保图片名和格式保持一致,不会覆盖已下载的图片。
  • 自动将下载的图片设置为桌面壁纸。

2. 先决条件

  • macOS 操作系统。
  • 已安装 curl(通常 macOS 默认已经安装)。
  • 必须有 osascript 权限来更改桌面壁纸。

3. 脚本说明

  • PICTURE_FOLDER:指定图片保存的文件夹路径。默认为 ~/Pictures/4k
  • WALLPAPER_URL:指定访问图片的接口 URL,默认为 https://img.darklotus.cn/4k
  • FINAL_URL:通过 curl 请求获取的图片最终 URL。
  • FILENAME:提取图片文件名(保持原有文件名和格式)。
  • FILE_PATH:下载的图片存储路径。
  • osascript:通过 AppleScript 设置下载的图片为桌面壁纸。

4. 脚本步骤

  1. 创建保存目录:首先检查 ~/Pictures/4k 文件夹是否存在。如果不存在,将自动创建。
  2. 获取图片 URL:使用 curl 请求 https://img.darklotus.cn/4k 接口,获取图片的实际 URL。
  3. 下载图片:如果该图片尚未下载过,脚本将下载图片并保存到指定文件夹。
  4. 设置壁纸:下载的图片将自动设置为 macOS 的桌面壁纸。

5. 使用步骤

  1. 下载脚本

    • 复制上述脚本内容,并将其保存为 set_daily_wallpaper.sh 文件。
    • 推荐将脚本保存到一个常用目录,比如 ~/www/script/
  2. 赋予脚本执行权限
    在终端中执行以下命令为脚本赋予执行权限:

    chmod +x /path/to/set_daily_wallpaper.sh
  3. 手动运行脚本
    你可以通过终端手动运行脚本,下载图片并设置壁纸:

    /path/to/set_daily_wallpaper.sh
  4. 设置定时任务
    如果你希望脚本每天自动运行,或者每小时执行一次,可以通过 cron 设置定时任务:

    • 打开 crontab 编辑器:

      crontab -e
    • 在文件中添加以下行,每小时执行一次:

      0 * * * * /path/to/set_daily_wallpaper.sh
    • 保存并退出编辑器。

    注意:根据你的编辑器不同,保存和退出的方式也会有所不同。如果你使用的是 nano,按 Ctrl + X,然后按 Y 保存退出。如果是 vi,则输入 :wq 保存退出。

  5. 查看下载的图片
    图片将保存到 ~/Pictures/4k 文件夹中,文件名和格式会保持与服务器上的一致。
  6. 检查壁纸是否更新
    执行脚本后,检查桌面,确保图片已经更新为新下载的图片。

6. 常见问题

  • 问题:为什么图片下载后没有保存?

    • 解答:检查目标文件夹是否具有写权限,并确认图片是否已经下载过(如果文件已存在,脚本会跳过下载)。
  • 问题:壁纸没有更新?

    • 解答:确保脚本中的 osascript 部分执行正常,并且你的 macOS 有权限修改桌面壁纸。

7. 脚本调试

如果脚本没有按预期工作,可以通过以下命令调试:

bash -x /path/to/set_daily_wallpaper.sh

这将显示每个步骤的详细执行信息,帮助定位问题。

总结

这个脚本可以让你轻松自动获取并设置 4K 随机图片作为桌面壁纸,支持定时任务功能,确保你的壁纸始终是最新的图像。

设置计划任务

上面是我用gpt快速写的介绍文档 看一看就行了 我的脚本是保存到用户/www/script/下的set_daily_wallpaper.sh
给他了执行权限后 就可以加入计划任务了

使用 crontab -e 编辑当前用户的任务。

crontab -e

粘贴

0 * * * * /Users/lian/www/script/set_daily_wallpaper.sh

路径自己改为你脚本的路径

使用 crontab -l 确认任务是否成功添加。

crontab -l

默认编辑crontab是采用的vim mac终端粘贴好后 esc 然后输入:wq 回车保存就行了

最后修改:2024 年 11 月 23 日
如果觉得我的文章对你有用,请随意赞赏