use clap::Parser;
const LONG_ABOUT: &str = "\
A modern, retro-styled terminal multiplexer inspired by Norton Disk Doctor (MS-DOS).
Features a full-screen text-based interface with a classic DOS aesthetic.
███████████ ██████████ ███████████ ██████ ██████ ████████ ████████
░█░░░███░░░█░░███░░░░░█░░███░░░░░███ ░░██████ ██████ ███░░░░███ ███░░░░███
░ ░███ ░ ░███ █ ░ ░███ ░███ ░███░█████░███ ░░░ ░███░███ ░███
░███ ░██████ ░██████████ ░███░░███ ░███ ██████░ ░░█████████
░███ ░███░░█ ░███░░░░░███ ░███ ░░░ ░███ ░░░░░░███ ░░░░░░░███
░███ ░███ ░ █ ░███ ░███ ░███ ░███ ███ ░███ ███ ░███
█████ ██████████ █████ █████ █████ █████░░████████ ░░████████
░░░░░ ░░░░░░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░░░░ ░░░░░░░░
KEYBOARD SHORTCUTS:
't' - Create new terminal window
'T' - Create new maximized terminal window
'q' / ESC - Exit application (from desktop)
'h' - Show help screen
's' - Show settings/configuration window
'c' - Show calendar
CTRL+L - Clear terminal
ALT+TAB - Switch between windows
MOUSE CONTROLS:
Click title bar - Drag window
CTRL+Drag - Drag without snap
Click [X] - Close window
Drag ╬ handle - Resize window
Click window - Focus window
";
#[derive(Parser, Debug)]
#[command(
name = "term39",
version = env!("CARGO_PKG_VERSION"),
author = env!("CARGO_PKG_AUTHORS"),
about = "A modern, retro-styled terminal multiplexer inspired by Norton Disk Doctor",
long_about = LONG_ABOUT,
after_help = "For more information, visit: https://github.com/alejandroqh/term39"
)]
pub struct Cli {
#[arg(long, help = "Use ASCII-compatible characters instead of Unicode")]
pub ascii: bool,
#[arg(
long,
value_name = "THEME",
default_value = "classic",
help = "Set the color theme"
)]
pub theme: String,
#[arg(long, help = "Apply theme-based tinting to terminal content")]
pub tint_terminal: bool,
}
impl Cli {
pub fn parse_args() -> Self {
Self::parse()
}
}