···55};
66use tokio::sync::mpsc::UnboundedSender;
7788-use crate::{config::Config, signal::Signal, tui::Event};
88+use crate::{
99+ config::Config,
1010+ tui::{Event, Signal},
1111+};
9121013/// `Component` is a trait that represents a visual and interactive element of the user interface.
1114///
···77use kdl::KdlNode;
88use strum::IntoEnumIterator;
991010-use crate::{app::Region, signal::Signal};
1010+use crate::tui::{Signal, app::Region};
11111212#[derive(Debug, Clone)]
1313pub struct KeyMap(pub HashMap<Region, HashMap<Vec<KeyEvent>, Signal>>);
···173173 use crossterm::event::{KeyEvent, KeyModifiers};
174174 use kdl::KdlNode;
175175176176- use crate::{keymap::KeyMap, signal::Signal};
176176+ use crate::tui::{KeyMap, Signal, app::Region};
177177178178 #[test]
179179 fn test_quit_in_home_region() {
···193193 let keymap: KeyMap = kdl.try_into().expect("Must be a valid keymap");
194194195195 let map = keymap
196196- .get(&crate::app::Region::Home)
196196+ .get(&Region::Home)
197197 .expect("Home region must exist in keymap");
198198199199 let signal = map
+3-8
src/main.rs
···22//! My (suri.codes) personal-knowledge-system, with deeply integrated task tracking and long term goal planning capabilities.
33//!
4455-use crate::{app::App, cli::Cli};
55+use crate::{cli::Cli, tui::TuiApp};
66use clap::Parser;
7788-mod app;
98mod cli;
1010-mod components;
119mod config;
1210mod errors;
1313-mod keymap;
1411mod logging;
1515-mod signal;
1612mod tui;
17131814#[tokio::main]
···2925 }
30263127 // if no command we run the app
3232-3333- let mut app = App::new(args.tick_rate, args.frame_rate)?;
3434- app.run().await?;
2828+ let mut tui = TuiApp::new(args.tick_rate, args.frame_rate)?;
2929+ tui.run().await?;
35303631 Ok(())
3732}
src/signal.rs
src/tui/signal.rs
src/tui.rs
src/tui/raw_tui.rs
+19
src/tui/mod.rs
···11+/// The tui app
22+mod app;
33+pub use app::App as TuiApp;
44+55+/// Tui components
66+mod components;
77+88+/// Raw tui abstraction
99+mod raw_tui;
1010+pub use raw_tui::Event;
1111+pub use raw_tui::Tui;
1212+1313+/// Keymap for mapping keybinds to regions
1414+mod keymap;
1515+pub use keymap::KeyMap;
1616+1717+/// Singals for commands needing to be processed
1818+mod signal;
1919+pub use signal::Signal;