NixOS配置zsh/oh-my-zsh遇问题及文件位置查询
解决NixOS下Zsh与Oh My Zsh配置问题
1. 修复「zsh-history-substring-search插件找不到」的错误
你当前在programs.zsh.ohMyZsh.plugins里直接写插件名,但这个插件是通过systemPackages单独安装的,不属于Oh My Zsh自带插件集合,所以Oh My Zsh找不到它。解决方法有两种:
方法一: 改用programs.zsh.plugins配置
把第三方插件从Oh My Zsh的plugins列表移到programs.zsh.plugins,NixOS会自动处理路径配置:
{ config, pkgs, ... }: { programs.zsh = { enable = true; ohMyZsh = { enable = true; plugins = [ "git" ]; # 仅保留Oh My Zsh自带插件 }; # 添加第三方Zsh插件 plugins = [ { name = "zsh-history-substring-search"; src = pkgs.zsh-history-substring-search; } { name = "zsh-syntax-highlighting"; src = pkgs.zsh-syntax-highlighting; } ]; }; users.users.USER.shell = pkgs.zsh; environment.systemPackages = [ pkgs.oh-my-zsh pkgs.zsh pkgs.zsh-completions pkgs.zsh-powerlevel10k ]; }
方法二: 在Oh My Zsh插件列表中指定绝对路径
如果坚持用Oh My Zsh的plugins字段,需要手动指定插件的安装路径:
{ config, pkgs, ... }: { programs.zsh = { enable = true; ohMyZsh = { enable = true; plugins = [ "git" "${pkgs.zsh-history-substring-search}/share/zsh-plugins/zsh-history-substring-search" ]; }; }; # 其余配置保持不变 }
2. 修复Powerlevel10k主题路径无效的问题
NixOS中软件包不会安装到/usr/share这类常规路径,而是统一放在/nix/store的哈希目录下。推荐通过NixOS配置直接启用主题,无需手动写死路径:
推荐配置方式
在programs.zsh.ohMyZsh里指定主题:
programs.zsh = { enable = true; ohMyZsh = { enable = true; theme = "powerlevel10k/powerlevel10k"; # 其余插件配置... }; };
这样NixOS会自动处理主题加载,不用手动执行source命令。
手动查找主题文件路径
如果一定要手动定位文件,可以用以下命令:
- 查看powerlevel10k包的安装根目录:
nix-store -q --realize $(nix-instantiate -E 'with import <nixpkgs> {}; zsh-powerlevel10k') - 或者用
nix-locate搜索主题文件(需先安装pkgs.nix-index并执行sudo nix-index生成索引):
输出会显示类似nix-locate powerlevel10k.zsh-theme/nix/store/xxxxxx-zsh-powerlevel10k-1.19.0/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme的完整路径。
通用方法:查找NixOS中软件的安装位置
- 查看包的绝对路径:终端执行
nix-store -q --realize $(nix-instantiate -E 'with import <nixpkgs> {}; <package-name>'),或者对带可执行文件的包用which <binary> - 查看包的目录结构:终端执行
nix-store -q --tree $(nix-instantiate -E 'with import <nixpkgs> {}; <package-name>') - 搜索任意文件:安装
pkgs.nix-index并执行sudo nix-index生成数据库后,用nix-locate <filename>搜索文件所属包和路径
内容的提问来源于stack exchange,提问作者Loading
相关产品推荐
相关产品推荐

