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 +3/−3
- .nix-helpers/stack-fhs-env.nix +19/−2
- .nix-helpers/stack-shell.nix +0/−3
- CHANGELOG.md +4/−0
- README.md +8/−2
- glade/README.md +15/−0
- glade/preferences.glade +271/−0
- shell.nix +9/−5
- src/Termonad/App.hs +252/−19
- src/Termonad/Config/Colour.hs +9/−3
- src/Termonad/Prelude.hs +1/−0
- src/Termonad/Types.hs +2/−2
- src/Termonad/XML.hs +9/−0
- termonad.cabal +5/−1
- test/readme/README.lhs +8/−2
.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