LINUX.ORG.RU

haskell-код внутри xmobarrc

 


0

1

Вопрос состоит в том, можно ли вообще использовать какой-либо код внутри конфигурационного файла xmobarrc.

Судя по всему, содержимое конфигурационного файла представляет сосбой один единственный record типа Config, который целиком парсится внутри xmobar'а.

Допустим, есть поле template внутри переменной типа Config.

       , template = " %StdinReader% }{ %default:Master% <fc=#ee9a00>|</fc> %battery% <fc=#ee9a00>|</fc> %cpu% <fc=#ee9a00>|</fc> %memory% <fc=#ee9a00>|</fc> %wlan0% <fc=#ee9a00>%date%</fc> "

Логично было бы выделить повторяющийся сепаратор " <fc=#ee9a00>|</fc> " и использовать его неявно вместо тупого копирования строки.

То есть, хотелось бы иметь что-то вроде

       , template = intercalate separator template'
       } where 
           separator = " <fc=#ee9a00>|</fc> "
           template' = [ " %StdinReader% }{ %default:Master%"
                       , "%battery%"
                       , "%cpu%"
                       , "%memory%"
                       , "%wlan0% <fc=#ee9a00>%date%</fc> "
                       ]

Насколько это реально сделать

?

Ответ на: комментарий от KblCb

Не говоря уж о том, что не совсем понятно куда вставлять импортирование Data.List.

dmitry_malikov ★★ ()
Ответ на: комментарий от dmitry_malikov

Понял в чём дело. Это они молодцы, это они здорово придумали. А попробуй объявит какую-нибудь функцию внутри записи через let … in. Что-то вроде:

, template = let
    separator = " <fc=#ee9a00>|</fc> "
    template' =
        [ " %StdinReader% }{ %default:Master%"
        , "%battery%"
        , "%cpu%"
        , "%memory%"
        , "%wlan0% <fc=#ee9a00>%date%</fc> "
        ]
    in intercalete separator template'
}

KblCb ★★★★★ ()
Ответ на: комментарий от KblCb

Судя по всему let нельзя использовать тоже.

unexpected "l"
expecting space or the start of the string field template - a double quote (").
dmitry_malikov ★★ ()
Ответ на: комментарий от dmitry_malikov

запилил бы кто в xmobar консольный трей, была бы killer-feature

qnikst ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.