viewport manager (to search/create viewport)

Reported by Aneesh Kumar K.V on 2011-05-10
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ayatana Design
Undecided
Unassigned
Unity
Wishlist
Unassigned
unity (Ubuntu)
Wishlist
Unassigned

Bug Description

This is actually a wishlist. It would be nice to have a viewport manager that can search viewport by names and only display the matching view ports. If there is no matching viewport it shows a viewport with no windows and on enter create new viewport. Any viewport that doesn't have windows gets deleted by default. If we have two viewport with name search1 and search2 typing "se" will list both the viewport as as we complete the names the result will only show matching viewports. I guess this will be a great usablility enhancment to viewport usage.

Changed in unity:
importance: Undecided → Wishlist
Changed in unity (Ubuntu):
importance: Undecided → Wishlist
Sam Spilsbury (smspillaz) wrote :

So I see this breaking down into a few parts.

First of all, to assign names to viewports, have a look at workspacenames[1]. That provides an interface in ccsm to assign a name to a workspace. What you'll probably want to do is change that so that pressing a keybinding provides text entry to change the name of a workspace and then pressing another keybinding allows you to search them. Have a look at scalefilter[2] on how to do text entry[2].

Since the number of workspaces in compiz is handled as an option, you'll need to change the option in core to do that. That's just a case of something like

CompOption &opt = screen->getOption ("hsize");
CompOption::Value v;

v.set ((int) horizontal_workspaces);

screen->setOption ("hsize", opt);

CompOption &opt = screen->getOption ("vsize");
CompOption::Value v;

v.set ((int) vertical_workspaces);

screen->setOption ("hsize", opt);

Tracking which windows are where is pretty easy, just check the window positions and hook ::moveNotify () to read window position changes. Then you can drop empty workspaces.

However note that you can't remove an individual workspace, so if you remove one in between two windows and shrink the number of available workspaces then you'll have to shift windows on adjacent workspaces around so that they're still visible.

[1]http://git.compiz.org/~maniac/workspacenames/commit/
[2]http://git.compiz.org/compiz/plugins/scalefilter/log/

Alex Launi (alexlauni) on 2011-06-03
Changed in unity:
status: New → Incomplete
Changed in unity (Ubuntu):
status: New → Incomplete
tags: added: needs-design
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers