packages feed

termonad 2.0.0.0 → 2.1.0.0

raw patch · 15 files changed

+615/−42 lines, 15 filesdep +file-embeddep +transformersPVP ok

version bump matches the API change (PVP)

Dependencies added: file-embed, transformers

API changes (from Hackage documentation)

- Termonad.Config.Vec: [Abs_6989586621679478956Sym0KindInference] :: forall a6989586621679478955 arg_a1Y3c. SameKind (Apply Abs_6989586621679478956Sym0 arg_a1Y3c) (Abs_6989586621679478956Sym1 arg_a1Y3c) => Abs_6989586621679478956Sym0 a6989586621679478955
- Termonad.Config.Vec: [Compare_6989586621679477676Sym0KindInference] :: forall a6989586621679477674 arg_a1XIz. SameKind (Apply Compare_6989586621679477676Sym0 arg_a1XIz) (Compare_6989586621679477676Sym1 arg_a1XIz) => Compare_6989586621679477676Sym0 a6989586621679477674
- Termonad.Config.Vec: [Compare_6989586621679477676Sym1KindInference] :: forall a6989586621679477674 a6989586621679477675 arg_a1XIy. SameKind (Apply (Compare_6989586621679477676Sym1 a6989586621679477674) arg_a1XIy) (Compare_6989586621679477676Sym2 a6989586621679477674 arg_a1XIy) => Compare_6989586621679477676Sym1 a6989586621679477674 a6989586621679477675
- Termonad.Config.Vec: [FromInteger_6989586621679478979Sym0KindInference] :: forall a6989586621679478978 arg_a1Y3z. SameKind (Apply FromInteger_6989586621679478979Sym0 arg_a1Y3z) (FromInteger_6989586621679478979Sym1 arg_a1Y3z) => FromInteger_6989586621679478979Sym0 a6989586621679478978
- Termonad.Config.Vec: [Let6989586621679478968Scrutinee_6989586621679464273Sym0KindInference] :: forall n6989586621679478967 arg_a1Y3n. SameKind (Apply Let6989586621679478968Scrutinee_6989586621679464273Sym0 arg_a1Y3n) (Let6989586621679478968Scrutinee_6989586621679464273Sym1 arg_a1Y3n) => Let6989586621679478968Scrutinee_6989586621679464273Sym0 n6989586621679478967
- Termonad.Config.Vec: [Let6989586621679478972Scrutinee_6989586621679464275Sym0KindInference] :: forall n6989586621679478967 arg_a1Y3r. SameKind (Apply Let6989586621679478972Scrutinee_6989586621679464275Sym0 arg_a1Y3r) (Let6989586621679478972Scrutinee_6989586621679464275Sym1 arg_a1Y3r) => Let6989586621679478972Scrutinee_6989586621679464275Sym0 n6989586621679478967
- Termonad.Config.Vec: [ShowsPrec_6989586621679478377Sym0KindInference] :: forall a6989586621679478374 arg_a1XTT. SameKind (Apply ShowsPrec_6989586621679478377Sym0 arg_a1XTT) (ShowsPrec_6989586621679478377Sym1 arg_a1XTT) => ShowsPrec_6989586621679478377Sym0 a6989586621679478374
- Termonad.Config.Vec: [ShowsPrec_6989586621679478377Sym1KindInference] :: forall a6989586621679478374 a6989586621679478375 arg_a1XTS. SameKind (Apply (ShowsPrec_6989586621679478377Sym1 a6989586621679478374) arg_a1XTS) (ShowsPrec_6989586621679478377Sym2 a6989586621679478374 arg_a1XTS) => ShowsPrec_6989586621679478377Sym1 a6989586621679478374 a6989586621679478375
- Termonad.Config.Vec: [ShowsPrec_6989586621679478377Sym2KindInference] :: forall a6989586621679478374 a6989586621679478375 a6989586621679478376 arg_a1XTR. SameKind (Apply (ShowsPrec_6989586621679478377Sym2 a6989586621679478374 a6989586621679478375) arg_a1XTR) (ShowsPrec_6989586621679478377Sym3 a6989586621679478374 a6989586621679478375 arg_a1XTR) => ShowsPrec_6989586621679478377Sym2 a6989586621679478374 a6989586621679478375 a6989586621679478376
- Termonad.Config.Vec: [Signum_6989586621679478962Sym0KindInference] :: forall a6989586621679478961 arg_a1Y3i. SameKind (Apply Signum_6989586621679478962Sym0 arg_a1Y3i) (Signum_6989586621679478962Sym1 arg_a1Y3i) => Signum_6989586621679478962Sym0 a6989586621679478961
- Termonad.Config.Vec: [TFHelper_6989586621679478914Sym0KindInference] :: forall a6989586621679478912 arg_a1Y2x. SameKind (Apply TFHelper_6989586621679478914Sym0 arg_a1Y2x) (TFHelper_6989586621679478914Sym1 arg_a1Y2x) => TFHelper_6989586621679478914Sym0 a6989586621679478912
- Termonad.Config.Vec: [TFHelper_6989586621679478914Sym1KindInference] :: forall a6989586621679478912 a6989586621679478913 arg_a1Y2w. SameKind (Apply (TFHelper_6989586621679478914Sym1 a6989586621679478912) arg_a1Y2w) (TFHelper_6989586621679478914Sym2 a6989586621679478912 arg_a1Y2w) => TFHelper_6989586621679478914Sym1 a6989586621679478912 a6989586621679478913
- Termonad.Config.Vec: [TFHelper_6989586621679478930Sym0KindInference] :: forall a6989586621679478928 arg_a1Y2N. SameKind (Apply TFHelper_6989586621679478930Sym0 arg_a1Y2N) (TFHelper_6989586621679478930Sym1 arg_a1Y2N) => TFHelper_6989586621679478930Sym0 a6989586621679478928
- Termonad.Config.Vec: [TFHelper_6989586621679478930Sym1KindInference] :: forall a6989586621679478928 a6989586621679478929 arg_a1Y2M. SameKind (Apply (TFHelper_6989586621679478930Sym1 a6989586621679478928) arg_a1Y2M) (TFHelper_6989586621679478930Sym2 a6989586621679478928 arg_a1Y2M) => TFHelper_6989586621679478930Sym1 a6989586621679478928 a6989586621679478929
- Termonad.Config.Vec: [TFHelper_6989586621679478946Sym0KindInference] :: forall a6989586621679478944 arg_a1Y33. SameKind (Apply TFHelper_6989586621679478946Sym0 arg_a1Y33) (TFHelper_6989586621679478946Sym1 arg_a1Y33) => TFHelper_6989586621679478946Sym0 a6989586621679478944
- Termonad.Config.Vec: [TFHelper_6989586621679478946Sym1KindInference] :: forall a6989586621679478944 a6989586621679478945 arg_a1Y32. SameKind (Apply (TFHelper_6989586621679478946Sym1 a6989586621679478944) arg_a1Y32) (TFHelper_6989586621679478946Sym2 a6989586621679478944 arg_a1Y32) => TFHelper_6989586621679478946Sym1 a6989586621679478944 a6989586621679478945
- Termonad.Config.Vec: data Abs_6989586621679478956Sym0 :: (~>) Peano Peano
- Termonad.Config.Vec: data Compare_6989586621679477676Sym0 :: (~>) Peano ((~>) Peano Ordering)
- Termonad.Config.Vec: data Compare_6989586621679477676Sym1 (a6989586621679477674 :: Peano) :: (~>) Peano Ordering
- Termonad.Config.Vec: data FromInteger_6989586621679478979Sym0 :: (~>) Nat Peano
- Termonad.Config.Vec: data Let6989586621679478968Scrutinee_6989586621679464273Sym0 n6989586621679478967
- Termonad.Config.Vec: data Let6989586621679478972Scrutinee_6989586621679464275Sym0 n6989586621679478967
- Termonad.Config.Vec: data ShowsPrec_6989586621679478377Sym0 :: (~>) Nat ((~>) Peano ((~>) Symbol Symbol))
- Termonad.Config.Vec: data ShowsPrec_6989586621679478377Sym1 (a6989586621679478374 :: Nat) :: (~>) Peano ((~>) Symbol Symbol)
- Termonad.Config.Vec: data ShowsPrec_6989586621679478377Sym2 (a6989586621679478374 :: Nat) (a6989586621679478375 :: Peano) :: (~>) Symbol Symbol
- Termonad.Config.Vec: data Signum_6989586621679478962Sym0 :: (~>) Peano Peano
- Termonad.Config.Vec: data TFHelper_6989586621679478914Sym0 :: (~>) Peano ((~>) Peano Peano)
- Termonad.Config.Vec: data TFHelper_6989586621679478914Sym1 (a6989586621679478912 :: Peano) :: (~>) Peano Peano
- Termonad.Config.Vec: data TFHelper_6989586621679478930Sym0 :: (~>) Peano ((~>) Peano Peano)
- Termonad.Config.Vec: data TFHelper_6989586621679478930Sym1 (a6989586621679478928 :: Peano) :: (~>) Peano Peano
- Termonad.Config.Vec: data TFHelper_6989586621679478946Sym0 :: (~>) Peano ((~>) Peano Peano)
- Termonad.Config.Vec: data TFHelper_6989586621679478946Sym1 (a6989586621679478944 :: Peano) :: (~>) Peano Peano
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.AddPeanoSym1 a6989586621679475934)
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.Compare_6989586621679477676Sym1 a6989586621679477674)
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.MultPeanoSym1 a6989586621679475941)
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.ShowsPrec_6989586621679478377Sym1 a6989586621679478374)
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.ShowsPrec_6989586621679478377Sym2 a6989586621679478375 a6989586621679478374)
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.SubtractPeanoSym1 a6989586621679475927)
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.TFHelper_6989586621679478914Sym1 a6989586621679478912)
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.TFHelper_6989586621679478930Sym1 a6989586621679478928)
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.TFHelper_6989586621679478946Sym1 a6989586621679478944)
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Abs_6989586621679478956Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Compare_6989586621679477676Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.FromInteger_6989586621679478979Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Let6989586621679478968Scrutinee_6989586621679464273Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Let6989586621679478972Scrutinee_6989586621679464275Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.ShowsPrec_6989586621679478377Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Signum_6989586621679478962Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.TFHelper_6989586621679478914Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.TFHelper_6989586621679478930Sym0
- Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.TFHelper_6989586621679478946Sym0
- Termonad.Config.Vec: type Abs_6989586621679478956Sym1 (a6989586621679478955 :: Peano) = Abs_6989586621679478956 a6989586621679478955
- Termonad.Config.Vec: type Compare_6989586621679477676Sym2 (a6989586621679477674 :: Peano) (a6989586621679477675 :: Peano) = Compare_6989586621679477676 a6989586621679477674 a6989586621679477675
- Termonad.Config.Vec: type FromInteger_6989586621679478979Sym1 (a6989586621679478978 :: Nat) = FromInteger_6989586621679478979 a6989586621679478978
- Termonad.Config.Vec: type Let6989586621679478968Scrutinee_6989586621679464273Sym1 n6989586621679478967 = Let6989586621679478968Scrutinee_6989586621679464273 n6989586621679478967
- Termonad.Config.Vec: type Let6989586621679478972Scrutinee_6989586621679464275Sym1 n6989586621679478967 = Let6989586621679478972Scrutinee_6989586621679464275 n6989586621679478967
- Termonad.Config.Vec: type ShowsPrec_6989586621679478377Sym3 (a6989586621679478374 :: Nat) (a6989586621679478375 :: Peano) (a6989586621679478376 :: Symbol) = ShowsPrec_6989586621679478377 a6989586621679478374 a6989586621679478375 a6989586621679478376
- Termonad.Config.Vec: type Signum_6989586621679478962Sym1 (a6989586621679478961 :: Peano) = Signum_6989586621679478962 a6989586621679478961
- Termonad.Config.Vec: type TFHelper_6989586621679478914Sym2 (a6989586621679478912 :: Peano) (a6989586621679478913 :: Peano) = TFHelper_6989586621679478914 a6989586621679478912 a6989586621679478913
- Termonad.Config.Vec: type TFHelper_6989586621679478930Sym2 (a6989586621679478928 :: Peano) (a6989586621679478929 :: Peano) = TFHelper_6989586621679478930 a6989586621679478928 a6989586621679478929
- Termonad.Config.Vec: type TFHelper_6989586621679478946Sym2 (a6989586621679478944 :: Peano) (a6989586621679478945 :: Peano) = TFHelper_6989586621679478946 a6989586621679478944 a6989586621679478945
- Termonad.Pcre: inline_c_ffi_6989586621679113076 :: IO CUInt
+ Termonad.App: applyNewPreferences :: TMState -> IO ()
+ Termonad.App: applyNewPreferencesToTab :: TMState -> TMNotebookTab -> IO ()
+ Termonad.App: comboBoxFill :: forall a. Show a => ComboBoxText -> [(a, Text)] -> IO ()
+ Termonad.App: comboBoxGetActive :: forall a. (Show a, Enum a) => ComboBoxText -> [a] -> IO (Maybe a)
+ Termonad.App: comboBoxSetActive :: Show a => ComboBoxText -> a -> IO ()
+ Termonad.App: fontConfigFromFontDescription :: FontDescription -> IO (Maybe FontConfig)
+ Termonad.App: fontSizeFromFontDescription :: FontDescription -> IO FontSize
+ Termonad.App: setShowMenuBar :: Application -> Bool -> IO ()
+ Termonad.App: showPreferencesDialog :: TMState -> IO ()
+ Termonad.Config.Vec: [Abs_6989586621679501934Sym0KindInference] :: forall a6989586621679501933 arg_a241O. SameKind (Apply Abs_6989586621679501934Sym0 arg_a241O) (Abs_6989586621679501934Sym1 arg_a241O) => Abs_6989586621679501934Sym0 a6989586621679501933
+ Termonad.Config.Vec: [Compare_6989586621679500654Sym0KindInference] :: forall a6989586621679500652 arg_a23Hb. SameKind (Apply Compare_6989586621679500654Sym0 arg_a23Hb) (Compare_6989586621679500654Sym1 arg_a23Hb) => Compare_6989586621679500654Sym0 a6989586621679500652
+ Termonad.Config.Vec: [Compare_6989586621679500654Sym1KindInference] :: forall a6989586621679500652 a6989586621679500653 arg_a23Ha. SameKind (Apply (Compare_6989586621679500654Sym1 a6989586621679500652) arg_a23Ha) (Compare_6989586621679500654Sym2 a6989586621679500652 arg_a23Ha) => Compare_6989586621679500654Sym1 a6989586621679500652 a6989586621679500653
+ Termonad.Config.Vec: [FromInteger_6989586621679501957Sym0KindInference] :: forall a6989586621679501956 arg_a242b. SameKind (Apply FromInteger_6989586621679501957Sym0 arg_a242b) (FromInteger_6989586621679501957Sym1 arg_a242b) => FromInteger_6989586621679501957Sym0 a6989586621679501956
+ Termonad.Config.Vec: [Let6989586621679501946Scrutinee_6989586621679487025Sym0KindInference] :: forall n6989586621679501945 arg_a241Z. SameKind (Apply Let6989586621679501946Scrutinee_6989586621679487025Sym0 arg_a241Z) (Let6989586621679501946Scrutinee_6989586621679487025Sym1 arg_a241Z) => Let6989586621679501946Scrutinee_6989586621679487025Sym0 n6989586621679501945
+ Termonad.Config.Vec: [Let6989586621679501950Scrutinee_6989586621679487027Sym0KindInference] :: forall n6989586621679501945 arg_a2423. SameKind (Apply Let6989586621679501950Scrutinee_6989586621679487027Sym0 arg_a2423) (Let6989586621679501950Scrutinee_6989586621679487027Sym1 arg_a2423) => Let6989586621679501950Scrutinee_6989586621679487027Sym0 n6989586621679501945
+ Termonad.Config.Vec: [ShowsPrec_6989586621679501355Sym0KindInference] :: forall a6989586621679501352 arg_a23Sv. SameKind (Apply ShowsPrec_6989586621679501355Sym0 arg_a23Sv) (ShowsPrec_6989586621679501355Sym1 arg_a23Sv) => ShowsPrec_6989586621679501355Sym0 a6989586621679501352
+ Termonad.Config.Vec: [ShowsPrec_6989586621679501355Sym1KindInference] :: forall a6989586621679501352 a6989586621679501353 arg_a23Su. SameKind (Apply (ShowsPrec_6989586621679501355Sym1 a6989586621679501352) arg_a23Su) (ShowsPrec_6989586621679501355Sym2 a6989586621679501352 arg_a23Su) => ShowsPrec_6989586621679501355Sym1 a6989586621679501352 a6989586621679501353
+ Termonad.Config.Vec: [ShowsPrec_6989586621679501355Sym2KindInference] :: forall a6989586621679501352 a6989586621679501353 a6989586621679501354 arg_a23St. SameKind (Apply (ShowsPrec_6989586621679501355Sym2 a6989586621679501352 a6989586621679501353) arg_a23St) (ShowsPrec_6989586621679501355Sym3 a6989586621679501352 a6989586621679501353 arg_a23St) => ShowsPrec_6989586621679501355Sym2 a6989586621679501352 a6989586621679501353 a6989586621679501354
+ Termonad.Config.Vec: [Signum_6989586621679501940Sym0KindInference] :: forall a6989586621679501939 arg_a241U. SameKind (Apply Signum_6989586621679501940Sym0 arg_a241U) (Signum_6989586621679501940Sym1 arg_a241U) => Signum_6989586621679501940Sym0 a6989586621679501939
+ Termonad.Config.Vec: [TFHelper_6989586621679501892Sym0KindInference] :: forall a6989586621679501890 arg_a2419. SameKind (Apply TFHelper_6989586621679501892Sym0 arg_a2419) (TFHelper_6989586621679501892Sym1 arg_a2419) => TFHelper_6989586621679501892Sym0 a6989586621679501890
+ Termonad.Config.Vec: [TFHelper_6989586621679501892Sym1KindInference] :: forall a6989586621679501890 a6989586621679501891 arg_a2418. SameKind (Apply (TFHelper_6989586621679501892Sym1 a6989586621679501890) arg_a2418) (TFHelper_6989586621679501892Sym2 a6989586621679501890 arg_a2418) => TFHelper_6989586621679501892Sym1 a6989586621679501890 a6989586621679501891
+ Termonad.Config.Vec: [TFHelper_6989586621679501908Sym0KindInference] :: forall a6989586621679501906 arg_a241p. SameKind (Apply TFHelper_6989586621679501908Sym0 arg_a241p) (TFHelper_6989586621679501908Sym1 arg_a241p) => TFHelper_6989586621679501908Sym0 a6989586621679501906
+ Termonad.Config.Vec: [TFHelper_6989586621679501908Sym1KindInference] :: forall a6989586621679501906 a6989586621679501907 arg_a241o. SameKind (Apply (TFHelper_6989586621679501908Sym1 a6989586621679501906) arg_a241o) (TFHelper_6989586621679501908Sym2 a6989586621679501906 arg_a241o) => TFHelper_6989586621679501908Sym1 a6989586621679501906 a6989586621679501907
+ Termonad.Config.Vec: [TFHelper_6989586621679501924Sym0KindInference] :: forall a6989586621679501922 arg_a241F. SameKind (Apply TFHelper_6989586621679501924Sym0 arg_a241F) (TFHelper_6989586621679501924Sym1 arg_a241F) => TFHelper_6989586621679501924Sym0 a6989586621679501922
+ Termonad.Config.Vec: [TFHelper_6989586621679501924Sym1KindInference] :: forall a6989586621679501922 a6989586621679501923 arg_a241E. SameKind (Apply (TFHelper_6989586621679501924Sym1 a6989586621679501922) arg_a241E) (TFHelper_6989586621679501924Sym2 a6989586621679501922 arg_a241E) => TFHelper_6989586621679501924Sym1 a6989586621679501922 a6989586621679501923
+ Termonad.Config.Vec: data Abs_6989586621679501934Sym0 :: (~>) Peano Peano
+ Termonad.Config.Vec: data Compare_6989586621679500654Sym0 :: (~>) Peano ((~>) Peano Ordering)
+ Termonad.Config.Vec: data Compare_6989586621679500654Sym1 (a6989586621679500652 :: Peano) :: (~>) Peano Ordering
+ Termonad.Config.Vec: data FromInteger_6989586621679501957Sym0 :: (~>) Nat Peano
+ Termonad.Config.Vec: data Let6989586621679501946Scrutinee_6989586621679487025Sym0 n6989586621679501945
+ Termonad.Config.Vec: data Let6989586621679501950Scrutinee_6989586621679487027Sym0 n6989586621679501945
+ Termonad.Config.Vec: data ShowsPrec_6989586621679501355Sym0 :: (~>) Nat ((~>) Peano ((~>) Symbol Symbol))
+ Termonad.Config.Vec: data ShowsPrec_6989586621679501355Sym1 (a6989586621679501352 :: Nat) :: (~>) Peano ((~>) Symbol Symbol)
+ Termonad.Config.Vec: data ShowsPrec_6989586621679501355Sym2 (a6989586621679501352 :: Nat) (a6989586621679501353 :: Peano) :: (~>) Symbol Symbol
+ Termonad.Config.Vec: data Signum_6989586621679501940Sym0 :: (~>) Peano Peano
+ Termonad.Config.Vec: data TFHelper_6989586621679501892Sym0 :: (~>) Peano ((~>) Peano Peano)
+ Termonad.Config.Vec: data TFHelper_6989586621679501892Sym1 (a6989586621679501890 :: Peano) :: (~>) Peano Peano
+ Termonad.Config.Vec: data TFHelper_6989586621679501908Sym0 :: (~>) Peano ((~>) Peano Peano)
+ Termonad.Config.Vec: data TFHelper_6989586621679501908Sym1 (a6989586621679501906 :: Peano) :: (~>) Peano Peano
+ Termonad.Config.Vec: data TFHelper_6989586621679501924Sym0 :: (~>) Peano ((~>) Peano Peano)
+ Termonad.Config.Vec: data TFHelper_6989586621679501924Sym1 (a6989586621679501922 :: Peano) :: (~>) Peano Peano
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.AddPeanoSym1 a6989586621679498912)
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.Compare_6989586621679500654Sym1 a6989586621679500652)
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.MultPeanoSym1 a6989586621679498919)
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.ShowsPrec_6989586621679501355Sym1 a6989586621679501352)
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.ShowsPrec_6989586621679501355Sym2 a6989586621679501353 a6989586621679501352)
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.SubtractPeanoSym1 a6989586621679498905)
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.TFHelper_6989586621679501892Sym1 a6989586621679501890)
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.TFHelper_6989586621679501908Sym1 a6989586621679501906)
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Termonad.Config.Vec.TFHelper_6989586621679501924Sym1 a6989586621679501922)
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Abs_6989586621679501934Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Compare_6989586621679500654Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.FromInteger_6989586621679501957Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Let6989586621679501946Scrutinee_6989586621679487025Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Let6989586621679501950Scrutinee_6989586621679487027Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.ShowsPrec_6989586621679501355Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.Signum_6989586621679501940Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.TFHelper_6989586621679501892Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.TFHelper_6989586621679501908Sym0
+ Termonad.Config.Vec: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Termonad.Config.Vec.TFHelper_6989586621679501924Sym0
+ Termonad.Config.Vec: type Abs_6989586621679501934Sym1 (a6989586621679501933 :: Peano) = Abs_6989586621679501934 a6989586621679501933
+ Termonad.Config.Vec: type Compare_6989586621679500654Sym2 (a6989586621679500652 :: Peano) (a6989586621679500653 :: Peano) = Compare_6989586621679500654 a6989586621679500652 a6989586621679500653
+ Termonad.Config.Vec: type FromInteger_6989586621679501957Sym1 (a6989586621679501956 :: Nat) = FromInteger_6989586621679501957 a6989586621679501956
+ Termonad.Config.Vec: type Let6989586621679501946Scrutinee_6989586621679487025Sym1 n6989586621679501945 = Let6989586621679501946Scrutinee_6989586621679487025 n6989586621679501945
+ Termonad.Config.Vec: type Let6989586621679501950Scrutinee_6989586621679487027Sym1 n6989586621679501945 = Let6989586621679501950Scrutinee_6989586621679487027 n6989586621679501945
+ Termonad.Config.Vec: type ShowsPrec_6989586621679501355Sym3 (a6989586621679501352 :: Nat) (a6989586621679501353 :: Peano) (a6989586621679501354 :: Symbol) = ShowsPrec_6989586621679501355 a6989586621679501352 a6989586621679501353 a6989586621679501354
+ Termonad.Config.Vec: type Signum_6989586621679501940Sym1 (a6989586621679501939 :: Peano) = Signum_6989586621679501940 a6989586621679501939
+ Termonad.Config.Vec: type TFHelper_6989586621679501892Sym2 (a6989586621679501890 :: Peano) (a6989586621679501891 :: Peano) = TFHelper_6989586621679501892 a6989586621679501890 a6989586621679501891
+ Termonad.Config.Vec: type TFHelper_6989586621679501908Sym2 (a6989586621679501906 :: Peano) (a6989586621679501907 :: Peano) = TFHelper_6989586621679501908 a6989586621679501906 a6989586621679501907
+ Termonad.Config.Vec: type TFHelper_6989586621679501924Sym2 (a6989586621679501922 :: Peano) (a6989586621679501923 :: Peano) = TFHelper_6989586621679501924 a6989586621679501922 a6989586621679501923
+ Termonad.Pcre: inline_c_ffi_6989586621679117373 :: IO CUInt
+ Termonad.Prelude: MaybeT :: m (Maybe a) -> MaybeT a
+ Termonad.Prelude: [runMaybeT] :: MaybeT a -> m (Maybe a)
+ Termonad.Prelude: filterSet :: IsSet set => (Element set -> Bool) -> set -> set
+ Termonad.Prelude: newtype MaybeT (m :: Type -> Type) a
+ Termonad.Types: instance GHC.Enum.Enum Termonad.Types.ShowScrollbar
+ Termonad.Types: instance GHC.Enum.Enum Termonad.Types.ShowTabBar
+ Termonad.XML: preferencesText :: Text
- Termonad.Config.Colour: lensBackgroundColour :: forall c_a2BFz. Lens' (ColourConfig c_a2BFz) (Option c_a2BFz)
+ Termonad.Config.Colour: lensBackgroundColour :: forall c_a2Jwz. Lens' (ColourConfig c_a2Jwz) (Option c_a2Jwz)
- Termonad.Config.Colour: lensCursorBgColour :: forall c_a2BFz. Lens' (ColourConfig c_a2BFz) (Option c_a2BFz)
+ Termonad.Config.Colour: lensCursorBgColour :: forall c_a2Jwz. Lens' (ColourConfig c_a2Jwz) (Option c_a2Jwz)
- Termonad.Config.Colour: lensCursorFgColour :: forall c_a2BFz. Lens' (ColourConfig c_a2BFz) (Option c_a2BFz)
+ Termonad.Config.Colour: lensCursorFgColour :: forall c_a2Jwz. Lens' (ColourConfig c_a2Jwz) (Option c_a2Jwz)
- Termonad.Config.Colour: lensForegroundColour :: forall c_a2BFz. Lens' (ColourConfig c_a2BFz) (Option c_a2BFz)
+ Termonad.Config.Colour: lensForegroundColour :: forall c_a2Jwz. Lens' (ColourConfig c_a2Jwz) (Option c_a2Jwz)
- Termonad.Config.Colour: lensPalette :: forall c_a2BFz. Lens' (ColourConfig c_a2BFz) (Palette c_a2BFz)
+ Termonad.Config.Colour: lensPalette :: forall c_a2Jwz. Lens' (ColourConfig c_a2Jwz) (Palette c_a2Jwz)
- Termonad.Config.Vec: [AddPeanoSym0KindInference] :: forall a6989586621679475934 arg_a1Xgt. SameKind (Apply AddPeanoSym0 arg_a1Xgt) (AddPeanoSym1 arg_a1Xgt) => AddPeanoSym0 a6989586621679475934
+ Termonad.Config.Vec: [AddPeanoSym0KindInference] :: forall a6989586621679498912 arg_a23f5. SameKind (Apply AddPeanoSym0 arg_a23f5) (AddPeanoSym1 arg_a23f5) => AddPeanoSym0 a6989586621679498912
- Termonad.Config.Vec: [AddPeanoSym1KindInference] :: forall a6989586621679475934 a6989586621679475935 arg_a1Xgs. SameKind (Apply (AddPeanoSym1 a6989586621679475934) arg_a1Xgs) (AddPeanoSym2 a6989586621679475934 arg_a1Xgs) => AddPeanoSym1 a6989586621679475934 a6989586621679475935
+ Termonad.Config.Vec: [AddPeanoSym1KindInference] :: forall a6989586621679498912 a6989586621679498913 arg_a23f4. SameKind (Apply (AddPeanoSym1 a6989586621679498912) arg_a23f4) (AddPeanoSym2 a6989586621679498912 arg_a23f4) => AddPeanoSym1 a6989586621679498912 a6989586621679498913
- Termonad.Config.Vec: [MultPeanoSym0KindInference] :: forall a6989586621679475941 arg_a1XgA. SameKind (Apply MultPeanoSym0 arg_a1XgA) (MultPeanoSym1 arg_a1XgA) => MultPeanoSym0 a6989586621679475941
+ Termonad.Config.Vec: [MultPeanoSym0KindInference] :: forall a6989586621679498919 arg_a23fc. SameKind (Apply MultPeanoSym0 arg_a23fc) (MultPeanoSym1 arg_a23fc) => MultPeanoSym0 a6989586621679498919
- Termonad.Config.Vec: [MultPeanoSym1KindInference] :: forall a6989586621679475941 a6989586621679475942 arg_a1Xgz. SameKind (Apply (MultPeanoSym1 a6989586621679475941) arg_a1Xgz) (MultPeanoSym2 a6989586621679475941 arg_a1Xgz) => MultPeanoSym1 a6989586621679475941 a6989586621679475942
+ Termonad.Config.Vec: [MultPeanoSym1KindInference] :: forall a6989586621679498919 a6989586621679498920 arg_a23fb. SameKind (Apply (MultPeanoSym1 a6989586621679498919) arg_a23fb) (MultPeanoSym2 a6989586621679498919 arg_a23fb) => MultPeanoSym1 a6989586621679498919 a6989586621679498920
- Termonad.Config.Vec: [SSym0KindInference] :: forall t6989586621679475925 arg_a1Xgi. SameKind (Apply SSym0 arg_a1Xgi) (SSym1 arg_a1Xgi) => SSym0 t6989586621679475925
+ Termonad.Config.Vec: [SSym0KindInference] :: forall t6989586621679498903 arg_a23eU. SameKind (Apply SSym0 arg_a23eU) (SSym1 arg_a23eU) => SSym0 t6989586621679498903
- Termonad.Config.Vec: [SubtractPeanoSym0KindInference] :: forall a6989586621679475927 arg_a1Xgm. SameKind (Apply SubtractPeanoSym0 arg_a1Xgm) (SubtractPeanoSym1 arg_a1Xgm) => SubtractPeanoSym0 a6989586621679475927
+ Termonad.Config.Vec: [SubtractPeanoSym0KindInference] :: forall a6989586621679498905 arg_a23eY. SameKind (Apply SubtractPeanoSym0 arg_a23eY) (SubtractPeanoSym1 arg_a23eY) => SubtractPeanoSym0 a6989586621679498905
- Termonad.Config.Vec: [SubtractPeanoSym1KindInference] :: forall a6989586621679475927 a6989586621679475928 arg_a1Xgl. SameKind (Apply (SubtractPeanoSym1 a6989586621679475927) arg_a1Xgl) (SubtractPeanoSym2 a6989586621679475927 arg_a1Xgl) => SubtractPeanoSym1 a6989586621679475927 a6989586621679475928
+ Termonad.Config.Vec: [SubtractPeanoSym1KindInference] :: forall a6989586621679498905 a6989586621679498906 arg_a23eX. SameKind (Apply (SubtractPeanoSym1 a6989586621679498905) arg_a23eX) (SubtractPeanoSym2 a6989586621679498905 arg_a23eX) => SubtractPeanoSym1 a6989586621679498905 a6989586621679498906
- Termonad.Config.Vec: data AddPeanoSym1 (a6989586621679475934 :: Peano) :: (~>) Peano Peano
+ Termonad.Config.Vec: data AddPeanoSym1 (a6989586621679498912 :: Peano) :: (~>) Peano Peano
- Termonad.Config.Vec: data MultPeanoSym1 (a6989586621679475941 :: Peano) :: (~>) Peano Peano
+ Termonad.Config.Vec: data MultPeanoSym1 (a6989586621679498919 :: Peano) :: (~>) Peano Peano
- Termonad.Config.Vec: data SubtractPeanoSym1 (a6989586621679475927 :: Peano) :: (~>) Peano Peano
+ Termonad.Config.Vec: data SubtractPeanoSym1 (a6989586621679498905 :: Peano) :: (~>) Peano Peano
- Termonad.Config.Vec: sAddPeano :: forall (t_a1Y3K :: Peano) (t_a1Y3L :: Peano). Sing t_a1Y3K -> Sing t_a1Y3L -> Sing (Apply (Apply AddPeanoSym0 t_a1Y3K) t_a1Y3L :: Peano)
+ Termonad.Config.Vec: sAddPeano :: forall (t_a242m :: Peano) (t_a242n :: Peano). Sing t_a242m -> Sing t_a242n -> Sing (Apply (Apply AddPeanoSym0 t_a242m) t_a242n :: Peano)
- Termonad.Config.Vec: sMultPeano :: forall (t_a1Y3O :: Peano) (t_a1Y3P :: Peano). Sing t_a1Y3O -> Sing t_a1Y3P -> Sing (Apply (Apply MultPeanoSym0 t_a1Y3O) t_a1Y3P :: Peano)
+ Termonad.Config.Vec: sMultPeano :: forall (t_a242q :: Peano) (t_a242r :: Peano). Sing t_a242q -> Sing t_a242r -> Sing (Apply (Apply MultPeanoSym0 t_a242q) t_a242r :: Peano)
- Termonad.Config.Vec: sSubtractPeano :: forall (t_a1Y3G :: Peano) (t_a1Y3H :: Peano). Sing t_a1Y3G -> Sing t_a1Y3H -> Sing (Apply (Apply SubtractPeanoSym0 t_a1Y3G) t_a1Y3H :: Peano)
+ Termonad.Config.Vec: sSubtractPeano :: forall (t_a242i :: Peano) (t_a242j :: Peano). Sing t_a242i -> Sing t_a242j -> Sing (Apply (Apply SubtractPeanoSym0 t_a242i) t_a242j :: Peano)
- Termonad.Config.Vec: type AddPeanoSym2 (a6989586621679475934 :: Peano) (a6989586621679475935 :: Peano) = AddPeano a6989586621679475934 a6989586621679475935
+ Termonad.Config.Vec: type AddPeanoSym2 (a6989586621679498912 :: Peano) (a6989586621679498913 :: Peano) = AddPeano a6989586621679498912 a6989586621679498913
- Termonad.Config.Vec: type MultPeanoSym2 (a6989586621679475941 :: Peano) (a6989586621679475942 :: Peano) = MultPeano a6989586621679475941 a6989586621679475942
+ Termonad.Config.Vec: type MultPeanoSym2 (a6989586621679498919 :: Peano) (a6989586621679498920 :: Peano) = MultPeano a6989586621679498919 a6989586621679498920
- Termonad.Config.Vec: type SSym1 (t6989586621679475925 :: Peano) = S t6989586621679475925
+ Termonad.Config.Vec: type SSym1 (t6989586621679498903 :: Peano) = S t6989586621679498903
- Termonad.Config.Vec: type SubtractPeanoSym2 (a6989586621679475927 :: Peano) (a6989586621679475928 :: Peano) = SubtractPeano a6989586621679475927 a6989586621679475928
+ Termonad.Config.Vec: type SubtractPeanoSym2 (a6989586621679498905 :: Peano) (a6989586621679498906 :: Peano) = SubtractPeano a6989586621679498905 a6989586621679498906

