-- | Some schemes you can use. module Penny.Cabin.Scheme.Schemes where import qualified Penny.Cabin.Scheme as E import qualified Penny.Steel.Chunk as C import qualified Penny.Steel.Chunk.Switch as Sw -- | The light color scheme. You can change various values below to -- affect the color scheme. light :: E.Scheme light = E.Scheme "light" "for light background terminals" lightLabels lightLabels :: E.Labels (E.EvenAndOdd C.TextSpec) lightLabels = E.Labels { E.debit = E.EvenAndOdd { E.eoEven = lightDebit lightEvenTextSpec , E.eoOdd = lightDebit lightOddTextSpec } , E.credit = E.EvenAndOdd { E.eoEven = lightCredit lightEvenTextSpec , E.eoOdd = lightCredit lightOddTextSpec } , E.zero = E.EvenAndOdd { E.eoEven = lightZero lightEvenTextSpec , E.eoOdd = lightZero lightOddTextSpec } , E.other = E.EvenAndOdd { E.eoEven = lightEvenTextSpec , E.eoOdd = lightOddTextSpec } } lightEvenTextSpec :: C.TextSpec lightEvenTextSpec = C.defaultTextSpec lightOddTextSpec :: C.TextSpec lightOddTextSpec = Sw.switchBackground C.color8_b_default C.color256_b_255 lightEvenTextSpec lightDebit :: C.TextSpec -> C.TextSpec lightDebit = Sw.switchForeground C.color8_f_magenta C.color256_f_52 lightCredit :: C.TextSpec -> C.TextSpec lightCredit = Sw.switchForeground C.color8_f_cyan C.color256_f_21 lightZero :: C.TextSpec -> C.TextSpec lightZero = Sw.switchForeground C.color8_f_black C.color256_f_0 -- | The dark color scheme. You can change various values below to -- affect the color scheme. dark :: E.Scheme dark = E.Scheme "dark" "for dark background terminals" darkLabels darkLabels :: E.Labels (E.EvenAndOdd C.TextSpec) darkLabels = E.Labels { E.debit = E.EvenAndOdd { E.eoEven = darkDebit darkEvenTextSpec , E.eoOdd = darkDebit darkOddTextSpec } , E.credit = E.EvenAndOdd { E.eoEven = darkCredit darkEvenTextSpec , E.eoOdd = darkCredit darkOddTextSpec } , E.zero = E.EvenAndOdd { E.eoEven = darkZero darkEvenTextSpec , E.eoOdd = darkZero darkOddTextSpec } , E.other = E.EvenAndOdd { E.eoEven = darkEvenTextSpec , E.eoOdd = darkOddTextSpec } } darkEvenTextSpec :: C.TextSpec darkEvenTextSpec = C.defaultTextSpec darkOddTextSpec :: C.TextSpec darkOddTextSpec = Sw.switchBackground C.color8_b_default C.color256_b_235 darkEvenTextSpec darkDebit :: C.TextSpec -> C.TextSpec darkDebit = Sw.switchForeground C.color8_f_magenta C.color256_f_208 darkCredit :: C.TextSpec -> C.TextSpec darkCredit = Sw.switchForeground C.color8_f_cyan C.color256_f_45 darkZero :: C.TextSpec -> C.TextSpec darkZero = Sw.switchForeground C.color8_f_white C.color256_f_15 -- | Plain scheme has no colors at all. plain :: E.Scheme plain = E.Scheme "plain" "uses default terminal colors" plainLabels plainLabels :: E.Labels (E.EvenAndOdd C.TextSpec) plainLabels = E.Labels { E.debit = E.EvenAndOdd C.defaultTextSpec C.defaultTextSpec , E.credit = E.EvenAndOdd C.defaultTextSpec C.defaultTextSpec , E.zero = E.EvenAndOdd C.defaultTextSpec C.defaultTextSpec , E.other = E.EvenAndOdd C.defaultTextSpec C.defaultTextSpec }