Alt-Tab
From Wikipedia, the free encyclopedia
Alt-Tab is the common name for a complex keyboard shortcut on Microsoft Windows 3.1 onwards used for switching between top-level windows without using the mouse; hence it was named Task Switcher (Flip in Windows Vista). Casual users may press Alt-Tab to alternate between the two most recent tasks, but used to its full potential, Alt-Tab can switch to any running program. The list of tasks is kept in an order with the most recently used tasks at the front. Tab does not need to be pressed as many times to move the task selection cursor from the front of the list to a nearer task--the more recently used, the easier to get back.
Contents |
[edit] The Precise Behavior
The full capabilities of Alt-Tab are learned intuitively by many users. What follows is a rigorous definition, which is not often discussed.
The behavior can be defined by these rules:
- The task list appears as soon as Tab is pressed with Alt down
- The task list remains open until Alt is released
- The current window is [usually] at the front of the list
- Tab moves the square black selection cursor forward in the list; Shift-Tab moves it backward
- Switching to a window shuffles it to the front of the list, preserving the order of the other windows
- The selection cursor starts on position 2 in the list
- Minimizing a window sends it to the end of the list
- Alt-Esc lowers a window and sends it to the end of the list
- Esc while Alt is still down aborts the switch
These rules have certain interesting consequences:
- Pressing Alt, pressing Tab, releasing Tab, and releasing Alt (the typical way an Alt key combination is performed) will always alternate between the two most recent tasks.
- Alt-Shift-Tab can restore the most recently minimized window.
- Pressing either Alt-Tab or Alt-Tab-Tab (one or two tabs with Alt continuously held down) provides the same feeling of a quick switch back and forth, but with three programs. In practice it is easy to remember which task was most recent and which was second-most recent.
- To expel one of three tasks from use in the above situation, minimize that window and Alt-Tab will immediately begin to behave as if the most recent two tasks were the two remaining.
- To abort the Alt-Tab, before releasing Alt press Shift-Tab to undo everything. (Or press Esc.)
Alt-Tab is accessed by a somewhat unusual application of the keyboard. First the Alt key is pressed and held down. While Alt is down, Tab may be pressed and released repeatedly, combined with Shift if desired, to cycle the cursor through a list of tasks. A special task selection window appears the first time Tab is pressed with Alt down. The release of Alt is the act that closes the task selection window and switches to the selected task.
The fact that the menu is held open by keeping Alt pressed may seem unusual, given the way the modifier keys (Ctrl, Alt, and Shift) are typically used.
A list of top-level windows is maintained with a continually updated ordering. When the selector menu is initially activated by Alt plus the first Tab, a square black cursor is on the second item in the list. Tab moves the cursor to the next item, and Shift-Tab moves it to the previous. In the event that there are many windows, Tab or Shift-Tab can be allowed to autorepeat. All these Tab/Shift-Tab keystrokes must take place before Alt is ever released.
When a task is switched to, it is moved to the head of the list. For example, let A be the current window title. Hold down Alt and press and release Tab once, leaving Alt pressed. The window list comes up. A is guaranteed to be first in the list. Suppose the complete list is A W Z E U B C. The selection cursor will initially be on W. Suppose we want to switch to window U. Without releasing Alt, press Tab three more times and then release Alt. Then hold down Alt and press-release Tab once leaving Alt down. The window list will now show U A W Z E B C. Then Tab over to E and release Alt, selecting window E. Press and hold down Alt and press-release Tab once leaving Alt down. The window list will now show E U A W Z B C. Note that the windows switched to with Alt-Tab (E, U, A) are in order of how recently they were switched to. Now Tab over to A and release Alt. Press and hold down Alt and press-release Tab leaving Alt down. The window list will show A E U W Z B C. The effect of this most-recently-used behavior is that to return to the most recent task, Tab is pressed once, for the second most recent task Tab is pressed twice, and so on for all tasks. The priority of a window in terms of Alt-Tab accessibility is how recently it was used. If A is now minimized, the list will become E U W Z B C A, and if Z is minimized the list becomes E U W B C A Z. Thus minimizing a window mimics the effect of not using it for a long time.
The commonplace alternation between the 2 most recent tasks (using a fast Alt-Tab with all keys released immediately) is precisely a special case of the above behavior. Suppose the windows are A B C and we want to alternate between A and B. Hold Alt while pressing and releasing Tab; continue holding Alt. The list will show A B C and the cursor will initially be over B. When Alt is released B will be selected, Tab having been pressed a total of 1 time, and zero attention to the task selection cursor having been necessary. Again, press and release Tab while holding Alt. The list will show B A C and the cursor will initially be over A. When Alt is released we have switched back to A. Displaying the list again, the order has returned to to A B C and this sequence can recur. On close inspection, in the course of typing Alt-Tab and releasing both keys quickly, the task list window can be observed to flicker for a split second, so .
When a program is minimized, it is moved to the end of the list. One benefit of this behavior is if you mistakenly minimize a window, you can press Alt-Shift-Tab to return to it in one step, without having to click the taskbar. Another subtle benefit is discussed below which if denied is very frustrating.
Deviations from the intuitively expected behavior are noticeable as vague frustration. The situation is complicated by the fact that Alt-Tab sometimes behaves inconsistently in seemingly identical situations.
At various times programs may violate the expectation that a minimized window will go to the end of the list. A properly behaved application such as Notepad or Outlook Express will move itself to the very end of the list when minimized. However, under certain circumstances this assumption may be violated for all programs, well-behaved or otherwise. If the user has been switching among 3 applications and wants to dispense with one of them by minimizing, one of the remaining ones will be on top immediately after minimizing, and ordinarily Alt-Tab will alternate between the 2 remaining windows. If a program fails to move to the end of the list when minimized, pressing Alt-Tab once will return to the minimized program. Failures such as this can result in a frenzied reordering of the Alt-Tab list by means of several Alt-Tab-Tab-Tab... sequences to compensate for the program misbehavior. The algorithm for this reshuffling is intuitive after using Alt-Tab for a long time.
An additional trivial way to abort an Alt-Tab switch is to press Esc before releasing Alt.
Applications have some say in where they are located in the Alt-Tab order. The list of windows is altered by the creation and destruction of windows, programmatic hiding, showing, raising, and lowering of windows, and alterations to the window z-order [1] .
The order of the Alt-Tab list corresponds directly to the z-order. Alt-Shift-Esc is equivalent to one Alt-Shift-Tab except minimized windows are selected without being displayed.[2]
[edit] Windows-Specific Issues and Hacks
Alt-Tab works even if Windows Explorer is no longer running. On Windows NT-based systems, Alt-Tab is managed by CSRSS (Client/Server Runtime Subsystem). It works even when Ctrl-Alt-Del and Ctrl-Shift-Esc (Task Manager) (which are managed by Winlogon) do not.[3]
Alt-Tab may be intercepted (or effectively disabled) by means of a low-level keyboard hook.[4] Such a technique is used by applications such as the Virtual Network Computing (VNC) viewer to pass Alt-Tab keystrokes to the remote desktop when the VNC window is active.
Under Windows XP, Alt-Tab may be configured using Tweak UI PowerToy[5]. It allows the adjustment of number of rows and columns the task list window can display. Increasing the maximum icon capacity can obviate showing the numerous open programs one page at a time, which can be disorienting.
Another Microsoft PowerToy, Alt-Tab Replacement[5], is available for Windows XP that displays a screenshot of each application in the task list rather than just its icon. A more advanced version of this functionality, named Windows Flip, is built into Windows Vista.
A number of third-party tools, similar to Alt-Tab Replacement, are also available that add additional functionality to Alt-Tab.
[edit] Non-Windows Functionality
[edit] Macintosh
Similar functionality exists on Mac OS X using Command instead of Alt, with the additional capability of pointing at the desired icon with the mouse. Command-` works similarly to switch between windows within the same application.
In the classic Mac OS, third party extensions (such as LiteSwitch) provided this behavior.
[edit] Unix
Unix-like desktop systems such as fvwm, KDE, and GNOME have added a compatible function. A common cause of frustration on some systems including Sun's CDE and old versions of fvwm has been the mapping of the Alt-Tab key combination to less sophisticated functionality such as only alternating between two windows, cycling forward or backward in a list of all windows in a fixed order, or opening a task applet in which you have to use arrow keys or the mouse to select a task and then click or push Enter.
Not all window managers provide this functionality as a core feature. For example, Blackbox does not; users desiring this behavior can add it by running a helper application such as bbkeys.
[edit] Trivia
An example of a program that violates the expectation that pressing Alt-Tab one time will switch to the previous application is Adobe Reader 7.0.x. Like newer versions of Microsoft Word it attempts to give a separate icon in the Alt-Tab task menu to each MDI document. However, unlike Word, it brings two items to the front of the list whenever a document is selected using Alt-Tab: first an icon representing the main Reader window and then an icon for the individual document. While in Adobe Reader, pressing Alt-Tab one time selects the second item in the list, which is the icon for the PDF document. Adobe Reader remains the current task when Alt-Tab is released. Thus it is demonstrated that the correct operation of Alt-Tab, like some other aspects of the Windows environment such as the Clipboard (software) chain, depends on individual applications being written correctly.
[edit] See also
[edit] References
- ^ MSDN (2007-01-01). SetWindowPos Function. MSDN. Microsoft. Retrieved on January 1, 2007.
- ^ oldnewthing (2003-10-20). What is the Alt+Tab order?. MSDN Blog. Microsoft. Retrieved on September 24, 2006.
- ^ Russinovich, Mark (2005-07-24). Running Windows with No Services. Mark's Sysinternals Blog. Sysinternals. Retrieved on September 24, 2006.
- ^ Richter, Jeffrey (July 2000). Win32 Q&A: Handy Features in Windows, and Interlocked Functions. MSDN Magazine. Microsoft. Retrieved on September 24, 2006.
- ^ a b Microsoft PowerToys for Windows XP. Microsoft (2005-11-01). Retrieved on September 24, 2006.