termonad 3.1.0.0 → 3.1.0.1
raw patch · 7 files changed
+223/−22 lines, 7 filesdep ~basenew-component:exe:termonad-example-colour-extension-gruvboxPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- Termonad.Config.Vec: [Let6989586621679503111Scrutinee_6989586621679488366Sym0KindInference] :: forall n6989586621679503110 arg_a24kM. SameKind (Apply Let6989586621679503111Scrutinee_6989586621679488366Sym0 arg_a24kM) (Let6989586621679503111Scrutinee_6989586621679488366Sym1 arg_a24kM) => Let6989586621679503111Scrutinee_6989586621679488366Sym0 n6989586621679503110
- Termonad.Config.Vec: [Let6989586621679503115Scrutinee_6989586621679488368Sym0KindInference] :: forall n6989586621679503110 arg_a24kQ. SameKind (Apply Let6989586621679503115Scrutinee_6989586621679488368Sym0 arg_a24kQ) (Let6989586621679503115Scrutinee_6989586621679488368Sym1 arg_a24kQ) => Let6989586621679503115Scrutinee_6989586621679488368Sym0 n6989586621679503110
- Termonad.Config.Vec: data Let6989586621679503111Scrutinee_6989586621679488366Sym0 n6989586621679503110
- Termonad.Config.Vec: data Let6989586621679503115Scrutinee_6989586621679488368Sym0 n6989586621679503110
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Let6989586621679503111Scrutinee_6989586621679488366Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Let6989586621679503115Scrutinee_6989586621679488368Sym0
- Termonad.Config.Vec: type Let6989586621679503111Scrutinee_6989586621679488366Sym1 n6989586621679503110 = Let6989586621679503111Scrutinee_6989586621679488366 n6989586621679503110
- Termonad.Config.Vec: type Let6989586621679503115Scrutinee_6989586621679488368Sym1 n6989586621679503110 = Let6989586621679503115Scrutinee_6989586621679488368 n6989586621679503110
- Termonad.Pcre: inline_c_ffi_6989586621679117912 :: IO CUInt
+ Termonad.Config.Vec: [Let6989586621679503111Scrutinee_6989586621679488363Sym0KindInference] :: forall n6989586621679503110 arg_a24kM. SameKind (Apply Let6989586621679503111Scrutinee_6989586621679488363Sym0 arg_a24kM) (Let6989586621679503111Scrutinee_6989586621679488363Sym1 arg_a24kM) => Let6989586621679503111Scrutinee_6989586621679488363Sym0 n6989586621679503110
+ Termonad.Config.Vec: [Let6989586621679503115Scrutinee_6989586621679488365Sym0KindInference] :: forall n6989586621679503110 arg_a24kQ. SameKind (Apply Let6989586621679503115Scrutinee_6989586621679488365Sym0 arg_a24kQ) (Let6989586621679503115Scrutinee_6989586621679488365Sym1 arg_a24kQ) => Let6989586621679503115Scrutinee_6989586621679488365Sym0 n6989586621679503110
+ Termonad.Config.Vec: data Let6989586621679503111Scrutinee_6989586621679488363Sym0 n6989586621679503110
+ Termonad.Config.Vec: data Let6989586621679503115Scrutinee_6989586621679488365Sym0 n6989586621679503110
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Let6989586621679503111Scrutinee_6989586621679488363Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Let6989586621679503115Scrutinee_6989586621679488365Sym0
+ Termonad.Config.Vec: type Let6989586621679503111Scrutinee_6989586621679488363Sym1 n6989586621679503110 = Let6989586621679503111Scrutinee_6989586621679488363 n6989586621679503110
+ Termonad.Config.Vec: type Let6989586621679503115Scrutinee_6989586621679488365Sym1 n6989586621679503110 = Let6989586621679503115Scrutinee_6989586621679488365 n6989586621679503110
+ Termonad.Pcre: inline_c_ffi_6989586621679117913 :: IO CUInt
Files
- .nix-helpers/nixpkgs.nix +3/−3
- CHANGELOG.md +14/−0
- README.md +5/−0
- example-config/ExampleGruvboxColourExtension.hs +146/−0
- example-config/ExampleSolarizedColourExtension.hs +33/−17
- termonad.cabal +17/−2
- test/readme/README.lhs +5/−0
.nix-helpers/nixpkgs.nix view
@@ -20,9 +20,9 @@ if isNull nixpkgs then builtins.fetchTarball {- # Recent version of nixpkgs master as of 2020-03-01.- url = "https://github.com/NixOS/nixpkgs/archive/4f36e9f9a33da034327188ddebc3aecb3633e4d7.tar.gz";- sha256 = "sha256:0aa3aldp6m962hx0qzkizkwvamwv2c4yijk6g515dx7h7f5xrary";+ # Recent version of nixpkgs master as of 2020-03-03.+ url = "https://github.com/NixOS/nixpkgs/archive/bd2c1d72c5a77bfc78693c5b6d121a9e8bb59e6f.tar.gz";+ sha256 = "sha256:0r6lbsz5a0yn6x96y890xvycc1h6la84k2hd3ig5c8irknxdbx22"; } else nixpkgs;
CHANGELOG.md view
@@ -1,3 +1,17 @@+## 3.1.0.1++* Correct the solarized colours+ [#148](https://github.com/cdepillabout/termonad/pull/148).+ Thanks [@craigem](https://github.com/craigem)!++* Add an example showing Gruvbox colours+ [#149](https://github.com/cdepillabout/termonad/pull/149).+ Thanks again [@craigem](https://github.com/craigem)!++* Set an upperbound on `base` so we make sure that only GHC-8.8 is used. Some+ of the dependencies of Termonad don't support GHC-8.10 yet.++ ## 3.1.0.0 * Fix up deprecated functions used in Setup.hs. This should allow Termonad to
README.md view
@@ -16,6 +16,11 @@  +Termonad was+[featured on an episode](https://www.youtube.com/watch?v=TLNr_gBv5HY) of+[DistroTube](https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg).+This video gives a short overview of Termonad.+ <!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --> **Table of Contents**
+ example-config/ExampleGruvboxColourExtension.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE OverloadedStrings #-}+-- | This is an example Termonad configuration that shows how to use the+-- Gruvbox colour scheme https://github.com/morhetz/gruvbox++module Main where++import Termonad+ ( CursorBlinkMode(CursorBlinkModeOn)+ , Option(Set)+ , ShowScrollbar(ShowScrollbarNever)+ , TMConfig+ , confirmExit+ , cursorBlinkMode+ , defaultConfigOptions+ , defaultTMConfig+ , options+ , showMenu+ , showScrollbar+ , start+ , FontConfig+ , FontSize(FontSizePoints)+ , defaultFontConfig+ , fontConfig+ , fontFamily+ , fontSize+ )+import Termonad.Config.Colour+ ( AlphaColour+ , ColourConfig+ , Palette(ExtendedPalette)+ , addColourExtension+ , createColour+ , createColourExtension+ , defaultColourConfig+ , backgroundColour+ , foregroundColour+ , palette+ )+import Termonad.Config.Vec (Vec((:*), EmptyVec), N8)++-- This is our main 'TMConfig'. It holds all of the non-colour settings+-- for Termonad.+--+-- This shows how a few settings can be changed.+myTMConfig :: TMConfig+myTMConfig =+ defaultTMConfig+ { options =+ defaultConfigOptions+ { showScrollbar = ShowScrollbarNever+ , confirmExit = False+ , showMenu = False+ , cursorBlinkMode = CursorBlinkModeOn+ , fontConfig = fontConf+ }+ }++-- 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 :: Vec N8 (AlphaColour Double)+ gruvboxDark1 =+ 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+ :* EmptyVec++ gruvboxDark2 :: Vec N8 (AlphaColour Double)+ gruvboxDark2 =+ 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+ :* EmptyVec++-- 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 :: Vec N8 (AlphaColour Double)+ gruvboxLight1 =+ 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+ :* EmptyVec++ gruvboxLight2 :: Vec N8 (AlphaColour Double)+ gruvboxLight2 =+ 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+ :* EmptyVec+++-- This defines the font for the terminal.+fontConf :: FontConfig+fontConf =+ defaultFontConfig+ { fontFamily = "Monospace"+ , fontSize = FontSizePoints 12+ }++main :: IO ()+main = do+ -- First, create the colour extension based on either Gruvboxmodules.+ myColourExt <- createColourExtension gruvboxDark++ -- Update 'myTMConfig' with our colour extension.+ let newTMConfig = addColourExtension myTMConfig myColourExt++ -- Start Termonad with our updated 'TMConfig'.+ start newTMConfig
example-config/ExampleSolarizedColourExtension.hs view
@@ -1,10 +1,11 @@+{-# LANGUAGE OverloadedStrings #-} -- | This is an example Termonad configuration that shows how to use the -- Solarized colour scheme https://ethanschoonover.com/solarized/ module Main where import Termonad- ( CursorBlinkMode(CursorBlinkModeOff)+ ( CursorBlinkMode(CursorBlinkModeOn) , Option(Set) , ShowScrollbar(ShowScrollbarNever) , TMConfig@@ -16,6 +17,12 @@ , showMenu , showScrollbar , start+ , FontConfig+ , FontSize(FontSizePoints)+ , defaultFontConfig+ , fontConfig+ , fontFamily+ , fontSize ) import Termonad.Config.Colour ( AlphaColour@@ -43,7 +50,8 @@ { showScrollbar = ShowScrollbarNever , confirmExit = False , showMenu = False- , cursorBlinkMode = CursorBlinkModeOff+ , cursorBlinkMode = CursorBlinkModeOn+ , fontConfig = fontConf } } @@ -60,7 +68,7 @@ where solarizedDark1 :: Vec N8 (AlphaColour Double) solarizedDark1 =- createColour 7 54 66 -- base02, background highlights+ createColour 7 54 66 -- base02 :* createColour 220 50 47 -- red :* createColour 133 153 0 -- green :* createColour 181 137 0 -- yellow@@ -72,13 +80,13 @@ solarizedDark2 :: Vec N8 (AlphaColour Double) solarizedDark2 =- createColour 0 43 54 -- base03, background+ createColour 0 43 54 -- base03 :* 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 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 :* EmptyVec @@ -95,31 +103,39 @@ where solarizedLight1 :: Vec N8 (AlphaColour Double) solarizedLight1 =- createColour 238 232 213 -- base2, background highlights+ 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 7 54 66 -- base02+ :* createColour 238 232 213 -- base2 :* EmptyVec solarizedLight2 :: Vec N8 (AlphaColour Double) solarizedLight2 =- createColour 253 246 227 -- base3, background+ createColour 0 43 54 -- base03 :* 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 88 110 117 -- base01+ :* createColour 101 123 131 -- base00 :* createColour 131 148 150 -- base0- :* createColour 0 43 54 -- base03+ :* createColour 108 113 196 -- violet+ :* createColour 147 161 161 -- base1+ :* createColour 253 246 227 -- base3 :* EmptyVec +-- This defines the font for the terminal.+fontConf :: FontConfig+fontConf =+ defaultFontConfig+ { fontFamily = "Monospace"+ , fontSize = FontSizePoints 12+ }+ main :: IO () main = do- -- First, create the colour extension based on either Solarixed modules.+ -- First, create the colour extension based on either Solarized modules. myColourExt <- createColourExtension solarizedDark -- Update 'myTMConfig' with our colour extension.
termonad.cabal view
@@ -1,5 +1,5 @@ name: termonad-version: 3.1.0.0+version: 3.1.0.1 synopsis: Terminal emulator configurable in Haskell description: Please see <https://github.com/cdepillabout/termonad#readme README.md>. homepage: https://github.com/cdepillabout/termonad@@ -54,7 +54,8 @@ , Termonad.Types , Termonad.XML other-modules: Paths_termonad- build-depends: base >= 4.13 && < 5+ -- Termonad only supports GHC-8.8+ build-depends: base >= 4.13 && < 4.14 , adjunctions , classy-prelude , colour@@ -199,6 +200,20 @@ executable termonad-example-colour-extension main-is: example-config/ExampleColourExtension.hs+ build-depends: base+ , termonad+ , colour+ , singletons+ default-language: Haskell2010+ ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -threaded -rtsopts -with-rtsopts=-N++ if flag(buildexamples)+ buildable: True+ else+ buildable: False++executable termonad-example-colour-extension-gruvbox+ main-is: example-config/ExampleGruvboxColourExtension.hs build-depends: base , termonad , colour
test/readme/README.lhs view
@@ -16,6 +16,11 @@  +Termonad was+[featured on an episode](https://www.youtube.com/watch?v=TLNr_gBv5HY) of+[DistroTube](https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg).+This video gives a short overview of Termonad.+ <!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --> **Table of Contents**