From 6cfcd7c25930d0478bc35731543e37a2e0c8f13f Mon Sep 17 00:00:00 2001 From: Christian Duerr Date: Sat, 22 Aug 2020 20:55:27 +0000 Subject: Add CLI parameter to override config options This uses the facilities added in 3c3e6870dedad56b270f5b65ea57d5a6e46b1de6 to allow overriding individual configuration file options dynamically from the CLI using the --options/-o parameter. Fixes #1258. --- alacritty/src/event.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'alacritty/src/event.rs') diff --git a/alacritty/src/event.rs b/alacritty/src/event.rs index d0ce3601..c3e1b6c8 100644 --- a/alacritty/src/event.rs +++ b/alacritty/src/event.rs @@ -39,7 +39,7 @@ use alacritty_terminal::term::{ClipboardType, SizeInfo, Term, TermMode}; #[cfg(not(windows))] use alacritty_terminal::tty; -use crate::cli::Options; +use crate::cli::Options as CLIOptions; use crate::clipboard::Clipboard; use crate::config; use crate::config::Config; @@ -139,6 +139,7 @@ pub struct ActionContext<'a, N, T> { pub urls: &'a Urls, pub scheduler: &'a mut Scheduler, pub search_state: &'a mut SearchState, + cli_options: &'a CLIOptions, font_size: &'a mut Size, } @@ -693,6 +694,7 @@ pub struct Processor { font_size: Size, event_queue: Vec>, search_state: SearchState, + cli_options: CLIOptions, } impl Processor { @@ -704,6 +706,7 @@ impl Processor { message_buffer: MessageBuffer, config: Config, display: Display, + cli_options: CLIOptions, ) -> Processor { #[cfg(not(any(target_os = "macos", windows)))] let clipboard = Clipboard::new(display.window.wayland_display()); @@ -723,6 +726,7 @@ impl Processor { event_queue: Vec::new(), clipboard, search_state: SearchState::new(), + cli_options, } } @@ -826,6 +830,7 @@ impl Processor { urls: &self.display.urls, scheduler: &mut scheduler, search_state: &mut self.search_state, + cli_options: &self.cli_options, event_loop, }; let mut processor = input::Processor::new(context, &self.display.highlighted_url); @@ -1051,14 +1056,11 @@ impl Processor { processor.ctx.display_update_pending.dirty = true; } - let config = match config::load_from(&path) { + let config = match config::reload(&path, &processor.ctx.cli_options) { Ok(config) => config, Err(_) => return, }; - let options = Options::new(); - let config = options.into_config(config); - processor.ctx.terminal.update_config(&config); // Reload cursor if we've changed its thickness. -- cgit