Window cleanup via desktop icon
Provided is a system and method that enables a user to manage a computer desktop by eliminating clutter. An enhanced desktop tool enables the user to select and/or define rules for managing the windows in the user's desktop. In some embodiments, a method of desktop management is based upon the mix of applications present on the desktop or based upon the preferences of the user as learned by the corresponding GUI by means of observing which windows the users tends to minimize. Possible schemes for managing a desktop include, but are not limited to: 1) All widows are minimized (current method); 2) All windows except last accessed window are minimized; 3) Secondary windows of all applications are minimized; 4) All windows except those of primary application are minimized; and 5) Windows are minimized based upon user-defined heuristics.
The present invention relates generally to computer interfaces and, more specifically, to a method for managing windows on a computer desktop.
BACKGROUND OF THE INVENTIONWhen computers were first invented, instructions, or programs, and data were entered manually via a series of switches. Soon, program and data entry was performed either by means of punch cards or keyboards coupled to the computing devices. Certainly, one of the primary advances in the computing arts has been the introduction of the graphical user interface (GUI). A GUI enables a user to enter data and commands and to execute programs by means of a keyboard and a computer mouse. In addition, a GUI enables a user to manage several executing programs at one time.
The Windows operating system (OS), published by the Microsoft Corporation of Redmond, Wash., is one example of a GUI that enables users easy access to multiple running programs. In Windows, a display, or “desktop,” includes icons, or “buttons,” for programs that are either executing or may be executed and graphical displays, or “windows,” for programs that are active.
As computers have increased with respect to both speed and memory, a user is able to efficiently run more and more programs simultaneously. Although this improves user efficiency, one issue that arises is desktop clutter. In other words, as additional programs are executed, more and more windows are added to the desktop. Users must sift through open windows to access any one particular window. One way to address desktop clutter is to minimize unused windows, i.e. graphically request that a particular window be displayed as an icon rather than as a full window. Windows and Windows XP provide a desktop tool to clear the clutter but the tool typically minimizes all current windows. Although this method clears the desktop, the tool does not discriminate between windows that the user is currently using and those that the user would like to minimize.
SUMMARY OF THE INVENTIONProvided is a system and method that enables a user to manage a computer desktop by eliminating clutter. An enhanced desktop tool enables the user to select and/or define rules for managing the windows in the user's desktop. The rules are selected or defined in one of several manners. For example, a user can choose desktop management options via a desktop properties dialog. In some embodiments, a method of desktop management is based upon the mix of applications present on the desktop or based upon the preferences of the user as learned by the corresponding GUI by means of observing which windows the users tends to minimize.
There are a number of possible schemes for managing a desktop. For example, one or a combination of the following options may be selected:
-
- All widows are minimized (current method);
- All windows except last accessed window are minimized;
- Secondary windows of all applications are minimized;
- All windows except those of primary application are minimized; and
- Windows are minimized based upon user-defined heuristics.
Of course, the policies listed above are only examples; the claimed subject matter is flexible enough to include many different techniques. A user is able to define rules, such as, but not limited to, rules based upon different criteria for different types of applications. For example, an application that has been designated as a primary application may be have a minimization strategy based upon one time interval and a non-primary application may be subject to a minimization strategy based upon another time interval.
This summary is not intended as a comprehensive description of the claimed subject matter but, rather, is intended to provide a brief overview of some of the functionality associated therewith. Other systems, methods, functionality, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description.
BRIEF DESCRIPTION OF THE FIGURESA better understanding of the present invention can be obtained when the following detailed description of the disclosed embodiments is considered in conjunction with the following figures.
Although described with particular reference to the Windows operating system and desktop management system, the claimed subject matter can be implemented in any desktop management system in which window optimization and management is desirable. Those with skill in the computing arts will recognize that the disclosed embodiments have relevance to a wide variety of computing environments in addition to those described below. In addition, the methods of the disclosed invention can be implemented in software, hardware, or a combination of software and hardware. The hardware portion can be implemented using specialized logic; the software portion can be stored in a memory and executed by a suitable instruction execution system such as a microprocessor, personal computer (PC) or mainframe.
In the context of this document, a “memory” or “recording medium” can be any means that contains, stores, communicates, propagates, or transports the program and/or data for use by or in conjunction with an instruction execution system, apparatus or device. Memory and recording medium can be, but are not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus or device. Memory an recording medium also includes, but is not limited to, for example the following: a portable computer diskette, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), and a portable compact disk read-only memory or another suitable medium upon which a program and/or data may be stored.
One embodiment, in accordance with the claimed subject, is directed to a programmed method for managing the appearance of a computer display. The term “programmed method”, as used herein, is defined to mean one or more process steps that are presently performed; or, alternatively, one or more process steps that are enabled to be performed at a future point in time. The term programmed method anticipates three alternative forms. First, a programmed method comprises presently performed process steps. Second, a programmed method comprises a computer-readable medium embodying computer instructions, which when executed by a computer performs one or more process steps. Finally, a programmed method comprises a computer system that has been programmed by software, hardware, firmware, or any combination thereof, to perform one or more process steps. It is to be understood that the term “programmed method” is not to be construed as simultaneously having more than one alternative form, but rather is to be construed in the truest sense of an alternative form wherein, at any given point in time, only one of the plurality of alternative forms is present.
Turning now to the figures,
Attached to CPU 102 is a data storage component 112, which may either be incorporated into CPU 102 i.e. an internal device, or attached externally to CPU 102 by means of various, commonly available connection devices such as but not limited to, a universal serial bus (USB) port (not shown). Data storage 112 is illustrated storing several exemplary applications, including a first application, or “App—1,” 114 and a second application, or “App—2,” 116. Both App_1 114 and App_2 116 are used for the purpose of illustration only. It should be noted that a typical computing system may include many applications, but for the sake of simplicity only two are shown.
Also stored on data storage 112 is an operating system (OS) 120 and a Desktop Management Tool (DMT) 118 that implements the claimed subject matter. Although shown as a separate module, in an alternative embodiment, DMT 118 may be incorporated into OS 120. DMT 118 is initiated either by a user of computing system 100 or computing system 100 is configured to execute DMT 118 automatically. In this example, DMT 118 executes on CPU 102.
CPU 102 is controlled by operating system (OS) 120, which in this example includes a graphical user interface (GUI), illustrated below in conjunction with
A toolbar 132 extends along the bottom of desktop 106 from the left edge to the right edge of the screen associated with display 104. Within toolbar 132 are a “Start” button 134 and two toolbar separators 136 and 140. In between toolbar separators 136 and 140 is an area that will be referred to a “Quick Launch” area. Quick Launch area displays icons that initiate corresponding applications or utilities when the user positions a cursor (not shown) over a particular icon and presses, or “clicks,” a button (not shown) on mouse 110 (
In
App_1 window_1 144 includes two elements, an element_1 156 and an element_2 158. Element_2 158 is the active element in app_1 window_1 144, or, in other words, has “focus,” as evidenced by the fact that the border of element_2 158 is bolder than the border of element_1 156. The significance with respect to the claimed subject matter of which of the windows and elements are active is described in more detail in conjunction with examples below. Finally, app_1 window_2 146 includes an element_3 160 and app_2 window_1 148 includes an elment_4 162 and an element_5 164.
In this example, the user has initiated DMT 118 by positioning a cursor over DMT button 138 and clicking on mouse 110 (
In
The specific windows that are iconified depend upon prior user input and rules defined by a user for DMT 118.
It should be noted that DMT 118 may be configured with many possible rules other than those illustrated in
-
- Keep all windows of primary (most recently accessed) application open;
- Keep primary window of secondary application open if accessed with a set period of time, e.g. N minutes;
- Iconify all secondary windows of secondary applications;
- Iconify all windows outside of a second period of time, e.g. X minutes;
- Iconify all windows outside of a third period of time, e.g. N+X minutes.
Those with skill in the computing arts should appreciate that there are many possible configurations and sets of rules for DMT 118 that can be applied by employing the techniques of the claimed subject matter. For the sake of simplicity, the following description is limited to two such examples, i.e. rules associated withFIGS. 2-4 and time-based heuristic rules associated withFIG. 8 and explained above.
The configuration of
As mentioned above, in this example DMT 118 is executing in the background of CPU 102 (
Attribute section 202 includes a dmtID attribute 208, a currentWindows attribute 210, a primaryTime attribute 212, a secondaryTime attribute 214, a timeStamp attribute 216 and a currentConfig attribute 218. DmtID attribute 208 is a variable of type DMTCObjectID that contains a reference to the particular instance of object 200. Each instance of object 200 has a unique value for attribute 208 that allows each instance to be uniquely identified. It should be noted that the following description of memory object 200 employs examples from a time-based heuristic configuration of DMT 118 (
CurrentWindows attribute 210 is a variable of type Vector that stores a list of windowManagmentObjects (WMOs) (not shown), each of which stores information relating to windows either displayed or minimized on a corresponding desktop. Types of information stored in a WMO includes, but is not limited to, an ID to uniquely identify the corresponding window, an application associated with the window, time information specifying the amount of elapsed time since the window and the window's corresponding application were last accessed, and configuration information including whether or not the window is exempt from the window management policies of DMT 118. In this example, currentWindows 210 would include variables that store identifying and configuration information on the windows of desktop 106 (
PrimaryTime attribute 212 is a variable of type Integer that stores the number of seconds that DMT 118 allows to elapse before minimizing windows that are associated with the most recently accessed application. For example, if app_1 114 (
Timestamp attribute 216 is a variable of type TimeInfo that stores information corresponding to the times that DMT 118 was executed, instantiated, how often DMT 118 should execute and so on. CurrentConfig attribute 118 is a variable of type ConfigDataObject that stores information concerning the particular window management method currently in use, which as explained above, is a time-based heuristic method in this example.
Method section 204 includes a changeConfig method 220, an updateDesktop method 222, an addWindow method 224, a deleteWindow method 226 and a configureDMT method 228. ChangeConfig method 220 is called when a user desires to change the particular management protocol implemented by DMT 118. As explained above, there are many possible protocols that DMT 118 may implement. In this example, method 220 is called with one parameter, “newConfig,” a variable of type Integer that corresponds to a particular protocol.
UpdateDesktop method 222 is called to execute the window management processes (see
DeleteWindow method 226 is called to remove a window from currentWindows attribute 210 when the corresponding window has been terminated. Among other actions, method 226 removes a reference to the subject window from currentWindows attribute 210. Method 226 is called with one parameter, an “oldWindow” parameter of type WindowID that uniquely identifies the window being deleted. Finally, configureDMT method is called to setup currentConfig attribute 218 so that DMT 118 has ready access to information related to a selected window management scheme. Attribute 228 is called with one parameter, a “newDMT” parameter of type DMTCObject that uniquely identifies the DMT being configured.
During a “Process Desktop Management (DM) Rules” block 256, process 250 calls configureDMT method 228 to set up the instantiation of DMT 118 according to the parameters stored in the configuration file retrieved during block 254. Among the actions taken during block 256 is the inclusion of DMT button 132 (
During an “Auto Execute?” block 260, process 250 determines whether or not DMT 118 is configured to execute automatically or only when DMT button 132 is clicked. If DMT 118 is configured to execute automatically, then process 250 proceeds to an “Execute DMT” block 262 during which an Execute DMT process 300 (see
During a “Retrieve Desktop Management (DM) Objects” block 306, process 300 retrieves the information stored in DMTConfig object 200, for example currentWindows attribute 210 (
If process 300 determines during block 308 that all windows on desktop 106 are represented, process 300 proceeds to DT object block 312 and retrieves information about a window represented in currentWindows attribute 210. With respect to the window information retrieved during block 312, during a “Implement DM Policy” block 314, process 300 applies the current window management policy pointed to by the information stored in currentConfig attribute 218, which was retrieved during block 306. The processing of an exemplary time-based heuristic policy is described in detail below in conjunction with
During a “More Windows?” block 316, process 300 determines whether or not there are any windows represented in currentWindows attribute 210 that have not be processed during this iteration of process 300. If more windows remain to be processed, process 300 returns to block 312, retrieves information about the next unprocessed window and processing continues as described above. If during block 316 process 300 determines that all windows on desktop 106 have been processed, then control proceeds to an “One Time Execution?” block 318 during which process 300 determines whether or not DMT 118 is configures to execute automatically or only when a user or program initiates DMT 118, for example by clicking on DMT button 132 (
If during block 318 process 300 determines that DMT 118 is configured to execute continuously rather than on a one-time basis, control proceeds to a “Wait For Input” block 320 during which process 300 waits for the next window event. Then, process 300 returns to Scan Desktop block 304 and processing continues as described above. If during block 318 process 300 determines that DMT 118 is configured as a one-time event, control proceeds to an “End Execute DMT” block 329 in which process 300 is complete. Finally, an asynchronous OS Interrupt 322 may also cause process 300 to terminate in block 329. Although, interrupt 322 is typically employed to terminate execution of DMT 118 when DMT 118 is configured to operate continuously, interrupt may also be employed any time during execution of process 300 in response to a CPU 102 (
Process 350 starts in a “Begin Manage Window” block 352 and control proceeds immediately to a “Retrieve WMO” block 354. During block 354, process 350 retrieves a WMO corresponding to the subject window or, in this example, window 144. In an alternative embodiment, information about the subject window may be stored in a database accessible by DMT 118. Those with skill in the computing arts should appreciate that are numerous methods of storing and retrieving information about computing components such as windows and the configuration of DMT 118.
During a “Window Minimized?” block 356, process 350 determines whether or not app_1 window_1 144 is minimized, i.e. iconified, or on display in desktop 106 (
If, during block 356, process 350 determines that app_1 window_1 144 is already displayed on desktop 106, control proceeds to a “Calculate Heuristics” block 362. During block 362, process 350 calculates, in the time-based heuristic example employed here, statistics relevant to the current configuration and governing rules of DMT 118 as defined by currentConfig attribute 218 (
During a “Limit Exceeded?” block 364, process 350 determines whether or not the heuristics calculated during block 362 represent a condition under the current configuration and rules of DMT 118 in which window 144 is to be minimized. If so, process 350 proceeds to a “Minimize Window” block 366 during which the subject window is minimized, i.e. window 144 is replaced on desktop 106 by icon_3 174 in this example. During an “Update WMO” block 368, process 350 updates any data associated with DMT 118 and/or window 144 relevant to the implementation of the claimed subject matter, regardless of where and how such data is stored. Finally, process 350 proceeds to an “End Process Window” block 369 in which process 350 is complete.
While the invention has been shown and described with reference to particular embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and detail may be made therein without departing from the spirit and scope of the invention, including but not limited to additional, less or modified elements and/or additional, less or modified blocks performed in the same or a different order.
Claims
1. A method for managing for managing a computer application desktop, comprising:
- defining a set of rules for managing a plurality of windows on a desktop;
- tracking application window activity corresponding to each individual window of the plurality of windows;
- receiving a command to apply the set of rules;
- applying the set of rules individually to each window of the plurality of windows; and
- managing each individual window based upon an application of the set of rules as the rules apply to each individual window and the tracked application window activity.
2. The method of claim 1, further comprising:
- correlating a first subset of the plurality of windows to a first application;
- assigning a first time value to the first application; and
- managing each individual window of the first subset based upon the first time value.
3. The method of claim 2, further comprising:
- detecting activity associated with the first application; and
- transmitting the command to apply the set of rules when activity is detected.
4. The method of claim 2, further comprising:
- correlating a second subset of the plurality of windows to a second application, wherein the second subset is distinct from the first subset;
- assigning a second time value to the second application; and
- managing each window of the second subset based upon the second time value.
5. The method of claim 4, wherein the first application is an application that is active on the desktop and the second application is an application that is non-active on the desktop.
6. The method of claim 1, wherein the set of rules are user defined time-based heuristics.
7. The method of claim 1, further comprising:
- detecting window activity associated with the plurality of windows; and
- transmitting the command to apply the set of rules when window activity is detected.
8. A system for managing for managing a computer application desktop, comprising:
- a set of rules for managing a plurality of windows on a desktop;
- logic for tracking application window activity corresponding to each individual window of the plurality of windows;
- logic for receiving a command to apply the set of rules;
- logic for applying the set of rules individually to each window of the plurality of windows; and
- logic for managing each individual window based upon an application of the set of rules as the rules apply to each individual window and the tracked application window activity.
9. The system of claim 8, further comprising:
- logic for correlating a first subset of the plurality of windows to a first application;
- a first time value corresponding to the first application; and
- logic for managing each individual window of the first subset based upon the first time value.
10. The system of claim 9, further comprising:
- logic for detecting activity associated with the first application; and
- logic for transmitting the command to apply the set of rules when activity is detected.
11. The system of claim 9, further comprising:
- logic for correlating a second subset of the plurality of windows to a second application, wherein the second subset is distinct from the first subset;
- a second time value corresponding to the second application; and
- logic for managing each window of the second subset based upon the second time value.
12. The system of claim 11, wherein the first application is an application that is active on the desktop and the second application is an application that is non-active on the desktop.
13. The system of claim 8, wherein the set of rules are user defined time-based heuristics.
14. The system of claim 8, further comprising:
- logic for detecting window activity associated with the plurality of windows; and
- logic for transmitting the command to apply the set of rules when window activity is detected.
15. A computer programming product for managing for managing a computer application desktop, comprising:
- a memory,
- a set of rules, stored on the memory, for managing a plurality of windows on a desktop;
- logic, stored on the memory, for for tracking application window activity corresponding to each individual window of the plurality of windows;
- logic, stored on the memory, for receiving a command to apply the set of rules;
- logic, stored on the memory, for applying the set of rules individually to each window of the plurality of windows; and
- logic, stored on the memory, for managing each individual window based upon an application of the set of rules as the rules apply to each individual window and the tracked application window activity.
16. The computer programming product of claim 15, further comprising:
- logic, stored on the memory, for correlating a first subset of the plurality of windows to a first application;
- a first time value, stored on the memory, corresponding to the first application; and
- logic, stored on the memory, for managing each individual window of the first subset based upon the first time value.
17. The computer programming product of claim 16, further comprising:
- logic, stored on the memory, for detecting activity associated with the first application; and
- logic, stored on the memory, for transmitting the command to apply the set of rules when activity is detected.
18. The computer programming product of claim 16, further comprising:
- logic, stored on the memory, for correlating a second subset of the plurality of windows to a second application, wherein the second subset is distinct from the first subset;
- a second time value, stored on the memory, corresponding to the second application; and
- logic, stored on the memory, for managing each window of the second subset based upon the second time value.
19. The computer programming product of claim 15, wherein the set of rules are user defined time-based heuristics.
20. The computer programming product of claim 15, further comprising:
- logic, stored on the memory, for detecting window activity associated with the plurality of windows; and
- logic, stored on the memory, for transmitting the command to apply the set of rules when window activity is detected.
Type: Application
Filed: Jan 30, 2006
Publication Date: Aug 2, 2007
Inventor: James McArdle (Austin, TX)
Application Number: 11/343,191
International Classification: G06F 3/00 (20060101);