Alt-Tab

Alt-Tab — это широко распространённое название для комбинации клавиш, появившейся в Microsoft Windows начиная с Windows 1.0 (1985). Она позволяет переключаться между окнами приложений на уровне операционной системы без использования мыши; изначально называлась «Task Switcher» (в Windows Vista — Flip)[1].

Описание

Комбинация Alt-Tab упорядочивает окна приложений по принципу «наиболее недавно используемых», поэтому многократное нажатие Alt+Tab ↹ позволяет быстро чередовать два последних активных окна. Кроме того, Alt-Tab может использоваться для переключения между полноэкранным окном и рабочим столом. Окружение оконного менеджера поддерживает список окон в порядке Z-порядка, где самые недавно использованные окна располагаются впереди, а рабочий стол — в конце списка; это ускоряет доступ к часто используемым окнам[2].

Аналогичная по смыслу комбинация используется также во многих других операционных системах и рабочих средах — например, в KDE, Xfce и GNOME. В iOS и macOS для похожей функции используется ⌘ Command+Tab ↹, но она переключает между приложениями, а не окнами[3].

Поведение

Использование клавиши-модификатора Alt с Alt-Tab отличается от обычного применения подобных клавиш:

  • Поведение различается в зависимости от того, отпускает ли пользователь Alt между нажатиями Alt-Tab, или удерживает её и многократно нажимает Tab ↹.
  • Отпускание Alt немедленно закрывает окно переключателя и активирует выбранное окно.

Существуют тонкости в реализации Alt-Tab, сохранившиеся на протяжении многих версий Windows.

Основные правила поведения комбинации Alt-Tab:

  • Если открыто более одного окна, список задач появляется сразу после нажатия Tab ↹ при удерживаемом Alt.
  • Список задач открыт, пока не отпущена клавиша Alt.
  • Tab ↹ перемещает выделение вперёд по списку, ⇧ Shift+Tab ↹ — назад.
  • При удержании Tab ↹ или ⇧ Shift+Tab ↹ происходит автоповтор (удобно при большом количестве окон).
  • Первое нажатие Tab ↹ или ⇧ Shift+Tab ↹ после активации Alt-Tab выделяет окно, идущее сразу за/перед текущим.
  • Если нет окон выше активного, начальное нажатие ⇧ Shift+Tab ↹ перемещает выделение в конец списка.
  • Щелчок мышью по значку задачи в окне переключателя активирует соответствующее окно (не поддерживается в Windows XP и ранее).
  • Нажатие Esc или клик мышью вне окна переключателя при удерживаемой клавише Alt отменяет операцию переключения.
  • Окна перечисляются по Z-порядку.
  • Окна с атрибутом «всегда поверх» располагаются в начале списка, затем — активное окно и остальные.
  • Рабочий стол представлен как отдельное окно верхнего уровня (не поддерживается в Windows 10).
  • При переключении окно продвигается в начало Z-порядка, кроме «всегда поверх» окон, которые сохраняют своё положение.
  • Пока окно переключателя неактивно, комбинация Alt+Esc отправляет активное окно в конец Z-порядка (в Windows 8 — на одну позицию вниз).
  • Alt+⇧ Shift+Esc эквивалентна одному нажатию Alt+⇧ Shift+Tab ↹, но при этом свёрнутые окна выбираются без восстановления.
  • Сворачивание окна аналогично эффекту Alt+Esc — оно отправляется назад по Z-порядку.

Следствия из этих правил:

  • При отсутствии окон с признаком «всегда поверх» обычная последовательность Alt-Tab всегда будет чередовать два наиболее недавно использовавшихся окна.
  • Alt+⇧ Shift+Tab ↹ может восстановить последнее свёрнутое окно (если есть окна «всегда поверх», выбирается самое нижнее из них).
  • Два последовательных нажатия Tab ↹ при удерживаемом Alt позволяют быстро переключаться между тремя программами; аналогично можно переключаться между любым числом окон.

При первом вызове Alt-Tab список окон формируется так:

  • Сначала — все окна верхнего уровня с признаком «всегда поверх» (по Z-порядку, от первого к последнему),
  • затем — остальные (обычные) окна верхнего уровня (по Z-порядку).

