Menyembunyikan bilah alat tidak dimungkinkan di evince baik di Ubuntu 14.04 atau 16.04, maupun di upstream / vanilla evince (tidak dimodifikasi oleh Ubuntu), meskipun jika Anda putus asa, Anda dapat menambal sumber dan mengkompilasi ulang.
Dalam vanilla evince, dalam mode layar penuh, bilah alat autohides, yang agak membantu, jika tidak sepenuhnya mencukupi (perilaku semi-cerdas tidak pernah melakukan persis apa yang Anda inginkan, ditambah lagi akan sangat nyaman untuk dapat menyembunyikan bilah alat tidak dalam mode layar penuh juga - bisa dibilang saat itulah penghematan ruang layar sangat penting).
Sayangnya, untuk evince seperti yang dikemas dalam Ubuntu (14.04 dan 16.04), bahkan itu tidak mungkin. Tampaknya (khusus sangat berguna) tambalan khusus Ubuntu yang mengembalikan bilah menu normal dan lokasi normal bilah alat, memecah perilaku bersembunyi otomatis, memperburuk masalah.
Laporan bug
Bug yang relevan (spesifik Ubuntu dan upstream) ada di sini:
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
Tambalan
Tambalan kerja disediakan (oleh Reinis Danne) dalam laporan bug GNOME, tetapi tidak diterima. Tautan langsung untuk 3.12 , cabang utama kontemporer dan 3.14 .
Untungnya, tambalan ini masih dapat diterapkan secara manual (menyalin-paste kode) untuk membuktikan 3.18, seperti yang ditemukan di Ubuntu 16.04. Menerapkannya secara langsung patch
tampaknya tidak berfungsi, mungkin karena sedikit perubahan pada kode di sekitarnya.
Untuk mendapatkan sumber:
apt-get source evince
cd evince-3.18.2/
Jika ini tidak berhasil, batalkan komentar pada deb-src
baris /etc/apt/sources.list
.
Terapkan tambalan berikut (diadaptasi dari yang disediakan oleh Reinis Danne, ditautkan di atas dan disediakan di sini untuk kelengkapan):
--- 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>
dengan patch -p1 < name_of_patch_file.patch
atau menggunakan quilt
(dan idealnya membaca tambalan sebelum / setelah menerapkannya - sebenarnya cukup mudah dipahami, terutama dalam konteks).
Akhirnya, kompilasi evince dengan standar ./configure; make; sudo make install
untuk menginstal evince yang ditambal ke /usr/local/
. Untuk menginstal di tempat lain, misalnya untuk menghindari keharusan menggunakan sudo
, gunakan ./configure --prefix=/full/path/to/alternative/location/
.
Evince yang ditambal akan memiliki opsi untuk menyembunyikan bilah alat Ctrl+h
. Bilah menu tidak akan disembunyikan, yang mungkin atau tidak sesuai keinginan Anda.
Menyembunyikan bilah menu
Selain tambalan di atas, Anda perlu menambahkan:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (ev_window), !toolbar);
sampai akhir definisi ev_window_view_cmd_toggle_toolbar
masuk shell/ev-window.c
dan ubah:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation);
untuk:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation && toolbar);
dalam definisi update_chrome_visibility
, juga dalam shell/ev-window.c
.
Keamanan
Saya juga merekomendasikan untuk menambahkan /etc/apparmor.d/usr.local.bin.evince
profil apparmor berdasarkan usr.bin.evince
dan berlangganan pemberitahuan keamanan Ubuntu , karena Anda tidak akan menerima perbaikan keamanan untuk versi evince Anda. Atau, Anda dapat mempertimbangkan menggunakan sesuatu seperti apt-src
.