diff --git a/src/args.rs b/src/args.rs index de04161..7a239a7 100644 --- a/src/args.rs +++ b/src/args.rs @@ -19,4 +19,8 @@ pub struct Args { /// By default pik shows only proceseses owned by current user. This flag allows to show all processes #[arg(short, long, default_value_t = false)] pub all_processes: bool, + #[arg(short = 'F', long, default_value_t = false)] + pub fullscreen: bool, + #[arg(short = 'H', long, default_value_t = 20)] + pub height: u16, } diff --git a/src/main.rs b/src/main.rs index 5096ec8..ce089e7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,5 +12,7 @@ fn main() -> Result<()> { ignore_threads: !args.include_threads_processes, include_all_processes: args.all_processes, }, + args.height, + args.fullscreen, ) } diff --git a/src/tui.rs b/src/tui.rs index 2e45633..ce5daf5 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -73,16 +73,20 @@ impl App { } } -pub fn start_app(search_criteria: String, filter_options: FilterOptions) -> Result<()> { +pub fn start_app( + search_criteria: String, + filter_options: FilterOptions, + viewport_height: u16, + viewport_fullscreen: bool, +) -> Result<()> { // setup terminal enable_raw_mode()?; let backend = CrosstermBackend::new(io::stdout()); - let mut terminal = Terminal::with_options( - backend, - TerminalOptions { - viewport: Viewport::Inline(20), - }, - )?; + let viewport = match (viewport_height, viewport_fullscreen) { + (_, true) => Viewport::Fullscreen, + (h, false) => Viewport::Inline(h), + }; + let mut terminal = Terminal::with_options(backend, TerminalOptions { viewport })?; // create app and run it let app = App::new(search_criteria, filter_options)?;