aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-10-03 00:50:04 +0530
committerAkshay Nair <phenax5@gmail.com>2025-10-03 01:07:49 +0530
commitc636e2bbe34bff6f75b334cdaa9d4e59b92fa48c (patch)
tree5a433290bbe36d982af7cb76f92dc49e1bb0304b /lib
parent7fc70c52f322d451e8295a12a6fbaf869a2d9a2b (diff)
downloaddaffm-c636e2bbe34bff6f75b334cdaa9d4e59b92fa48c.tar.gz
daffm-c636e2bbe34bff6f75b334cdaa9d4e59b92fa48c.zip
Add spawning processes + suspend tui
Diffstat (limited to 'lib')
-rw-r--r--lib/Daffm.hs10
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