我重新安装了NixOS,并且想使用自定义XMonad配置。但是,出现以下错误:
$ xmonad --recompile
XMonad will use ghc to recompile, because "/home/amy/.xmonad/build" does not exist.
Error detected while loading xmonad configuration file: /home/amy/.xmonad/xmonad.hs
xmonad.hs:1:1: error:
Could not find module ‘XMonad’
Use -v to see a list of the files searched for.
|
1 | import XMonad
| ^^^^^^^^^^^^^
以下是我的configuration.nix的相关部分:
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
bash
dmenu2
dzen2
emacs
firefox
gitAndTools.gitFull
haskellPackages.xmonad
haskellPackages.xmonad-contrib
haskellPackages.xmonad-extras
gcc
ghc
stack
x11
xmonad-with-packages
xorg.libX11
xsel
wget
];
. . .
services.xserver = {
enable = true;
layout = "ie";
windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
extraPackages = haskellPackages: [
haskellPackages.xmonad
haskellPackages.xmonad-contrib
haskellPackages.xmonad-extras
];
};
};
# windowManager.default = "xmonad";
我已经读过NixOS beginner: xmonad and haskellmode in NixOS 14.04,但是我的configuration.nix中已经有windowManager.xmonad.enableContribAndExtras = true;
。
编辑:为了澄清,我在NixOS上,但是我没有使用Nix来构建我的XMonad配置。我正在使用XMonad的常规方式进行操作:我有一个.xmonad
目录,其配置位于xmonad.hs
中,并且我正在运行xmonad --recompile
进行构建。
编辑:当我以根目录查找相关软件包时,便找到了它们。
# nix-env -q
xmonad-0.14.2
xmonad-contrib-0.14
xmonad-extras-0.14
但是作为普通用户,以下命令什么也不返回。
$ nix-env -q
如何使这些软件包对非root用户可见?
编辑:奇怪的是,当我重新启动时,XMonad神奇地工作,编译我的配置没有问题。我不知道为什么重启会有所帮助,因为我已经多次执行过nixos-rebuild切换。