Порядок списка задач не меняется, пока окно переключателя открыто, но между отдельно запущенными переключениями порядок может измениться[4].

В Windows Vista поведение по умолчанию изменилось[5]: шесть наиболее использованных окон выводятся первыми, остальные сортируются по алфавиту согласно пути к приложению (и могут группироваться в зависимости от настроек панели задач).

В Windows 10 рабочий стол исчез из списка задач Alt-Tab.

Иллюстративные примеры

Окна можно условно разделить на две категории: «всегда поверх» и обычные. При переключении на окно оно перемещается в начало своей категории. Например, предположим, что нет окон «всегда поверх». Пусть активное окно называется A. Зажмите Alt и нажмите, затем отпустите Tab, не отпуская Alt. Появится список окон, где A идёт первым: список, возможно, «A W Z E U B C». Курсор сразу окажется на W. Переместитесь, не отпуская Alt, к окну U, ещё трижды нажав Tab, и отпустите Alt. Если теперь снова активировать Alt-Tab, список будет «U A W Z E B C». Проделав аналогично для окна E, список станет «E U A W Z B C». Таким образом, порядок окон отражает недавность их использования. Если теперь свернуть окно A, оно перейдёт в конец списка: «E U W Z B C A».

Классическое быстрое чередование между двумя окнами — это частный случай поведения Alt-Tab: при последовательном быстром нажатии и отпускании комбинации с двумя окнами пользователь всегда переключается между ними. Если же три окна, цикл — «A B C», быстрое чередование повторно переставляет активные окна в начало.

Если произвести свертывание одного из трёх окон, останутся два «верхних», между которыми Alt-Tab будет чередовать; если программа не перемещается в конец списка при сворачивании, потребуется дополнительная «перетасовка» Alt-Tab. Если программа не обновляет позицию в Z-порядке (например, обработчик окон завис), при следующем вызове Alt-Tab курсор окажется не на ожидаемой позиции.

Программы могут программно влиять на своё положение в списке Alt-Tab: создавая и уничтожая окна, скрывая/показывая, изменяя Z-порядок[2].

Порядок списка Alt-Tab всегда соответствует Z-порядку, если упорядочить окна по признаку «всегда поверх». Комбинация Alt-Shift-Esc эквивалентна одному Alt-Shift-Tab, только при этом свёрнутое окно не отображается[2].

Особенности и доработки в Windows

Alt-Tab работает даже в отсутствие Проводника Windows. В Windows NT 3.51 и ранее Alt-Tab обрабатывается подсистемой CSRSS (Client/Server Runtime Subsystem), позже — драйвером оконной системы ядра (win32k.sys)[6]. Alt-Tab продолжает работать даже если комбинации Ctrl+Alt+Del и Ctrl+⇧ Shift+Esc (управляются процессом Winlogon) неактивны[7].

Возможна перехват (или даже блокировка) Alt-Tab с помощью низкоуровневых обработчиков клавиатуры[8]. Такой подход применяется, например, в клиентах VNC, чтобы передавать нажатие Alt-Tab в удалённую сессию.

В Windows XP PowerToy Tweak UI[9] позволяет изменить число строк и столбцов в окне переключателя Alt-Tab, либо это настраивается напрямую через реестр[10].

Программа «Alt-Tab Replacement»[9] для Windows XP показывает миниатюры окон (а не только значки) и позволяет выбирать приложение мышью. В Windows Vista появилась встроенная версия этого функционала (Flip).

Для работы с большим числом окон существуют сторонние аналоги Alt-Tab Replacement, позволяющие добавлять новые возможности.

В Windows Vista и Windows 7 можно выполнять навигацию по Alt-Tab с помощью мыши или клавиш-стрелок.

Если включена тема Aero Glass, в Windows Vista доступен 3D-просмотр окон (аналог Alt-Tab через ⊞ Win+Tab ↹). В этом режиме активировать окно можно кликом мыши, а прокрутка возможна колесиком.

Если в системе открыто только одно окно, при нажатии Alt-Tab диалог выбора не появляется — комбинация лишь возвращает фокус этому окну. В Windows 10 это означает невозможность выхода из полноэкранного приложения через Alt-Tab, т.к. рабочий стол не представлен как отдельное окно[11].

