From a9c3deabfbd9a0e8001dda65e66e6b204ec6f47a Mon Sep 17 00:00:00 2001 From: Victor Kareh Date: Mon, 9 Feb 2026 22:24:52 -0500 Subject: display: Add settings for Alt+Tab window placement Add user settings to control how minimized and urgent windows are ordered during Alt+Tab. 1. alt-tab-minimized-placement: - 'mru': Mix minimized windows in MRU order - 'end': Show minimized windows last (current behavior, default) - 'hidden': Exclude minimized windows from Alt+Tab 2. alt-tab-urgent-placement: - 'start': Show all urgent windows first (current behavior, default) - 'mru': Mix urgent windows in MRU order Fixes #824 Closes #819 --- src/include/common.h | 15 +++++++++++++++ src/include/prefs.h | 4 ++++ 2 files changed, 19 insertions(+) (limited to 'src/include') diff --git a/src/include/common.h b/src/include/common.h index a0dfb69c..1f5e7cc9 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -209,6 +209,19 @@ typedef enum META_ACTION_TITLEBAR_LAST } MetaActionTitlebar; +typedef enum +{ + META_MINIMIZED_WINDOW_PLACEMENT_MRU, + META_MINIMIZED_WINDOW_PLACEMENT_END, + META_MINIMIZED_WINDOW_PLACEMENT_HIDDEN +} MetaMinimizedWindowPlacement; + +typedef enum +{ + META_URGENT_WINDOW_PLACEMENT_START, + META_URGENT_WINDOW_PLACEMENT_MRU +} MetaUrgentWindowPlacement; + typedef enum { META_FRAME_TYPE_NORMAL, @@ -355,5 +368,7 @@ typedef enum #define META_DEFAULT_ALT_TAB_RAISE_WINDOWS FALSE #define META_DEFAULT_ALT_TAB_EXPAND_TO_FIT_TITLE FALSE +#define META_DEFAULT_ALT_TAB_MINIMIZED_PLACEMENT META_MINIMIZED_WINDOW_PLACEMENT_END +#define META_DEFAULT_ALT_TAB_URGENT_PLACEMENT META_URGENT_WINDOW_PLACEMENT_START #endif diff --git a/src/include/prefs.h b/src/include/prefs.h index 1170e8e8..bf748e28 100644 --- a/src/include/prefs.h +++ b/src/include/prefs.h @@ -73,6 +73,8 @@ typedef enum META_PREF_ALT_TAB_MAX_COLUMNS, META_PREF_ALT_TAB_RAISE_WINDOWS, META_PREF_ALT_TAB_EXPAND_TO_FIT_TITLE, + META_PREF_ALT_TAB_MINIMIZED_PLACEMENT, + META_PREF_ALT_TAB_URGENT_PLACEMENT, META_PREF_COMPOSITING_MANAGER, META_PREF_COMPOSITING_FAST_ALT_TAB, META_PREF_RESIZE_WITH_RIGHT_BUTTON, @@ -151,6 +153,8 @@ int meta_prefs_get_icon_size (void); int meta_prefs_get_alt_tab_max_columns (void); gboolean meta_prefs_get_alt_tab_expand_to_fit_title (void); gboolean meta_prefs_get_alt_tab_raise_windows (void); +MetaMinimizedWindowPlacement meta_prefs_get_alt_tab_minimized_placement (void); +MetaUrgentWindowPlacement meta_prefs_get_alt_tab_urgent_placement (void); gboolean meta_prefs_get_compositing_manager (void); gboolean meta_prefs_get_compositing_fast_alt_tab (void); gboolean meta_prefs_get_center_new_windows (void); -- cgit v1.2.1