#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
из них будет свой единственный аргумент.