Для возвращения к стилю маленьких значков XP в Vista можно отключить «Enable Desktop Composition» («Включить композицию рабочего стола») в дополнительных параметрах производительности или завершить процесс Dwm.exe.

В Windows 7 при использовании Alt-Tab после задержки в одну секунду отображается полноразмерное окно соответствующего приложения (скрывая остальные) — это часть функции Aero Peek. Задержка регулируется параметром LivePreview_ms в реестре.

Сообщалось о проблемах, когда диалог переключателя не остаётся поверх других окон[12][13], однако навигация с помощью мыши возможна. Причиной является работа определённых фоновых служб и гаджетов[14]. Иногда помогает завершение sidebar.exe или других программ[15].

Причиной ошибки бывает наличие окон с нулевыми размерами, закреплённых «всегда поверх» — для решения используется специальная утилита[15].

Для возврата к значкам XP в Windows 7 можно создать параметр AltTabSettings в реестре (DWORD=1) по адресу HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\.

В Windows 7 комбинация Ctrl+Alt+Tab ↹ позволяет вывести переключатель на экран и навигировать по нему даже после отпускания клавиш. Перемещение возможно клавишами-стрелками или Tab (по кругу), выбор — Enter или мышью, отмена — Esc.

Для восстановления схемы Alt-Tab из XP можно удерживать левый Alt, затем нажать правый Alt, затем Tab.

Распространённой проблемой является случайное нажатие комбинации Alt-Shift вместо Alt-Tab, что по умолчанию приводит к смене раскладки клавиатуры. Решение — перенастройка или отключение данной горячей клавиши в панели управления (Региональные настройки — Языки).

Аналоги в других системах

undefined

macOS

На macOS сходный функционал обеспечивается сочетанием ⌘ Command+Tab ↹, при этом переключение осуществляется между приложениями, а не окнами. В macOS также возможна навигация по переключателю мышью, а к значку приложения можно «перетаскивать» файлы для открытия. Выделенное приложение можно быстро скрыть («H») или завершить («Q»), не закрывая меню. Переключение между окнами внутри одного приложения выполняется через ⌘ Command+`. После вызова Command-Tab сочетание Command-` действует как Command-Shift-Tab (цикл в обратном порядке). Навигацию также можно выполнять стрелками влево/вправо.

Если в приложении свёрнуты все окна, их необходимо предварительно восстановить.

В Classic Mac OS изначально не было горячей клавиши для переключения приложений — её добавляли сторонние панели управления.

undefined

iOS

В iOS реализовано аналогичное сочетание ⌘ Command+Tab ↹, позволяющее переключаться между недавно запущенными приложениями (до девяти в альбомной и шести в портретной ориентировке). Понятие «открытого» приложения менее выражено, чем в настольных ОС. Для движения назад используется ⌘ Command+⇧ Shift+Tab ↹.

Unix-подобные системы

В UNIX-подобных средах (например, fvwm, KDE, Xfce, GNOME) реализованы совместимые функции. В некоторых случаях (например, в Sun CDE или старых fvwm) комбинация Alt-Tab лишь циклически переключается между окнами или вызывает аплет со списком для выбора мышью/стрелками. В отдельных оконных менеджерах (например, WindowLab) список не отображается — окна просто выводятся на передний план по очереди.

Не все оконные менеджеры предоставляют такую функцию по умолчанию — в Blackbox необходим сторонний инструмент (например, bbkeys).

undefined

Compiz Fusion

Compiz Fusion реализует аналогичный переключатель с отображением миниатюр окон и их иконок. Также поддерживается движение назад (Alt-Shift-Tab) и эффект пространственного 3D-переключения (аналог Flip 3D в Windows — Win-Tab).

GNOME

Оконный менеджер Metacity обеспечивает похожий функционал на Windows до Vista, однако показывает только контур выбранного окна. В Windows отображается всё содержимое окна, что упрощает выбор.

История

Комбинация Alt-Tab присутствует во всех версиях Windows начиная с Windows 1.0[1]. Визуальное отображение списка окон появилось только в Windows 3.1x, где оно называлось CoolSwitch и включалось через соответствующую опцию («Fast "Alt+TAB" Switching») в апплете настроек экрана[16].

