惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
B
Blog
腾讯CDC
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
L
LangChain Blog
F
Fortinet All Blogs
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
macOS 壁纸?自己写一份脚本 - 少数派
2019-01-23 · via 少数派

macOS 提供了许多精美的壁纸,但是看久了总会腻。找了很多 macOS 上的壁纸软件,用起来不是很顺手,因此自己写了一份脚本,从 Unsplash API 获取随机图片作为壁纸,自动刷新。爱折腾的小伙伴可以试试。

步骤一:申请 Unsplash API

Unsplash API 申请地址

(1) 首先,创建一个新的应用

(2) 其次,同意协议

(3) 接着,填写 App 名称和描述

(4) 最后,往下拉找到 Access Key


步骤二:编写 Python 脚本

python3 脚本我已经放到 Github

要注意文件中提示的应该修改的部分,一个是 TOKEN,另一个是 PROXIES 代理。


步骤三:编写启动脚本

(1) 创建一个文件夹名为 Wallpapers 用于放置脚本, 将 python 脚本(random_pic.py)放在这个文件夹

我把创建的文件夹放在了 /Users/{用户名}/Pictures 下

如果你不是放在这里,后面几个脚本的对应路径需要知道如何修改

(2) 安装 virtualenv,并创建虚拟环境文件夹

都在上述文件夹 Wallpapers 下进行,需要先安装 Python3,建议使用 brew

brew install python3
pip3 install virtualenv
virtualenv env
source env/bin/activate
pip install requests

(3) 新建并编写 macOS 下自动任务脚本,命名为 com.unsplash.plist

注意下面注释里要求更改的部分

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <!-- Label 制定自动脚本的名称 -->
 <key>Label</key>
 <string>com.unsplash.plist</string>
 <!-- 指定要运行的脚本 -->
 <key>ProgramArguments</key>
 <array>
   <!-- 请将 {你的用户名} 更改为自己的用户名,以下同样要改 -->
   <string>/Users/{你的用户名}/Pictures/Wallpapers/wallpaper.sh</string>
 </array>
 <!-- 指定要运行的时间间隔,以秒为单位 -->
 <key>StartInterval</key>
 <integer>600</integer>
 <!-- 标准输出文件 -->
 <key>StandardOutPath</key>
 <string>/Users/{你的用户名}/Pictures/Wallpapers/run.log</string>
 <!-- 标准错误输出文件,错误日志 -->
 <key>StandardErrorPath</key>
 <string>/Users/{你的用户名}/Pictures/Wallpapers/log.err</string>
</dict>
</plist>

(4) 新建并编写 wallpaper.sh

如果你不清楚下面脚本语句的作用,最好不要修改

#!/bin/sh
cd /Users/$USER/Pictures/Wallpapers
# 获取图片的文件名
title=$(/Users/$USER/Pictures/Wallpapers/env/bin/python /Users/$USER/Pictures/Wallpapers/random_pic.py)
echo $title
# 暂停5秒等待图片缓存写入文件
sleep 5
# 图片地址
localpath="/Users/$USER/Pictures/Wallpapers/images/$title.jpg"
osascript -e "tell application \"Finder\" to set desktop picture to POSIX file \"$localpath\""
# 提示壁纸更换完成
osascript -e "display notification \"壁纸更换成功\" with title \"壁纸更换脚本\""

(5) 设置自动刷新

  • 进入到  /Users/{你的用户名}/Library/LaunchAgents  文件夹中
cd ~/Library/LaunchAgents
  • 将上述(3)中的 com.unsplash.plist 放在这里
  • 加载并启用:
launchctl load -w 'com.unsplash.plist'
launchctl start 'com.unsplash.plist'
  • 如果需要修改该文件夹,需要重新加载该文件
launchctl unload -w 'com.unsplash.plist'
launchctl load -w 'com.unsplash.plist'

(6) 此时

/Users/{你的用户名}/Pictures/Wallpapers 下应有两个文件为 random_pic.pywallpaper.sh

/Users/{你的用户名}/Library/LaunchAgents/ 下应该有 com.unsplash.plist


结束

大功告成,此时,你的壁纸应该会每隔十分钟自动刷新!


Q/A:

  • 一定要使用 virtualenv 创建的虚拟环境中的 python3 吗?
    • 不一定,可以直接使用电脑上安装的 python3,但不建议
  • 可以加快壁纸更换频率吗?
    • 可以,请在 com.unsplash.plist 文件中修改
    • Unsplash 创建的 App 还只是 Demo 时每小时不能超过 50 次请求,而根据我的经历,这类 App 无法申请转为 Product
  • 我的壁纸为啥没有自动刷新?
    • 请检查上述步骤,如仍无法刷新,请在评论里描述问题。