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

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

从Gnome帮助页面我发现我必须使用dconf-editor 。 以下是显示我的设置的两个屏幕截图:

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

现在,当我点击Evince中的“Go”菜单,并将鼠标指针向下移动到菜单项“Previous Page”时 ,我应该可以输入一个新的键盘快捷键。 但是如果我按Ctrl+Up并关闭Evince并重新打开它,则快捷方式不起作用。 以下是Evince的截图:

在此处输入图像描述

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

首先,如果您不知道,可以使用SpaceShift-Space代替PgDnPgUp

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

  1. 切换到atril ,它是evince的MATE分支,允许自定义键绑定,至少通过一个accels文件(在~/.config/atril/accels )。 相比之下,你可以看看~/.config/nautilus/accels

  2. 使用具有AutoHotkeyfunction的东西(对于某些可能性,请参阅此stackexchange问​​题 )。

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

要获取Ubuntu使用的源代码:

apt-get source evince

如果这不起作用,请取消注释/etc/apt/sources.listdeb-src行。

负责绑定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中的其他键盘快捷键,则在const gchar *action_accels[]的定义中的shell/ev-application.c中指定了一些动作(而不是运动)绑定( 这里是GitHub ) 。

Interesting Posts