viewport manager (to search/create viewport)
Bug #780572 reported by
Aneesh Kumar K.V
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ayatana Design |
Invalid
|
Undecided
|
Unassigned | ||
unity (Ubuntu) |
Opinion
|
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 |
Changed in unity: | |
status: | New → Incomplete |
Changed in unity (Ubuntu): | |
status: | New → Incomplete |
tags: | added: needs-design |
no longer affects: | unity |
Changed in unity (Ubuntu): | |
status: | Incomplete → Opinion |
Changed in ayatana-design: | |
status: | New → Invalid |
To post a comment you must log in.
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/ git.compiz. org/compiz/ plugins/ scalefilter/ log/
[2]http://