diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-10-05 22:21:42 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-10-08 13:07:40 +0530 |
| commit | 424d65e53b99c65f07f36578e3d0975c4d093c0e (patch) | |
| tree | 8e6f9939a37632d51888010bad56011be191057c /lib/Daffm/Types.hs | |
| parent | abcbb255e8dd5f624ba5173783cf665522b527df (diff) | |
| download | daffm-424d65e53b99c65f07f36578e3d0975c4d093c0e.tar.gz daffm-424d65e53b99c65f07f36578e3d0975c4d093c0e.zip | |
Add extend config property to extend configs + move defaults
Diffstat (limited to 'lib/Daffm/Types.hs')
| -rw-r--r-- | lib/Daffm/Types.hs | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/lib/Daffm/Types.hs b/lib/Daffm/Types.hs index 5133c2b..eb9d9a5 100644 --- a/lib/Daffm/Types.hs +++ b/lib/Daffm/Types.hs @@ -3,9 +3,11 @@ module Daffm.Types where import Brick (EventM) import qualified Brick.Widgets.Edit as Editor import qualified Brick.Widgets.List as L +import Control.Applicative ((<|>)) import qualified Data.Map as Map import qualified Data.Set as Set import qualified Data.Text as Text +import qualified Graphics.Vty as K import qualified Graphics.Vty as V import System.Posix.Types (FileMode, FileOffset) @@ -78,10 +80,46 @@ type KeySequence = [Key] data Configuration = Configuration { configKeymap :: !Keymap, - configOpener :: Maybe Text.Text, + configOpener :: !(Maybe Text.Text), + configExtend :: !(Maybe Text.Text), configTheme :: !(Map.Map Text.Text Text.Text) } deriving (Show) +instance Semigroup Configuration where + a <> b = + a + { configKeymap = configKeymap a <> configKeymap b, + configOpener = configOpener a <|> configOpener b, + configTheme = configTheme a <> configTheme b + } + defaultConfiguration :: Configuration -defaultConfiguration = Configuration {configKeymap = Map.empty, configOpener = Nothing, configTheme = Map.empty} +defaultConfiguration = + Configuration + { configKeymap = defaultKeymaps, + configOpener = Nothing, + configTheme = Map.empty, + configExtend = Nothing + } + +defaultKeymaps :: Keymap +defaultKeymaps = + Map.fromList + [ ([K.KChar 'q'], CmdQuit), + ([K.KChar 'r', K.KChar 'r'], CmdReload), + ([K.KChar '!'], CmdSetCmdline "!"), + ([K.KChar ':'], CmdEnterCmdline), + ([K.KChar 'l'], CmdOpenSelection), + ([K.KChar 'h'], CmdGoBack), + ([K.KEnter], CmdOpenSelection), + ([K.KBS], CmdGoBack), + ([K.KChar 'v'], CmdToggleSelection), + ([K.KChar '\t'], CmdToggleSelection), + ([K.KChar 'C'], CmdClearSelection), + ([K.KChar '~'], CmdChangeDir "~"), + ([K.KChar '$'], CmdShell False "$SHELL"), + ([K.KChar 'g', K.KChar 'x'], CmdShell False "!xdg-open % >/dev/null 2>&1"), + ([K.KChar 'g', K.KChar 'h'], CmdChangeDir "~"), + ([K.KChar 'g', K.KChar 'c', K.KChar 'f', K.KChar 'g'], CmdChangeDir "~/.config/daffm") + ] |
