From 6223cabe17945a86ff4adeb3dfb84c90186f4ea3 Mon Sep 17 00:00:00 2001 From: Kirill Chibisov Date: Thu, 28 Dec 2023 22:30:51 +0400 Subject: Use pre-composed key for `Alt` bindings on macOS Fixes #7475. --- CHANGELOG.md | 1 + alacritty/src/input/keyboard.rs | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e65f85f3..77924ef8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - `alacritty migrate` failing with nonexistent imports +- `Alt` bindings requiring composed key rather than pre-composed one on macOS ## 0.13.0 diff --git a/alacritty/src/input/keyboard.rs b/alacritty/src/input/keyboard.rs index 423f8bae..6d2abea1 100644 --- a/alacritty/src/input/keyboard.rs +++ b/alacritty/src/input/keyboard.rs @@ -172,7 +172,13 @@ impl> Processor { // the time. However what we want is to manually lowercase the character to account // for both small and capital letters on regular characters at the same time. let logical_key = if let Key::Character(ch) = key.logical_key.as_ref() { - Key::Character(ch.to_lowercase().into()) + // Match `Alt` bindings without `Alt` being applied, otherwise they use the + // composed chars, which are not intuitive to bind. + if cfg!(target_os = "macos") && mods.alt_key() { + key.key_without_modifiers() + } else { + Key::Character(ch.to_lowercase().into()) + } } else { key.logical_key.clone() }; -- cgit v1.2.3-54-g00ecf