如何将 Alt+箭头绑定到 PageUp/PageDown?

如何将 Alt+箭头绑定到 PageUp/PageDown?

我刚刚尝试使用loadkeys这个地图文件:

alt keycode 73 = Prior
string Prior = "\033[5~"
alt keycode 81 = Next
string Next = "\033[6~"

但它不起作用。

答案1

安装xbindkeysxte

sudo apt-get install xbindkeys xautomation

Alt接下来我们需要找到+的键映射Arrow

运行xbindkeys -k并按下Alt您想要的任何箭头键。对于Alt+,Up Arrow我得到:

"NoCommand"
m:0x18 + c:111
Alt+Mod2 + Up

现在我们知道了我们的键的绑定,我们需要创建.xbindkeys配置文件。运行:

touch .xbindkeysrc
gedit .xbindkeysrc

touch创建文件并gedit打开它。现在添加:

"xte 'key Page_Up'"
m:0x18 + c:111
Alt+Mod2 + Up

到文件并保存。这会将Alt+绑定Up ArrowPgUp

基本语法xbindkeys是:

"command to run (in quotes)"
keysym of key

您的完整文件应该看起来几乎与此相同:

"xte 'key Page_Down'"
m:0x18 + c:116
Alt+Mod2 + Down  

"xte 'key Page_Up'"
m:0x18 + c:111
Alt+Mod2 + Up  

现在将其添加xbindkeys到“启动应用程序”中,使其在您启动计算机时运行。
单击“添加”并输入/usr/bin/xbindkeys“命令”字段。

在此处输入图片描述

再次单击“添加”并重新启动。

答案2

我读过这个https://help.ubuntu.com/community/KeyboardShortcuts这帮助我弄清楚了以下内容。虽然自动化包含该xte工具的包可能会被用来代替发出我用来做同样事情的xvkbd密钥代码。xvkbd

sudo apt-get install xbindkeys xbindkeys-config xvkbd

xbindkeys --defaults > /home/your-user-name/.xbindkeysrc

由于某种原因,这添加了 ctrl-f 的绑定,我不得不将其注释掉。虽然这可能是一个有用的默认示例,但我需要 ctrl-f 才能在网页内查找。

在弄清楚了事先的为了向上翻页下一个为了向下翻页这并不太难。运行并使用后,xbindkeys-config我在 .xbindkeysrc 中得到了以下条目。

#alt-up
"xvkbd -xsendevent -text "\[Prior]""
    m:0x18 + c:111
    Alt+Mod2 + Up

#alt-down
"xvkbd -xsendevent -text "\[Next]""
    m:0x18 + c:116
    Alt+Mod2 + Down

当使用 Ubuntu 12.04 precise pangolin 时,创建 .xbindkeysrc 文件后它会被检测到并且该xbindkeys程序会在我下次登录时自动运行。

对于 ctrl 也同样适用。

#ctrl-up
"xvkbd -xsendevent -text "\[Prior]""
    m:0x14 + c:111
    Ctrl+Mod2 + Up

#ctrl-down
"xvkbd -xsendevent -text "\[Next]""
    m:0x14 + c:116
    Ctrl+Mod2 + Down

答案3

这:

key   <UP> {
    type= "PC_ALT_LEVEL2",
    symbols[Group1]= [           Up,         KP_Prior ]
};
key <DOWN> { 
    type= "PC_ALT_LEVEL2",
    symbols[Group1]= [           Down,         KP_Next ]
};
key <LEFT> {
    type= "PC_ALT_LEVEL2",
    symbols[Group1]= [           Left,         KP_Home ]
};
key <RGHT> {
    type= "PC_ALT_LEVEL2",
    symbols[Group1]= [           Right,         KP_End ]
};

只在某些情况下有效,发布仅供参考,这远非最终解决方案。

PSs/KP_//g给出了相同的结果。

相关内容