Xmonad,无法匹配类型“ModifiedLayoutSublayoutModifiedLayout SmartBorder Simplestl0 a0”与“GHC.Word.Word64”

问题描述

尝试学习 Haskell 并决定尝试使用 xmonad wm 作为一种学习方式,虽然我已经设法自己清除了大部分错误,但我似乎对最后两个错误感到困惑,这基本上是相同的错误.

如果有人能告诉我这是什么类型的错误,我将不胜感激, 我的猜测是它缺少导入但是如果是这种情况我似乎无法找到它

控制台错误

Couldn't match type ‘GHC.Word.Word64’
                  with ‘ModifiedLayout
                          (Sublayout (ModifiedLayout SmartBorder Simplest)) l a’
     arising from a functional dependency between:
       constraint ‘XMonad.Layout.MultiToggle.Transformer
                     StdTransformers
                     (ModifiedLayout
                        (Sublayout (ModifiedLayout SmartBorder Simplest)) l a)’
         arising from a use of ‘avoidStruts’
       instance ‘XMonad.Layout.MultiToggle.Transformer
                   StdTransformers Window’
         at <no location info>
 • In the expression:
     avoidStruts
       $ mouseResize
           $ windowArrange
               $ T.toggleLayouts floats
                   $ mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout
   In an equation for ‘myLayoutHook’:
       myLayoutHook
         = avoidStruts
             $ mouseResize
                 $ windowArrange
                     $ T.toggleLayouts floats
                         $ mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout
         where
             myDefaultLayout
               = tall ||| mstack ||| full ||| threeCol ||| threeRow ||| floats
 • Relevant bindings include
     myLayoutHook :: ModifiedLayout
                       XMonad.Hooks.ManageDocks.AvoidStruts
                       (ModifiedLayout
                          MouseResize
                          (ModifiedLayout
                             XMonad.Layout.WindowArranger.WindowArranger
                             (XMonad.Layout.ToggleLayouts.ToggleLayouts
                                (ModifiedLayout Rename ((->) (l a)))
                                (XMonad.Layout.MultiToggle.MultiToggle
                                   (XMonad.Layout.MultiToggle.HCons
                                      StdTransformers
                                      (XMonad.Layout.MultiToggle.HCons StdTransformers EOT))
                                   (Choose
                                      (ModifiedLayout
                                         Rename
                                         (ModifiedLayout
                                            (Sublayout (ModifiedLayout SmartBorder Simplest))
                                            ResizableTall))
                                      (Choose
                                         (ModifiedLayout
                                            Rename
                                            (ModifiedLayout
                                               (Sublayout (ModifiedLayout SmartBorder Simplest))
                                               (Mirror ResizableTall)))
                                         (Choose
                                            (ModifiedLayout Rename ((->) (l a)))
                                            (Choose
                                               (ModifiedLayout
                                                  Rename
                                                  (ModifiedLayout
                                                     (Sublayout
                                                        (ModifiedLayout SmartBorder Simplest))
                                                     ThreeCol))
                                               (Choose
                                                  (ModifiedLayout
                                                     Rename
                                                     (ModifiedLayout
                                                        (Sublayout
                                                           (ModifiedLayout SmartBorder Simplest))
                                                        (Mirror ThreeCol)))
                                                  (ModifiedLayout Rename ((->) (l a))))))))))))
                       (ModifiedLayout
                          (Sublayout (ModifiedLayout SmartBorder Simplest)) l a)
       (bound at xmonad.hs:151:1)
 |
151 | myLayoutHook = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts floats
 |

第二个错误基本相同但开始Could not match type ‘ModifiedLayout (Sublayout (ModifiedLayout SmartBorder Simplest)) l0 a0’ 使用“GHC.Word.Word64” 所以反过来 我将离开我的导入部分和错误中的代码部分

-- Impots

    -- Base
import XMonad
import System.Exit
import System.IO
import qualified XMonad.StackSet as W

    -- Actions
import XMonad.Actions.WithAll (sinkAll,killAll)
import XMonad.Actions.MouseResize

    -- Data
import Data.Monoid
import Data.Maybe (fromJust)
import qualified Data.Map   as M

  -- Hooks
import XMonad.Hooks.DynamicLog (dynamicLogWithPP,wrap,xmobarPP,xmobarColor,shorten,PP(..))
import XMonad.Hooks.ManageDocks (avoidStruts,docksEventHook,manageDocks,ToggleStruts(..))
import XMonad.Hooks.ManageHelpers (isFullscreen,doFullFloat)
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.WorkspaceHistory
import XMonad.Hooks.FadeInactive

    -- Utils
import XMonad.Util.Run
import XMonad.Util.EZConfig

    -- Layouts
import XMonad.Layout.ThreeColumns
import XMonad.Layout.SimplestFloat
import XMonad.Layout.ResizableTile

    -- Layouts Modifiers
import XMonad.Layout.LayoutModifier
import XMonad.Layout.NoBorders
import XMonad.Layout.Spacing
import XMonad.Layout.SubLayouts
import XMonad.Layout.WindowNavigation
import XMonad.Layout.WindowArranger (windowArrange,WindowArrangerMsg(..))
import XMonad.Layout.Simplest
import XMonad.Layout.Renamed
import XMonad.Layout.MultiToggle (mkToggle,single,EOT(EOT),(??))
import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL,MIRROR,NOBORDERS))
import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts,ToggleLayout(Toggle))
import qualified XMonad.Layout.MultiToggle as MT (Toggle(..))

-- EndImpots 

来自错误 1 ​​的代码部分

-- LayoutHook
myLayoutHook = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts floats <--- ERROR LINE
                     $ mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout
                        where
                                   myDefaultLayout =      tall
                                                            ||| mstack
                                                            ||| full
                                                            ||| threeCol
                                                            ||| threeRow
                                                            ||| floats

-- EndLayouts 

错误 2 中的代码部分

main :: IO ()
main = do
    xmproc <- spawnPipe "xmobar /home/rodrigo/.config/xmobar/xmobar.config"
    xmonad $ ewmh def
        { manageHook = (isFullscreen --> doFullFloat) <+> myManageHook <+> manageDocks,modMask              = myModMask,terminal             = myTerminal,focusFollowsMouse    = myFocusFollowsMouse,clickJustFocuses     = myClickJustFocuses,borderWidth          = myBorderWidth,workspaces           = myWorkspaces,normalBorderColor    = mynormalBorderColor,focusedBorderColor   = myFocusedBorderColor,mouseBindings        = myMouseBindings,layoutHook           = myLayoutHook <--- ERROR LINE,logHook = workspaceHistoryHook <+> myLogHook <+> dynamicLogWithPP xmobarPP
                    { ppOutput = \x -> hPutStrLn xmproc x,ppCurrent = xmobarColor "#0e7a0d" "",ppVisible = xmobarColor "#ffffff" "" .clickable,ppHidden = xmobarColor "#ffffff" "" .clickable,ppHiddenNowindows = xmobarColor "#ffffff" "" .clickable

                    }


        } `additionalKeysP` myKeys

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)