TaskmanagerLauncherSpec

From AWN Wiki

Jump to: navigation, search

Contents

[edit] Features

Note: Please keep discussion of this spec on the Talk page.

[edit] Possible User Visible Features

  1. Ability to separate Launchers from Tasks.
  2. (Discuss) The ability to arbitrarily place individual tasks and launchers.
  3. Individual Launchers and multi-launchers (shelves or other moniker).
  4. Ability to for tasks to group related windows.
  5. Default Task Group will be good but there will need for additional user customizable methods. (See Task Grouping).
  6. Launchers and Tasks will have associated desktop files. Tasks desktop files will be automatically generated and associated with a window that does not match with an existing Launcher or Task (A proposed method of associating is discussed below)
  7. Ability to ungroup grouped windows.
  8. Mechanism(s) to mark a launcher as a launcher.
  9. Mechanism(s) to mark a launcher as a multi-launcher.
  10. Mechanism(s) to mark launcher/tasks as currently managing multiple windows.
  11. Launcher/Tasks currently managing multiple windows should have an option to show one specific icon or to show the icon of the most recently active window.
  12. Integrate libwnck menu effectively.
  13. (Discuss) Ability to override the libwnck provided icons. Should they be overridden by default or not if we have an icon in the desktop file? Note the the obvious answer is yes except for cases where the app changes the icon to indicate various states... is it possible to detect these apps effectively (probably not?) .
  14. (Discuss) A "Start at login" menu item.

[edit] Launchers

A launcher is an permanent icon that allows the launch of application.

[edit] Single Launcher

A launcher dedicated to launching a specific application. A launcher MAY also be configured to manage application windows ( manage mode should be on by default).

[edit] Multi Launcher

A launcher able to launch one or more applications. Normally implemented in a drawer like method. A multi launcher MAY also be configured to manage application windows (manage mode should be on by default). (See Xfce Panel for one implementation.)

[edit] Tasks

A task is an icon that is of a transitory nature that appears to represent a application window when there is no Launcher that is available to manage said window.

[edit] Window Grouping

Window Grouping is the ability of a launcher or task to group (and manage) more than one matching window (see Task matching).

Window Grouping should be available for multi-launchers, single launchers and tasks. The ability to distinguish between open tasks and available launchers in multi-launcher can be achieved in a variety of ways (Discuss).

Grouping should be available as an option. The default behaviour should probably be one window per task. In the case of a launcher it will needed to be decided if the first matching window should be managed by the Launcher or if a new task icon should be created.

[edit] Non-Grouping Behaviour

Mouse buttons:

Left Button for Tasks and Single Launcher in managing mode: minimize/restore.

Left Button for Single Launcher in non-managing mode: launcher.

Left Button for Multi-launcher: open drawer.

Middle button: Launch. In the case of a Multi-launcher the application that should be launched needs to be discussed. Note that the launch mode can (and should) be implemented for tasks (though in some cases it may need to be configured once by the user to work properly).

Right Button for all: Context menu.

Scroll wheel: (Discuss) For a multi-launcher scroll through the available launchers showing their respective icons. For single launchers and tasks.

[edit] Grouping Mode

The AwnTitle should reflect the Title of the most recently activated window.

Possible options for the icon displayed include the icon for the last activated window or a (user) specified icon.

Left Button for Tasks and Single Launcher in managing mode: minimize/restore.

Left Button for Single Launcher in non-managing mode: launch.

Left Button for Multi-launcher: open drawer.

Middle button: Launch. In the case of a Multi-launcher the application that should be launched needs to be discussed. Note that the launch mode can (and should) be implemented for tasks (though in some cases it may need to be configued once by the user to work properly).

Right Button for all: Context menu.

Scroll wheel: Scroll through (activating) the various windows that are being managed.

[edit] Task Matching

The heuristics by which tasks are associated with launchers.

[edit] Default Matching Implementation

There are at least two possible methods that can be used by default.

The gold standard is to match the PID of window against the process ID of a process launched by a launcher or task. This unfortunately is not always possible due to the use of scripts, forking and the fact that tasks can be launched in many different ways outside the control of awn.

The second method that can be used is an exact match of the command line of the process against that recorded in the desktop file associated with the Launcher or Tasks

[edit] Regular Expression Matching Implementation

Customizable grouping should be implemented using regex matching of either the process command line and the window title. Other matching properties can be considered. This should allow matching for inclusion and exclusion.

A convenience feature would to be able to select a existing window and generate an appropriate regex for that window.


[edit] Implementation of Desktop Files and Associating to Windows

Personal tools