Bug 94976

Summary: Consider a vertical tabs notebook layout for Pavucontrol
Product: PulseAudio Reporter: Jean-François Fortin Tam <nekohayo>
Component: pavucontrolAssignee: pulseaudio-bugs
Status: RESOLVED MOVED QA Contact: pulseaudio-bugs
Severity: enhancement    
Priority: medium CC: lennart
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: screenshot - proposed UI
screenshot - current UI

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.

+1
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:


<b>Devices</b>
- Configuration
- Output
- Input

<b>Applications</b>
- 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.
Comment 7 GitLab Migration User 2018-07-30 09:27:28 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pavucontrol/issues/3.

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.