首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NixOS初学者: NixOS 14.04中的xmonad和haskellmode

NixOS初学者: NixOS 14.04中的xmonad和haskellmode
EN

Stack Overflow用户
提问于 2014-05-19 14:29:03
回答 2查看 3.6K关注 0票数 5

我试图在haskell中为代码开发设置一个NixOS VM,并且遇到了xmonad和emacs的基本安装问题。我的/etc/nixos/configuration.nix的相关部分是

代码语言:javascript
复制
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是: 进口XMonad XMonad.Util.EZConfig main = xmonad $ defaultConfig { modMask = mod4Mask,终端= "konsole“} additionalKeysP ("M-e",产生"emacs"),(”M“,派生"firefox")
  • emacs:在安装了haskellmode包之后(请看上面的configuration.nix ),我无法在emacs中进入haskell模式。

我把这些问题组合在一起,因为我怀疑这两个问题都是代表我对某件事根本不理解造成的,所以原因可能很普遍。

EN

回答 2

Stack Overflow用户

发布于 2017-11-02 07:00:48

只需加上

代码语言:javascript
复制
    windowManager.xmonad.enableContribAndExtras = true;

代码语言:javascript
复制
    /etc/nixos/configuration.nix

然后按照通常的方式在.xsession文件中启动xmonad。

票数 4
EN

Stack Overflow用户

发布于 2022-10-05 11:39:11

我不知道你为什么不能编译..。我无法提供解决方案,但就我个人而言,我能够编译我的XMonad配置,其中包括

代码语言:javascript
复制
import XMonad.Util.EZConfig

这是我配置中的相关行。

代码语言:javascript
复制
    environment.systemPackages = with pkgs; [
      haskellPackages.xmobar
      haskellPackages.xmonad
      haskellPackages.xmonad-contrib
      haskellPackages.xmonad-extras
    ];

    programs.dconf.enable = true;

    services = {
      dbus = {
        enable = true;
        packages = [ pkgs.dconf ];
      };

      xserver = {
        enable = true;

        libinput = {
          enable = true;
          touchpad.disableWhileTyping = true;
        };

        serverLayoutSection = ''
          Option "StandbyTime" "0"
          Option "SuspendTime" "0"
          Option "OffTime"     "0"
        '';

        displayManager = {
          defaultSession = "none+xmonad";
          lightdm.enable = true;
          lightdm.greeters.mini.enable = true;
        };

        windowManager.xmonad = {
          enable = true;
          enableContribAndExtras = true;
        };

        xkbOptions = "caps:ctrl_modifier";
      };
    };

    env = {
      XMONAD_CONFIG_DIR = "$XDG_CONFIG_HOME/xmonad";
      XMONAD_CACHE_DIR = "$XDG_CONFIG_HOME/xmonad";
      XMONAD_DATA_DIR = "$XDG_CONFIG_HOME/xmonad";
    };

正如有人指出的那样,这可能是因为你没有台词:

代码语言:javascript
复制
enableContribAndExtras = true;

我还发布了我的配置,这样您就可以看到这将如何绑定到更广泛的配置中,在这里是lightdm。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23740373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档