From 42bcf20d6e47731df3d9a55ce4d0ec7ec283d50e Mon Sep 17 00:00:00 2001 From: Craige McWhirter Date: Thu, 29 Oct 2020 23:00:10 +1000 Subject: [PATCH] nixos: Bumped to 20.09 --- .config/termonad/termonad.hs | 169 +++++++++++++++++++++++++---------- 1 file changed, 122 insertions(+), 47 deletions(-) diff --git a/.config/termonad/termonad.hs b/.config/termonad/termonad.hs index d038abb..d62105d 100644 --- a/.config/termonad/termonad.hs +++ b/.config/termonad/termonad.hs @@ -1,8 +1,10 @@ {-# LANGUAGE OverloadedStrings #-} --- This is my Termonad configuration. +-- | This is my Termonad configuration. +-- Currently defaults to Gruvbox module Main where +import Data.Maybe (fromMaybe) import Termonad ( CursorBlinkMode(CursorBlinkModeOn) , Option(Set) @@ -31,11 +33,14 @@ import Termonad.Config.Colour , createColour , createColourExtension , defaultColourConfig + , defaultStandardColours + , defaultLightColours , backgroundColour , foregroundColour , palette + , List8 + , mkList8 ) -import Termonad.Config.Vec (Vec((:*), EmptyVec), N8) -- This is our main 'TMConfig'. It holds all of the non-colour settings -- for Termonad. @@ -54,6 +59,76 @@ myTMConfig = } } +-- This is our Gruvbox dark 'ColourConfig'. It holds all of our dark-related settings. +gruvboxDark :: ColourConfig (AlphaColour Double) +gruvboxDark = + defaultColourConfig + -- Set the default foreground colour of text of the terminal. + { foregroundColour = Set (createColour 213 196 161) -- fg2 + , backgroundColour = Set (createColour 40 40 40) -- bg0 + -- Set the extended palette that has 2 Vecs of 8 Gruvbox palette colours + , palette = ExtendedPalette gruvboxDark1 gruvboxDark2 + } + where + gruvboxDark1 :: List8 (AlphaColour Double) + gruvboxDark1 = fromMaybe defaultStandardColours $ mkList8 + [ createColour 40 40 40 -- bg0 + , createColour 204 36 29 -- red.1 + , createColour 152 151 26 -- green.2 + , createColour 215 153 33 -- yellow.3 + , createColour 69 133 136 -- blue.4 + , createColour 177 98 134 -- purple.5 + , createColour 104 157 106 -- aqua.6 + , createColour 189 174 147 -- fg3 + ] + + gruvboxDark2 :: List8 (AlphaColour Double) + gruvboxDark2 = fromMaybe defaultStandardColours $ mkList8 + [ createColour 124 111 100 -- bg4 + , createColour 251 71 52 -- red.9 + , createColour 184 187 38 -- green.10 + , createColour 250 189 47 -- yellow.11 + , createColour 131 165 152 -- blue.12 + , createColour 211 134 155 -- purple.13 + , createColour 142 192 124 -- aqua.14 + , createColour 235 219 178 -- fg1 + ] + +-- This is our Gruvbox light 'ColourConfig'. It holds all of our dark-related settings. +gruvboxLight :: ColourConfig (AlphaColour Double) +gruvboxLight = + defaultColourConfig + -- Set the default foreground colour of text of the terminal. + { foregroundColour = Set (createColour 60 56 54) -- fg1 + , backgroundColour = Set (createColour 251 241 199) -- bg0 + -- Set the extended palette that has 2 Vecs of 8 Gruvbox palette colours + , palette = ExtendedPalette gruvboxLight1 gruvboxLight2 + } + where + gruvboxLight1 :: List8 (AlphaColour Double) + gruvboxLight1 = fromMaybe defaultStandardColours $ mkList8 + [ createColour 251 241 199 -- bg0 + , createColour 204 36 29 -- red.1 + , createColour 152 151 26 -- green.2 + , createColour 215 153 33 -- yellow.3 + , createColour 69 133 136 -- blue.4 + , createColour 177 98 134 -- purple.5 + , createColour 104 157 106 -- aqua.6 + , createColour 102 82 84 -- fg3 + ] + + gruvboxLight2 :: List8 (AlphaColour Double) + gruvboxLight2 = fromMaybe defaultStandardColours $ mkList8 + [ createColour 168 153 132 -- bg4 + , createColour 157 0 6 -- red.9 + , createColour 121 116 14 -- green.10 + , createColour 181 118 20 -- yellow.11 + , createColour 7 102 120 -- blue.12 + , createColour 143 63 113 -- purple.13 + , createColour 66 123 88 -- aqua.14 + , createColour 60 56 54 -- fg1 + ] + -- This is our Solarized dark 'ColourConfig'. It holds all of our dark-related settings. solarizedDark :: ColourConfig (AlphaColour Double) solarizedDark = @@ -65,29 +140,29 @@ solarizedDark = , palette = ExtendedPalette solarizedDark1 solarizedDark2 } where - solarizedDark1 :: Vec N8 (AlphaColour Double) - solarizedDark1 = - createColour 7 54 66 -- base02, background highlights - :* createColour 220 50 47 -- red - :* createColour 133 153 0 -- green - :* createColour 181 137 0 -- yellow - :* createColour 38 139 210 -- blue - :* createColour 211 54 130 -- magenta - :* createColour 42 161 152 -- cyan - :* createColour 238 232 213 -- base2 - :* EmptyVec + solarizedDark1 :: List8 (AlphaColour Double) + solarizedDark1 = fromMaybe defaultStandardColours $ mkList8 + [ createColour 7 54 66 -- base02 + , createColour 220 50 47 -- red + , createColour 133 153 0 -- green + , createColour 181 137 0 -- yellow + , createColour 38 139 210 -- blue + , createColour 211 54 130 -- magenta + , createColour 42 161 152 -- cyan + , createColour 238 232 213 -- base2 + ] - solarizedDark2 :: Vec N8 (AlphaColour Double) - solarizedDark2 = - createColour 0 43 54 -- base03, background - :* createColour 203 75 22 -- orange - :* createColour 88 110 117 -- base01, comments / secondary text - :* createColour 131 148 150 -- base0, body text / default code / primary content - :* createColour 147 161 161 -- base1, optional emphasised content - :* createColour 108 113 196 -- violet - :* createColour 101 123 131 -- base00 - :* createColour 253 246 227 -- base3 - :* EmptyVec + solarizedDark2 :: List8 (AlphaColour Double) + solarizedDark2 = fromMaybe defaultStandardColours $ mkList8 + [ createColour 0 43 54 -- base03 + , createColour 203 75 22 -- orange + , createColour 88 110 117 -- base01 + , createColour 101 123 131 -- base00 + , createColour 131 148 150 -- base0 + , createColour 108 113 196 -- violet + , createColour 147 161 161 -- base1 + , createColour 253 246 227 -- base3 + ] -- This is our Solarized light 'ColourConfig'. It holds all of our light-related settings. solarizedLight :: ColourConfig (AlphaColour Double) @@ -100,29 +175,29 @@ solarizedLight = , palette = ExtendedPalette solarizedLight1 solarizedLight2 } where - solarizedLight1 :: Vec N8 (AlphaColour Double) - solarizedLight1 = - createColour 238 232 213 -- base2, background highlights - :* createColour 220 50 47 -- red - :* createColour 133 153 0 -- green - :* createColour 181 137 0 -- yellow - :* createColour 38 139 210 -- blue - :* createColour 211 54 130 -- magenta - :* createColour 42 161 152 -- cyan - :* createColour 7 54 66 -- base02 - :* EmptyVec + solarizedLight1 :: List8 (AlphaColour Double) + solarizedLight1 = fromMaybe defaultStandardColours $ mkList8 + [ createColour 7 54 66 -- base02 + , createColour 220 50 47 -- red + , createColour 133 153 0 -- green + , createColour 181 137 0 -- yellow + , createColour 38 139 210 -- blue + , createColour 211 54 130 -- magenta + , createColour 42 161 152 -- cyan + , createColour 238 232 213 -- base2 + ] - solarizedLight2 :: Vec N8 (AlphaColour Double) - solarizedLight2 = - createColour 253 246 227 -- base3, background - :* createColour 203 75 22 -- orange - :* createColour 147 161 161 -- base1, comments / secondary text - :* createColour 101 123 131 -- base00, body text / default code / primary content - :* createColour 88 110 117 -- base01, optional emphasised content - :* createColour 108 113 196 -- violet - :* createColour 131 148 150 -- base0 - :* createColour 0 43 54 -- base03 - :* EmptyVec + solarizedLight2 :: List8 (AlphaColour Double) + solarizedLight2 = fromMaybe defaultStandardColours $ mkList8 + [ createColour 0 43 54 -- base03 + , createColour 203 75 22 -- orange + , createColour 88 110 117 -- base01 + , createColour 101 123 131 -- base00 + , createColour 131 148 150 -- base0 + , createColour 108 113 196 -- violet + , createColour 147 161 161 -- base1 + , createColour 253 246 227 -- base3 + ] -- This defines the font for the terminal. fontConf :: FontConfig @@ -135,7 +210,7 @@ fontConf = main :: IO () main = do -- First, create the colour extension based on either Solarized modules. - myColourExt <- createColourExtension solarizedDark + myColourExt <- createColourExtension gruvboxDark -- Update 'myTMConfig' with our colour extension. let newTMConfig = addColourExtension myTMConfig myColourExt