我想更改键盘快捷键“上一页”和
“下一页”我有evince
一台 Dell Vostro 5568 笔记本电脑,其中PgUp
和PgDn
键位于键盘的右侧,位置有些尴尬。相反,我想使用Ctrl+Left
和Ctrl+Right
(目前绑定到“向左旋转”和“右旋”),或者使用Ctrl+Up
和Ctrl+Down
。
来自Gnome 帮助页面我认为我必须使用dconf-editor
。以下是显示我的设置的两张屏幕截图:
现在当我点击“去”Evince 中的菜单,然后将鼠标指针向下移动到菜单项“上一页”,我应该能够输入新的键盘快捷键。但是如果我按下Ctrl+Up
并关闭 Evince 并重新打开它,快捷键不起作用。以下是来自 Evince 的屏幕截图:
我使用的是 Ubuntu 16.10。还有一个关于 Ubuntu 10.10 的旧问题这里。
答案1
首先,以防万一您不知道,您可以使用Space
andShift-Space
代替PgDn
and PgUp
。
如果您仍然想更改键绑定,那么不幸的是,我认为对于 evince 来说,键绑定是硬编码的。三种可能的解决方案是:
切换到
atril
evince 的 MATE 分支,它允许自定义键绑定,至少可以通过文件accels
(at~/.config/atril/accels
) 进行。为了进行比较,您可以查看,例如~/.config/nautilus/accels
。使用具有 AutoHotkey 功能的东西(有关某些可能性,请参阅这个 stackexchange 问题)。
(如果您喜欢冒险)修补 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.c
在const gchar *action_accels[]
(在 GitHub 上)。