aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md10
-rw-r--r--alacritty.yml3
-rw-r--r--alacritty_macos.yml3
-rw-r--r--alacritty_windows.yml3
-rw-r--r--src/config.rs9
-rw-r--r--src/display.rs17
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;