虽然Ctrl + Left / Right通常映射为将光标向左/右移动一个单词,但Ctrl + Up / Down通常不会映射到Linux应用程序中的任何内容。本着同样的精神,我想将Ctrl + Up / Down重新映射到5次重复上/下键。有没有办法用xmodmap
或通过XKB配置来做到这一点?我已经用XKB完成了一些非常自定义的东西(我的右侧Alt是Overlay2)但是我不知道从哪里开始能够为一个事件/键发送多个事件/多个键。
作为一种解决方法,我可以在vim中执行此操作:
(n/i/v)map <C-Up> <Up><Up><Up><Up><Up>
(n/i/v)map <C-Down> <Down><Down><Down><Down><Down>
然而,让它在gedit和eclipse中工作对我来说是一个很好的解决方法。有什么想法吗?
答案 0 :(得分:5)
您可以使用xbindkeys
。您需要编写.xbindkeysrc
并使用X会话启动xbindkeys(您可以使用.xinitrc
,.xsession
或DM / WM中的相应选项(如果有)。您将需要一些东西来发送密钥到X程序。我使用了xte
包中的xautomation
,但您也可以使用xmacro
之类的内容(例如here)。
在你的.xbindkeysrc
中写下这样的内容:
"xte 'keyup Control_L' 'keyup Control_R' 'key Up' 'key Up' 'key Up' 'key Up' 'key Up'"
Control + Up
Control + Down
同样的事情(需要示例中的换行符)。这将释放控制键(如果您不希望最终无限制,则很重要),然后按5次。
答案 1 :(得分:1)
根据Trudberts的回答,我最终得到.xbindkeysrc
如下:
"xte 'keyup Control_L' 'keyup Control_R' 'key Up' 'key Up' 'key Up' 'key Up' 'key Up' 'key Up' 'keydown Control_L'"
Control + Up
"xte 'keyup Control_L' 'keyup Control_R' 'key Down' 'key Down' 'key Down' 'key Down' 'key Down' 'key Down' 'keydown Control_L'"
Control + Down
这解决了两件事。首先,如果按下控制键,每按一次向上/向下键使其移动五行(而不是四行),并且在第一次按下后也会起作用(Trudbert的回答没有)。
有两个问题。 Control_R不能正常工作,按住Ctrl + Up键不会自动重复键,类似于按住Up按钮的方式。我会给Trudbert奖励,但在期末。
与此同时,希望有人会想到如何解决这个问题。我在考虑一个自定义脚本,在发布事件之前不断重复5次Up。