diff options
Diffstat (limited to 'lib/Daffm/State.hs')
| -rw-r--r-- | lib/Daffm/State.hs | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/lib/Daffm/State.hs b/lib/Daffm/State.hs index bc91ecb..9b3d81d 100644 --- a/lib/Daffm/State.hs +++ b/lib/Daffm/State.hs @@ -28,21 +28,30 @@ mkEditor = Editor.editor FocusCmdline (Just 1) mkEmptyAppState :: Configuration -> AppState mkEmptyAppState config = - AppState - { stateFiles = L.list FocusMain (Vec.fromList []) 1, - stateMessage = Nothing, - stateCmdlineEditor = mkEditor "", - stateFocusTarget = FocusMain, - stateListPositionHistory = Map.empty, - stateFileSelections = Set.empty, - stateCwd = "", - stateKeyMap = configKeymap config, + applyConfigToState config $ + AppState + { stateFiles = L.list FocusMain (Vec.fromList []) 1, + stateMessage = Nothing, + stateCmdlineEditor = mkEditor "", + stateFocusTarget = FocusMain, + stateListPositionHistory = Map.empty, + stateFileSelections = Set.empty, + stateCwd = "", + stateKeyMap = Map.empty, + stateOpenerScript = Nothing, + stateKeySequence = [], + stateSearchTerm = Nothing, + stateSearchMatches = Vec.empty, + stateCustomCommands = Map.empty, + stateSearchIndex = 0 + } + +applyConfigToState :: Configuration -> AppState -> AppState +applyConfigToState config state = + state + { stateKeyMap = configKeymap config, stateOpenerScript = configOpener config, - stateKeySequence = [], - stateSearchTerm = Nothing, - stateSearchMatches = Vec.empty, - stateCustomCommands = configCommands config, - stateSearchIndex = 0 + stateCustomCommands = configCommands config } toggleSetItem :: (Ord a) => a -> Set.Set a -> Set.Set a |
