Minimode and other UI changes

Registered by Thiago Teixeira

1) Some people would like Cardapio to be smaller
2) Some people use Cardapio in a panel/dock that is placed on the bottom edge of the window

This blueprint is where we will discuss how to best address these users.

Blueprint information

Not started
Needs approval
Series goal:
Milestone target:

Related branches



[tvst 2010-10-17]

Here's what I have in mind. To avoid making several UI files, duplicating code and effort, we instead modify the existing UI so that there are 4 search bars, only one of which can be visible at a time. The search bars are placed like this:

Searchbar1 | Searchbar2
Categories | Apps
Searchbar3 | Searchbar4
Session buttons


Then, if the Cardapio applet is on the top half of the screen, Searchbar1 is shown. If on the bottom half, Searchbar3 is shown.

Cardapio can also be configured to hide the category labels (minimode) to save space. In this mode, the left side of Cardapio becomes about as small as the icons on the buttons, and the searchbar moves to the right side of Cardapio.


This translates to the following pseudocode

If in minimode:
- hide category labels and resize left half of Cardapio
- if on top half of the screen: show Searchbar2
- if on bottom half: show Searchbar4

If note in minimode:
- Show category labels
- if on top half of the screen: show Searchbar1
- if on bottom half: show Searchbar3

[keiran 2010-10-17]

Two things.

One - I would clarify the condition that determines the search bar placement (a choice between top and bottom). Because the main window positioning algorithm works as such:

- if there's place for Cardapio window near given (x, y) point, where the point is treated as the upper left corner of the window, put it there
- if there's not enough space on either x or y axis, where the point is defined as above, for the Cardapio window, the window will be rotated over the, accordingly, x = 0 or y = 0 axis; of course, if there's such need, the window can be rotated over both axes at the same time (like show-near-mouse in the bottom right corner of the screen)

Knowing this, we can safely say that the bottom search bar should appear when there was the y = 0 rotation.

Two - I'm not sure whether turning the left panel to minimal layout is better than what Jan has proposed. I would probably need to see at least a mockup of your proposition.

[tvst 2010-10-17]

I think it's "better" in two important respects:

1) It allows for more icons to show at a time, since Cardapio is larger vertically than horizontally
2) It is *much* simpler to code

Oh, and I agree with you that the position of the search bar can be determined using the same code that already determines Cardapio's position/rotation.

[jancborchardt 2010-10-18]
Nice – I always meant for the search bar to be placed variably (nearest to the cursor) but apparently never said it. ;)

As Pawel already mentioned, I am not sure about the categories on the left being squeezed – but I understand Thiago’s reasoning and would like to see how it performs in practice. It is also less confusing when you switch from normal to minimal layout.

And one thing about the session buttons because you brought up on the bug report that you would like them to be on the bottom at all times:
I propose moving them to the side pane, in the form of a single toggle (like Control Center) named »Session«. The items in there would be the same as what the indicator-session currently has:
Lock Screen
Guest Session
Switch From [account]...
Log Out...
Shut Down...

This would make the option obsolete and save even more space in the menu itself. Let alone cleaning up the interface by moving functions you mostly only need once a session / day.

[jancborchardt 2010-10-20]
My comments from the Docky »bug« at
About interface cruft and also valid for the normal layout:
1) We should get rid of the scrollbar for categories / view – it is just ugly and clunky. _If_ the list is longer than what normally fits, then rather sacrifice that instead of having general ugliness. The one and only scrollbar in the interface _ever_ should be the vertical scrollbar for the results.
3) »Search« should go into the search box (as »Search …« like on many websites) because this extra header under the result list seems confusing.

But another thing about the search box: When there is nothing in there, the delete icon on the right should not be there. I am wondering if we should do it like the search box in Software Center with the added search icon …

Also, no one uses »Network« and »Connect to Server«. They should be moved to Control Center → Internet and Network (for similar reasons as the file system and computer).

And last, just to put the thought out here, I am thinking what is better: The session toggle I mentioned in my last update or if we just put the session stuff as the first category of Control Center. I do not know how that affects the findability though. Nevertheless, the session toggle solution is surely better than the current approach three big buttons on the bottom.

As always, please let me know what you think. :)

[tvst 2010-10-20]

FYI: Yesterday I started the process of merging Keiran's code. Give me another couple of days to iron out any bugs I may have introduced...

Now, about Jan Christoph's points above:

1) Remove scrollbar: Agreed

2) There is no #2 :-/

3) The word "Search" (or "Type to search") inside the search entry: Agreed, but as far as I know it is not so easy to do it in Gtk. We would have to code it ourselves, which means we may introduce bugs where Cardapio thinks you're searching for "Type to search" or whatever the message is. So this needs a little more thought on the programming side.

4) Removing the "clear" icon from the search entry when there is no text: Agreed. Similar problems, though. I don't know whether Gtk supports hiding the icon, but in the worst case scenario we just load a blank icon instead.

5) Moving "Network" and "Connect to server" into the Control Center: While I agree with this on a theoretical level, practically I think it's better to leave it as it is. The problem is that Control Center is actually a standard Gnome menu just like the Applications menu, and I don't want to modify the contents of standard menus in Cardapio. So unless Ubuntu or Gnome themselves move those icons into the Control Center, I think it's best to leave them as they are.

6) Moving "Session" into Control Center: Good idea. This one I can do, because "Session" would be a whole new category in Control Center, which means we don't have to mess with the standard Gnome menus. I think we should keep the "Show session buttons" option, though, just for those that are already used to that layout (in which case "Session" should not appear in "Control Center" unless you're searching).

[jancborchardt 2010-10-21]
I was just test driving it from the repository and it feels oh so nice. :) Ace work Pawel and Thiago!

Only 2 bugs I noticed:
1) Software Center is not in the side pane anymore.
2) Help and Support still has the label in minimode, forcing the side pane to be wider.

(The previous #2 was only about the border that Pawel experimented with.)

3) & 4) Damn you, Gtk!

5) Let’s not care about the way it is done currently, it is obviously not good. If we can make a new category for »Session« then we can also make a new category for »Remote Places«. :)

6) Cool. But we should be thorough – the session buttons on the bottom are ugly and we know it; Cardapio shouldn’t be ugly, not even by someone ticking a box. :)
Besides, they are yet another option in the properties. When I opened them, I thought »oh, suddenly _that_ many?«. After 3 lines of tickbox labels it gets confusing.

Again an extra shout out to you for the quick and nice implementation!

[tvst 2010-10-21]

1) Really? This makes no sense. Maybe it was removed from your Gnome menu?
2) Ooops! I hadn't noticed that before because I like to leave my side pane empty :)
5) A category with just 2 icons? I don't know...
6) I agree that the session buttons are ugly. I don't use them myself, since I prefer Ubuntu's session indicator applet. So if the other team members are OK with this, I say we take them out.

[jancborchardt 2010-10-22]
1) That’s what I thought – but I always update with a script that completely removes all Cardapio data including configuration:
It is also gone when I manually add it to the side pane and run the script again.
2) Me too, I only caught it because of the script. :)
5) Come on – better to have a somewhat hidden category with only 2 icons that one rarely needs than a very prominent category with enough icons already _plus_ said 2 icons. ;) Connecting to a server and looking into the network is really no places but controlling stuff.

[tvst 2010-10-26]

1) I will look into it
5) I don't know... Still doesn't seem "right". It seems to me that the Control Center is the place for changing preferences and system settings, and those two functions are neither. They are "actions" of some sort, and so they should be in the regular app menu. My 2 cents. I would love to hear from others about this. Especially from users.

6) Now, about minimode categories: I have been using minimode for the past couple of days just to get a feel for it, and to find out what -- if anything -- should be changed. It turns out that even though I resisted it at first, I actually really like it now :)

BUT the one problem I have run into is that most categories have unintelligible icons, and so they require the user to hover over them with the mouse to figure out what they are. In other words, mystery meat navigation. Argh!

So what I think we should do is make the category pane expand back into its regular size after the user hovers for longer than X milliseconds (300ms?). And, of course, it would collapse back after unhovered for the same amount of time.

What do you think?

[keiran 2010-10-27]

First - Launchpad's blueprints suck. This should work like a typical forum and not like the typical notepad does.

Now - the Cardapio's categories. Yeah, I also think that the collapsed categories in mini-mode are unusable. The solution you proposed sounds not bad, especially when I can't think of a better one at this point. It highly depends on how smooth the panel expansion would work / look though. If you implement this, I think that the categories should automatically and instantly collapse also when you leave their panel (entering the panel with search results for example).

Another thing... If my memory serves me - you wrote a comment in the code saying that the mini-mode should be entered when the splitter is middle-clicked. I think that the mini-mode should be TOGGLE when DOUBLE clicking splitter - mimicking the "maximize / minimize" habits.


Work Items

This blueprint contains Public information 
Everyone can see this information.