Haskell 如何在这种不寻常的设置中使用Dzen而不是Xmobar

Haskell 如何在这种不寻常的设置中使用Dzen而不是Xmobar,haskell,xmonad,Haskell,Xmonad,我是Haskell的新手,目前没有时间真正学习Haskell,因此我向已经了解Haskell的专家寻求帮助。:) 这是我当前的xmonad.hs文件: 如何添加/配置keybindings(请参阅myKeys变量)以及如何从Xmobar更改为基本(尚未配置)Dzen设置 这是一个似乎在我找到的任何配置中都没有使用的设置,每次我尝试将其转换为其他格式时,它都无法正常工作 另一种格式是main=do等BTW 还有,我怎样才能从这种格式转换成更常用的格式。至于密钥绑定,请使用附加密钥(来自模块)。 以

我是Haskell的新手,目前没有时间真正学习Haskell,因此我向已经了解Haskell的专家寻求帮助。:)

这是我当前的xmonad.hs文件:

如何添加/配置keybindings(请参阅
myKeys
变量)以及如何从Xmobar更改为基本(尚未配置)Dzen设置

这是一个似乎在我找到的任何配置中都没有使用的设置,每次我尝试将其转换为其他格式时,它都无法正常工作

另一种格式是
main=do等
BTW


还有,我怎样才能从这种格式转换成更常用的格式。

至于密钥绑定,请使用
附加密钥(来自模块)。
以下是我使用的一些关键绑定(可能需要更多的导入才能使一切正常工作):

D.dzen
来自
import限定的XMonad.Util.dzen作为D
。我不使用dzen作为状态栏,但查看此模块可能会给您一些提示

编辑:这里有一个dzen配置:。从这个网站上摘自许多例子:

edit2:我刚刚使用了一个新的
statusBar
函数,它显然很新,并给出了一个工作示例

edit3:删除了logHook,因为它不需要使用
statusBar
main
现在看起来像这样:

main = do
    xmonad =<< statusBar "dzen2" myPP toggleStrutsKey
    defaultConfig { --stuff
    }
整理完xmonad.hs后,我还可以提供整个文件。

关于“转换”:

由于xmonad.hs只是编译成“您的”xmonad的haskell源代码,因此实际上没有“格式”,有很多方法可以编写相同的东西

如果您的意思是如何从使用转换
main
。它是一个函数,获取一个XConfig并返回一个map

下面是一个使用
Data.Map
中的
fromList
函数编写的“漂亮”方式的示例:

import qualified Data.Map as M

myKeys conf@(XConfig {modMask = modm}) = M.fromList $
    [
     ((modm, xK_c), kill),
     ((modm .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)
    ]
然后,如果您想使用defaultConfig中定义的键以及您的键,您可以使用

myConfig = defaultConfig
    { 
     ...
    , keys = myKeys <+> keys defaultConfig 
    }
myConfig=defaultConfig
{ 
...
,keys=myKeys-defaultConfig
}

回答得很好,谢谢!将来可能会使用它。:)哦,我没有将默认键添加到我的自定义键中,duh。对我来说也很好。
main = xmonad =<< statusBar myBar myPP statusbarToggleKey myConfig
main = do 
    config <- statusBar myBar myPP statusbarToggleKey myConfig
    xmonad config
-- the command line to launch the status bar
myBar = "dzen2 -y -1" --that's for dzen at the bottom of the screen
-- the PP
myPP = defaultPP
import qualified Data.Map as M

myKeys conf@(XConfig {modMask = modm}) = M.fromList $
    [
     ((modm, xK_c), kill),
     ((modm .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)
    ]
myConfig = defaultConfig
    { 
     ...
    , keys = myKeys <+> keys defaultConfig 
    }