Copyright | (c) Dennis Gosnell 2018 |
---|---|
License | BSD3 |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
This module exposes termonad's basic configuration options. To set these options in your config, first ensure you've imported Termonad.
Then for your main, apply start
or defaultMain
to a TMConfig
value.
We suggest you build such values by performing record updates on the
defaultTMConfig
rather than using the TMConfig
constructor, as the latter
is much more likely to break when there are changes to the TMConfig
type.
E.g.
-- Re-exports this module. import Termonad main :: IO () main =start
$defaultTMConfig
{showScrollbar
=ShowScrollbarNever
,confirmExit
= False ,showMenu
= False ,cursorBlinkMode
=CursorBlinkModeOff
}
Additional options can be found in the following modules.
If you want to see an example configuration file, as well as an explanation for how to use Termonad, see the Termonad README.
Synopsis
- data TMConfig = TMConfig {
- options :: !ConfigOptions
- hooks :: !ConfigHooks
- defaultTMConfig :: TMConfig
- data ConfigOptions = ConfigOptions {}
- defaultConfigOptions :: ConfigOptions
- data ConfigHooks = ConfigHooks {
- createTermHook :: TMState -> Terminal -> IO ()
- defaultConfigHooks :: ConfigHooks
- data FontSize
- defaultFontSize :: FontSize
- data FontConfig = FontConfig {
- fontFamily :: !Text
- fontSize :: !FontSize
- defaultFontConfig :: FontConfig
- data Option a
- data ShowScrollbar
- data ShowTabBar
- data CursorBlinkMode
Main Config Data Type
The Termonad ConfigOptions
along with the ConfigHooks
.
TMConfig | |
|
defaultTMConfig :: TMConfig Source #
The default TMConfig
.
options
is defaultConfigOptions
and hooks
is defaultConfigHooks
.
data ConfigOptions Source #
Configuration options for Termonad.
See defaultConfigOptions
for the default values.
ConfigOptions | |
|
Instances
Eq ConfigOptions Source # | |
Defined in Termonad.Types (==) :: ConfigOptions -> ConfigOptions -> Bool # (/=) :: ConfigOptions -> ConfigOptions -> Bool # | |
Show ConfigOptions Source # | |
Defined in Termonad.Types showsPrec :: Int -> ConfigOptions -> ShowS # show :: ConfigOptions -> String # showList :: [ConfigOptions] -> ShowS # |
defaultConfigOptions :: ConfigOptions Source #
The default ConfigOptions
.
>>>
:{
let defConfOpt = ConfigOptions { fontConfig = defaultFontConfig , showScrollbar = ShowScrollbarIfNeeded , scrollbackLen = 10000 , confirmExit = True , wordCharExceptions = "-#%&+,./=?@\\_~\183:" , showMenu = True , showTabBar = ShowTabBarIfNeeded , cursorBlinkMode = CursorBlinkModeOn } in defaultConfigOptions == defConfOpt :} True
data ConfigHooks Source #
Hooks into certain termonad operations and VTE events. Used to modify
termonad's behaviour in order to implement new functionality. Fields should
have sane Semigroup
and Monoid
instances so that config extensions can
be combined uniformly and new hooks can be added without incident.
ConfigHooks | |
|
Instances
Show ConfigHooks Source # | |
Defined in Termonad.Types showsPrec :: Int -> ConfigHooks -> ShowS # show :: ConfigHooks -> String # showList :: [ConfigHooks] -> ShowS # |
defaultConfigHooks :: ConfigHooks Source #
Default values for the ConfigHooks
.
- The default function for
createTermHook
isdefaultCreateTermHook
.
Fonts
The font size for the Termonad terminal. There are two ways to set the fontsize, corresponding to the two different ways to set the font size in the Pango font rendering library.
If you're not sure which to use, try FontSizePoints
first and see how it
looks. It should generally correspond to font sizes you are used to from
other applications.
FontSizePoints Int | This sets the font size based on "points". The conversion between a
point and an actual size depends on the system configuration and the
output device. The function |
FontSizeUnits Double | This sets the font size based on "device units". In general, this
can be thought of as one pixel. The function
|
defaultFontSize :: FontSize Source #
The default FontSize
used if not specified.
>>>
defaultFontSize
FontSizePoints 12
data FontConfig Source #
Settings for the font to be used in Termonad.
FontConfig | |
|
Instances
Eq FontConfig Source # | |
Defined in Termonad.Types (==) :: FontConfig -> FontConfig -> Bool # (/=) :: FontConfig -> FontConfig -> Bool # | |
Show FontConfig Source # | |
Defined in Termonad.Types showsPrec :: Int -> FontConfig -> ShowS # show :: FontConfig -> String # showList :: [FontConfig] -> ShowS # |
defaultFontConfig :: FontConfig Source #
The default FontConfig
to use if not specified.
>>>
defaultFontConfig == FontConfig {fontFamily = "Monospace", fontSize = defaultFontSize}
True
Misc
This data type represents an option that can either be Option
or Unset
.
This data type is used in situations where leaving an option unset results in a special state that is not representable by setting any specific value.
Examples of this include the cursorFgColour
and cursorBgColour
options
supplied by the ColourConfig
ConfigExtension
. By default,
cursorFgColour
and cursorBgColour
are both Unset
. However, when
cursorBgColour
is Option
, cursorFgColour
defaults to the color of the text
underneath. There is no way to represent this by setting cursorFgColour
.
Instances
Functor Option Source # | |
Foldable Option Source # | |
Defined in Termonad.Types fold :: Monoid m => Option m -> m # foldMap :: Monoid m => (a -> m) -> Option a -> m # foldr :: (a -> b -> b) -> b -> Option a -> b # foldr' :: (a -> b -> b) -> b -> Option a -> b # foldl :: (b -> a -> b) -> b -> Option a -> b # foldl' :: (b -> a -> b) -> b -> Option a -> b # foldr1 :: (a -> a -> a) -> Option a -> a # foldl1 :: (a -> a -> a) -> Option a -> a # elem :: Eq a => a -> Option a -> Bool # maximum :: Ord a => Option a -> a # minimum :: Ord a => Option a -> a # | |
Eq a => Eq (Option a) Source # | |
Ord a => Ord (Option a) Source # | |
Defined in Termonad.Types | |
Read a => Read (Option a) Source # | |
Show a => Show (Option a) Source # | |
data ShowScrollbar Source #
Whether or not to show the scroll bar in a terminal.
ShowScrollbarNever | Never show the scroll bar, even if there are too many lines on the terminal to show all at once. You should still be able to scroll with the mouse wheel. |
ShowScrollbarAlways | Always show the scrollbar, even if it is not needed. |
ShowScrollbarIfNeeded | Only show the scrollbar if there are too many lines on the terminal to show all at once. |
Instances
Enum ShowScrollbar Source # | |
Defined in Termonad.Types succ :: ShowScrollbar -> ShowScrollbar # pred :: ShowScrollbar -> ShowScrollbar # toEnum :: Int -> ShowScrollbar # fromEnum :: ShowScrollbar -> Int # enumFrom :: ShowScrollbar -> [ShowScrollbar] # enumFromThen :: ShowScrollbar -> ShowScrollbar -> [ShowScrollbar] # enumFromTo :: ShowScrollbar -> ShowScrollbar -> [ShowScrollbar] # enumFromThenTo :: ShowScrollbar -> ShowScrollbar -> ShowScrollbar -> [ShowScrollbar] # | |
Eq ShowScrollbar Source # | |
Defined in Termonad.Types (==) :: ShowScrollbar -> ShowScrollbar -> Bool # (/=) :: ShowScrollbar -> ShowScrollbar -> Bool # | |
Show ShowScrollbar Source # | |
Defined in Termonad.Types showsPrec :: Int -> ShowScrollbar -> ShowS # show :: ShowScrollbar -> String # showList :: [ShowScrollbar] -> ShowS # |
data ShowTabBar Source #
Whether or not to show the tab bar for switching tabs.
ShowTabBarNever | Never show the tab bar, even if there are multiple tabs 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. |
Instances
Enum ShowTabBar Source # | |
Defined in Termonad.Types succ :: ShowTabBar -> ShowTabBar # pred :: ShowTabBar -> ShowTabBar # toEnum :: Int -> ShowTabBar # fromEnum :: ShowTabBar -> Int # enumFrom :: ShowTabBar -> [ShowTabBar] # enumFromThen :: ShowTabBar -> ShowTabBar -> [ShowTabBar] # enumFromTo :: ShowTabBar -> ShowTabBar -> [ShowTabBar] # enumFromThenTo :: ShowTabBar -> ShowTabBar -> ShowTabBar -> [ShowTabBar] # | |
Eq ShowTabBar Source # | |
Defined in Termonad.Types (==) :: ShowTabBar -> ShowTabBar -> Bool # (/=) :: ShowTabBar -> ShowTabBar -> Bool # | |
Show ShowTabBar Source # | |
Defined in Termonad.Types showsPrec :: Int -> ShowTabBar -> ShowS # show :: ShowTabBar -> String # showList :: [ShowTabBar] -> ShowS # |
data CursorBlinkMode #
An enumerated type which can be used to indicate the cursor blink mode for the terminal.
CursorBlinkModeSystem | Follow GTK+ settings for cursor blinking. |
CursorBlinkModeOn | Cursor blinks. |
CursorBlinkModeOff | Cursor does not blink. |
AnotherCursorBlinkMode Int | Catch-all for unknown values |