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

推荐订阅源

Y
Y Combinator Blog
宝玉的分享
宝玉的分享
月光博客
月光博客
小众软件
小众软件
Jina AI
Jina AI
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
G
Google Developers Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale

少数派

派早报: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 - 少数派
当你离开 Mac 时,用自动化脚本让你的锁屏界面变得更有趣 💻 -...
2023-04-27 · via 少数派

随着人们对自动化的需求越来越高,越来越多的 Mac 用户开始使用脚本来完成各种任务。而在这些任务中,设置锁屏界面上的信息是一件非常实用的事情,比如留下一些鼓励的话语,提醒自己带伞,或是放上一张漂亮的照片等等。今天,我将介绍如何使用自动化脚本来修改你的 Mac 锁屏界面信息。

在这篇文章中,我们将使用两个文件:一个 Bash 脚本和一个 cron 定时执行。Bash 脚本将从 Jinrishici API 中获取随机诗句和天气信息,并将它们格式化为字符串。然后我们将使用 cron 来启动该脚本,并将生成的字符串作为锁屏界面信息。

安装 jq

首先,我们需要安装一个称为 jq 的 JSON 解析器,它将帮助我们从 Jinrishici API 返回的 JSON 数据中提取所需的信息。你可以通过 Homebrew 来安装它,Homebrew 是一个 Mac 上的包管理器。在终端中输入以下命令来安装 jq:

brew install jq

创建 set_welcome_message.sh 设置个性化信息

依赖

  1. 📜今日诗词-一言API 提供了获取随机诗词和天气的信息
  2. 🤏curl 一个常用的命令行工具,可以用于发送HTTP请求并获取响应数据
  3. 🕵️jq一个轻量级的命令行JSON处理器,可以用于解析、查询和转换JSON格式的数据

接下来,创建 /usr/local/bin/set_welcome_message.sh 文件,并将以下代码复制到文件中:

bash 脚本 /usr/local/bin/set_welcome_message.sh

#!/bin/bash

exec &>/usr/local/bin/set_welcome_message.log
set -x
# JINRISHICI API token
JINRISHICI_TOKEN="PCFIlf/WgXatH9QG/VWPQOdKzJgYpW1V"

# Get a random poem from JINRISHICI API
poem_info=$(/usr/bin/curl -s -H "X-User-Token: $JINRISHICI_TOKEN" 'https://v2.jinrishici.com/sentence' | /opt/homebrew/bin/jq -r '.data | "『\(.content)』——《\(.origin.title)》\(.origin.dynasty)·\(.origin.author)"' || echo "无法获取诗词内容")

# Get location and weather information
weather_info=$(/usr/bin/curl -s "https://v2.jinrishici.com/info" | /opt/homebrew/bin/jq -r '.data | "📌\(.region),☁️天气\(.weatherData.weather) \(.weatherData.temperature)℃,🧭\(.weatherData.windDirection)\(.weatherData.windPower)级,💨风速\(.weatherData.visibility)/h"' || echo "无法获取天气信息")

# Get current date and hour
current_hour=$(date +"%_H" | tr -d ' ')

# Set greeting message based on current time
if [ ${current_hour} -ge 0 ] && [ ${current_hour} -lt 6 ] || [ ${current_hour} -eq 23 ]; then
    greeting="🌙 深夜了,亲爱的宝贝,早点睡觉哦~"
elif [ ${current_hour} -ge 6 ] && [ ${current_hour} -lt 12 ]; then
    greeting="🌤 早上好,亲爱的宝贝,新的一天开始了!"
elif [ ${current_hour} -ge 12 ] && [ ${current_hour} -lt 18 ]; then
    greeting="☀️ 下午好,亲爱的宝贝,休息一下吧~"
else
    greeting="🍵 亲爱的宝贝,工作再忙,也要记得休息一会儿~"
fi

# Create login window text with the poem, author, and weather information
formatted_text="${greeting}\n${weather_info}\n${poem_info}"
echo ${formatted_text}

# Set login window text
defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText "$formatted_text"

终端执行 sudo /usr/local/bin/set_welcome_message.sh,我们就可以使用快捷键 Control + Command + Q 快速锁定屏幕,查看效果了。

这里,我们设置了一个执行日志/usr/local/bin/set_welcome_message.log,我们可以查看执行失败的原因。

注意:我们使用了curljq,需要使用 which 获取绝对路径,然后替换脚本里的curljq

which curl
which jq

创建 com.set_welcome_message.plist 后台自动化执行脚本

关键点

  1. 后台执行脚本
  2. 使用root

关于后台执行脚本的几种方案

macOS 有很多后台执行脚本的方式,以下是其中的一些:

文件类型存放位置作用
LaunchAgent~/Library/LaunchAgents/当特定用户登录时,启动一些程序
   
   
   
cron/usr/lib/cron/tabs/按照一定的时间周期性地运行程序
   

LaunchAgents 和 LaunchDaemons:这是 macOS 中最常用的后台脚本执行方式。它们是由系统启动,可以在后台运行,并在满足一些条件时自动运行脚本。LaunchAgents 用于当前用户的任务,而 LaunchDaemons 用于系统级别的任务。

cron:cron 是一个 Unix 和类 Unix 系统上的后台进程,用于定期执行任务。它可以通过命令行配置,也可以使用 GUI 应用程序进行配置。

Automator:Automator 是 macOS 上的一个自动化工具,可以创建自定义的工作流程并自动化执行各种任务。它支持许多不同的操作,并且可以与其他应用程序和脚本集成。

shell 脚本:使用 shell 脚本可以在 macOS 上执行各种自动化任务,包括文件处理、系统管理和数据转换等。

Python、Ruby、Perl 等脚本语言:macOS 默认安装了一些编程语言,如 Python、Ruby、Perl 等,这些语言可以用来编写脚本,执行各种自动化任务。

使用 cron 每分钟执行 bash 脚本

使用sudo crontab -e -u root编辑 cron 列表,添加0 * * * * /usr/local/bin/set_welcome_message.sh,这样,我们就可以每分钟执行一次。

总结

通过使用bash脚本和cron定时执行,我们可以很容易地自定义 macOS 的锁屏界面。这里,我们可以使用了 Jinrishici API 获取诗词和天气信息,并将它们放在登录窗口中,你也可以挖掘更多方法呈现个性化内容(比如:从公开图库获取图片并设置壁纸),为我们的 macOS 的使用带来更多乐趣和实用性。