37 lines
1.2 KiB
Haskell
37 lines
1.2 KiB
Haskell
{-# Language RecordWildCards #-}
|
|
{-# Language DeriveGeneric #-}
|
|
{-# Language OverloadedStrings #-}
|
|
module Config where
|
|
|
|
import Dhall
|
|
|
|
data Applications = Applications { urxvt :: Text
|
|
, prompt :: Text
|
|
, browser :: Text
|
|
, launcher :: Text -- xdg-open
|
|
, screenshot :: Text
|
|
}
|
|
deriving (Show, Generic)
|
|
data TopicRule = TopicRule { topicName :: Text
|
|
, topicHome :: Maybe Text
|
|
, topicAction :: Maybe Text }
|
|
deriving (Show, Generic)
|
|
data ExtraConfig = ExtraConfig { applications :: Applications
|
|
, topics :: [TopicRule]}
|
|
deriving (Show, Generic)
|
|
|
|
defaultExtraConfig :: ExtraConfig
|
|
defaultExtraConfig =
|
|
let applications = Applications{..}
|
|
urxvt = "urxvt"
|
|
prompt = "xmobar"
|
|
browser = "qutebrowser"
|
|
launcher = "xdg-open"
|
|
screenshot = "scrot ~/screenSel.png"
|
|
topics = []
|
|
in ExtraConfig{..}
|
|
|
|
instance Interpret ExtraConfig
|
|
instance Interpret TopicRule
|
|
instance Interpret Applications
|