Ранее Alt-Tab работал схоже с Alt-Esc (переключение между окнами), но последнее перерисовывало каждое окно сразу при нажатии, а Alt-Tab — лишь после отпускания клавиши Alt.

Несовместимости и особенности в приложениях

Иногда отдельные программы нарушают ожидаемую схему работы Alt-Tab. Например, Adobe Reader 7.0.x (подобно новым версиям Microsoft Word) заводит отдельный значок в переключателе Alt-Tab для каждого документа MDI. Однако Adobe Reader перемещает в начало списка две записи при выборе документа Alt-Tab — иконку основного окна и иконку документа. Таким образом, однократное нажатие Alt-Tab переключает на вторую запись (иконку PDF-документа), что лишает пользователя привычного поведения «переключения на предыдущее приложение». Корректность работы Alt-Tab зависит от реализации приложения.

Примечания

  1. 1 2 Raymond Chen Discusses the Alt+Tab and Alt+Esc Hotkeys (англ.) (8 сентября 2016). Дата обращения: 23 июня 2024. Архивировано 1 августа 2025 года.
  2. 1 2 3 Raymond Chen. What is the Alt+Tab order? (англ.). The Old New Thing. Microsoft (20 октября 2003). Дата обращения: 23 июня 2024. Архивировано 5 сентября 2006 года.
  3. Windows 0-day exploit CVE-2019-1458 used in Operation WizardOpium (англ.). Securelist. Kaspersky (10 декабря 2019). Дата обращения: 23 июня 2024. Архивировано 21 октября 2025 года.
  4. MSDN. SetWindowPos Function (англ.). MSDN. Microsoft (1 января 2007). Дата обращения: 23 июня 2024. Архивировано 24 августа 2016 года.
  5. Raymond Chen. Windows Vista changed the Alt+Tab order slightly (англ.). MSDN blog. Microsoft (1 июля 2008). Дата обращения: 23 июня 2024. Архивировано 3 августа 2008 года.
  6. Windows 0-day exploit CVE-2019-1458 used in Operation WizardOpium (англ.). Securelist. Kaspersky (10 декабря 2019). Дата обращения: 23 июня 2024. Архивировано 21 октября 2025 года.
  7. Russinovich, Mark Running Windows with No Services (англ.). Mark's Sysinternals Blog. Sysinternals (24 июля 2005). Дата обращения: 23 июня 2024. Архивировано 16 декабря 2006 года.
  8. Richter, Jeffrey Win32 Q&A: Handy Features in Windows, and Interlocked Functions (англ.). MSDN Magazine. Microsoft (июль 2000). Дата обращения: 23 июня 2024. Архивировано 18 января 2009 года.
  9. 1 2 Microsoft PowerToys for Windows XP. Microsoft (1 ноября 2005). Дата обращения: 23 июня 2024. Архивировано 6 октября 2006 года.
  10. Malek, Andrew Change the Alt+Tab Layout to Show More Icons (англ.). MalekTips. Дата обращения: 23 июня 2024. Архивировано 23 января 2009 года.
  11. Raymond Chen. What is the Alt+Tab order? (англ.). The Old New Thing. Microsoft (20 октября 2003). Дата обращения: 23 июня 2024. Архивировано 5 сентября 2006 года.
  12. Windows 7 - Alt-Tab icon list does not stay on top (англ.). Дата обращения: 23 июня 2024. Архивировано 7 декабря 2024 года.
  13. Alt-tab window won't stay on top of other windows in Windows 7 (англ.). Дата обращения: 23 июня 2024. Архивировано 31 мая 2011 года.
  14. Windows 7 alt-tab window disappears to back when aero peek is enabled (англ.). Дата обращения: 23 июня 2024.
  15. 1 2 Dawson, Bruce Alt+Tab Bug Worsened by IE 10, But Fix Found (англ.). Random ASCII (28 мая 2013). Дата обращения: 23 июня 2024. Архивировано 24 сентября 2025 года.
  16. Windows 3.1 Resource Kit WIN.INI Section Settings (англ.). Microsoft. Дата обращения: 23 июня 2024. Архивировано 31 января 2009 года.

Литература

Категории