mudibo: Multiple Dialog Boxes for Multiple Monitors Dugald Ralph Hutchings, John Stasko Georgia Institute of Technology/GVU Center Atlanta, GA 30332 USA {hutch, stasko}@cc.gatech.edu ABSTRACT A general problem identified in recent research on multiple monitor systems is the placement of small windows such as dialog boxes and toolbars. These small windows could be placed on top of the application window or on a monitor next to the application window; different situations call for different placements. We present mudibo, a component of the window manager that alleviates this problem by initially placing a window in multiple locations simultaneously and subsequently allowing the user to easily interact with the window in a desired location. Additional important contributions of mudibo are that as a general technique it can be applied to a number of situations and windows beyond simple dialog boxes, exploits the additional screen space that multiple monitors provide to solve a specific problem with dialog box interaction, and is among the first research prototype UIs that explicitly account for multiplemonitor users. Author Keywords multiple monitors, window management, dialog box ACM Classification Keywords H.5.2 Information interfaces and presentation: User interfaces – GUI, Windowing systems INTRODUCTION AND MOTIVATION Over the last few years we have witnessed the rise in popularity of multiple-monitor computer systems. Such systems present an inexpensive way for a user to double, triple, or further increase the amount of screen real estate available to complete tasks. Several usage strategies for multiple-monitor systems have emerged. For example, Grudin discovered that additional monitors are not “additional space” but “partition digital worlds”: people rarely place windows across physical monitor boundaries [1]. However, some users do separate the windows of their applications, using one monitor for the main window and using another window for all of the tool windows [1]. Tool windows are not the only type of small windows that users typically encounter from applications in the standard window managers and operating systems. Among these small window types is the ubiquitous dialog box – a small window that allows a user to customize an application, alter or browse data in an application, view or change system settings, provide meta-information in an application, etc. In some cases, such as customizing an application, the ideal Copyright is held by the author/owner(s). CHI 2005, April 2 – 7, 2005, Portland, Oregon, USA. ACM 1-59593-002-7/05/0004. spot for a dialog box is on top of the main application window where interaction is already taking place. Interaction is likely to be brief and underlying data is not used, so occlusion of data is not a problem. In other cases, such as browsing or searching through data, the ideal spot for a dialog box is in a location other than on top of the main application window, which usually means on a separate monitor due to a combination of space constraints and users’ general avoidance of placing windows across physical monitor boundaries. It is difficult to predict a priori where any given dialog box should be placed. There are two system levels at which the assignments could be made: the window manager level and the application level. Since the window manager has no information about whether the dialog box is for changing settings, browsing data, or some other type of dialog box, determining the correct location could be difficult. If the decision is made at the application level, the burden on the application designer is heavy since the designer must not only acquire information of the monitor configuration of the user but also decide for every dialog box in the application what type of dialog box it is and where it should be placed. Even if the designer accomplished this task, there are chances that the designer made the wrong decision because different users may prefer different solutions. It is possible that an adaptive, intelligent approach could relieve the designer of this burden. However, even for a specific type of dialog box, it is possible that in some situations a user wants to place it in one location and in others another location. The adaptive algorithm would have to account for quite a large amount of the user’s context. mudibo is our proposed solution to the problem of correct placement of transient windows. The fundamental idea behind mudibo is breaking the assumption that a window can exist in at most one location; mudibo breaks the assumption by showing a window in multiple locations simultaneously. Although it is a prototype, mudibo emulates a component of the window manager level by monitoring system-wide window activity. When an application shows a transient window such as a dialog box, mudibo replicates the window on each of the monitors. After the user initiates interaction with one of the copies, mudibo automatically hides the other copies. This allows the user to select where the window should be placed each time it appears without introducing any additional interaction time than what is currently needed because the user would already navigate to the location where he or she desires to interact with it. Shortly we will give a number of examples for which this general technique could be and has been applied. Following those scenarios, we describe how the prototype has been implemented and then conclude with a discussion of related and future work. USAGE SCENARIOS In this section we will describe general scenarios, specific applications, and special situations for which mudibo can be useful. Although the examples come from our personal experiences, we hypothesize that the reader will have encountered one or more of the examples in his or her everyday interactions. Note that we will sometimes use the more general term window in place of dialog box. This is because a dialog box is just a one type of window, and mudibo is not necessarily restricted to dialog boxes. General Scenarios and Examples There are some times when a dialog box should be close-athand for interaction, and should be placed on top of the main application window. Take for example a dialog box in a web browser that alters privacy settings. Interaction in this dialog box likely has no relationship to any web pages being shown in the main browser window and was summoned because a user desired to check and alter the level of privacy in the browser. If this dialog box appears on a faraway monitor, then the user has to navigate quite a distance to change settings. mudibo alleviates this problem of navigation since if the dialog box appears elsewhere, then a copy is placed on the monitor where the main browser window resides. If the dialog box does appear in the correct location, mudibo places no additional burden on the user since the other copies automatically disappear once interaction begins on top of the main window. An example of an application for which mudibo can be useful is the Mozilla/Firefox web browser. Mozilla stores the most recent absolute coordinates of each dialog box in the application. If the main browser window is initially located on one monitor and subsequently moved to another monitor, or if multiple browser windows are located on multiple monitors simultaneously, mudibo ensures that each dialog box always appears on the monitor of interest to the user, whether directly on top of the browser or elsewhere. Indeed, there are times when a dialog box should ideally appear elsewhere. For example, consider any “find”-type of dialog box, such as a dialog box that allows the user to search through a document to find a specific word. Locating this dialog box on an alternate monitor allows the user to see the entire context of the found word without forcing the dialog box to move elsewhere. Microsoft Word is an example of an application that has a “find” type of dialog box. Word’s designers realized the importance of seeing the context of found words. The find box moves itself elsewhere if it occludes a found word in the document editor window. This action forces the user to constantly navigate to a new location to interact with the box. When located on an alternate monitor, the find dialog box never moves and thus allows the user to complete the searching or replacing task more quickly. Normally if the dialog box appears on the application window, the user must navigate to the dialog box and drag it to an alternate monitor. With mudibo, the user can navigate directly to the alternate monitor, immediately begin interaction, and avoid any additional navigation. Specific Applications There are two particular applications for which we have found mudibo to be quite useful. One such application is instant messaging. In multiple-monitor systems, there is a danger that a user will miss the arrival of a new instant message if it appears on a monitor other than the one on which the user is currently interacting. Furthermore, knowing which monitor the user is viewing can be very difficult without an eye-tracker: even though the focus window might be located on one monitor, the user might be looking at another monitor. Even with an eye-tracker, the user might have risen for a moment to stretch, answer the telephone, etc. mudibo helps to ensure that the user sees the new instant message by presenting it on all of the monitors simultaneously (Figure 1). mudibo also allows the user to easily select which monitor is appropriate for the window. If the message will be dealt with in short order, the user might elect to interact with it on the same monitor as the window with which they are working. If the message will lead to a longer conversation, the user might elect to Figure 1. mudibo facilitates the appearance of a new incoming instant message on all three monitors of a multiple-monitor system. Monitor resolution has been decreased for visual effect. Typically, IM windows are much smaller and thus easier to miss. interact with it on an alternate monitor so as not to occlude the user’s main task. A disadvantage of mudibo could be that a user does not want to deal with instant messages when the user is heavily focused on a task. We discuss how this preference can be addressed in the future work section. Many IM clients also show a notification when a user comes online or goes offline and mudibo replicates those notification windows as well. If a multiple-monitor user is interested in seeing notifications, mudibo can decrease the chances that the user will miss them. Another application for which we have found mudibo to be useful is keyboard window switching. Since mudibo is implemented in MS-Windows, we will discuss the method of pressing <alt>+<tab> to switch windows. When a user presses <alt>+<tab>, a small window showing icons and titles appears and allows the user to switch to another window. As it is currently presented, this window appears on only one monitor. mudibo replicates this window on all of the monitors, which relieves the user of the task of first finding the <alt>+<tab> window before finishing the switch. We also mention here that some video cards hide the fact that a user has multiple monitors and present the screen space as one large monitor. This often has the effect of placing windows (such as the <alt>+<tab> window) across physical monitor boundaries, which can be difficult to read or otherwise undesirable. In our specific implementation of mudibo, we allow the user to define the monitor boundaries. mudibo assesses when an application places a window across monitor boundaries and replicates the window on each monitor (though note that methods such as wideband displays can also address this [4]). Before discussing two additional specific scenarios in which mudibo has been useful, we pause to remind the reader of mudibo’s primary objective: to relieve the application designer of trying to guess the “correct” location for each small subwindow in the application. In each of the scenarios described above, the application could have made a decision to place a dialog box in an ideal location. Our simple technique is powerful in that it (1) relieves application designers from the task of guessing the correct location, (2) automatically hides the incorrect options, and (3) can be used in many, if not most, situations of dialog box placement. Special Situations We have found two special situations where this technique has been useful. One situation is when users (attempt to) close a window (call it X) and switch focus to a window in another monitor. Later on, the user finds that X is still open and discovers that the application has requested that the user take further action before allowing X to close (usually to save or discard changes to the data in X). At that time, the user might not remember the desired response to the question posed by the dialog box. With mudibo, the application’s request to save or discard changes immediately appears on all of the monitors and allows the user to answer the question while the context of the application is still fresh in his or her memory. The other situation where mudibo has been useful is assisting with “trapped” dialog boxes. Sometimes modal dialog boxes (i.e., those that require interaction and dismissal before the main application window can retain focus) accidentally appear behind the main application window. This causes a trap because the modal dialog box refuses to let the main application window have focus, but that main window must be moved in order to dismiss the dialog box underneath. mudibo provides a “hook” or “pointer” to the dialog box by replicating it on different monitors, thus allowing the user to easily relocate the dialog box, interact with it, and finally dismiss it. SYSTEM IMPLEMENTATION The mudibo prototype is implemented as an application in Visual C#.NET and runs on any modern Microsoft Windows operating system that has the .NET Framework installed. It uses the P/Invoke platform to access a variety of system resources such as synthetic input generation, window management functions and information, multiplemonitor information, and graphics functions including PrintWindow, which gives a full-copy bitmap of a window. At startup, mudibo collects multiple monitor information or uses user-defined coordinates in cases where video cards hide the details of multiple monitors from Windows. It then monitors the window message queue for the events of window creation and showing. When a window is shown, mudibo acquires information about the window including its style bits, which generally define whether a window is a dialog box, tool window, regular window, etc. When the style bits match the definition of a dialog box or other window of interest, mudibo uses PrintWindow to capture a full bitmap of the window (call it W). For each monitor i, mudibo creates a topmost “placeholder” window Pi of the exact same size of W and places the captured image of W as its background. To the user, it appears as if each monitor has a copy of W. When a user clicks on any Pi, mudibo moves W underneath Pi, hides all of the Pi’s, and “sends” the mouse click to W by generating synthetic input. One specific piece of code worth mentioning is the implementation of mudibo with respect to the <alt>+<tab> switching window. Windows generates a special window management event each time the <alt>+<tab> window is created and shown but not on subsequent key presses. Upon seeing this event, mudibo sets a keyboard hook that allows it to be notified on each additional key press. Then each time the user presses <alt>+<tab>, mudibo re-calls the PrintWindow function and updates the image of each Pi. RELATED WORK The concept of mudibo is based on previous work regarding multiple monitors. As mentioned, Grudin’s qualitative work found that users tend to place windows entirely within monitor boundaries [1], justifying the placement of windows on each monitor and assessing whether dialog boxes were placed across monitor boundaries. Hutchings et al. also observed this trend in their quantitative study comparing the window management practices of singlemonitor and multiple-monitor users [2]. Mackinlay and Heer developed a technique to make it easier to interact with windows across physical boundaries [4], but they were more concerned with reading, interpreting, and interacting with images and imaged-based visual interfaces than with interacting with generally text-heavy dialog boxes. Another important aspect of Grudin’s work is that he demonstrated that different usage strategies for multiple monitors have emerged. In particular, he found that some users chose to maximize the amount of space that some applications had to display data by moving tool windows to other monitors [1]. That finding directly supports the idea that some subwindows belong near the main application window whereas others belong farther away; mudibo addresses this homogeneity in preferences by providing the initial option to place windows anywhere. mudibo is closely related to WinCuts [6]. That system allows users to manually select an arbitrary region of a window and replicate the region on another display on the user’s system or across a network on a friend’s display. mudibo departs from WinCuts in that it is (1) automatically replicates contents and (2) captures only full windows. Another closely related system is Ametista, which uses window image capture to transform a 2D window manager into a 3D window manager [5]. Ametista is implemented on top of the X-Windows-like Mac OS X system, showing that the technique of using window images for actual interaction is not limited to just MS-Windows window systems. In fact mudibo should be relatively simple to implement in the Ametista system, further demonstrating its power as a general windowing technique. FUTURE WORK To this point we have mostly discussed the advantages of the current mudibo prototype, so we now discuss some disadvantages and opportunities for improvement. With respect to assisting in the interaction with instant messages, users might prefer to leave instant messages where they appear to minimize distraction to a current task. There might also be other specific types of dialog boxes or windows that users would prefer not to appear on all of the monitors such as material that is private or sensitive in nature (see Hutchings and Stasko for more discussion on this important aspect of window management [3]). We are considering options such as smaller indicators on the other monitors, using change-blindness for notification-style windows like IMs, allowing users to naturally specify types of windows that they prefer not be replicated, and possibly combinations of such techniques. We have found one particular type of dialog box to be problematic: progress indicators such as those that inform the user how much of a file has been downloaded or how much of an application has been installed. Since there is no interaction with these dialog boxes, replicating their contents across monitors can be annoying because it forces the user to take additional steps to interact when such steps are usually unnecessary. Furthermore a synchronization problem exists because each placeholder window is only an image of the dialog box and is thus likely to convey an inaccurate picture of the progress. This “synch issue” could be assuaged with an actual window manager implementation rather than the use of a separate application, where “live windows” could more easily be maintained. In the current prototype, options include refreshing the copies every few seconds or monitoring for the source’s specific window repaint events and refreshing each time the source window is redrawn. We also need to address various accessibility concerns. For example, there is currently no supported way to use mudibo with only a keyboard. One straightforward solution is to assign keys to monitors to allow initial placement by pressing a monitor’s corresponding key. Formal evaluations of the mudibo prototype will clearly be beneficial. We feel that mudibo can help users’ interactions to be more efficient by reducing necessary navigation, but it is possible that the reduction is quite small. Perhaps a stronger benefit of mudibo is the potential to decrease user frustration and reduce the amount of perceived navigation necessary for interaction with multiple-monitor systems (as identified by Grudin [1]). As such, the first set of evaluations will probably involve deploying the tool to end users. We will log their actions to try to understand navigation patterns, but focus more on interviews and other researcher-participant interactions to assess how mudibo has altered the way that users interact with multiple monitor systems. That information could be quite useful in building on the small amount of research to date that assesses how people employ multiple monitors. REFERENCES 1. Grudin, J. Partitioning digital worlds: focal and peripheral awareness in multiple monitor use. Proc. CHI 2001, ACM Press, 458 – 465. 2. Hutchings, D. R., Smith, G., Meyers, B., Czerwinski, M., and Robertson, G. Display space usage and window management operation comparisons between single monitor and multiple monitor users. Proc. Advanced Visual Interfaces 2004, ACM Press, 32 – 39. 3. Hutchings, D. R. and Stasko, J. Revisiting display space management: understanding current practice to inform next-generation design. Proc. Graphics Interface 2004, Canadian Human-Computer Communications Society, 127 – 134. 4. Mackinlay, J. D. and Heer, J. Wideband displays: mitigating multiple monitor seams. CHI 2004 Extended Abstracts, ACM Press, 1521 – 1524. 5. Roussel, N. Ametista: a mini-toolkit for exploring new window management techniques. Proc. Latin American Conf. on HCI 2003, ACM Press, 117 – 124. 6. Tan, D. S., Meyers, B., and Czerwinski, M. WinCuts: manipulating arbitrary window regions for more effective use of screen space. CHI 2004 Extended Abstracts, ACM Press, 1525 – 1528.