diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-10-03 00:50:04 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-10-03 01:07:49 +0530 |
| commit | c636e2bbe34bff6f75b334cdaa9d4e59b92fa48c (patch) | |
| tree | 5a433290bbe36d982af7cb76f92dc49e1bb0304b /lib/Daffm.hs | |
| parent | 7fc70c52f322d451e8295a12a6fbaf869a2d9a2b (diff) | |
| download | daffm-c636e2bbe34bff6f75b334cdaa9d4e59b92fa48c.tar.gz daffm-c636e2bbe34bff6f75b334cdaa9d4e59b92fa48c.zip | |
Add spawning processes + suspend tui
Diffstat (limited to '')
| -rw-r--r-- | lib/Daffm.hs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/Daffm.hs b/lib/Daffm.hs index 5bd0830..a7a3705 100644 --- a/lib/Daffm.hs +++ b/lib/Daffm.hs @@ -1,5 +1,6 @@ module Daffm where +import Brick (suspendAndResume') import qualified Brick.Main as M import qualified Brick.Types as T import qualified Brick.Widgets.Edit as Editor @@ -18,6 +19,7 @@ import qualified Graphics.Vty as V import System.Directory (listDirectory, makeAbsolute, setCurrentDirectory) import System.FilePath (takeDirectory) import qualified System.PosixCompat as Posix +import System.Process (callProcess) type AppEvent = T.EventM FocusTarget AppState @@ -33,7 +35,9 @@ openSelectedFile = do Just (FileInfo {filePath, fileType = Directory}) -> modifyM (liftIO . loadDirInAppState filePath stateCwd) Just (FileInfo {filePath, fileType}) -> do - liftIO . putStrLn $ "Opening " <> show fileType <> ": " <> filePath + suspendAndResume' $ do + callProcess "nvim" [filePath] + putStrLn $ "Opening " <> show fileType <> ": " <> filePath pure () Nothing -> pure () pure () @@ -47,8 +51,8 @@ appEvent :: T.BrickEvent FocusTarget e -> AppEvent () appEvent brickevent@(T.VtyEvent event) = do focusTarget <- gets stateFocusTarget case (focusTarget, event) of - (_, V.EvKey V.KEsc []) -> modify (\st -> st {stateFocusTarget = FocusMain}) - (_, V.EvKey (V.KChar ':') []) -> modify (\st -> st {stateFocusTarget = FocusCmdline}) + (FocusCmdline, V.EvKey V.KEsc []) -> modify (\st -> st {stateFocusTarget = FocusMain}) + (FocusMain, V.EvKey (V.KChar ':') []) -> modify (\st -> st {stateFocusTarget = FocusCmdline}) (FocusMain, V.EvKey (V.KChar 'q') []) -> M.halt (FocusMain, V.EvKey (V.KChar 'l') []) -> openSelectedFile (FocusMain, V.EvKey (V.KChar 'h') []) -> goBackToParentDir |
