我想绘制地图
Super+UpArrow至PageUp
Super+DownArrow至PageDown
Super+Left至Home
Super+Right至End
在 Apple 铝制无线键盘上。了解键盘的人会注意到,Fn默认情况下,它已经使用按键执行这些操作;这很好,我想保留这一点,但也能使用单手按键组合执行相同的操作,因此我想要映射Super。
我已经搜索了 3 个小时,寻找通过 xmodmap 实现此目的的可能方法,但没有任何效果。
答案1
尝试编辑 /usr/share/X11/xkb/symbols/pc 键盘定义
(这将全局改变您的绑定,如果您想要进行更精细的调整,还需要做更多的工作,例如创建自定义键映射或自定义变体)
正如你在这里看到的:
键 { [ 先前 ] }; 键 { [ 下一步 ] };
如您所见,键 PGUP 已绑定到“Prior”。而:
键 { [ 左 ] }; 键 { [ 向下 ] };
LEFT 和 DOWN 键绑定到“左”和“下”。
括号内[ ]
是要生成的符号列表。您可以放置多个。第一个是与未修改的键关联的符号,而其他位置是与键 + 某些修改器关联的符号。
通常它用于定义键加上“SHIFT”修饰符的行为:
键 { [ l, L ] }; 键 { [ 分号, 冒号 ] };
但也可以指定其他修饰符,例如在世界语映射(epo)中:
键 { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] }; 键 { [ hcircumflex, Hcircumflex, bracketright, braceright ] };
您可以通过键入 AltGr + 键(美国键盘映射上的 [ 键)来键入 [ 字符,通过 Shift+AltGr + 键来键入 {。
到目前为止一切顺利。通过查看一些简单示例,我们可以理解以下顺序:
plain shift altgr shift+altgr
但是,我们希望能够将 LEFT 和 RIGHT 键绑定到普通和 CTRL+ALT 修饰键。如何实现?
我不知道,也从未尝试过,但我可以从 /usr/share/X11/xkb/symbols/pc 中获得灵感:
xkb_symbols“函数”{ 钥匙 { 类型=“CTRL+ALT”, 符号[组1]= [ F1,XF86_Switch_VT_1 ] };
也许我们可以对箭头键做同样的事情。让我们尝试添加以下几行:
键 { type="CTRL+ALT", 符号[Group1]= [ Left, Prior ] }; 键 { type="CTRL+ALT", 符号[Group1]= [ 向下, 下一个 ] };
就在‘pc’文件的底部,LEFT 和 DOWN 的原始定义的正下方。
然后重新启动 X 服务器。抱歉,我现在无法关闭会话来测试它。
顺便说一句,你可能感兴趣http://code.google.com/p/partiwm/wiki/xpra,这样您就可以重新启动 X 会话并且在重新启动后仍保留一些应用程序。
答案2
我尝试使用 xmodmap 及其同源词进行类似操作,但没有成功。尝试xbindkeys
与 结合使用xdotool
。这是我输入的内容~/.xbindkeysrc
,用于将数字键盘 1 和 2 绑定到Ctrl-PageUp和Ctrl- PageDown:
"xdotool key ctrl+Prior"
Release + KP_End
"xdotool key ctrl+Next"
Release + KP_Down