Masquer la barre d'outils n'est pas possible dans evince ni dans Ubuntu 14.04 ou 16.04, ni dans amont / vanilla evince (non modifié par Ubuntu), mais si vous êtes désespéré, vous pouvez patcher la source et recompiler.
Dans vanilla evince, en mode plein écran, la barre d'outils se cache automatiquement, ce qui est quelque peu utile, sinon entièrement suffisant (un comportement semi-intelligent ne fait jamais exactement ce que vous désirez, et il serait très pratique de pouvoir masquer la barre d'outils pas dans mode plein écran également - sans doute c'est à ce moment que les économies d'espace sur l'écran sont particulièrement importantes).
Malheureusement, pour evince comme emballé dans Ubuntu (14.04 et 16.04), même cela n'est pas possible. Il semble que les correctifs spécifiques à Ubuntu (par ailleurs très utiles) renvoyant une barre de menus normale et un emplacement normal de la barre d'outils, rompent le comportement de masquage automatique, exacerbant le problème.
Rapports de bogues
Les bogues pertinents (spécifiques à ubuntu et en amont) sont ici:
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
Patchs
Des correctifs de travail ont été fournis (par Reinis Danne) dans le rapport de bogue de GNOME, mais ils n'ont pas été acceptés. Liens directs pour 3.12 , la branche master contemporaine et 3.14 .
Heureusement, ces correctifs peuvent toujours être appliqués manuellement (copier-coller le code) pour prouver 3.18, comme dans Ubuntu 16.04. Les appliquer directement avec patch
ne semble pas fonctionner, probablement en raison de légers changements dans le code environnant.
Pour obtenir la source:
apt-get source evince
cd evince-3.18.2/
Si cela ne fonctionne pas, décommentez les deb-src
lignes /etc/apt/sources.list
.
Appliquez le patch suivant (adapté de ceux fournis par Reinis Danne, lié ci-dessus et fourni ici pour être complet):
--- 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>
avec patch -p1 < name_of_patch_file.patch
ou en utilisant quilt
(et idéalement lire le patch avant / après son application - il est en fait assez compréhensible, surtout dans le contexte).
Enfin, compilez evince avec la norme ./configure; make; sudo make install
pour installer l'évince patché /usr/local/
. Pour installer ailleurs, par exemple pour éviter d'avoir à utiliser sudo
, utilisez ./configure --prefix=/full/path/to/alternative/location/
.
La version corrigée aura la possibilité de masquer la barre d'outils avec Ctrl+h
. La barre de menus ne sera pas masquée, ce qui peut ou non être ce que vous voulez.
Masquer la barre de menus
En plus du patch ci-dessus, vous devrez ajouter:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (ev_window), !toolbar);
à la fin de la définition de ev_window_view_cmd_toggle_toolbar
dans shell/ev-window.c
et le changement:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation);
à:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation && toolbar);
dans la définition de update_chrome_visibility
, également dans shell/ev-window.c
.
Sécurité
Je recommanderais également d'ajouter un /etc/apparmor.d/usr.local.bin.evince
profil d'aparmeur basé sur les avis de sécurité d'Ubuntuusr.bin.evince
et de vous y abonner , car vous ne recevrez pas de correctifs de sécurité pour votre version d'evince. Alternativement, vous pourriez envisager d'utiliser quelque chose comme .apt-src