Jeremy started this thread on #ubuntu-desktop
https://lists.ubuntu.com/archives/ubuntu-desktop/2017-November/005275.html
Issue:
Ubuntu patches Gnome apps to use tradition titlebar and menubar (in some apps) so that it can work well under Unity (Specially for LIM). This patches are set to apply in two ways:
- It will show titlebar only for Unity session.
- It will show headerbar only for Gnome session.
Since Elementary and others also use headerbar, (2) is the problem. One solution is to convert (2) into (1), which is fairly simple thing to do (And I have already converted many (2) into (1) on the bug report: Bug #1719322 âRemove patch to remove headerbarâ : Bugs : file-roller package : Ubuntu).
But he also explains why Canonical doesnât want this.
One of the Desktop Team goals was to reduce the Ubuntu-specific
patches we are carrying. We made great progress in Ubuntu 17.10 by
dropping Ubuntu Online Accounts, but we are still carrying a lot of
patches.There are two major kinds of headerbar patches⌠One replaces the
headerbar with a patch to add a separate titlebar. These patches was
more important when non-GNOME desktops and themes had trouble with the
headerbars.The second kind of patch restores a traditional File/Edit/View (FEV)
menu to apps that have removed theirs. This is nice for Unityâs
menubars, but in my opinion arenât necessarily better for users in
other desktops. There is resistance to upstreaming these patches to
Debian GNOME because they add lots of translatable strings without
providing translations.The FEV patches potentially are more difficult to maintain. For
instance, we kept the titlebar patch for Nautilus in Ubuntu 16.10 and
17.04 but not the FEV because no one volunteered to do the work.There is a large and growing number of apps that have headerbars that
Ubuntu never patched. Also, more apps are converting to them (for
instance, I expect Firefox to get headerbars before Ubuntu 18.04 is
released). I think thereâs a strong argument that can be made that
Ubuntu should generally distribute apps as intended by the developers
unless we are fixing a significant bug.
Solutions:
Jeremy proposed two solutions for default Ubuntu:
- What to do with all the headerbar patches?
Bug #1719322 âRemove patch to remove headerbarâ : Bugs : file-roller package : Ubuntu
a. We could drop the ones that havenât been pushed upstream (to GNOME)
b. We could keep them but set them to only apply against Unity
For (b), I already explained above and converted those apps into (1) from (2)
For (a), I propose any of following:
- Use gtk-shell-show-appmenu=true for Unity session.
This can be done using:
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides '@a{sv} {"Gtk/ShellShowsAppMenu": <int32 0>}'
This will show shell-appmenu in the app itself. See screnshot: https://i.imgur.com/wWwnP6o.png
However if user doesnât use LIM, he will end up using duplicate menus: one on the panel and one on the app.
- Make unity-session depends on gtk3-nocsd
gtk3-nocsd package : Ubuntu
gtk3-nocsd will automatically force all applications to use traditional titlebar. No patches required.
(Although if a gnome app (like d-feet) doesnât use standard gtk3-api to set gtk_window_set_titlebar (GTK_WINDOW (window), headerbar)
, it wonât work with gtk3-nocsd either. But thatâs a small issue.)
Thoughts?