Việc ẩn thanh công cụ là không thể trong việc chứng minh trong Ubuntu 14.04 hoặc 16.04, cũng không phải là ngược dòng / vanilla evince (không được sửa đổi bởi Ubuntu), mặc dù nếu bạn tuyệt vọng, bạn có thể vá nguồn và biên dịch lại.
Trong vanilla evince, ở chế độ toàn màn hình, thanh công cụ tự động, phần nào hữu ích, nếu không hoàn toàn đủ (hành vi bán thông minh không bao giờ thực hiện chính xác những gì bạn mong muốn, cộng với sẽ rất thuận tiện để có thể ẩn thanh công cụ không trong Chế độ toàn màn hình cũng vậy - có thể nói là khi tiết kiệm không gian màn hình đặc biệt quan trọng).
Thật không may, đối với chứng minh được đóng gói trong Ubuntu (14.04 và 16.04), thậm chí điều đó là không thể. Có vẻ như các bản vá dành riêng cho Ubuntu (nếu không rất hữu ích) trả về thanh menu bình thường và vị trí bình thường của thanh công cụ, phá vỡ hành vi ẩn tự động, làm trầm trọng thêm vấn đề.
Báo cáo lỗi
Các lỗi liên quan (cụ thể trên Ubuntu và ngược dòng) có ở đây:
https://bugs.launchpad.net/ubfox/+source/evince/+orms/1522527
https://bugs.launchpad.net/ubfox/+source/evince/+orms/1409291
https://ormszilla.gnome.org/show_orms.cgi?id=714996
Bản vá lỗi
Các bản vá hoạt động đã được cung cấp (bởi Reinis Danne) trong báo cáo lỗi Gnome, nhưng chúng không được chấp nhận. Liên kết trực tiếp cho 3.12 , nhánh chính đương đại và 3.14 .
May mắn thay, các bản vá này vẫn có thể được áp dụng thủ công (sao chép mã) để chứng minh 3.18, như được tìm thấy trong Ubuntu 16.04. Áp dụng chúng trực tiếp với patch
dường như không hoạt động, có thể là do những thay đổi nhỏ trong mã xung quanh.
Để lấy nguồn:
apt-get source evince
cd evince-3.18.2/
Nếu điều này không làm việc, hãy bỏ qua các deb-src
dòng trong /etc/apt/sources.list
.
Áp dụng bản vá sau (được điều chỉnh từ bản vá do Reinis Danne cung cấp, được liên kết ở trên và được cung cấp ở đây để hoàn thiện):
--- 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>
với patch -p1 < name_of_patch_file.patch
hoặc sử dụng quilt
(và lý tưởng nhất là đọc bản vá trước / sau khi áp dụng nó - nó thực sự khá dễ hiểu, đặc biệt là trong ngữ cảnh).
Cuối cùng, biên dịch evince với tiêu chuẩn ./configure; make; sudo make install
để cài đặt evince đã vá /usr/local/
. Để cài đặt ở nơi khác, ví dụ để tránh phải sử dụng sudo
, sử dụng ./configure --prefix=/full/path/to/alternative/location/
.
Các evince vá sẽ có tùy chọn ẩn thanh công cụ với Ctrl+h
. Thanh menu sẽ không bị ẩn, có thể hoặc không thể là những gì bạn muốn.
Ẩn thanh menu
Ngoài các bản vá trên, bạn sẽ cần thêm:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (ev_window), !toolbar);
đến cuối định nghĩa của ev_window_view_cmd_toggle_toolbar
in shell/ev-window.c
và thay đổi:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation);
đến:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation && toolbar);
trong định nghĩa của update_chrome_visibility
, cũng trong shell/ev-window.c
.
Bảo vệ
Tôi cũng khuyên bạn nên thêm một /etc/apparmor.d/usr.local.bin.evince
hồ sơ apparmor dựa trên usr.bin.evince
và đăng ký các thông báo bảo mật Ubuntu , vì bạn sẽ không nhận được các bản sửa lỗi bảo mật cho phiên bản chứng minh của bạn. Ngoài ra, bạn có thể xem xét sử dụng một cái gì đó như apt-src
.