在 Evince 中更改向上翻页和向下翻页的键盘快捷键

在 Evince 中更改向上翻页和向下翻页的键盘快捷键

我想更改键盘快捷键“上一页”“下一页”我有evince一台 Dell Vostro 5568 笔记本电脑,其中PgUpPgDn键位于键盘的右侧,位置有些尴尬。相反,我想使用Ctrl+LeftCtrl+Right(目前绑定到“向左旋转”“右旋”),或者使用Ctrl+UpCtrl+Down

来自Gnome 帮助页面我认为我必须使用dconf-editor。以下是显示我的设置的两张屏幕截图:

在此处输入图片描述 在此处输入图片描述

现在当我点击“去”Evince 中的菜单,然后将鼠标指针向下移动到菜单项“上一页”,我应该能够输入新的键盘快捷键。但是如果我按下Ctrl+Up并关闭 Evince 并重新打开它,快捷键不起作用。以下是来自 Evince 的屏幕截图:

在此处输入图片描述

我使用的是 Ubuntu 16.10。还有一个关于 Ubuntu 10.10 的旧问题这里

答案1

首先,以防万一您不知道,您可以使用SpaceandShift-Space代替PgDnand PgUp

如果您仍然想更改键绑定,那么不幸的是,我认为对于 evince 来说,键绑定是硬编码的。三种可能的解决方案是:

  1. 切换到atrilevince 的 MATE 分支,它允许自定义键绑定,至少可以通过文件accels(at ~/.config/atril/accels) 进行。为了进行比较,您可以查看,例如~/.config/nautilus/accels

  2. 使用具有 AutoHotkey 功能的东西(有关某些可能性,请参阅这个 stackexchange 问题)。

  3. (如果您喜欢冒险)修补 evince 的源并重新编译:

要获取 Ubuntu 使用的源:

apt-get source evince

如果这不起作用,请取消deb-src注释中的行/etc/apt/sources.list

负责 evince 中的绑定的有问题的行是:

add_scroll_binding_keypad (binding_set, GDK_KEY_Page_Up, 0, GTK_SCROLL_PAGE_BACKWARD, GTK_ORIENTATION_VERTICAL);
add_scroll_binding_keypad (binding_set, GDK_KEY_Page_Down, 0, GTK_SCROLL_PAGE_FORWARD, GTK_ORIENTATION_VERTICAL);

shell/ev-view.c。(见这里在 GitHub 上。提供 GitHub 链接是为了方便,但最好不要从那里获取源代码,而是通过apt-get上面所述的方式。)

这些行需要改为:

add_scroll_binding_keypad (binding_set, GDK_KEY_Up, GDK_CONTROL_MASK, GTK_SCROLL_PAGE_BACKWARD, GTK_ORIENTATION_VERTICAL);
add_scroll_binding_keypad (binding_set, GDK_KEY_Down, GDK_CONTROL_MASK, GTK_SCROLL_PAGE_FORWARD, GTK_ORIENTATION_VERTICAL);

但请注意,如果您自己编译,则不会自动获得 evince 的安全修复。

作为参考,如果有人希望修改 evince 中的其他键盘快捷键,则某些动作(而不是运动)绑定shell/ev-application.cconst gchar *action_accels[]在 GitHub 上)。

相关内容