OFFSET偏移
← 文章目录OFFSET / FIELD NOTESNO. 034

Home Manager 终端环境配置

用模块配置 Zsh、Starship 和常用命令行工具。

所在专题Home Manager:用户配置管理 ↗
约 4 分钟阅读开始阅读

Zsh 的 Nix 化配置#

Home Manager 提供了极其强大的 programs.zsh 选项,让你在 Nix 代码里就能管理所有插件。

{ pkgs, lib, ... }: {
  programs.zsh = {
    enable = true;
    enableCompletion = true;
    autosuggestion.enable = true;
    syntaxHighlighting.enable = true;

    # 别名 (Aliases)
    shellAliases = {
      ll = "ls -l";
      build-system = "nixos-rebuild build --flake .#my-host";
    };

    # 插件 (Plugins)
    plugins = [
      {
        name = "zsh-nix-shell";
        file = "nix-shell.plugin.zsh";
        src = pkgs.fetchFromGitHub {
          owner = "chisui";
          repo = "zsh-nix-shell";
          rev = "v0.8.0";
          hash = lib.fakeHash; # 占位;首次构建核验来源后填写实际固定输出 hash
        };
      }
    ];

    # 自定义 .zshrc 内容
    initExtra = ''
      export PATH=$HOME/.bin:$PATH
    '';
  };
}

提示符:Starship#

如果你喜欢现代化的终端提示符,配置非常简单:

{
  programs.starship = {
    enable = true;
    # 这里可以自定义 starship.toml
    settings = {
      add_newline = false;
      character = {
        success_symbol = "[➜](bold green)";
        error_symbol = "[➜](bold red)";
      };
    };
  };
}

常用命令行工具 (CLI)#

这些工具在 Home Manager 下也有专门的配置项:

  • programs.git:配置用户名、邮箱和别名。
  • programs.fzf:自动启用 Zsh 绑定。
  • programs.direnv:进入目录自动加载开发环境。
  • programs.bat:带语法高亮的 cat。

为什么这样做?#

  1. 开箱即用:在新机器上克隆配置后,运行一下命令,你所有的 Shell 插件和主题就全自动装好了。
  2. 配置复用:你可以轻松地把 Zsh 配置做成一个单独的文件,在不同的机器(甚至是在 macOS 上)共享。

迁移提示#

在 configuration.nix 层面只需指定 users.defaultUserShell = pkgs.zsh;,具体的 Shell 细节全部交给 Home Manager 管理。

版本适配与 Shell 边界#

例子保留了历史 Home Manager 的 initExtra 写法;新版本可能采用 initContent。插件版本与 hash 必须按实际锁定来源核验,不能把占位值当作已验证配置。系统层还需启用 programs.zsh.enable 并设置用户登录 Shell;Home Manager 管理用户配置。

参考与延伸

  1. Home Manager 手册 ↗
  2. Home Manager 命令源码 ↗
  3. Home Manager 文件选项源码 ↗

根据技术笔记重新整理,示例使用通用名称。

沿专题继续阅读

Home Manager:用户配置管理

  1. 01Home Manager 集成与模块化
  2. 02Home Manager 终端环境配置
  3. 03Home Manager 桌面与主题配置
  4. 04Home Manager 文件与符号链接
  5. 05Home Manager 与 NixOS 密钥管理
  6. 06Home Manager 用户级配置管理教程
CONTINUE READING / 下一篇Home Manager 桌面与主题配置

明确系统会话与用户外观的分工,配置 Hyprland、Plasma 和 GTK。