zsh - NixOS 之外的 Nix 配置
问题描述
因此,我正在尝试创建一个易于重现的开发环境(远离home-manager
当前以更好地了解 Nix)。经过足够的搜索后,我想出了如何进行一些自定义派生,buildEnv
用于包集,并用于~/.config/nixpkgs/config.nix
进行覆盖。我现在正在设置zsh
并且oh-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)?
解决方案
您似乎正在尝试使用 home-manager 的配置而不使用 home-manager 本身。正如您在链接的 NixOS 模块中看到的那样,这实际上设置了/etc/zshrc
等,因此它不打算在用户本地配置中使用,也不会在那里做任何事情。如果您查看相应的 home-manager 模块,您会发现它基本上为用户本地目的重新实现了整个模块。因此,如果不依赖家庭管理器,您将不会走得太远。
推荐阅读
- julia - 在 Julia 1.0.1 中安装软件包时出现解析器错误
- php - 使用php在数组中查找每个父母的最深的孩子
- winforms - 在 PropertyGrid 中显示未更改属性的占位符文本
- julia - 如何在 Julia 中读取记录格式 json?
- android - 未连接适配器;当我尝试从 Firebase 数据库中获取图像时跳过布局
- laravel - 如何使用 Laravel Passport 驱动程序保护登录用户?
- html - 使用 XSLT 填充垂直列数据
- apache-spark - 我可以获取 Spark 读取的文件的元数据吗
- deployment - 我对“创建 Azure AD 应用程序”有疑问,特别是使用 powershell 脚本“Create-AADIdentityApp.ps1”
- python - 如果长度在python中不匹配,最后添加0