NixOS初学者:xixad和haskellmode在NixOS 14.04中

时间:2014-05-19 14:29:03

标签: xmonad nixos

我正在尝试在haskell中设置一个用于代码开发的NixOS VM,并且在基本安装xmonad和emacs时遇到了麻烦。我/etc/nixos/configuration.nix的相关部分是

environment.systemPackages = with pkgs; [
    emacs
    emacs24Packages.haskellMode
    xlibs.xmessage
    haskellPackages.haskellPlatform.ghc
    haskellPackages.xmobar
    haskellPackages.xmonad
    haskellPackages.xmonadContrib
    haskellPackages.xmonadExtras
];
  • xmonad:当我尝试编译代码时,xmonad抱怨它无法找到模块XMonad.Util.EZConfig。 使用ghc编译xmonad.hs是可以的,我也可以将模块加载到ghci中。 在#nixos频道上,我被告知使用函数ghcWithPackages,但我无法解决问题。此外,我想首先理解为什么会出现这个问题,因为在我看来这是一个非常简单的用例。我遇到问题的最小xmonad.hs是:

    import XMonad
    import XMonad.Util.EZConfig
    
    main = xmonad $ defaultConfig
      { modMask = mod4Mask
      , terminal = "konsole"
      }
      `additionalKeysP`
      [ ("M-e", spawn "emacs")
      , ("M-f", spawn "firefox")
      ]
    
  • emacs:在安装包haskellmode之后(查看上面的configuration.nix),我无法在emacs中输入haskell-mode。

我把这些问题放在一起,因为我怀疑它们都是由于我对某些事情的根本不理解造成的,所以原因可能很常见。

2 个答案:

答案 0 :(得分:4)

只需添加

    windowManager.xmonad.enableContribAndExtras = true;

    /etc/nixos/configuration.nix

然后通过.xsession文件以通常的方式启动xmonad

答案 1 :(得分:2)

我暂时无法添加评论......但我认为这是cabal本地和全球存储库的问题。

正如我所见," Nix允许用户在不需要root权限的情况下安装软件包,并为每个用户提供自己的已安装软件包集视图。可以同时安装多个版本的程序或库。包升级是原子的,可以回滚。"

也许您可以使用ghc-pkg list来查看在root用户和普通用户中是否已正确安装软件包。