You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS中如何根据外接显示器设置全局环境变量适配Kitty?

解决Kitty无法读取Shell环境变量的问题

方法一:通过launchctl设置全局GUI环境变量

Mac上的GUI应用(包括Kitty)不会读取.zshrc这类shell配置文件里的环境变量,需要用launchctl设置系统级全局变量,让所有GUI应用启动时都能加载:

  1. 创建Launch Agent配置文件:
    在~/Library/LaunchAgents/目录下新建com.user.environment.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>
        <key>Label</key>
        <string>com.user.environment</string>
        <key>ProgramArguments</key>
        <array>
            <string>sh</string>
            <string>-c</string>
            <string>if system_profiler SPDisplaysDataType | grep -q "Studio Display"; then launchctl setenv DISPLAYNAME studiodisplay; else launchctl unsetenv DISPLAYNAME; fi</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>KeepAlive</key>
        <false/>
    </dict>
    </plist>
    
  2. 加载配置并生效:
    运行命令加载配置:

    launchctl load ~/Library/LaunchAgents/com.user.environment.plist
    

    之后重新登录系统,Kitty启动时就能读取到DISPLAYNAME变量。

方法二:直接在Kitty配置中检测显示器(更简洁)

既然最终目的是调整字体大小,可跳过环境变量,直接在Kitty配置文件kitty.conf中加入动态判断逻辑:

# 根据连接的显示器设置字体大小
font_size $(system_profiler SPDisplaysDataType | grep -q "Studio Display" && echo 16 || echo 12)

将16和12替换为你需要的字体大小,保存配置后重启Kitty即可生效。

方法三:使用/etc/zshenv设置全局Shell变量

如果Kitty默认使用zsh,可把环境变量设置放在/etc/zshenv中(该文件会被所有zsh实例加载,包括非登录shell):

  1. 编辑系统级配置文件:
    sudo nano /etc/zshenv
    
  2. 加入以下内容:
    if system_profiler SPDisplaysDataType | grep -q "Studio Display"; then export DISPLAYNAME="studiodisplay"; fi
    
  3. 保存退出后,重启Kitty即可读取到该变量。

注意:/etc/zshenv是系统级文件,修改需sudo权限,会影响所有用户的zsh环境。

内容的提问来源于stack exchange,提问作者Ben Frain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:06:15