Ocultar la barra de herramientas no es posible en Ubuntu 14.04 o 16.04, ni en Upstream / Vanilla evince (no modificado por Ubuntu), aunque si está desesperado, puede parchear la fuente y volver a compilar.
En el caso de la vainilla, en el modo de pantalla completa, la barra de herramientas se oculta automáticamente, lo que es de alguna manera útil, si no del todo suficiente (el comportamiento semiinteligente nunca hace exactamente lo que desea, además sería muy conveniente poder ocultar la barra de herramientas no en modo de pantalla completa también, podría decirse que es cuando el ahorro de espacio en pantalla es particularmente importante).
Desafortunadamente, para los eventos empaquetados en Ubuntu (14.04 y 16.04), incluso eso no es posible. Parece que los parches (por lo demás muy útiles) específicos de Ubuntu que devuelven una barra de menú normal y una ubicación normal de la barra de herramientas, rompen el comportamiento de ocultación automática, exacerbando el problema.
Informes de errores
Los errores relevantes (específicos de ubuntu y ascendentes) están aquí:
https://bugs.launchpad.net/ubuntu/+source/evince/+bug/1522527
https://bugs.launchpad.net/ubuntu/+source/evince/+bug/1409291
https://bugzilla.gnome.org/show_bug.cgi?id=714996
Parches
Reinis Danne proporcionó parches de trabajo en el informe de errores de GNOME, pero no fueron aceptados. Enlaces directos para 3.12 , la rama maestra contemporánea y 3.14 .
Afortunadamente, estos parches aún se pueden aplicar manualmente (copiar y pegar el código) para mostrar 3.18, como se encuentra en Ubuntu 16.04. Aplicarlos directamente con patch
parece no funcionar, probablemente debido a ligeros cambios en el código circundante.
Para obtener la fuente:
apt-get source evince
cd evince-3.18.2/
Si esto no funciona, descomente las deb-src
líneas /etc/apt/sources.list
.
Aplique el siguiente parche (adaptado de los proporcionados por Reinis Danne, vinculados anteriormente y proporcionados aquí para completar):
--- a/shell/ev-application.c 2018-01-02 23:00:00.502095551 +0100
+++ b/shell/ev-application.c 2018-01-03 23:15:00.713553169 +0100
@@ -1059,9 +1059,24 @@
}
static void
+app_toggle_toolbar_cb (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ EvApplication *application = user_data;
+ EvWindow *window = EV_WINDOW (gtk_application_get_active_window (GTK_APPLICATION (application)));
+ GActionMap *action_map = G_ACTION_MAP (window);
+ GAction *gaction = g_action_map_lookup_action (action_map, "toggle-toolbar");
+
+ g_action_activate (gaction, NULL);
+}
+
+
+static void
ev_application_startup (GApplication *gapplication)
{
const GActionEntry app_menu_actions[] = {
+ { "toggle-toolbar", app_toggle_toolbar_cb, NULL, NULL, NULL },
{ "new", app_new_cb, NULL, NULL, NULL },
{ "help", app_help_cb, NULL, NULL, NULL },
{ "about", app_about_cb, NULL, NULL, NULL }
@@ -1095,6 +1110,7 @@
"win.caret-navigation", "F7", NULL,
"win.zoom-in", "plus", "<Ctrl>plus", "KP_Add", "<Ctrl>KP_Add", "equal", "<Ctrl>equal", NULL,
"win.zoom-out", "minus", "<Ctrl>minus", "KP_Subtract", "<Ctrl>KP_Subtract", NULL,
+ "win.toggle-toolbar", "<Ctrl>H", NULL,
"win.show-side-pane", "F9", NULL,
"win.fullscreen", "F11", NULL,
"win.presentation", "F5", NULL,
--- a/shell/ev-window.c 2018-01-02 23:00:00.502095551 +0100
+++ b/shell/ev-window.c 2018-01-02 23:14:36.995706943 +0100
@@ -4907,6 +4907,27 @@
}
static void
+ev_window_view_cmd_toggle_toolbar (GSimpleAction *action,
+ GVariant *state,
+ gpointer user_data)
+{
+ EvWindow *ev_window = user_data;
+ EvWindowPrivate *priv = ev_window->priv;
+
+ gboolean toolbar;
+ gboolean presentation;
+
+ presentation = EV_WINDOW_IS_PRESENTATION (ev_window);
+
+ toolbar = ((priv->chrome & EV_CHROME_TOOLBAR) != 0 ||
+ (priv->chrome & EV_CHROME_RAISE_TOOLBAR) != 0) && !presentation;
+
+ update_chrome_flag (ev_window, EV_CHROME_TOOLBAR, !toolbar);
+
+ set_widget_visibility (priv->toolbar, !toolbar);
+}
+
+static void
ev_window_view_cmd_toggle_sidebar (GSimpleAction *action,
GVariant *state,
gpointer user_data)
@@ -5697,6 +5718,7 @@
{ "continuous", NULL, NULL, "true", ev_window_cmd_continuous },
{ "dual-page", NULL, NULL, "false", ev_window_cmd_dual },
{ "dual-odd-left", NULL, NULL, "false", ev_window_cmd_dual_odd_pages_left },
+ { "toggle-toolbar", NULL, NULL, "true", ev_window_view_cmd_toggle_toolbar },
{ "show-side-pane", NULL, NULL, "false", ev_window_view_cmd_toggle_sidebar },
{ "inverted-colors", NULL, NULL, "false", ev_window_cmd_view_inverted_colors },
{ "fullscreen", NULL, NULL, "false", ev_window_cmd_view_fullscreen },
--- a/shell/evince-menus.ui 2018-01-02 23:00:00.502095551 +0100
+++ b/shell/evince-menus.ui 2018-01-03 23:16:02.969635772 +0100
@@ -21,6 +21,12 @@
<menu id="appmenu">
<section>
<item>
+ <attribute name="label" translatable="yes">_Toggle toolbar</attribute>
+ <attribute name="action">app.toggle-toolbar</attribute>
+ <attribute name="accel"><Primary>H</attribute>
+ </item>
+ </section> <section>
+ <item>
<attribute name="label" translatable="yes">_New Window</attribute>
<attribute name="action">app.new</attribute>
</item>
@@ -41,6 +47,10 @@
<menu id="view-menu">
<section>
<item>
+ <attribute name="label" translatable="yes">_Toolbar</attribute>
+ <attribute name="action">win.toggle-toolbar</attribute>
+ </item>
+ <item>
<attribute name="label" translatable="yes">_Continuous</attribute>
<attribute name="action">win.continuous</attribute>
</item>
con patch -p1 < name_of_patch_file.patch
o usando quilt
(e idealmente lea el parche antes / después de aplicarlo; en realidad es bastante comprensible, especialmente en contexto).
Finalmente, compile evince con el estándar ./configure; make; sudo make install
para instalar el evento parcheado /usr/local/
. Para instalar en otro lugar, por ejemplo, para evitar tener que usar sudo
, use ./configure --prefix=/full/path/to/alternative/location/
.
El evento parcheado tendrá la opción de ocultar la barra de herramientas con Ctrl+h
. La barra de menú no estará oculta, lo que puede o no ser lo que desea.
Ocultar la barra de menú
Además del parche anterior, deberá agregar:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (ev_window), !toolbar);
hasta el final de la definición de ev_window_view_cmd_toggle_toolbar
in shell/ev-window.c
y cambio:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation);
a:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation && toolbar);
en la definición de update_chrome_visibility
, también en shell/ev-window.c
.
Seguridad
También recomendaría agregar un /etc/apparmor.d/usr.local.bin.evince
perfil de apparmor basado usr.bin.evince
y suscribirse a los avisos de seguridad de Ubuntu , ya que no recibirá correcciones de seguridad en su versión de evince. Alternativamente, podría considerar usar algo como apt-src
.