Files

.nix-helpers/nixpkgs.nix view
@@ -20,9 +20,9 @@     if isNull nixpkgs       then         builtins.fetchTarball {-          # Recent version of nixpkgs-19.03 as of 2019-06-25.-          url = "https://github.com/NixOS/nixpkgs/archive/8634c3b619909db7fc747faf8c03592986626e21.tar.gz";-          sha256 = "sha256:0hcpy4q64vbqmlmnfcavfxilyygyzpwdsss8g3p73ikpic0j6ziq";+          # Recent version of nixpkgs-19.09 as of 2019-09-16.+          url = "https://github.com/NixOS/nixpkgs/archive/64e38f246aebc1fcd800952322c08f92d1420660.tar.gz";+          sha256 = "sha256:16cjhck691f8dhb996rx0xvcwsqxrxs4lfajgqjnv0zfr8f76srm";         }       else nixpkgs; 
.nix-helpers/stack-fhs-env.nix view
@@ -13,12 +13,27 @@  with (import ./nixpkgs.nix {}); +# stack needs to be version 1.9.3, because versions greater than two can't be+# re-execed in a nix shell:+#+#https://github.com/commercialhaskell/stack/issues/5000+ let+  nixpkgs-19-03-tarball = builtins.fetchTarball {+    # Channel nixos-19.03 as of 2019/08/12.+    url = "https://github.com/NixOS/nixpkgs/archive/56d94c8c69f8cac518027d191e2f8de678b56088.tar.gz";+    sha256 = "1c812ssgmnmh97sarmp8jcykk0g57m8rsbfjg9ql9996ig6crsmi";+  };++  nixpkgs-19-03 = import nixpkgs-19-03-tarball {};++  stack = nixpkgs-19-03.stack;+   fhsStack =     buildFHSUserEnv {       name = "stack";       runScript = "stack";-      targetPkgs = pkgs: with pkgs; [+      targetPkgs = pkgs: (with pkgs; [           binutils           cairo           cairo.dev@@ -35,9 +50,11 @@           pango           pcre2           pkgconfig-          stack+          # stack           termonadKnownWorkingHaskellPkgSet.ghc           zlib+      ]) ++ [+        stack       ] ++         stdenv.lib.optional           (stdenv.hostPlatform.libc == "glibc")
.nix-helpers/stack-shell.nix view
@@ -14,7 +14,4 @@     zlib   ];   ghc = termonadKnownWorkingHaskellPkgSet.ghc;-  extraArgs = [-    "--stack-yaml stack-lts-13.yaml"-  ]; }
CHANGELOG.md view
@@ -1,3 +1,7 @@+## 2.1.0.0++* Add a menu option to set preferences for a running Termonad session.  The preferences you have set are lost when you end the Termonad session. [#130](https://github.com/cdepillabout/termonad/pull/130)  Thanks @jecaro!+ ## 2.0.0.0  * Added menu option to search for a regex within the terminal output.
README.md view
@@ -62,7 +62,7 @@ First, you must install the required GTK system libraries:  ```sh-$ pacman -S vte3+$ pacman -S vte3 gobject-introspection ```  In order to install Termonad, clone this repository and run `stack install`.@@ -79,7 +79,7 @@ First, you must install the required GTK system libraries:  ```sh-$ apt-get install gobject-introspection libgirepository1.0-dev libgtk-3-dev libvte-2.91-dev+$ apt-get install gobject-introspection libgirepository1.0-dev libgtk-3-dev libvte-2.91-dev libpcre2-dev ```  In order to install Termonad, clone this repository and run `stack install`.@@ -298,6 +298,12 @@  There are other example configuration files in the [example-config/](./example-config) directory.++If you want to test what all the colors look like, you may find it convenient+to use the+[`print-console-colors`](http://hackage.haskell.org/package/print-console-colors)+package, which provides an executable called `print-console-colors` that prints+all of the colors for your terminal.  ### Compiling Local Settings 
+ glade/README.md view
@@ -0,0 +1,15 @@++# Termonad Glade Files++This directory contains [Glade](https://wiki.gnome.org/Apps/Glade) files used+by Termonad to define how the GTK interfaces should look.++Glade is an visual interface designer.  The Glade files are just XML files.+They can be edited in the Glade program, or directly by hand.++If you're new to Glade, you may be interested in going through a+[tutorial](https://wiki.gnome.org/Apps/Glade/Tutorials).++If you use the [shell.nix](../shell.nix) file, it should pull in `glade` for+you, so you can just run it directly after entering into the Nix shell.  Or,+you can just install `glade` through your package-manager-of-choice.
+ glade/preferences.glade view
@@ -0,0 +1,271 @@+<?xml version="1.0" encoding="UTF-8"?>+<!-- Generated with glade 3.22.1 -->+<interface>+  <requires lib="gtk+" version="3.20"/>+  <object class="GtkDialog" id="preferences">+    <property name="can_focus">False</property>+    <property name="title" translatable="yes">Termonad Preferences</property>+    <property name="window_position">center-on-parent</property>+    <property name="type_hint">dialog</property>+    <child type="titlebar">+      <placeholder/>+    </child>+    <child internal-child="vbox">+      <object class="GtkBox">+        <property name="can_focus">False</property>+        <property name="margin_left">8</property>+        <property name="margin_right">8</property>+        <property name="margin_top">8</property>+        <property name="margin_bottom">8</property>+        <property name="hexpand">True</property>+        <property name="orientation">vertical</property>+        <property name="spacing">10</property>+        <child internal-child="action_area">+          <object class="GtkButtonBox">+            <property name="can_focus">False</property>+            <property name="layout_style">end</property>+            <child>+              <placeholder/>+            </child>+            <child>+              <object class="GtkButton" id="ok">+                <property name="label">gtk-ok</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="use_stock">True</property>+              </object>+              <packing>+                <property name="expand">True</property>+                <property name="fill">True</property>+                <property name="position">1</property>+              </packing>+            </child>+          </object>+          <packing>+            <property name="expand">False</property>+            <property name="fill">False</property>+            <property name="position">0</property>+          </packing>+        </child>+        <child>+          <object class="GtkGrid">+            <property name="visible">True</property>+            <property name="can_focus">False</property>+            <property name="hexpand">True</property>+            <property name="border_width">0</property>+            <property name="row_spacing">6</property>+            <property name="column_spacing">6</property>+            <child>+              <object class="GtkFontButton" id="font">+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">True</property>+                <property name="tooltip_text" translatable="yes">Font to use in the terminal.</property>+                <property name="hexpand">True</property>+                <property name="vexpand">False</property>+                <property name="font">Sans 12</property>+                <property name="language">en-us</property>+                <property name="preview_text"/>+              </object>+              <packing>+                <property name="left_attach">1</property>+                <property name="top_attach">0</property>+              </packing>+            </child>+            <child>+              <object class="GtkLabel">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="halign">end</property>+                <property name="label" translatable="yes">Font:</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">0</property>+              </packing>+            </child>+            <child>+              <object class="GtkSpinButton" id="scrollbackLen">+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="tooltip_text" translatable="yes">Number of lines to keep in the output of the terminal.</property>+              </object>+              <packing>+                <property name="left_attach">1</property>+                <property name="top_attach">2</property>+              </packing>+            </child>+            <child>+              <object class="GtkLabel">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="halign">end</property>+                <property name="label" translatable="yes">Scrollback length:</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">2</property>+              </packing>+            </child>+            <child>+              <object class="GtkCheckButton" id="confirmExit">+                <property name="label" translatable="yes">Confirm exit</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">False</property>+                <property name="tooltip_text" translatable="yes">Whether or not to pop-up a dialog asking if you are sure you want to exit when you close a tab or exit out of Termonad.</property>+                <property name="halign">center</property>+                <property name="draw_indicator">True</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">3</property>+                <property name="width">2</property>+              </packing>+            </child>+            <child>+              <object class="GtkLabel">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="halign">end</property>+                <property name="label" translatable="yes">Word char exceptions:</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">4</property>+              </packing>+            </child>+            <child>+              <object class="GtkEntry" id="wordCharExceptions">+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="tooltip_text" translatable="yes">When double-clicking on text in the terminal with the mouse, Termonad will use these characters to determine what to highlight.  Characters in this list will be counted as part of a word.  This makes it easy to highlight things like URLs or file paths.</property>+              </object>+              <packing>+                <property name="left_attach">1</property>+                <property name="top_attach">4</property>+              </packing>+            </child>+            <child>+              <object class="GtkCheckButton" id="showMenu">+                <property name="label" translatable="yes">Show menu</property>+                <property name="visible">True</property>+                <property name="can_focus">True</property>+                <property name="receives_default">False</property>+                <property name="tooltip_text" translatable="yes">Whether or not to show the menubar.  (This is the bar at the top that has the "File", "Edit", "View", etc buttons.)</property>+                <property name="halign">center</property>+                <property name="draw_indicator">True</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">5</property>+                <property name="width">2</property>+              </packing>+            </child>+            <child>+              <object class="GtkLabel">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="halign">end</property>+                <property name="label" translatable="yes">Cursor blink mode:</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">7</property>+              </packing>+            </child>+            <child>+              <object class="GtkLabel">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="halign">end</property>+                <property name="label" translatable="yes">Show tabbar:</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">6</property>+              </packing>+            </child>+            <child>+              <object class="GtkLabel">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="halign">end</property>+                <property name="label" translatable="yes">Show scrollbar:</property>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">1</property>+              </packing>+            </child>+            <child>+              <object class="GtkComboBoxText" id="showScrollbar">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="tooltip_text" translatable="yes">Whether or not to show a scrollbar on the terminal.  "If Needed" only shows the scrollbar if the text on the terminal goes off the screen.</property>+              </object>+              <packing>+                <property name="left_attach">1</property>+                <property name="top_attach">1</property>+              </packing>+            </child>+            <child>+              <object class="GtkComboBoxText" id="showTabBar">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="tooltip_text" translatable="yes">Whether or not to show the tab bar.  "If Needed" only shows the tab bar when you have multiple tabs.</property>+              </object>+              <packing>+                <property name="left_attach">1</property>+                <property name="top_attach">6</property>+              </packing>+            </child>+            <child>+              <object class="GtkComboBoxText" id="cursorBlinkMode">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="tooltip_text" translatable="yes">Set whether the cursor in the terminal should blink.  "System" sets this to the system-level GTK setting.</property>+              </object>+              <packing>+                <property name="left_attach">1</property>+                <property name="top_attach">7</property>+              </packing>+            </child>+            <child>+              <object class="GtkLabel">+                <property name="visible">True</property>+                <property name="can_focus">False</property>+                <property name="margin_left">5</property>+                <property name="margin_right">5</property>+                <property name="margin_top">5</property>+                <property name="margin_bottom">5</property>+                <property name="label" translatable="yes">Warning: these settings will be used for current session only. To make them permanent, set them in ~/.config/termonad/termonad.hs</property>+                <property name="justify">fill</property>+                <property name="wrap">True</property>+                <property name="max_width_chars">30</property>+                <attributes>+                  <attribute name="foreground" value="#ffff00000000"/>+                </attributes>+              </object>+              <packing>+                <property name="left_attach">0</property>+                <property name="top_attach">8</property>+                <property name="width">2</property>+              </packing>+            </child>+          </object>+          <packing>+            <property name="expand">True</property>+            <property name="fill">True</property>+            <property name="padding">3</property>+            <property name="position">1</property>+          </packing>+        </child>+      </object>+    </child>+    <action-widgets>+      <action-widget response="-3">ok</action-widget>+    </action-widgets>+  </object>+</interface>
shell.nix view
@@ -35,11 +35,15 @@   # Nix-shell environment for hacking on termonad.   termonadEnv = haskPkgSet.termonad.env; -  # Haskell build tools that are nice to have.  It is okay to get these from-  # any Haskell package set, since they do not depend on the GHC version we are-  # using.  We get these from the normal haskellPackages pkg set because then-  # they don't have to be compiled from scratch.-  nativeBuildTools = with haskellPackages; [ cabal-install ghcid ];+  # Build tools that are nice to have.  It is okay to get Haskell build tools+  # from any Haskell package set, since they do not depend on the GHC version+  # we are using.  We get these from the normal haskellPackages pkg set because+  # then they don't have to be compiled from scratch.+  nativeBuildTools = [+    cabal-install+    gnome3.glade+    haskellPackages.ghcid+  ]; in  if indexTermonad
src/Termonad/App.hs view
@@ -5,7 +5,7 @@ import Termonad.Prelude  import Config.Dyre (defaultParams, projectName, realMain, showError, wrapMain)-import Control.Lens ((&), (.~), (^.), (^..))+import Control.Lens ((&), (.~), (^.), (^..), over, set) import Data.FocusList (focusList, moveFromToFL, updateFocusFL) import Data.Sequence (findIndexR) import GI.Gdk (castTo, managedForeignPtr, screenGetDefault)@@ -24,18 +24,30 @@   ( Application   , ApplicationWindow(ApplicationWindow)   , Box(Box)+  , CheckButton(CheckButton)+  , ComboBoxText(ComboBoxText)+  , Dialog(Dialog)+  , Entry(Entry)+  , FontButton(FontButton)+  , PolicyType(PolicyTypeAutomatic)   , PositionType(PositionTypeRight)-  , ResponseType(ResponseTypeNo, ResponseTypeYes)+  , ResponseType(ResponseTypeAccept, ResponseTypeNo, ResponseTypeYes)   , ScrolledWindow(ScrolledWindow)+  , SpinButton(SpinButton)   , pattern STYLE_PROVIDER_PRIORITY_APPLICATION   , aboutDialogNew+  , adjustmentNew   , applicationAddWindow   , applicationGetActiveWindow   , applicationSetAccelsForAction   , applicationSetMenubar+  , applicationWindowSetShowMenubar   , boxPackStart   , builderNewFromString   , builderSetApplication+  , comboBoxGetActiveId+  , comboBoxSetActiveId+  , comboBoxTextAppend   , containerAdd   , cssProviderLoadFromData   , cssProviderNew@@ -44,8 +56,13 @@   , dialogNew   , dialogResponse   , dialogRun+  , entryBufferGetText+  , entryBufferSetText   , entryGetText   , entryNew+  , fontChooserSetFontDesc+  , fontChooserGetFontDesc+  , getEntryBuffer   , gridAttachNextTo   , gridNew   , labelNew@@ -56,8 +73,14 @@   , onNotebookPageReordered   , onNotebookSwitchPage   , onWidgetDeleteEvent+  , scrolledWindowSetPolicy   , setWidgetMargin+  , spinButtonGetValueAsInt+  , spinButtonSetAdjustment+  , spinButtonSetValue   , styleContextAddProviderForScreen+  , toggleButtonGetActive+  , toggleButtonSetActive   , widgetDestroy   , widgetGrabFocus   , widgetSetCanFocus@@ -72,6 +95,7 @@ import GI.Pango   ( FontDescription   , pattern SCALE+  , fontDescriptionGetFamily   , fontDescriptionGetSize   , fontDescriptionGetSizeIsAbsolute   , fontDescriptionNew@@ -80,7 +104,8 @@   , fontDescriptionSetAbsoluteSize   ) import GI.Vte-  ( catchRegexError+  ( CursorBlinkMode(..)+  , catchRegexError   , regexNewForSearch   , terminalCopyClipboard   , terminalPasteClipboard@@ -88,7 +113,10 @@   , terminalSearchFindPrevious   , terminalSearchSetRegex   , terminalSearchSetWrapAround+  , terminalSetCursorBlinkMode   , terminalSetFont+  , terminalSetScrollbackLines+  , terminalSetWordCharExceptions   )  import Paths_termonad (getDataFileName)@@ -96,21 +124,37 @@ import Termonad.Keys (handleKeyPress) import Termonad.Lenses   ( lensConfirmExit+  , lensCursorBlinkMode   , lensFontConfig   , lensOptions   , lensShowMenu-  , lensTMNotebookTabTerm+  , lensShowScrollbar+  , lensShowTabBar+  , lensScrollbackLen+  , lensTMNotebook+  , lensTMNotebookTabTermContainer   , lensTMNotebookTabs+  , lensTMNotebookTabTerm   , lensTMStateApp+  , lensTMStateAppWin   , lensTMStateConfig   , lensTMStateFontDesc   , lensTMStateNotebook   , lensTerm+  , lensWordCharExceptions   )-import Termonad.Term (createTerm, relabelTabs, termExitFocused, setShowTabs)+import Termonad.Term+  ( createTerm+  , relabelTabs+  , termExitFocused+  , setShowTabs+  , showScrollbarToPolicy+  ) import Termonad.Types-  ( FontConfig(fontFamily, fontSize)+  ( FontConfig(..)   , FontSize(FontSizePoints, FontSizeUnits)+  , ShowScrollbar(..)+  , ShowTabBar(..)   , TMConfig   , TMNotebookTab   , TMState@@ -123,7 +167,7 @@   , tmStateApp   , tmStateNotebook   )-import Termonad.XML (interfaceText, menuText)+import Termonad.XML (interfaceText, menuText, preferencesText)  setupScreenStyle :: IO () setupScreenStyle = do@@ -189,14 +233,7 @@  adjustFontDescSize :: (FontSize -> FontSize) -> FontDescription -> IO () adjustFontDescSize f fontDesc = do-  currSize <- fontDescriptionGetSize fontDesc-  currAbsolute <- fontDescriptionGetSizeIsAbsolute fontDesc-  let currFontSz =-        if currAbsolute-          then FontSizeUnits $ fromIntegral currSize / fromIntegral SCALE-          else-            let fontRatio :: Double = fromIntegral currSize / fromIntegral SCALE-            in FontSizePoints $ round fontRatio+  currFontSz <- fontSizeFromFontDescription fontDesc   let newFontSz = f currFontSz   setFontDescSize fontDesc newFontSz @@ -214,6 +251,22 @@           lensTerm   foldMap (\vteTerm -> terminalSetFont vteTerm (Just fontDesc)) terms +fontSizeFromFontDescription :: FontDescription -> IO FontSize+fontSizeFromFontDescription fontDesc = do+  currSize <- fontDescriptionGetSize fontDesc+  currAbsolute <- fontDescriptionGetSizeIsAbsolute fontDesc+  return $ if currAbsolute+             then FontSizeUnits $ fromIntegral currSize / fromIntegral SCALE+             else+               let fontRatio :: Double = fromIntegral currSize / fromIntegral SCALE+               in FontSizePoints $ round fontRatio++fontConfigFromFontDescription :: FontDescription -> IO (Maybe FontConfig)+fontConfigFromFontDescription fontDescription = do+  fontSize <- fontSizeFromFontDescription fontDescription+  maybeFontFamily <- fontDescriptionGetFamily fontDescription+  return $ (`FontConfig` fontSize) <$> maybeFontFamily+ compareScrolledWinAndTab :: ScrolledWindow -> TMNotebookTab -> Bool compareScrolledWinAndTab scrollWin flTab =   let ScrolledWindow managedPtrFLTab = tmNotebookTabTermContainer flTab@@ -391,6 +444,10 @@   actionMapAddAction app pasteAction   applicationSetAccelsForAction app "app.paste" ["<Shift><Ctrl>V"] +  preferencesAction <- simpleActionNew "preferences" Nothing+  void $ onSimpleActionActivate preferencesAction (const $ showPreferencesDialog mvarTMState)+  actionMapAddAction app preferencesAction+   enlargeFontAction <- simpleActionNew "enlargefont" Nothing   void $ onSimpleActionActivate enlargeFontAction $ \_ ->     modifyFontSizeForAllTerms (modFontSize 1) mvarTMState@@ -422,10 +479,11 @@   void $ onSimpleActionActivate aboutAction $ \_ -> showAboutDialog app   actionMapAddAction app aboutAction -  when (tmConfig ^. lensOptions . lensShowMenu) $ do-    menuBuilder <- builderNewFromString menuText $ fromIntegral (length menuText)-    menuModel <- objFromBuildUnsafe menuBuilder "menubar" MenuModel-    applicationSetMenubar app (Just menuModel)+  menuBuilder <- builderNewFromString menuText $ fromIntegral (length menuText)+  menuModel <- objFromBuildUnsafe menuBuilder "menubar" MenuModel+  applicationSetMenubar app (Just menuModel)+  let showMenu = tmConfig ^. lensOptions . lensShowMenu+  applicationWindowSetShowMenubar win showMenu    windowSetTitle win "Termonad" @@ -580,6 +638,181 @@       _matchFound <- terminalSearchFindNext terminal       -- putStrLn $ "was match found: " <> tshow matchFound       pure ()++setShowMenuBar :: Application -> Bool -> IO ()+setShowMenuBar app visible = do+  void $ runMaybeT $ do+    win <- MaybeT $ applicationGetActiveWindow app+    appWin <- MaybeT $ castTo ApplicationWindow win+    lift $ applicationWindowSetShowMenubar appWin visible++-- | Fill a combo box with ids and labels+--+-- The ids are stored in the combobox as 'Text', so their type should be an+-- instance of the 'Show' type class.+comboBoxFill :: forall a. Show a => ComboBoxText -> [(a, Text)] -> IO ()+comboBoxFill comboBox = mapM_ go+  where+    go :: (a, Text) -> IO ()+    go (value, textId) =+      comboBoxTextAppend comboBox (Just $ tshow value) textId++-- | Set the current active item in a combobox given an input id.+comboBoxSetActive :: Show a => ComboBoxText -> a -> IO ()+comboBoxSetActive cb item = void $ comboBoxSetActiveId cb (Just $ tshow item)++-- | Get the current active item in a combobox+--+-- The list of values to be searched in the combobox must be given as a+-- parameter. These values are converted to Text then compared to the current+-- id.+comboBoxGetActive+  :: forall a. (Show a, Enum a) => ComboBoxText -> [a] -> IO (Maybe a)+comboBoxGetActive cb values = findEnumFromMaybeId <$> comboBoxGetActiveId cb+  where+    findEnumFromMaybeId :: Maybe Text -> Maybe a+    findEnumFromMaybeId maybeId = maybeId >>= findEnumFromId++    findEnumFromId :: Text -> Maybe a+    findEnumFromId label = find (\x -> tshow x == label) values++applyNewPreferences :: TMState -> IO ()+applyNewPreferences mvarTMState = do+  tmState <- readMVar mvarTMState+  let appWin = tmState ^. lensTMStateAppWin+      config = tmState ^. lensTMStateConfig+      notebook = tmState ^. lensTMStateNotebook ^. lensTMNotebook+      tabFocusList = tmState ^. lensTMStateNotebook ^. lensTMNotebookTabs+      showMenu = config  ^. lensOptions ^. lensShowMenu+  applicationWindowSetShowMenubar appWin showMenu+  setShowTabs config notebook+  -- Sets the remaining preferences to each tab+  foldMap (applyNewPreferencesToTab mvarTMState) tabFocusList++applyNewPreferencesToTab :: TMState -> TMNotebookTab -> IO ()+applyNewPreferencesToTab mvarTMState tab = do+  tmState <- readMVar mvarTMState+  let fontDesc = tmState ^. lensTMStateFontDesc+      term = tab ^. lensTMNotebookTabTerm ^. lensTerm+      scrolledWin = tab ^. lensTMNotebookTabTermContainer+      options = tmState ^. lensTMStateConfig ^. lensOptions+  terminalSetFont term (Just fontDesc)+  terminalSetCursorBlinkMode term (options ^. lensCursorBlinkMode)+  terminalSetWordCharExceptions term (options ^. lensWordCharExceptions)+  terminalSetScrollbackLines term (fromIntegral (options ^. lensScrollbackLen))+  let vScrollbarPolicy = showScrollbarToPolicy (options ^. lensShowScrollbar)+  scrolledWindowSetPolicy scrolledWin PolicyTypeAutomatic vScrollbarPolicy++-- | Show the preferences dialog.+--+-- When the user clicks on the Ok button, it copies the new settings to TMState.+-- Then apply them to the current terminals.+showPreferencesDialog :: TMState -> IO ()+showPreferencesDialog mvarTMState = do+  -- Get app out of mvar+  tmState <- readMVar mvarTMState+  let app = tmState ^. lensTMStateApp++  -- Create the preference dialog and get some widgets+  preferencesBuilder <-+    builderNewFromString preferencesText $ fromIntegral (length preferencesText)+  preferencesDialog <-+    objFromBuildUnsafe preferencesBuilder "preferences" Dialog+  confirmExitCheckButton <-+    objFromBuildUnsafe preferencesBuilder "confirmExit" CheckButton+  showMenuCheckButton <-+    objFromBuildUnsafe preferencesBuilder "showMenu" CheckButton+  wordCharExceptionsEntryBuffer <-+    objFromBuildUnsafe preferencesBuilder "wordCharExceptions" Entry >>=+      getEntryBuffer+  fontButton <- objFromBuildUnsafe preferencesBuilder "font" FontButton+  showScrollbarComboBoxText <-+    objFromBuildUnsafe preferencesBuilder "showScrollbar" ComboBoxText+  comboBoxFill+    showScrollbarComboBoxText+    [ (ShowScrollbarNever, "Never")+    , (ShowScrollbarAlways, "Always")+    , (ShowScrollbarIfNeeded, "If needed")+    ]+  showTabBarComboBoxText <-+    objFromBuildUnsafe preferencesBuilder "showTabBar" ComboBoxText+  comboBoxFill+    showTabBarComboBoxText+    [ (ShowTabBarNever, "Never")+    , (ShowTabBarAlways, "Always")+    , (ShowTabBarIfNeeded, "If needed")+    ]+  cursorBlinkModeComboBoxText <-+    objFromBuildUnsafe preferencesBuilder "cursorBlinkMode" ComboBoxText+  comboBoxFill+    cursorBlinkModeComboBoxText+    [ (CursorBlinkModeSystem, "System")+    , (CursorBlinkModeOn, "On")+    , (CursorBlinkModeOff, "Off")+    ]+  scrollbackLenSpinButton <-+    objFromBuildUnsafe preferencesBuilder "scrollbackLen" SpinButton+  adjustmentNew 0 0 (fromIntegral (maxBound :: Int)) 1 10 0 >>=+    spinButtonSetAdjustment scrollbackLenSpinButton++  -- Make the dialog modal+  maybeWin <- applicationGetActiveWindow app+  windowSetTransientFor preferencesDialog maybeWin++  -- Init with current state+  fontChooserSetFontDesc fontButton (tmState ^. lensTMStateFontDesc)+  let options = tmState ^. lensTMStateConfig . lensOptions+  comboBoxSetActive showScrollbarComboBoxText $ options ^. lensShowScrollbar+  comboBoxSetActive showTabBarComboBoxText $ options ^. lensShowTabBar+  comboBoxSetActive cursorBlinkModeComboBoxText $ options ^. lensCursorBlinkMode+  spinButtonSetValue+    scrollbackLenSpinButton+    (fromIntegral $ options ^. lensScrollbackLen)+  toggleButtonSetActive confirmExitCheckButton $ options ^. lensConfirmExit+  toggleButtonSetActive showMenuCheckButton $ options ^. lensShowMenu+  entryBufferSetText+    wordCharExceptionsEntryBuffer+    (options ^. lensWordCharExceptions)+    (-1)++  -- Run dialog then close+  res <- dialogRun preferencesDialog++  -- When closing the dialog get the new settings+  when (toEnum (fromIntegral res) == ResponseTypeAccept) $ do+    maybeFontDesc <- fontChooserGetFontDesc fontButton+    maybeFontConfig <-+      liftM join $ mapM fontConfigFromFontDescription maybeFontDesc+    maybeShowScrollbar <-+      comboBoxGetActive showScrollbarComboBoxText [ShowScrollbarNever ..]+    maybeShowTabBar <-+      comboBoxGetActive showTabBarComboBoxText [ShowTabBarNever ..]+    maybeCursorBlinkMode <-+      comboBoxGetActive cursorBlinkModeComboBoxText [CursorBlinkModeSystem ..]+    scrollbackLen <-+      fromIntegral <$> spinButtonGetValueAsInt scrollbackLenSpinButton+    confirmExit <- toggleButtonGetActive confirmExitCheckButton+    showMenu <- toggleButtonGetActive showMenuCheckButton+    wordCharExceptions <- entryBufferGetText wordCharExceptionsEntryBuffer++    -- Apply the changes to mvarTMState+    modifyMVar_ mvarTMState $ pure+      . over lensTMStateFontDesc (`fromMaybe` maybeFontDesc)+      . over (lensTMStateConfig . lensOptions)+        ( set lensConfirmExit confirmExit+        . set lensShowMenu showMenu+        . set lensWordCharExceptions wordCharExceptions+        . over lensFontConfig (`fromMaybe` maybeFontConfig)+        . set lensScrollbackLen scrollbackLen+        . over lensShowScrollbar (`fromMaybe` maybeShowScrollbar)+        . over lensShowTabBar (`fromMaybe` maybeShowTabBar)+        . over lensCursorBlinkMode (`fromMaybe` maybeCursorBlinkMode)+        )++    -- Update the app with new settings+    applyNewPreferences mvarTMState++  widgetDestroy preferencesDialog  appStartup :: Application -> IO () appStartup _app = pure ()
src/Termonad/Config/Colour.hs view
@@ -12,7 +12,14 @@ -- import this module. Create a new 'ColourExtension' with the 'createColourExtension' function. -- Then add the 'ColourExtension' to your 'TMConfig' with the 'addColourExtension' function. ----- See <https://github.com/cdepillabout/termonad/blob/master/example-config/ExampleColourExtension.hs this code> for a simple example.+-- See+-- <https://github.com/cdepillabout/termonad/blob/master/example-config/ExampleColourExtension.hs this code>+-- for a simple example.+--+-- When setting colors, you may find it convenient to use the+-- <http://hackage.haskell.org/package/print-console-colors print-console-colors>+-- package, which provides an executable called @print-console-colors@ that prints+-- all of the colors for your terminal.  module Termonad.Config.Colour   ( -- * Colour Config@@ -199,7 +206,6 @@ defaultLightColours :: (Ord b, Floating b) => Vec N8 (AlphaColour b) defaultLightColours = coloursFromBits 192 63 - -- | Convert an 'AlphaColour' to a 'Colour'. -- -- >>> sRGB24show $ pureColour (opaque green)@@ -534,7 +540,7 @@     -- ^ Background color of the cursor.  This is the color of the cursor     -- itself.   , foregroundColour :: !(Option c)-    -- ^ Color of the default default foreground text in the terminal.+    -- ^ Color of the default foreground text in the terminal.   , backgroundColour :: !(Option c)     -- ^ Background color for the terminal   , palette :: !(Palette c)
src/Termonad/Prelude.hs view
@@ -5,6 +5,7 @@   ) where  import Control.Lens as X ((&))+import Control.Monad.Trans.Maybe as X (MaybeT(MaybeT), runMaybeT) import ClassyPrelude as X import Data.Proxy as X import qualified Data.Text.IO as TextIO
src/Termonad/Types.hs view
@@ -347,7 +347,7 @@                         -- needed.   | ShowScrollbarIfNeeded -- ^ Only show the scrollbar if there are too many                           -- lines on the terminal to show all at once.-  deriving (Eq, Show)+  deriving (Enum, Eq, Show)  -- | Whether or not to show the tab bar for switching tabs. data ShowTabBar@@ -355,7 +355,7 @@                     -- open.  This may be confusing if you plan on using multiple tabs.   | ShowTabBarAlways -- ^ Always show the tab bar, even if you only have one tab open.   | ShowTabBarIfNeeded  -- ^ Only show the tab bar if you have multiple tabs open.-  deriving (Eq, Show)+  deriving (Enum, Eq, Show)  -- | Configuration options for Termonad. --
src/Termonad/XML.hs view
@@ -1,10 +1,12 @@ {-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}  module Termonad.XML where  import Termonad.Prelude  import Data.Default (def)+import Data.FileEmbed (embedFile) import Text.XML (renderText) import Text.XML.QQ (Document, xmlRaw) @@ -78,6 +80,10 @@             <attribute name="label" translatable="yes">_Paste</attribute>             <attribute name="action">app.paste</attribute>           </item>+          <item>+            <attribute name="label" translatable="yes">_Preferences</attribute>+            <attribute name="action">app.preferences</attribute>+          </item>         </submenu>         <submenu>           <attribute name="label" translatable="yes">View</attribute>@@ -253,3 +259,6 @@  closeTabText :: Text closeTabText = toStrict $ renderText def closeTabDoc++preferencesText :: Text+preferencesText = decodeUtf8 $(embedFile "glade/preferences.glade")
termonad.cabal view
@@ -1,5 +1,5 @@ name:                termonad-version:             2.0.0.0+version:             2.1.0.0 synopsis:            Terminal emulator configurable in Haskell description:         Please see <https://github.com/cdepillabout/termonad#readme README.md>. homepage:            https://github.com/cdepillabout/termonad@@ -14,6 +14,8 @@ extra-source-files:  README.md                    , CHANGELOG.md                    , default.nix+                   , glade/preferences.glade+                   , glade/README.md                    , img/termonad.png                    , .nix-helpers/nixops.nix                    , .nix-helpers/nixpkgs.nix@@ -62,6 +64,7 @@                      , directory >= 1.3.1.0                      , distributive                      , dyre+                     , file-embed                      , filepath                      , focuslist                      , gi-gdk@@ -78,6 +81,7 @@                      , QuickCheck                      , singletons                      , text+                     , transformers                      , xml-conduit                      , xml-html-qq   default-language:    Haskell2010
test/readme/README.lhs view
@@ -62,7 +62,7 @@ First, you must install the required GTK system libraries:  ```sh-$ pacman -S vte3+$ pacman -S vte3 gobject-introspection ```  In order to install Termonad, clone this repository and run `stack install`.@@ -79,7 +79,7 @@ First, you must install the required GTK system libraries:  ```sh-$ apt-get install gobject-introspection libgirepository1.0-dev libgtk-3-dev libvte-2.91-dev+$ apt-get install gobject-introspection libgirepository1.0-dev libgtk-3-dev libvte-2.91-dev libpcre2-dev ```  In order to install Termonad, clone this repository and run `stack install`.@@ -298,6 +298,12 @@  There are other example configuration files in the [example-config/](./example-config) directory.++If you want to test what all the colors look like, you may find it convenient+to use the+[`print-console-colors`](http://hackage.haskell.org/package/print-console-colors)+package, which provides an executable called `print-console-colors` that prints+all of the colors for your terminal.  ### Compiling Local Settings