跟着人们对主动化的需求越来越高,越来越多的 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,咱们能够检查履行失败的原因。

创立 com.set_welcome_message.plist 后台主动化履行脚本

关键点

  1. 后台履行脚本
  2. 运用root

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

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

文件类型 存放方位 作用
LaunchAgent ~/Library/LaunchAgents/ 当特定用户登录时,发动一些程序
LaunchDaemon /Library/LaunchDaemons/ 系统发动时发动一些程序
StartupItem /Library/StartupItems/ 和 /System/Library/StartupItems/ 系统发动时发动一些程序
cron /usr/lib/cron/tabs/ 按照必定的时刻周期性地运转程序
at /usr/lib/at/ 在指定的时刻运转程序
  1. LaunchAgents 和 LaunchDaemons:这是 macOS 中最常用的后台脚本履行方式。它们是由系统发动,能够在后台运转,并在满足一些条件时主动运转脚本。LaunchAgents 用于当时用户的使命,而 LaunchDaemons 用于系统级别的使命。

  2. cron:cron 是一个 Unix 和类 Unix 系统上的后台进程,用于守时履行使命。它能够经过命令行装备,也能够运用 GUI 应用程序进行装备。

  3. Automator:Automator 是 macOS 上的一个主动化工具,能够创立自定义的作业流程并主动化履行各种使命。它支撑许多不同的操作,并且能够与其他应用程序和脚本集成。

  4. shell 脚本:运用 shell 脚本能够在 macOS 上履行各种主动化使命,包含文件处理、系统管理和数据转化等。

  5. 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 的运用带来更多乐趣和有用性。