跟着人们对主动化的需求越来越高,越来越多的 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 设置个性化信息
依靠
- 今日诗词-一言API 供给了获取随机诗词和气候的信息
- curl 一个常用的命令行工具,能够用于发送HTTP恳求并获取响应数据
- ️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
,咱们能够检查履行失败的原因。
创立 com.set_welcome_message.plist 后台主动化履行脚本
关键点
- 后台履行脚本
- 运用root
关于后台履行脚本的几种方案
macOS 有很多后台履行脚本的方式,以下是其中的一些:
文件类型 | 存放方位 | 作用 |
---|---|---|
LaunchAgent | ~/Library/LaunchAgents/ | 当特定用户登录时,发动一些程序 |
LaunchDaemon | /Library/LaunchDaemons/ | 系统发动时发动一些程序 |
StartupItem | /Library/StartupItems/ 和 /System/Library/StartupItems/ | 系统发动时发动一些程序 |
cron | /usr/lib/cron/tabs/ | 按照必定的时刻周期性地运转程序 |
at | /usr/lib/at/ | 在指定的时刻运转程序 |
-
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 的运用带来更多乐趣和有用性。