Проблемы с перекомпиляцией XMonad

#haskell #archlinux #xmonad

#хаскелл #archlinux #xmonad

Вопрос:

Несколько дней назад я получил ошибку, связанную со значком в трее udiskie, чтобы появиться на xmobar при запуске xmonad. До того, как я получил сообщение об ошибке, оно работало нормально. Вот сообщение об ошибке, которое я получил:

 XMonad will use ghc to recompile, because "/home/arturo/.xmonad/build" does not exist. Error detected while loading xmonad configuration file: /home/arturo/.xmonad/xmonad.hs xmonad.hs:105:5: error: • Couldn't match expected type: (String -gt; X ()) -gt; String -gt; X a0 with actual type: X () • The function ‘spawnOnce’ is applied to three value arguments, but its type ‘String -gt; X ()’ has only one In a stmt of a 'do' block: spawnOnce "udiskie -t amp;" spawnOnce "volumeicon amp;" In the expression: do spawnOnce "lxsession amp;" spawnOnce "picom amp;" spawnOnce "nm-applet amp;" spawnOnce "udiskie -t amp;" spawnOnce "volumeicon amp;" .... | 105 | spawnOnce "udiskie -t amp;" | ^^^^^^^^^^^^^^^^^^^^^^^^... Please check the file for errors. Warning: Missing charsets in String to FontSet conversion  

Может ли кто-нибудь сказать мне, что происходит и можно ли решить эту проблему? Я поискал в Интернете, но не смог найти ничего, связанного с этой проблемой.

Ответ №1:

Похоже, это проблема Haskell (а не XMonad и определенно не Arch — возможно, вы хотите настроить теги).

Ключевой строкой в сообщении об ошибке является

 The function ‘spawnOnce’ is applied to three value arguments, but its type ‘String -gt; X ()’ has only one  

Ваш файл Haskell содержит строку

 spawnOnce "udiskie -t amp;" spawnOnce "volumeicon amp;"  

и компилятор пытается обработать "udiskie -t amp;" , spawnOnce и "volumeicon amp;" в качестве трех аргументов (первый) spawnOnce . Я бы предположил, что вы по ошибке отменили разрыв строки до (второго) spawnOnce . Сделай это

 spawnOnce "udiskie -t amp;" spawnOnce "volumeicon amp;"  

и у каждого spawnOnce из них будет свой единственный аргумент.