From 7b0b0597df2d74b15fba01235c15adc2d7d74df8 Mon Sep 17 00:00:00 2001 From: Michael Nedokushev Date: Mon, 23 Sep 2024 21:07:36 +0100 Subject: [PATCH] Add cli arguments to configure the viewport size --- src/args.rs | 4 ++++ src/main.rs | 2 ++ src/tui.rs | 18 +++++++++++------- 3 files changed, 17 insertions(+), 7 deletions(-) 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 e7ed8cb..189e1b2 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -71,16 +71,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)?;