Bug 94976 - Consider a vertical tabs notebook layout for Pavucontrol
Summary: Consider a vertical tabs notebook layout for Pavucontrol
Status: NEW
Alias: None
Product: PulseAudio
Classification: Unclassified
Component: pavucontrol (show other bugs)
Version: unspecified
Hardware: Other All
: medium enhancement
Assignee: pulseaudio-bugs
QA Contact: pulseaudio-bugs
Depends on:
Reported: 2016-04-16 23:39 UTC by Jean-François Fortin Tam
Modified: 2016-04-19 00:16 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

screenshot - proposed UI (45.71 KB, image/png)
2016-04-16 23:39 UTC, Jean-François Fortin Tam
screenshot - current UI (44.46 KB, image/png)
2016-04-16 23:41 UTC, Jean-François Fortin Tam

Note You need to log in before you can comment on or make changes to this bug.
Description Jean-François Fortin Tam 2016-04-16 23:39:04 UTC
Something always felt odd to me with pavucontrol's layout, and I think I finally figured out what it is: the horizontal tabs at the top. The problem is that in many verbose languages (such as French) they become very lengthy, and then the notebook overflows into scroll mode, which is not handled very well by GTK.

A better layout I would propose would be to simply use vertical tabs, and to remove the 12px padding (border) around the vbox containing the notebook widget.

This would make pavucontrol look great on the official GTK theme, Adwaita. Screenshots attached.

You might be surprised to find out that, paradoxally, with vertical tabs the window actually becomes less wide, and the contents inside each page feel more balanced (less stretched horizontally, especially the sliders and vumeters). This looks especially great on widescreen monitors.
Comment 1 Jean-François Fortin Tam 2016-04-16 23:39:41 UTC
Created attachment 123003 [details]
screenshot - proposed UI
Comment 2 Jean-François Fortin Tam 2016-04-16 23:41:34 UTC
Created attachment 123004 [details]
screenshot - current UI
Comment 3 Jean-François Fortin Tam 2016-04-16 23:48:45 UTC
Actually, my proposed change (vertical tabs and no border padding) is more compact in both dimensions, requiring less minimum window width and height before contents need to be scrolled. Win win all around.
Comment 4 Arun Raghavan 2016-04-18 05:40:45 UTC
I've already pushed out a change to remove the extra border. If we want to follow the GNOME3 HIG, it looks like we should be using the View Switcher pattern (https://developer.gnome.org/hig/stable/view-switchers.html.en)

I'm not against trying the vertical notebook though. Want to send a patch? ;)
Comment 5 N. W. 2016-04-18 22:41:42 UTC
(In reply to Jean-François Fortin Tam from comment #1)
> Created attachment 123003 [details]
> screenshot - proposed UI

That looks way better, good job.

Comment 6 Jean-François Fortin Tam 2016-04-19 00:16:28 UTC
The use of a "view switcher" might be the more technically correct approach, it's just not a one-liner quickfix, I guess ;) I wonder how it would look like, if it would have significant visual layout advantages over the "tabs at the top" approach (somehow I found the sidebar-like appearance nice to look at).

If you're considering a more complex approach than just flipping the tabs orientation, then you might want to consider this related problem: I always end up confusing the "application" vs "devices" tabs, as currently the following is all placed on the same level of importance and with somewhat similar semantics:

- "Playback" ("Playing streams/apps" to be precise)
- "Recording" ("Recording streams/apps" to be accurate)
- "Output devices"
- "Input devices"
- "Configuration" (really "Hardware devices configuration")

One could imagine a more hierarchical system (treeview-style), maybe with something organized roughly like:

- Configuration
- Output
- Input

- Playback
- Recording

A bit oldschool, but I would find it easier to navigate, personally speaking. It's not a huge deal though, I reckon it might be a bit tricky.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.