在Evince中更改页面向上和向下翻页的键盘快捷键
我想在evince
更改“上一页”和“下一页”的键盘快捷键。 我有一台戴尔Vostro 5568笔记本电脑,其中PgUp
和PgDn
键位于键盘右侧的笨拙位置。 相反,我想使用Ctrl+Left
和Ctrl+Right
(当前绑定到“向左旋转”和“向右旋转” ),或者使用Ctrl+Up
和Ctrl+Down
。
从Gnome帮助页面我发现我必须使用dconf-editor
。 以下是显示我的设置的两个屏幕截图:
现在,当我点击Evince中的“Go”菜单,并将鼠标指针向下移动到菜单项“Previous Page”时 ,我应该可以输入一个新的键盘快捷键。 但是如果我按Ctrl+Up
并关闭Evince并重新打开它,则快捷方式不起作用。 以下是Evince的截图:
我正在使用Ubuntu 16.10。 这里还有一个关于Ubuntu 10.10的旧问题。
首先,如果您不知道,可以使用Space
和Shift-Space
代替PgDn
和PgUp
。
如果您仍想更改键绑定,那么不幸的是我认为对于evince,键绑定是硬编码的。 三种可能的解决方案是
-
切换到
atril
,它是evince的MATE分支,允许自定义键绑定,至少通过一个accels
文件(在~/.config/atril/accels
)。 相比之下,你可以看看~/.config/nautilus/accels
。 -
使用具有AutoHotkeyfunction的东西(对于某些可能性,请参阅此stackexchange问题 )。
-
(如果你喜欢冒险)修补evince的来源并重新编译:
要获取Ubuntu使用的源代码:
apt-get source evince
如果这不起作用,请取消注释/etc/apt/sources.list
的deb-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 ) 。