fix (macOS): Show quick terminal on full-screen app (#4049)

closes #2721  

This PR resolves the issue where the Quick Terminal was not visible when
pressing the global keybind while a full-screen app was active.

### Changes  
- Added new configuration options for `quick-terminal-space-behavior`
- The Quick Terminal will now overlay properly on top of full-screen
applications

#### Behavior

##### `quick-terminal-space-behavior = remain`

- The Quick Terminal will be remain open on the space when switching
spaces.

##### `quick-terminal-space-behavior = move`

- The Quick Terminal will be moved to active space when switching
spaces.
This commit is contained in:
Mitchell Hashimoto
2025-01-08 11:43:58 -08:00
committed by GitHub
6 changed files with 130 additions and 6 deletions

View File

@@ -1567,6 +1567,23 @@ keybind: Keybinds = .{},
/// Set it to false for the quick terminal to remain open even when it loses focus.
@"quick-terminal-autohide": bool = true,
/// This configuration option determines the behavior of the quick terminal
/// when switching between macOS spaces. macOS spaces are virtual desktops
/// that can be manually created or are automatically created when an
/// application is in full-screen mode.
///
/// Valid values are:
///
/// * `move` - When switching to another space, the quick terminal will
/// also moved to the current space.
///
/// * `remain` - The quick terminal will stay only in the space where it
/// was originally opened and will not follow when switching to another
/// space.
///
/// The default value is `move`.
@"quick-terminal-space-behavior": QuickTerminalSpaceBehavior = .move,
/// Whether to enable shell integration auto-injection or not. Shell integration
/// greatly enhances the terminal experience by enabling a number of features:
///
@@ -5705,6 +5722,12 @@ pub const QuickTerminalScreen = enum {
@"macos-menu-bar",
};
// See quick-terminal-space-behavior
pub const QuickTerminalSpaceBehavior = enum {
remain,
move,
};
/// See grapheme-width-method
pub const GraphemeWidthMethod = enum {
legacy,