diff options
-rw-r--r-- | CHANGELOG.md | 10 | ||||
-rw-r--r-- | alacritty.yml | 3 | ||||
-rw-r--r-- | alacritty_macos.yml | 3 | ||||
-rw-r--r-- | alacritty_windows.yml | 3 | ||||
-rw-r--r-- | src/config.rs | 9 | ||||
-rw-r--r-- | src/display.rs | 17 |
6 files changed, 37 insertions, 8 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 675d5d9a..1c8cbbc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Added + +- Option for evenly spreading extra padding around the terminal (`window.dynamic_padding`) + +### Changed + +- Extra padding is not evenly spread around the terminal by default anymore + ## Version 0.2.3 ### Fixed diff --git a/alacritty.yml b/alacritty.yml index 4a62b920..f66269a1 100644 --- a/alacritty.yml +++ b/alacritty.yml @@ -29,6 +29,9 @@ window: x: 2 y: 2 + # Spread additional padding evenly around the terminal content. + dynamic_padding: false + # Window decorations # # Values for `decorations`: diff --git a/alacritty_macos.yml b/alacritty_macos.yml index e5f622b3..59f2ccb0 100644 --- a/alacritty_macos.yml +++ b/alacritty_macos.yml @@ -29,6 +29,9 @@ window: x: 2 y: 2 + # Spread additional padding evenly around the terminal content. + dynamic_padding: false + # Window decorations # # Available values: diff --git a/alacritty_windows.yml b/alacritty_windows.yml index 1da098f7..debf06ff 100644 --- a/alacritty_windows.yml +++ b/alacritty_windows.yml @@ -29,6 +29,9 @@ window: x: 2 y: 2 + # Spread additional padding evenly around the terminal content. + dynamic_padding: false + # Window decorations # # Values for `decorations`: diff --git a/src/config.rs b/src/config.rs index b638ea43..ee30c085 100644 --- a/src/config.rs +++ b/src/config.rs @@ -376,6 +376,10 @@ pub struct WindowConfig { /// Draw the window with title bar / borders #[serde(default)] decorations: Decorations, + + /// Spread out additional padding evenly + #[serde(default, deserialize_with = "failure_default")] + dynamic_padding: bool, } fn default_padding() -> Delta<u8> { @@ -398,6 +402,10 @@ impl WindowConfig { pub fn decorations(&self) -> Decorations { self.decorations } + + pub fn dynamic_padding(&self) -> bool { + self.dynamic_padding + } } impl Default for WindowConfig { @@ -406,6 +414,7 @@ impl Default for WindowConfig { dimensions: Default::default(), padding: default_padding(), decorations: Default::default(), + dynamic_padding: false, } } } diff --git a/src/display.rs b/src/display.rs index a664b4a2..3fe5fbc4 100644 --- a/src/display.rs +++ b/src/display.rs @@ -152,22 +152,19 @@ impl Display { let dimensions = options.dimensions() .unwrap_or_else(|| config.dimensions()); - let mut padding_x = f64::from(config.padding().x) * dpr; - let mut padding_y = f64::from(config.padding().y) * dpr; + let mut padding_x = (f64::from(config.padding().x) * dpr).floor(); + let mut padding_y = (f64::from(config.padding().y) * dpr).floor(); if dimensions.columns_u32() > 0 && dimensions.lines_u32() > 0 { // Calculate new size based on cols/lines specified in config let width = cell_width as u32 * dimensions.columns_u32(); let height = cell_height as u32 * dimensions.lines_u32(); - padding_x = padding_x.floor(); - padding_y = padding_y.floor(); - viewport_size = PhysicalSize::new( f64::from(width) + 2. * padding_x, f64::from(height) + 2. * padding_y, ); - } else { + } else if config.window().dynamic_padding() { // Make sure additional padding is spread evenly let cw = f64::from(cell_width); let ch = f64::from(cell_height); @@ -331,8 +328,12 @@ impl Display { let mut padding_x = f32::from(config.padding().x) * dpr as f32; let mut padding_y = f32::from(config.padding().y) * dpr as f32; - padding_x = (padding_x + ((width - 2. * padding_x) % cell_width) / 2.).floor(); - padding_y = (padding_y + ((height - 2. * padding_y) % cell_height) / 2.).floor(); + + if config.window().dynamic_padding() { + padding_x = (padding_x + ((width - 2. * padding_x) % cell_width) / 2.).floor(); + padding_y = (padding_y + ((height - 2. * padding_y) % cell_height) / 2.).floor(); + } + self.size_info.padding_x = padding_x; self.size_info.padding_y = padding_y; |