【问题标题】:Nix config outside of NixOSNixOS 之外的 Nix 配置
【发布时间】:2019-11-22 06:44:51
【问题描述】:

所以我正在尝试创建一个易于重现的开发环境(目前远离home-manager,以便更好地了解 Nix)。经过足够的搜索后,我想出了如何进行一些自定义派生,将buildEnv 用于包集,并使用~/.config/nixpkgs/config.nix 进行覆盖。我现在正在设置具有大量配置选项的zshoh-my-zsh,但我能找到的唯一文档似乎建议将它们添加到configuration.nix,这是我无法使用的NixOS 选项。

目前我的config.nix 代码如下所示:

let 
  pkgs = import <nixpkgs> {};
in {
  allowUnfree = true;

  programs = {
      zsh = {
        enable = true;
        promptInit = "source ${pkgs.zsh-powerlevel9k}/share/zsh-powerlevel9k/powerlevel9k.zsh-theme";
        ohMyZsh = {
            enable = true;
            plugins = ["autojump"];
            theme = "powerlevel9k/powerlevel9k";
        };
      };
  };

  packageOverrides = pkgs: with pkgs; rec {
    all = buildEnv {
      name = "all";
      paths = with pkgs; [
        tmuxinator
        zsh
        oh-my-zsh
        autojump
        ...
      ];
    };
  };
}

到目前为止,我的理解是,在 ~/.config/nixpkgs/config.nix 中,应该有一个配置集,其中包含诸如覆盖函数之类的内容,并且对应于 config.programs.zsh.enable 的文档示例等。但是,我在该程序部分中写的任何内容都不会影响或导致我的任何程序产生不同的输出。

我错过了什么?如何影响此处列出的配置选项 (https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/programs/zsh/zsh.nix)?

【问题讨论】:

    标签: zsh oh-my-zsh nix nixos


    【解决方案1】:

    您似乎在尝试使用 home-manager 的配置而不使用 home-manager 本身。正如您在链接的 NixOS 模块中看到的那样,这实际上设置了 /etc/zshrc 等,因此它不打算在用户本地配置中使用,并且不会在那里做任何事情。如果您查看corresponding home-manager module,您会发现它基本上为用户本地目的重新实现了整个模块。因此,如果不依赖 home-manager,这种方法不会走得太远。

    【讨论】:

      猜你喜欢
      • 2016-12-05
      • 2018-01-07
      • 1970-01-01
      • 2017-10-08
      • 2021-02-26
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      • 2020-11-08
      相关资源
      最近更新 更多